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/v1"
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/v1"
43
44import (
45	"bytes"
46	"context"
47	"encoding/json"
48	"errors"
49	"fmt"
50	"io"
51	"net/http"
52	"net/url"
53	"strconv"
54	"strings"
55
56	googleapi "google.golang.org/api/googleapi"
57	gensupport "google.golang.org/api/internal/gensupport"
58	option "google.golang.org/api/option"
59	internaloption "google.golang.org/api/option/internaloption"
60	htransport "google.golang.org/api/transport/http"
61)
62
63// Always reference these packages, just in case the auto-generated code
64// below doesn't.
65var _ = bytes.NewBuffer
66var _ = strconv.Itoa
67var _ = fmt.Sprintf
68var _ = json.NewDecoder
69var _ = io.Copy
70var _ = url.Parse
71var _ = gensupport.MarshalJSON
72var _ = googleapi.Version
73var _ = errors.New
74var _ = strings.Replace
75var _ = context.Canceled
76var _ = internaloption.WithDefaultEndpoint
77
78const apiId = "compute:v1"
79const apiName = "compute"
80const apiVersion = "v1"
81const basePath = "https://compute.googleapis.com/compute/v1/"
82const mtlsBasePath = "https://compute.mtls.googleapis.com/compute/v1/"
83
84// OAuth2 scopes used by this API.
85const (
86	// See, edit, configure, and delete your Google Cloud Platform data
87	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
88
89	// View and manage your Google Compute Engine resources
90	ComputeScope = "https://www.googleapis.com/auth/compute"
91
92	// View your Google Compute Engine resources
93	ComputeReadonlyScope = "https://www.googleapis.com/auth/compute.readonly"
94
95	// Manage your data and permissions in Google Cloud Storage
96	DevstorageFullControlScope = "https://www.googleapis.com/auth/devstorage.full_control"
97
98	// View your data in Google Cloud Storage
99	DevstorageReadOnlyScope = "https://www.googleapis.com/auth/devstorage.read_only"
100
101	// Manage your data in Google Cloud Storage
102	DevstorageReadWriteScope = "https://www.googleapis.com/auth/devstorage.read_write"
103)
104
105// NewService creates a new Service.
106func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
107	scopesOption := option.WithScopes(
108		"https://www.googleapis.com/auth/cloud-platform",
109		"https://www.googleapis.com/auth/compute",
110		"https://www.googleapis.com/auth/compute.readonly",
111		"https://www.googleapis.com/auth/devstorage.full_control",
112		"https://www.googleapis.com/auth/devstorage.read_only",
113		"https://www.googleapis.com/auth/devstorage.read_write",
114	)
115	// NOTE: prepend, so we don't override user-specified scopes.
116	opts = append([]option.ClientOption{scopesOption}, opts...)
117	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
118	opts = append(opts, internaloption.WithDefaultMTLSEndpoint(mtlsBasePath))
119	client, endpoint, err := htransport.NewClient(ctx, opts...)
120	if err != nil {
121		return nil, err
122	}
123	s, err := New(client)
124	if err != nil {
125		return nil, err
126	}
127	if endpoint != "" {
128		s.BasePath = endpoint
129	}
130	return s, nil
131}
132
133// New creates a new Service. It uses the provided http.Client for requests.
134//
135// Deprecated: please use NewService instead.
136// To provide a custom HTTP client, use option.WithHTTPClient.
137// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
138func New(client *http.Client) (*Service, error) {
139	if client == nil {
140		return nil, errors.New("client is nil")
141	}
142	s := &Service{client: client, BasePath: basePath}
143	s.AcceleratorTypes = NewAcceleratorTypesService(s)
144	s.Addresses = NewAddressesService(s)
145	s.Autoscalers = NewAutoscalersService(s)
146	s.BackendBuckets = NewBackendBucketsService(s)
147	s.BackendServices = NewBackendServicesService(s)
148	s.DiskTypes = NewDiskTypesService(s)
149	s.Disks = NewDisksService(s)
150	s.ExternalVpnGateways = NewExternalVpnGatewaysService(s)
151	s.FirewallPolicies = NewFirewallPoliciesService(s)
152	s.Firewalls = NewFirewallsService(s)
153	s.ForwardingRules = NewForwardingRulesService(s)
154	s.GlobalAddresses = NewGlobalAddressesService(s)
155	s.GlobalForwardingRules = NewGlobalForwardingRulesService(s)
156	s.GlobalNetworkEndpointGroups = NewGlobalNetworkEndpointGroupsService(s)
157	s.GlobalOperations = NewGlobalOperationsService(s)
158	s.GlobalOrganizationOperations = NewGlobalOrganizationOperationsService(s)
159	s.GlobalPublicDelegatedPrefixes = NewGlobalPublicDelegatedPrefixesService(s)
160	s.HealthChecks = NewHealthChecksService(s)
161	s.HttpHealthChecks = NewHttpHealthChecksService(s)
162	s.HttpsHealthChecks = NewHttpsHealthChecksService(s)
163	s.Images = NewImagesService(s)
164	s.InstanceGroupManagers = NewInstanceGroupManagersService(s)
165	s.InstanceGroups = NewInstanceGroupsService(s)
166	s.InstanceTemplates = NewInstanceTemplatesService(s)
167	s.Instances = NewInstancesService(s)
168	s.InterconnectAttachments = NewInterconnectAttachmentsService(s)
169	s.InterconnectLocations = NewInterconnectLocationsService(s)
170	s.Interconnects = NewInterconnectsService(s)
171	s.LicenseCodes = NewLicenseCodesService(s)
172	s.Licenses = NewLicensesService(s)
173	s.MachineTypes = NewMachineTypesService(s)
174	s.NetworkEndpointGroups = NewNetworkEndpointGroupsService(s)
175	s.Networks = NewNetworksService(s)
176	s.NodeGroups = NewNodeGroupsService(s)
177	s.NodeTemplates = NewNodeTemplatesService(s)
178	s.NodeTypes = NewNodeTypesService(s)
179	s.PacketMirrorings = NewPacketMirroringsService(s)
180	s.Projects = NewProjectsService(s)
181	s.PublicAdvertisedPrefixes = NewPublicAdvertisedPrefixesService(s)
182	s.PublicDelegatedPrefixes = NewPublicDelegatedPrefixesService(s)
183	s.RegionAutoscalers = NewRegionAutoscalersService(s)
184	s.RegionBackendServices = NewRegionBackendServicesService(s)
185	s.RegionCommitments = NewRegionCommitmentsService(s)
186	s.RegionDiskTypes = NewRegionDiskTypesService(s)
187	s.RegionDisks = NewRegionDisksService(s)
188	s.RegionHealthCheckServices = NewRegionHealthCheckServicesService(s)
189	s.RegionHealthChecks = NewRegionHealthChecksService(s)
190	s.RegionInstanceGroupManagers = NewRegionInstanceGroupManagersService(s)
191	s.RegionInstanceGroups = NewRegionInstanceGroupsService(s)
192	s.RegionInstances = NewRegionInstancesService(s)
193	s.RegionNetworkEndpointGroups = NewRegionNetworkEndpointGroupsService(s)
194	s.RegionNotificationEndpoints = NewRegionNotificationEndpointsService(s)
195	s.RegionOperations = NewRegionOperationsService(s)
196	s.RegionSslCertificates = NewRegionSslCertificatesService(s)
197	s.RegionTargetHttpProxies = NewRegionTargetHttpProxiesService(s)
198	s.RegionTargetHttpsProxies = NewRegionTargetHttpsProxiesService(s)
199	s.RegionUrlMaps = NewRegionUrlMapsService(s)
200	s.Regions = NewRegionsService(s)
201	s.Reservations = NewReservationsService(s)
202	s.ResourcePolicies = NewResourcePoliciesService(s)
203	s.Routers = NewRoutersService(s)
204	s.Routes = NewRoutesService(s)
205	s.SecurityPolicies = NewSecurityPoliciesService(s)
206	s.Snapshots = NewSnapshotsService(s)
207	s.SslCertificates = NewSslCertificatesService(s)
208	s.SslPolicies = NewSslPoliciesService(s)
209	s.Subnetworks = NewSubnetworksService(s)
210	s.TargetGrpcProxies = NewTargetGrpcProxiesService(s)
211	s.TargetHttpProxies = NewTargetHttpProxiesService(s)
212	s.TargetHttpsProxies = NewTargetHttpsProxiesService(s)
213	s.TargetInstances = NewTargetInstancesService(s)
214	s.TargetPools = NewTargetPoolsService(s)
215	s.TargetSslProxies = NewTargetSslProxiesService(s)
216	s.TargetTcpProxies = NewTargetTcpProxiesService(s)
217	s.TargetVpnGateways = NewTargetVpnGatewaysService(s)
218	s.UrlMaps = NewUrlMapsService(s)
219	s.VpnGateways = NewVpnGatewaysService(s)
220	s.VpnTunnels = NewVpnTunnelsService(s)
221	s.ZoneOperations = NewZoneOperationsService(s)
222	s.Zones = NewZonesService(s)
223	return s, nil
224}
225
226type Service struct {
227	client    *http.Client
228	BasePath  string // API endpoint base URL
229	UserAgent string // optional additional User-Agent fragment
230
231	AcceleratorTypes *AcceleratorTypesService
232
233	Addresses *AddressesService
234
235	Autoscalers *AutoscalersService
236
237	BackendBuckets *BackendBucketsService
238
239	BackendServices *BackendServicesService
240
241	DiskTypes *DiskTypesService
242
243	Disks *DisksService
244
245	ExternalVpnGateways *ExternalVpnGatewaysService
246
247	FirewallPolicies *FirewallPoliciesService
248
249	Firewalls *FirewallsService
250
251	ForwardingRules *ForwardingRulesService
252
253	GlobalAddresses *GlobalAddressesService
254
255	GlobalForwardingRules *GlobalForwardingRulesService
256
257	GlobalNetworkEndpointGroups *GlobalNetworkEndpointGroupsService
258
259	GlobalOperations *GlobalOperationsService
260
261	GlobalOrganizationOperations *GlobalOrganizationOperationsService
262
263	GlobalPublicDelegatedPrefixes *GlobalPublicDelegatedPrefixesService
264
265	HealthChecks *HealthChecksService
266
267	HttpHealthChecks *HttpHealthChecksService
268
269	HttpsHealthChecks *HttpsHealthChecksService
270
271	Images *ImagesService
272
273	InstanceGroupManagers *InstanceGroupManagersService
274
275	InstanceGroups *InstanceGroupsService
276
277	InstanceTemplates *InstanceTemplatesService
278
279	Instances *InstancesService
280
281	InterconnectAttachments *InterconnectAttachmentsService
282
283	InterconnectLocations *InterconnectLocationsService
284
285	Interconnects *InterconnectsService
286
287	LicenseCodes *LicenseCodesService
288
289	Licenses *LicensesService
290
291	MachineTypes *MachineTypesService
292
293	NetworkEndpointGroups *NetworkEndpointGroupsService
294
295	Networks *NetworksService
296
297	NodeGroups *NodeGroupsService
298
299	NodeTemplates *NodeTemplatesService
300
301	NodeTypes *NodeTypesService
302
303	PacketMirrorings *PacketMirroringsService
304
305	Projects *ProjectsService
306
307	PublicAdvertisedPrefixes *PublicAdvertisedPrefixesService
308
309	PublicDelegatedPrefixes *PublicDelegatedPrefixesService
310
311	RegionAutoscalers *RegionAutoscalersService
312
313	RegionBackendServices *RegionBackendServicesService
314
315	RegionCommitments *RegionCommitmentsService
316
317	RegionDiskTypes *RegionDiskTypesService
318
319	RegionDisks *RegionDisksService
320
321	RegionHealthCheckServices *RegionHealthCheckServicesService
322
323	RegionHealthChecks *RegionHealthChecksService
324
325	RegionInstanceGroupManagers *RegionInstanceGroupManagersService
326
327	RegionInstanceGroups *RegionInstanceGroupsService
328
329	RegionInstances *RegionInstancesService
330
331	RegionNetworkEndpointGroups *RegionNetworkEndpointGroupsService
332
333	RegionNotificationEndpoints *RegionNotificationEndpointsService
334
335	RegionOperations *RegionOperationsService
336
337	RegionSslCertificates *RegionSslCertificatesService
338
339	RegionTargetHttpProxies *RegionTargetHttpProxiesService
340
341	RegionTargetHttpsProxies *RegionTargetHttpsProxiesService
342
343	RegionUrlMaps *RegionUrlMapsService
344
345	Regions *RegionsService
346
347	Reservations *ReservationsService
348
349	ResourcePolicies *ResourcePoliciesService
350
351	Routers *RoutersService
352
353	Routes *RoutesService
354
355	SecurityPolicies *SecurityPoliciesService
356
357	Snapshots *SnapshotsService
358
359	SslCertificates *SslCertificatesService
360
361	SslPolicies *SslPoliciesService
362
363	Subnetworks *SubnetworksService
364
365	TargetGrpcProxies *TargetGrpcProxiesService
366
367	TargetHttpProxies *TargetHttpProxiesService
368
369	TargetHttpsProxies *TargetHttpsProxiesService
370
371	TargetInstances *TargetInstancesService
372
373	TargetPools *TargetPoolsService
374
375	TargetSslProxies *TargetSslProxiesService
376
377	TargetTcpProxies *TargetTcpProxiesService
378
379	TargetVpnGateways *TargetVpnGatewaysService
380
381	UrlMaps *UrlMapsService
382
383	VpnGateways *VpnGatewaysService
384
385	VpnTunnels *VpnTunnelsService
386
387	ZoneOperations *ZoneOperationsService
388
389	Zones *ZonesService
390}
391
392func (s *Service) userAgent() string {
393	if s.UserAgent == "" {
394		return googleapi.UserAgent
395	}
396	return googleapi.UserAgent + " " + s.UserAgent
397}
398
399func NewAcceleratorTypesService(s *Service) *AcceleratorTypesService {
400	rs := &AcceleratorTypesService{s: s}
401	return rs
402}
403
404type AcceleratorTypesService struct {
405	s *Service
406}
407
408func NewAddressesService(s *Service) *AddressesService {
409	rs := &AddressesService{s: s}
410	return rs
411}
412
413type AddressesService struct {
414	s *Service
415}
416
417func NewAutoscalersService(s *Service) *AutoscalersService {
418	rs := &AutoscalersService{s: s}
419	return rs
420}
421
422type AutoscalersService struct {
423	s *Service
424}
425
426func NewBackendBucketsService(s *Service) *BackendBucketsService {
427	rs := &BackendBucketsService{s: s}
428	return rs
429}
430
431type BackendBucketsService struct {
432	s *Service
433}
434
435func NewBackendServicesService(s *Service) *BackendServicesService {
436	rs := &BackendServicesService{s: s}
437	return rs
438}
439
440type BackendServicesService struct {
441	s *Service
442}
443
444func NewDiskTypesService(s *Service) *DiskTypesService {
445	rs := &DiskTypesService{s: s}
446	return rs
447}
448
449type DiskTypesService struct {
450	s *Service
451}
452
453func NewDisksService(s *Service) *DisksService {
454	rs := &DisksService{s: s}
455	return rs
456}
457
458type DisksService struct {
459	s *Service
460}
461
462func NewExternalVpnGatewaysService(s *Service) *ExternalVpnGatewaysService {
463	rs := &ExternalVpnGatewaysService{s: s}
464	return rs
465}
466
467type ExternalVpnGatewaysService struct {
468	s *Service
469}
470
471func NewFirewallPoliciesService(s *Service) *FirewallPoliciesService {
472	rs := &FirewallPoliciesService{s: s}
473	return rs
474}
475
476type FirewallPoliciesService struct {
477	s *Service
478}
479
480func NewFirewallsService(s *Service) *FirewallsService {
481	rs := &FirewallsService{s: s}
482	return rs
483}
484
485type FirewallsService struct {
486	s *Service
487}
488
489func NewForwardingRulesService(s *Service) *ForwardingRulesService {
490	rs := &ForwardingRulesService{s: s}
491	return rs
492}
493
494type ForwardingRulesService struct {
495	s *Service
496}
497
498func NewGlobalAddressesService(s *Service) *GlobalAddressesService {
499	rs := &GlobalAddressesService{s: s}
500	return rs
501}
502
503type GlobalAddressesService struct {
504	s *Service
505}
506
507func NewGlobalForwardingRulesService(s *Service) *GlobalForwardingRulesService {
508	rs := &GlobalForwardingRulesService{s: s}
509	return rs
510}
511
512type GlobalForwardingRulesService struct {
513	s *Service
514}
515
516func NewGlobalNetworkEndpointGroupsService(s *Service) *GlobalNetworkEndpointGroupsService {
517	rs := &GlobalNetworkEndpointGroupsService{s: s}
518	return rs
519}
520
521type GlobalNetworkEndpointGroupsService struct {
522	s *Service
523}
524
525func NewGlobalOperationsService(s *Service) *GlobalOperationsService {
526	rs := &GlobalOperationsService{s: s}
527	return rs
528}
529
530type GlobalOperationsService struct {
531	s *Service
532}
533
534func NewGlobalOrganizationOperationsService(s *Service) *GlobalOrganizationOperationsService {
535	rs := &GlobalOrganizationOperationsService{s: s}
536	return rs
537}
538
539type GlobalOrganizationOperationsService struct {
540	s *Service
541}
542
543func NewGlobalPublicDelegatedPrefixesService(s *Service) *GlobalPublicDelegatedPrefixesService {
544	rs := &GlobalPublicDelegatedPrefixesService{s: s}
545	return rs
546}
547
548type GlobalPublicDelegatedPrefixesService struct {
549	s *Service
550}
551
552func NewHealthChecksService(s *Service) *HealthChecksService {
553	rs := &HealthChecksService{s: s}
554	return rs
555}
556
557type HealthChecksService struct {
558	s *Service
559}
560
561func NewHttpHealthChecksService(s *Service) *HttpHealthChecksService {
562	rs := &HttpHealthChecksService{s: s}
563	return rs
564}
565
566type HttpHealthChecksService struct {
567	s *Service
568}
569
570func NewHttpsHealthChecksService(s *Service) *HttpsHealthChecksService {
571	rs := &HttpsHealthChecksService{s: s}
572	return rs
573}
574
575type HttpsHealthChecksService struct {
576	s *Service
577}
578
579func NewImagesService(s *Service) *ImagesService {
580	rs := &ImagesService{s: s}
581	return rs
582}
583
584type ImagesService struct {
585	s *Service
586}
587
588func NewInstanceGroupManagersService(s *Service) *InstanceGroupManagersService {
589	rs := &InstanceGroupManagersService{s: s}
590	return rs
591}
592
593type InstanceGroupManagersService struct {
594	s *Service
595}
596
597func NewInstanceGroupsService(s *Service) *InstanceGroupsService {
598	rs := &InstanceGroupsService{s: s}
599	return rs
600}
601
602type InstanceGroupsService struct {
603	s *Service
604}
605
606func NewInstanceTemplatesService(s *Service) *InstanceTemplatesService {
607	rs := &InstanceTemplatesService{s: s}
608	return rs
609}
610
611type InstanceTemplatesService struct {
612	s *Service
613}
614
615func NewInstancesService(s *Service) *InstancesService {
616	rs := &InstancesService{s: s}
617	return rs
618}
619
620type InstancesService struct {
621	s *Service
622}
623
624func NewInterconnectAttachmentsService(s *Service) *InterconnectAttachmentsService {
625	rs := &InterconnectAttachmentsService{s: s}
626	return rs
627}
628
629type InterconnectAttachmentsService struct {
630	s *Service
631}
632
633func NewInterconnectLocationsService(s *Service) *InterconnectLocationsService {
634	rs := &InterconnectLocationsService{s: s}
635	return rs
636}
637
638type InterconnectLocationsService struct {
639	s *Service
640}
641
642func NewInterconnectsService(s *Service) *InterconnectsService {
643	rs := &InterconnectsService{s: s}
644	return rs
645}
646
647type InterconnectsService struct {
648	s *Service
649}
650
651func NewLicenseCodesService(s *Service) *LicenseCodesService {
652	rs := &LicenseCodesService{s: s}
653	return rs
654}
655
656type LicenseCodesService struct {
657	s *Service
658}
659
660func NewLicensesService(s *Service) *LicensesService {
661	rs := &LicensesService{s: s}
662	return rs
663}
664
665type LicensesService struct {
666	s *Service
667}
668
669func NewMachineTypesService(s *Service) *MachineTypesService {
670	rs := &MachineTypesService{s: s}
671	return rs
672}
673
674type MachineTypesService struct {
675	s *Service
676}
677
678func NewNetworkEndpointGroupsService(s *Service) *NetworkEndpointGroupsService {
679	rs := &NetworkEndpointGroupsService{s: s}
680	return rs
681}
682
683type NetworkEndpointGroupsService struct {
684	s *Service
685}
686
687func NewNetworksService(s *Service) *NetworksService {
688	rs := &NetworksService{s: s}
689	return rs
690}
691
692type NetworksService struct {
693	s *Service
694}
695
696func NewNodeGroupsService(s *Service) *NodeGroupsService {
697	rs := &NodeGroupsService{s: s}
698	return rs
699}
700
701type NodeGroupsService struct {
702	s *Service
703}
704
705func NewNodeTemplatesService(s *Service) *NodeTemplatesService {
706	rs := &NodeTemplatesService{s: s}
707	return rs
708}
709
710type NodeTemplatesService struct {
711	s *Service
712}
713
714func NewNodeTypesService(s *Service) *NodeTypesService {
715	rs := &NodeTypesService{s: s}
716	return rs
717}
718
719type NodeTypesService struct {
720	s *Service
721}
722
723func NewPacketMirroringsService(s *Service) *PacketMirroringsService {
724	rs := &PacketMirroringsService{s: s}
725	return rs
726}
727
728type PacketMirroringsService struct {
729	s *Service
730}
731
732func NewProjectsService(s *Service) *ProjectsService {
733	rs := &ProjectsService{s: s}
734	return rs
735}
736
737type ProjectsService struct {
738	s *Service
739}
740
741func NewPublicAdvertisedPrefixesService(s *Service) *PublicAdvertisedPrefixesService {
742	rs := &PublicAdvertisedPrefixesService{s: s}
743	return rs
744}
745
746type PublicAdvertisedPrefixesService struct {
747	s *Service
748}
749
750func NewPublicDelegatedPrefixesService(s *Service) *PublicDelegatedPrefixesService {
751	rs := &PublicDelegatedPrefixesService{s: s}
752	return rs
753}
754
755type PublicDelegatedPrefixesService struct {
756	s *Service
757}
758
759func NewRegionAutoscalersService(s *Service) *RegionAutoscalersService {
760	rs := &RegionAutoscalersService{s: s}
761	return rs
762}
763
764type RegionAutoscalersService struct {
765	s *Service
766}
767
768func NewRegionBackendServicesService(s *Service) *RegionBackendServicesService {
769	rs := &RegionBackendServicesService{s: s}
770	return rs
771}
772
773type RegionBackendServicesService struct {
774	s *Service
775}
776
777func NewRegionCommitmentsService(s *Service) *RegionCommitmentsService {
778	rs := &RegionCommitmentsService{s: s}
779	return rs
780}
781
782type RegionCommitmentsService struct {
783	s *Service
784}
785
786func NewRegionDiskTypesService(s *Service) *RegionDiskTypesService {
787	rs := &RegionDiskTypesService{s: s}
788	return rs
789}
790
791type RegionDiskTypesService struct {
792	s *Service
793}
794
795func NewRegionDisksService(s *Service) *RegionDisksService {
796	rs := &RegionDisksService{s: s}
797	return rs
798}
799
800type RegionDisksService struct {
801	s *Service
802}
803
804func NewRegionHealthCheckServicesService(s *Service) *RegionHealthCheckServicesService {
805	rs := &RegionHealthCheckServicesService{s: s}
806	return rs
807}
808
809type RegionHealthCheckServicesService struct {
810	s *Service
811}
812
813func NewRegionHealthChecksService(s *Service) *RegionHealthChecksService {
814	rs := &RegionHealthChecksService{s: s}
815	return rs
816}
817
818type RegionHealthChecksService struct {
819	s *Service
820}
821
822func NewRegionInstanceGroupManagersService(s *Service) *RegionInstanceGroupManagersService {
823	rs := &RegionInstanceGroupManagersService{s: s}
824	return rs
825}
826
827type RegionInstanceGroupManagersService struct {
828	s *Service
829}
830
831func NewRegionInstanceGroupsService(s *Service) *RegionInstanceGroupsService {
832	rs := &RegionInstanceGroupsService{s: s}
833	return rs
834}
835
836type RegionInstanceGroupsService struct {
837	s *Service
838}
839
840func NewRegionInstancesService(s *Service) *RegionInstancesService {
841	rs := &RegionInstancesService{s: s}
842	return rs
843}
844
845type RegionInstancesService struct {
846	s *Service
847}
848
849func NewRegionNetworkEndpointGroupsService(s *Service) *RegionNetworkEndpointGroupsService {
850	rs := &RegionNetworkEndpointGroupsService{s: s}
851	return rs
852}
853
854type RegionNetworkEndpointGroupsService struct {
855	s *Service
856}
857
858func NewRegionNotificationEndpointsService(s *Service) *RegionNotificationEndpointsService {
859	rs := &RegionNotificationEndpointsService{s: s}
860	return rs
861}
862
863type RegionNotificationEndpointsService struct {
864	s *Service
865}
866
867func NewRegionOperationsService(s *Service) *RegionOperationsService {
868	rs := &RegionOperationsService{s: s}
869	return rs
870}
871
872type RegionOperationsService struct {
873	s *Service
874}
875
876func NewRegionSslCertificatesService(s *Service) *RegionSslCertificatesService {
877	rs := &RegionSslCertificatesService{s: s}
878	return rs
879}
880
881type RegionSslCertificatesService struct {
882	s *Service
883}
884
885func NewRegionTargetHttpProxiesService(s *Service) *RegionTargetHttpProxiesService {
886	rs := &RegionTargetHttpProxiesService{s: s}
887	return rs
888}
889
890type RegionTargetHttpProxiesService struct {
891	s *Service
892}
893
894func NewRegionTargetHttpsProxiesService(s *Service) *RegionTargetHttpsProxiesService {
895	rs := &RegionTargetHttpsProxiesService{s: s}
896	return rs
897}
898
899type RegionTargetHttpsProxiesService struct {
900	s *Service
901}
902
903func NewRegionUrlMapsService(s *Service) *RegionUrlMapsService {
904	rs := &RegionUrlMapsService{s: s}
905	return rs
906}
907
908type RegionUrlMapsService struct {
909	s *Service
910}
911
912func NewRegionsService(s *Service) *RegionsService {
913	rs := &RegionsService{s: s}
914	return rs
915}
916
917type RegionsService struct {
918	s *Service
919}
920
921func NewReservationsService(s *Service) *ReservationsService {
922	rs := &ReservationsService{s: s}
923	return rs
924}
925
926type ReservationsService struct {
927	s *Service
928}
929
930func NewResourcePoliciesService(s *Service) *ResourcePoliciesService {
931	rs := &ResourcePoliciesService{s: s}
932	return rs
933}
934
935type ResourcePoliciesService struct {
936	s *Service
937}
938
939func NewRoutersService(s *Service) *RoutersService {
940	rs := &RoutersService{s: s}
941	return rs
942}
943
944type RoutersService struct {
945	s *Service
946}
947
948func NewRoutesService(s *Service) *RoutesService {
949	rs := &RoutesService{s: s}
950	return rs
951}
952
953type RoutesService struct {
954	s *Service
955}
956
957func NewSecurityPoliciesService(s *Service) *SecurityPoliciesService {
958	rs := &SecurityPoliciesService{s: s}
959	return rs
960}
961
962type SecurityPoliciesService struct {
963	s *Service
964}
965
966func NewSnapshotsService(s *Service) *SnapshotsService {
967	rs := &SnapshotsService{s: s}
968	return rs
969}
970
971type SnapshotsService struct {
972	s *Service
973}
974
975func NewSslCertificatesService(s *Service) *SslCertificatesService {
976	rs := &SslCertificatesService{s: s}
977	return rs
978}
979
980type SslCertificatesService struct {
981	s *Service
982}
983
984func NewSslPoliciesService(s *Service) *SslPoliciesService {
985	rs := &SslPoliciesService{s: s}
986	return rs
987}
988
989type SslPoliciesService struct {
990	s *Service
991}
992
993func NewSubnetworksService(s *Service) *SubnetworksService {
994	rs := &SubnetworksService{s: s}
995	return rs
996}
997
998type SubnetworksService struct {
999	s *Service
1000}
1001
1002func NewTargetGrpcProxiesService(s *Service) *TargetGrpcProxiesService {
1003	rs := &TargetGrpcProxiesService{s: s}
1004	return rs
1005}
1006
1007type TargetGrpcProxiesService struct {
1008	s *Service
1009}
1010
1011func NewTargetHttpProxiesService(s *Service) *TargetHttpProxiesService {
1012	rs := &TargetHttpProxiesService{s: s}
1013	return rs
1014}
1015
1016type TargetHttpProxiesService struct {
1017	s *Service
1018}
1019
1020func NewTargetHttpsProxiesService(s *Service) *TargetHttpsProxiesService {
1021	rs := &TargetHttpsProxiesService{s: s}
1022	return rs
1023}
1024
1025type TargetHttpsProxiesService struct {
1026	s *Service
1027}
1028
1029func NewTargetInstancesService(s *Service) *TargetInstancesService {
1030	rs := &TargetInstancesService{s: s}
1031	return rs
1032}
1033
1034type TargetInstancesService struct {
1035	s *Service
1036}
1037
1038func NewTargetPoolsService(s *Service) *TargetPoolsService {
1039	rs := &TargetPoolsService{s: s}
1040	return rs
1041}
1042
1043type TargetPoolsService struct {
1044	s *Service
1045}
1046
1047func NewTargetSslProxiesService(s *Service) *TargetSslProxiesService {
1048	rs := &TargetSslProxiesService{s: s}
1049	return rs
1050}
1051
1052type TargetSslProxiesService struct {
1053	s *Service
1054}
1055
1056func NewTargetTcpProxiesService(s *Service) *TargetTcpProxiesService {
1057	rs := &TargetTcpProxiesService{s: s}
1058	return rs
1059}
1060
1061type TargetTcpProxiesService struct {
1062	s *Service
1063}
1064
1065func NewTargetVpnGatewaysService(s *Service) *TargetVpnGatewaysService {
1066	rs := &TargetVpnGatewaysService{s: s}
1067	return rs
1068}
1069
1070type TargetVpnGatewaysService struct {
1071	s *Service
1072}
1073
1074func NewUrlMapsService(s *Service) *UrlMapsService {
1075	rs := &UrlMapsService{s: s}
1076	return rs
1077}
1078
1079type UrlMapsService struct {
1080	s *Service
1081}
1082
1083func NewVpnGatewaysService(s *Service) *VpnGatewaysService {
1084	rs := &VpnGatewaysService{s: s}
1085	return rs
1086}
1087
1088type VpnGatewaysService struct {
1089	s *Service
1090}
1091
1092func NewVpnTunnelsService(s *Service) *VpnTunnelsService {
1093	rs := &VpnTunnelsService{s: s}
1094	return rs
1095}
1096
1097type VpnTunnelsService struct {
1098	s *Service
1099}
1100
1101func NewZoneOperationsService(s *Service) *ZoneOperationsService {
1102	rs := &ZoneOperationsService{s: s}
1103	return rs
1104}
1105
1106type ZoneOperationsService struct {
1107	s *Service
1108}
1109
1110func NewZonesService(s *Service) *ZonesService {
1111	rs := &ZonesService{s: s}
1112	return rs
1113}
1114
1115type ZonesService struct {
1116	s *Service
1117}
1118
1119// AcceleratorConfig: A specification of the type and number of
1120// accelerator cards attached to the instance.
1121type AcceleratorConfig struct {
1122	// AcceleratorCount: The number of the guest accelerator cards exposed
1123	// to this instance.
1124	AcceleratorCount int64 `json:"acceleratorCount,omitempty"`
1125
1126	// AcceleratorType: Full or partial URL of the accelerator type resource
1127	// to attach to this instance. For example:
1128	// projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-
1129	// p100 If you are creating an instance template, specify only the
1130	// accelerator name. See GPUs on Compute Engine for a full list of
1131	// accelerator types.
1132	AcceleratorType string `json:"acceleratorType,omitempty"`
1133
1134	// ForceSendFields is a list of field names (e.g. "AcceleratorCount") to
1135	// unconditionally include in API requests. By default, fields with
1136	// empty values are omitted from API requests. However, any non-pointer,
1137	// non-interface field appearing in ForceSendFields will be sent to the
1138	// server regardless of whether the field is empty or not. This may be
1139	// used to include empty fields in Patch requests.
1140	ForceSendFields []string `json:"-"`
1141
1142	// NullFields is a list of field names (e.g. "AcceleratorCount") to
1143	// include in API requests with the JSON null value. By default, fields
1144	// with empty values are omitted from API requests. However, any field
1145	// with an empty value appearing in NullFields will be sent to the
1146	// server as null. It is an error if a field in this list has a
1147	// non-empty value. This may be used to include null fields in Patch
1148	// requests.
1149	NullFields []string `json:"-"`
1150}
1151
1152func (s *AcceleratorConfig) MarshalJSON() ([]byte, error) {
1153	type NoMethod AcceleratorConfig
1154	raw := NoMethod(*s)
1155	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1156}
1157
1158// AcceleratorType: Represents an Accelerator Type resource.
1159//
1160// Google Cloud Platform provides graphics processing units
1161// (accelerators) that you can add to VM instances to improve or
1162// accelerate performance when working with intensive workloads. For
1163// more information, read GPUs on Compute Engine. (== resource_for
1164// {$api_version}.acceleratorTypes ==)
1165type AcceleratorType struct {
1166	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
1167	// format.
1168	CreationTimestamp string `json:"creationTimestamp,omitempty"`
1169
1170	// Deprecated -- [Output Only] The deprecation status associated with
1171	// this accelerator type.
1172	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
1173
1174	// Description: [Output Only] An optional textual description of the
1175	// resource.
1176	Description string `json:"description,omitempty"`
1177
1178	// Id: [Output Only] The unique identifier for the resource. This
1179	// identifier is defined by the server.
1180	Id uint64 `json:"id,omitempty,string"`
1181
1182	// Kind: [Output Only] The type of the resource. Always
1183	// compute#acceleratorType for accelerator types.
1184	Kind string `json:"kind,omitempty"`
1185
1186	// MaximumCardsPerInstance: [Output Only] Maximum number of accelerator
1187	// cards allowed per instance.
1188	MaximumCardsPerInstance int64 `json:"maximumCardsPerInstance,omitempty"`
1189
1190	// Name: [Output Only] Name of the resource.
1191	Name string `json:"name,omitempty"`
1192
1193	// SelfLink: [Output Only] Server-defined, fully qualified URL for this
1194	// resource.
1195	SelfLink string `json:"selfLink,omitempty"`
1196
1197	// Zone: [Output Only] The name of the zone where the accelerator type
1198	// resides, such as us-central1-a. You must specify this field as part
1199	// of the HTTP request URL. It is not settable as a field in the request
1200	// body.
1201	Zone string `json:"zone,omitempty"`
1202
1203	// ServerResponse contains the HTTP response code and headers from the
1204	// server.
1205	googleapi.ServerResponse `json:"-"`
1206
1207	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
1208	// to unconditionally include in API requests. By default, fields with
1209	// empty values are omitted from API requests. However, any non-pointer,
1210	// non-interface field appearing in ForceSendFields will be sent to the
1211	// server regardless of whether the field is empty or not. This may be
1212	// used to include empty fields in Patch requests.
1213	ForceSendFields []string `json:"-"`
1214
1215	// NullFields is a list of field names (e.g. "CreationTimestamp") to
1216	// include in API requests with the JSON null value. By default, fields
1217	// with empty values are omitted from API requests. However, any field
1218	// with an empty value appearing in NullFields will be sent to the
1219	// server as null. It is an error if a field in this list has a
1220	// non-empty value. This may be used to include null fields in Patch
1221	// requests.
1222	NullFields []string `json:"-"`
1223}
1224
1225func (s *AcceleratorType) MarshalJSON() ([]byte, error) {
1226	type NoMethod AcceleratorType
1227	raw := NoMethod(*s)
1228	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1229}
1230
1231type AcceleratorTypeAggregatedList struct {
1232	// Id: [Output Only] Unique identifier for the resource; defined by the
1233	// server.
1234	Id string `json:"id,omitempty"`
1235
1236	// Items: A list of AcceleratorTypesScopedList resources.
1237	Items map[string]AcceleratorTypesScopedList `json:"items,omitempty"`
1238
1239	// Kind: [Output Only] Type of resource. Always
1240	// compute#acceleratorTypeAggregatedList for aggregated lists of
1241	// accelerator types.
1242	Kind string `json:"kind,omitempty"`
1243
1244	// NextPageToken: [Output Only] This token allows you to get the next
1245	// page of results for list requests. If the number of results is larger
1246	// than maxResults, use the nextPageToken as a value for the query
1247	// parameter pageToken in the next list request. Subsequent list
1248	// requests will have their own nextPageToken to continue paging through
1249	// the results.
1250	NextPageToken string `json:"nextPageToken,omitempty"`
1251
1252	// SelfLink: [Output Only] Server-defined URL for this resource.
1253	SelfLink string `json:"selfLink,omitempty"`
1254
1255	// Unreachables: [Output Only] Unreachable resources.
1256	Unreachables []string `json:"unreachables,omitempty"`
1257
1258	// Warning: [Output Only] Informational warning message.
1259	Warning *AcceleratorTypeAggregatedListWarning `json:"warning,omitempty"`
1260
1261	// ServerResponse contains the HTTP response code and headers from the
1262	// server.
1263	googleapi.ServerResponse `json:"-"`
1264
1265	// ForceSendFields is a list of field names (e.g. "Id") to
1266	// unconditionally include in API requests. By default, fields with
1267	// empty values are omitted from API requests. However, any non-pointer,
1268	// non-interface field appearing in ForceSendFields will be sent to the
1269	// server regardless of whether the field is empty or not. This may be
1270	// used to include empty fields in Patch requests.
1271	ForceSendFields []string `json:"-"`
1272
1273	// NullFields is a list of field names (e.g. "Id") to include in API
1274	// requests with the JSON null value. By default, fields with empty
1275	// values are omitted from API requests. However, any field with an
1276	// empty value appearing in NullFields will be sent to the server as
1277	// null. It is an error if a field in this list has a non-empty value.
1278	// This may be used to include null fields in Patch requests.
1279	NullFields []string `json:"-"`
1280}
1281
1282func (s *AcceleratorTypeAggregatedList) MarshalJSON() ([]byte, error) {
1283	type NoMethod AcceleratorTypeAggregatedList
1284	raw := NoMethod(*s)
1285	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1286}
1287
1288// AcceleratorTypeAggregatedListWarning: [Output Only] Informational
1289// warning message.
1290type AcceleratorTypeAggregatedListWarning struct {
1291	// Code: [Output Only] A warning code, if applicable. For example,
1292	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1293	// the response.
1294	//
1295	// Possible values:
1296	//   "CLEANUP_FAILED"
1297	//   "DEPRECATED_RESOURCE_USED"
1298	//   "DEPRECATED_TYPE_USED"
1299	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1300	//   "EXPERIMENTAL_TYPE_USED"
1301	//   "EXTERNAL_API_WARNING"
1302	//   "FIELD_VALUE_OVERRIDEN"
1303	//   "INJECTED_KERNELS_DEPRECATED"
1304	//   "LARGE_DEPLOYMENT_WARNING"
1305	//   "MISSING_TYPE_DEPENDENCY"
1306	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1307	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1308	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1309	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1310	//   "NEXT_HOP_NOT_RUNNING"
1311	//   "NOT_CRITICAL_ERROR"
1312	//   "NO_RESULTS_ON_PAGE"
1313	//   "PARTIAL_SUCCESS"
1314	//   "REQUIRED_TOS_AGREEMENT"
1315	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1316	//   "RESOURCE_NOT_DELETED"
1317	//   "SCHEMA_VALIDATION_IGNORED"
1318	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1319	//   "UNDECLARED_PROPERTIES"
1320	//   "UNREACHABLE"
1321	Code string `json:"code,omitempty"`
1322
1323	// Data: [Output Only] Metadata about this warning in key: value format.
1324	// For example:
1325	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1326	Data []*AcceleratorTypeAggregatedListWarningData `json:"data,omitempty"`
1327
1328	// Message: [Output Only] A human-readable description of the warning
1329	// code.
1330	Message string `json:"message,omitempty"`
1331
1332	// ForceSendFields is a list of field names (e.g. "Code") to
1333	// unconditionally include in API requests. By default, fields with
1334	// empty values are omitted from API requests. However, any non-pointer,
1335	// non-interface field appearing in ForceSendFields will be sent to the
1336	// server regardless of whether the field is empty or not. This may be
1337	// used to include empty fields in Patch requests.
1338	ForceSendFields []string `json:"-"`
1339
1340	// NullFields is a list of field names (e.g. "Code") to include in API
1341	// requests with the JSON null value. By default, fields with empty
1342	// values are omitted from API requests. However, any field with an
1343	// empty value appearing in NullFields will be sent to the server as
1344	// null. It is an error if a field in this list has a non-empty value.
1345	// This may be used to include null fields in Patch requests.
1346	NullFields []string `json:"-"`
1347}
1348
1349func (s *AcceleratorTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
1350	type NoMethod AcceleratorTypeAggregatedListWarning
1351	raw := NoMethod(*s)
1352	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1353}
1354
1355type AcceleratorTypeAggregatedListWarningData struct {
1356	// Key: [Output Only] A key that provides more detail on the warning
1357	// being returned. For example, for warnings where there are no results
1358	// in a list request for a particular zone, this key might be scope and
1359	// the key value might be the zone name. Other examples might be a key
1360	// indicating a deprecated resource and a suggested replacement, or a
1361	// warning about invalid network settings (for example, if an instance
1362	// attempts to perform IP forwarding but is not enabled for IP
1363	// forwarding).
1364	Key string `json:"key,omitempty"`
1365
1366	// Value: [Output Only] A warning data value corresponding to the key.
1367	Value string `json:"value,omitempty"`
1368
1369	// ForceSendFields is a list of field names (e.g. "Key") to
1370	// unconditionally include in API requests. By default, fields with
1371	// empty values are omitted from API requests. However, any non-pointer,
1372	// non-interface field appearing in ForceSendFields will be sent to the
1373	// server regardless of whether the field is empty or not. This may be
1374	// used to include empty fields in Patch requests.
1375	ForceSendFields []string `json:"-"`
1376
1377	// NullFields is a list of field names (e.g. "Key") to include in API
1378	// requests with the JSON null value. By default, fields with empty
1379	// values are omitted from API requests. However, any field with an
1380	// empty value appearing in NullFields will be sent to the server as
1381	// null. It is an error if a field in this list has a non-empty value.
1382	// This may be used to include null fields in Patch requests.
1383	NullFields []string `json:"-"`
1384}
1385
1386func (s *AcceleratorTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
1387	type NoMethod AcceleratorTypeAggregatedListWarningData
1388	raw := NoMethod(*s)
1389	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1390}
1391
1392// AcceleratorTypeList: Contains a list of accelerator types.
1393type AcceleratorTypeList struct {
1394	// Id: [Output Only] Unique identifier for the resource; defined by the
1395	// server.
1396	Id string `json:"id,omitempty"`
1397
1398	// Items: A list of AcceleratorType resources.
1399	Items []*AcceleratorType `json:"items,omitempty"`
1400
1401	// Kind: [Output Only] Type of resource. Always
1402	// compute#acceleratorTypeList for lists of accelerator types.
1403	Kind string `json:"kind,omitempty"`
1404
1405	// NextPageToken: [Output Only] This token allows you to get the next
1406	// page of results for list requests. If the number of results is larger
1407	// than maxResults, use the nextPageToken as a value for the query
1408	// parameter pageToken in the next list request. Subsequent list
1409	// requests will have their own nextPageToken to continue paging through
1410	// the results.
1411	NextPageToken string `json:"nextPageToken,omitempty"`
1412
1413	// SelfLink: [Output Only] Server-defined URL for this resource.
1414	SelfLink string `json:"selfLink,omitempty"`
1415
1416	// Warning: [Output Only] Informational warning message.
1417	Warning *AcceleratorTypeListWarning `json:"warning,omitempty"`
1418
1419	// ServerResponse contains the HTTP response code and headers from the
1420	// server.
1421	googleapi.ServerResponse `json:"-"`
1422
1423	// ForceSendFields is a list of field names (e.g. "Id") to
1424	// unconditionally include in API requests. By default, fields with
1425	// empty values are omitted from API requests. However, any non-pointer,
1426	// non-interface field appearing in ForceSendFields will be sent to the
1427	// server regardless of whether the field is empty or not. This may be
1428	// used to include empty fields in Patch requests.
1429	ForceSendFields []string `json:"-"`
1430
1431	// NullFields is a list of field names (e.g. "Id") to include in API
1432	// requests with the JSON null value. By default, fields with empty
1433	// values are omitted from API requests. However, any field with an
1434	// empty value appearing in NullFields will be sent to the server as
1435	// null. It is an error if a field in this list has a non-empty value.
1436	// This may be used to include null fields in Patch requests.
1437	NullFields []string `json:"-"`
1438}
1439
1440func (s *AcceleratorTypeList) MarshalJSON() ([]byte, error) {
1441	type NoMethod AcceleratorTypeList
1442	raw := NoMethod(*s)
1443	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1444}
1445
1446// AcceleratorTypeListWarning: [Output Only] Informational warning
1447// message.
1448type AcceleratorTypeListWarning struct {
1449	// Code: [Output Only] A warning code, if applicable. For example,
1450	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1451	// the response.
1452	//
1453	// Possible values:
1454	//   "CLEANUP_FAILED"
1455	//   "DEPRECATED_RESOURCE_USED"
1456	//   "DEPRECATED_TYPE_USED"
1457	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1458	//   "EXPERIMENTAL_TYPE_USED"
1459	//   "EXTERNAL_API_WARNING"
1460	//   "FIELD_VALUE_OVERRIDEN"
1461	//   "INJECTED_KERNELS_DEPRECATED"
1462	//   "LARGE_DEPLOYMENT_WARNING"
1463	//   "MISSING_TYPE_DEPENDENCY"
1464	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1465	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1466	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1467	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1468	//   "NEXT_HOP_NOT_RUNNING"
1469	//   "NOT_CRITICAL_ERROR"
1470	//   "NO_RESULTS_ON_PAGE"
1471	//   "PARTIAL_SUCCESS"
1472	//   "REQUIRED_TOS_AGREEMENT"
1473	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1474	//   "RESOURCE_NOT_DELETED"
1475	//   "SCHEMA_VALIDATION_IGNORED"
1476	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1477	//   "UNDECLARED_PROPERTIES"
1478	//   "UNREACHABLE"
1479	Code string `json:"code,omitempty"`
1480
1481	// Data: [Output Only] Metadata about this warning in key: value format.
1482	// For example:
1483	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1484	Data []*AcceleratorTypeListWarningData `json:"data,omitempty"`
1485
1486	// Message: [Output Only] A human-readable description of the warning
1487	// code.
1488	Message string `json:"message,omitempty"`
1489
1490	// ForceSendFields is a list of field names (e.g. "Code") to
1491	// unconditionally include in API requests. By default, fields with
1492	// empty values are omitted from API requests. However, any non-pointer,
1493	// non-interface field appearing in ForceSendFields will be sent to the
1494	// server regardless of whether the field is empty or not. This may be
1495	// used to include empty fields in Patch requests.
1496	ForceSendFields []string `json:"-"`
1497
1498	// NullFields is a list of field names (e.g. "Code") to include in API
1499	// requests with the JSON null value. By default, fields with empty
1500	// values are omitted from API requests. However, any field with an
1501	// empty value appearing in NullFields will be sent to the server as
1502	// null. It is an error if a field in this list has a non-empty value.
1503	// This may be used to include null fields in Patch requests.
1504	NullFields []string `json:"-"`
1505}
1506
1507func (s *AcceleratorTypeListWarning) MarshalJSON() ([]byte, error) {
1508	type NoMethod AcceleratorTypeListWarning
1509	raw := NoMethod(*s)
1510	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1511}
1512
1513type AcceleratorTypeListWarningData struct {
1514	// Key: [Output Only] A key that provides more detail on the warning
1515	// being returned. For example, for warnings where there are no results
1516	// in a list request for a particular zone, this key might be scope and
1517	// the key value might be the zone name. Other examples might be a key
1518	// indicating a deprecated resource and a suggested replacement, or a
1519	// warning about invalid network settings (for example, if an instance
1520	// attempts to perform IP forwarding but is not enabled for IP
1521	// forwarding).
1522	Key string `json:"key,omitempty"`
1523
1524	// Value: [Output Only] A warning data value corresponding to the key.
1525	Value string `json:"value,omitempty"`
1526
1527	// ForceSendFields is a list of field names (e.g. "Key") to
1528	// unconditionally include in API requests. By default, fields with
1529	// empty values are omitted from API requests. However, any non-pointer,
1530	// non-interface field appearing in ForceSendFields will be sent to the
1531	// server regardless of whether the field is empty or not. This may be
1532	// used to include empty fields in Patch requests.
1533	ForceSendFields []string `json:"-"`
1534
1535	// NullFields is a list of field names (e.g. "Key") to include in API
1536	// requests with the JSON null value. By default, fields with empty
1537	// values are omitted from API requests. However, any field with an
1538	// empty value appearing in NullFields will be sent to the server as
1539	// null. It is an error if a field in this list has a non-empty value.
1540	// This may be used to include null fields in Patch requests.
1541	NullFields []string `json:"-"`
1542}
1543
1544func (s *AcceleratorTypeListWarningData) MarshalJSON() ([]byte, error) {
1545	type NoMethod AcceleratorTypeListWarningData
1546	raw := NoMethod(*s)
1547	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1548}
1549
1550type AcceleratorTypesScopedList struct {
1551	// AcceleratorTypes: [Output Only] A list of accelerator types contained
1552	// in this scope.
1553	AcceleratorTypes []*AcceleratorType `json:"acceleratorTypes,omitempty"`
1554
1555	// Warning: [Output Only] An informational warning that appears when the
1556	// accelerator types list is empty.
1557	Warning *AcceleratorTypesScopedListWarning `json:"warning,omitempty"`
1558
1559	// ForceSendFields is a list of field names (e.g. "AcceleratorTypes") to
1560	// unconditionally include in API requests. By default, fields with
1561	// empty values are omitted from API requests. However, any non-pointer,
1562	// non-interface field appearing in ForceSendFields will be sent to the
1563	// server regardless of whether the field is empty or not. This may be
1564	// used to include empty fields in Patch requests.
1565	ForceSendFields []string `json:"-"`
1566
1567	// NullFields is a list of field names (e.g. "AcceleratorTypes") to
1568	// include in API requests with the JSON null value. By default, fields
1569	// with empty values are omitted from API requests. However, any field
1570	// with an empty value appearing in NullFields will be sent to the
1571	// server as null. It is an error if a field in this list has a
1572	// non-empty value. This may be used to include null fields in Patch
1573	// requests.
1574	NullFields []string `json:"-"`
1575}
1576
1577func (s *AcceleratorTypesScopedList) MarshalJSON() ([]byte, error) {
1578	type NoMethod AcceleratorTypesScopedList
1579	raw := NoMethod(*s)
1580	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1581}
1582
1583// AcceleratorTypesScopedListWarning: [Output Only] An informational
1584// warning that appears when the accelerator types list is empty.
1585type AcceleratorTypesScopedListWarning struct {
1586	// Code: [Output Only] A warning code, if applicable. For example,
1587	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1588	// the response.
1589	//
1590	// Possible values:
1591	//   "CLEANUP_FAILED"
1592	//   "DEPRECATED_RESOURCE_USED"
1593	//   "DEPRECATED_TYPE_USED"
1594	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1595	//   "EXPERIMENTAL_TYPE_USED"
1596	//   "EXTERNAL_API_WARNING"
1597	//   "FIELD_VALUE_OVERRIDEN"
1598	//   "INJECTED_KERNELS_DEPRECATED"
1599	//   "LARGE_DEPLOYMENT_WARNING"
1600	//   "MISSING_TYPE_DEPENDENCY"
1601	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1602	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1603	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1604	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1605	//   "NEXT_HOP_NOT_RUNNING"
1606	//   "NOT_CRITICAL_ERROR"
1607	//   "NO_RESULTS_ON_PAGE"
1608	//   "PARTIAL_SUCCESS"
1609	//   "REQUIRED_TOS_AGREEMENT"
1610	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1611	//   "RESOURCE_NOT_DELETED"
1612	//   "SCHEMA_VALIDATION_IGNORED"
1613	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1614	//   "UNDECLARED_PROPERTIES"
1615	//   "UNREACHABLE"
1616	Code string `json:"code,omitempty"`
1617
1618	// Data: [Output Only] Metadata about this warning in key: value format.
1619	// For example:
1620	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1621	Data []*AcceleratorTypesScopedListWarningData `json:"data,omitempty"`
1622
1623	// Message: [Output Only] A human-readable description of the warning
1624	// code.
1625	Message string `json:"message,omitempty"`
1626
1627	// ForceSendFields is a list of field names (e.g. "Code") to
1628	// unconditionally include in API requests. By default, fields with
1629	// empty values are omitted from API requests. However, any non-pointer,
1630	// non-interface field appearing in ForceSendFields will be sent to the
1631	// server regardless of whether the field is empty or not. This may be
1632	// used to include empty fields in Patch requests.
1633	ForceSendFields []string `json:"-"`
1634
1635	// NullFields is a list of field names (e.g. "Code") to include in API
1636	// requests with the JSON null value. By default, fields with empty
1637	// values are omitted from API requests. However, any field with an
1638	// empty value appearing in NullFields will be sent to the server as
1639	// null. It is an error if a field in this list has a non-empty value.
1640	// This may be used to include null fields in Patch requests.
1641	NullFields []string `json:"-"`
1642}
1643
1644func (s *AcceleratorTypesScopedListWarning) MarshalJSON() ([]byte, error) {
1645	type NoMethod AcceleratorTypesScopedListWarning
1646	raw := NoMethod(*s)
1647	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1648}
1649
1650type AcceleratorTypesScopedListWarningData struct {
1651	// Key: [Output Only] A key that provides more detail on the warning
1652	// being returned. For example, for warnings where there are no results
1653	// in a list request for a particular zone, this key might be scope and
1654	// the key value might be the zone name. Other examples might be a key
1655	// indicating a deprecated resource and a suggested replacement, or a
1656	// warning about invalid network settings (for example, if an instance
1657	// attempts to perform IP forwarding but is not enabled for IP
1658	// forwarding).
1659	Key string `json:"key,omitempty"`
1660
1661	// Value: [Output Only] A warning data value corresponding to the key.
1662	Value string `json:"value,omitempty"`
1663
1664	// ForceSendFields is a list of field names (e.g. "Key") to
1665	// unconditionally include in API requests. By default, fields with
1666	// empty values are omitted from API requests. However, any non-pointer,
1667	// non-interface field appearing in ForceSendFields will be sent to the
1668	// server regardless of whether the field is empty or not. This may be
1669	// used to include empty fields in Patch requests.
1670	ForceSendFields []string `json:"-"`
1671
1672	// NullFields is a list of field names (e.g. "Key") to include in API
1673	// requests with the JSON null value. By default, fields with empty
1674	// values are omitted from API requests. However, any field with an
1675	// empty value appearing in NullFields will be sent to the server as
1676	// null. It is an error if a field in this list has a non-empty value.
1677	// This may be used to include null fields in Patch requests.
1678	NullFields []string `json:"-"`
1679}
1680
1681func (s *AcceleratorTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
1682	type NoMethod AcceleratorTypesScopedListWarningData
1683	raw := NoMethod(*s)
1684	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1685}
1686
1687// AccessConfig: An access configuration attached to an instance's
1688// network interface. Only one access config per instance is supported.
1689type AccessConfig struct {
1690	// ExternalIpv6: [Output Only] The first IPv6 address of the external
1691	// IPv6 range associated with this instance, prefix length is stored in
1692	// externalIpv6PrefixLength in ipv6AccessConfig. The field is output
1693	// only, an IPv6 address from a subnetwork associated with the instance
1694	// will be allocated dynamically.
1695	ExternalIpv6 string `json:"externalIpv6,omitempty"`
1696
1697	// ExternalIpv6PrefixLength: [Output Only] The prefix length of the
1698	// external IPv6 range.
1699	ExternalIpv6PrefixLength int64 `json:"externalIpv6PrefixLength,omitempty"`
1700
1701	// Kind: [Output Only] Type of the resource. Always compute#accessConfig
1702	// for access configs.
1703	Kind string `json:"kind,omitempty"`
1704
1705	// Name: The name of this access configuration. The default and
1706	// recommended name is External NAT, but you can use any arbitrary
1707	// string, such as My external IP or Network Access.
1708	Name string `json:"name,omitempty"`
1709
1710	// NatIP: An external IP address associated with this instance. Specify
1711	// an unused static external IP address available to the project or
1712	// leave this field undefined to use an IP from a shared ephemeral IP
1713	// address pool. If you specify a static external IP address, it must
1714	// live in the same region as the zone of the instance.
1715	NatIP string `json:"natIP,omitempty"`
1716
1717	// NetworkTier: This signifies the networking tier used for configuring
1718	// this access configuration and can only take the following values:
1719	// PREMIUM, STANDARD.
1720	//
1721	// If an AccessConfig is specified without a valid external IP address,
1722	// an ephemeral IP will be created with this networkTier.
1723	//
1724	// If an AccessConfig with a valid external IP address is specified, it
1725	// must match that of the networkTier associated with the Address
1726	// resource owning that IP.
1727	//
1728	// Possible values:
1729	//   "PREMIUM"
1730	//   "STANDARD"
1731	NetworkTier string `json:"networkTier,omitempty"`
1732
1733	// PublicPtrDomainName: The DNS domain name for the public PTR record.
1734	// You can set this field only if the `setPublicPtr` field is enabled.
1735	PublicPtrDomainName string `json:"publicPtrDomainName,omitempty"`
1736
1737	// SetPublicPtr: Specifies whether a public DNS 'PTR' record should be
1738	// created to map the external IP address of the instance to a DNS
1739	// domain name.
1740	SetPublicPtr bool `json:"setPublicPtr,omitempty"`
1741
1742	// Type: The type of configuration. The default and only option is
1743	// ONE_TO_ONE_NAT.
1744	//
1745	// Possible values:
1746	//   "DIRECT_IPV6"
1747	//   "ONE_TO_ONE_NAT" (default)
1748	Type string `json:"type,omitempty"`
1749
1750	// ForceSendFields is a list of field names (e.g. "ExternalIpv6") to
1751	// unconditionally include in API requests. By default, fields with
1752	// empty values are omitted from API requests. However, any non-pointer,
1753	// non-interface field appearing in ForceSendFields will be sent to the
1754	// server regardless of whether the field is empty or not. This may be
1755	// used to include empty fields in Patch requests.
1756	ForceSendFields []string `json:"-"`
1757
1758	// NullFields is a list of field names (e.g. "ExternalIpv6") to include
1759	// in API requests with the JSON null value. By default, fields with
1760	// empty values are omitted from API requests. However, any field with
1761	// an empty value appearing in NullFields will be sent to the server as
1762	// null. It is an error if a field in this list has a non-empty value.
1763	// This may be used to include null fields in Patch requests.
1764	NullFields []string `json:"-"`
1765}
1766
1767func (s *AccessConfig) MarshalJSON() ([]byte, error) {
1768	type NoMethod AccessConfig
1769	raw := NoMethod(*s)
1770	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1771}
1772
1773// Address: Use global external addresses for GFE-based external HTTP(S)
1774// load balancers in Premium Tier.
1775//
1776// Use global internal addresses for reserved peering network
1777// range.
1778//
1779// Use regional external addresses for the following resources:
1780//
1781// - External IP addresses for VM instances - Regional external
1782// forwarding rules - Cloud NAT external IP addresses - GFE based LBs in
1783// Standard Tier - Network LBs in Premium or Standard Tier - Cloud VPN
1784// gateways (both Classic and HA)
1785//
1786// Use regional internal IP addresses for subnet IP ranges (primary and
1787// secondary). This includes:
1788//
1789// - Internal IP addresses for VM instances - Alias IP ranges of VM
1790// instances (/32 only) - Regional internal forwarding rules - Internal
1791// TCP/UDP load balancer addresses - Internal HTTP(S) load balancer
1792// addresses - Cloud DNS inbound forwarding IP addresses
1793//
1794// For more information, read reserved IP address.
1795//
1796// (== resource_for {$api_version}.addresses ==) (== resource_for
1797// {$api_version}.globalAddresses ==)
1798type Address struct {
1799	// Address: The static IP address represented by this resource.
1800	Address string `json:"address,omitempty"`
1801
1802	// AddressType: The type of address to reserve, either INTERNAL or
1803	// EXTERNAL. If unspecified, defaults to EXTERNAL.
1804	//
1805	// Possible values:
1806	//   "EXTERNAL"
1807	//   "INTERNAL"
1808	//   "UNSPECIFIED_TYPE"
1809	AddressType string `json:"addressType,omitempty"`
1810
1811	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
1812	// format.
1813	CreationTimestamp string `json:"creationTimestamp,omitempty"`
1814
1815	// Description: An optional description of this resource. Provide this
1816	// field when you create the resource.
1817	Description string `json:"description,omitempty"`
1818
1819	// Id: [Output Only] The unique identifier for the resource. This
1820	// identifier is defined by the server.
1821	Id uint64 `json:"id,omitempty,string"`
1822
1823	// IpVersion: The IP version that will be used by this address. Valid
1824	// options are IPV4 or IPV6. This can only be specified for a global
1825	// address.
1826	//
1827	// Possible values:
1828	//   "IPV4"
1829	//   "IPV6"
1830	//   "UNSPECIFIED_VERSION"
1831	IpVersion string `json:"ipVersion,omitempty"`
1832
1833	// Kind: [Output Only] Type of the resource. Always compute#address for
1834	// addresses.
1835	Kind string `json:"kind,omitempty"`
1836
1837	// Name: Name of the resource. Provided by the client when the resource
1838	// is created. The name must be 1-63 characters long, and comply with
1839	// RFC1035. Specifically, the name must be 1-63 characters long and
1840	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first
1841	// character must be a lowercase letter, and all following characters
1842	// (except for the last character) must be a dash, lowercase letter, or
1843	// digit. The last character must be a lowercase letter or digit.
1844	Name string `json:"name,omitempty"`
1845
1846	// Network: The URL of the network in which to reserve the address. This
1847	// field can only be used with INTERNAL type with the VPC_PEERING
1848	// purpose.
1849	Network string `json:"network,omitempty"`
1850
1851	// NetworkTier: This signifies the networking tier used for configuring
1852	// this address and can only take the following values: PREMIUM or
1853	// STANDARD. Global forwarding rules can only be Premium Tier. Regional
1854	// forwarding rules can be either Premium or Standard Tier. Standard
1855	// Tier addresses applied to regional forwarding rules can be used with
1856	// any external load balancer. Regional forwarding rules in Premium Tier
1857	// can only be used with a network load balancer.
1858	//
1859	// If this field is not specified, it is assumed to be PREMIUM.
1860	//
1861	// Possible values:
1862	//   "PREMIUM"
1863	//   "STANDARD"
1864	NetworkTier string `json:"networkTier,omitempty"`
1865
1866	// PrefixLength: The prefix length if the resource represents an IP
1867	// range.
1868	PrefixLength int64 `json:"prefixLength,omitempty"`
1869
1870	// Purpose: The purpose of this resource, which can be one of the
1871	// following values:
1872	// - `GCE_ENDPOINT` for addresses that are used by VM instances, alias
1873	// IP ranges, internal load balancers, and similar resources.
1874	// - `DNS_RESOLVER` for a DNS resolver address in a subnetwork
1875	// - `VPC_PEERING` for addresses that are reserved for VPC peer
1876	// networks.
1877	// - `NAT_AUTO` for addresses that are external IP addresses
1878	// automatically reserved for Cloud NAT.
1879	// - `IPSEC_INTERCONNECT` for addresses created from a private IP range
1880	// that are reserved for a VLAN attachment in an IPsec-encrypted Cloud
1881	// Interconnect configuration. These addresses are regional resources.
1882	// Not currently available publicly.
1883	//
1884	// Possible values:
1885	//   "DNS_RESOLVER"
1886	//   "GCE_ENDPOINT"
1887	//   "IPSEC_INTERCONNECT"
1888	//   "NAT_AUTO"
1889	//   "PRIVATE_SERVICE_CONNECT"
1890	//   "SHARED_LOADBALANCER_VIP"
1891	//   "VPC_PEERING"
1892	Purpose string `json:"purpose,omitempty"`
1893
1894	// Region: [Output Only] The URL of the region where a regional address
1895	// resides. For regional addresses, you must specify the region as a
1896	// path parameter in the HTTP request URL. This field is not applicable
1897	// to global addresses.
1898	Region string `json:"region,omitempty"`
1899
1900	// SelfLink: [Output Only] Server-defined URL for the resource.
1901	SelfLink string `json:"selfLink,omitempty"`
1902
1903	// Status: [Output Only] The status of the address, which can be one of
1904	// RESERVING, RESERVED, or IN_USE. An address that is RESERVING is
1905	// currently in the process of being reserved. A RESERVED address is
1906	// currently reserved and available to use. An IN_USE address is
1907	// currently being used by another resource and is not available.
1908	//
1909	// Possible values:
1910	//   "IN_USE"
1911	//   "RESERVED"
1912	//   "RESERVING"
1913	Status string `json:"status,omitempty"`
1914
1915	// Subnetwork: The URL of the subnetwork in which to reserve the
1916	// address. If an IP address is specified, it must be within the
1917	// subnetwork's IP range. This field can only be used with INTERNAL type
1918	// with a GCE_ENDPOINT or DNS_RESOLVER purpose.
1919	Subnetwork string `json:"subnetwork,omitempty"`
1920
1921	// Users: [Output Only] The URLs of the resources that are using this
1922	// address.
1923	Users []string `json:"users,omitempty"`
1924
1925	// ServerResponse contains the HTTP response code and headers from the
1926	// server.
1927	googleapi.ServerResponse `json:"-"`
1928
1929	// ForceSendFields is a list of field names (e.g. "Address") to
1930	// unconditionally include in API requests. By default, fields with
1931	// empty values are omitted from API requests. However, any non-pointer,
1932	// non-interface field appearing in ForceSendFields will be sent to the
1933	// server regardless of whether the field is empty or not. This may be
1934	// used to include empty fields in Patch requests.
1935	ForceSendFields []string `json:"-"`
1936
1937	// NullFields is a list of field names (e.g. "Address") to include in
1938	// API requests with the JSON null value. By default, fields with empty
1939	// values are omitted from API requests. However, any field with an
1940	// empty value appearing in NullFields will be sent to the server as
1941	// null. It is an error if a field in this list has a non-empty value.
1942	// This may be used to include null fields in Patch requests.
1943	NullFields []string `json:"-"`
1944}
1945
1946func (s *Address) MarshalJSON() ([]byte, error) {
1947	type NoMethod Address
1948	raw := NoMethod(*s)
1949	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1950}
1951
1952type AddressAggregatedList struct {
1953	// Id: [Output Only] Unique identifier for the resource; defined by the
1954	// server.
1955	Id string `json:"id,omitempty"`
1956
1957	// Items: A list of AddressesScopedList resources.
1958	Items map[string]AddressesScopedList `json:"items,omitempty"`
1959
1960	// Kind: [Output Only] Type of resource. Always
1961	// compute#addressAggregatedList for aggregated lists of addresses.
1962	Kind string `json:"kind,omitempty"`
1963
1964	// NextPageToken: [Output Only] This token allows you to get the next
1965	// page of results for list requests. If the number of results is larger
1966	// than maxResults, use the nextPageToken as a value for the query
1967	// parameter pageToken in the next list request. Subsequent list
1968	// requests will have their own nextPageToken to continue paging through
1969	// the results.
1970	NextPageToken string `json:"nextPageToken,omitempty"`
1971
1972	// SelfLink: [Output Only] Server-defined URL for this resource.
1973	SelfLink string `json:"selfLink,omitempty"`
1974
1975	// Unreachables: [Output Only] Unreachable resources.
1976	Unreachables []string `json:"unreachables,omitempty"`
1977
1978	// Warning: [Output Only] Informational warning message.
1979	Warning *AddressAggregatedListWarning `json:"warning,omitempty"`
1980
1981	// ServerResponse contains the HTTP response code and headers from the
1982	// server.
1983	googleapi.ServerResponse `json:"-"`
1984
1985	// ForceSendFields is a list of field names (e.g. "Id") to
1986	// unconditionally include in API requests. By default, fields with
1987	// empty values are omitted from API requests. However, any non-pointer,
1988	// non-interface field appearing in ForceSendFields will be sent to the
1989	// server regardless of whether the field is empty or not. This may be
1990	// used to include empty fields in Patch requests.
1991	ForceSendFields []string `json:"-"`
1992
1993	// NullFields is a list of field names (e.g. "Id") to include in API
1994	// requests with the JSON null value. By default, fields with empty
1995	// values are omitted from API requests. However, any field with an
1996	// empty value appearing in NullFields will be sent to the server as
1997	// null. It is an error if a field in this list has a non-empty value.
1998	// This may be used to include null fields in Patch requests.
1999	NullFields []string `json:"-"`
2000}
2001
2002func (s *AddressAggregatedList) MarshalJSON() ([]byte, error) {
2003	type NoMethod AddressAggregatedList
2004	raw := NoMethod(*s)
2005	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2006}
2007
2008// AddressAggregatedListWarning: [Output Only] Informational warning
2009// message.
2010type AddressAggregatedListWarning struct {
2011	// Code: [Output Only] A warning code, if applicable. For example,
2012	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2013	// the response.
2014	//
2015	// Possible values:
2016	//   "CLEANUP_FAILED"
2017	//   "DEPRECATED_RESOURCE_USED"
2018	//   "DEPRECATED_TYPE_USED"
2019	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
2020	//   "EXPERIMENTAL_TYPE_USED"
2021	//   "EXTERNAL_API_WARNING"
2022	//   "FIELD_VALUE_OVERRIDEN"
2023	//   "INJECTED_KERNELS_DEPRECATED"
2024	//   "LARGE_DEPLOYMENT_WARNING"
2025	//   "MISSING_TYPE_DEPENDENCY"
2026	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
2027	//   "NEXT_HOP_CANNOT_IP_FORWARD"
2028	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
2029	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
2030	//   "NEXT_HOP_NOT_RUNNING"
2031	//   "NOT_CRITICAL_ERROR"
2032	//   "NO_RESULTS_ON_PAGE"
2033	//   "PARTIAL_SUCCESS"
2034	//   "REQUIRED_TOS_AGREEMENT"
2035	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
2036	//   "RESOURCE_NOT_DELETED"
2037	//   "SCHEMA_VALIDATION_IGNORED"
2038	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
2039	//   "UNDECLARED_PROPERTIES"
2040	//   "UNREACHABLE"
2041	Code string `json:"code,omitempty"`
2042
2043	// Data: [Output Only] Metadata about this warning in key: value format.
2044	// For example:
2045	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
2046	Data []*AddressAggregatedListWarningData `json:"data,omitempty"`
2047
2048	// Message: [Output Only] A human-readable description of the warning
2049	// code.
2050	Message string `json:"message,omitempty"`
2051
2052	// ForceSendFields is a list of field names (e.g. "Code") to
2053	// unconditionally include in API requests. By default, fields with
2054	// empty values are omitted from API requests. However, any non-pointer,
2055	// non-interface field appearing in ForceSendFields will be sent to the
2056	// server regardless of whether the field is empty or not. This may be
2057	// used to include empty fields in Patch requests.
2058	ForceSendFields []string `json:"-"`
2059
2060	// NullFields is a list of field names (e.g. "Code") to include in API
2061	// requests with the JSON null value. By default, fields with empty
2062	// values are omitted from API requests. However, any field with an
2063	// empty value appearing in NullFields will be sent to the server as
2064	// null. It is an error if a field in this list has a non-empty value.
2065	// This may be used to include null fields in Patch requests.
2066	NullFields []string `json:"-"`
2067}
2068
2069func (s *AddressAggregatedListWarning) MarshalJSON() ([]byte, error) {
2070	type NoMethod AddressAggregatedListWarning
2071	raw := NoMethod(*s)
2072	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2073}
2074
2075type AddressAggregatedListWarningData struct {
2076	// Key: [Output Only] A key that provides more detail on the warning
2077	// being returned. For example, for warnings where there are no results
2078	// in a list request for a particular zone, this key might be scope and
2079	// the key value might be the zone name. Other examples might be a key
2080	// indicating a deprecated resource and a suggested replacement, or a
2081	// warning about invalid network settings (for example, if an instance
2082	// attempts to perform IP forwarding but is not enabled for IP
2083	// forwarding).
2084	Key string `json:"key,omitempty"`
2085
2086	// Value: [Output Only] A warning data value corresponding to the key.
2087	Value string `json:"value,omitempty"`
2088
2089	// ForceSendFields is a list of field names (e.g. "Key") to
2090	// unconditionally include in API requests. By default, fields with
2091	// empty values are omitted from API requests. However, any non-pointer,
2092	// non-interface field appearing in ForceSendFields will be sent to the
2093	// server regardless of whether the field is empty or not. This may be
2094	// used to include empty fields in Patch requests.
2095	ForceSendFields []string `json:"-"`
2096
2097	// NullFields is a list of field names (e.g. "Key") to include in API
2098	// requests with the JSON null value. By default, fields with empty
2099	// values are omitted from API requests. However, any field with an
2100	// empty value appearing in NullFields will be sent to the server as
2101	// null. It is an error if a field in this list has a non-empty value.
2102	// This may be used to include null fields in Patch requests.
2103	NullFields []string `json:"-"`
2104}
2105
2106func (s *AddressAggregatedListWarningData) MarshalJSON() ([]byte, error) {
2107	type NoMethod AddressAggregatedListWarningData
2108	raw := NoMethod(*s)
2109	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2110}
2111
2112// AddressList: Contains a list of addresses.
2113type AddressList struct {
2114	// Id: [Output Only] Unique identifier for the resource; defined by the
2115	// server.
2116	Id string `json:"id,omitempty"`
2117
2118	// Items: A list of Address resources.
2119	Items []*Address `json:"items,omitempty"`
2120
2121	// Kind: [Output Only] Type of resource. Always compute#addressList for
2122	// lists of addresses.
2123	Kind string `json:"kind,omitempty"`
2124
2125	// NextPageToken: [Output Only] This token allows you to get the next
2126	// page of results for list requests. If the number of results is larger
2127	// than maxResults, use the nextPageToken as a value for the query
2128	// parameter pageToken in the next list request. Subsequent list
2129	// requests will have their own nextPageToken to continue paging through
2130	// the results.
2131	NextPageToken string `json:"nextPageToken,omitempty"`
2132
2133	// SelfLink: [Output Only] Server-defined URL for this resource.
2134	SelfLink string `json:"selfLink,omitempty"`
2135
2136	// Warning: [Output Only] Informational warning message.
2137	Warning *AddressListWarning `json:"warning,omitempty"`
2138
2139	// ServerResponse contains the HTTP response code and headers from the
2140	// server.
2141	googleapi.ServerResponse `json:"-"`
2142
2143	// ForceSendFields is a list of field names (e.g. "Id") to
2144	// unconditionally include in API requests. By default, fields with
2145	// empty values are omitted from API requests. However, any non-pointer,
2146	// non-interface field appearing in ForceSendFields will be sent to the
2147	// server regardless of whether the field is empty or not. This may be
2148	// used to include empty fields in Patch requests.
2149	ForceSendFields []string `json:"-"`
2150
2151	// NullFields is a list of field names (e.g. "Id") to include in API
2152	// requests with the JSON null value. By default, fields with empty
2153	// values are omitted from API requests. However, any field with an
2154	// empty value appearing in NullFields will be sent to the server as
2155	// null. It is an error if a field in this list has a non-empty value.
2156	// This may be used to include null fields in Patch requests.
2157	NullFields []string `json:"-"`
2158}
2159
2160func (s *AddressList) MarshalJSON() ([]byte, error) {
2161	type NoMethod AddressList
2162	raw := NoMethod(*s)
2163	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2164}
2165
2166// AddressListWarning: [Output Only] Informational warning message.
2167type AddressListWarning struct {
2168	// Code: [Output Only] A warning code, if applicable. For example,
2169	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2170	// the response.
2171	//
2172	// Possible values:
2173	//   "CLEANUP_FAILED"
2174	//   "DEPRECATED_RESOURCE_USED"
2175	//   "DEPRECATED_TYPE_USED"
2176	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
2177	//   "EXPERIMENTAL_TYPE_USED"
2178	//   "EXTERNAL_API_WARNING"
2179	//   "FIELD_VALUE_OVERRIDEN"
2180	//   "INJECTED_KERNELS_DEPRECATED"
2181	//   "LARGE_DEPLOYMENT_WARNING"
2182	//   "MISSING_TYPE_DEPENDENCY"
2183	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
2184	//   "NEXT_HOP_CANNOT_IP_FORWARD"
2185	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
2186	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
2187	//   "NEXT_HOP_NOT_RUNNING"
2188	//   "NOT_CRITICAL_ERROR"
2189	//   "NO_RESULTS_ON_PAGE"
2190	//   "PARTIAL_SUCCESS"
2191	//   "REQUIRED_TOS_AGREEMENT"
2192	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
2193	//   "RESOURCE_NOT_DELETED"
2194	//   "SCHEMA_VALIDATION_IGNORED"
2195	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
2196	//   "UNDECLARED_PROPERTIES"
2197	//   "UNREACHABLE"
2198	Code string `json:"code,omitempty"`
2199
2200	// Data: [Output Only] Metadata about this warning in key: value format.
2201	// For example:
2202	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
2203	Data []*AddressListWarningData `json:"data,omitempty"`
2204
2205	// Message: [Output Only] A human-readable description of the warning
2206	// code.
2207	Message string `json:"message,omitempty"`
2208
2209	// ForceSendFields is a list of field names (e.g. "Code") to
2210	// unconditionally include in API requests. By default, fields with
2211	// empty values are omitted from API requests. However, any non-pointer,
2212	// non-interface field appearing in ForceSendFields will be sent to the
2213	// server regardless of whether the field is empty or not. This may be
2214	// used to include empty fields in Patch requests.
2215	ForceSendFields []string `json:"-"`
2216
2217	// NullFields is a list of field names (e.g. "Code") to include in API
2218	// requests with the JSON null value. By default, fields with empty
2219	// values are omitted from API requests. However, any field with an
2220	// empty value appearing in NullFields will be sent to the server as
2221	// null. It is an error if a field in this list has a non-empty value.
2222	// This may be used to include null fields in Patch requests.
2223	NullFields []string `json:"-"`
2224}
2225
2226func (s *AddressListWarning) MarshalJSON() ([]byte, error) {
2227	type NoMethod AddressListWarning
2228	raw := NoMethod(*s)
2229	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2230}
2231
2232type AddressListWarningData struct {
2233	// Key: [Output Only] A key that provides more detail on the warning
2234	// being returned. For example, for warnings where there are no results
2235	// in a list request for a particular zone, this key might be scope and
2236	// the key value might be the zone name. Other examples might be a key
2237	// indicating a deprecated resource and a suggested replacement, or a
2238	// warning about invalid network settings (for example, if an instance
2239	// attempts to perform IP forwarding but is not enabled for IP
2240	// forwarding).
2241	Key string `json:"key,omitempty"`
2242
2243	// Value: [Output Only] A warning data value corresponding to the key.
2244	Value string `json:"value,omitempty"`
2245
2246	// ForceSendFields is a list of field names (e.g. "Key") to
2247	// unconditionally include in API requests. By default, fields with
2248	// empty values are omitted from API requests. However, any non-pointer,
2249	// non-interface field appearing in ForceSendFields will be sent to the
2250	// server regardless of whether the field is empty or not. This may be
2251	// used to include empty fields in Patch requests.
2252	ForceSendFields []string `json:"-"`
2253
2254	// NullFields is a list of field names (e.g. "Key") to include in API
2255	// requests with the JSON null value. By default, fields with empty
2256	// values are omitted from API requests. However, any field with an
2257	// empty value appearing in NullFields will be sent to the server as
2258	// null. It is an error if a field in this list has a non-empty value.
2259	// This may be used to include null fields in Patch requests.
2260	NullFields []string `json:"-"`
2261}
2262
2263func (s *AddressListWarningData) MarshalJSON() ([]byte, error) {
2264	type NoMethod AddressListWarningData
2265	raw := NoMethod(*s)
2266	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2267}
2268
2269type AddressesScopedList struct {
2270	// Addresses: [Output Only] A list of addresses contained in this scope.
2271	Addresses []*Address `json:"addresses,omitempty"`
2272
2273	// Warning: [Output Only] Informational warning which replaces the list
2274	// of addresses when the list is empty.
2275	Warning *AddressesScopedListWarning `json:"warning,omitempty"`
2276
2277	// ForceSendFields is a list of field names (e.g. "Addresses") to
2278	// unconditionally include in API requests. By default, fields with
2279	// empty values are omitted from API requests. However, any non-pointer,
2280	// non-interface field appearing in ForceSendFields will be sent to the
2281	// server regardless of whether the field is empty or not. This may be
2282	// used to include empty fields in Patch requests.
2283	ForceSendFields []string `json:"-"`
2284
2285	// NullFields is a list of field names (e.g. "Addresses") to include in
2286	// API requests with the JSON null value. By default, fields with empty
2287	// values are omitted from API requests. However, any field with an
2288	// empty value appearing in NullFields will be sent to the server as
2289	// null. It is an error if a field in this list has a non-empty value.
2290	// This may be used to include null fields in Patch requests.
2291	NullFields []string `json:"-"`
2292}
2293
2294func (s *AddressesScopedList) MarshalJSON() ([]byte, error) {
2295	type NoMethod AddressesScopedList
2296	raw := NoMethod(*s)
2297	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2298}
2299
2300// AddressesScopedListWarning: [Output Only] Informational warning which
2301// replaces the list of addresses when the list is empty.
2302type AddressesScopedListWarning struct {
2303	// Code: [Output Only] A warning code, if applicable. For example,
2304	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2305	// the response.
2306	//
2307	// Possible values:
2308	//   "CLEANUP_FAILED"
2309	//   "DEPRECATED_RESOURCE_USED"
2310	//   "DEPRECATED_TYPE_USED"
2311	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
2312	//   "EXPERIMENTAL_TYPE_USED"
2313	//   "EXTERNAL_API_WARNING"
2314	//   "FIELD_VALUE_OVERRIDEN"
2315	//   "INJECTED_KERNELS_DEPRECATED"
2316	//   "LARGE_DEPLOYMENT_WARNING"
2317	//   "MISSING_TYPE_DEPENDENCY"
2318	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
2319	//   "NEXT_HOP_CANNOT_IP_FORWARD"
2320	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
2321	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
2322	//   "NEXT_HOP_NOT_RUNNING"
2323	//   "NOT_CRITICAL_ERROR"
2324	//   "NO_RESULTS_ON_PAGE"
2325	//   "PARTIAL_SUCCESS"
2326	//   "REQUIRED_TOS_AGREEMENT"
2327	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
2328	//   "RESOURCE_NOT_DELETED"
2329	//   "SCHEMA_VALIDATION_IGNORED"
2330	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
2331	//   "UNDECLARED_PROPERTIES"
2332	//   "UNREACHABLE"
2333	Code string `json:"code,omitempty"`
2334
2335	// Data: [Output Only] Metadata about this warning in key: value format.
2336	// For example:
2337	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
2338	Data []*AddressesScopedListWarningData `json:"data,omitempty"`
2339
2340	// Message: [Output Only] A human-readable description of the warning
2341	// code.
2342	Message string `json:"message,omitempty"`
2343
2344	// ForceSendFields is a list of field names (e.g. "Code") to
2345	// unconditionally include in API requests. By default, fields with
2346	// empty values are omitted from API requests. However, any non-pointer,
2347	// non-interface field appearing in ForceSendFields will be sent to the
2348	// server regardless of whether the field is empty or not. This may be
2349	// used to include empty fields in Patch requests.
2350	ForceSendFields []string `json:"-"`
2351
2352	// NullFields is a list of field names (e.g. "Code") to include in API
2353	// requests with the JSON null value. By default, fields with empty
2354	// values are omitted from API requests. However, any field with an
2355	// empty value appearing in NullFields will be sent to the server as
2356	// null. It is an error if a field in this list has a non-empty value.
2357	// This may be used to include null fields in Patch requests.
2358	NullFields []string `json:"-"`
2359}
2360
2361func (s *AddressesScopedListWarning) MarshalJSON() ([]byte, error) {
2362	type NoMethod AddressesScopedListWarning
2363	raw := NoMethod(*s)
2364	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2365}
2366
2367type AddressesScopedListWarningData struct {
2368	// Key: [Output Only] A key that provides more detail on the warning
2369	// being returned. For example, for warnings where there are no results
2370	// in a list request for a particular zone, this key might be scope and
2371	// the key value might be the zone name. Other examples might be a key
2372	// indicating a deprecated resource and a suggested replacement, or a
2373	// warning about invalid network settings (for example, if an instance
2374	// attempts to perform IP forwarding but is not enabled for IP
2375	// forwarding).
2376	Key string `json:"key,omitempty"`
2377
2378	// Value: [Output Only] A warning data value corresponding to the key.
2379	Value string `json:"value,omitempty"`
2380
2381	// ForceSendFields is a list of field names (e.g. "Key") to
2382	// unconditionally include in API requests. By default, fields with
2383	// empty values are omitted from API requests. However, any non-pointer,
2384	// non-interface field appearing in ForceSendFields will be sent to the
2385	// server regardless of whether the field is empty or not. This may be
2386	// used to include empty fields in Patch requests.
2387	ForceSendFields []string `json:"-"`
2388
2389	// NullFields is a list of field names (e.g. "Key") to include in API
2390	// requests with the JSON null value. By default, fields with empty
2391	// values are omitted from API requests. However, any field with an
2392	// empty value appearing in NullFields will be sent to the server as
2393	// null. It is an error if a field in this list has a non-empty value.
2394	// This may be used to include null fields in Patch requests.
2395	NullFields []string `json:"-"`
2396}
2397
2398func (s *AddressesScopedListWarningData) MarshalJSON() ([]byte, error) {
2399	type NoMethod AddressesScopedListWarningData
2400	raw := NoMethod(*s)
2401	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2402}
2403
2404// AdvancedMachineFeatures: Specifies options for controlling advanced
2405// machine features. Options that would traditionally be configured in a
2406// BIOS belong here. Features that require operating system support may
2407// have corresponding entries in the GuestOsFeatures of an Image (e.g.,
2408// whether or not the OS in the Image supports nested virtualization
2409// being enabled or disabled).
2410type AdvancedMachineFeatures struct {
2411	// EnableNestedVirtualization: Whether to enable nested virtualization
2412	// or not (default is false).
2413	EnableNestedVirtualization bool `json:"enableNestedVirtualization,omitempty"`
2414
2415	// ThreadsPerCore: The number of threads per physical core. To disable
2416	// simultaneous multithreading (SMT) set this to 1. If unset, the
2417	// maximum number of threads supported per core by the underlying
2418	// processor is assumed.
2419	ThreadsPerCore int64 `json:"threadsPerCore,omitempty"`
2420
2421	// ForceSendFields is a list of field names (e.g.
2422	// "EnableNestedVirtualization") to unconditionally include in API
2423	// requests. By default, fields with empty values are omitted from API
2424	// requests. However, any non-pointer, non-interface field appearing in
2425	// ForceSendFields will be sent to the server regardless of whether the
2426	// field is empty or not. This may be used to include empty fields in
2427	// Patch requests.
2428	ForceSendFields []string `json:"-"`
2429
2430	// NullFields is a list of field names (e.g.
2431	// "EnableNestedVirtualization") to include in API requests with the
2432	// JSON null value. By default, fields with empty values are omitted
2433	// from API requests. However, any field with an empty value appearing
2434	// in NullFields will be sent to the server as null. It is an error if a
2435	// field in this list has a non-empty value. This may be used to include
2436	// null fields in Patch requests.
2437	NullFields []string `json:"-"`
2438}
2439
2440func (s *AdvancedMachineFeatures) MarshalJSON() ([]byte, error) {
2441	type NoMethod AdvancedMachineFeatures
2442	raw := NoMethod(*s)
2443	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2444}
2445
2446// AliasIpRange: An alias IP range attached to an instance's network
2447// interface.
2448type AliasIpRange struct {
2449	// IpCidrRange: The IP alias ranges to allocate for this interface. This
2450	// IP CIDR range must belong to the specified subnetwork and cannot
2451	// contain IP addresses reserved by system or used by other network
2452	// interfaces. This range may be a single IP address (such as 10.2.3.4),
2453	// a netmask (such as /24) or a CIDR-formatted string (such as
2454	// 10.1.2.0/24).
2455	IpCidrRange string `json:"ipCidrRange,omitempty"`
2456
2457	// SubnetworkRangeName: The name of a subnetwork secondary IP range from
2458	// which to allocate an IP alias range. If not specified, the primary
2459	// range of the subnetwork is used.
2460	SubnetworkRangeName string `json:"subnetworkRangeName,omitempty"`
2461
2462	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
2463	// unconditionally include in API requests. By default, fields with
2464	// empty values are omitted from API requests. However, any non-pointer,
2465	// non-interface field appearing in ForceSendFields will be sent to the
2466	// server regardless of whether the field is empty or not. This may be
2467	// used to include empty fields in Patch requests.
2468	ForceSendFields []string `json:"-"`
2469
2470	// NullFields is a list of field names (e.g. "IpCidrRange") to include
2471	// in API requests with the JSON null value. By default, fields with
2472	// empty values are omitted from API requests. However, any field with
2473	// an empty value appearing in NullFields will be sent to the server as
2474	// null. It is an error if a field in this list has a non-empty value.
2475	// This may be used to include null fields in Patch requests.
2476	NullFields []string `json:"-"`
2477}
2478
2479func (s *AliasIpRange) MarshalJSON() ([]byte, error) {
2480	type NoMethod AliasIpRange
2481	raw := NoMethod(*s)
2482	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2483}
2484
2485type AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk struct {
2486	// DiskSizeGb: Specifies the size of the disk in base-2 GB.
2487	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
2488
2489	// Interface: Specifies the disk interface to use for attaching this
2490	// disk, which is either SCSI or NVME. The default is SCSI. For
2491	// performance characteristics of SCSI over NVMe, see Local SSD
2492	// performance.
2493	//
2494	// Possible values:
2495	//   "NVME"
2496	//   "SCSI"
2497	Interface string `json:"interface,omitempty"`
2498
2499	// ForceSendFields is a list of field names (e.g. "DiskSizeGb") to
2500	// unconditionally include in API requests. By default, fields with
2501	// empty values are omitted from API requests. However, any non-pointer,
2502	// non-interface field appearing in ForceSendFields will be sent to the
2503	// server regardless of whether the field is empty or not. This may be
2504	// used to include empty fields in Patch requests.
2505	ForceSendFields []string `json:"-"`
2506
2507	// NullFields is a list of field names (e.g. "DiskSizeGb") to include in
2508	// API requests with the JSON null value. By default, fields with empty
2509	// values are omitted from API requests. However, any field with an
2510	// empty value appearing in NullFields will be sent to the server as
2511	// null. It is an error if a field in this list has a non-empty value.
2512	// This may be used to include null fields in Patch requests.
2513	NullFields []string `json:"-"`
2514}
2515
2516func (s *AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk) MarshalJSON() ([]byte, error) {
2517	type NoMethod AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk
2518	raw := NoMethod(*s)
2519	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2520}
2521
2522// AllocationSpecificSKUAllocationReservedInstanceProperties: Properties
2523// of the SKU instances being reserved. Next ID: 9
2524type AllocationSpecificSKUAllocationReservedInstanceProperties struct {
2525	// GuestAccelerators: Specifies accelerator type and count.
2526	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
2527
2528	// LocalSsds: Specifies amount of local ssd to reserve with each
2529	// instance. The type of disk is local-ssd.
2530	LocalSsds []*AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk `json:"localSsds,omitempty"`
2531
2532	// LocationHint: An opaque location hint used to place the allocation
2533	// close to other resources. This field is for use by internal tools
2534	// that use the public API.
2535	LocationHint string `json:"locationHint,omitempty"`
2536
2537	// MachineType: Specifies type of machine (name only) which has fixed
2538	// number of vCPUs and fixed amount of memory. This also includes
2539	// specifying custom machine type following
2540	// custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY pattern.
2541	MachineType string `json:"machineType,omitempty"`
2542
2543	// MinCpuPlatform: Minimum cpu platform the reservation.
2544	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
2545
2546	// ForceSendFields is a list of field names (e.g. "GuestAccelerators")
2547	// to unconditionally include in API requests. By default, fields with
2548	// empty values are omitted from API requests. However, any non-pointer,
2549	// non-interface field appearing in ForceSendFields will be sent to the
2550	// server regardless of whether the field is empty or not. This may be
2551	// used to include empty fields in Patch requests.
2552	ForceSendFields []string `json:"-"`
2553
2554	// NullFields is a list of field names (e.g. "GuestAccelerators") to
2555	// include in API requests with the JSON null value. By default, fields
2556	// with empty values are omitted from API requests. However, any field
2557	// with an empty value appearing in NullFields will be sent to the
2558	// server as null. It is an error if a field in this list has a
2559	// non-empty value. This may be used to include null fields in Patch
2560	// requests.
2561	NullFields []string `json:"-"`
2562}
2563
2564func (s *AllocationSpecificSKUAllocationReservedInstanceProperties) MarshalJSON() ([]byte, error) {
2565	type NoMethod AllocationSpecificSKUAllocationReservedInstanceProperties
2566	raw := NoMethod(*s)
2567	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2568}
2569
2570// AllocationSpecificSKUReservation: This reservation type allows to pre
2571// allocate specific instance configuration.
2572type AllocationSpecificSKUReservation struct {
2573	// Count: Specifies the number of resources that are allocated.
2574	Count int64 `json:"count,omitempty,string"`
2575
2576	// InUseCount: [Output Only] Indicates how many instances are in use.
2577	InUseCount int64 `json:"inUseCount,omitempty,string"`
2578
2579	// InstanceProperties: The instance properties for the reservation.
2580	InstanceProperties *AllocationSpecificSKUAllocationReservedInstanceProperties `json:"instanceProperties,omitempty"`
2581
2582	// ForceSendFields is a list of field names (e.g. "Count") to
2583	// unconditionally include in API requests. By default, fields with
2584	// empty values are omitted from API requests. However, any non-pointer,
2585	// non-interface field appearing in ForceSendFields will be sent to the
2586	// server regardless of whether the field is empty or not. This may be
2587	// used to include empty fields in Patch requests.
2588	ForceSendFields []string `json:"-"`
2589
2590	// NullFields is a list of field names (e.g. "Count") to include in API
2591	// requests with the JSON null value. By default, fields with empty
2592	// values are omitted from API requests. However, any field with an
2593	// empty value appearing in NullFields will be sent to the server as
2594	// null. It is an error if a field in this list has a non-empty value.
2595	// This may be used to include null fields in Patch requests.
2596	NullFields []string `json:"-"`
2597}
2598
2599func (s *AllocationSpecificSKUReservation) MarshalJSON() ([]byte, error) {
2600	type NoMethod AllocationSpecificSKUReservation
2601	raw := NoMethod(*s)
2602	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2603}
2604
2605// AttachedDisk: An instance-attached disk resource.
2606type AttachedDisk struct {
2607	// AutoDelete: Specifies whether the disk will be auto-deleted when the
2608	// instance is deleted (but not when the disk is detached from the
2609	// instance).
2610	AutoDelete bool `json:"autoDelete,omitempty"`
2611
2612	// Boot: Indicates that this is a boot disk. The virtual machine will
2613	// use the first partition of the disk for its root filesystem.
2614	Boot bool `json:"boot,omitempty"`
2615
2616	// DeviceName: Specifies a unique device name of your choice that is
2617	// reflected into the /dev/disk/by-id/google-* tree of a Linux operating
2618	// system running within the instance. This name can be used to
2619	// reference the device for mounting, resizing, and so on, from within
2620	// the instance.
2621	//
2622	// If not specified, the server chooses a default device name to apply
2623	// to this disk, in the form persistent-disk-x, where x is a number
2624	// assigned by Google Compute Engine. This field is only applicable for
2625	// persistent disks.
2626	DeviceName string `json:"deviceName,omitempty"`
2627
2628	// DiskEncryptionKey: Encrypts or decrypts a disk using a
2629	// customer-supplied encryption key.
2630	//
2631	// If you are creating a new disk, this field encrypts the new disk
2632	// using an encryption key that you provide. If you are attaching an
2633	// existing disk that is already encrypted, this field decrypts the disk
2634	// using the customer-supplied encryption key.
2635	//
2636	// If you encrypt a disk using a customer-supplied key, you must provide
2637	// the same key again when you attempt to use this resource at a later
2638	// time. For example, you must provide the key when you create a
2639	// snapshot or an image from the disk or when you attach the disk to a
2640	// virtual machine instance.
2641	//
2642	// If you do not provide an encryption key, then the disk will be
2643	// encrypted using an automatically generated key and you do not need to
2644	// provide a key to use the disk later.
2645	//
2646	// Instance templates do not store customer-supplied encryption keys, so
2647	// you cannot use your own keys to encrypt disks in a managed instance
2648	// group.
2649	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
2650
2651	// DiskSizeGb: The size of the disk in GB.
2652	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
2653
2654	// GuestOsFeatures: A list of features to enable on the guest operating
2655	// system. Applicable only for bootable images. Read  Enabling guest
2656	// operating system features to see a list of available options.
2657	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
2658
2659	// Index: [Output Only] A zero-based index to this disk, where 0 is
2660	// reserved for the boot disk. If you have many disks attached to an
2661	// instance, each disk would have a unique index number.
2662	Index int64 `json:"index,omitempty"`
2663
2664	// InitializeParams: [Input Only] Specifies the parameters for a new
2665	// disk that will be created alongside the new instance. Use
2666	// initialization parameters to create boot disks or local SSDs attached
2667	// to the new instance.
2668	//
2669	// This property is mutually exclusive with the source property; you can
2670	// only define one or the other, but not both.
2671	InitializeParams *AttachedDiskInitializeParams `json:"initializeParams,omitempty"`
2672
2673	// Interface: Specifies the disk interface to use for attaching this
2674	// disk, which is either SCSI or NVME. The default is SCSI. Persistent
2675	// disks must always use SCSI and the request will fail if you attempt
2676	// to attach a persistent disk in any other format than SCSI. Local SSDs
2677	// can use either NVME or SCSI. For performance characteristics of SCSI
2678	// over NVMe, see Local SSD performance.
2679	//
2680	// Possible values:
2681	//   "NVME"
2682	//   "SCSI"
2683	Interface string `json:"interface,omitempty"`
2684
2685	// Kind: [Output Only] Type of the resource. Always compute#attachedDisk
2686	// for attached disks.
2687	Kind string `json:"kind,omitempty"`
2688
2689	// Licenses: [Output Only] Any valid publicly visible licenses.
2690	Licenses []string `json:"licenses,omitempty"`
2691
2692	// Mode: The mode in which to attach this disk, either READ_WRITE or
2693	// READ_ONLY. If not specified, the default is to attach the disk in
2694	// READ_WRITE mode.
2695	//
2696	// Possible values:
2697	//   "READ_ONLY"
2698	//   "READ_WRITE"
2699	Mode string `json:"mode,omitempty"`
2700
2701	// ShieldedInstanceInitialState: [Output Only] shielded vm initial state
2702	// stored on disk
2703	ShieldedInstanceInitialState *InitialStateConfig `json:"shieldedInstanceInitialState,omitempty"`
2704
2705	// Source: Specifies a valid partial or full URL to an existing
2706	// Persistent Disk resource. When creating a new instance, one of
2707	// initializeParams.sourceImage or initializeParams.sourceSnapshot or
2708	// disks.source is required except for local SSD.
2709	//
2710	// If desired, you can also attach existing non-root persistent disks
2711	// using this property. This field is only applicable for persistent
2712	// disks.
2713	//
2714	// Note that for InstanceTemplate, specify the disk name, not the URL
2715	// for the disk.
2716	Source string `json:"source,omitempty"`
2717
2718	// Type: Specifies the type of the disk, either SCRATCH or PERSISTENT.
2719	// If not specified, the default is PERSISTENT.
2720	//
2721	// Possible values:
2722	//   "PERSISTENT"
2723	//   "SCRATCH"
2724	Type string `json:"type,omitempty"`
2725
2726	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
2727	// unconditionally include in API requests. By default, fields with
2728	// empty values are omitted from API requests. However, any non-pointer,
2729	// non-interface field appearing in ForceSendFields will be sent to the
2730	// server regardless of whether the field is empty or not. This may be
2731	// used to include empty fields in Patch requests.
2732	ForceSendFields []string `json:"-"`
2733
2734	// NullFields is a list of field names (e.g. "AutoDelete") to include in
2735	// API requests with the JSON null value. By default, fields with empty
2736	// values are omitted from API requests. However, any field with an
2737	// empty value appearing in NullFields will be sent to the server as
2738	// null. It is an error if a field in this list has a non-empty value.
2739	// This may be used to include null fields in Patch requests.
2740	NullFields []string `json:"-"`
2741}
2742
2743func (s *AttachedDisk) MarshalJSON() ([]byte, error) {
2744	type NoMethod AttachedDisk
2745	raw := NoMethod(*s)
2746	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2747}
2748
2749// AttachedDiskInitializeParams: [Input Only] Specifies the parameters
2750// for a new disk that will be created alongside the new instance. Use
2751// initialization parameters to create boot disks or local SSDs attached
2752// to the new instance.
2753//
2754// This property is mutually exclusive with the source property; you can
2755// only define one or the other, but not both.
2756type AttachedDiskInitializeParams struct {
2757	// Description: An optional description. Provide this property when
2758	// creating the disk.
2759	Description string `json:"description,omitempty"`
2760
2761	// DiskName: Specifies the disk name. If not specified, the default is
2762	// to use the name of the instance. If a disk with the same name already
2763	// exists in the given region, the existing disk is attached to the new
2764	// instance and the new disk is not created.
2765	DiskName string `json:"diskName,omitempty"`
2766
2767	// DiskSizeGb: Specifies the size of the disk in base-2 GB. The size
2768	// must be at least 10 GB. If you specify a sourceImage, which is
2769	// required for boot disks, the default size is the size of the
2770	// sourceImage. If you do not specify a sourceImage, the default disk
2771	// size is 500 GB.
2772	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
2773
2774	// DiskType: Specifies the disk type to use to create the instance. If
2775	// not specified, the default is pd-standard, specified using the full
2776	// URL. For
2777	// example:
2778	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/diskTypes/pd-standard
2779	//
2780	//
2781	// Other values include pd-ssd and local-ssd. If you define this field,
2782	// you can provide either the full or partial URL. For example, the
2783	// following are valid values:
2784	// -
2785	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/diskTypes/diskType
2786	//
2787	// - projects/project/zones/zone/diskTypes/diskType
2788	// - zones/zone/diskTypes/diskType  Note that for InstanceTemplate, this
2789	// is the name of the disk type, not URL.
2790	DiskType string `json:"diskType,omitempty"`
2791
2792	// Labels: Labels to apply to this disk. These can be later modified by
2793	// the disks.setLabels method. This field is only applicable for
2794	// persistent disks.
2795	Labels map[string]string `json:"labels,omitempty"`
2796
2797	// OnUpdateAction: Specifies which action to take on instance update
2798	// with this disk. Default is to use the existing disk.
2799	//
2800	// Possible values:
2801	//   "RECREATE_DISK"
2802	//   "RECREATE_DISK_IF_SOURCE_CHANGED"
2803	//   "USE_EXISTING_DISK"
2804	OnUpdateAction string `json:"onUpdateAction,omitempty"`
2805
2806	// ProvisionedIops: Indicates how many IOPS must be provisioned for the
2807	// disk.
2808	ProvisionedIops int64 `json:"provisionedIops,omitempty,string"`
2809
2810	// ResourcePolicies: Resource policies applied to this disk for
2811	// automatic snapshot creations. Specified using the full or partial
2812	// URL. For instance template, specify only the resource policy name.
2813	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
2814
2815	// SourceImage: The source image to create this disk. When creating a
2816	// new instance, one of initializeParams.sourceImage or
2817	// initializeParams.sourceSnapshot or disks.source is required except
2818	// for local SSD.
2819	//
2820	// To create a disk with one of the public operating system images,
2821	// specify the image by its family name. For example, specify
2822	// family/debian-9 to use the latest Debian 9
2823	// image:
2824	// projects/debian-cloud/global/images/family/debian-9
2825	//
2826	//
2827	// Alternatively, use a specific version of a public operating system
2828	// image:
2829	// projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD
2830	//
2831	//
2832	// To create a disk with a custom image that you created, specify the
2833	// image name in the following
2834	// format:
2835	// global/images/my-custom-image
2836	//
2837	//
2838	// You can also specify a custom image by its image family, which
2839	// returns the latest version of the image in that family. Replace the
2840	// image name with
2841	// family/family-name:
2842	// global/images/family/my-image-family
2843	//
2844	//
2845	// If the source image is deleted later, this field will not be set.
2846	SourceImage string `json:"sourceImage,omitempty"`
2847
2848	// SourceImageEncryptionKey: The customer-supplied encryption key of the
2849	// source image. Required if the source image is protected by a
2850	// customer-supplied encryption key.
2851	//
2852	// Instance templates do not store customer-supplied encryption keys, so
2853	// you cannot create disks for instances in a managed instance group if
2854	// the source images are encrypted with your own keys.
2855	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
2856
2857	// SourceSnapshot: The source snapshot to create this disk. When
2858	// creating a new instance, one of initializeParams.sourceSnapshot or
2859	// initializeParams.sourceImage or disks.source is required except for
2860	// local SSD.
2861	//
2862	// To create a disk with a snapshot that you created, specify the
2863	// snapshot name in the following
2864	// format:
2865	// global/snapshots/my-backup
2866	//
2867	//
2868	// If the source snapshot is deleted later, this field will not be set.
2869	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
2870
2871	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of
2872	// the source snapshot.
2873	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
2874
2875	// ForceSendFields is a list of field names (e.g. "Description") to
2876	// unconditionally include in API requests. By default, fields with
2877	// empty values are omitted from API requests. However, any non-pointer,
2878	// non-interface field appearing in ForceSendFields will be sent to the
2879	// server regardless of whether the field is empty or not. This may be
2880	// used to include empty fields in Patch requests.
2881	ForceSendFields []string `json:"-"`
2882
2883	// NullFields is a list of field names (e.g. "Description") to include
2884	// in API requests with the JSON null value. By default, fields with
2885	// empty values are omitted from API requests. However, any field with
2886	// an empty value appearing in NullFields will be sent to the server as
2887	// null. It is an error if a field in this list has a non-empty value.
2888	// This may be used to include null fields in Patch requests.
2889	NullFields []string `json:"-"`
2890}
2891
2892func (s *AttachedDiskInitializeParams) MarshalJSON() ([]byte, error) {
2893	type NoMethod AttachedDiskInitializeParams
2894	raw := NoMethod(*s)
2895	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2896}
2897
2898// AuditConfig: Specifies the audit configuration for a service. The
2899// configuration determines which permission types are logged, and what
2900// identities, if any, are exempted from logging. An AuditConfig must
2901// have one or more AuditLogConfigs.
2902//
2903// If there are AuditConfigs for both `allServices` and a specific
2904// service, the union of the two AuditConfigs is used for that service:
2905// the log_types specified in each AuditConfig are enabled, and the
2906// exempted_members in each AuditLogConfig are exempted.
2907//
2908// Example Policy with multiple AuditConfigs:
2909//
2910// { "audit_configs": [ { "service": "allServices", "audit_log_configs":
2911// [ { "log_type": "DATA_READ", "exempted_members": [
2912// "user:jose@example.com" ] }, { "log_type": "DATA_WRITE" }, {
2913// "log_type": "ADMIN_READ" } ] }, { "service":
2914// "sampleservice.googleapis.com", "audit_log_configs": [ { "log_type":
2915// "DATA_READ" }, { "log_type": "DATA_WRITE", "exempted_members": [
2916// "user:aliya@example.com" ] } ] } ] }
2917//
2918// For sampleservice, this policy enables DATA_READ, DATA_WRITE and
2919// ADMIN_READ logging. It also exempts jose@example.com from DATA_READ
2920// logging, and aliya@example.com from DATA_WRITE logging.
2921type AuditConfig struct {
2922	// AuditLogConfigs: The configuration for logging of each type of
2923	// permission.
2924	AuditLogConfigs []*AuditLogConfig `json:"auditLogConfigs,omitempty"`
2925
2926	ExemptedMembers []string `json:"exemptedMembers,omitempty"`
2927
2928	// Service: Specifies a service that will be enabled for audit logging.
2929	// For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
2930	// `allServices` is a special value that covers all services.
2931	Service string `json:"service,omitempty"`
2932
2933	// ForceSendFields is a list of field names (e.g. "AuditLogConfigs") to
2934	// unconditionally include in API requests. By default, fields with
2935	// empty values are omitted from API requests. However, any non-pointer,
2936	// non-interface field appearing in ForceSendFields will be sent to the
2937	// server regardless of whether the field is empty or not. This may be
2938	// used to include empty fields in Patch requests.
2939	ForceSendFields []string `json:"-"`
2940
2941	// NullFields is a list of field names (e.g. "AuditLogConfigs") to
2942	// include in API requests with the JSON null value. By default, fields
2943	// with empty values are omitted from API requests. However, any field
2944	// with an empty value appearing in NullFields will be sent to the
2945	// server as null. It is an error if a field in this list has a
2946	// non-empty value. This may be used to include null fields in Patch
2947	// requests.
2948	NullFields []string `json:"-"`
2949}
2950
2951func (s *AuditConfig) MarshalJSON() ([]byte, error) {
2952	type NoMethod AuditConfig
2953	raw := NoMethod(*s)
2954	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2955}
2956
2957// AuditLogConfig: Provides the configuration for logging a type of
2958// permissions. Example:
2959//
2960// { "audit_log_configs": [ { "log_type": "DATA_READ",
2961// "exempted_members": [ "user:jose@example.com" ] }, { "log_type":
2962// "DATA_WRITE" } ] }
2963//
2964// This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
2965// jose@example.com from DATA_READ logging.
2966type AuditLogConfig struct {
2967	// ExemptedMembers: Specifies the identities that do not cause logging
2968	// for this type of permission. Follows the same format of
2969	// [Binding.members][].
2970	ExemptedMembers []string `json:"exemptedMembers,omitempty"`
2971
2972	IgnoreChildExemptions bool `json:"ignoreChildExemptions,omitempty"`
2973
2974	// LogType: The log type that this config enables.
2975	//
2976	// Possible values:
2977	//   "ADMIN_READ"
2978	//   "DATA_READ"
2979	//   "DATA_WRITE"
2980	//   "LOG_TYPE_UNSPECIFIED"
2981	LogType string `json:"logType,omitempty"`
2982
2983	// ForceSendFields is a list of field names (e.g. "ExemptedMembers") to
2984	// unconditionally include in API requests. By default, fields with
2985	// empty values are omitted from API requests. However, any non-pointer,
2986	// non-interface field appearing in ForceSendFields will be sent to the
2987	// server regardless of whether the field is empty or not. This may be
2988	// used to include empty fields in Patch requests.
2989	ForceSendFields []string `json:"-"`
2990
2991	// NullFields is a list of field names (e.g. "ExemptedMembers") to
2992	// include in API requests with the JSON null value. By default, fields
2993	// with empty values are omitted from API requests. However, any field
2994	// with an empty value appearing in NullFields will be sent to the
2995	// server as null. It is an error if a field in this list has a
2996	// non-empty value. This may be used to include null fields in Patch
2997	// requests.
2998	NullFields []string `json:"-"`
2999}
3000
3001func (s *AuditLogConfig) MarshalJSON() ([]byte, error) {
3002	type NoMethod AuditLogConfig
3003	raw := NoMethod(*s)
3004	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3005}
3006
3007// AuthorizationLoggingOptions: Authorization-related information used
3008// by Cloud Audit Logging.
3009type AuthorizationLoggingOptions struct {
3010	// PermissionType: The type of the permission that was checked.
3011	//
3012	// Possible values:
3013	//   "ADMIN_READ"
3014	//   "ADMIN_WRITE"
3015	//   "DATA_READ"
3016	//   "DATA_WRITE"
3017	//   "PERMISSION_TYPE_UNSPECIFIED"
3018	PermissionType string `json:"permissionType,omitempty"`
3019
3020	// ForceSendFields is a list of field names (e.g. "PermissionType") to
3021	// unconditionally include in API requests. By default, fields with
3022	// empty values are omitted from API requests. However, any non-pointer,
3023	// non-interface field appearing in ForceSendFields will be sent to the
3024	// server regardless of whether the field is empty or not. This may be
3025	// used to include empty fields in Patch requests.
3026	ForceSendFields []string `json:"-"`
3027
3028	// NullFields is a list of field names (e.g. "PermissionType") to
3029	// include in API requests with the JSON null value. By default, fields
3030	// with empty values are omitted from API requests. However, any field
3031	// with an empty value appearing in NullFields will be sent to the
3032	// server as null. It is an error if a field in this list has a
3033	// non-empty value. This may be used to include null fields in Patch
3034	// requests.
3035	NullFields []string `json:"-"`
3036}
3037
3038func (s *AuthorizationLoggingOptions) MarshalJSON() ([]byte, error) {
3039	type NoMethod AuthorizationLoggingOptions
3040	raw := NoMethod(*s)
3041	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3042}
3043
3044// Autoscaler: Represents an Autoscaler resource.
3045//
3046// Google Compute Engine has two Autoscaler resources:
3047//
3048// * Zonal (/compute/docs/reference/rest/{$api_version}/autoscalers) *
3049// Regional
3050// (/compute/docs/reference/rest/{$api_version}/regionAutoscalers)
3051//
3052// Use autoscalers to automatically add or delete instances from a
3053// managed instance group according to your defined autoscaling policy.
3054// For more information, read Autoscaling Groups of Instances.
3055//
3056// For zonal managed instance groups resource, use the autoscaler
3057// resource.
3058//
3059// For regional managed instance groups, use the regionAutoscalers
3060// resource. (== resource_for {$api_version}.autoscalers ==) (==
3061// resource_for {$api_version}.regionAutoscalers ==)
3062type Autoscaler struct {
3063	// AutoscalingPolicy: The configuration parameters for the autoscaling
3064	// algorithm. You can define one or more signals for an autoscaler:
3065	// cpuUtilization, customMetricUtilizations, and
3066	// loadBalancingUtilization.
3067	//
3068	// If none of these are specified, the default will be to autoscale
3069	// based on cpuUtilization to 0.6 or 60%.
3070	AutoscalingPolicy *AutoscalingPolicy `json:"autoscalingPolicy,omitempty"`
3071
3072	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
3073	// format.
3074	CreationTimestamp string `json:"creationTimestamp,omitempty"`
3075
3076	// Description: An optional description of this resource. Provide this
3077	// property when you create the resource.
3078	Description string `json:"description,omitempty"`
3079
3080	// Id: [Output Only] The unique identifier for the resource. This
3081	// identifier is defined by the server.
3082	Id uint64 `json:"id,omitempty,string"`
3083
3084	// Kind: [Output Only] Type of the resource. Always compute#autoscaler
3085	// for autoscalers.
3086	Kind string `json:"kind,omitempty"`
3087
3088	// Name: Name of the resource. Provided by the client when the resource
3089	// is created. The name must be 1-63 characters long, and comply with
3090	// RFC1035. Specifically, the name must be 1-63 characters long and
3091	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
3092	// the first character must be a lowercase letter, and all following
3093	// characters must be a dash, lowercase letter, or digit, except the
3094	// last character, which cannot be a dash.
3095	Name string `json:"name,omitempty"`
3096
3097	// RecommendedSize: [Output Only] Target recommended MIG size (number of
3098	// instances) computed by autoscaler. Autoscaler calculates the
3099	// recommended MIG size even when the autoscaling policy mode is
3100	// different from ON. This field is empty when autoscaler is not
3101	// connected to an existing managed instance group or autoscaler did not
3102	// generate its prediction.
3103	RecommendedSize int64 `json:"recommendedSize,omitempty"`
3104
3105	// Region: [Output Only] URL of the region where the instance group
3106	// resides (for autoscalers living in regional scope).
3107	Region string `json:"region,omitempty"`
3108
3109	// ScalingScheduleStatus: [Output Only] Status information of existing
3110	// scaling schedules.
3111	ScalingScheduleStatus map[string]ScalingScheduleStatus `json:"scalingScheduleStatus,omitempty"`
3112
3113	// SelfLink: [Output Only] Server-defined URL for the resource.
3114	SelfLink string `json:"selfLink,omitempty"`
3115
3116	// Status: [Output Only] The status of the autoscaler configuration.
3117	// Current set of possible values:
3118	// - PENDING: Autoscaler backend hasn't read new/updated configuration.
3119	//
3120	// - DELETING: Configuration is being deleted.
3121	// - ACTIVE: Configuration is acknowledged to be effective. Some
3122	// warnings might be present in the statusDetails field.
3123	// - ERROR: Configuration has errors. Actionable for users. Details are
3124	// present in the statusDetails field.  New values might be added in the
3125	// future.
3126	//
3127	// Possible values:
3128	//   "ACTIVE"
3129	//   "DELETING"
3130	//   "ERROR"
3131	//   "PENDING"
3132	Status string `json:"status,omitempty"`
3133
3134	// StatusDetails: [Output Only] Human-readable details about the current
3135	// state of the autoscaler. Read the documentation for Commonly returned
3136	// status messages for examples of status messages you might encounter.
3137	StatusDetails []*AutoscalerStatusDetails `json:"statusDetails,omitempty"`
3138
3139	// Target: URL of the managed instance group that this autoscaler will
3140	// scale. This field is required when creating an autoscaler.
3141	Target string `json:"target,omitempty"`
3142
3143	// Zone: [Output Only] URL of the zone where the instance group resides
3144	// (for autoscalers living in zonal scope).
3145	Zone string `json:"zone,omitempty"`
3146
3147	// ServerResponse contains the HTTP response code and headers from the
3148	// server.
3149	googleapi.ServerResponse `json:"-"`
3150
3151	// ForceSendFields is a list of field names (e.g. "AutoscalingPolicy")
3152	// to unconditionally include in API requests. By default, fields with
3153	// empty values are omitted from API requests. However, any non-pointer,
3154	// non-interface field appearing in ForceSendFields will be sent to the
3155	// server regardless of whether the field is empty or not. This may be
3156	// used to include empty fields in Patch requests.
3157	ForceSendFields []string `json:"-"`
3158
3159	// NullFields is a list of field names (e.g. "AutoscalingPolicy") to
3160	// include in API requests with the JSON null value. By default, fields
3161	// with empty values are omitted from API requests. However, any field
3162	// with an empty value appearing in NullFields will be sent to the
3163	// server as null. It is an error if a field in this list has a
3164	// non-empty value. This may be used to include null fields in Patch
3165	// requests.
3166	NullFields []string `json:"-"`
3167}
3168
3169func (s *Autoscaler) MarshalJSON() ([]byte, error) {
3170	type NoMethod Autoscaler
3171	raw := NoMethod(*s)
3172	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3173}
3174
3175type AutoscalerAggregatedList struct {
3176	// Id: [Output Only] Unique identifier for the resource; defined by the
3177	// server.
3178	Id string `json:"id,omitempty"`
3179
3180	// Items: A list of AutoscalersScopedList resources.
3181	Items map[string]AutoscalersScopedList `json:"items,omitempty"`
3182
3183	// Kind: [Output Only] Type of resource. Always
3184	// compute#autoscalerAggregatedList for aggregated lists of autoscalers.
3185	Kind string `json:"kind,omitempty"`
3186
3187	// NextPageToken: [Output Only] This token allows you to get the next
3188	// page of results for list requests. If the number of results is larger
3189	// than maxResults, use the nextPageToken as a value for the query
3190	// parameter pageToken in the next list request. Subsequent list
3191	// requests will have their own nextPageToken to continue paging through
3192	// the results.
3193	NextPageToken string `json:"nextPageToken,omitempty"`
3194
3195	// SelfLink: [Output Only] Server-defined URL for this resource.
3196	SelfLink string `json:"selfLink,omitempty"`
3197
3198	// Unreachables: [Output Only] Unreachable resources.
3199	Unreachables []string `json:"unreachables,omitempty"`
3200
3201	// Warning: [Output Only] Informational warning message.
3202	Warning *AutoscalerAggregatedListWarning `json:"warning,omitempty"`
3203
3204	// ServerResponse contains the HTTP response code and headers from the
3205	// server.
3206	googleapi.ServerResponse `json:"-"`
3207
3208	// ForceSendFields is a list of field names (e.g. "Id") to
3209	// unconditionally include in API requests. By default, fields with
3210	// empty values are omitted from API requests. However, any non-pointer,
3211	// non-interface field appearing in ForceSendFields will be sent to the
3212	// server regardless of whether the field is empty or not. This may be
3213	// used to include empty fields in Patch requests.
3214	ForceSendFields []string `json:"-"`
3215
3216	// NullFields is a list of field names (e.g. "Id") to include in API
3217	// requests with the JSON null value. By default, fields with empty
3218	// values are omitted from API requests. However, any field with an
3219	// empty value appearing in NullFields will be sent to the server as
3220	// null. It is an error if a field in this list has a non-empty value.
3221	// This may be used to include null fields in Patch requests.
3222	NullFields []string `json:"-"`
3223}
3224
3225func (s *AutoscalerAggregatedList) MarshalJSON() ([]byte, error) {
3226	type NoMethod AutoscalerAggregatedList
3227	raw := NoMethod(*s)
3228	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3229}
3230
3231// AutoscalerAggregatedListWarning: [Output Only] Informational warning
3232// message.
3233type AutoscalerAggregatedListWarning struct {
3234	// Code: [Output Only] A warning code, if applicable. For example,
3235	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3236	// the response.
3237	//
3238	// Possible values:
3239	//   "CLEANUP_FAILED"
3240	//   "DEPRECATED_RESOURCE_USED"
3241	//   "DEPRECATED_TYPE_USED"
3242	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3243	//   "EXPERIMENTAL_TYPE_USED"
3244	//   "EXTERNAL_API_WARNING"
3245	//   "FIELD_VALUE_OVERRIDEN"
3246	//   "INJECTED_KERNELS_DEPRECATED"
3247	//   "LARGE_DEPLOYMENT_WARNING"
3248	//   "MISSING_TYPE_DEPENDENCY"
3249	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
3250	//   "NEXT_HOP_CANNOT_IP_FORWARD"
3251	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
3252	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
3253	//   "NEXT_HOP_NOT_RUNNING"
3254	//   "NOT_CRITICAL_ERROR"
3255	//   "NO_RESULTS_ON_PAGE"
3256	//   "PARTIAL_SUCCESS"
3257	//   "REQUIRED_TOS_AGREEMENT"
3258	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
3259	//   "RESOURCE_NOT_DELETED"
3260	//   "SCHEMA_VALIDATION_IGNORED"
3261	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
3262	//   "UNDECLARED_PROPERTIES"
3263	//   "UNREACHABLE"
3264	Code string `json:"code,omitempty"`
3265
3266	// Data: [Output Only] Metadata about this warning in key: value format.
3267	// For example:
3268	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
3269	Data []*AutoscalerAggregatedListWarningData `json:"data,omitempty"`
3270
3271	// Message: [Output Only] A human-readable description of the warning
3272	// code.
3273	Message string `json:"message,omitempty"`
3274
3275	// ForceSendFields is a list of field names (e.g. "Code") to
3276	// unconditionally include in API requests. By default, fields with
3277	// empty values are omitted from API requests. However, any non-pointer,
3278	// non-interface field appearing in ForceSendFields will be sent to the
3279	// server regardless of whether the field is empty or not. This may be
3280	// used to include empty fields in Patch requests.
3281	ForceSendFields []string `json:"-"`
3282
3283	// NullFields is a list of field names (e.g. "Code") to include in API
3284	// requests with the JSON null value. By default, fields with empty
3285	// values are omitted from API requests. However, any field with an
3286	// empty value appearing in NullFields will be sent to the server as
3287	// null. It is an error if a field in this list has a non-empty value.
3288	// This may be used to include null fields in Patch requests.
3289	NullFields []string `json:"-"`
3290}
3291
3292func (s *AutoscalerAggregatedListWarning) MarshalJSON() ([]byte, error) {
3293	type NoMethod AutoscalerAggregatedListWarning
3294	raw := NoMethod(*s)
3295	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3296}
3297
3298type AutoscalerAggregatedListWarningData struct {
3299	// Key: [Output Only] A key that provides more detail on the warning
3300	// being returned. For example, for warnings where there are no results
3301	// in a list request for a particular zone, this key might be scope and
3302	// the key value might be the zone name. Other examples might be a key
3303	// indicating a deprecated resource and a suggested replacement, or a
3304	// warning about invalid network settings (for example, if an instance
3305	// attempts to perform IP forwarding but is not enabled for IP
3306	// forwarding).
3307	Key string `json:"key,omitempty"`
3308
3309	// Value: [Output Only] A warning data value corresponding to the key.
3310	Value string `json:"value,omitempty"`
3311
3312	// ForceSendFields is a list of field names (e.g. "Key") to
3313	// unconditionally include in API requests. By default, fields with
3314	// empty values are omitted from API requests. However, any non-pointer,
3315	// non-interface field appearing in ForceSendFields will be sent to the
3316	// server regardless of whether the field is empty or not. This may be
3317	// used to include empty fields in Patch requests.
3318	ForceSendFields []string `json:"-"`
3319
3320	// NullFields is a list of field names (e.g. "Key") to include in API
3321	// requests with the JSON null value. By default, fields with empty
3322	// values are omitted from API requests. However, any field with an
3323	// empty value appearing in NullFields will be sent to the server as
3324	// null. It is an error if a field in this list has a non-empty value.
3325	// This may be used to include null fields in Patch requests.
3326	NullFields []string `json:"-"`
3327}
3328
3329func (s *AutoscalerAggregatedListWarningData) MarshalJSON() ([]byte, error) {
3330	type NoMethod AutoscalerAggregatedListWarningData
3331	raw := NoMethod(*s)
3332	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3333}
3334
3335// AutoscalerList: Contains a list of Autoscaler resources.
3336type AutoscalerList struct {
3337	// Id: [Output Only] Unique identifier for the resource; defined by the
3338	// server.
3339	Id string `json:"id,omitempty"`
3340
3341	// Items: A list of Autoscaler resources.
3342	Items []*Autoscaler `json:"items,omitempty"`
3343
3344	// Kind: [Output Only] Type of resource. Always compute#autoscalerList
3345	// for lists of autoscalers.
3346	Kind string `json:"kind,omitempty"`
3347
3348	// NextPageToken: [Output Only] This token allows you to get the next
3349	// page of results for list requests. If the number of results is larger
3350	// than maxResults, use the nextPageToken as a value for the query
3351	// parameter pageToken in the next list request. Subsequent list
3352	// requests will have their own nextPageToken to continue paging through
3353	// the results.
3354	NextPageToken string `json:"nextPageToken,omitempty"`
3355
3356	// SelfLink: [Output Only] Server-defined URL for this resource.
3357	SelfLink string `json:"selfLink,omitempty"`
3358
3359	// Warning: [Output Only] Informational warning message.
3360	Warning *AutoscalerListWarning `json:"warning,omitempty"`
3361
3362	// ServerResponse contains the HTTP response code and headers from the
3363	// server.
3364	googleapi.ServerResponse `json:"-"`
3365
3366	// ForceSendFields is a list of field names (e.g. "Id") to
3367	// unconditionally include in API requests. By default, fields with
3368	// empty values are omitted from API requests. However, any non-pointer,
3369	// non-interface field appearing in ForceSendFields will be sent to the
3370	// server regardless of whether the field is empty or not. This may be
3371	// used to include empty fields in Patch requests.
3372	ForceSendFields []string `json:"-"`
3373
3374	// NullFields is a list of field names (e.g. "Id") to include in API
3375	// requests with the JSON null value. By default, fields with empty
3376	// values are omitted from API requests. However, any field with an
3377	// empty value appearing in NullFields will be sent to the server as
3378	// null. It is an error if a field in this list has a non-empty value.
3379	// This may be used to include null fields in Patch requests.
3380	NullFields []string `json:"-"`
3381}
3382
3383func (s *AutoscalerList) MarshalJSON() ([]byte, error) {
3384	type NoMethod AutoscalerList
3385	raw := NoMethod(*s)
3386	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3387}
3388
3389// AutoscalerListWarning: [Output Only] Informational warning message.
3390type AutoscalerListWarning struct {
3391	// Code: [Output Only] A warning code, if applicable. For example,
3392	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3393	// the response.
3394	//
3395	// Possible values:
3396	//   "CLEANUP_FAILED"
3397	//   "DEPRECATED_RESOURCE_USED"
3398	//   "DEPRECATED_TYPE_USED"
3399	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3400	//   "EXPERIMENTAL_TYPE_USED"
3401	//   "EXTERNAL_API_WARNING"
3402	//   "FIELD_VALUE_OVERRIDEN"
3403	//   "INJECTED_KERNELS_DEPRECATED"
3404	//   "LARGE_DEPLOYMENT_WARNING"
3405	//   "MISSING_TYPE_DEPENDENCY"
3406	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
3407	//   "NEXT_HOP_CANNOT_IP_FORWARD"
3408	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
3409	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
3410	//   "NEXT_HOP_NOT_RUNNING"
3411	//   "NOT_CRITICAL_ERROR"
3412	//   "NO_RESULTS_ON_PAGE"
3413	//   "PARTIAL_SUCCESS"
3414	//   "REQUIRED_TOS_AGREEMENT"
3415	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
3416	//   "RESOURCE_NOT_DELETED"
3417	//   "SCHEMA_VALIDATION_IGNORED"
3418	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
3419	//   "UNDECLARED_PROPERTIES"
3420	//   "UNREACHABLE"
3421	Code string `json:"code,omitempty"`
3422
3423	// Data: [Output Only] Metadata about this warning in key: value format.
3424	// For example:
3425	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
3426	Data []*AutoscalerListWarningData `json:"data,omitempty"`
3427
3428	// Message: [Output Only] A human-readable description of the warning
3429	// code.
3430	Message string `json:"message,omitempty"`
3431
3432	// ForceSendFields is a list of field names (e.g. "Code") to
3433	// unconditionally include in API requests. By default, fields with
3434	// empty values are omitted from API requests. However, any non-pointer,
3435	// non-interface field appearing in ForceSendFields will be sent to the
3436	// server regardless of whether the field is empty or not. This may be
3437	// used to include empty fields in Patch requests.
3438	ForceSendFields []string `json:"-"`
3439
3440	// NullFields is a list of field names (e.g. "Code") to include in API
3441	// requests with the JSON null value. By default, fields with empty
3442	// values are omitted from API requests. However, any field with an
3443	// empty value appearing in NullFields will be sent to the server as
3444	// null. It is an error if a field in this list has a non-empty value.
3445	// This may be used to include null fields in Patch requests.
3446	NullFields []string `json:"-"`
3447}
3448
3449func (s *AutoscalerListWarning) MarshalJSON() ([]byte, error) {
3450	type NoMethod AutoscalerListWarning
3451	raw := NoMethod(*s)
3452	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3453}
3454
3455type AutoscalerListWarningData struct {
3456	// Key: [Output Only] A key that provides more detail on the warning
3457	// being returned. For example, for warnings where there are no results
3458	// in a list request for a particular zone, this key might be scope and
3459	// the key value might be the zone name. Other examples might be a key
3460	// indicating a deprecated resource and a suggested replacement, or a
3461	// warning about invalid network settings (for example, if an instance
3462	// attempts to perform IP forwarding but is not enabled for IP
3463	// forwarding).
3464	Key string `json:"key,omitempty"`
3465
3466	// Value: [Output Only] A warning data value corresponding to the key.
3467	Value string `json:"value,omitempty"`
3468
3469	// ForceSendFields is a list of field names (e.g. "Key") to
3470	// unconditionally include in API requests. By default, fields with
3471	// empty values are omitted from API requests. However, any non-pointer,
3472	// non-interface field appearing in ForceSendFields will be sent to the
3473	// server regardless of whether the field is empty or not. This may be
3474	// used to include empty fields in Patch requests.
3475	ForceSendFields []string `json:"-"`
3476
3477	// NullFields is a list of field names (e.g. "Key") to include in API
3478	// requests with the JSON null value. By default, fields with empty
3479	// values are omitted from API requests. However, any field with an
3480	// empty value appearing in NullFields will be sent to the server as
3481	// null. It is an error if a field in this list has a non-empty value.
3482	// This may be used to include null fields in Patch requests.
3483	NullFields []string `json:"-"`
3484}
3485
3486func (s *AutoscalerListWarningData) MarshalJSON() ([]byte, error) {
3487	type NoMethod AutoscalerListWarningData
3488	raw := NoMethod(*s)
3489	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3490}
3491
3492type AutoscalerStatusDetails struct {
3493	// Message: The status message.
3494	Message string `json:"message,omitempty"`
3495
3496	// Type: The type of error, warning, or notice returned. Current set of
3497	// possible values:
3498	// - ALL_INSTANCES_UNHEALTHY (WARNING): All instances in the instance
3499	// group are unhealthy (not in RUNNING state).
3500	// - BACKEND_SERVICE_DOES_NOT_EXIST (ERROR): There is no backend service
3501	// attached to the instance group.
3502	// - CAPPED_AT_MAX_NUM_REPLICAS (WARNING): Autoscaler recommends a size
3503	// greater than maxNumReplicas.
3504	// - CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE (WARNING): The custom metric
3505	// samples are not exported often enough to be a credible base for
3506	// autoscaling.
3507	// - CUSTOM_METRIC_INVALID (ERROR): The custom metric that was specified
3508	// does not exist or does not have the necessary labels.
3509	// - MIN_EQUALS_MAX (WARNING): The minNumReplicas is equal to
3510	// maxNumReplicas. This means the autoscaler cannot add or remove
3511	// instances from the instance group.
3512	// - MISSING_CUSTOM_METRIC_DATA_POINTS (WARNING): The autoscaler did not
3513	// receive any data from the custom metric configured for autoscaling.
3514	//
3515	// - MISSING_LOAD_BALANCING_DATA_POINTS (WARNING): The autoscaler is
3516	// configured to scale based on a load balancing signal but the instance
3517	// group has not received any requests from the load balancer.
3518	// - MODE_OFF (WARNING): Autoscaling is turned off. The number of
3519	// instances in the group won't change automatically. The autoscaling
3520	// configuration is preserved.
3521	// - MODE_ONLY_UP (WARNING): Autoscaling is in the "Autoscale only out"
3522	// mode. The autoscaler can add instances but not remove any.
3523	// - MORE_THAN_ONE_BACKEND_SERVICE (ERROR): The instance group cannot be
3524	// autoscaled because it has more than one backend service attached to
3525	// it.
3526	// - NOT_ENOUGH_QUOTA_AVAILABLE (ERROR): There is insufficient quota for
3527	// the necessary resources, such as CPU or number of instances.
3528	// - REGION_RESOURCE_STOCKOUT (ERROR): Shown only for regional
3529	// autoscalers: there is a resource stockout in the chosen region.
3530	// - SCALING_TARGET_DOES_NOT_EXIST (ERROR): The target to be scaled does
3531	// not exist.
3532	// - UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION (ERROR):
3533	// Autoscaling does not work with an HTTP/S load balancer that has been
3534	// configured for maxRate.
3535	// - ZONE_RESOURCE_STOCKOUT (ERROR): For zonal autoscalers: there is a
3536	// resource stockout in the chosen zone. For regional autoscalers: in at
3537	// least one of the zones you're using there is a resource stockout.
3538	// New values might be added in the future. Some of the values might not
3539	// be available in all API versions.
3540	//
3541	// Possible values:
3542	//   "ALL_INSTANCES_UNHEALTHY"
3543	//   "BACKEND_SERVICE_DOES_NOT_EXIST"
3544	//   "CAPPED_AT_MAX_NUM_REPLICAS"
3545	//   "CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE"
3546	//   "CUSTOM_METRIC_INVALID"
3547	//   "MIN_EQUALS_MAX"
3548	//   "MISSING_CUSTOM_METRIC_DATA_POINTS"
3549	//   "MISSING_LOAD_BALANCING_DATA_POINTS"
3550	//   "MODE_OFF"
3551	//   "MODE_ONLY_SCALE_OUT"
3552	//   "MODE_ONLY_UP"
3553	//   "MORE_THAN_ONE_BACKEND_SERVICE"
3554	//   "NOT_ENOUGH_QUOTA_AVAILABLE"
3555	//   "REGION_RESOURCE_STOCKOUT"
3556	//   "SCALING_TARGET_DOES_NOT_EXIST"
3557	//   "SCHEDULED_INSTANCES_GREATER_THAN_AUTOSCALER_MAX"
3558	//   "SCHEDULED_INSTANCES_LESS_THAN_AUTOSCALER_MIN"
3559	//   "UNKNOWN"
3560	//   "UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION"
3561	//   "ZONE_RESOURCE_STOCKOUT"
3562	Type string `json:"type,omitempty"`
3563
3564	// ForceSendFields is a list of field names (e.g. "Message") to
3565	// unconditionally include in API requests. By default, fields with
3566	// empty values are omitted from API requests. However, any non-pointer,
3567	// non-interface field appearing in ForceSendFields will be sent to the
3568	// server regardless of whether the field is empty or not. This may be
3569	// used to include empty fields in Patch requests.
3570	ForceSendFields []string `json:"-"`
3571
3572	// NullFields is a list of field names (e.g. "Message") to include in
3573	// API requests with the JSON null value. By default, fields with empty
3574	// values are omitted from API requests. However, any field with an
3575	// empty value appearing in NullFields will be sent to the server as
3576	// null. It is an error if a field in this list has a non-empty value.
3577	// This may be used to include null fields in Patch requests.
3578	NullFields []string `json:"-"`
3579}
3580
3581func (s *AutoscalerStatusDetails) MarshalJSON() ([]byte, error) {
3582	type NoMethod AutoscalerStatusDetails
3583	raw := NoMethod(*s)
3584	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3585}
3586
3587type AutoscalersScopedList struct {
3588	// Autoscalers: [Output Only] A list of autoscalers contained in this
3589	// scope.
3590	Autoscalers []*Autoscaler `json:"autoscalers,omitempty"`
3591
3592	// Warning: [Output Only] Informational warning which replaces the list
3593	// of autoscalers when the list is empty.
3594	Warning *AutoscalersScopedListWarning `json:"warning,omitempty"`
3595
3596	// ForceSendFields is a list of field names (e.g. "Autoscalers") to
3597	// unconditionally include in API requests. By default, fields with
3598	// empty values are omitted from API requests. However, any non-pointer,
3599	// non-interface field appearing in ForceSendFields will be sent to the
3600	// server regardless of whether the field is empty or not. This may be
3601	// used to include empty fields in Patch requests.
3602	ForceSendFields []string `json:"-"`
3603
3604	// NullFields is a list of field names (e.g. "Autoscalers") to include
3605	// in API requests with the JSON null value. By default, fields with
3606	// empty values are omitted from API requests. However, any field with
3607	// an empty value appearing in NullFields will be sent to the server as
3608	// null. It is an error if a field in this list has a non-empty value.
3609	// This may be used to include null fields in Patch requests.
3610	NullFields []string `json:"-"`
3611}
3612
3613func (s *AutoscalersScopedList) MarshalJSON() ([]byte, error) {
3614	type NoMethod AutoscalersScopedList
3615	raw := NoMethod(*s)
3616	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3617}
3618
3619// AutoscalersScopedListWarning: [Output Only] Informational warning
3620// which replaces the list of autoscalers when the list is empty.
3621type AutoscalersScopedListWarning struct {
3622	// Code: [Output Only] A warning code, if applicable. For example,
3623	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3624	// the response.
3625	//
3626	// Possible values:
3627	//   "CLEANUP_FAILED"
3628	//   "DEPRECATED_RESOURCE_USED"
3629	//   "DEPRECATED_TYPE_USED"
3630	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3631	//   "EXPERIMENTAL_TYPE_USED"
3632	//   "EXTERNAL_API_WARNING"
3633	//   "FIELD_VALUE_OVERRIDEN"
3634	//   "INJECTED_KERNELS_DEPRECATED"
3635	//   "LARGE_DEPLOYMENT_WARNING"
3636	//   "MISSING_TYPE_DEPENDENCY"
3637	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
3638	//   "NEXT_HOP_CANNOT_IP_FORWARD"
3639	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
3640	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
3641	//   "NEXT_HOP_NOT_RUNNING"
3642	//   "NOT_CRITICAL_ERROR"
3643	//   "NO_RESULTS_ON_PAGE"
3644	//   "PARTIAL_SUCCESS"
3645	//   "REQUIRED_TOS_AGREEMENT"
3646	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
3647	//   "RESOURCE_NOT_DELETED"
3648	//   "SCHEMA_VALIDATION_IGNORED"
3649	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
3650	//   "UNDECLARED_PROPERTIES"
3651	//   "UNREACHABLE"
3652	Code string `json:"code,omitempty"`
3653
3654	// Data: [Output Only] Metadata about this warning in key: value format.
3655	// For example:
3656	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
3657	Data []*AutoscalersScopedListWarningData `json:"data,omitempty"`
3658
3659	// Message: [Output Only] A human-readable description of the warning
3660	// code.
3661	Message string `json:"message,omitempty"`
3662
3663	// ForceSendFields is a list of field names (e.g. "Code") to
3664	// unconditionally include in API requests. By default, fields with
3665	// empty values are omitted from API requests. However, any non-pointer,
3666	// non-interface field appearing in ForceSendFields will be sent to the
3667	// server regardless of whether the field is empty or not. This may be
3668	// used to include empty fields in Patch requests.
3669	ForceSendFields []string `json:"-"`
3670
3671	// NullFields is a list of field names (e.g. "Code") to include in API
3672	// requests with the JSON null value. By default, fields with empty
3673	// values are omitted from API requests. However, any field with an
3674	// empty value appearing in NullFields will be sent to the server as
3675	// null. It is an error if a field in this list has a non-empty value.
3676	// This may be used to include null fields in Patch requests.
3677	NullFields []string `json:"-"`
3678}
3679
3680func (s *AutoscalersScopedListWarning) MarshalJSON() ([]byte, error) {
3681	type NoMethod AutoscalersScopedListWarning
3682	raw := NoMethod(*s)
3683	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3684}
3685
3686type AutoscalersScopedListWarningData struct {
3687	// Key: [Output Only] A key that provides more detail on the warning
3688	// being returned. For example, for warnings where there are no results
3689	// in a list request for a particular zone, this key might be scope and
3690	// the key value might be the zone name. Other examples might be a key
3691	// indicating a deprecated resource and a suggested replacement, or a
3692	// warning about invalid network settings (for example, if an instance
3693	// attempts to perform IP forwarding but is not enabled for IP
3694	// forwarding).
3695	Key string `json:"key,omitempty"`
3696
3697	// Value: [Output Only] A warning data value corresponding to the key.
3698	Value string `json:"value,omitempty"`
3699
3700	// ForceSendFields is a list of field names (e.g. "Key") to
3701	// unconditionally include in API requests. By default, fields with
3702	// empty values are omitted from API requests. However, any non-pointer,
3703	// non-interface field appearing in ForceSendFields will be sent to the
3704	// server regardless of whether the field is empty or not. This may be
3705	// used to include empty fields in Patch requests.
3706	ForceSendFields []string `json:"-"`
3707
3708	// NullFields is a list of field names (e.g. "Key") to include in API
3709	// requests with the JSON null value. By default, fields with empty
3710	// values are omitted from API requests. However, any field with an
3711	// empty value appearing in NullFields will be sent to the server as
3712	// null. It is an error if a field in this list has a non-empty value.
3713	// This may be used to include null fields in Patch requests.
3714	NullFields []string `json:"-"`
3715}
3716
3717func (s *AutoscalersScopedListWarningData) MarshalJSON() ([]byte, error) {
3718	type NoMethod AutoscalersScopedListWarningData
3719	raw := NoMethod(*s)
3720	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3721}
3722
3723// AutoscalingPolicy: Cloud Autoscaler policy.
3724type AutoscalingPolicy struct {
3725	// CoolDownPeriodSec: The number of seconds that the autoscaler waits
3726	// before it starts collecting information from a new instance. This
3727	// prevents the autoscaler from collecting information when the instance
3728	// is initializing, during which the collected usage would not be
3729	// reliable. The default time autoscaler waits is 60 seconds.
3730	//
3731	// Virtual machine initialization times might vary because of numerous
3732	// factors. We recommend that you test how long an instance may take to
3733	// initialize. To do this, create an instance and time the startup
3734	// process.
3735	CoolDownPeriodSec int64 `json:"coolDownPeriodSec,omitempty"`
3736
3737	// CpuUtilization: Defines the CPU utilization policy that allows the
3738	// autoscaler to scale based on the average CPU utilization of a managed
3739	// instance group.
3740	CpuUtilization *AutoscalingPolicyCpuUtilization `json:"cpuUtilization,omitempty"`
3741
3742	// CustomMetricUtilizations: Configuration parameters of autoscaling
3743	// based on a custom metric.
3744	CustomMetricUtilizations []*AutoscalingPolicyCustomMetricUtilization `json:"customMetricUtilizations,omitempty"`
3745
3746	// LoadBalancingUtilization: Configuration parameters of autoscaling
3747	// based on load balancer.
3748	LoadBalancingUtilization *AutoscalingPolicyLoadBalancingUtilization `json:"loadBalancingUtilization,omitempty"`
3749
3750	// MaxNumReplicas: The maximum number of instances that the autoscaler
3751	// can scale out to. This is required when creating or updating an
3752	// autoscaler. The maximum number of replicas must not be lower than
3753	// minimal number of replicas.
3754	MaxNumReplicas int64 `json:"maxNumReplicas,omitempty"`
3755
3756	// MinNumReplicas: The minimum number of replicas that the autoscaler
3757	// can scale in to. This cannot be less than 0. If not provided,
3758	// autoscaler chooses a default value depending on maximum number of
3759	// instances allowed.
3760	MinNumReplicas int64 `json:"minNumReplicas,omitempty"`
3761
3762	// Mode: Defines operating mode for this policy.
3763	//
3764	// Possible values:
3765	//   "OFF"
3766	//   "ON"
3767	//   "ONLY_SCALE_OUT"
3768	//   "ONLY_UP"
3769	Mode string `json:"mode,omitempty"`
3770
3771	ScaleInControl *AutoscalingPolicyScaleInControl `json:"scaleInControl,omitempty"`
3772
3773	// ScalingSchedules: Scaling schedules defined for an autoscaler.
3774	// Multiple schedules can be set on an autoscaler, and they can overlap.
3775	// During overlapping periods the greatest min_required_replicas of all
3776	// scaling schedules is applied. Up to 128 scaling schedules are
3777	// allowed.
3778	ScalingSchedules map[string]AutoscalingPolicyScalingSchedule `json:"scalingSchedules,omitempty"`
3779
3780	// ForceSendFields is a list of field names (e.g. "CoolDownPeriodSec")
3781	// to unconditionally include in API requests. By default, fields with
3782	// empty values are omitted from API requests. However, any non-pointer,
3783	// non-interface field appearing in ForceSendFields will be sent to the
3784	// server regardless of whether the field is empty or not. This may be
3785	// used to include empty fields in Patch requests.
3786	ForceSendFields []string `json:"-"`
3787
3788	// NullFields is a list of field names (e.g. "CoolDownPeriodSec") to
3789	// include in API requests with the JSON null value. By default, fields
3790	// with empty values are omitted from API requests. However, any field
3791	// with an empty value appearing in NullFields will be sent to the
3792	// server as null. It is an error if a field in this list has a
3793	// non-empty value. This may be used to include null fields in Patch
3794	// requests.
3795	NullFields []string `json:"-"`
3796}
3797
3798func (s *AutoscalingPolicy) MarshalJSON() ([]byte, error) {
3799	type NoMethod AutoscalingPolicy
3800	raw := NoMethod(*s)
3801	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3802}
3803
3804// AutoscalingPolicyCpuUtilization: CPU utilization policy.
3805type AutoscalingPolicyCpuUtilization struct {
3806	// PredictiveMethod: Indicates whether predictive autoscaling based on
3807	// CPU metric is enabled. Valid values are:
3808	//
3809	// * NONE (default). No predictive method is used. The autoscaler scales
3810	// the group to meet current demand based on real-time metrics. *
3811	// OPTIMIZE_AVAILABILITY. Predictive autoscaling improves availability
3812	// by monitoring daily and weekly load patterns and scaling out ahead of
3813	// anticipated demand.
3814	//
3815	// Possible values:
3816	//   "NONE"
3817	//   "OPTIMIZE_AVAILABILITY"
3818	PredictiveMethod string `json:"predictiveMethod,omitempty"`
3819
3820	// UtilizationTarget: The target CPU utilization that the autoscaler
3821	// maintains. Must be a float value in the range (0, 1]. If not
3822	// specified, the default is 0.6.
3823	//
3824	// If the CPU level is below the target utilization, the autoscaler
3825	// scales in the number of instances until it reaches the minimum number
3826	// of instances you specified or until the average CPU of your instances
3827	// reaches the target utilization.
3828	//
3829	// If the average CPU is above the target utilization, the autoscaler
3830	// scales out until it reaches the maximum number of instances you
3831	// specified or until the average utilization reaches the target
3832	// utilization.
3833	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
3834
3835	// ForceSendFields is a list of field names (e.g. "PredictiveMethod") to
3836	// unconditionally include in API requests. By default, fields with
3837	// empty values are omitted from API requests. However, any non-pointer,
3838	// non-interface field appearing in ForceSendFields will be sent to the
3839	// server regardless of whether the field is empty or not. This may be
3840	// used to include empty fields in Patch requests.
3841	ForceSendFields []string `json:"-"`
3842
3843	// NullFields is a list of field names (e.g. "PredictiveMethod") to
3844	// include in API requests with the JSON null value. By default, fields
3845	// with empty values are omitted from API requests. However, any field
3846	// with an empty value appearing in NullFields will be sent to the
3847	// server as null. It is an error if a field in this list has a
3848	// non-empty value. This may be used to include null fields in Patch
3849	// requests.
3850	NullFields []string `json:"-"`
3851}
3852
3853func (s *AutoscalingPolicyCpuUtilization) MarshalJSON() ([]byte, error) {
3854	type NoMethod AutoscalingPolicyCpuUtilization
3855	raw := NoMethod(*s)
3856	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3857}
3858
3859func (s *AutoscalingPolicyCpuUtilization) UnmarshalJSON(data []byte) error {
3860	type NoMethod AutoscalingPolicyCpuUtilization
3861	var s1 struct {
3862		UtilizationTarget gensupport.JSONFloat64 `json:"utilizationTarget"`
3863		*NoMethod
3864	}
3865	s1.NoMethod = (*NoMethod)(s)
3866	if err := json.Unmarshal(data, &s1); err != nil {
3867		return err
3868	}
3869	s.UtilizationTarget = float64(s1.UtilizationTarget)
3870	return nil
3871}
3872
3873// AutoscalingPolicyCustomMetricUtilization: Custom utilization metric
3874// policy.
3875type AutoscalingPolicyCustomMetricUtilization struct {
3876	// Filter: A filter string, compatible with a Stackdriver Monitoring
3877	// filter string for TimeSeries.list API call. This filter is used to
3878	// select a specific TimeSeries for the purpose of autoscaling and to
3879	// determine whether the metric is exporting per-instance or per-group
3880	// data.
3881	//
3882	// For the filter to be valid for autoscaling purposes, the following
3883	// rules apply:
3884	// - You can only use the AND operator for joining selectors.
3885	// - You can only use direct equality comparison operator (=) without
3886	// any functions for each selector.
3887	// - You can specify the metric in both the filter string and in the
3888	// metric field. However, if specified in both places, the metric must
3889	// be identical.
3890	// - The monitored resource type determines what kind of values are
3891	// expected for the metric. If it is a gce_instance, the autoscaler
3892	// expects the metric to include a separate TimeSeries for each instance
3893	// in a group. In such a case, you cannot filter on resource labels.
3894	// If the resource type is any other value, the autoscaler expects this
3895	// metric to contain values that apply to the entire autoscaled instance
3896	// group and resource label filtering can be performed to point
3897	// autoscaler at the correct TimeSeries to scale upon. This is called a
3898	// per-group metric for the purpose of autoscaling.
3899	//
3900	// If not specified, the type defaults to gce_instance.
3901	//
3902	// Try to provide a filter that is selective enough to pick just one
3903	// TimeSeries for the autoscaled group or for each of the instances (if
3904	// you are using gce_instance resource type). If multiple TimeSeries are
3905	// returned upon the query execution, the autoscaler will sum their
3906	// respective values to obtain its scaling value.
3907	Filter string `json:"filter,omitempty"`
3908
3909	// Metric: The identifier (type) of the Stackdriver Monitoring metric.
3910	// The metric cannot have negative values.
3911	//
3912	// The metric must have a value type of INT64 or DOUBLE.
3913	Metric string `json:"metric,omitempty"`
3914
3915	// SingleInstanceAssignment: If scaling is based on a per-group metric
3916	// value that represents the total amount of work to be done or resource
3917	// usage, set this value to an amount assigned for a single instance of
3918	// the scaled group. Autoscaler keeps the number of instances
3919	// proportional to the value of this metric. The metric itself does not
3920	// change value due to group resizing.
3921	//
3922	// A good metric to use with the target is for example
3923	// pubsub.googleapis.com/subscription/num_undelivered_messages or a
3924	// custom metric exporting the total number of requests coming to your
3925	// instances.
3926	//
3927	// A bad example would be a metric exporting an average or median
3928	// latency, since this value can't include a chunk assignable to a
3929	// single instance, it could be better used with utilization_target
3930	// instead.
3931	SingleInstanceAssignment float64 `json:"singleInstanceAssignment,omitempty"`
3932
3933	// UtilizationTarget: The target value of the metric that autoscaler
3934	// maintains. This must be a positive value. A utilization metric scales
3935	// number of virtual machines handling requests to increase or decrease
3936	// proportionally to the metric.
3937	//
3938	// For example, a good metric to use as a utilization_target is
3939	// https://www.googleapis.com/compute/v1/instance/network/received_bytes_count.
3940	// The autoscaler works to keep this value constant for each of the
3941	// instances.
3942	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
3943
3944	// UtilizationTargetType: Defines how target utilization value is
3945	// expressed for a Stackdriver Monitoring metric. Either GAUGE,
3946	// DELTA_PER_SECOND, or DELTA_PER_MINUTE.
3947	//
3948	// Possible values:
3949	//   "DELTA_PER_MINUTE"
3950	//   "DELTA_PER_SECOND"
3951	//   "GAUGE"
3952	UtilizationTargetType string `json:"utilizationTargetType,omitempty"`
3953
3954	// ForceSendFields is a list of field names (e.g. "Filter") to
3955	// unconditionally include in API requests. By default, fields with
3956	// empty values are omitted from API requests. However, any non-pointer,
3957	// non-interface field appearing in ForceSendFields will be sent to the
3958	// server regardless of whether the field is empty or not. This may be
3959	// used to include empty fields in Patch requests.
3960	ForceSendFields []string `json:"-"`
3961
3962	// NullFields is a list of field names (e.g. "Filter") to include in API
3963	// requests with the JSON null value. By default, fields with empty
3964	// values are omitted from API requests. However, any field with an
3965	// empty value appearing in NullFields will be sent to the server as
3966	// null. It is an error if a field in this list has a non-empty value.
3967	// This may be used to include null fields in Patch requests.
3968	NullFields []string `json:"-"`
3969}
3970
3971func (s *AutoscalingPolicyCustomMetricUtilization) MarshalJSON() ([]byte, error) {
3972	type NoMethod AutoscalingPolicyCustomMetricUtilization
3973	raw := NoMethod(*s)
3974	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3975}
3976
3977func (s *AutoscalingPolicyCustomMetricUtilization) UnmarshalJSON(data []byte) error {
3978	type NoMethod AutoscalingPolicyCustomMetricUtilization
3979	var s1 struct {
3980		SingleInstanceAssignment gensupport.JSONFloat64 `json:"singleInstanceAssignment"`
3981		UtilizationTarget        gensupport.JSONFloat64 `json:"utilizationTarget"`
3982		*NoMethod
3983	}
3984	s1.NoMethod = (*NoMethod)(s)
3985	if err := json.Unmarshal(data, &s1); err != nil {
3986		return err
3987	}
3988	s.SingleInstanceAssignment = float64(s1.SingleInstanceAssignment)
3989	s.UtilizationTarget = float64(s1.UtilizationTarget)
3990	return nil
3991}
3992
3993// AutoscalingPolicyLoadBalancingUtilization: Configuration parameters
3994// of autoscaling based on load balancing.
3995type AutoscalingPolicyLoadBalancingUtilization struct {
3996	// UtilizationTarget: Fraction of backend capacity utilization (set in
3997	// HTTP(S) load balancing configuration) that the autoscaler maintains.
3998	// Must be a positive float value. If not defined, the default is 0.8.
3999	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
4000
4001	// ForceSendFields is a list of field names (e.g. "UtilizationTarget")
4002	// to unconditionally include in API requests. By default, fields with
4003	// empty values are omitted from API requests. However, any non-pointer,
4004	// non-interface field appearing in ForceSendFields will be sent to the
4005	// server regardless of whether the field is empty or not. This may be
4006	// used to include empty fields in Patch requests.
4007	ForceSendFields []string `json:"-"`
4008
4009	// NullFields is a list of field names (e.g. "UtilizationTarget") to
4010	// include in API requests with the JSON null value. By default, fields
4011	// with empty values are omitted from API requests. However, any field
4012	// with an empty value appearing in NullFields will be sent to the
4013	// server as null. It is an error if a field in this list has a
4014	// non-empty value. This may be used to include null fields in Patch
4015	// requests.
4016	NullFields []string `json:"-"`
4017}
4018
4019func (s *AutoscalingPolicyLoadBalancingUtilization) MarshalJSON() ([]byte, error) {
4020	type NoMethod AutoscalingPolicyLoadBalancingUtilization
4021	raw := NoMethod(*s)
4022	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4023}
4024
4025func (s *AutoscalingPolicyLoadBalancingUtilization) UnmarshalJSON(data []byte) error {
4026	type NoMethod AutoscalingPolicyLoadBalancingUtilization
4027	var s1 struct {
4028		UtilizationTarget gensupport.JSONFloat64 `json:"utilizationTarget"`
4029		*NoMethod
4030	}
4031	s1.NoMethod = (*NoMethod)(s)
4032	if err := json.Unmarshal(data, &s1); err != nil {
4033		return err
4034	}
4035	s.UtilizationTarget = float64(s1.UtilizationTarget)
4036	return nil
4037}
4038
4039// AutoscalingPolicyScaleInControl: Configuration that allows for slower
4040// scale in so that even if Autoscaler recommends an abrupt scale in of
4041// a MIG, it will be throttled as specified by the parameters below.
4042type AutoscalingPolicyScaleInControl struct {
4043	// MaxScaledInReplicas: Maximum allowed number (or %) of VMs that can be
4044	// deducted from the peak recommendation during the window autoscaler
4045	// looks at when computing recommendations. Possibly all these VMs can
4046	// be deleted at once so user service needs to be prepared to lose that
4047	// many VMs in one step.
4048	MaxScaledInReplicas *FixedOrPercent `json:"maxScaledInReplicas,omitempty"`
4049
4050	// TimeWindowSec: How far back autoscaling looks when computing
4051	// recommendations to include directives regarding slower scale in, as
4052	// described above.
4053	TimeWindowSec int64 `json:"timeWindowSec,omitempty"`
4054
4055	// ForceSendFields is a list of field names (e.g. "MaxScaledInReplicas")
4056	// to unconditionally include in API requests. By default, fields with
4057	// empty values are omitted from API requests. However, any non-pointer,
4058	// non-interface field appearing in ForceSendFields will be sent to the
4059	// server regardless of whether the field is empty or not. This may be
4060	// used to include empty fields in Patch requests.
4061	ForceSendFields []string `json:"-"`
4062
4063	// NullFields is a list of field names (e.g. "MaxScaledInReplicas") to
4064	// include in API requests with the JSON null value. By default, fields
4065	// with empty values are omitted from API requests. However, any field
4066	// with an empty value appearing in NullFields will be sent to the
4067	// server as null. It is an error if a field in this list has a
4068	// non-empty value. This may be used to include null fields in Patch
4069	// requests.
4070	NullFields []string `json:"-"`
4071}
4072
4073func (s *AutoscalingPolicyScaleInControl) MarshalJSON() ([]byte, error) {
4074	type NoMethod AutoscalingPolicyScaleInControl
4075	raw := NoMethod(*s)
4076	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4077}
4078
4079// AutoscalingPolicyScalingSchedule: Scaling based on user-defined
4080// schedule. The message describes a single scaling schedule. A scaling
4081// schedule changes the minimum number of VM instances an autoscaler can
4082// recommend, which can trigger scaling out.
4083type AutoscalingPolicyScalingSchedule struct {
4084	// Description: A description of a scaling schedule.
4085	Description string `json:"description,omitempty"`
4086
4087	// Disabled: A boolean value that specifies whether a scaling schedule
4088	// can influence autoscaler recommendations. If set to true, then a
4089	// scaling schedule has no effect. This field is optional, and its value
4090	// is false by default.
4091	Disabled bool `json:"disabled,omitempty"`
4092
4093	// DurationSec: The duration of time intervals, in seconds, for which
4094	// this scaling schedule is to run. The minimum allowed value is 300.
4095	// This field is required.
4096	DurationSec int64 `json:"durationSec,omitempty"`
4097
4098	// MinRequiredReplicas: The minimum number of VM instances that the
4099	// autoscaler will recommend in time intervals starting according to
4100	// schedule. This field is required.
4101	MinRequiredReplicas int64 `json:"minRequiredReplicas,omitempty"`
4102
4103	// Schedule: The start timestamps of time intervals when this scaling
4104	// schedule is to provide a scaling signal. This field uses the extended
4105	// cron format (with an optional year field). The expression can
4106	// describe a single timestamp if the optional year is set, in which
4107	// case the scaling schedule runs once. The schedule is interpreted with
4108	// respect to time_zone. This field is required. Note: These timestamps
4109	// only describe when autoscaler starts providing the scaling signal.
4110	// The VMs need additional time to become serving.
4111	Schedule string `json:"schedule,omitempty"`
4112
4113	// TimeZone: The time zone to use when interpreting the schedule. The
4114	// value of this field must be a time zone name from the tz database:
4115	// http://en.wikipedia.org/wiki/Tz_database. This field is assigned a
4116	// default value of ?UTC? if left empty.
4117	TimeZone string `json:"timeZone,omitempty"`
4118
4119	// ForceSendFields is a list of field names (e.g. "Description") to
4120	// unconditionally include in API requests. By default, fields with
4121	// empty values are omitted from API requests. However, any non-pointer,
4122	// non-interface field appearing in ForceSendFields will be sent to the
4123	// server regardless of whether the field is empty or not. This may be
4124	// used to include empty fields in Patch requests.
4125	ForceSendFields []string `json:"-"`
4126
4127	// NullFields is a list of field names (e.g. "Description") to include
4128	// in API requests with the JSON null value. By default, fields with
4129	// empty values are omitted from API requests. However, any field with
4130	// an empty value appearing in NullFields will be sent to the server as
4131	// null. It is an error if a field in this list has a non-empty value.
4132	// This may be used to include null fields in Patch requests.
4133	NullFields []string `json:"-"`
4134}
4135
4136func (s *AutoscalingPolicyScalingSchedule) MarshalJSON() ([]byte, error) {
4137	type NoMethod AutoscalingPolicyScalingSchedule
4138	raw := NoMethod(*s)
4139	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4140}
4141
4142// Backend: Message containing information of one individual backend.
4143type Backend struct {
4144	// BalancingMode: Specifies how to determine whether the backend of a
4145	// load balancer can handle additional traffic or is fully loaded. For
4146	// usage guidelines, see  Connection balancing mode.
4147	//
4148	// Possible values:
4149	//   "CONNECTION"
4150	//   "RATE"
4151	//   "UTILIZATION"
4152	BalancingMode string `json:"balancingMode,omitempty"`
4153
4154	// CapacityScaler: A multiplier applied to the backend's target capacity
4155	// of its balancing mode. The default value is 1, which means the group
4156	// serves up to 100% of its configured capacity (depending on
4157	// balancingMode). A setting of 0 means the group is completely drained,
4158	// offering 0% of its available capacity. The valid ranges are 0.0 and
4159	// [0.1,1.0]. You cannot configure a setting larger than 0 and smaller
4160	// than 0.1. You cannot configure a setting of 0 when there is only one
4161	// backend attached to the backend service.
4162	//
4163	// Not supported by:
4164	//
4165	// - Internal TCP/UDP Load Balancing - Network Load Balancing
4166	CapacityScaler float64 `json:"capacityScaler,omitempty"`
4167
4168	// Description: An optional description of this resource. Provide this
4169	// property when you create the resource.
4170	Description string `json:"description,omitempty"`
4171
4172	// Failover: This field designates whether this is a failover backend.
4173	// More than one failover backend can be configured for a given
4174	// BackendService.
4175	Failover bool `json:"failover,omitempty"`
4176
4177	// Group: The fully-qualified URL of an instance group or network
4178	// endpoint group (NEG) resource. The type of backend that a backend
4179	// service supports depends on the backend service's
4180	// loadBalancingScheme.
4181	//
4182	//
4183	// - When the loadBalancingScheme for the backend service is EXTERNAL
4184	// (except Network Load Balancing),  INTERNAL_SELF_MANAGED, or
4185	// INTERNAL_MANAGED , the backend can be either an instance group or a
4186	// NEG. The backends on the backend service must be either all instance
4187	// groups or all NEGs. You cannot mix instance group and NEG backends on
4188	// the same backend service.
4189	//
4190	//
4191	// - When the loadBalancingScheme for the backend service is EXTERNAL
4192	// for Network Load Balancing or INTERNAL for Internal TCP/UDP Load
4193	// Balancing, the backend must be an instance group. NEGs are not
4194	// supported.
4195	//
4196	// For regional services, the backend must be in the same region as the
4197	// backend service.
4198	//
4199	// You must use the fully-qualified URL (starting with
4200	// https://www.googleapis.com/) to specify the instance group or NEG.
4201	// Partial URLs are not supported.
4202	Group string `json:"group,omitempty"`
4203
4204	// MaxConnections: Defines a target maximum number of simultaneous
4205	// connections. For usage guidelines, see Connection balancing mode and
4206	// Utilization balancing mode. Not available if the backend's
4207	// balancingMode is RATE. Not supported by:
4208	//
4209	// - Internal TCP/UDP Load Balancing - Network Load Balancing
4210	MaxConnections int64 `json:"maxConnections,omitempty"`
4211
4212	// MaxConnectionsPerEndpoint: Defines a target maximum number of
4213	// simultaneous connections. For usage guidelines, see Connection
4214	// balancing mode and Utilization balancing mode.
4215	//
4216	// Not available if the backend's balancingMode is RATE. Not supported
4217	// by:
4218	//
4219	// - Internal TCP/UDP Load Balancing - Network Load Balancing.
4220	MaxConnectionsPerEndpoint int64 `json:"maxConnectionsPerEndpoint,omitempty"`
4221
4222	// MaxConnectionsPerInstance: Defines a target maximum number of
4223	// simultaneous connections. For usage guidelines, see Connection
4224	// balancing mode and Utilization balancing mode.
4225	//
4226	// Not available if the backend's balancingMode is RATE. Not supported
4227	// by:
4228	//
4229	// - Internal TCP/UDP Load Balancing - Network Load Balancing.
4230	MaxConnectionsPerInstance int64 `json:"maxConnectionsPerInstance,omitempty"`
4231
4232	// MaxRate: Defines a maximum number of HTTP requests per second (RPS).
4233	// For usage guidelines, see Rate balancing mode and Utilization
4234	// balancing mode.
4235	//
4236	// Not available if the backend's balancingMode is CONNECTION.
4237	MaxRate int64 `json:"maxRate,omitempty"`
4238
4239	// MaxRatePerEndpoint: Defines a maximum target for requests per second
4240	// (RPS). For usage guidelines, see Rate balancing mode and Utilization
4241	// balancing mode.
4242	//
4243	// Not available if the backend's balancingMode is CONNECTION.
4244	MaxRatePerEndpoint float64 `json:"maxRatePerEndpoint,omitempty"`
4245
4246	// MaxRatePerInstance: Defines a maximum target for requests per second
4247	// (RPS). For usage guidelines, see Rate balancing mode and Utilization
4248	// balancing mode.
4249	//
4250	// Not available if the backend's balancingMode is CONNECTION.
4251	MaxRatePerInstance float64 `json:"maxRatePerInstance,omitempty"`
4252
4253	MaxUtilization float64 `json:"maxUtilization,omitempty"`
4254
4255	// ForceSendFields is a list of field names (e.g. "BalancingMode") to
4256	// unconditionally include in API requests. By default, fields with
4257	// empty values are omitted from API requests. However, any non-pointer,
4258	// non-interface field appearing in ForceSendFields will be sent to the
4259	// server regardless of whether the field is empty or not. This may be
4260	// used to include empty fields in Patch requests.
4261	ForceSendFields []string `json:"-"`
4262
4263	// NullFields is a list of field names (e.g. "BalancingMode") to include
4264	// in API requests with the JSON null value. By default, fields with
4265	// empty values are omitted from API requests. However, any field with
4266	// an empty value appearing in NullFields will be sent to the server as
4267	// null. It is an error if a field in this list has a non-empty value.
4268	// This may be used to include null fields in Patch requests.
4269	NullFields []string `json:"-"`
4270}
4271
4272func (s *Backend) MarshalJSON() ([]byte, error) {
4273	type NoMethod Backend
4274	raw := NoMethod(*s)
4275	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4276}
4277
4278func (s *Backend) UnmarshalJSON(data []byte) error {
4279	type NoMethod Backend
4280	var s1 struct {
4281		CapacityScaler     gensupport.JSONFloat64 `json:"capacityScaler"`
4282		MaxRatePerEndpoint gensupport.JSONFloat64 `json:"maxRatePerEndpoint"`
4283		MaxRatePerInstance gensupport.JSONFloat64 `json:"maxRatePerInstance"`
4284		MaxUtilization     gensupport.JSONFloat64 `json:"maxUtilization"`
4285		*NoMethod
4286	}
4287	s1.NoMethod = (*NoMethod)(s)
4288	if err := json.Unmarshal(data, &s1); err != nil {
4289		return err
4290	}
4291	s.CapacityScaler = float64(s1.CapacityScaler)
4292	s.MaxRatePerEndpoint = float64(s1.MaxRatePerEndpoint)
4293	s.MaxRatePerInstance = float64(s1.MaxRatePerInstance)
4294	s.MaxUtilization = float64(s1.MaxUtilization)
4295	return nil
4296}
4297
4298// BackendBucket: Represents a Cloud Storage Bucket resource.
4299//
4300// This Cloud Storage bucket resource is referenced by a URL map of a
4301// load balancer. For more information, read Backend Buckets.
4302type BackendBucket struct {
4303	// BucketName: Cloud Storage bucket name.
4304	BucketName string `json:"bucketName,omitempty"`
4305
4306	// CdnPolicy: Cloud CDN configuration for this BackendBucket.
4307	CdnPolicy *BackendBucketCdnPolicy `json:"cdnPolicy,omitempty"`
4308
4309	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
4310	// format.
4311	CreationTimestamp string `json:"creationTimestamp,omitempty"`
4312
4313	// CustomResponseHeaders: Headers that the HTTP/S load balancer should
4314	// add to proxied responses.
4315	CustomResponseHeaders []string `json:"customResponseHeaders,omitempty"`
4316
4317	// Description: An optional textual description of the resource;
4318	// provided by the client when the resource is created.
4319	Description string `json:"description,omitempty"`
4320
4321	// EnableCdn: If true, enable Cloud CDN for this BackendBucket.
4322	EnableCdn bool `json:"enableCdn,omitempty"`
4323
4324	// Id: [Output Only] Unique identifier for the resource; defined by the
4325	// server.
4326	Id uint64 `json:"id,omitempty,string"`
4327
4328	// Kind: Type of the resource.
4329	Kind string `json:"kind,omitempty"`
4330
4331	// Name: Name of the resource. Provided by the client when the resource
4332	// is created. The name must be 1-63 characters long, and comply with
4333	// RFC1035. Specifically, the name must be 1-63 characters long and
4334	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
4335	// the first character must be a lowercase letter, and all following
4336	// characters must be a dash, lowercase letter, or digit, except the
4337	// last character, which cannot be a dash.
4338	Name string `json:"name,omitempty"`
4339
4340	// SelfLink: [Output Only] Server-defined URL for the resource.
4341	SelfLink string `json:"selfLink,omitempty"`
4342
4343	// ServerResponse contains the HTTP response code and headers from the
4344	// server.
4345	googleapi.ServerResponse `json:"-"`
4346
4347	// ForceSendFields is a list of field names (e.g. "BucketName") to
4348	// unconditionally include in API requests. By default, fields with
4349	// empty values are omitted from API requests. However, any non-pointer,
4350	// non-interface field appearing in ForceSendFields will be sent to the
4351	// server regardless of whether the field is empty or not. This may be
4352	// used to include empty fields in Patch requests.
4353	ForceSendFields []string `json:"-"`
4354
4355	// NullFields is a list of field names (e.g. "BucketName") to include in
4356	// API requests with the JSON null value. By default, fields with empty
4357	// values are omitted from API requests. However, any field with an
4358	// empty value appearing in NullFields will be sent to the server as
4359	// null. It is an error if a field in this list has a non-empty value.
4360	// This may be used to include null fields in Patch requests.
4361	NullFields []string `json:"-"`
4362}
4363
4364func (s *BackendBucket) MarshalJSON() ([]byte, error) {
4365	type NoMethod BackendBucket
4366	raw := NoMethod(*s)
4367	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4368}
4369
4370// BackendBucketCdnPolicy: Message containing Cloud CDN configuration
4371// for a backend bucket.
4372type BackendBucketCdnPolicy struct {
4373	// BypassCacheOnRequestHeaders: Bypass the cache when the specified
4374	// request headers are matched - e.g. Pragma or Authorization headers.
4375	// Up to 5 headers can be specified. The cache is bypassed for all
4376	// cdnPolicy.cacheMode settings.
4377	BypassCacheOnRequestHeaders []*BackendBucketCdnPolicyBypassCacheOnRequestHeader `json:"bypassCacheOnRequestHeaders,omitempty"`
4378
4379	// CacheMode: Specifies the cache setting for all responses from this
4380	// backend. The possible values are:
4381	//
4382	// USE_ORIGIN_HEADERS Requires the origin to set valid caching headers
4383	// to cache content. Responses without these headers will not be cached
4384	// at Google's edge, and will require a full trip to the origin on every
4385	// request, potentially impacting performance and increasing load on the
4386	// origin server.
4387	//
4388	// FORCE_CACHE_ALL Cache all content, ignoring any "private", "no-store"
4389	// or "no-cache" directives in Cache-Control response headers. Warning:
4390	// this may result in Cloud CDN caching private, per-user (user
4391	// identifiable) content.
4392	//
4393	// CACHE_ALL_STATIC Automatically cache static content, including common
4394	// image formats, media (video and audio), and web assets (JavaScript
4395	// and CSS). Requests and responses that are marked as uncacheable, as
4396	// well as dynamic content (including HTML), will not be cached.
4397	//
4398	// Possible values:
4399	//   "CACHE_ALL_STATIC"
4400	//   "FORCE_CACHE_ALL"
4401	//   "INVALID_CACHE_MODE"
4402	//   "USE_ORIGIN_HEADERS"
4403	CacheMode string `json:"cacheMode,omitempty"`
4404
4405	// ClientTtl: Specifies a separate client (e.g. browser client) maximum
4406	// TTL. This is used to clamp the max-age (or Expires) value sent to the
4407	// client. With FORCE_CACHE_ALL, the lesser of client_ttl and
4408	// default_ttl is used for the response max-age directive, along with a
4409	// "public" directive. For cacheable content in CACHE_ALL_STATIC mode,
4410	// client_ttl clamps the max-age from the origin (if specified), or else
4411	// sets the response max-age directive to the lesser of the client_ttl
4412	// and default_ttl, and also ensures a "public" cache-control directive
4413	// is present. If a client TTL is not specified, a default value (1
4414	// hour) will be used. The maximum allowed value is 86400s (1 day).
4415	ClientTtl int64 `json:"clientTtl,omitempty"`
4416
4417	// DefaultTtl: Specifies the default TTL for cached content served by
4418	// this origin for responses that do not have an existing valid TTL
4419	// (max-age or s-max-age). Setting a TTL of "0" means "always
4420	// revalidate". The value of defaultTTL cannot be set to a value greater
4421	// than that of maxTTL, but can be equal. When the cacheMode is set to
4422	// FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all
4423	// responses. The maximum allowed value is 31,622,400s (1 year), noting
4424	// that infrequently accessed objects may be evicted from the cache
4425	// before the defined TTL.
4426	DefaultTtl int64 `json:"defaultTtl,omitempty"`
4427
4428	// MaxTtl: Specifies the maximum allowed TTL for cached content served
4429	// by this origin. Cache directives that attempt to set a max-age or
4430	// s-maxage higher than this, or an Expires header more than maxTTL
4431	// seconds in the future will be capped at the value of maxTTL, as if it
4432	// were the value of an s-maxage Cache-Control directive. Headers sent
4433	// to the client will not be modified. Setting a TTL of "0" means
4434	// "always revalidate". The maximum allowed value is 31,622,400s (1
4435	// year), noting that infrequently accessed objects may be evicted from
4436	// the cache before the defined TTL.
4437	MaxTtl int64 `json:"maxTtl,omitempty"`
4438
4439	// NegativeCaching: Negative caching allows per-status code TTLs to be
4440	// set, in order to apply fine-grained caching for common errors or
4441	// redirects. This can reduce the load on your origin and improve
4442	// end-user experience by reducing response latency. When the cache mode
4443	// is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative caching
4444	// applies to responses with the specified response code that lack any
4445	// Cache-Control, Expires, or Pragma: no-cache directives. When the
4446	// cache mode is set to FORCE_CACHE_ALL, negative caching applies to all
4447	// responses with the specified response code, and override any caching
4448	// headers. By default, Cloud CDN will apply the following default TTLs
4449	// to these status codes: HTTP 300 (Multiple Choice), 301, 308
4450	// (Permanent Redirects): 10m HTTP 404 (Not Found), 410 (Gone), 451
4451	// (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not Found),
4452	// 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults
4453	// can be overridden in negative_caching_policy.
4454	NegativeCaching bool `json:"negativeCaching,omitempty"`
4455
4456	// NegativeCachingPolicy: Sets a cache TTL for the specified HTTP status
4457	// code. negative_caching must be enabled to configure
4458	// negative_caching_policy. Omitting the policy and leaving
4459	// negative_caching enabled will use Cloud CDN's default cache TTLs.
4460	// Note that when specifying an explicit negative_caching_policy, you
4461	// should take care to specify a cache TTL for all response codes that
4462	// you wish to cache. Cloud CDN will not apply any default negative
4463	// caching when a policy exists.
4464	NegativeCachingPolicy []*BackendBucketCdnPolicyNegativeCachingPolicy `json:"negativeCachingPolicy,omitempty"`
4465
4466	// RequestCoalescing: If true then Cloud CDN will combine multiple
4467	// concurrent cache fill requests into a small number of requests to the
4468	// origin.
4469	RequestCoalescing bool `json:"requestCoalescing,omitempty"`
4470
4471	// ServeWhileStale: Serve existing content from the cache (if available)
4472	// when revalidating content with the origin, or when an error is
4473	// encountered when refreshing the cache. This setting defines the
4474	// default "max-stale" duration for any cached responses that do not
4475	// specify a max-stale directive. Stale responses that exceed the TTL
4476	// configured here will not be served. The default limit (max-stale) is
4477	// 86400s (1 day), which will allow stale content to be served up to
4478	// this limit beyond the max-age (or s-max-age) of a cached response.
4479	// The maximum allowed value is 604800 (1 week). Set this to zero (0) to
4480	// disable serve-while-stale.
4481	ServeWhileStale int64 `json:"serveWhileStale,omitempty"`
4482
4483	// SignedUrlCacheMaxAgeSec: Maximum number of seconds the response to a
4484	// signed URL request will be considered fresh. After this time period,
4485	// the response will be revalidated before being served. Defaults to 1hr
4486	// (3600s). When serving responses to signed URL requests, Cloud CDN
4487	// will internally behave as though all responses from this backend had
4488	// a "Cache-Control: public, max-age=[TTL]" header, regardless of any
4489	// existing Cache-Control header. The actual headers served in responses
4490	// will not be altered.
4491	SignedUrlCacheMaxAgeSec int64 `json:"signedUrlCacheMaxAgeSec,omitempty,string"`
4492
4493	// SignedUrlKeyNames: [Output Only] Names of the keys for signing
4494	// request URLs.
4495	SignedUrlKeyNames []string `json:"signedUrlKeyNames,omitempty"`
4496
4497	// ForceSendFields is a list of field names (e.g.
4498	// "BypassCacheOnRequestHeaders") to unconditionally include in API
4499	// requests. By default, fields with empty values are omitted from API
4500	// requests. However, any non-pointer, non-interface field appearing in
4501	// ForceSendFields will be sent to the server regardless of whether the
4502	// field is empty or not. This may be used to include empty fields in
4503	// Patch requests.
4504	ForceSendFields []string `json:"-"`
4505
4506	// NullFields is a list of field names (e.g.
4507	// "BypassCacheOnRequestHeaders") to include in API requests with the
4508	// JSON null value. By default, fields with empty values are omitted
4509	// from API requests. However, any field with an empty value appearing
4510	// in NullFields will be sent to the server as null. It is an error if a
4511	// field in this list has a non-empty value. This may be used to include
4512	// null fields in Patch requests.
4513	NullFields []string `json:"-"`
4514}
4515
4516func (s *BackendBucketCdnPolicy) MarshalJSON() ([]byte, error) {
4517	type NoMethod BackendBucketCdnPolicy
4518	raw := NoMethod(*s)
4519	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4520}
4521
4522// BackendBucketCdnPolicyBypassCacheOnRequestHeader: Bypass the cache
4523// when the specified request headers are present, e.g. Pragma or
4524// Authorization headers. Values are case insensitive. The presence of
4525// such a header overrides the cache_mode setting.
4526type BackendBucketCdnPolicyBypassCacheOnRequestHeader struct {
4527	// HeaderName: The header field name to match on when bypassing cache.
4528	// Values are case-insensitive.
4529	HeaderName string `json:"headerName,omitempty"`
4530
4531	// ForceSendFields is a list of field names (e.g. "HeaderName") to
4532	// unconditionally include in API requests. By default, fields with
4533	// empty values are omitted from API requests. However, any non-pointer,
4534	// non-interface field appearing in ForceSendFields will be sent to the
4535	// server regardless of whether the field is empty or not. This may be
4536	// used to include empty fields in Patch requests.
4537	ForceSendFields []string `json:"-"`
4538
4539	// NullFields is a list of field names (e.g. "HeaderName") to include in
4540	// API requests with the JSON null value. By default, fields with empty
4541	// values are omitted from API requests. However, any field with an
4542	// empty value appearing in NullFields will be sent to the server as
4543	// null. It is an error if a field in this list has a non-empty value.
4544	// This may be used to include null fields in Patch requests.
4545	NullFields []string `json:"-"`
4546}
4547
4548func (s *BackendBucketCdnPolicyBypassCacheOnRequestHeader) MarshalJSON() ([]byte, error) {
4549	type NoMethod BackendBucketCdnPolicyBypassCacheOnRequestHeader
4550	raw := NoMethod(*s)
4551	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4552}
4553
4554// BackendBucketCdnPolicyNegativeCachingPolicy: Specify CDN TTLs for
4555// response error codes.
4556type BackendBucketCdnPolicyNegativeCachingPolicy struct {
4557	// Code: The HTTP status code to define a TTL against. Only HTTP status
4558	// codes 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are
4559	// can be specified as values, and you cannot specify a status code more
4560	// than once.
4561	Code int64 `json:"code,omitempty"`
4562
4563	// Ttl: The TTL (in seconds) for which to cache responses with the
4564	// corresponding status code. The maximum allowed value is 1800s (30
4565	// minutes), noting that infrequently accessed objects may be evicted
4566	// from the cache before the defined TTL.
4567	Ttl int64 `json:"ttl,omitempty"`
4568
4569	// ForceSendFields is a list of field names (e.g. "Code") to
4570	// unconditionally include in API requests. By default, fields with
4571	// empty values are omitted from API requests. However, any non-pointer,
4572	// non-interface field appearing in ForceSendFields will be sent to the
4573	// server regardless of whether the field is empty or not. This may be
4574	// used to include empty fields in Patch requests.
4575	ForceSendFields []string `json:"-"`
4576
4577	// NullFields is a list of field names (e.g. "Code") to include in API
4578	// requests with the JSON null value. By default, fields with empty
4579	// values are omitted from API requests. However, any field with an
4580	// empty value appearing in NullFields will be sent to the server as
4581	// null. It is an error if a field in this list has a non-empty value.
4582	// This may be used to include null fields in Patch requests.
4583	NullFields []string `json:"-"`
4584}
4585
4586func (s *BackendBucketCdnPolicyNegativeCachingPolicy) MarshalJSON() ([]byte, error) {
4587	type NoMethod BackendBucketCdnPolicyNegativeCachingPolicy
4588	raw := NoMethod(*s)
4589	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4590}
4591
4592// BackendBucketList: Contains a list of BackendBucket resources.
4593type BackendBucketList struct {
4594	// Id: [Output Only] Unique identifier for the resource; defined by the
4595	// server.
4596	Id string `json:"id,omitempty"`
4597
4598	// Items: A list of BackendBucket resources.
4599	Items []*BackendBucket `json:"items,omitempty"`
4600
4601	// Kind: Type of resource.
4602	Kind string `json:"kind,omitempty"`
4603
4604	// NextPageToken: [Output Only] This token allows you to get the next
4605	// page of results for list requests. If the number of results is larger
4606	// than maxResults, use the nextPageToken as a value for the query
4607	// parameter pageToken in the next list request. Subsequent list
4608	// requests will have their own nextPageToken to continue paging through
4609	// the results.
4610	NextPageToken string `json:"nextPageToken,omitempty"`
4611
4612	// SelfLink: [Output Only] Server-defined URL for this resource.
4613	SelfLink string `json:"selfLink,omitempty"`
4614
4615	// Warning: [Output Only] Informational warning message.
4616	Warning *BackendBucketListWarning `json:"warning,omitempty"`
4617
4618	// ServerResponse contains the HTTP response code and headers from the
4619	// server.
4620	googleapi.ServerResponse `json:"-"`
4621
4622	// ForceSendFields is a list of field names (e.g. "Id") to
4623	// unconditionally include in API requests. By default, fields with
4624	// empty values are omitted from API requests. However, any non-pointer,
4625	// non-interface field appearing in ForceSendFields will be sent to the
4626	// server regardless of whether the field is empty or not. This may be
4627	// used to include empty fields in Patch requests.
4628	ForceSendFields []string `json:"-"`
4629
4630	// NullFields is a list of field names (e.g. "Id") to include in API
4631	// requests with the JSON null value. By default, fields with empty
4632	// values are omitted from API requests. However, any field with an
4633	// empty value appearing in NullFields will be sent to the server as
4634	// null. It is an error if a field in this list has a non-empty value.
4635	// This may be used to include null fields in Patch requests.
4636	NullFields []string `json:"-"`
4637}
4638
4639func (s *BackendBucketList) MarshalJSON() ([]byte, error) {
4640	type NoMethod BackendBucketList
4641	raw := NoMethod(*s)
4642	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4643}
4644
4645// BackendBucketListWarning: [Output Only] Informational warning
4646// message.
4647type BackendBucketListWarning struct {
4648	// Code: [Output Only] A warning code, if applicable. For example,
4649	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
4650	// the response.
4651	//
4652	// Possible values:
4653	//   "CLEANUP_FAILED"
4654	//   "DEPRECATED_RESOURCE_USED"
4655	//   "DEPRECATED_TYPE_USED"
4656	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
4657	//   "EXPERIMENTAL_TYPE_USED"
4658	//   "EXTERNAL_API_WARNING"
4659	//   "FIELD_VALUE_OVERRIDEN"
4660	//   "INJECTED_KERNELS_DEPRECATED"
4661	//   "LARGE_DEPLOYMENT_WARNING"
4662	//   "MISSING_TYPE_DEPENDENCY"
4663	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
4664	//   "NEXT_HOP_CANNOT_IP_FORWARD"
4665	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
4666	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
4667	//   "NEXT_HOP_NOT_RUNNING"
4668	//   "NOT_CRITICAL_ERROR"
4669	//   "NO_RESULTS_ON_PAGE"
4670	//   "PARTIAL_SUCCESS"
4671	//   "REQUIRED_TOS_AGREEMENT"
4672	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
4673	//   "RESOURCE_NOT_DELETED"
4674	//   "SCHEMA_VALIDATION_IGNORED"
4675	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
4676	//   "UNDECLARED_PROPERTIES"
4677	//   "UNREACHABLE"
4678	Code string `json:"code,omitempty"`
4679
4680	// Data: [Output Only] Metadata about this warning in key: value format.
4681	// For example:
4682	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
4683	Data []*BackendBucketListWarningData `json:"data,omitempty"`
4684
4685	// Message: [Output Only] A human-readable description of the warning
4686	// code.
4687	Message string `json:"message,omitempty"`
4688
4689	// ForceSendFields is a list of field names (e.g. "Code") to
4690	// unconditionally include in API requests. By default, fields with
4691	// empty values are omitted from API requests. However, any non-pointer,
4692	// non-interface field appearing in ForceSendFields will be sent to the
4693	// server regardless of whether the field is empty or not. This may be
4694	// used to include empty fields in Patch requests.
4695	ForceSendFields []string `json:"-"`
4696
4697	// NullFields is a list of field names (e.g. "Code") to include in API
4698	// requests with the JSON null value. By default, fields with empty
4699	// values are omitted from API requests. However, any field with an
4700	// empty value appearing in NullFields will be sent to the server as
4701	// null. It is an error if a field in this list has a non-empty value.
4702	// This may be used to include null fields in Patch requests.
4703	NullFields []string `json:"-"`
4704}
4705
4706func (s *BackendBucketListWarning) MarshalJSON() ([]byte, error) {
4707	type NoMethod BackendBucketListWarning
4708	raw := NoMethod(*s)
4709	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4710}
4711
4712type BackendBucketListWarningData struct {
4713	// Key: [Output Only] A key that provides more detail on the warning
4714	// being returned. For example, for warnings where there are no results
4715	// in a list request for a particular zone, this key might be scope and
4716	// the key value might be the zone name. Other examples might be a key
4717	// indicating a deprecated resource and a suggested replacement, or a
4718	// warning about invalid network settings (for example, if an instance
4719	// attempts to perform IP forwarding but is not enabled for IP
4720	// forwarding).
4721	Key string `json:"key,omitempty"`
4722
4723	// Value: [Output Only] A warning data value corresponding to the key.
4724	Value string `json:"value,omitempty"`
4725
4726	// ForceSendFields is a list of field names (e.g. "Key") to
4727	// unconditionally include in API requests. By default, fields with
4728	// empty values are omitted from API requests. However, any non-pointer,
4729	// non-interface field appearing in ForceSendFields will be sent to the
4730	// server regardless of whether the field is empty or not. This may be
4731	// used to include empty fields in Patch requests.
4732	ForceSendFields []string `json:"-"`
4733
4734	// NullFields is a list of field names (e.g. "Key") to include in API
4735	// requests with the JSON null value. By default, fields with empty
4736	// values are omitted from API requests. However, any field with an
4737	// empty value appearing in NullFields will be sent to the server as
4738	// null. It is an error if a field in this list has a non-empty value.
4739	// This may be used to include null fields in Patch requests.
4740	NullFields []string `json:"-"`
4741}
4742
4743func (s *BackendBucketListWarningData) MarshalJSON() ([]byte, error) {
4744	type NoMethod BackendBucketListWarningData
4745	raw := NoMethod(*s)
4746	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4747}
4748
4749// BackendService: Represents a Backend Service resource.
4750//
4751// A backend service defines how Google Cloud load balancers distribute
4752// traffic. The backend service configuration contains a set of values,
4753// such as the protocol used to connect to backends, various
4754// distribution and session settings, health checks, and timeouts. These
4755// settings provide fine-grained control over how your load balancer
4756// behaves. Most of the settings have default values that allow for easy
4757// configuration if you need to get started quickly.
4758//
4759// Backend services in Google Compute Engine can be either regionally or
4760// globally scoped.
4761//
4762// * Global
4763// (/compute/docs/reference/rest/{$api_version}/backendServices) *
4764// Regional
4765// (/compute/docs/reference/rest/{$api_version}/regionBackendServices)
4766//
4767// For more information, see Backend Services.
4768//
4769// (== resource_for {$api_version}.backendService ==)
4770type BackendService struct {
4771	// AffinityCookieTtlSec: Lifetime of cookies in seconds. Only applicable
4772	// if the loadBalancingScheme is EXTERNAL, INTERNAL_SELF_MANAGED, or
4773	// INTERNAL_MANAGED, the protocol is HTTP or HTTPS, and the
4774	// sessionAffinity is GENERATED_COOKIE, or HTTP_COOKIE.
4775	//
4776	// If set to 0, the cookie is non-persistent and lasts only until the
4777	// end of the browser session (or equivalent). The maximum allowed value
4778	// is one day (86,400).
4779	//
4780	// Not supported when the backend service is referenced by a URL map
4781	// that is bound to target gRPC proxy that has validateForProxyless
4782	// field set to true.
4783	AffinityCookieTtlSec int64 `json:"affinityCookieTtlSec,omitempty"`
4784
4785	// Backends: The list of backends that serve this BackendService.
4786	Backends []*Backend `json:"backends,omitempty"`
4787
4788	// CdnPolicy: Cloud CDN configuration for this BackendService. Only
4789	// available for  external HTTP(S) Load Balancing.
4790	CdnPolicy *BackendServiceCdnPolicy `json:"cdnPolicy,omitempty"`
4791
4792	CircuitBreakers *CircuitBreakers `json:"circuitBreakers,omitempty"`
4793
4794	ConnectionDraining *ConnectionDraining `json:"connectionDraining,omitempty"`
4795
4796	// ConsistentHash: Consistent Hash-based load balancing can be used to
4797	// provide soft session affinity based on HTTP headers, cookies or other
4798	// properties. This load balancing policy is applicable only for HTTP
4799	// connections. The affinity to a particular destination host will be
4800	// lost when one or more hosts are added/removed from the destination
4801	// service. This field specifies parameters that control consistent
4802	// hashing. This field is only applicable when localityLbPolicy is set
4803	// to MAGLEV or RING_HASH.
4804	//
4805	// This field is applicable to either:
4806	// - A regional backend service with the service_protocol set to HTTP,
4807	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
4808	//
4809	// - A global backend service with the load_balancing_scheme set to
4810	// INTERNAL_SELF_MANAGED.
4811	//
4812	// Not supported when the backend service is referenced by a URL map
4813	// that is bound to target gRPC proxy that has validateForProxyless
4814	// field set to true.
4815	ConsistentHash *ConsistentHashLoadBalancerSettings `json:"consistentHash,omitempty"`
4816
4817	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
4818	// format.
4819	CreationTimestamp string `json:"creationTimestamp,omitempty"`
4820
4821	// CustomRequestHeaders: Headers that the HTTP/S load balancer should
4822	// add to proxied requests.
4823	CustomRequestHeaders []string `json:"customRequestHeaders,omitempty"`
4824
4825	// CustomResponseHeaders: Headers that the HTTP/S load balancer should
4826	// add to proxied responses.
4827	CustomResponseHeaders []string `json:"customResponseHeaders,omitempty"`
4828
4829	// Description: An optional description of this resource. Provide this
4830	// property when you create the resource.
4831	Description string `json:"description,omitempty"`
4832
4833	// EnableCDN: If true, enables Cloud CDN for the backend service. Only
4834	// applicable if the loadBalancingScheme is EXTERNAL and the protocol is
4835	// HTTP or HTTPS.
4836	EnableCDN bool `json:"enableCDN,omitempty"`
4837
4838	// FailoverPolicy: Applicable only to Failover for Internal TCP/UDP Load
4839	// Balancing and Network Load Balancing. Requires at least one backend
4840	// instance group to be defined as a backup (failover) backend.
4841	FailoverPolicy *BackendServiceFailoverPolicy `json:"failoverPolicy,omitempty"`
4842
4843	// Fingerprint: Fingerprint of this resource. A hash of the contents
4844	// stored in this object. This field is used in optimistic locking. This
4845	// field will be ignored when inserting a BackendService. An up-to-date
4846	// fingerprint must be provided in order to update the BackendService,
4847	// otherwise the request will fail with error 412 conditionNotMet.
4848	//
4849	// To see the latest fingerprint, make a get() request to retrieve a
4850	// BackendService.
4851	Fingerprint string `json:"fingerprint,omitempty"`
4852
4853	// HealthChecks: The list of URLs to the healthChecks, httpHealthChecks
4854	// (legacy), or httpsHealthChecks (legacy) resource for health checking
4855	// this backend service. Not all backend services support legacy health
4856	// checks. See  Load balancer guide. Currently, at most one health check
4857	// can be specified for each backend service. Backend services with
4858	// instance group or zonal NEG backends must have a health check.
4859	// Backend services with internet or serverless NEG backends must not
4860	// have a health check.
4861	HealthChecks []string `json:"healthChecks,omitempty"`
4862
4863	// Iap: The configurations for Identity-Aware Proxy on this resource.
4864	// Not available for Internal TCP/UDP Load Balancing and Network Load
4865	// Balancing.
4866	Iap *BackendServiceIAP `json:"iap,omitempty"`
4867
4868	// Id: [Output Only] The unique identifier for the resource. This
4869	// identifier is defined by the server.
4870	Id uint64 `json:"id,omitempty,string"`
4871
4872	// Kind: [Output Only] Type of resource. Always compute#backendService
4873	// for backend services.
4874	Kind string `json:"kind,omitempty"`
4875
4876	// LoadBalancingScheme: Specifies the load balancer type. Choose
4877	// EXTERNAL for external HTTP(S), SSL Proxy, TCP Proxy and Network Load
4878	// Balancing. Choose  INTERNAL for Internal TCP/UDP Load Balancing.
4879	// Choose  INTERNAL_MANAGED for Internal HTTP(S) Load Balancing.
4880	// INTERNAL_SELF_MANAGED for Traffic Director. A backend service created
4881	// for one type of load balancer cannot be used with another. For more
4882	// information, refer to Choosing a load balancer.
4883	//
4884	// Possible values:
4885	//   "EXTERNAL"
4886	//   "INTERNAL"
4887	//   "INTERNAL_MANAGED"
4888	//   "INTERNAL_SELF_MANAGED"
4889	//   "INVALID_LOAD_BALANCING_SCHEME"
4890	LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"`
4891
4892	// LocalityLbPolicy: The load balancing algorithm used within the scope
4893	// of the locality. The possible values are:
4894	// - ROUND_ROBIN: This is a simple policy in which each healthy backend
4895	// is selected in round robin order. This is the default.
4896	// - LEAST_REQUEST: An O(1) algorithm which selects two random healthy
4897	// hosts and picks the host which has fewer active requests.
4898	// - RING_HASH: The ring/modulo hash load balancer implements consistent
4899	// hashing to backends. The algorithm has the property that the
4900	// addition/removal of a host from a set of N hosts only affects 1/N of
4901	// the requests.
4902	// - RANDOM: The load balancer selects a random healthy host.
4903	// - ORIGINAL_DESTINATION: Backend host is selected based on the client
4904	// connection metadata, i.e., connections are opened to the same address
4905	// as the destination address of the incoming connection before the
4906	// connection was redirected to the load balancer.
4907	// - MAGLEV: used as a drop in replacement for the ring hash load
4908	// balancer. Maglev is not as stable as ring hash but has faster table
4909	// lookup build times and host selection times. For more information
4910	// about Maglev, see https://ai.google/research/pubs/pub44824
4911	//
4912	// This field is applicable to either:
4913	// - A regional backend service with the service_protocol set to HTTP,
4914	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
4915	//
4916	// - A global backend service with the load_balancing_scheme set to
4917	// INTERNAL_SELF_MANAGED.
4918	//
4919	// If sessionAffinity is not NONE, and this field is not set to MAGLEV
4920	// or RING_HASH, session affinity settings will not take effect.
4921	//
4922	// Only the default ROUND_ROBIN policy is supported when the backend
4923	// service is referenced by a URL map that is bound to target gRPC proxy
4924	// that has validateForProxyless field set to true.
4925	//
4926	// Possible values:
4927	//   "INVALID_LB_POLICY"
4928	//   "LEAST_REQUEST"
4929	//   "MAGLEV"
4930	//   "ORIGINAL_DESTINATION"
4931	//   "RANDOM"
4932	//   "RING_HASH"
4933	//   "ROUND_ROBIN"
4934	LocalityLbPolicy string `json:"localityLbPolicy,omitempty"`
4935
4936	// LogConfig: This field denotes the logging options for the load
4937	// balancer traffic served by this backend service. If logging is
4938	// enabled, logs will be exported to Stackdriver.
4939	LogConfig *BackendServiceLogConfig `json:"logConfig,omitempty"`
4940
4941	// MaxStreamDuration: Specifies the default maximum duration (timeout)
4942	// for streams to this service. Duration is computed from the beginning
4943	// of the stream until the response has been completely processed,
4944	// including all retries. A stream that does not complete in this
4945	// duration is closed.
4946	// If not specified, there will be no timeout limit, i.e. the maximum
4947	// duration is infinite.
4948	// This value can be overridden in the PathMatcher configuration of the
4949	// UrlMap that references this backend service.
4950	// This field is only allowed when the loadBalancingScheme of the
4951	// backend service is INTERNAL_SELF_MANAGED.
4952	MaxStreamDuration *Duration `json:"maxStreamDuration,omitempty"`
4953
4954	// Name: Name of the resource. Provided by the client when the resource
4955	// is created. The name must be 1-63 characters long, and comply with
4956	// RFC1035. Specifically, the name must be 1-63 characters long and
4957	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
4958	// the first character must be a lowercase letter, and all following
4959	// characters must be a dash, lowercase letter, or digit, except the
4960	// last character, which cannot be a dash.
4961	Name string `json:"name,omitempty"`
4962
4963	// Network: The URL of the network to which this backend service
4964	// belongs. This field can only be specified when the load balancing
4965	// scheme is set to INTERNAL.
4966	Network string `json:"network,omitempty"`
4967
4968	// OutlierDetection: Settings controlling the eviction of unhealthy
4969	// hosts from the load balancing pool for the backend service. If not
4970	// set, this feature is considered disabled.
4971	//
4972	// This field is applicable to either:
4973	// - A regional backend service with the service_protocol set to HTTP,
4974	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
4975	//
4976	// - A global backend service with the load_balancing_scheme set to
4977	// INTERNAL_SELF_MANAGED.
4978	//
4979	// Not supported when the backend service is referenced by a URL map
4980	// that is bound to target gRPC proxy that has validateForProxyless
4981	// field set to true.
4982	OutlierDetection *OutlierDetection `json:"outlierDetection,omitempty"`
4983
4984	// Port: Deprecated in favor of portName. The TCP port to connect on the
4985	// backend. The default value is 80.
4986	//
4987	// Backend services for Internal TCP/UDP Load Balancing and Network Load
4988	// Balancing require you omit port.
4989	Port int64 `json:"port,omitempty"`
4990
4991	// PortName: A named port on a backend instance group representing the
4992	// port for communication to the backend VMs in that group. Required
4993	// when the loadBalancingScheme is EXTERNAL (except Network Load
4994	// Balancing), INTERNAL_MANAGED, or  INTERNAL_SELF_MANAGED and the
4995	// backends are instance groups. The named port must be defined on each
4996	// backend instance group. This parameter has no meaning if the backends
4997	// are NEGs.
4998	//
4999	//
5000	//
5001	// Backend services for Internal TCP/UDP Load Balancing and Network Load
5002	// Balancing require you omit port_name.
5003	PortName string `json:"portName,omitempty"`
5004
5005	// Protocol: The protocol this BackendService uses to communicate with
5006	// backends.
5007	//
5008	// Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, UDP or GRPC.
5009	// depending on the chosen load balancer or Traffic Director
5010	// configuration. Refer to the documentation for the load balancer or
5011	// for Traffic Director for more information.
5012	//
5013	// Must be set to GRPC when the backend service is referenced by a URL
5014	// map that is bound to target gRPC proxy.
5015	//
5016	// Possible values:
5017	//   "GRPC"
5018	//   "HTTP"
5019	//   "HTTP2"
5020	//   "HTTPS"
5021	//   "SSL"
5022	//   "TCP"
5023	//   "UDP"
5024	Protocol string `json:"protocol,omitempty"`
5025
5026	// Region: [Output Only] URL of the region where the regional backend
5027	// service resides. This field is not applicable to global backend
5028	// services. You must specify this field as part of the HTTP request
5029	// URL. It is not settable as a field in the request body.
5030	Region string `json:"region,omitempty"`
5031
5032	// SecurityPolicy: [Output Only] The resource URL for the security
5033	// policy associated with this backend service.
5034	SecurityPolicy string `json:"securityPolicy,omitempty"`
5035
5036	// SecuritySettings: This field specifies the security policy that
5037	// applies to this backend service. This field is applicable to either:
5038	//
5039	// - A regional backend service with the service_protocol set to HTTP,
5040	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
5041	//
5042	// - A global backend service with the load_balancing_scheme set to
5043	// INTERNAL_SELF_MANAGED.
5044	SecuritySettings *SecuritySettings `json:"securitySettings,omitempty"`
5045
5046	// SelfLink: [Output Only] Server-defined URL for the resource.
5047	SelfLink string `json:"selfLink,omitempty"`
5048
5049	// SessionAffinity: Type of session affinity to use. The default is
5050	// NONE.
5051	//
5052	// When the loadBalancingScheme is EXTERNAL:
5053	//
5054	// * For Network Load Balancing, the possible values are NONE,
5055	// CLIENT_IP, CLIENT_IP_PROTO, or  CLIENT_IP_PORT_PROTO. * For all other
5056	// load balancers that use loadBalancingScheme=EXTERNAL, the possible
5057	// values are NONE, CLIENT_IP, or GENERATED_COOKIE. * You can use
5058	// GENERATED_COOKIE if the protocol is HTTP, HTTP2, or HTTPS.
5059	//
5060	// When the loadBalancingScheme is INTERNAL, possible values are NONE,
5061	// CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
5062	//
5063	// When the loadBalancingScheme is INTERNAL_SELF_MANAGED, or
5064	// INTERNAL_MANAGED, possible values are NONE, CLIENT_IP,
5065	// GENERATED_COOKIE, HEADER_FIELD, or HTTP_COOKIE.
5066	//
5067	// Not supported when the backend service is referenced by a URL map
5068	// that is bound to target gRPC proxy that has validateForProxyless
5069	// field set to true.
5070	//
5071	// Possible values:
5072	//   "CLIENT_IP"
5073	//   "CLIENT_IP_NO_DESTINATION"
5074	//   "CLIENT_IP_PORT_PROTO"
5075	//   "CLIENT_IP_PROTO"
5076	//   "GENERATED_COOKIE"
5077	//   "HEADER_FIELD"
5078	//   "HTTP_COOKIE"
5079	//   "NONE"
5080	SessionAffinity string `json:"sessionAffinity,omitempty"`
5081
5082	// TimeoutSec: Not supported when the backend service is referenced by a
5083	// URL map that is bound to target gRPC proxy that has
5084	// validateForProxyless field set to true. Instead, use
5085	// maxStreamDuration.
5086	TimeoutSec int64 `json:"timeoutSec,omitempty"`
5087
5088	// ServerResponse contains the HTTP response code and headers from the
5089	// server.
5090	googleapi.ServerResponse `json:"-"`
5091
5092	// ForceSendFields is a list of field names (e.g.
5093	// "AffinityCookieTtlSec") to unconditionally include in API requests.
5094	// By default, fields with empty values are omitted from API requests.
5095	// However, any non-pointer, non-interface field appearing in
5096	// ForceSendFields will be sent to the server regardless of whether the
5097	// field is empty or not. This may be used to include empty fields in
5098	// Patch requests.
5099	ForceSendFields []string `json:"-"`
5100
5101	// NullFields is a list of field names (e.g. "AffinityCookieTtlSec") to
5102	// include in API requests with the JSON null value. By default, fields
5103	// with empty values are omitted from API requests. However, any field
5104	// with an empty value appearing in NullFields will be sent to the
5105	// server as null. It is an error if a field in this list has a
5106	// non-empty value. This may be used to include null fields in Patch
5107	// requests.
5108	NullFields []string `json:"-"`
5109}
5110
5111func (s *BackendService) MarshalJSON() ([]byte, error) {
5112	type NoMethod BackendService
5113	raw := NoMethod(*s)
5114	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5115}
5116
5117// BackendServiceAggregatedList: Contains a list of
5118// BackendServicesScopedList.
5119type BackendServiceAggregatedList struct {
5120	// Id: [Output Only] Unique identifier for the resource; defined by the
5121	// server.
5122	Id string `json:"id,omitempty"`
5123
5124	// Items: A list of BackendServicesScopedList resources.
5125	Items map[string]BackendServicesScopedList `json:"items,omitempty"`
5126
5127	// Kind: Type of resource.
5128	Kind string `json:"kind,omitempty"`
5129
5130	// NextPageToken: [Output Only] This token allows you to get the next
5131	// page of results for list requests. If the number of results is larger
5132	// than maxResults, use the nextPageToken as a value for the query
5133	// parameter pageToken in the next list request. Subsequent list
5134	// requests will have their own nextPageToken to continue paging through
5135	// the results.
5136	NextPageToken string `json:"nextPageToken,omitempty"`
5137
5138	// SelfLink: [Output Only] Server-defined URL for this resource.
5139	SelfLink string `json:"selfLink,omitempty"`
5140
5141	// Unreachables: [Output Only] Unreachable resources.
5142	Unreachables []string `json:"unreachables,omitempty"`
5143
5144	// Warning: [Output Only] Informational warning message.
5145	Warning *BackendServiceAggregatedListWarning `json:"warning,omitempty"`
5146
5147	// ServerResponse contains the HTTP response code and headers from the
5148	// server.
5149	googleapi.ServerResponse `json:"-"`
5150
5151	// ForceSendFields is a list of field names (e.g. "Id") to
5152	// unconditionally include in API requests. By default, fields with
5153	// empty values are omitted from API requests. However, any non-pointer,
5154	// non-interface field appearing in ForceSendFields will be sent to the
5155	// server regardless of whether the field is empty or not. This may be
5156	// used to include empty fields in Patch requests.
5157	ForceSendFields []string `json:"-"`
5158
5159	// NullFields is a list of field names (e.g. "Id") to include in API
5160	// requests with the JSON null value. By default, fields with empty
5161	// values are omitted from API requests. However, any field with an
5162	// empty value appearing in NullFields will be sent to the server as
5163	// null. It is an error if a field in this list has a non-empty value.
5164	// This may be used to include null fields in Patch requests.
5165	NullFields []string `json:"-"`
5166}
5167
5168func (s *BackendServiceAggregatedList) MarshalJSON() ([]byte, error) {
5169	type NoMethod BackendServiceAggregatedList
5170	raw := NoMethod(*s)
5171	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5172}
5173
5174// BackendServiceAggregatedListWarning: [Output Only] Informational
5175// warning message.
5176type BackendServiceAggregatedListWarning struct {
5177	// Code: [Output Only] A warning code, if applicable. For example,
5178	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5179	// the response.
5180	//
5181	// Possible values:
5182	//   "CLEANUP_FAILED"
5183	//   "DEPRECATED_RESOURCE_USED"
5184	//   "DEPRECATED_TYPE_USED"
5185	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5186	//   "EXPERIMENTAL_TYPE_USED"
5187	//   "EXTERNAL_API_WARNING"
5188	//   "FIELD_VALUE_OVERRIDEN"
5189	//   "INJECTED_KERNELS_DEPRECATED"
5190	//   "LARGE_DEPLOYMENT_WARNING"
5191	//   "MISSING_TYPE_DEPENDENCY"
5192	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5193	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5194	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5195	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5196	//   "NEXT_HOP_NOT_RUNNING"
5197	//   "NOT_CRITICAL_ERROR"
5198	//   "NO_RESULTS_ON_PAGE"
5199	//   "PARTIAL_SUCCESS"
5200	//   "REQUIRED_TOS_AGREEMENT"
5201	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5202	//   "RESOURCE_NOT_DELETED"
5203	//   "SCHEMA_VALIDATION_IGNORED"
5204	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5205	//   "UNDECLARED_PROPERTIES"
5206	//   "UNREACHABLE"
5207	Code string `json:"code,omitempty"`
5208
5209	// Data: [Output Only] Metadata about this warning in key: value format.
5210	// For example:
5211	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5212	Data []*BackendServiceAggregatedListWarningData `json:"data,omitempty"`
5213
5214	// Message: [Output Only] A human-readable description of the warning
5215	// code.
5216	Message string `json:"message,omitempty"`
5217
5218	// ForceSendFields is a list of field names (e.g. "Code") to
5219	// unconditionally include in API requests. By default, fields with
5220	// empty values are omitted from API requests. However, any non-pointer,
5221	// non-interface field appearing in ForceSendFields will be sent to the
5222	// server regardless of whether the field is empty or not. This may be
5223	// used to include empty fields in Patch requests.
5224	ForceSendFields []string `json:"-"`
5225
5226	// NullFields is a list of field names (e.g. "Code") to include in API
5227	// requests with the JSON null value. By default, fields with empty
5228	// values are omitted from API requests. However, any field with an
5229	// empty value appearing in NullFields will be sent to the server as
5230	// null. It is an error if a field in this list has a non-empty value.
5231	// This may be used to include null fields in Patch requests.
5232	NullFields []string `json:"-"`
5233}
5234
5235func (s *BackendServiceAggregatedListWarning) MarshalJSON() ([]byte, error) {
5236	type NoMethod BackendServiceAggregatedListWarning
5237	raw := NoMethod(*s)
5238	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5239}
5240
5241type BackendServiceAggregatedListWarningData struct {
5242	// Key: [Output Only] A key that provides more detail on the warning
5243	// being returned. For example, for warnings where there are no results
5244	// in a list request for a particular zone, this key might be scope and
5245	// the key value might be the zone name. Other examples might be a key
5246	// indicating a deprecated resource and a suggested replacement, or a
5247	// warning about invalid network settings (for example, if an instance
5248	// attempts to perform IP forwarding but is not enabled for IP
5249	// forwarding).
5250	Key string `json:"key,omitempty"`
5251
5252	// Value: [Output Only] A warning data value corresponding to the key.
5253	Value string `json:"value,omitempty"`
5254
5255	// ForceSendFields is a list of field names (e.g. "Key") to
5256	// unconditionally include in API requests. By default, fields with
5257	// empty values are omitted from API requests. However, any non-pointer,
5258	// non-interface field appearing in ForceSendFields will be sent to the
5259	// server regardless of whether the field is empty or not. This may be
5260	// used to include empty fields in Patch requests.
5261	ForceSendFields []string `json:"-"`
5262
5263	// NullFields is a list of field names (e.g. "Key") to include in API
5264	// requests with the JSON null value. By default, fields with empty
5265	// values are omitted from API requests. However, any field with an
5266	// empty value appearing in NullFields will be sent to the server as
5267	// null. It is an error if a field in this list has a non-empty value.
5268	// This may be used to include null fields in Patch requests.
5269	NullFields []string `json:"-"`
5270}
5271
5272func (s *BackendServiceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
5273	type NoMethod BackendServiceAggregatedListWarningData
5274	raw := NoMethod(*s)
5275	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5276}
5277
5278// BackendServiceCdnPolicy: Message containing Cloud CDN configuration
5279// for a backend service.
5280type BackendServiceCdnPolicy struct {
5281	// BypassCacheOnRequestHeaders: Bypass the cache when the specified
5282	// request headers are matched - e.g. Pragma or Authorization headers.
5283	// Up to 5 headers can be specified. The cache is bypassed for all
5284	// cdnPolicy.cacheMode settings.
5285	BypassCacheOnRequestHeaders []*BackendServiceCdnPolicyBypassCacheOnRequestHeader `json:"bypassCacheOnRequestHeaders,omitempty"`
5286
5287	// CacheKeyPolicy: The CacheKeyPolicy for this CdnPolicy.
5288	CacheKeyPolicy *CacheKeyPolicy `json:"cacheKeyPolicy,omitempty"`
5289
5290	// CacheMode: Specifies the cache setting for all responses from this
5291	// backend. The possible values are:
5292	//
5293	// USE_ORIGIN_HEADERS Requires the origin to set valid caching headers
5294	// to cache content. Responses without these headers will not be cached
5295	// at Google's edge, and will require a full trip to the origin on every
5296	// request, potentially impacting performance and increasing load on the
5297	// origin server.
5298	//
5299	// FORCE_CACHE_ALL Cache all content, ignoring any "private", "no-store"
5300	// or "no-cache" directives in Cache-Control response headers. Warning:
5301	// this may result in Cloud CDN caching private, per-user (user
5302	// identifiable) content.
5303	//
5304	// CACHE_ALL_STATIC Automatically cache static content, including common
5305	// image formats, media (video and audio), and web assets (JavaScript
5306	// and CSS). Requests and responses that are marked as uncacheable, as
5307	// well as dynamic content (including HTML), will not be cached.
5308	//
5309	// Possible values:
5310	//   "CACHE_ALL_STATIC"
5311	//   "FORCE_CACHE_ALL"
5312	//   "INVALID_CACHE_MODE"
5313	//   "USE_ORIGIN_HEADERS"
5314	CacheMode string `json:"cacheMode,omitempty"`
5315
5316	// ClientTtl: Specifies a separate client (e.g. browser client) maximum
5317	// TTL. This is used to clamp the max-age (or Expires) value sent to the
5318	// client. With FORCE_CACHE_ALL, the lesser of client_ttl and
5319	// default_ttl is used for the response max-age directive, along with a
5320	// "public" directive. For cacheable content in CACHE_ALL_STATIC mode,
5321	// client_ttl clamps the max-age from the origin (if specified), or else
5322	// sets the response max-age directive to the lesser of the client_ttl
5323	// and default_ttl, and also ensures a "public" cache-control directive
5324	// is present. If a client TTL is not specified, a default value (1
5325	// hour) will be used. The maximum allowed value is 86400s (1 day).
5326	ClientTtl int64 `json:"clientTtl,omitempty"`
5327
5328	// DefaultTtl: Specifies the default TTL for cached content served by
5329	// this origin for responses that do not have an existing valid TTL
5330	// (max-age or s-max-age). Setting a TTL of "0" means "always
5331	// revalidate". The value of defaultTTL cannot be set to a value greater
5332	// than that of maxTTL, but can be equal. When the cacheMode is set to
5333	// FORCE_CACHE_ALL, the defaultTTL will overwrite the TTL set in all
5334	// responses. The maximum allowed value is 31,622,400s (1 year), noting
5335	// that infrequently accessed objects may be evicted from the cache
5336	// before the defined TTL.
5337	DefaultTtl int64 `json:"defaultTtl,omitempty"`
5338
5339	// MaxTtl: Specifies the maximum allowed TTL for cached content served
5340	// by this origin. Cache directives that attempt to set a max-age or
5341	// s-maxage higher than this, or an Expires header more than maxTTL
5342	// seconds in the future will be capped at the value of maxTTL, as if it
5343	// were the value of an s-maxage Cache-Control directive. Headers sent
5344	// to the client will not be modified. Setting a TTL of "0" means
5345	// "always revalidate". The maximum allowed value is 31,622,400s (1
5346	// year), noting that infrequently accessed objects may be evicted from
5347	// the cache before the defined TTL.
5348	MaxTtl int64 `json:"maxTtl,omitempty"`
5349
5350	// NegativeCaching: Negative caching allows per-status code TTLs to be
5351	// set, in order to apply fine-grained caching for common errors or
5352	// redirects. This can reduce the load on your origin and improve
5353	// end-user experience by reducing response latency. When the cache mode
5354	// is set to CACHE_ALL_STATIC or USE_ORIGIN_HEADERS, negative caching
5355	// applies to responses with the specified response code that lack any
5356	// Cache-Control, Expires, or Pragma: no-cache directives. When the
5357	// cache mode is set to FORCE_CACHE_ALL, negative caching applies to all
5358	// responses with the specified response code, and override any caching
5359	// headers. By default, Cloud CDN will apply the following default TTLs
5360	// to these status codes: HTTP 300 (Multiple Choice), 301, 308
5361	// (Permanent Redirects): 10m HTTP 404 (Not Found), 410 (Gone), 451
5362	// (Unavailable For Legal Reasons): 120s HTTP 405 (Method Not Found),
5363	// 421 (Misdirected Request), 501 (Not Implemented): 60s. These defaults
5364	// can be overridden in negative_caching_policy.
5365	NegativeCaching bool `json:"negativeCaching,omitempty"`
5366
5367	// NegativeCachingPolicy: Sets a cache TTL for the specified HTTP status
5368	// code. negative_caching must be enabled to configure
5369	// negative_caching_policy. Omitting the policy and leaving
5370	// negative_caching enabled will use Cloud CDN's default cache TTLs.
5371	// Note that when specifying an explicit negative_caching_policy, you
5372	// should take care to specify a cache TTL for all response codes that
5373	// you wish to cache. Cloud CDN will not apply any default negative
5374	// caching when a policy exists.
5375	NegativeCachingPolicy []*BackendServiceCdnPolicyNegativeCachingPolicy `json:"negativeCachingPolicy,omitempty"`
5376
5377	// RequestCoalescing: If true then Cloud CDN will combine multiple
5378	// concurrent cache fill requests into a small number of requests to the
5379	// origin.
5380	RequestCoalescing bool `json:"requestCoalescing,omitempty"`
5381
5382	// ServeWhileStale: Serve existing content from the cache (if available)
5383	// when revalidating content with the origin, or when an error is
5384	// encountered when refreshing the cache. This setting defines the
5385	// default "max-stale" duration for any cached responses that do not
5386	// specify a max-stale directive. Stale responses that exceed the TTL
5387	// configured here will not be served. The default limit (max-stale) is
5388	// 86400s (1 day), which will allow stale content to be served up to
5389	// this limit beyond the max-age (or s-max-age) of a cached response.
5390	// The maximum allowed value is 604800 (1 week). Set this to zero (0) to
5391	// disable serve-while-stale.
5392	ServeWhileStale int64 `json:"serveWhileStale,omitempty"`
5393
5394	// SignedUrlCacheMaxAgeSec: Maximum number of seconds the response to a
5395	// signed URL request will be considered fresh. After this time period,
5396	// the response will be revalidated before being served. Defaults to 1hr
5397	// (3600s). When serving responses to signed URL requests, Cloud CDN
5398	// will internally behave as though all responses from this backend had
5399	// a "Cache-Control: public, max-age=[TTL]" header, regardless of any
5400	// existing Cache-Control header. The actual headers served in responses
5401	// will not be altered.
5402	SignedUrlCacheMaxAgeSec int64 `json:"signedUrlCacheMaxAgeSec,omitempty,string"`
5403
5404	// SignedUrlKeyNames: [Output Only] Names of the keys for signing
5405	// request URLs.
5406	SignedUrlKeyNames []string `json:"signedUrlKeyNames,omitempty"`
5407
5408	// ForceSendFields is a list of field names (e.g.
5409	// "BypassCacheOnRequestHeaders") to unconditionally include in API
5410	// requests. By default, fields with empty values are omitted from API
5411	// requests. However, any non-pointer, non-interface field appearing in
5412	// ForceSendFields will be sent to the server regardless of whether the
5413	// field is empty or not. This may be used to include empty fields in
5414	// Patch requests.
5415	ForceSendFields []string `json:"-"`
5416
5417	// NullFields is a list of field names (e.g.
5418	// "BypassCacheOnRequestHeaders") to include in API requests with the
5419	// JSON null value. By default, fields with empty values are omitted
5420	// from API requests. However, any field with an empty value appearing
5421	// in NullFields will be sent to the server as null. It is an error if a
5422	// field in this list has a non-empty value. This may be used to include
5423	// null fields in Patch requests.
5424	NullFields []string `json:"-"`
5425}
5426
5427func (s *BackendServiceCdnPolicy) MarshalJSON() ([]byte, error) {
5428	type NoMethod BackendServiceCdnPolicy
5429	raw := NoMethod(*s)
5430	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5431}
5432
5433// BackendServiceCdnPolicyBypassCacheOnRequestHeader: Bypass the cache
5434// when the specified request headers are present, e.g. Pragma or
5435// Authorization headers. Values are case insensitive. The presence of
5436// such a header overrides the cache_mode setting.
5437type BackendServiceCdnPolicyBypassCacheOnRequestHeader struct {
5438	// HeaderName: The header field name to match on when bypassing cache.
5439	// Values are case-insensitive.
5440	HeaderName string `json:"headerName,omitempty"`
5441
5442	// ForceSendFields is a list of field names (e.g. "HeaderName") to
5443	// unconditionally include in API requests. By default, fields with
5444	// empty values are omitted from API requests. However, any non-pointer,
5445	// non-interface field appearing in ForceSendFields will be sent to the
5446	// server regardless of whether the field is empty or not. This may be
5447	// used to include empty fields in Patch requests.
5448	ForceSendFields []string `json:"-"`
5449
5450	// NullFields is a list of field names (e.g. "HeaderName") to include in
5451	// API requests with the JSON null value. By default, fields with empty
5452	// values are omitted from API requests. However, any field with an
5453	// empty value appearing in NullFields will be sent to the server as
5454	// null. It is an error if a field in this list has a non-empty value.
5455	// This may be used to include null fields in Patch requests.
5456	NullFields []string `json:"-"`
5457}
5458
5459func (s *BackendServiceCdnPolicyBypassCacheOnRequestHeader) MarshalJSON() ([]byte, error) {
5460	type NoMethod BackendServiceCdnPolicyBypassCacheOnRequestHeader
5461	raw := NoMethod(*s)
5462	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5463}
5464
5465// BackendServiceCdnPolicyNegativeCachingPolicy: Specify CDN TTLs for
5466// response error codes.
5467type BackendServiceCdnPolicyNegativeCachingPolicy struct {
5468	// Code: The HTTP status code to define a TTL against. Only HTTP status
5469	// codes 300, 301, 302, 307, 308, 404, 405, 410, 421, 451 and 501 are
5470	// can be specified as values, and you cannot specify a status code more
5471	// than once.
5472	Code int64 `json:"code,omitempty"`
5473
5474	// Ttl: The TTL (in seconds) for which to cache responses with the
5475	// corresponding status code. The maximum allowed value is 1800s (30
5476	// minutes), noting that infrequently accessed objects may be evicted
5477	// from the cache before the defined TTL.
5478	Ttl int64 `json:"ttl,omitempty"`
5479
5480	// ForceSendFields is a list of field names (e.g. "Code") to
5481	// unconditionally include in API requests. By default, fields with
5482	// empty values are omitted from API requests. However, any non-pointer,
5483	// non-interface field appearing in ForceSendFields will be sent to the
5484	// server regardless of whether the field is empty or not. This may be
5485	// used to include empty fields in Patch requests.
5486	ForceSendFields []string `json:"-"`
5487
5488	// NullFields is a list of field names (e.g. "Code") to include in API
5489	// requests with the JSON null value. By default, fields with empty
5490	// values are omitted from API requests. However, any field with an
5491	// empty value appearing in NullFields will be sent to the server as
5492	// null. It is an error if a field in this list has a non-empty value.
5493	// This may be used to include null fields in Patch requests.
5494	NullFields []string `json:"-"`
5495}
5496
5497func (s *BackendServiceCdnPolicyNegativeCachingPolicy) MarshalJSON() ([]byte, error) {
5498	type NoMethod BackendServiceCdnPolicyNegativeCachingPolicy
5499	raw := NoMethod(*s)
5500	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5501}
5502
5503// BackendServiceFailoverPolicy: Applicable only to Failover for
5504// Internal TCP/UDP Load Balancing and Network Load Balancing. On
5505// failover or failback, this field indicates whether connection
5506// draining will be honored. GCP has a fixed connection draining timeout
5507// of 10 minutes. A setting of true terminates existing TCP connections
5508// to the active pool during failover and failback, immediately draining
5509// traffic. A setting of false allows existing TCP connections to
5510// persist, even on VMs no longer in the active pool, for up to the
5511// duration of the connection draining timeout (10 minutes).
5512type BackendServiceFailoverPolicy struct {
5513	// DisableConnectionDrainOnFailover: This can be set to true only if the
5514	// protocol is TCP.
5515	//
5516	// The default is false.
5517	DisableConnectionDrainOnFailover bool `json:"disableConnectionDrainOnFailover,omitempty"`
5518
5519	// DropTrafficIfUnhealthy: Applicable only to Failover for Internal
5520	// TCP/UDP Load Balancing and Network Load Balancing, If set to true,
5521	// connections to the load balancer are dropped when all primary and all
5522	// backup backend VMs are unhealthy.If set to false, connections are
5523	// distributed among all primary VMs when all primary and all backup
5524	// backend VMs are unhealthy. The default is false.
5525	DropTrafficIfUnhealthy bool `json:"dropTrafficIfUnhealthy,omitempty"`
5526
5527	// FailoverRatio: Applicable only to Failover for Internal TCP/UDP Load
5528	// Balancing and Network Load Balancing. The value of the field must be
5529	// in the range [0, 1]. If the value is 0, the load balancer performs a
5530	// failover when the number of healthy primary VMs equals zero. For all
5531	// other values, the load balancer performs a failover when the total
5532	// number of healthy primary VMs is less than this ratio.
5533	FailoverRatio float64 `json:"failoverRatio,omitempty"`
5534
5535	// ForceSendFields is a list of field names (e.g.
5536	// "DisableConnectionDrainOnFailover") to unconditionally include in API
5537	// requests. By default, fields with empty values are omitted from API
5538	// requests. However, any non-pointer, non-interface field appearing in
5539	// ForceSendFields will be sent to the server regardless of whether the
5540	// field is empty or not. This may be used to include empty fields in
5541	// Patch requests.
5542	ForceSendFields []string `json:"-"`
5543
5544	// NullFields is a list of field names (e.g.
5545	// "DisableConnectionDrainOnFailover") to include in API requests with
5546	// the JSON null value. By default, fields with empty values are omitted
5547	// from API requests. However, any field with an empty value appearing
5548	// in NullFields will be sent to the server as null. It is an error if a
5549	// field in this list has a non-empty value. This may be used to include
5550	// null fields in Patch requests.
5551	NullFields []string `json:"-"`
5552}
5553
5554func (s *BackendServiceFailoverPolicy) MarshalJSON() ([]byte, error) {
5555	type NoMethod BackendServiceFailoverPolicy
5556	raw := NoMethod(*s)
5557	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5558}
5559
5560func (s *BackendServiceFailoverPolicy) UnmarshalJSON(data []byte) error {
5561	type NoMethod BackendServiceFailoverPolicy
5562	var s1 struct {
5563		FailoverRatio gensupport.JSONFloat64 `json:"failoverRatio"`
5564		*NoMethod
5565	}
5566	s1.NoMethod = (*NoMethod)(s)
5567	if err := json.Unmarshal(data, &s1); err != nil {
5568		return err
5569	}
5570	s.FailoverRatio = float64(s1.FailoverRatio)
5571	return nil
5572}
5573
5574type BackendServiceGroupHealth struct {
5575	// Annotations: Metadata defined as annotations on the network endpoint
5576	// group.
5577	Annotations map[string]string `json:"annotations,omitempty"`
5578
5579	// HealthStatus: Health state of the backend instances or endpoints in
5580	// requested instance or network endpoint group, determined based on
5581	// configured health checks.
5582	HealthStatus []*HealthStatus `json:"healthStatus,omitempty"`
5583
5584	// Kind: [Output Only] Type of resource. Always
5585	// compute#backendServiceGroupHealth for the health of backend services.
5586	Kind string `json:"kind,omitempty"`
5587
5588	// ServerResponse contains the HTTP response code and headers from the
5589	// server.
5590	googleapi.ServerResponse `json:"-"`
5591
5592	// ForceSendFields is a list of field names (e.g. "Annotations") to
5593	// unconditionally include in API requests. By default, fields with
5594	// empty values are omitted from API requests. However, any non-pointer,
5595	// non-interface field appearing in ForceSendFields will be sent to the
5596	// server regardless of whether the field is empty or not. This may be
5597	// used to include empty fields in Patch requests.
5598	ForceSendFields []string `json:"-"`
5599
5600	// NullFields is a list of field names (e.g. "Annotations") to include
5601	// in API requests with the JSON null value. By default, fields with
5602	// empty values are omitted from API requests. However, any field with
5603	// an empty value appearing in NullFields will be sent to the server as
5604	// null. It is an error if a field in this list has a non-empty value.
5605	// This may be used to include null fields in Patch requests.
5606	NullFields []string `json:"-"`
5607}
5608
5609func (s *BackendServiceGroupHealth) MarshalJSON() ([]byte, error) {
5610	type NoMethod BackendServiceGroupHealth
5611	raw := NoMethod(*s)
5612	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5613}
5614
5615// BackendServiceIAP: Identity-Aware Proxy
5616type BackendServiceIAP struct {
5617	// Enabled: Whether the serving infrastructure will authenticate and
5618	// authorize all incoming requests. If true, the oauth2ClientId and
5619	// oauth2ClientSecret fields must be non-empty.
5620	Enabled bool `json:"enabled,omitempty"`
5621
5622	// Oauth2ClientId: OAuth2 client ID to use for the authentication flow.
5623	Oauth2ClientId string `json:"oauth2ClientId,omitempty"`
5624
5625	// Oauth2ClientSecret: OAuth2 client secret to use for the
5626	// authentication flow. For security reasons, this value cannot be
5627	// retrieved via the API. Instead, the SHA-256 hash of the value is
5628	// returned in the oauth2ClientSecretSha256 field.
5629	Oauth2ClientSecret string `json:"oauth2ClientSecret,omitempty"`
5630
5631	// Oauth2ClientSecretSha256: [Output Only] SHA256 hash value for the
5632	// field oauth2_client_secret above.
5633	Oauth2ClientSecretSha256 string `json:"oauth2ClientSecretSha256,omitempty"`
5634
5635	// ForceSendFields is a list of field names (e.g. "Enabled") to
5636	// unconditionally include in API requests. By default, fields with
5637	// empty values are omitted from API requests. However, any non-pointer,
5638	// non-interface field appearing in ForceSendFields will be sent to the
5639	// server regardless of whether the field is empty or not. This may be
5640	// used to include empty fields in Patch requests.
5641	ForceSendFields []string `json:"-"`
5642
5643	// NullFields is a list of field names (e.g. "Enabled") to include in
5644	// API requests with the JSON null value. By default, fields with empty
5645	// values are omitted from API requests. However, any field with an
5646	// empty value appearing in NullFields will be sent to the server as
5647	// null. It is an error if a field in this list has a non-empty value.
5648	// This may be used to include null fields in Patch requests.
5649	NullFields []string `json:"-"`
5650}
5651
5652func (s *BackendServiceIAP) MarshalJSON() ([]byte, error) {
5653	type NoMethod BackendServiceIAP
5654	raw := NoMethod(*s)
5655	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5656}
5657
5658// BackendServiceList: Contains a list of BackendService resources.
5659type BackendServiceList struct {
5660	// Id: [Output Only] Unique identifier for the resource; defined by the
5661	// server.
5662	Id string `json:"id,omitempty"`
5663
5664	// Items: A list of BackendService resources.
5665	Items []*BackendService `json:"items,omitempty"`
5666
5667	// Kind: [Output Only] Type of resource. Always
5668	// compute#backendServiceList for lists of backend services.
5669	Kind string `json:"kind,omitempty"`
5670
5671	// NextPageToken: [Output Only] This token allows you to get the next
5672	// page of results for list requests. If the number of results is larger
5673	// than maxResults, use the nextPageToken as a value for the query
5674	// parameter pageToken in the next list request. Subsequent list
5675	// requests will have their own nextPageToken to continue paging through
5676	// the results.
5677	NextPageToken string `json:"nextPageToken,omitempty"`
5678
5679	// SelfLink: [Output Only] Server-defined URL for this resource.
5680	SelfLink string `json:"selfLink,omitempty"`
5681
5682	// Warning: [Output Only] Informational warning message.
5683	Warning *BackendServiceListWarning `json:"warning,omitempty"`
5684
5685	// ServerResponse contains the HTTP response code and headers from the
5686	// server.
5687	googleapi.ServerResponse `json:"-"`
5688
5689	// ForceSendFields is a list of field names (e.g. "Id") to
5690	// unconditionally include in API requests. By default, fields with
5691	// empty values are omitted from API requests. However, any non-pointer,
5692	// non-interface field appearing in ForceSendFields will be sent to the
5693	// server regardless of whether the field is empty or not. This may be
5694	// used to include empty fields in Patch requests.
5695	ForceSendFields []string `json:"-"`
5696
5697	// NullFields is a list of field names (e.g. "Id") to include in API
5698	// requests with the JSON null value. By default, fields with empty
5699	// values are omitted from API requests. However, any field with an
5700	// empty value appearing in NullFields will be sent to the server as
5701	// null. It is an error if a field in this list has a non-empty value.
5702	// This may be used to include null fields in Patch requests.
5703	NullFields []string `json:"-"`
5704}
5705
5706func (s *BackendServiceList) MarshalJSON() ([]byte, error) {
5707	type NoMethod BackendServiceList
5708	raw := NoMethod(*s)
5709	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5710}
5711
5712// BackendServiceListWarning: [Output Only] Informational warning
5713// message.
5714type BackendServiceListWarning struct {
5715	// Code: [Output Only] A warning code, if applicable. For example,
5716	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5717	// the response.
5718	//
5719	// Possible values:
5720	//   "CLEANUP_FAILED"
5721	//   "DEPRECATED_RESOURCE_USED"
5722	//   "DEPRECATED_TYPE_USED"
5723	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5724	//   "EXPERIMENTAL_TYPE_USED"
5725	//   "EXTERNAL_API_WARNING"
5726	//   "FIELD_VALUE_OVERRIDEN"
5727	//   "INJECTED_KERNELS_DEPRECATED"
5728	//   "LARGE_DEPLOYMENT_WARNING"
5729	//   "MISSING_TYPE_DEPENDENCY"
5730	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5731	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5732	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5733	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5734	//   "NEXT_HOP_NOT_RUNNING"
5735	//   "NOT_CRITICAL_ERROR"
5736	//   "NO_RESULTS_ON_PAGE"
5737	//   "PARTIAL_SUCCESS"
5738	//   "REQUIRED_TOS_AGREEMENT"
5739	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5740	//   "RESOURCE_NOT_DELETED"
5741	//   "SCHEMA_VALIDATION_IGNORED"
5742	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5743	//   "UNDECLARED_PROPERTIES"
5744	//   "UNREACHABLE"
5745	Code string `json:"code,omitempty"`
5746
5747	// Data: [Output Only] Metadata about this warning in key: value format.
5748	// For example:
5749	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5750	Data []*BackendServiceListWarningData `json:"data,omitempty"`
5751
5752	// Message: [Output Only] A human-readable description of the warning
5753	// code.
5754	Message string `json:"message,omitempty"`
5755
5756	// ForceSendFields is a list of field names (e.g. "Code") to
5757	// unconditionally include in API requests. By default, fields with
5758	// empty values are omitted from API requests. However, any non-pointer,
5759	// non-interface field appearing in ForceSendFields will be sent to the
5760	// server regardless of whether the field is empty or not. This may be
5761	// used to include empty fields in Patch requests.
5762	ForceSendFields []string `json:"-"`
5763
5764	// NullFields is a list of field names (e.g. "Code") to include in API
5765	// requests with the JSON null value. By default, fields with empty
5766	// values are omitted from API requests. However, any field with an
5767	// empty value appearing in NullFields will be sent to the server as
5768	// null. It is an error if a field in this list has a non-empty value.
5769	// This may be used to include null fields in Patch requests.
5770	NullFields []string `json:"-"`
5771}
5772
5773func (s *BackendServiceListWarning) MarshalJSON() ([]byte, error) {
5774	type NoMethod BackendServiceListWarning
5775	raw := NoMethod(*s)
5776	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5777}
5778
5779type BackendServiceListWarningData struct {
5780	// Key: [Output Only] A key that provides more detail on the warning
5781	// being returned. For example, for warnings where there are no results
5782	// in a list request for a particular zone, this key might be scope and
5783	// the key value might be the zone name. Other examples might be a key
5784	// indicating a deprecated resource and a suggested replacement, or a
5785	// warning about invalid network settings (for example, if an instance
5786	// attempts to perform IP forwarding but is not enabled for IP
5787	// forwarding).
5788	Key string `json:"key,omitempty"`
5789
5790	// Value: [Output Only] A warning data value corresponding to the key.
5791	Value string `json:"value,omitempty"`
5792
5793	// ForceSendFields is a list of field names (e.g. "Key") to
5794	// unconditionally include in API requests. By default, fields with
5795	// empty values are omitted from API requests. However, any non-pointer,
5796	// non-interface field appearing in ForceSendFields will be sent to the
5797	// server regardless of whether the field is empty or not. This may be
5798	// used to include empty fields in Patch requests.
5799	ForceSendFields []string `json:"-"`
5800
5801	// NullFields is a list of field names (e.g. "Key") to include in API
5802	// requests with the JSON null value. By default, fields with empty
5803	// values are omitted from API requests. However, any field with an
5804	// empty value appearing in NullFields will be sent to the server as
5805	// null. It is an error if a field in this list has a non-empty value.
5806	// This may be used to include null fields in Patch requests.
5807	NullFields []string `json:"-"`
5808}
5809
5810func (s *BackendServiceListWarningData) MarshalJSON() ([]byte, error) {
5811	type NoMethod BackendServiceListWarningData
5812	raw := NoMethod(*s)
5813	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5814}
5815
5816// BackendServiceLogConfig: The available logging options for the load
5817// balancer traffic served by this backend service.
5818type BackendServiceLogConfig struct {
5819	// Enable: This field denotes whether to enable logging for the load
5820	// balancer traffic served by this backend service.
5821	Enable bool `json:"enable,omitempty"`
5822
5823	// SampleRate: This field can only be specified if logging is enabled
5824	// for this backend service. The value of the field must be in [0, 1].
5825	// This configures the sampling rate of requests to the load balancer
5826	// where 1.0 means all logged requests are reported and 0.0 means no
5827	// logged requests are reported. The default value is 1.0.
5828	SampleRate float64 `json:"sampleRate,omitempty"`
5829
5830	// ForceSendFields is a list of field names (e.g. "Enable") to
5831	// unconditionally include in API requests. By default, fields with
5832	// empty values are omitted from API requests. However, any non-pointer,
5833	// non-interface field appearing in ForceSendFields will be sent to the
5834	// server regardless of whether the field is empty or not. This may be
5835	// used to include empty fields in Patch requests.
5836	ForceSendFields []string `json:"-"`
5837
5838	// NullFields is a list of field names (e.g. "Enable") to include in API
5839	// requests with the JSON null value. By default, fields with empty
5840	// values are omitted from API requests. However, any field with an
5841	// empty value appearing in NullFields will be sent to the server as
5842	// null. It is an error if a field in this list has a non-empty value.
5843	// This may be used to include null fields in Patch requests.
5844	NullFields []string `json:"-"`
5845}
5846
5847func (s *BackendServiceLogConfig) MarshalJSON() ([]byte, error) {
5848	type NoMethod BackendServiceLogConfig
5849	raw := NoMethod(*s)
5850	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5851}
5852
5853func (s *BackendServiceLogConfig) UnmarshalJSON(data []byte) error {
5854	type NoMethod BackendServiceLogConfig
5855	var s1 struct {
5856		SampleRate gensupport.JSONFloat64 `json:"sampleRate"`
5857		*NoMethod
5858	}
5859	s1.NoMethod = (*NoMethod)(s)
5860	if err := json.Unmarshal(data, &s1); err != nil {
5861		return err
5862	}
5863	s.SampleRate = float64(s1.SampleRate)
5864	return nil
5865}
5866
5867type BackendServiceReference struct {
5868	BackendService string `json:"backendService,omitempty"`
5869
5870	// ForceSendFields is a list of field names (e.g. "BackendService") to
5871	// unconditionally include in API requests. By default, fields with
5872	// empty values are omitted from API requests. However, any non-pointer,
5873	// non-interface field appearing in ForceSendFields will be sent to the
5874	// server regardless of whether the field is empty or not. This may be
5875	// used to include empty fields in Patch requests.
5876	ForceSendFields []string `json:"-"`
5877
5878	// NullFields is a list of field names (e.g. "BackendService") to
5879	// include in API requests with the JSON null value. By default, fields
5880	// with empty values are omitted from API requests. However, any field
5881	// with an empty value appearing in NullFields will be sent to the
5882	// server as null. It is an error if a field in this list has a
5883	// non-empty value. This may be used to include null fields in Patch
5884	// requests.
5885	NullFields []string `json:"-"`
5886}
5887
5888func (s *BackendServiceReference) MarshalJSON() ([]byte, error) {
5889	type NoMethod BackendServiceReference
5890	raw := NoMethod(*s)
5891	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5892}
5893
5894type BackendServicesScopedList struct {
5895	// BackendServices: A list of BackendServices contained in this scope.
5896	BackendServices []*BackendService `json:"backendServices,omitempty"`
5897
5898	// Warning: Informational warning which replaces the list of backend
5899	// services when the list is empty.
5900	Warning *BackendServicesScopedListWarning `json:"warning,omitempty"`
5901
5902	// ForceSendFields is a list of field names (e.g. "BackendServices") to
5903	// unconditionally include in API requests. By default, fields with
5904	// empty values are omitted from API requests. However, any non-pointer,
5905	// non-interface field appearing in ForceSendFields will be sent to the
5906	// server regardless of whether the field is empty or not. This may be
5907	// used to include empty fields in Patch requests.
5908	ForceSendFields []string `json:"-"`
5909
5910	// NullFields is a list of field names (e.g. "BackendServices") to
5911	// include in API requests with the JSON null value. By default, fields
5912	// with empty values are omitted from API requests. However, any field
5913	// with an empty value appearing in NullFields will be sent to the
5914	// server as null. It is an error if a field in this list has a
5915	// non-empty value. This may be used to include null fields in Patch
5916	// requests.
5917	NullFields []string `json:"-"`
5918}
5919
5920func (s *BackendServicesScopedList) MarshalJSON() ([]byte, error) {
5921	type NoMethod BackendServicesScopedList
5922	raw := NoMethod(*s)
5923	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5924}
5925
5926// BackendServicesScopedListWarning: Informational warning which
5927// replaces the list of backend services when the list is empty.
5928type BackendServicesScopedListWarning struct {
5929	// Code: [Output Only] A warning code, if applicable. For example,
5930	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5931	// the response.
5932	//
5933	// Possible values:
5934	//   "CLEANUP_FAILED"
5935	//   "DEPRECATED_RESOURCE_USED"
5936	//   "DEPRECATED_TYPE_USED"
5937	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5938	//   "EXPERIMENTAL_TYPE_USED"
5939	//   "EXTERNAL_API_WARNING"
5940	//   "FIELD_VALUE_OVERRIDEN"
5941	//   "INJECTED_KERNELS_DEPRECATED"
5942	//   "LARGE_DEPLOYMENT_WARNING"
5943	//   "MISSING_TYPE_DEPENDENCY"
5944	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5945	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5946	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5947	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5948	//   "NEXT_HOP_NOT_RUNNING"
5949	//   "NOT_CRITICAL_ERROR"
5950	//   "NO_RESULTS_ON_PAGE"
5951	//   "PARTIAL_SUCCESS"
5952	//   "REQUIRED_TOS_AGREEMENT"
5953	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5954	//   "RESOURCE_NOT_DELETED"
5955	//   "SCHEMA_VALIDATION_IGNORED"
5956	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5957	//   "UNDECLARED_PROPERTIES"
5958	//   "UNREACHABLE"
5959	Code string `json:"code,omitempty"`
5960
5961	// Data: [Output Only] Metadata about this warning in key: value format.
5962	// For example:
5963	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5964	Data []*BackendServicesScopedListWarningData `json:"data,omitempty"`
5965
5966	// Message: [Output Only] A human-readable description of the warning
5967	// code.
5968	Message string `json:"message,omitempty"`
5969
5970	// ForceSendFields is a list of field names (e.g. "Code") to
5971	// unconditionally include in API requests. By default, fields with
5972	// empty values are omitted from API requests. However, any non-pointer,
5973	// non-interface field appearing in ForceSendFields will be sent to the
5974	// server regardless of whether the field is empty or not. This may be
5975	// used to include empty fields in Patch requests.
5976	ForceSendFields []string `json:"-"`
5977
5978	// NullFields is a list of field names (e.g. "Code") to include in API
5979	// requests with the JSON null value. By default, fields with empty
5980	// values are omitted from API requests. However, any field with an
5981	// empty value appearing in NullFields will be sent to the server as
5982	// null. It is an error if a field in this list has a non-empty value.
5983	// This may be used to include null fields in Patch requests.
5984	NullFields []string `json:"-"`
5985}
5986
5987func (s *BackendServicesScopedListWarning) MarshalJSON() ([]byte, error) {
5988	type NoMethod BackendServicesScopedListWarning
5989	raw := NoMethod(*s)
5990	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5991}
5992
5993type BackendServicesScopedListWarningData struct {
5994	// Key: [Output Only] A key that provides more detail on the warning
5995	// being returned. For example, for warnings where there are no results
5996	// in a list request for a particular zone, this key might be scope and
5997	// the key value might be the zone name. Other examples might be a key
5998	// indicating a deprecated resource and a suggested replacement, or a
5999	// warning about invalid network settings (for example, if an instance
6000	// attempts to perform IP forwarding but is not enabled for IP
6001	// forwarding).
6002	Key string `json:"key,omitempty"`
6003
6004	// Value: [Output Only] A warning data value corresponding to the key.
6005	Value string `json:"value,omitempty"`
6006
6007	// ForceSendFields is a list of field names (e.g. "Key") to
6008	// unconditionally include in API requests. By default, fields with
6009	// empty values are omitted from API requests. However, any non-pointer,
6010	// non-interface field appearing in ForceSendFields will be sent to the
6011	// server regardless of whether the field is empty or not. This may be
6012	// used to include empty fields in Patch requests.
6013	ForceSendFields []string `json:"-"`
6014
6015	// NullFields is a list of field names (e.g. "Key") to include in API
6016	// requests with the JSON null value. By default, fields with empty
6017	// values are omitted from API requests. However, any field with an
6018	// empty value appearing in NullFields will be sent to the server as
6019	// null. It is an error if a field in this list has a non-empty value.
6020	// This may be used to include null fields in Patch requests.
6021	NullFields []string `json:"-"`
6022}
6023
6024func (s *BackendServicesScopedListWarningData) MarshalJSON() ([]byte, error) {
6025	type NoMethod BackendServicesScopedListWarningData
6026	raw := NoMethod(*s)
6027	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6028}
6029
6030// Binding: Associates `members` with a `role`.
6031type Binding struct {
6032	BindingId string `json:"bindingId,omitempty"`
6033
6034	// Condition: The condition that is associated with this binding.
6035	//
6036	// If the condition evaluates to `true`, then this binding applies to
6037	// the current request.
6038	//
6039	// If the condition evaluates to `false`, then this binding does not
6040	// apply to the current request. However, a different role binding might
6041	// grant the same role to one or more of the members in this
6042	// binding.
6043	//
6044	// To learn which resources support conditions in their IAM policies,
6045	// see the IAM documentation
6046	// (https://cloud.google.com/iam/help/conditions/resource-policies).
6047	Condition *Expr `json:"condition,omitempty"`
6048
6049	// Members: Specifies the identities requesting access for a Cloud
6050	// Platform resource. `members` can have the following values:
6051	//
6052	// * `allUsers`: A special identifier that represents anyone who is on
6053	// the internet; with or without a Google account.
6054	//
6055	// * `allAuthenticatedUsers`: A special identifier that represents
6056	// anyone who is authenticated with a Google account or a service
6057	// account.
6058	//
6059	// * `user:{emailid}`: An email address that represents a specific
6060	// Google account. For example, `alice@example.com` .
6061	//
6062	//
6063	//
6064	// * `serviceAccount:{emailid}`: An email address that represents a
6065	// service account. For example,
6066	// `my-other-app@appspot.gserviceaccount.com`.
6067	//
6068	// * `group:{emailid}`: An email address that represents a Google group.
6069	// For example, `admins@example.com`.
6070	//
6071	// * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus
6072	// unique identifier) representing a user that has been recently
6073	// deleted. For example, `alice@example.com?uid=123456789012345678901`.
6074	// If the user is recovered, this value reverts to `user:{emailid}` and
6075	// the recovered user retains the role in the binding.
6076	//
6077	// * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address
6078	// (plus unique identifier) representing a service account that has been
6079	// recently deleted. For example,
6080	// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
6081	// If the service account is undeleted, this value reverts to
6082	// `serviceAccount:{emailid}` and the undeleted service account retains
6083	// the role in the binding.
6084	//
6085	// * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus
6086	// unique identifier) representing a Google group that has been recently
6087	// deleted. For example, `admins@example.com?uid=123456789012345678901`.
6088	// If the group is recovered, this value reverts to `group:{emailid}`
6089	// and the recovered group retains the role in the binding.
6090	//
6091	//
6092	//
6093	// * `domain:{domain}`: The G Suite domain (primary) that represents all
6094	// the users of that domain. For example, `google.com` or `example.com`.
6095	Members []string `json:"members,omitempty"`
6096
6097	// Role: Role that is assigned to `members`. For example,
6098	// `roles/viewer`, `roles/editor`, or `roles/owner`.
6099	Role string `json:"role,omitempty"`
6100
6101	// ForceSendFields is a list of field names (e.g. "BindingId") to
6102	// unconditionally include in API requests. By default, fields with
6103	// empty values are omitted from API requests. However, any non-pointer,
6104	// non-interface field appearing in ForceSendFields will be sent to the
6105	// server regardless of whether the field is empty or not. This may be
6106	// used to include empty fields in Patch requests.
6107	ForceSendFields []string `json:"-"`
6108
6109	// NullFields is a list of field names (e.g. "BindingId") to include in
6110	// API requests with the JSON null value. By default, fields with empty
6111	// values are omitted from API requests. However, any field with an
6112	// empty value appearing in NullFields will be sent to the server as
6113	// null. It is an error if a field in this list has a non-empty value.
6114	// This may be used to include null fields in Patch requests.
6115	NullFields []string `json:"-"`
6116}
6117
6118func (s *Binding) MarshalJSON() ([]byte, error) {
6119	type NoMethod Binding
6120	raw := NoMethod(*s)
6121	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6122}
6123
6124// BulkInsertInstanceResource: A transient resource used in
6125// compute.instances.bulkInsert and compute.regionInstances.bulkInsert
6126// and compute.regionInstances.recommendLocations. This resource is not
6127// persisted anywhere, it is used only for processing the requests.
6128type BulkInsertInstanceResource struct {
6129	// Count: The maximum number of instances to create.
6130	Count int64 `json:"count,omitempty,string"`
6131
6132	// InstanceProperties: The instance properties defining the VM instances
6133	// to be created. Required if sourceInstanceTemplate is not provided.
6134	InstanceProperties *InstanceProperties `json:"instanceProperties,omitempty"`
6135
6136	// LocationPolicy: Policy for chosing target zone.
6137	LocationPolicy *LocationPolicy `json:"locationPolicy,omitempty"`
6138
6139	// MinCount: The minimum number of instances to create. If no min_count
6140	// is specified then count is used as the default value. If min_count
6141	// instances cannot be created, then no instances will be created and
6142	// instances already created will be deleted.
6143	MinCount int64 `json:"minCount,omitempty,string"`
6144
6145	// NamePattern: The string pattern used for the names of the VMs. Either
6146	// name_pattern or per_instance_properties must be set. The pattern
6147	// should contain one continuous sequence of placeholder hash characters
6148	// (#) with each character corresponding to one digit of the generated
6149	// instance name. Example: name_pattern of inst-#### will generate
6150	// instance names such as inst-0001, inst-0002, ... . If there already
6151	// exist instance(s) whose names match the name pattern in the same
6152	// project and zone, then the generated instance numbers will start
6153	// after the biggest existing number. For example, if there exists an
6154	// instance with name inst-0050, then instance names generated using the
6155	// pattern inst-#### will be inst-0051, inst-0052, etc. The name pattern
6156	// placeholder #...# can contain up to 18 characters.
6157	NamePattern string `json:"namePattern,omitempty"`
6158
6159	// PerInstanceProperties: Per-instance properties to be set on
6160	// individual instances. Keys of this map specify requested instance
6161	// names. Can be empty if name_pattern is used.
6162	PerInstanceProperties map[string]BulkInsertInstanceResourcePerInstanceProperties `json:"perInstanceProperties,omitempty"`
6163
6164	// SourceInstanceTemplate: Specifies the instance template from which to
6165	// create instances. You may combine sourceInstanceTemplate with
6166	// instanceProperties to override specific values from an existing
6167	// instance template. Bulk API follows the semantics of JSON Merge Patch
6168	// described by RFC 7396.
6169	//
6170	// It can be a full or partial URL. For example, the following are all
6171	// valid URLs to an instance template:
6172	// -
6173	// https://www.googleapis.com/compute/v1/projects/project/global/instanceTemplates/instanceTemplate
6174	//
6175	// - projects/project/global/instanceTemplates/instanceTemplate
6176	// - global/instanceTemplates/instanceTemplate
6177	//
6178	// This field is optional.
6179	SourceInstanceTemplate string `json:"sourceInstanceTemplate,omitempty"`
6180
6181	// ForceSendFields is a list of field names (e.g. "Count") to
6182	// unconditionally include in API requests. By default, fields with
6183	// empty values are omitted from API requests. However, any non-pointer,
6184	// non-interface field appearing in ForceSendFields will be sent to the
6185	// server regardless of whether the field is empty or not. This may be
6186	// used to include empty fields in Patch requests.
6187	ForceSendFields []string `json:"-"`
6188
6189	// NullFields is a list of field names (e.g. "Count") to include in API
6190	// requests with the JSON null value. By default, fields with empty
6191	// values are omitted from API requests. However, any field with an
6192	// empty value appearing in NullFields will be sent to the server as
6193	// null. It is an error if a field in this list has a non-empty value.
6194	// This may be used to include null fields in Patch requests.
6195	NullFields []string `json:"-"`
6196}
6197
6198func (s *BulkInsertInstanceResource) MarshalJSON() ([]byte, error) {
6199	type NoMethod BulkInsertInstanceResource
6200	raw := NoMethod(*s)
6201	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6202}
6203
6204// BulkInsertInstanceResourcePerInstanceProperties: Per-instance
6205// properties to be set on individual instances. To be extended in the
6206// future.
6207type BulkInsertInstanceResourcePerInstanceProperties struct {
6208	// Name: This field is only temporary. It will be removed. Do not use
6209	// it.
6210	Name string `json:"name,omitempty"`
6211
6212	// ForceSendFields is a list of field names (e.g. "Name") to
6213	// unconditionally include in API requests. By default, fields with
6214	// empty values are omitted from API requests. However, any non-pointer,
6215	// non-interface field appearing in ForceSendFields will be sent to the
6216	// server regardless of whether the field is empty or not. This may be
6217	// used to include empty fields in Patch requests.
6218	ForceSendFields []string `json:"-"`
6219
6220	// NullFields is a list of field names (e.g. "Name") to include in API
6221	// requests with the JSON null value. By default, fields with empty
6222	// values are omitted from API requests. However, any field with an
6223	// empty value appearing in NullFields will be sent to the server as
6224	// null. It is an error if a field in this list has a non-empty value.
6225	// This may be used to include null fields in Patch requests.
6226	NullFields []string `json:"-"`
6227}
6228
6229func (s *BulkInsertInstanceResourcePerInstanceProperties) MarshalJSON() ([]byte, error) {
6230	type NoMethod BulkInsertInstanceResourcePerInstanceProperties
6231	raw := NoMethod(*s)
6232	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6233}
6234
6235type CacheInvalidationRule struct {
6236	// Host: If set, this invalidation rule will only apply to requests with
6237	// a Host header matching host.
6238	Host string `json:"host,omitempty"`
6239
6240	Path string `json:"path,omitempty"`
6241
6242	// ForceSendFields is a list of field names (e.g. "Host") to
6243	// unconditionally include in API requests. By default, fields with
6244	// empty values are omitted from API requests. However, any non-pointer,
6245	// non-interface field appearing in ForceSendFields will be sent to the
6246	// server regardless of whether the field is empty or not. This may be
6247	// used to include empty fields in Patch requests.
6248	ForceSendFields []string `json:"-"`
6249
6250	// NullFields is a list of field names (e.g. "Host") to include in API
6251	// requests with the JSON null value. By default, fields with empty
6252	// values are omitted from API requests. However, any field with an
6253	// empty value appearing in NullFields will be sent to the server as
6254	// null. It is an error if a field in this list has a non-empty value.
6255	// This may be used to include null fields in Patch requests.
6256	NullFields []string `json:"-"`
6257}
6258
6259func (s *CacheInvalidationRule) MarshalJSON() ([]byte, error) {
6260	type NoMethod CacheInvalidationRule
6261	raw := NoMethod(*s)
6262	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6263}
6264
6265// CacheKeyPolicy: Message containing what to include in the cache key
6266// for a request for Cloud CDN.
6267type CacheKeyPolicy struct {
6268	// IncludeHost: If true, requests to different hosts will be cached
6269	// separately.
6270	IncludeHost bool `json:"includeHost,omitempty"`
6271
6272	// IncludeProtocol: If true, http and https requests will be cached
6273	// separately.
6274	IncludeProtocol bool `json:"includeProtocol,omitempty"`
6275
6276	// IncludeQueryString: If true, include query string parameters in the
6277	// cache key according to query_string_whitelist and
6278	// query_string_blacklist. If neither is set, the entire query string
6279	// will be included. If false, the query string will be excluded from
6280	// the cache key entirely.
6281	IncludeQueryString bool `json:"includeQueryString,omitempty"`
6282
6283	// QueryStringBlacklist: Names of query string parameters to exclude in
6284	// cache keys. All other parameters will be included. Either specify
6285	// query_string_whitelist or query_string_blacklist, not both. '&' and
6286	// '=' will be percent encoded and not treated as delimiters.
6287	QueryStringBlacklist []string `json:"queryStringBlacklist,omitempty"`
6288
6289	// QueryStringWhitelist: Names of query string parameters to include in
6290	// cache keys. All other parameters will be excluded. Either specify
6291	// query_string_whitelist or query_string_blacklist, not both. '&' and
6292	// '=' will be percent encoded and not treated as delimiters.
6293	QueryStringWhitelist []string `json:"queryStringWhitelist,omitempty"`
6294
6295	// ForceSendFields is a list of field names (e.g. "IncludeHost") to
6296	// unconditionally include in API requests. By default, fields with
6297	// empty values are omitted from API requests. However, any non-pointer,
6298	// non-interface field appearing in ForceSendFields will be sent to the
6299	// server regardless of whether the field is empty or not. This may be
6300	// used to include empty fields in Patch requests.
6301	ForceSendFields []string `json:"-"`
6302
6303	// NullFields is a list of field names (e.g. "IncludeHost") to include
6304	// in API requests with the JSON null value. By default, fields with
6305	// empty values are omitted from API requests. However, any field with
6306	// an empty value appearing in NullFields will be sent to the server as
6307	// null. It is an error if a field in this list has a non-empty value.
6308	// This may be used to include null fields in Patch requests.
6309	NullFields []string `json:"-"`
6310}
6311
6312func (s *CacheKeyPolicy) MarshalJSON() ([]byte, error) {
6313	type NoMethod CacheKeyPolicy
6314	raw := NoMethod(*s)
6315	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6316}
6317
6318// CircuitBreakers: Settings controlling the volume of connections to a
6319// backend service.
6320type CircuitBreakers struct {
6321	// MaxConnections: Not supported when the backend service is referenced
6322	// by a URL map that is bound to target gRPC proxy that has
6323	// validateForProxyless field set to true.
6324	MaxConnections int64 `json:"maxConnections,omitempty"`
6325
6326	// MaxPendingRequests: Not supported when the backend service is
6327	// referenced by a URL map that is bound to target gRPC proxy that has
6328	// validateForProxyless field set to true.
6329	MaxPendingRequests int64 `json:"maxPendingRequests,omitempty"`
6330
6331	// MaxRequests: The maximum number of parallel requests that allowed to
6332	// the backend service. If not specified, there is no limit.
6333	MaxRequests int64 `json:"maxRequests,omitempty"`
6334
6335	// MaxRequestsPerConnection: Not supported when the backend service is
6336	// referenced by a URL map that is bound to target gRPC proxy that has
6337	// validateForProxyless field set to true.
6338	MaxRequestsPerConnection int64 `json:"maxRequestsPerConnection,omitempty"`
6339
6340	// MaxRetries: Not supported when the backend service is referenced by a
6341	// URL map that is bound to target gRPC proxy that has
6342	// validateForProxyless field set to true.
6343	MaxRetries int64 `json:"maxRetries,omitempty"`
6344
6345	// ForceSendFields is a list of field names (e.g. "MaxConnections") to
6346	// unconditionally include in API requests. By default, fields with
6347	// empty values are omitted from API requests. However, any non-pointer,
6348	// non-interface field appearing in ForceSendFields will be sent to the
6349	// server regardless of whether the field is empty or not. This may be
6350	// used to include empty fields in Patch requests.
6351	ForceSendFields []string `json:"-"`
6352
6353	// NullFields is a list of field names (e.g. "MaxConnections") to
6354	// include in API requests with the JSON null value. By default, fields
6355	// with empty values are omitted from API requests. However, any field
6356	// with an empty value appearing in NullFields will be sent to the
6357	// server as null. It is an error if a field in this list has a
6358	// non-empty value. This may be used to include null fields in Patch
6359	// requests.
6360	NullFields []string `json:"-"`
6361}
6362
6363func (s *CircuitBreakers) MarshalJSON() ([]byte, error) {
6364	type NoMethod CircuitBreakers
6365	raw := NoMethod(*s)
6366	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6367}
6368
6369// Commitment: Represents a regional Commitment resource.
6370//
6371// Creating a commitment resource means that you are purchasing a
6372// committed use contract with an explicit start and end time. You can
6373// create commitments based on vCPUs and memory usage and receive
6374// discounted rates. For full details, read Signing Up for Committed Use
6375// Discounts. (== resource_for {$api_version}.regionCommitments ==)
6376type Commitment struct {
6377	// Category: The category of the commitment. Category MACHINE specifies
6378	// commitments composed of machine resources such as VCPU or MEMORY,
6379	// listed in resources. Category LICENSE specifies commitments composed
6380	// of software licenses, listed in licenseResources. Note that only
6381	// MACHINE commitments should have a Type specified.
6382	//
6383	// Possible values:
6384	//   "CATEGORY_UNSPECIFIED"
6385	//   "LICENSE"
6386	//   "MACHINE"
6387	Category string `json:"category,omitempty"`
6388
6389	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
6390	// format.
6391	CreationTimestamp string `json:"creationTimestamp,omitempty"`
6392
6393	// Description: An optional description of this resource. Provide this
6394	// property when you create the resource.
6395	Description string `json:"description,omitempty"`
6396
6397	// EndTimestamp: [Output Only] Commitment end time in RFC3339 text
6398	// format.
6399	EndTimestamp string `json:"endTimestamp,omitempty"`
6400
6401	// Id: [Output Only] The unique identifier for the resource. This
6402	// identifier is defined by the server.
6403	Id uint64 `json:"id,omitempty,string"`
6404
6405	// Kind: [Output Only] Type of the resource. Always compute#commitment
6406	// for commitments.
6407	Kind string `json:"kind,omitempty"`
6408
6409	// LicenseResource: The license specification required as part of a
6410	// license commitment.
6411	LicenseResource *LicenseResourceCommitment `json:"licenseResource,omitempty"`
6412
6413	// Name: Name of the resource. Provided by the client when the resource
6414	// is created. The name must be 1-63 characters long, and comply with
6415	// RFC1035. Specifically, the name must be 1-63 characters long and
6416	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
6417	// the first character must be a lowercase letter, and all following
6418	// characters must be a dash, lowercase letter, or digit, except the
6419	// last character, which cannot be a dash.
6420	Name string `json:"name,omitempty"`
6421
6422	// Plan: The plan for this commitment, which determines duration and
6423	// discount rate. The currently supported plans are TWELVE_MONTH (1
6424	// year), and THIRTY_SIX_MONTH (3 years).
6425	//
6426	// Possible values:
6427	//   "INVALID"
6428	//   "THIRTY_SIX_MONTH"
6429	//   "TWELVE_MONTH"
6430	Plan string `json:"plan,omitempty"`
6431
6432	// Region: [Output Only] URL of the region where this commitment may be
6433	// used.
6434	Region string `json:"region,omitempty"`
6435
6436	// Reservations: List of reservations in this commitment.
6437	Reservations []*Reservation `json:"reservations,omitempty"`
6438
6439	// Resources: A list of commitment amounts for particular resources.
6440	// Note that VCPU and MEMORY resource commitments must occur together.
6441	Resources []*ResourceCommitment `json:"resources,omitempty"`
6442
6443	// SelfLink: [Output Only] Server-defined URL for the resource.
6444	SelfLink string `json:"selfLink,omitempty"`
6445
6446	// StartTimestamp: [Output Only] Commitment start time in RFC3339 text
6447	// format.
6448	StartTimestamp string `json:"startTimestamp,omitempty"`
6449
6450	// Status: [Output Only] Status of the commitment with regards to
6451	// eventual expiration (each commitment has an end date defined). One of
6452	// the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
6453	//
6454	// Possible values:
6455	//   "ACTIVE"
6456	//   "CREATING"
6457	//   "EXPIRED"
6458	//   "NOT_YET_ACTIVE"
6459	Status string `json:"status,omitempty"`
6460
6461	// StatusMessage: [Output Only] An optional, human-readable explanation
6462	// of the status.
6463	StatusMessage string `json:"statusMessage,omitempty"`
6464
6465	// ServerResponse contains the HTTP response code and headers from the
6466	// server.
6467	googleapi.ServerResponse `json:"-"`
6468
6469	// ForceSendFields is a list of field names (e.g. "Category") to
6470	// unconditionally include in API requests. By default, fields with
6471	// empty values are omitted from API requests. However, any non-pointer,
6472	// non-interface field appearing in ForceSendFields will be sent to the
6473	// server regardless of whether the field is empty or not. This may be
6474	// used to include empty fields in Patch requests.
6475	ForceSendFields []string `json:"-"`
6476
6477	// NullFields is a list of field names (e.g. "Category") to include in
6478	// API requests with the JSON null value. By default, fields with empty
6479	// values are omitted from API requests. However, any field with an
6480	// empty value appearing in NullFields will be sent to the server as
6481	// null. It is an error if a field in this list has a non-empty value.
6482	// This may be used to include null fields in Patch requests.
6483	NullFields []string `json:"-"`
6484}
6485
6486func (s *Commitment) MarshalJSON() ([]byte, error) {
6487	type NoMethod Commitment
6488	raw := NoMethod(*s)
6489	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6490}
6491
6492type CommitmentAggregatedList struct {
6493	// Id: [Output Only] Unique identifier for the resource; defined by the
6494	// server.
6495	Id string `json:"id,omitempty"`
6496
6497	// Items: A list of CommitmentsScopedList resources.
6498	Items map[string]CommitmentsScopedList `json:"items,omitempty"`
6499
6500	// Kind: [Output Only] Type of resource. Always
6501	// compute#commitmentAggregatedList for aggregated lists of commitments.
6502	Kind string `json:"kind,omitempty"`
6503
6504	// NextPageToken: [Output Only] This token allows you to get the next
6505	// page of results for list requests. If the number of results is larger
6506	// than maxResults, use the nextPageToken as a value for the query
6507	// parameter pageToken in the next list request. Subsequent list
6508	// requests will have their own nextPageToken to continue paging through
6509	// the results.
6510	NextPageToken string `json:"nextPageToken,omitempty"`
6511
6512	// SelfLink: [Output Only] Server-defined URL for this resource.
6513	SelfLink string `json:"selfLink,omitempty"`
6514
6515	// Unreachables: [Output Only] Unreachable resources.
6516	Unreachables []string `json:"unreachables,omitempty"`
6517
6518	// Warning: [Output Only] Informational warning message.
6519	Warning *CommitmentAggregatedListWarning `json:"warning,omitempty"`
6520
6521	// ServerResponse contains the HTTP response code and headers from the
6522	// server.
6523	googleapi.ServerResponse `json:"-"`
6524
6525	// ForceSendFields is a list of field names (e.g. "Id") to
6526	// unconditionally include in API requests. By default, fields with
6527	// empty values are omitted from API requests. However, any non-pointer,
6528	// non-interface field appearing in ForceSendFields will be sent to the
6529	// server regardless of whether the field is empty or not. This may be
6530	// used to include empty fields in Patch requests.
6531	ForceSendFields []string `json:"-"`
6532
6533	// NullFields is a list of field names (e.g. "Id") to include in API
6534	// requests with the JSON null value. By default, fields with empty
6535	// values are omitted from API requests. However, any field with an
6536	// empty value appearing in NullFields will be sent to the server as
6537	// null. It is an error if a field in this list has a non-empty value.
6538	// This may be used to include null fields in Patch requests.
6539	NullFields []string `json:"-"`
6540}
6541
6542func (s *CommitmentAggregatedList) MarshalJSON() ([]byte, error) {
6543	type NoMethod CommitmentAggregatedList
6544	raw := NoMethod(*s)
6545	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6546}
6547
6548// CommitmentAggregatedListWarning: [Output Only] Informational warning
6549// message.
6550type CommitmentAggregatedListWarning struct {
6551	// Code: [Output Only] A warning code, if applicable. For example,
6552	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
6553	// the response.
6554	//
6555	// Possible values:
6556	//   "CLEANUP_FAILED"
6557	//   "DEPRECATED_RESOURCE_USED"
6558	//   "DEPRECATED_TYPE_USED"
6559	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
6560	//   "EXPERIMENTAL_TYPE_USED"
6561	//   "EXTERNAL_API_WARNING"
6562	//   "FIELD_VALUE_OVERRIDEN"
6563	//   "INJECTED_KERNELS_DEPRECATED"
6564	//   "LARGE_DEPLOYMENT_WARNING"
6565	//   "MISSING_TYPE_DEPENDENCY"
6566	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
6567	//   "NEXT_HOP_CANNOT_IP_FORWARD"
6568	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
6569	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
6570	//   "NEXT_HOP_NOT_RUNNING"
6571	//   "NOT_CRITICAL_ERROR"
6572	//   "NO_RESULTS_ON_PAGE"
6573	//   "PARTIAL_SUCCESS"
6574	//   "REQUIRED_TOS_AGREEMENT"
6575	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
6576	//   "RESOURCE_NOT_DELETED"
6577	//   "SCHEMA_VALIDATION_IGNORED"
6578	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
6579	//   "UNDECLARED_PROPERTIES"
6580	//   "UNREACHABLE"
6581	Code string `json:"code,omitempty"`
6582
6583	// Data: [Output Only] Metadata about this warning in key: value format.
6584	// For example:
6585	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
6586	Data []*CommitmentAggregatedListWarningData `json:"data,omitempty"`
6587
6588	// Message: [Output Only] A human-readable description of the warning
6589	// code.
6590	Message string `json:"message,omitempty"`
6591
6592	// ForceSendFields is a list of field names (e.g. "Code") to
6593	// unconditionally include in API requests. By default, fields with
6594	// empty values are omitted from API requests. However, any non-pointer,
6595	// non-interface field appearing in ForceSendFields will be sent to the
6596	// server regardless of whether the field is empty or not. This may be
6597	// used to include empty fields in Patch requests.
6598	ForceSendFields []string `json:"-"`
6599
6600	// NullFields is a list of field names (e.g. "Code") to include in API
6601	// requests with the JSON null value. By default, fields with empty
6602	// values are omitted from API requests. However, any field with an
6603	// empty value appearing in NullFields will be sent to the server as
6604	// null. It is an error if a field in this list has a non-empty value.
6605	// This may be used to include null fields in Patch requests.
6606	NullFields []string `json:"-"`
6607}
6608
6609func (s *CommitmentAggregatedListWarning) MarshalJSON() ([]byte, error) {
6610	type NoMethod CommitmentAggregatedListWarning
6611	raw := NoMethod(*s)
6612	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6613}
6614
6615type CommitmentAggregatedListWarningData struct {
6616	// Key: [Output Only] A key that provides more detail on the warning
6617	// being returned. For example, for warnings where there are no results
6618	// in a list request for a particular zone, this key might be scope and
6619	// the key value might be the zone name. Other examples might be a key
6620	// indicating a deprecated resource and a suggested replacement, or a
6621	// warning about invalid network settings (for example, if an instance
6622	// attempts to perform IP forwarding but is not enabled for IP
6623	// forwarding).
6624	Key string `json:"key,omitempty"`
6625
6626	// Value: [Output Only] A warning data value corresponding to the key.
6627	Value string `json:"value,omitempty"`
6628
6629	// ForceSendFields is a list of field names (e.g. "Key") to
6630	// unconditionally include in API requests. By default, fields with
6631	// empty values are omitted from API requests. However, any non-pointer,
6632	// non-interface field appearing in ForceSendFields will be sent to the
6633	// server regardless of whether the field is empty or not. This may be
6634	// used to include empty fields in Patch requests.
6635	ForceSendFields []string `json:"-"`
6636
6637	// NullFields is a list of field names (e.g. "Key") to include in API
6638	// requests with the JSON null value. By default, fields with empty
6639	// values are omitted from API requests. However, any field with an
6640	// empty value appearing in NullFields will be sent to the server as
6641	// null. It is an error if a field in this list has a non-empty value.
6642	// This may be used to include null fields in Patch requests.
6643	NullFields []string `json:"-"`
6644}
6645
6646func (s *CommitmentAggregatedListWarningData) MarshalJSON() ([]byte, error) {
6647	type NoMethod CommitmentAggregatedListWarningData
6648	raw := NoMethod(*s)
6649	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6650}
6651
6652// CommitmentList: Contains a list of Commitment resources.
6653type CommitmentList struct {
6654	// Id: [Output Only] Unique identifier for the resource; defined by the
6655	// server.
6656	Id string `json:"id,omitempty"`
6657
6658	// Items: A list of Commitment resources.
6659	Items []*Commitment `json:"items,omitempty"`
6660
6661	// Kind: [Output Only] Type of resource. Always compute#commitmentList
6662	// for lists of commitments.
6663	Kind string `json:"kind,omitempty"`
6664
6665	// NextPageToken: [Output Only] This token allows you to get the next
6666	// page of results for list requests. If the number of results is larger
6667	// than maxResults, use the nextPageToken as a value for the query
6668	// parameter pageToken in the next list request. Subsequent list
6669	// requests will have their own nextPageToken to continue paging through
6670	// the results.
6671	NextPageToken string `json:"nextPageToken,omitempty"`
6672
6673	// SelfLink: [Output Only] Server-defined URL for this resource.
6674	SelfLink string `json:"selfLink,omitempty"`
6675
6676	// Warning: [Output Only] Informational warning message.
6677	Warning *CommitmentListWarning `json:"warning,omitempty"`
6678
6679	// ServerResponse contains the HTTP response code and headers from the
6680	// server.
6681	googleapi.ServerResponse `json:"-"`
6682
6683	// ForceSendFields is a list of field names (e.g. "Id") to
6684	// unconditionally include in API requests. By default, fields with
6685	// empty values are omitted from API requests. However, any non-pointer,
6686	// non-interface field appearing in ForceSendFields will be sent to the
6687	// server regardless of whether the field is empty or not. This may be
6688	// used to include empty fields in Patch requests.
6689	ForceSendFields []string `json:"-"`
6690
6691	// NullFields is a list of field names (e.g. "Id") to include in API
6692	// requests with the JSON null value. By default, fields with empty
6693	// values are omitted from API requests. However, any field with an
6694	// empty value appearing in NullFields will be sent to the server as
6695	// null. It is an error if a field in this list has a non-empty value.
6696	// This may be used to include null fields in Patch requests.
6697	NullFields []string `json:"-"`
6698}
6699
6700func (s *CommitmentList) MarshalJSON() ([]byte, error) {
6701	type NoMethod CommitmentList
6702	raw := NoMethod(*s)
6703	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6704}
6705
6706// CommitmentListWarning: [Output Only] Informational warning message.
6707type CommitmentListWarning struct {
6708	// Code: [Output Only] A warning code, if applicable. For example,
6709	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
6710	// the response.
6711	//
6712	// Possible values:
6713	//   "CLEANUP_FAILED"
6714	//   "DEPRECATED_RESOURCE_USED"
6715	//   "DEPRECATED_TYPE_USED"
6716	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
6717	//   "EXPERIMENTAL_TYPE_USED"
6718	//   "EXTERNAL_API_WARNING"
6719	//   "FIELD_VALUE_OVERRIDEN"
6720	//   "INJECTED_KERNELS_DEPRECATED"
6721	//   "LARGE_DEPLOYMENT_WARNING"
6722	//   "MISSING_TYPE_DEPENDENCY"
6723	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
6724	//   "NEXT_HOP_CANNOT_IP_FORWARD"
6725	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
6726	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
6727	//   "NEXT_HOP_NOT_RUNNING"
6728	//   "NOT_CRITICAL_ERROR"
6729	//   "NO_RESULTS_ON_PAGE"
6730	//   "PARTIAL_SUCCESS"
6731	//   "REQUIRED_TOS_AGREEMENT"
6732	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
6733	//   "RESOURCE_NOT_DELETED"
6734	//   "SCHEMA_VALIDATION_IGNORED"
6735	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
6736	//   "UNDECLARED_PROPERTIES"
6737	//   "UNREACHABLE"
6738	Code string `json:"code,omitempty"`
6739
6740	// Data: [Output Only] Metadata about this warning in key: value format.
6741	// For example:
6742	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
6743	Data []*CommitmentListWarningData `json:"data,omitempty"`
6744
6745	// Message: [Output Only] A human-readable description of the warning
6746	// code.
6747	Message string `json:"message,omitempty"`
6748
6749	// ForceSendFields is a list of field names (e.g. "Code") to
6750	// unconditionally include in API requests. By default, fields with
6751	// empty values are omitted from API requests. However, any non-pointer,
6752	// non-interface field appearing in ForceSendFields will be sent to the
6753	// server regardless of whether the field is empty or not. This may be
6754	// used to include empty fields in Patch requests.
6755	ForceSendFields []string `json:"-"`
6756
6757	// NullFields is a list of field names (e.g. "Code") to include in API
6758	// requests with the JSON null value. By default, fields with empty
6759	// values are omitted from API requests. However, any field with an
6760	// empty value appearing in NullFields will be sent to the server as
6761	// null. It is an error if a field in this list has a non-empty value.
6762	// This may be used to include null fields in Patch requests.
6763	NullFields []string `json:"-"`
6764}
6765
6766func (s *CommitmentListWarning) MarshalJSON() ([]byte, error) {
6767	type NoMethod CommitmentListWarning
6768	raw := NoMethod(*s)
6769	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6770}
6771
6772type CommitmentListWarningData struct {
6773	// Key: [Output Only] A key that provides more detail on the warning
6774	// being returned. For example, for warnings where there are no results
6775	// in a list request for a particular zone, this key might be scope and
6776	// the key value might be the zone name. Other examples might be a key
6777	// indicating a deprecated resource and a suggested replacement, or a
6778	// warning about invalid network settings (for example, if an instance
6779	// attempts to perform IP forwarding but is not enabled for IP
6780	// forwarding).
6781	Key string `json:"key,omitempty"`
6782
6783	// Value: [Output Only] A warning data value corresponding to the key.
6784	Value string `json:"value,omitempty"`
6785
6786	// ForceSendFields is a list of field names (e.g. "Key") to
6787	// unconditionally include in API requests. By default, fields with
6788	// empty values are omitted from API requests. However, any non-pointer,
6789	// non-interface field appearing in ForceSendFields will be sent to the
6790	// server regardless of whether the field is empty or not. This may be
6791	// used to include empty fields in Patch requests.
6792	ForceSendFields []string `json:"-"`
6793
6794	// NullFields is a list of field names (e.g. "Key") to include in API
6795	// requests with the JSON null value. By default, fields with empty
6796	// values are omitted from API requests. However, any field with an
6797	// empty value appearing in NullFields will be sent to the server as
6798	// null. It is an error if a field in this list has a non-empty value.
6799	// This may be used to include null fields in Patch requests.
6800	NullFields []string `json:"-"`
6801}
6802
6803func (s *CommitmentListWarningData) MarshalJSON() ([]byte, error) {
6804	type NoMethod CommitmentListWarningData
6805	raw := NoMethod(*s)
6806	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6807}
6808
6809type CommitmentsScopedList struct {
6810	// Commitments: [Output Only] A list of commitments contained in this
6811	// scope.
6812	Commitments []*Commitment `json:"commitments,omitempty"`
6813
6814	// Warning: [Output Only] Informational warning which replaces the list
6815	// of commitments when the list is empty.
6816	Warning *CommitmentsScopedListWarning `json:"warning,omitempty"`
6817
6818	// ForceSendFields is a list of field names (e.g. "Commitments") to
6819	// unconditionally include in API requests. By default, fields with
6820	// empty values are omitted from API requests. However, any non-pointer,
6821	// non-interface field appearing in ForceSendFields will be sent to the
6822	// server regardless of whether the field is empty or not. This may be
6823	// used to include empty fields in Patch requests.
6824	ForceSendFields []string `json:"-"`
6825
6826	// NullFields is a list of field names (e.g. "Commitments") to include
6827	// in API requests with the JSON null value. By default, fields with
6828	// empty values are omitted from API requests. However, any field with
6829	// an empty value appearing in NullFields will be sent to the server as
6830	// null. It is an error if a field in this list has a non-empty value.
6831	// This may be used to include null fields in Patch requests.
6832	NullFields []string `json:"-"`
6833}
6834
6835func (s *CommitmentsScopedList) MarshalJSON() ([]byte, error) {
6836	type NoMethod CommitmentsScopedList
6837	raw := NoMethod(*s)
6838	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6839}
6840
6841// CommitmentsScopedListWarning: [Output Only] Informational warning
6842// which replaces the list of commitments when the list is empty.
6843type CommitmentsScopedListWarning struct {
6844	// Code: [Output Only] A warning code, if applicable. For example,
6845	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
6846	// the response.
6847	//
6848	// Possible values:
6849	//   "CLEANUP_FAILED"
6850	//   "DEPRECATED_RESOURCE_USED"
6851	//   "DEPRECATED_TYPE_USED"
6852	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
6853	//   "EXPERIMENTAL_TYPE_USED"
6854	//   "EXTERNAL_API_WARNING"
6855	//   "FIELD_VALUE_OVERRIDEN"
6856	//   "INJECTED_KERNELS_DEPRECATED"
6857	//   "LARGE_DEPLOYMENT_WARNING"
6858	//   "MISSING_TYPE_DEPENDENCY"
6859	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
6860	//   "NEXT_HOP_CANNOT_IP_FORWARD"
6861	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
6862	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
6863	//   "NEXT_HOP_NOT_RUNNING"
6864	//   "NOT_CRITICAL_ERROR"
6865	//   "NO_RESULTS_ON_PAGE"
6866	//   "PARTIAL_SUCCESS"
6867	//   "REQUIRED_TOS_AGREEMENT"
6868	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
6869	//   "RESOURCE_NOT_DELETED"
6870	//   "SCHEMA_VALIDATION_IGNORED"
6871	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
6872	//   "UNDECLARED_PROPERTIES"
6873	//   "UNREACHABLE"
6874	Code string `json:"code,omitempty"`
6875
6876	// Data: [Output Only] Metadata about this warning in key: value format.
6877	// For example:
6878	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
6879	Data []*CommitmentsScopedListWarningData `json:"data,omitempty"`
6880
6881	// Message: [Output Only] A human-readable description of the warning
6882	// code.
6883	Message string `json:"message,omitempty"`
6884
6885	// ForceSendFields is a list of field names (e.g. "Code") to
6886	// unconditionally include in API requests. By default, fields with
6887	// empty values are omitted from API requests. However, any non-pointer,
6888	// non-interface field appearing in ForceSendFields will be sent to the
6889	// server regardless of whether the field is empty or not. This may be
6890	// used to include empty fields in Patch requests.
6891	ForceSendFields []string `json:"-"`
6892
6893	// NullFields is a list of field names (e.g. "Code") to include in API
6894	// requests with the JSON null value. By default, fields with empty
6895	// values are omitted from API requests. However, any field with an
6896	// empty value appearing in NullFields will be sent to the server as
6897	// null. It is an error if a field in this list has a non-empty value.
6898	// This may be used to include null fields in Patch requests.
6899	NullFields []string `json:"-"`
6900}
6901
6902func (s *CommitmentsScopedListWarning) MarshalJSON() ([]byte, error) {
6903	type NoMethod CommitmentsScopedListWarning
6904	raw := NoMethod(*s)
6905	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6906}
6907
6908type CommitmentsScopedListWarningData struct {
6909	// Key: [Output Only] A key that provides more detail on the warning
6910	// being returned. For example, for warnings where there are no results
6911	// in a list request for a particular zone, this key might be scope and
6912	// the key value might be the zone name. Other examples might be a key
6913	// indicating a deprecated resource and a suggested replacement, or a
6914	// warning about invalid network settings (for example, if an instance
6915	// attempts to perform IP forwarding but is not enabled for IP
6916	// forwarding).
6917	Key string `json:"key,omitempty"`
6918
6919	// Value: [Output Only] A warning data value corresponding to the key.
6920	Value string `json:"value,omitempty"`
6921
6922	// ForceSendFields is a list of field names (e.g. "Key") to
6923	// unconditionally include in API requests. By default, fields with
6924	// empty values are omitted from API requests. However, any non-pointer,
6925	// non-interface field appearing in ForceSendFields will be sent to the
6926	// server regardless of whether the field is empty or not. This may be
6927	// used to include empty fields in Patch requests.
6928	ForceSendFields []string `json:"-"`
6929
6930	// NullFields is a list of field names (e.g. "Key") to include in API
6931	// requests with the JSON null value. By default, fields with empty
6932	// values are omitted from API requests. However, any field with an
6933	// empty value appearing in NullFields will be sent to the server as
6934	// null. It is an error if a field in this list has a non-empty value.
6935	// This may be used to include null fields in Patch requests.
6936	NullFields []string `json:"-"`
6937}
6938
6939func (s *CommitmentsScopedListWarningData) MarshalJSON() ([]byte, error) {
6940	type NoMethod CommitmentsScopedListWarningData
6941	raw := NoMethod(*s)
6942	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6943}
6944
6945// Condition: A condition to be met.
6946type Condition struct {
6947	// Iam: Trusted attributes supplied by the IAM system.
6948	//
6949	// Possible values:
6950	//   "APPROVER"
6951	//   "ATTRIBUTION"
6952	//   "AUTHORITY"
6953	//   "CREDENTIALS_TYPE"
6954	//   "CREDS_ASSERTION"
6955	//   "JUSTIFICATION_TYPE"
6956	//   "NO_ATTR"
6957	//   "SECURITY_REALM"
6958	Iam string `json:"iam,omitempty"`
6959
6960	// Op: An operator to apply the subject with.
6961	//
6962	// Possible values:
6963	//   "DISCHARGED"
6964	//   "EQUALS"
6965	//   "IN"
6966	//   "NOT_EQUALS"
6967	//   "NOT_IN"
6968	//   "NO_OP"
6969	Op string `json:"op,omitempty"`
6970
6971	// Svc: Trusted attributes discharged by the service.
6972	Svc string `json:"svc,omitempty"`
6973
6974	// Sys: Trusted attributes supplied by any service that owns resources
6975	// and uses the IAM system for access control.
6976	//
6977	// Possible values:
6978	//   "IP"
6979	//   "NAME"
6980	//   "NO_ATTR"
6981	//   "REGION"
6982	//   "SERVICE"
6983	Sys string `json:"sys,omitempty"`
6984
6985	// Values: The objects of the condition.
6986	Values []string `json:"values,omitempty"`
6987
6988	// ForceSendFields is a list of field names (e.g. "Iam") to
6989	// unconditionally include in API requests. By default, fields with
6990	// empty values are omitted from API requests. However, any non-pointer,
6991	// non-interface field appearing in ForceSendFields will be sent to the
6992	// server regardless of whether the field is empty or not. This may be
6993	// used to include empty fields in Patch requests.
6994	ForceSendFields []string `json:"-"`
6995
6996	// NullFields is a list of field names (e.g. "Iam") to include in API
6997	// requests with the JSON null value. By default, fields with empty
6998	// values are omitted from API requests. However, any field with an
6999	// empty value appearing in NullFields will be sent to the server as
7000	// null. It is an error if a field in this list has a non-empty value.
7001	// This may be used to include null fields in Patch requests.
7002	NullFields []string `json:"-"`
7003}
7004
7005func (s *Condition) MarshalJSON() ([]byte, error) {
7006	type NoMethod Condition
7007	raw := NoMethod(*s)
7008	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7009}
7010
7011// ConfidentialInstanceConfig: A set of Confidential Instance options.
7012type ConfidentialInstanceConfig struct {
7013	// EnableConfidentialCompute: Defines whether the instance should have
7014	// confidential compute enabled.
7015	EnableConfidentialCompute bool `json:"enableConfidentialCompute,omitempty"`
7016
7017	// ForceSendFields is a list of field names (e.g.
7018	// "EnableConfidentialCompute") to unconditionally include in API
7019	// requests. By default, fields with empty values are omitted from API
7020	// requests. However, any non-pointer, non-interface field appearing in
7021	// ForceSendFields will be sent to the server regardless of whether the
7022	// field is empty or not. This may be used to include empty fields in
7023	// Patch requests.
7024	ForceSendFields []string `json:"-"`
7025
7026	// NullFields is a list of field names (e.g.
7027	// "EnableConfidentialCompute") to include in API requests with the JSON
7028	// null value. By default, fields with empty values are omitted from API
7029	// requests. However, any field with an empty value appearing in
7030	// NullFields will be sent to the server as null. It is an error if a
7031	// field in this list has a non-empty value. This may be used to include
7032	// null fields in Patch requests.
7033	NullFields []string `json:"-"`
7034}
7035
7036func (s *ConfidentialInstanceConfig) MarshalJSON() ([]byte, error) {
7037	type NoMethod ConfidentialInstanceConfig
7038	raw := NoMethod(*s)
7039	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7040}
7041
7042// ConnectionDraining: Message containing connection draining
7043// configuration.
7044type ConnectionDraining struct {
7045	// DrainingTimeoutSec: Configures a duration timeout for existing
7046	// requests on a removed backend instance. For supported load balancers
7047	// and protocols, as described in Enabling connection draining.
7048	DrainingTimeoutSec int64 `json:"drainingTimeoutSec,omitempty"`
7049
7050	// ForceSendFields is a list of field names (e.g. "DrainingTimeoutSec")
7051	// to unconditionally include in API requests. By default, fields with
7052	// empty values are omitted from API requests. However, any non-pointer,
7053	// non-interface field appearing in ForceSendFields will be sent to the
7054	// server regardless of whether the field is empty or not. This may be
7055	// used to include empty fields in Patch requests.
7056	ForceSendFields []string `json:"-"`
7057
7058	// NullFields is a list of field names (e.g. "DrainingTimeoutSec") to
7059	// include in API requests with the JSON null value. By default, fields
7060	// with empty values are omitted from API requests. However, any field
7061	// with an empty value appearing in NullFields will be sent to the
7062	// server as null. It is an error if a field in this list has a
7063	// non-empty value. This may be used to include null fields in Patch
7064	// requests.
7065	NullFields []string `json:"-"`
7066}
7067
7068func (s *ConnectionDraining) MarshalJSON() ([]byte, error) {
7069	type NoMethod ConnectionDraining
7070	raw := NoMethod(*s)
7071	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7072}
7073
7074// ConsistentHashLoadBalancerSettings: This message defines settings for
7075// a consistent hash style load balancer.
7076type ConsistentHashLoadBalancerSettings struct {
7077	// HttpCookie: Hash is based on HTTP Cookie. This field describes a HTTP
7078	// cookie that will be used as the hash key for the consistent hash load
7079	// balancer. If the cookie is not present, it will be generated. This
7080	// field is applicable if the sessionAffinity is set to HTTP_COOKIE.
7081	HttpCookie *ConsistentHashLoadBalancerSettingsHttpCookie `json:"httpCookie,omitempty"`
7082
7083	// HttpHeaderName: The hash based on the value of the specified header
7084	// field. This field is applicable if the sessionAffinity is set to
7085	// HEADER_FIELD.
7086	HttpHeaderName string `json:"httpHeaderName,omitempty"`
7087
7088	// MinimumRingSize: The minimum number of virtual nodes to use for the
7089	// hash ring. Defaults to 1024. Larger ring sizes result in more
7090	// granular load distributions. If the number of hosts in the load
7091	// balancing pool is larger than the ring size, each host will be
7092	// assigned a single virtual node.
7093	MinimumRingSize int64 `json:"minimumRingSize,omitempty,string"`
7094
7095	// ForceSendFields is a list of field names (e.g. "HttpCookie") to
7096	// unconditionally include in API requests. By default, fields with
7097	// empty values are omitted from API requests. However, any non-pointer,
7098	// non-interface field appearing in ForceSendFields will be sent to the
7099	// server regardless of whether the field is empty or not. This may be
7100	// used to include empty fields in Patch requests.
7101	ForceSendFields []string `json:"-"`
7102
7103	// NullFields is a list of field names (e.g. "HttpCookie") to include in
7104	// API requests with the JSON null value. By default, fields with empty
7105	// values are omitted from API requests. However, any field with an
7106	// empty value appearing in NullFields will be sent to the server as
7107	// null. It is an error if a field in this list has a non-empty value.
7108	// This may be used to include null fields in Patch requests.
7109	NullFields []string `json:"-"`
7110}
7111
7112func (s *ConsistentHashLoadBalancerSettings) MarshalJSON() ([]byte, error) {
7113	type NoMethod ConsistentHashLoadBalancerSettings
7114	raw := NoMethod(*s)
7115	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7116}
7117
7118// ConsistentHashLoadBalancerSettingsHttpCookie: The information about
7119// the HTTP Cookie on which the hash function is based for load
7120// balancing policies that use a consistent hash.
7121type ConsistentHashLoadBalancerSettingsHttpCookie struct {
7122	// Name: Name of the cookie.
7123	Name string `json:"name,omitempty"`
7124
7125	// Path: Path to set for the cookie.
7126	Path string `json:"path,omitempty"`
7127
7128	// Ttl: Lifetime of the cookie.
7129	Ttl *Duration `json:"ttl,omitempty"`
7130
7131	// ForceSendFields is a list of field names (e.g. "Name") to
7132	// unconditionally include in API requests. By default, fields with
7133	// empty values are omitted from API requests. However, any non-pointer,
7134	// non-interface field appearing in ForceSendFields will be sent to the
7135	// server regardless of whether the field is empty or not. This may be
7136	// used to include empty fields in Patch requests.
7137	ForceSendFields []string `json:"-"`
7138
7139	// NullFields is a list of field names (e.g. "Name") to include in API
7140	// requests with the JSON null value. By default, fields with empty
7141	// values are omitted from API requests. However, any field with an
7142	// empty value appearing in NullFields will be sent to the server as
7143	// null. It is an error if a field in this list has a non-empty value.
7144	// This may be used to include null fields in Patch requests.
7145	NullFields []string `json:"-"`
7146}
7147
7148func (s *ConsistentHashLoadBalancerSettingsHttpCookie) MarshalJSON() ([]byte, error) {
7149	type NoMethod ConsistentHashLoadBalancerSettingsHttpCookie
7150	raw := NoMethod(*s)
7151	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7152}
7153
7154// CorsPolicy: The specification for allowing client side cross-origin
7155// requests. Please see W3C Recommendation for Cross Origin Resource
7156// Sharing
7157type CorsPolicy struct {
7158	// AllowCredentials: In response to a preflight request, setting this to
7159	// true indicates that the actual request can include user credentials.
7160	// This translates to the Access-Control-Allow-Credentials
7161	// header.
7162	// Default is false.
7163	AllowCredentials bool `json:"allowCredentials,omitempty"`
7164
7165	// AllowHeaders: Specifies the content for the
7166	// Access-Control-Allow-Headers header.
7167	AllowHeaders []string `json:"allowHeaders,omitempty"`
7168
7169	// AllowMethods: Specifies the content for the
7170	// Access-Control-Allow-Methods header.
7171	AllowMethods []string `json:"allowMethods,omitempty"`
7172
7173	// AllowOriginRegexes: Specifies the regualar expression patterns that
7174	// match allowed origins. For regular expression grammar please see
7175	// github.com/google/re2/wiki/Syntax
7176	// An origin is allowed if it matches either an item in allowOrigins or
7177	// an item in allowOriginRegexes.
7178	AllowOriginRegexes []string `json:"allowOriginRegexes,omitempty"`
7179
7180	// AllowOrigins: Specifies the list of origins that will be allowed to
7181	// do CORS requests.
7182	// An origin is allowed if it matches either an item in allowOrigins or
7183	// an item in allowOriginRegexes.
7184	AllowOrigins []string `json:"allowOrigins,omitempty"`
7185
7186	// Disabled: If true, specifies the CORS policy is disabled. The default
7187	// value of false, which indicates that the CORS policy is in effect.
7188	Disabled bool `json:"disabled,omitempty"`
7189
7190	// ExposeHeaders: Specifies the content for the
7191	// Access-Control-Expose-Headers header.
7192	ExposeHeaders []string `json:"exposeHeaders,omitempty"`
7193
7194	// MaxAge: Specifies how long results of a preflight request can be
7195	// cached in seconds. This translates to the Access-Control-Max-Age
7196	// header.
7197	MaxAge int64 `json:"maxAge,omitempty"`
7198
7199	// ForceSendFields is a list of field names (e.g. "AllowCredentials") to
7200	// unconditionally include in API requests. By default, fields with
7201	// empty values are omitted from API requests. However, any non-pointer,
7202	// non-interface field appearing in ForceSendFields will be sent to the
7203	// server regardless of whether the field is empty or not. This may be
7204	// used to include empty fields in Patch requests.
7205	ForceSendFields []string `json:"-"`
7206
7207	// NullFields is a list of field names (e.g. "AllowCredentials") to
7208	// include in API requests with the JSON null value. By default, fields
7209	// with empty values are omitted from API requests. However, any field
7210	// with an empty value appearing in NullFields will be sent to the
7211	// server as null. It is an error if a field in this list has a
7212	// non-empty value. This may be used to include null fields in Patch
7213	// requests.
7214	NullFields []string `json:"-"`
7215}
7216
7217func (s *CorsPolicy) MarshalJSON() ([]byte, error) {
7218	type NoMethod CorsPolicy
7219	raw := NoMethod(*s)
7220	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7221}
7222
7223type CustomerEncryptionKey struct {
7224	// KmsKeyName: The name of the encryption key that is stored in Google
7225	// Cloud KMS.
7226	KmsKeyName string `json:"kmsKeyName,omitempty"`
7227
7228	// KmsKeyServiceAccount: The service account being used for the
7229	// encryption request for the given KMS key. If absent, the Compute
7230	// Engine default service account is used.
7231	KmsKeyServiceAccount string `json:"kmsKeyServiceAccount,omitempty"`
7232
7233	// RawKey: Specifies a 256-bit customer-supplied encryption key, encoded
7234	// in RFC 4648 base64 to either encrypt or decrypt this resource.
7235	RawKey string `json:"rawKey,omitempty"`
7236
7237	// Sha256: [Output only] The RFC 4648 base64 encoded SHA-256 hash of the
7238	// customer-supplied encryption key that protects this resource.
7239	Sha256 string `json:"sha256,omitempty"`
7240
7241	// ForceSendFields is a list of field names (e.g. "KmsKeyName") to
7242	// unconditionally include in API requests. By default, fields with
7243	// empty values are omitted from API requests. However, any non-pointer,
7244	// non-interface field appearing in ForceSendFields will be sent to the
7245	// server regardless of whether the field is empty or not. This may be
7246	// used to include empty fields in Patch requests.
7247	ForceSendFields []string `json:"-"`
7248
7249	// NullFields is a list of field names (e.g. "KmsKeyName") to include in
7250	// API requests with the JSON null value. By default, fields with empty
7251	// values are omitted from API requests. However, any field with an
7252	// empty value appearing in NullFields will be sent to the server as
7253	// null. It is an error if a field in this list has a non-empty value.
7254	// This may be used to include null fields in Patch requests.
7255	NullFields []string `json:"-"`
7256}
7257
7258func (s *CustomerEncryptionKey) MarshalJSON() ([]byte, error) {
7259	type NoMethod CustomerEncryptionKey
7260	raw := NoMethod(*s)
7261	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7262}
7263
7264type CustomerEncryptionKeyProtectedDisk struct {
7265	// DiskEncryptionKey: Decrypts data associated with the disk with a
7266	// customer-supplied encryption key.
7267	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
7268
7269	// Source: Specifies a valid partial or full URL to an existing
7270	// Persistent Disk resource. This field is only applicable for
7271	// persistent disks.
7272	Source string `json:"source,omitempty"`
7273
7274	// ForceSendFields is a list of field names (e.g. "DiskEncryptionKey")
7275	// to unconditionally include in API requests. By default, fields with
7276	// empty values are omitted from API requests. However, any non-pointer,
7277	// non-interface field appearing in ForceSendFields will be sent to the
7278	// server regardless of whether the field is empty or not. This may be
7279	// used to include empty fields in Patch requests.
7280	ForceSendFields []string `json:"-"`
7281
7282	// NullFields is a list of field names (e.g. "DiskEncryptionKey") to
7283	// include in API requests with the JSON null value. By default, fields
7284	// with empty values are omitted from API requests. However, any field
7285	// with an empty value appearing in NullFields will be sent to the
7286	// server as null. It is an error if a field in this list has a
7287	// non-empty value. This may be used to include null fields in Patch
7288	// requests.
7289	NullFields []string `json:"-"`
7290}
7291
7292func (s *CustomerEncryptionKeyProtectedDisk) MarshalJSON() ([]byte, error) {
7293	type NoMethod CustomerEncryptionKeyProtectedDisk
7294	raw := NoMethod(*s)
7295	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7296}
7297
7298// DeprecationStatus: Deprecation status for a public resource.
7299type DeprecationStatus struct {
7300	// Deleted: An optional RFC3339 timestamp on or after which the state of
7301	// this resource is intended to change to DELETED. This is only
7302	// informational and the status will not change unless the client
7303	// explicitly changes it.
7304	Deleted string `json:"deleted,omitempty"`
7305
7306	// Deprecated -- An optional RFC3339 timestamp on or after which the
7307	// state of this resource is intended to change to DEPRECATED. This is
7308	// only informational and the status will not change unless the client
7309	// explicitly changes it.
7310	Deprecated string `json:"deprecated,omitempty"`
7311
7312	// Obsolete: An optional RFC3339 timestamp on or after which the state
7313	// of this resource is intended to change to OBSOLETE. This is only
7314	// informational and the status will not change unless the client
7315	// explicitly changes it.
7316	Obsolete string `json:"obsolete,omitempty"`
7317
7318	// Replacement: The URL of the suggested replacement for a deprecated
7319	// resource. The suggested replacement resource must be the same kind of
7320	// resource as the deprecated resource.
7321	Replacement string `json:"replacement,omitempty"`
7322
7323	// State: The deprecation state of this resource. This can be ACTIVE,
7324	// DEPRECATED, OBSOLETE, or DELETED. Operations which communicate the
7325	// end of life date for an image, can use ACTIVE. Operations which
7326	// create a new resource using a DEPRECATED resource will return
7327	// successfully, but with a warning indicating the deprecated resource
7328	// and recommending its replacement. Operations which use OBSOLETE or
7329	// DELETED resources will be rejected and result in an error.
7330	//
7331	// Possible values:
7332	//   "ACTIVE"
7333	//   "DELETED"
7334	//   "DEPRECATED"
7335	//   "OBSOLETE"
7336	State string `json:"state,omitempty"`
7337
7338	// ForceSendFields is a list of field names (e.g. "Deleted") to
7339	// unconditionally include in API requests. By default, fields with
7340	// empty values are omitted from API requests. However, any non-pointer,
7341	// non-interface field appearing in ForceSendFields will be sent to the
7342	// server regardless of whether the field is empty or not. This may be
7343	// used to include empty fields in Patch requests.
7344	ForceSendFields []string `json:"-"`
7345
7346	// NullFields is a list of field names (e.g. "Deleted") to include in
7347	// API requests with the JSON null value. By default, fields with empty
7348	// values are omitted from API requests. However, any field with an
7349	// empty value appearing in NullFields will be sent to the server as
7350	// null. It is an error if a field in this list has a non-empty value.
7351	// This may be used to include null fields in Patch requests.
7352	NullFields []string `json:"-"`
7353}
7354
7355func (s *DeprecationStatus) MarshalJSON() ([]byte, error) {
7356	type NoMethod DeprecationStatus
7357	raw := NoMethod(*s)
7358	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7359}
7360
7361// Disk: Represents a Persistent Disk resource.
7362//
7363// Google Compute Engine has two Disk resources:
7364//
7365// * Zonal (/compute/docs/reference/rest/{$api_version}/disks) *
7366// Regional
7367// (/compute/docs/reference/rest/{$api_version}/regionDisks)
7368//
7369// Persistent disks are required for running your VM instances. Create
7370// both boot and non-boot (data) persistent disks. For more information,
7371// read Persistent Disks. For more storage options, read Storage
7372// options.
7373//
7374// The disks resource represents a zonal persistent disk. For more
7375// information, read Zonal persistent disks.
7376//
7377// The regionDisks resource represents a regional persistent disk. For
7378// more information, read  Regional resources. (== resource_for
7379// {$api_version}.disks ==) (== resource_for {$api_version}.regionDisks
7380// ==)
7381type Disk struct {
7382	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
7383	// format.
7384	CreationTimestamp string `json:"creationTimestamp,omitempty"`
7385
7386	// Description: An optional description of this resource. Provide this
7387	// property when you create the resource.
7388	Description string `json:"description,omitempty"`
7389
7390	// DiskEncryptionKey: Encrypts the disk using a customer-supplied
7391	// encryption key.
7392	//
7393	// After you encrypt a disk with a customer-supplied key, you must
7394	// provide the same key if you use the disk later (e.g. to create a disk
7395	// snapshot, to create a disk image, to create a machine image, or to
7396	// attach the disk to a virtual machine).
7397	//
7398	// Customer-supplied encryption keys do not protect access to metadata
7399	// of the disk.
7400	//
7401	// If you do not provide an encryption key when creating the disk, then
7402	// the disk will be encrypted using an automatically generated key and
7403	// you do not need to provide a key to use the disk later.
7404	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
7405
7406	// GuestOsFeatures: A list of features to enable on the guest operating
7407	// system. Applicable only for bootable images. Read  Enabling guest
7408	// operating system features to see a list of available options.
7409	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
7410
7411	// Id: [Output Only] The unique identifier for the resource. This
7412	// identifier is defined by the server.
7413	Id uint64 `json:"id,omitempty,string"`
7414
7415	// Kind: [Output Only] Type of the resource. Always compute#disk for
7416	// disks.
7417	Kind string `json:"kind,omitempty"`
7418
7419	// LabelFingerprint: A fingerprint for the labels being applied to this
7420	// disk, which is essentially a hash of the labels set used for
7421	// optimistic locking. The fingerprint is initially generated by Compute
7422	// Engine and changes after every request to modify or update labels.
7423	// You must always provide an up-to-date fingerprint hash in order to
7424	// update or change labels, otherwise the request will fail with error
7425	// 412 conditionNotMet.
7426	//
7427	// To see the latest fingerprint, make a get() request to retrieve a
7428	// disk.
7429	LabelFingerprint string `json:"labelFingerprint,omitempty"`
7430
7431	// Labels: Labels to apply to this disk. These can be later modified by
7432	// the setLabels method.
7433	Labels map[string]string `json:"labels,omitempty"`
7434
7435	// LastAttachTimestamp: [Output Only] Last attach timestamp in RFC3339
7436	// text format.
7437	LastAttachTimestamp string `json:"lastAttachTimestamp,omitempty"`
7438
7439	// LastDetachTimestamp: [Output Only] Last detach timestamp in RFC3339
7440	// text format.
7441	LastDetachTimestamp string `json:"lastDetachTimestamp,omitempty"`
7442
7443	// LicenseCodes: Integer license codes indicating which licenses are
7444	// attached to this disk.
7445	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
7446
7447	// Licenses: A list of publicly visible licenses. Reserved for Google's
7448	// use.
7449	Licenses []string `json:"licenses,omitempty"`
7450
7451	// LocationHint: An opaque location hint used to place the disk close to
7452	// other resources. This field is for use by internal tools that use the
7453	// public API.
7454	LocationHint string `json:"locationHint,omitempty"`
7455
7456	// Name: Name of the resource. Provided by the client when the resource
7457	// is created. The name must be 1-63 characters long, and comply with
7458	// RFC1035. Specifically, the name must be 1-63 characters long and
7459	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
7460	// the first character must be a lowercase letter, and all following
7461	// characters must be a dash, lowercase letter, or digit, except the
7462	// last character, which cannot be a dash.
7463	Name string `json:"name,omitempty"`
7464
7465	// Options: Internal use only.
7466	Options string `json:"options,omitempty"`
7467
7468	// PhysicalBlockSizeBytes: Physical block size of the persistent disk,
7469	// in bytes. If not present in a request, a default value is used. The
7470	// currently supported size is 4096, other sizes may be added in the
7471	// future. If an unsupported value is requested, the error message will
7472	// list the supported values for the caller's project.
7473	PhysicalBlockSizeBytes int64 `json:"physicalBlockSizeBytes,omitempty,string"`
7474
7475	// ProvisionedIops: Indicates how many IOPS must be provisioned for the
7476	// disk.
7477	ProvisionedIops int64 `json:"provisionedIops,omitempty,string"`
7478
7479	// Region: [Output Only] URL of the region where the disk resides. Only
7480	// applicable for regional resources. You must specify this field as
7481	// part of the HTTP request URL. It is not settable as a field in the
7482	// request body.
7483	Region string `json:"region,omitempty"`
7484
7485	// ReplicaZones: URLs of the zones where the disk should be replicated
7486	// to. Only applicable for regional resources.
7487	ReplicaZones []string `json:"replicaZones,omitempty"`
7488
7489	// ResourcePolicies: Resource policies applied to this disk for
7490	// automatic snapshot creations.
7491	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
7492
7493	// SatisfiesPzs: [Output Only] Reserved for future use.
7494	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
7495
7496	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
7497	// resource.
7498	SelfLink string `json:"selfLink,omitempty"`
7499
7500	// SizeGb: Size, in GB, of the persistent disk. You can specify this
7501	// field when creating a persistent disk using the sourceImage,
7502	// sourceSnapshot, or sourceDisk parameter, or specify it alone to
7503	// create an empty persistent disk.
7504	//
7505	// If you specify this field along with a source, the value of sizeGb
7506	// must not be less than the size of the source. Acceptable values are 1
7507	// to 65536, inclusive.
7508	SizeGb int64 `json:"sizeGb,omitempty,string"`
7509
7510	// SourceDisk: The source disk used to create this disk. You can provide
7511	// this as a partial or full URL to the resource. For example, the
7512	// following are valid values:
7513	// -
7514	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
7515	//
7516	// -
7517	// https://www.googleapis.com/compute/v1/projects/project/regions/region/disks/disk
7518	//
7519	// - projects/project/zones/zone/disks/disk
7520	// - projects/project/regions/region/disks/disk
7521	// - zones/zone/disks/disk
7522	// - regions/region/disks/disk
7523	SourceDisk string `json:"sourceDisk,omitempty"`
7524
7525	// SourceDiskId: [Output Only] The unique ID of the disk used to create
7526	// this disk. This value identifies the exact disk that was used to
7527	// create this persistent disk. For example, if you created the
7528	// persistent disk from a disk that was later deleted and recreated
7529	// under the same name, the source disk ID would identify the exact
7530	// version of the disk that was used.
7531	SourceDiskId string `json:"sourceDiskId,omitempty"`
7532
7533	// SourceImage: The source image used to create this disk. If the source
7534	// image is deleted, this field will not be set.
7535	//
7536	// To create a disk with one of the public operating system images,
7537	// specify the image by its family name. For example, specify
7538	// family/debian-9 to use the latest Debian 9
7539	// image:
7540	// projects/debian-cloud/global/images/family/debian-9
7541	//
7542	//
7543	// Alternatively, use a specific version of a public operating system
7544	// image:
7545	// projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD
7546	//
7547	//
7548	// To create a disk with a custom image that you created, specify the
7549	// image name in the following
7550	// format:
7551	// global/images/my-custom-image
7552	//
7553	//
7554	// You can also specify a custom image by its image family, which
7555	// returns the latest version of the image in that family. Replace the
7556	// image name with
7557	// family/family-name:
7558	// global/images/family/my-image-family
7559	SourceImage string `json:"sourceImage,omitempty"`
7560
7561	// SourceImageEncryptionKey: The customer-supplied encryption key of the
7562	// source image. Required if the source image is protected by a
7563	// customer-supplied encryption key.
7564	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
7565
7566	// SourceImageId: [Output Only] The ID value of the image used to create
7567	// this disk. This value identifies the exact image that was used to
7568	// create this persistent disk. For example, if you created the
7569	// persistent disk from an image that was later deleted and recreated
7570	// under the same name, the source image ID would identify the exact
7571	// version of the image that was used.
7572	SourceImageId string `json:"sourceImageId,omitempty"`
7573
7574	// SourceSnapshot: The source snapshot used to create this disk. You can
7575	// provide this as a partial or full URL to the resource. For example,
7576	// the following are valid values:
7577	// -
7578	// https://www.googleapis.com/compute/v1/projects/project/global/snapshots/snapshot
7579	//
7580	// - projects/project/global/snapshots/snapshot
7581	// - global/snapshots/snapshot
7582	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
7583
7584	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of
7585	// the source snapshot. Required if the source snapshot is protected by
7586	// a customer-supplied encryption key.
7587	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
7588
7589	// SourceSnapshotId: [Output Only] The unique ID of the snapshot used to
7590	// create this disk. This value identifies the exact snapshot that was
7591	// used to create this persistent disk. For example, if you created the
7592	// persistent disk from a snapshot that was later deleted and recreated
7593	// under the same name, the source snapshot ID would identify the exact
7594	// version of the snapshot that was used.
7595	SourceSnapshotId string `json:"sourceSnapshotId,omitempty"`
7596
7597	// SourceStorageObject: The full Google Cloud Storage URI where the disk
7598	// image is stored. This file must be a gzip-compressed tarball whose
7599	// name ends in .tar.gz or virtual machine disk whose name ends in vmdk.
7600	// Valid URIs may start with gs:// or https://storage.googleapis.com/.
7601	// This flag is not optimized for creating multiple disks from a source
7602	// storage object. To create many disks from a source storage object,
7603	// use gcloud compute images import instead.
7604	SourceStorageObject string `json:"sourceStorageObject,omitempty"`
7605
7606	// Status: [Output Only] The status of disk creation.
7607	// - CREATING: Disk is provisioning.
7608	// - RESTORING: Source data is being copied into the disk.
7609	// - FAILED: Disk creation failed.
7610	// - READY: Disk is ready for use.
7611	// - DELETING: Disk is deleting.
7612	//
7613	// Possible values:
7614	//   "CREATING"
7615	//   "DELETING"
7616	//   "FAILED"
7617	//   "READY"
7618	//   "RESTORING"
7619	Status string `json:"status,omitempty"`
7620
7621	// Type: URL of the disk type resource describing which disk type to use
7622	// to create the disk. Provide this when creating the disk. For example:
7623	// projects/project/zones/zone/diskTypes/pd-standard  or pd-ssd
7624	Type string `json:"type,omitempty"`
7625
7626	// Users: [Output Only] Links to the users of the disk (attached
7627	// instances) in form: projects/project/zones/zone/instances/instance
7628	Users []string `json:"users,omitempty"`
7629
7630	// Zone: [Output Only] URL of the zone where the disk resides. You must
7631	// specify this field as part of the HTTP request URL. It is not
7632	// settable as a field in the request body.
7633	Zone string `json:"zone,omitempty"`
7634
7635	// ServerResponse contains the HTTP response code and headers from the
7636	// server.
7637	googleapi.ServerResponse `json:"-"`
7638
7639	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
7640	// to unconditionally include in API requests. By default, fields with
7641	// empty values are omitted from API requests. However, any non-pointer,
7642	// non-interface field appearing in ForceSendFields will be sent to the
7643	// server regardless of whether the field is empty or not. This may be
7644	// used to include empty fields in Patch requests.
7645	ForceSendFields []string `json:"-"`
7646
7647	// NullFields is a list of field names (e.g. "CreationTimestamp") to
7648	// include in API requests with the JSON null value. By default, fields
7649	// with empty values are omitted from API requests. However, any field
7650	// with an empty value appearing in NullFields will be sent to the
7651	// server as null. It is an error if a field in this list has a
7652	// non-empty value. This may be used to include null fields in Patch
7653	// requests.
7654	NullFields []string `json:"-"`
7655}
7656
7657func (s *Disk) MarshalJSON() ([]byte, error) {
7658	type NoMethod Disk
7659	raw := NoMethod(*s)
7660	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7661}
7662
7663type DiskAggregatedList struct {
7664	// Id: [Output Only] Unique identifier for the resource; defined by the
7665	// server.
7666	Id string `json:"id,omitempty"`
7667
7668	// Items: A list of DisksScopedList resources.
7669	Items map[string]DisksScopedList `json:"items,omitempty"`
7670
7671	// Kind: [Output Only] Type of resource. Always
7672	// compute#diskAggregatedList for aggregated lists of persistent disks.
7673	Kind string `json:"kind,omitempty"`
7674
7675	// NextPageToken: [Output Only] This token allows you to get the next
7676	// page of results for list requests. If the number of results is larger
7677	// than maxResults, use the nextPageToken as a value for the query
7678	// parameter pageToken in the next list request. Subsequent list
7679	// requests will have their own nextPageToken to continue paging through
7680	// the results.
7681	NextPageToken string `json:"nextPageToken,omitempty"`
7682
7683	// SelfLink: [Output Only] Server-defined URL for this resource.
7684	SelfLink string `json:"selfLink,omitempty"`
7685
7686	// Unreachables: [Output Only] Unreachable resources.
7687	Unreachables []string `json:"unreachables,omitempty"`
7688
7689	// Warning: [Output Only] Informational warning message.
7690	Warning *DiskAggregatedListWarning `json:"warning,omitempty"`
7691
7692	// ServerResponse contains the HTTP response code and headers from the
7693	// server.
7694	googleapi.ServerResponse `json:"-"`
7695
7696	// ForceSendFields is a list of field names (e.g. "Id") to
7697	// unconditionally include in API requests. By default, fields with
7698	// empty values are omitted from API requests. However, any non-pointer,
7699	// non-interface field appearing in ForceSendFields will be sent to the
7700	// server regardless of whether the field is empty or not. This may be
7701	// used to include empty fields in Patch requests.
7702	ForceSendFields []string `json:"-"`
7703
7704	// NullFields is a list of field names (e.g. "Id") to include in API
7705	// requests with the JSON null value. By default, fields with empty
7706	// values are omitted from API requests. However, any field with an
7707	// empty value appearing in NullFields will be sent to the server as
7708	// null. It is an error if a field in this list has a non-empty value.
7709	// This may be used to include null fields in Patch requests.
7710	NullFields []string `json:"-"`
7711}
7712
7713func (s *DiskAggregatedList) MarshalJSON() ([]byte, error) {
7714	type NoMethod DiskAggregatedList
7715	raw := NoMethod(*s)
7716	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7717}
7718
7719// DiskAggregatedListWarning: [Output Only] Informational warning
7720// message.
7721type DiskAggregatedListWarning struct {
7722	// Code: [Output Only] A warning code, if applicable. For example,
7723	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7724	// the response.
7725	//
7726	// Possible values:
7727	//   "CLEANUP_FAILED"
7728	//   "DEPRECATED_RESOURCE_USED"
7729	//   "DEPRECATED_TYPE_USED"
7730	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
7731	//   "EXPERIMENTAL_TYPE_USED"
7732	//   "EXTERNAL_API_WARNING"
7733	//   "FIELD_VALUE_OVERRIDEN"
7734	//   "INJECTED_KERNELS_DEPRECATED"
7735	//   "LARGE_DEPLOYMENT_WARNING"
7736	//   "MISSING_TYPE_DEPENDENCY"
7737	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
7738	//   "NEXT_HOP_CANNOT_IP_FORWARD"
7739	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
7740	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
7741	//   "NEXT_HOP_NOT_RUNNING"
7742	//   "NOT_CRITICAL_ERROR"
7743	//   "NO_RESULTS_ON_PAGE"
7744	//   "PARTIAL_SUCCESS"
7745	//   "REQUIRED_TOS_AGREEMENT"
7746	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
7747	//   "RESOURCE_NOT_DELETED"
7748	//   "SCHEMA_VALIDATION_IGNORED"
7749	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
7750	//   "UNDECLARED_PROPERTIES"
7751	//   "UNREACHABLE"
7752	Code string `json:"code,omitempty"`
7753
7754	// Data: [Output Only] Metadata about this warning in key: value format.
7755	// For example:
7756	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
7757	Data []*DiskAggregatedListWarningData `json:"data,omitempty"`
7758
7759	// Message: [Output Only] A human-readable description of the warning
7760	// code.
7761	Message string `json:"message,omitempty"`
7762
7763	// ForceSendFields is a list of field names (e.g. "Code") to
7764	// unconditionally include in API requests. By default, fields with
7765	// empty values are omitted from API requests. However, any non-pointer,
7766	// non-interface field appearing in ForceSendFields will be sent to the
7767	// server regardless of whether the field is empty or not. This may be
7768	// used to include empty fields in Patch requests.
7769	ForceSendFields []string `json:"-"`
7770
7771	// NullFields is a list of field names (e.g. "Code") to include in API
7772	// requests with the JSON null value. By default, fields with empty
7773	// values are omitted from API requests. However, any field with an
7774	// empty value appearing in NullFields will be sent to the server as
7775	// null. It is an error if a field in this list has a non-empty value.
7776	// This may be used to include null fields in Patch requests.
7777	NullFields []string `json:"-"`
7778}
7779
7780func (s *DiskAggregatedListWarning) MarshalJSON() ([]byte, error) {
7781	type NoMethod DiskAggregatedListWarning
7782	raw := NoMethod(*s)
7783	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7784}
7785
7786type DiskAggregatedListWarningData struct {
7787	// Key: [Output Only] A key that provides more detail on the warning
7788	// being returned. For example, for warnings where there are no results
7789	// in a list request for a particular zone, this key might be scope and
7790	// the key value might be the zone name. Other examples might be a key
7791	// indicating a deprecated resource and a suggested replacement, or a
7792	// warning about invalid network settings (for example, if an instance
7793	// attempts to perform IP forwarding but is not enabled for IP
7794	// forwarding).
7795	Key string `json:"key,omitempty"`
7796
7797	// Value: [Output Only] A warning data value corresponding to the key.
7798	Value string `json:"value,omitempty"`
7799
7800	// ForceSendFields is a list of field names (e.g. "Key") to
7801	// unconditionally include in API requests. By default, fields with
7802	// empty values are omitted from API requests. However, any non-pointer,
7803	// non-interface field appearing in ForceSendFields will be sent to the
7804	// server regardless of whether the field is empty or not. This may be
7805	// used to include empty fields in Patch requests.
7806	ForceSendFields []string `json:"-"`
7807
7808	// NullFields is a list of field names (e.g. "Key") to include in API
7809	// requests with the JSON null value. By default, fields with empty
7810	// values are omitted from API requests. However, any field with an
7811	// empty value appearing in NullFields will be sent to the server as
7812	// null. It is an error if a field in this list has a non-empty value.
7813	// This may be used to include null fields in Patch requests.
7814	NullFields []string `json:"-"`
7815}
7816
7817func (s *DiskAggregatedListWarningData) MarshalJSON() ([]byte, error) {
7818	type NoMethod DiskAggregatedListWarningData
7819	raw := NoMethod(*s)
7820	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7821}
7822
7823// DiskInstantiationConfig: A specification of the desired way to
7824// instantiate a disk in the instance template when its created from a
7825// source instance.
7826type DiskInstantiationConfig struct {
7827	// AutoDelete: Specifies whether the disk will be auto-deleted when the
7828	// instance is deleted (but not when the disk is detached from the
7829	// instance).
7830	AutoDelete bool `json:"autoDelete,omitempty"`
7831
7832	// CustomImage: The custom source image to be used to restore this disk
7833	// when instantiating this instance template.
7834	CustomImage string `json:"customImage,omitempty"`
7835
7836	// DeviceName: Specifies the device name of the disk to which the
7837	// configurations apply to.
7838	DeviceName string `json:"deviceName,omitempty"`
7839
7840	// InstantiateFrom: Specifies whether to include the disk and what image
7841	// to use. Possible values are:
7842	// - source-image: to use the same image that was used to create the
7843	// source instance's corresponding disk. Applicable to the boot disk and
7844	// additional read-write disks.
7845	// - source-image-family: to use the same image family that was used to
7846	// create the source instance's corresponding disk. Applicable to the
7847	// boot disk and additional read-write disks.
7848	// - custom-image: to use a user-provided image url for disk creation.
7849	// Applicable to the boot disk and additional read-write disks.
7850	// - attach-read-only: to attach a read-only disk. Applicable to
7851	// read-only disks.
7852	// - do-not-include: to exclude a disk from the template. Applicable to
7853	// additional read-write disks, local SSDs, and read-only disks.
7854	//
7855	// Possible values:
7856	//   "ATTACH_READ_ONLY"
7857	//   "BLANK"
7858	//   "CUSTOM_IMAGE"
7859	//   "DEFAULT"
7860	//   "DO_NOT_INCLUDE"
7861	//   "SOURCE_IMAGE"
7862	//   "SOURCE_IMAGE_FAMILY"
7863	InstantiateFrom string `json:"instantiateFrom,omitempty"`
7864
7865	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
7866	// unconditionally include in API requests. By default, fields with
7867	// empty values are omitted from API requests. However, any non-pointer,
7868	// non-interface field appearing in ForceSendFields will be sent to the
7869	// server regardless of whether the field is empty or not. This may be
7870	// used to include empty fields in Patch requests.
7871	ForceSendFields []string `json:"-"`
7872
7873	// NullFields is a list of field names (e.g. "AutoDelete") to include in
7874	// API requests with the JSON null value. By default, fields with empty
7875	// values are omitted from API requests. However, any field with an
7876	// empty value appearing in NullFields will be sent to the server as
7877	// null. It is an error if a field in this list has a non-empty value.
7878	// This may be used to include null fields in Patch requests.
7879	NullFields []string `json:"-"`
7880}
7881
7882func (s *DiskInstantiationConfig) MarshalJSON() ([]byte, error) {
7883	type NoMethod DiskInstantiationConfig
7884	raw := NoMethod(*s)
7885	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7886}
7887
7888// DiskList: A list of Disk resources.
7889type DiskList struct {
7890	// Id: [Output Only] Unique identifier for the resource; defined by the
7891	// server.
7892	Id string `json:"id,omitempty"`
7893
7894	// Items: A list of Disk resources.
7895	Items []*Disk `json:"items,omitempty"`
7896
7897	// Kind: [Output Only] Type of resource. Always compute#diskList for
7898	// lists of disks.
7899	Kind string `json:"kind,omitempty"`
7900
7901	// NextPageToken: [Output Only] This token allows you to get the next
7902	// page of results for list requests. If the number of results is larger
7903	// than maxResults, use the nextPageToken as a value for the query
7904	// parameter pageToken in the next list request. Subsequent list
7905	// requests will have their own nextPageToken to continue paging through
7906	// the results.
7907	NextPageToken string `json:"nextPageToken,omitempty"`
7908
7909	// SelfLink: [Output Only] Server-defined URL for this resource.
7910	SelfLink string `json:"selfLink,omitempty"`
7911
7912	// Warning: [Output Only] Informational warning message.
7913	Warning *DiskListWarning `json:"warning,omitempty"`
7914
7915	// ServerResponse contains the HTTP response code and headers from the
7916	// server.
7917	googleapi.ServerResponse `json:"-"`
7918
7919	// ForceSendFields is a list of field names (e.g. "Id") to
7920	// unconditionally include in API requests. By default, fields with
7921	// empty values are omitted from API requests. However, any non-pointer,
7922	// non-interface field appearing in ForceSendFields will be sent to the
7923	// server regardless of whether the field is empty or not. This may be
7924	// used to include empty fields in Patch requests.
7925	ForceSendFields []string `json:"-"`
7926
7927	// NullFields is a list of field names (e.g. "Id") to include in API
7928	// requests with the JSON null value. By default, fields with empty
7929	// values are omitted from API requests. However, any field with an
7930	// empty value appearing in NullFields will be sent to the server as
7931	// null. It is an error if a field in this list has a non-empty value.
7932	// This may be used to include null fields in Patch requests.
7933	NullFields []string `json:"-"`
7934}
7935
7936func (s *DiskList) MarshalJSON() ([]byte, error) {
7937	type NoMethod DiskList
7938	raw := NoMethod(*s)
7939	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7940}
7941
7942// DiskListWarning: [Output Only] Informational warning message.
7943type DiskListWarning struct {
7944	// Code: [Output Only] A warning code, if applicable. For example,
7945	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7946	// the response.
7947	//
7948	// Possible values:
7949	//   "CLEANUP_FAILED"
7950	//   "DEPRECATED_RESOURCE_USED"
7951	//   "DEPRECATED_TYPE_USED"
7952	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
7953	//   "EXPERIMENTAL_TYPE_USED"
7954	//   "EXTERNAL_API_WARNING"
7955	//   "FIELD_VALUE_OVERRIDEN"
7956	//   "INJECTED_KERNELS_DEPRECATED"
7957	//   "LARGE_DEPLOYMENT_WARNING"
7958	//   "MISSING_TYPE_DEPENDENCY"
7959	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
7960	//   "NEXT_HOP_CANNOT_IP_FORWARD"
7961	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
7962	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
7963	//   "NEXT_HOP_NOT_RUNNING"
7964	//   "NOT_CRITICAL_ERROR"
7965	//   "NO_RESULTS_ON_PAGE"
7966	//   "PARTIAL_SUCCESS"
7967	//   "REQUIRED_TOS_AGREEMENT"
7968	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
7969	//   "RESOURCE_NOT_DELETED"
7970	//   "SCHEMA_VALIDATION_IGNORED"
7971	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
7972	//   "UNDECLARED_PROPERTIES"
7973	//   "UNREACHABLE"
7974	Code string `json:"code,omitempty"`
7975
7976	// Data: [Output Only] Metadata about this warning in key: value format.
7977	// For example:
7978	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
7979	Data []*DiskListWarningData `json:"data,omitempty"`
7980
7981	// Message: [Output Only] A human-readable description of the warning
7982	// code.
7983	Message string `json:"message,omitempty"`
7984
7985	// ForceSendFields is a list of field names (e.g. "Code") to
7986	// unconditionally include in API requests. By default, fields with
7987	// empty values are omitted from API requests. However, any non-pointer,
7988	// non-interface field appearing in ForceSendFields will be sent to the
7989	// server regardless of whether the field is empty or not. This may be
7990	// used to include empty fields in Patch requests.
7991	ForceSendFields []string `json:"-"`
7992
7993	// NullFields is a list of field names (e.g. "Code") to include in API
7994	// requests with the JSON null value. By default, fields with empty
7995	// values are omitted from API requests. However, any field with an
7996	// empty value appearing in NullFields will be sent to the server as
7997	// null. It is an error if a field in this list has a non-empty value.
7998	// This may be used to include null fields in Patch requests.
7999	NullFields []string `json:"-"`
8000}
8001
8002func (s *DiskListWarning) MarshalJSON() ([]byte, error) {
8003	type NoMethod DiskListWarning
8004	raw := NoMethod(*s)
8005	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8006}
8007
8008type DiskListWarningData struct {
8009	// Key: [Output Only] A key that provides more detail on the warning
8010	// being returned. For example, for warnings where there are no results
8011	// in a list request for a particular zone, this key might be scope and
8012	// the key value might be the zone name. Other examples might be a key
8013	// indicating a deprecated resource and a suggested replacement, or a
8014	// warning about invalid network settings (for example, if an instance
8015	// attempts to perform IP forwarding but is not enabled for IP
8016	// forwarding).
8017	Key string `json:"key,omitempty"`
8018
8019	// Value: [Output Only] A warning data value corresponding to the key.
8020	Value string `json:"value,omitempty"`
8021
8022	// ForceSendFields is a list of field names (e.g. "Key") to
8023	// unconditionally include in API requests. By default, fields with
8024	// empty values are omitted from API requests. However, any non-pointer,
8025	// non-interface field appearing in ForceSendFields will be sent to the
8026	// server regardless of whether the field is empty or not. This may be
8027	// used to include empty fields in Patch requests.
8028	ForceSendFields []string `json:"-"`
8029
8030	// NullFields is a list of field names (e.g. "Key") to include in API
8031	// requests with the JSON null value. By default, fields with empty
8032	// values are omitted from API requests. However, any field with an
8033	// empty value appearing in NullFields will be sent to the server as
8034	// null. It is an error if a field in this list has a non-empty value.
8035	// This may be used to include null fields in Patch requests.
8036	NullFields []string `json:"-"`
8037}
8038
8039func (s *DiskListWarningData) MarshalJSON() ([]byte, error) {
8040	type NoMethod DiskListWarningData
8041	raw := NoMethod(*s)
8042	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8043}
8044
8045type DiskMoveRequest struct {
8046	// DestinationZone: The URL of the destination zone to move the disk.
8047	// This can be a full or partial URL. For example, the following are all
8048	// valid URLs to a zone:
8049	// - https://www.googleapis.com/compute/v1/projects/project/zones/zone
8050	//
8051	// - projects/project/zones/zone
8052	// - zones/zone
8053	DestinationZone string `json:"destinationZone,omitempty"`
8054
8055	// TargetDisk: The URL of the target disk to move. This can be a full or
8056	// partial URL. For example, the following are all valid URLs to a disk:
8057	//
8058	// -
8059	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
8060	//
8061	// - projects/project/zones/zone/disks/disk
8062	// - zones/zone/disks/disk
8063	TargetDisk string `json:"targetDisk,omitempty"`
8064
8065	// ForceSendFields is a list of field names (e.g. "DestinationZone") to
8066	// unconditionally include in API requests. By default, fields with
8067	// empty values are omitted from API requests. However, any non-pointer,
8068	// non-interface field appearing in ForceSendFields will be sent to the
8069	// server regardless of whether the field is empty or not. This may be
8070	// used to include empty fields in Patch requests.
8071	ForceSendFields []string `json:"-"`
8072
8073	// NullFields is a list of field names (e.g. "DestinationZone") to
8074	// include in API requests with the JSON null value. By default, fields
8075	// with empty values are omitted from API requests. However, any field
8076	// with an empty value appearing in NullFields will be sent to the
8077	// server as null. It is an error if a field in this list has a
8078	// non-empty value. This may be used to include null fields in Patch
8079	// requests.
8080	NullFields []string `json:"-"`
8081}
8082
8083func (s *DiskMoveRequest) MarshalJSON() ([]byte, error) {
8084	type NoMethod DiskMoveRequest
8085	raw := NoMethod(*s)
8086	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8087}
8088
8089// DiskType: Represents a Disk Type resource.
8090//
8091// Google Compute Engine has two Disk Type resources:
8092//
8093// * Regional
8094// (/compute/docs/reference/rest/{$api_version}/regionDiskTypes) * Zonal
8095// (/compute/docs/reference/rest/{$api_version}/diskTypes)
8096//
8097// You can choose from a variety of disk types based on your needs. For
8098// more information, read Storage options.
8099//
8100// The diskTypes resource represents disk types for a zonal persistent
8101// disk. For more information, read Zonal persistent disks.
8102//
8103// The regionDiskTypes resource represents disk types for a regional
8104// persistent disk. For more information, read Regional persistent
8105// disks. (== resource_for {$api_version}.diskTypes ==) (== resource_for
8106// {$api_version}.regionDiskTypes ==)
8107type DiskType struct {
8108	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
8109	// format.
8110	CreationTimestamp string `json:"creationTimestamp,omitempty"`
8111
8112	// DefaultDiskSizeGb: [Output Only] Server-defined default disk size in
8113	// GB.
8114	DefaultDiskSizeGb int64 `json:"defaultDiskSizeGb,omitempty,string"`
8115
8116	// Deprecated -- [Output Only] The deprecation status associated with
8117	// this disk type.
8118	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
8119
8120	// Description: [Output Only] An optional description of this resource.
8121	Description string `json:"description,omitempty"`
8122
8123	// Id: [Output Only] The unique identifier for the resource. This
8124	// identifier is defined by the server.
8125	Id uint64 `json:"id,omitempty,string"`
8126
8127	// Kind: [Output Only] Type of the resource. Always compute#diskType for
8128	// disk types.
8129	Kind string `json:"kind,omitempty"`
8130
8131	// Name: [Output Only] Name of the resource.
8132	Name string `json:"name,omitempty"`
8133
8134	// Region: [Output Only] URL of the region where the disk type resides.
8135	// Only applicable for regional resources. You must specify this field
8136	// as part of the HTTP request URL. It is not settable as a field in the
8137	// request body.
8138	Region string `json:"region,omitempty"`
8139
8140	// SelfLink: [Output Only] Server-defined URL for the resource.
8141	SelfLink string `json:"selfLink,omitempty"`
8142
8143	// ValidDiskSize: [Output Only] An optional textual description of the
8144	// valid disk size, such as "10GB-10TB".
8145	ValidDiskSize string `json:"validDiskSize,omitempty"`
8146
8147	// Zone: [Output Only] URL of the zone where the disk type resides. You
8148	// must specify this field as part of the HTTP request URL. It is not
8149	// settable as a field in the request body.
8150	Zone string `json:"zone,omitempty"`
8151
8152	// ServerResponse contains the HTTP response code and headers from the
8153	// server.
8154	googleapi.ServerResponse `json:"-"`
8155
8156	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
8157	// to unconditionally include in API requests. By default, fields with
8158	// empty values are omitted from API requests. However, any non-pointer,
8159	// non-interface field appearing in ForceSendFields will be sent to the
8160	// server regardless of whether the field is empty or not. This may be
8161	// used to include empty fields in Patch requests.
8162	ForceSendFields []string `json:"-"`
8163
8164	// NullFields is a list of field names (e.g. "CreationTimestamp") to
8165	// include in API requests with the JSON null value. By default, fields
8166	// with empty values are omitted from API requests. However, any field
8167	// with an empty value appearing in NullFields will be sent to the
8168	// server as null. It is an error if a field in this list has a
8169	// non-empty value. This may be used to include null fields in Patch
8170	// requests.
8171	NullFields []string `json:"-"`
8172}
8173
8174func (s *DiskType) MarshalJSON() ([]byte, error) {
8175	type NoMethod DiskType
8176	raw := NoMethod(*s)
8177	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8178}
8179
8180type DiskTypeAggregatedList struct {
8181	// Id: [Output Only] Unique identifier for the resource; defined by the
8182	// server.
8183	Id string `json:"id,omitempty"`
8184
8185	// Items: A list of DiskTypesScopedList resources.
8186	Items map[string]DiskTypesScopedList `json:"items,omitempty"`
8187
8188	// Kind: [Output Only] Type of resource. Always
8189	// compute#diskTypeAggregatedList.
8190	Kind string `json:"kind,omitempty"`
8191
8192	// NextPageToken: [Output Only] This token allows you to get the next
8193	// page of results for list requests. If the number of results is larger
8194	// than maxResults, use the nextPageToken as a value for the query
8195	// parameter pageToken in the next list request. Subsequent list
8196	// requests will have their own nextPageToken to continue paging through
8197	// the results.
8198	NextPageToken string `json:"nextPageToken,omitempty"`
8199
8200	// SelfLink: [Output Only] Server-defined URL for this resource.
8201	SelfLink string `json:"selfLink,omitempty"`
8202
8203	// Unreachables: [Output Only] Unreachable resources.
8204	Unreachables []string `json:"unreachables,omitempty"`
8205
8206	// Warning: [Output Only] Informational warning message.
8207	Warning *DiskTypeAggregatedListWarning `json:"warning,omitempty"`
8208
8209	// ServerResponse contains the HTTP response code and headers from the
8210	// server.
8211	googleapi.ServerResponse `json:"-"`
8212
8213	// ForceSendFields is a list of field names (e.g. "Id") to
8214	// unconditionally include in API requests. By default, fields with
8215	// empty values are omitted from API requests. However, any non-pointer,
8216	// non-interface field appearing in ForceSendFields will be sent to the
8217	// server regardless of whether the field is empty or not. This may be
8218	// used to include empty fields in Patch requests.
8219	ForceSendFields []string `json:"-"`
8220
8221	// NullFields is a list of field names (e.g. "Id") to include in API
8222	// requests with the JSON null value. By default, fields with empty
8223	// values are omitted from API requests. However, any field with an
8224	// empty value appearing in NullFields will be sent to the server as
8225	// null. It is an error if a field in this list has a non-empty value.
8226	// This may be used to include null fields in Patch requests.
8227	NullFields []string `json:"-"`
8228}
8229
8230func (s *DiskTypeAggregatedList) MarshalJSON() ([]byte, error) {
8231	type NoMethod DiskTypeAggregatedList
8232	raw := NoMethod(*s)
8233	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8234}
8235
8236// DiskTypeAggregatedListWarning: [Output Only] Informational warning
8237// message.
8238type DiskTypeAggregatedListWarning struct {
8239	// Code: [Output Only] A warning code, if applicable. For example,
8240	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8241	// the response.
8242	//
8243	// Possible values:
8244	//   "CLEANUP_FAILED"
8245	//   "DEPRECATED_RESOURCE_USED"
8246	//   "DEPRECATED_TYPE_USED"
8247	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8248	//   "EXPERIMENTAL_TYPE_USED"
8249	//   "EXTERNAL_API_WARNING"
8250	//   "FIELD_VALUE_OVERRIDEN"
8251	//   "INJECTED_KERNELS_DEPRECATED"
8252	//   "LARGE_DEPLOYMENT_WARNING"
8253	//   "MISSING_TYPE_DEPENDENCY"
8254	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8255	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8256	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8257	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8258	//   "NEXT_HOP_NOT_RUNNING"
8259	//   "NOT_CRITICAL_ERROR"
8260	//   "NO_RESULTS_ON_PAGE"
8261	//   "PARTIAL_SUCCESS"
8262	//   "REQUIRED_TOS_AGREEMENT"
8263	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8264	//   "RESOURCE_NOT_DELETED"
8265	//   "SCHEMA_VALIDATION_IGNORED"
8266	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8267	//   "UNDECLARED_PROPERTIES"
8268	//   "UNREACHABLE"
8269	Code string `json:"code,omitempty"`
8270
8271	// Data: [Output Only] Metadata about this warning in key: value format.
8272	// For example:
8273	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8274	Data []*DiskTypeAggregatedListWarningData `json:"data,omitempty"`
8275
8276	// Message: [Output Only] A human-readable description of the warning
8277	// code.
8278	Message string `json:"message,omitempty"`
8279
8280	// ForceSendFields is a list of field names (e.g. "Code") to
8281	// unconditionally include in API requests. By default, fields with
8282	// empty values are omitted from API requests. However, any non-pointer,
8283	// non-interface field appearing in ForceSendFields will be sent to the
8284	// server regardless of whether the field is empty or not. This may be
8285	// used to include empty fields in Patch requests.
8286	ForceSendFields []string `json:"-"`
8287
8288	// NullFields is a list of field names (e.g. "Code") to include in API
8289	// requests with the JSON null value. By default, fields with empty
8290	// values are omitted from API requests. However, any field with an
8291	// empty value appearing in NullFields will be sent to the server as
8292	// null. It is an error if a field in this list has a non-empty value.
8293	// This may be used to include null fields in Patch requests.
8294	NullFields []string `json:"-"`
8295}
8296
8297func (s *DiskTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
8298	type NoMethod DiskTypeAggregatedListWarning
8299	raw := NoMethod(*s)
8300	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8301}
8302
8303type DiskTypeAggregatedListWarningData struct {
8304	// Key: [Output Only] A key that provides more detail on the warning
8305	// being returned. For example, for warnings where there are no results
8306	// in a list request for a particular zone, this key might be scope and
8307	// the key value might be the zone name. Other examples might be a key
8308	// indicating a deprecated resource and a suggested replacement, or a
8309	// warning about invalid network settings (for example, if an instance
8310	// attempts to perform IP forwarding but is not enabled for IP
8311	// forwarding).
8312	Key string `json:"key,omitempty"`
8313
8314	// Value: [Output Only] A warning data value corresponding to the key.
8315	Value string `json:"value,omitempty"`
8316
8317	// ForceSendFields is a list of field names (e.g. "Key") to
8318	// unconditionally include in API requests. By default, fields with
8319	// empty values are omitted from API requests. However, any non-pointer,
8320	// non-interface field appearing in ForceSendFields will be sent to the
8321	// server regardless of whether the field is empty or not. This may be
8322	// used to include empty fields in Patch requests.
8323	ForceSendFields []string `json:"-"`
8324
8325	// NullFields is a list of field names (e.g. "Key") to include in API
8326	// requests with the JSON null value. By default, fields with empty
8327	// values are omitted from API requests. However, any field with an
8328	// empty value appearing in NullFields will be sent to the server as
8329	// null. It is an error if a field in this list has a non-empty value.
8330	// This may be used to include null fields in Patch requests.
8331	NullFields []string `json:"-"`
8332}
8333
8334func (s *DiskTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
8335	type NoMethod DiskTypeAggregatedListWarningData
8336	raw := NoMethod(*s)
8337	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8338}
8339
8340// DiskTypeList: Contains a list of disk types.
8341type DiskTypeList struct {
8342	// Id: [Output Only] Unique identifier for the resource; defined by the
8343	// server.
8344	Id string `json:"id,omitempty"`
8345
8346	// Items: A list of DiskType resources.
8347	Items []*DiskType `json:"items,omitempty"`
8348
8349	// Kind: [Output Only] Type of resource. Always compute#diskTypeList for
8350	// disk types.
8351	Kind string `json:"kind,omitempty"`
8352
8353	// NextPageToken: [Output Only] This token allows you to get the next
8354	// page of results for list requests. If the number of results is larger
8355	// than maxResults, use the nextPageToken as a value for the query
8356	// parameter pageToken in the next list request. Subsequent list
8357	// requests will have their own nextPageToken to continue paging through
8358	// the results.
8359	NextPageToken string `json:"nextPageToken,omitempty"`
8360
8361	// SelfLink: [Output Only] Server-defined URL for this resource.
8362	SelfLink string `json:"selfLink,omitempty"`
8363
8364	// Warning: [Output Only] Informational warning message.
8365	Warning *DiskTypeListWarning `json:"warning,omitempty"`
8366
8367	// ServerResponse contains the HTTP response code and headers from the
8368	// server.
8369	googleapi.ServerResponse `json:"-"`
8370
8371	// ForceSendFields is a list of field names (e.g. "Id") to
8372	// unconditionally include in API requests. By default, fields with
8373	// empty values are omitted from API requests. However, any non-pointer,
8374	// non-interface field appearing in ForceSendFields will be sent to the
8375	// server regardless of whether the field is empty or not. This may be
8376	// used to include empty fields in Patch requests.
8377	ForceSendFields []string `json:"-"`
8378
8379	// NullFields is a list of field names (e.g. "Id") to include in API
8380	// requests with the JSON null value. By default, fields with empty
8381	// values are omitted from API requests. However, any field with an
8382	// empty value appearing in NullFields will be sent to the server as
8383	// null. It is an error if a field in this list has a non-empty value.
8384	// This may be used to include null fields in Patch requests.
8385	NullFields []string `json:"-"`
8386}
8387
8388func (s *DiskTypeList) MarshalJSON() ([]byte, error) {
8389	type NoMethod DiskTypeList
8390	raw := NoMethod(*s)
8391	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8392}
8393
8394// DiskTypeListWarning: [Output Only] Informational warning message.
8395type DiskTypeListWarning struct {
8396	// Code: [Output Only] A warning code, if applicable. For example,
8397	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8398	// the response.
8399	//
8400	// Possible values:
8401	//   "CLEANUP_FAILED"
8402	//   "DEPRECATED_RESOURCE_USED"
8403	//   "DEPRECATED_TYPE_USED"
8404	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8405	//   "EXPERIMENTAL_TYPE_USED"
8406	//   "EXTERNAL_API_WARNING"
8407	//   "FIELD_VALUE_OVERRIDEN"
8408	//   "INJECTED_KERNELS_DEPRECATED"
8409	//   "LARGE_DEPLOYMENT_WARNING"
8410	//   "MISSING_TYPE_DEPENDENCY"
8411	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8412	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8413	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8414	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8415	//   "NEXT_HOP_NOT_RUNNING"
8416	//   "NOT_CRITICAL_ERROR"
8417	//   "NO_RESULTS_ON_PAGE"
8418	//   "PARTIAL_SUCCESS"
8419	//   "REQUIRED_TOS_AGREEMENT"
8420	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8421	//   "RESOURCE_NOT_DELETED"
8422	//   "SCHEMA_VALIDATION_IGNORED"
8423	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8424	//   "UNDECLARED_PROPERTIES"
8425	//   "UNREACHABLE"
8426	Code string `json:"code,omitempty"`
8427
8428	// Data: [Output Only] Metadata about this warning in key: value format.
8429	// For example:
8430	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8431	Data []*DiskTypeListWarningData `json:"data,omitempty"`
8432
8433	// Message: [Output Only] A human-readable description of the warning
8434	// code.
8435	Message string `json:"message,omitempty"`
8436
8437	// ForceSendFields is a list of field names (e.g. "Code") to
8438	// unconditionally include in API requests. By default, fields with
8439	// empty values are omitted from API requests. However, any non-pointer,
8440	// non-interface field appearing in ForceSendFields will be sent to the
8441	// server regardless of whether the field is empty or not. This may be
8442	// used to include empty fields in Patch requests.
8443	ForceSendFields []string `json:"-"`
8444
8445	// NullFields is a list of field names (e.g. "Code") to include in API
8446	// requests with the JSON null value. By default, fields with empty
8447	// values are omitted from API requests. However, any field with an
8448	// empty value appearing in NullFields will be sent to the server as
8449	// null. It is an error if a field in this list has a non-empty value.
8450	// This may be used to include null fields in Patch requests.
8451	NullFields []string `json:"-"`
8452}
8453
8454func (s *DiskTypeListWarning) MarshalJSON() ([]byte, error) {
8455	type NoMethod DiskTypeListWarning
8456	raw := NoMethod(*s)
8457	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8458}
8459
8460type DiskTypeListWarningData struct {
8461	// Key: [Output Only] A key that provides more detail on the warning
8462	// being returned. For example, for warnings where there are no results
8463	// in a list request for a particular zone, this key might be scope and
8464	// the key value might be the zone name. Other examples might be a key
8465	// indicating a deprecated resource and a suggested replacement, or a
8466	// warning about invalid network settings (for example, if an instance
8467	// attempts to perform IP forwarding but is not enabled for IP
8468	// forwarding).
8469	Key string `json:"key,omitempty"`
8470
8471	// Value: [Output Only] A warning data value corresponding to the key.
8472	Value string `json:"value,omitempty"`
8473
8474	// ForceSendFields is a list of field names (e.g. "Key") to
8475	// unconditionally include in API requests. By default, fields with
8476	// empty values are omitted from API requests. However, any non-pointer,
8477	// non-interface field appearing in ForceSendFields will be sent to the
8478	// server regardless of whether the field is empty or not. This may be
8479	// used to include empty fields in Patch requests.
8480	ForceSendFields []string `json:"-"`
8481
8482	// NullFields is a list of field names (e.g. "Key") to include in API
8483	// requests with the JSON null value. By default, fields with empty
8484	// values are omitted from API requests. However, any field with an
8485	// empty value appearing in NullFields will be sent to the server as
8486	// null. It is an error if a field in this list has a non-empty value.
8487	// This may be used to include null fields in Patch requests.
8488	NullFields []string `json:"-"`
8489}
8490
8491func (s *DiskTypeListWarningData) MarshalJSON() ([]byte, error) {
8492	type NoMethod DiskTypeListWarningData
8493	raw := NoMethod(*s)
8494	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8495}
8496
8497type DiskTypesScopedList struct {
8498	// DiskTypes: [Output Only] A list of disk types contained in this
8499	// scope.
8500	DiskTypes []*DiskType `json:"diskTypes,omitempty"`
8501
8502	// Warning: [Output Only] Informational warning which replaces the list
8503	// of disk types when the list is empty.
8504	Warning *DiskTypesScopedListWarning `json:"warning,omitempty"`
8505
8506	// ForceSendFields is a list of field names (e.g. "DiskTypes") to
8507	// unconditionally include in API requests. By default, fields with
8508	// empty values are omitted from API requests. However, any non-pointer,
8509	// non-interface field appearing in ForceSendFields will be sent to the
8510	// server regardless of whether the field is empty or not. This may be
8511	// used to include empty fields in Patch requests.
8512	ForceSendFields []string `json:"-"`
8513
8514	// NullFields is a list of field names (e.g. "DiskTypes") to include in
8515	// API requests with the JSON null value. By default, fields with empty
8516	// values are omitted from API requests. However, any field with an
8517	// empty value appearing in NullFields will be sent to the server as
8518	// null. It is an error if a field in this list has a non-empty value.
8519	// This may be used to include null fields in Patch requests.
8520	NullFields []string `json:"-"`
8521}
8522
8523func (s *DiskTypesScopedList) MarshalJSON() ([]byte, error) {
8524	type NoMethod DiskTypesScopedList
8525	raw := NoMethod(*s)
8526	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8527}
8528
8529// DiskTypesScopedListWarning: [Output Only] Informational warning which
8530// replaces the list of disk types when the list is empty.
8531type DiskTypesScopedListWarning struct {
8532	// Code: [Output Only] A warning code, if applicable. For example,
8533	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8534	// the response.
8535	//
8536	// Possible values:
8537	//   "CLEANUP_FAILED"
8538	//   "DEPRECATED_RESOURCE_USED"
8539	//   "DEPRECATED_TYPE_USED"
8540	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8541	//   "EXPERIMENTAL_TYPE_USED"
8542	//   "EXTERNAL_API_WARNING"
8543	//   "FIELD_VALUE_OVERRIDEN"
8544	//   "INJECTED_KERNELS_DEPRECATED"
8545	//   "LARGE_DEPLOYMENT_WARNING"
8546	//   "MISSING_TYPE_DEPENDENCY"
8547	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8548	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8549	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8550	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8551	//   "NEXT_HOP_NOT_RUNNING"
8552	//   "NOT_CRITICAL_ERROR"
8553	//   "NO_RESULTS_ON_PAGE"
8554	//   "PARTIAL_SUCCESS"
8555	//   "REQUIRED_TOS_AGREEMENT"
8556	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8557	//   "RESOURCE_NOT_DELETED"
8558	//   "SCHEMA_VALIDATION_IGNORED"
8559	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8560	//   "UNDECLARED_PROPERTIES"
8561	//   "UNREACHABLE"
8562	Code string `json:"code,omitempty"`
8563
8564	// Data: [Output Only] Metadata about this warning in key: value format.
8565	// For example:
8566	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8567	Data []*DiskTypesScopedListWarningData `json:"data,omitempty"`
8568
8569	// Message: [Output Only] A human-readable description of the warning
8570	// code.
8571	Message string `json:"message,omitempty"`
8572
8573	// ForceSendFields is a list of field names (e.g. "Code") to
8574	// unconditionally include in API requests. By default, fields with
8575	// empty values are omitted from API requests. However, any non-pointer,
8576	// non-interface field appearing in ForceSendFields will be sent to the
8577	// server regardless of whether the field is empty or not. This may be
8578	// used to include empty fields in Patch requests.
8579	ForceSendFields []string `json:"-"`
8580
8581	// NullFields is a list of field names (e.g. "Code") to include in API
8582	// requests with the JSON null value. By default, fields with empty
8583	// values are omitted from API requests. However, any field with an
8584	// empty value appearing in NullFields will be sent to the server as
8585	// null. It is an error if a field in this list has a non-empty value.
8586	// This may be used to include null fields in Patch requests.
8587	NullFields []string `json:"-"`
8588}
8589
8590func (s *DiskTypesScopedListWarning) MarshalJSON() ([]byte, error) {
8591	type NoMethod DiskTypesScopedListWarning
8592	raw := NoMethod(*s)
8593	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8594}
8595
8596type DiskTypesScopedListWarningData struct {
8597	// Key: [Output Only] A key that provides more detail on the warning
8598	// being returned. For example, for warnings where there are no results
8599	// in a list request for a particular zone, this key might be scope and
8600	// the key value might be the zone name. Other examples might be a key
8601	// indicating a deprecated resource and a suggested replacement, or a
8602	// warning about invalid network settings (for example, if an instance
8603	// attempts to perform IP forwarding but is not enabled for IP
8604	// forwarding).
8605	Key string `json:"key,omitempty"`
8606
8607	// Value: [Output Only] A warning data value corresponding to the key.
8608	Value string `json:"value,omitempty"`
8609
8610	// ForceSendFields is a list of field names (e.g. "Key") to
8611	// unconditionally include in API requests. By default, fields with
8612	// empty values are omitted from API requests. However, any non-pointer,
8613	// non-interface field appearing in ForceSendFields will be sent to the
8614	// server regardless of whether the field is empty or not. This may be
8615	// used to include empty fields in Patch requests.
8616	ForceSendFields []string `json:"-"`
8617
8618	// NullFields is a list of field names (e.g. "Key") to include in API
8619	// requests with the JSON null value. By default, fields with empty
8620	// values are omitted from API requests. However, any field with an
8621	// empty value appearing in NullFields will be sent to the server as
8622	// null. It is an error if a field in this list has a non-empty value.
8623	// This may be used to include null fields in Patch requests.
8624	NullFields []string `json:"-"`
8625}
8626
8627func (s *DiskTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
8628	type NoMethod DiskTypesScopedListWarningData
8629	raw := NoMethod(*s)
8630	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8631}
8632
8633type DisksAddResourcePoliciesRequest struct {
8634	// ResourcePolicies: Resource policies to be added to this disk.
8635	// Currently you can only specify one policy here.
8636	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
8637
8638	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
8639	// unconditionally include in API requests. By default, fields with
8640	// empty values are omitted from API requests. However, any non-pointer,
8641	// non-interface field appearing in ForceSendFields will be sent to the
8642	// server regardless of whether the field is empty or not. This may be
8643	// used to include empty fields in Patch requests.
8644	ForceSendFields []string `json:"-"`
8645
8646	// NullFields is a list of field names (e.g. "ResourcePolicies") to
8647	// include in API requests with the JSON null value. By default, fields
8648	// with empty values are omitted from API requests. However, any field
8649	// with an empty value appearing in NullFields will be sent to the
8650	// server as null. It is an error if a field in this list has a
8651	// non-empty value. This may be used to include null fields in Patch
8652	// requests.
8653	NullFields []string `json:"-"`
8654}
8655
8656func (s *DisksAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
8657	type NoMethod DisksAddResourcePoliciesRequest
8658	raw := NoMethod(*s)
8659	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8660}
8661
8662type DisksRemoveResourcePoliciesRequest struct {
8663	// ResourcePolicies: Resource policies to be removed from this disk.
8664	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
8665
8666	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
8667	// unconditionally include in API requests. By default, fields with
8668	// empty values are omitted from API requests. However, any non-pointer,
8669	// non-interface field appearing in ForceSendFields will be sent to the
8670	// server regardless of whether the field is empty or not. This may be
8671	// used to include empty fields in Patch requests.
8672	ForceSendFields []string `json:"-"`
8673
8674	// NullFields is a list of field names (e.g. "ResourcePolicies") to
8675	// include in API requests with the JSON null value. By default, fields
8676	// with empty values are omitted from API requests. However, any field
8677	// with an empty value appearing in NullFields will be sent to the
8678	// server as null. It is an error if a field in this list has a
8679	// non-empty value. This may be used to include null fields in Patch
8680	// requests.
8681	NullFields []string `json:"-"`
8682}
8683
8684func (s *DisksRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
8685	type NoMethod DisksRemoveResourcePoliciesRequest
8686	raw := NoMethod(*s)
8687	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8688}
8689
8690type DisksResizeRequest struct {
8691	// SizeGb: The new size of the persistent disk, which is specified in
8692	// GB.
8693	SizeGb int64 `json:"sizeGb,omitempty,string"`
8694
8695	// ForceSendFields is a list of field names (e.g. "SizeGb") to
8696	// unconditionally include in API requests. By default, fields with
8697	// empty values are omitted from API requests. However, any non-pointer,
8698	// non-interface field appearing in ForceSendFields will be sent to the
8699	// server regardless of whether the field is empty or not. This may be
8700	// used to include empty fields in Patch requests.
8701	ForceSendFields []string `json:"-"`
8702
8703	// NullFields is a list of field names (e.g. "SizeGb") to include in API
8704	// requests with the JSON null value. By default, fields with empty
8705	// values are omitted from API requests. However, any field with an
8706	// empty value appearing in NullFields will be sent to the server as
8707	// null. It is an error if a field in this list has a non-empty value.
8708	// This may be used to include null fields in Patch requests.
8709	NullFields []string `json:"-"`
8710}
8711
8712func (s *DisksResizeRequest) MarshalJSON() ([]byte, error) {
8713	type NoMethod DisksResizeRequest
8714	raw := NoMethod(*s)
8715	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8716}
8717
8718type DisksScopedList struct {
8719	// Disks: [Output Only] A list of disks contained in this scope.
8720	Disks []*Disk `json:"disks,omitempty"`
8721
8722	// Warning: [Output Only] Informational warning which replaces the list
8723	// of disks when the list is empty.
8724	Warning *DisksScopedListWarning `json:"warning,omitempty"`
8725
8726	// ForceSendFields is a list of field names (e.g. "Disks") to
8727	// unconditionally include in API requests. By default, fields with
8728	// empty values are omitted from API requests. However, any non-pointer,
8729	// non-interface field appearing in ForceSendFields will be sent to the
8730	// server regardless of whether the field is empty or not. This may be
8731	// used to include empty fields in Patch requests.
8732	ForceSendFields []string `json:"-"`
8733
8734	// NullFields is a list of field names (e.g. "Disks") to include in API
8735	// requests with the JSON null value. By default, fields with empty
8736	// values are omitted from API requests. However, any field with an
8737	// empty value appearing in NullFields will be sent to the server as
8738	// null. It is an error if a field in this list has a non-empty value.
8739	// This may be used to include null fields in Patch requests.
8740	NullFields []string `json:"-"`
8741}
8742
8743func (s *DisksScopedList) MarshalJSON() ([]byte, error) {
8744	type NoMethod DisksScopedList
8745	raw := NoMethod(*s)
8746	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8747}
8748
8749// DisksScopedListWarning: [Output Only] Informational warning which
8750// replaces the list of disks when the list is empty.
8751type DisksScopedListWarning struct {
8752	// Code: [Output Only] A warning code, if applicable. For example,
8753	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8754	// the response.
8755	//
8756	// Possible values:
8757	//   "CLEANUP_FAILED"
8758	//   "DEPRECATED_RESOURCE_USED"
8759	//   "DEPRECATED_TYPE_USED"
8760	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8761	//   "EXPERIMENTAL_TYPE_USED"
8762	//   "EXTERNAL_API_WARNING"
8763	//   "FIELD_VALUE_OVERRIDEN"
8764	//   "INJECTED_KERNELS_DEPRECATED"
8765	//   "LARGE_DEPLOYMENT_WARNING"
8766	//   "MISSING_TYPE_DEPENDENCY"
8767	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8768	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8769	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8770	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8771	//   "NEXT_HOP_NOT_RUNNING"
8772	//   "NOT_CRITICAL_ERROR"
8773	//   "NO_RESULTS_ON_PAGE"
8774	//   "PARTIAL_SUCCESS"
8775	//   "REQUIRED_TOS_AGREEMENT"
8776	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8777	//   "RESOURCE_NOT_DELETED"
8778	//   "SCHEMA_VALIDATION_IGNORED"
8779	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8780	//   "UNDECLARED_PROPERTIES"
8781	//   "UNREACHABLE"
8782	Code string `json:"code,omitempty"`
8783
8784	// Data: [Output Only] Metadata about this warning in key: value format.
8785	// For example:
8786	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8787	Data []*DisksScopedListWarningData `json:"data,omitempty"`
8788
8789	// Message: [Output Only] A human-readable description of the warning
8790	// code.
8791	Message string `json:"message,omitempty"`
8792
8793	// ForceSendFields is a list of field names (e.g. "Code") to
8794	// unconditionally include in API requests. By default, fields with
8795	// empty values are omitted from API requests. However, any non-pointer,
8796	// non-interface field appearing in ForceSendFields will be sent to the
8797	// server regardless of whether the field is empty or not. This may be
8798	// used to include empty fields in Patch requests.
8799	ForceSendFields []string `json:"-"`
8800
8801	// NullFields is a list of field names (e.g. "Code") to include in API
8802	// requests with the JSON null value. By default, fields with empty
8803	// values are omitted from API requests. However, any field with an
8804	// empty value appearing in NullFields will be sent to the server as
8805	// null. It is an error if a field in this list has a non-empty value.
8806	// This may be used to include null fields in Patch requests.
8807	NullFields []string `json:"-"`
8808}
8809
8810func (s *DisksScopedListWarning) MarshalJSON() ([]byte, error) {
8811	type NoMethod DisksScopedListWarning
8812	raw := NoMethod(*s)
8813	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8814}
8815
8816type DisksScopedListWarningData struct {
8817	// Key: [Output Only] A key that provides more detail on the warning
8818	// being returned. For example, for warnings where there are no results
8819	// in a list request for a particular zone, this key might be scope and
8820	// the key value might be the zone name. Other examples might be a key
8821	// indicating a deprecated resource and a suggested replacement, or a
8822	// warning about invalid network settings (for example, if an instance
8823	// attempts to perform IP forwarding but is not enabled for IP
8824	// forwarding).
8825	Key string `json:"key,omitempty"`
8826
8827	// Value: [Output Only] A warning data value corresponding to the key.
8828	Value string `json:"value,omitempty"`
8829
8830	// ForceSendFields is a list of field names (e.g. "Key") to
8831	// unconditionally include in API requests. By default, fields with
8832	// empty values are omitted from API requests. However, any non-pointer,
8833	// non-interface field appearing in ForceSendFields will be sent to the
8834	// server regardless of whether the field is empty or not. This may be
8835	// used to include empty fields in Patch requests.
8836	ForceSendFields []string `json:"-"`
8837
8838	// NullFields is a list of field names (e.g. "Key") to include in API
8839	// requests with the JSON null value. By default, fields with empty
8840	// values are omitted from API requests. However, any field with an
8841	// empty value appearing in NullFields will be sent to the server as
8842	// null. It is an error if a field in this list has a non-empty value.
8843	// This may be used to include null fields in Patch requests.
8844	NullFields []string `json:"-"`
8845}
8846
8847func (s *DisksScopedListWarningData) MarshalJSON() ([]byte, error) {
8848	type NoMethod DisksScopedListWarningData
8849	raw := NoMethod(*s)
8850	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8851}
8852
8853// DisplayDevice: A set of Display Device options
8854type DisplayDevice struct {
8855	// EnableDisplay: Defines whether the instance has Display enabled.
8856	EnableDisplay bool `json:"enableDisplay,omitempty"`
8857
8858	// ForceSendFields is a list of field names (e.g. "EnableDisplay") to
8859	// unconditionally include in API requests. By default, fields with
8860	// empty values are omitted from API requests. However, any non-pointer,
8861	// non-interface field appearing in ForceSendFields will be sent to the
8862	// server regardless of whether the field is empty or not. This may be
8863	// used to include empty fields in Patch requests.
8864	ForceSendFields []string `json:"-"`
8865
8866	// NullFields is a list of field names (e.g. "EnableDisplay") to include
8867	// in API requests with the JSON null value. By default, fields with
8868	// empty values are omitted from API requests. However, any field with
8869	// an empty value appearing in NullFields will be sent to the server as
8870	// null. It is an error if a field in this list has a non-empty value.
8871	// This may be used to include null fields in Patch requests.
8872	NullFields []string `json:"-"`
8873}
8874
8875func (s *DisplayDevice) MarshalJSON() ([]byte, error) {
8876	type NoMethod DisplayDevice
8877	raw := NoMethod(*s)
8878	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8879}
8880
8881type DistributionPolicy struct {
8882	// TargetShape: The distribution shape to which the group converges
8883	// either proactively or on resize events (depending on the value set in
8884	// updatePolicy.instanceRedistributionType).
8885	//
8886	// Possible values:
8887	//   "ANY"
8888	//   "BALANCED"
8889	//   "EVEN"
8890	TargetShape string `json:"targetShape,omitempty"`
8891
8892	// Zones: Zones where the regional managed instance group will create
8893	// and manage its instances.
8894	Zones []*DistributionPolicyZoneConfiguration `json:"zones,omitempty"`
8895
8896	// ForceSendFields is a list of field names (e.g. "TargetShape") to
8897	// unconditionally include in API requests. By default, fields with
8898	// empty values are omitted from API requests. However, any non-pointer,
8899	// non-interface field appearing in ForceSendFields will be sent to the
8900	// server regardless of whether the field is empty or not. This may be
8901	// used to include empty fields in Patch requests.
8902	ForceSendFields []string `json:"-"`
8903
8904	// NullFields is a list of field names (e.g. "TargetShape") to include
8905	// in API requests with the JSON null value. By default, fields with
8906	// empty values are omitted from API requests. However, any field with
8907	// an empty value appearing in NullFields will be sent to the server as
8908	// null. It is an error if a field in this list has a non-empty value.
8909	// This may be used to include null fields in Patch requests.
8910	NullFields []string `json:"-"`
8911}
8912
8913func (s *DistributionPolicy) MarshalJSON() ([]byte, error) {
8914	type NoMethod DistributionPolicy
8915	raw := NoMethod(*s)
8916	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8917}
8918
8919type DistributionPolicyZoneConfiguration struct {
8920	// Zone: The URL of the zone. The zone must exist in the region where
8921	// the managed instance group is located.
8922	Zone string `json:"zone,omitempty"`
8923
8924	// ForceSendFields is a list of field names (e.g. "Zone") to
8925	// unconditionally include in API requests. By default, fields with
8926	// empty values are omitted from API requests. However, any non-pointer,
8927	// non-interface field appearing in ForceSendFields will be sent to the
8928	// server regardless of whether the field is empty or not. This may be
8929	// used to include empty fields in Patch requests.
8930	ForceSendFields []string `json:"-"`
8931
8932	// NullFields is a list of field names (e.g. "Zone") to include in API
8933	// requests with the JSON null value. By default, fields with empty
8934	// values are omitted from API requests. However, any field with an
8935	// empty value appearing in NullFields will be sent to the server as
8936	// null. It is an error if a field in this list has a non-empty value.
8937	// This may be used to include null fields in Patch requests.
8938	NullFields []string `json:"-"`
8939}
8940
8941func (s *DistributionPolicyZoneConfiguration) MarshalJSON() ([]byte, error) {
8942	type NoMethod DistributionPolicyZoneConfiguration
8943	raw := NoMethod(*s)
8944	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8945}
8946
8947// Duration: A Duration represents a fixed-length span of time
8948// represented as a count of seconds and fractions of seconds at
8949// nanosecond resolution. It is independent of any calendar and concepts
8950// like "day" or "month". Range is approximately 10,000 years.
8951type Duration struct {
8952	// Nanos: Span of time that's a fraction of a second at nanosecond
8953	// resolution. Durations less than one second are represented with a 0
8954	// `seconds` field and a positive `nanos` field. Must be from 0 to
8955	// 999,999,999 inclusive.
8956	Nanos int64 `json:"nanos,omitempty"`
8957
8958	// Seconds: Span of time at a resolution of a second. Must be from 0 to
8959	// 315,576,000,000 inclusive. Note: these bounds are computed from: 60
8960	// sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
8961	Seconds int64 `json:"seconds,omitempty,string"`
8962
8963	// ForceSendFields is a list of field names (e.g. "Nanos") to
8964	// unconditionally include in API requests. By default, fields with
8965	// empty values are omitted from API requests. However, any non-pointer,
8966	// non-interface field appearing in ForceSendFields will be sent to the
8967	// server regardless of whether the field is empty or not. This may be
8968	// used to include empty fields in Patch requests.
8969	ForceSendFields []string `json:"-"`
8970
8971	// NullFields is a list of field names (e.g. "Nanos") to include in API
8972	// requests with the JSON null value. By default, fields with empty
8973	// values are omitted from API requests. However, any field with an
8974	// empty value appearing in NullFields will be sent to the server as
8975	// null. It is an error if a field in this list has a non-empty value.
8976	// This may be used to include null fields in Patch requests.
8977	NullFields []string `json:"-"`
8978}
8979
8980func (s *Duration) MarshalJSON() ([]byte, error) {
8981	type NoMethod Duration
8982	raw := NoMethod(*s)
8983	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8984}
8985
8986type ExchangedPeeringRoute struct {
8987	// DestRange: The destination range of the route.
8988	DestRange string `json:"destRange,omitempty"`
8989
8990	// Imported: True if the peering route has been imported from a peer.
8991	// The actual import happens if the field
8992	// networkPeering.importCustomRoutes is true for this network, and
8993	// networkPeering.exportCustomRoutes is true for the peer network, and
8994	// the import does not result in a route conflict.
8995	Imported bool `json:"imported,omitempty"`
8996
8997	// NextHopRegion: The region of peering route next hop, only applies to
8998	// dynamic routes.
8999	NextHopRegion string `json:"nextHopRegion,omitempty"`
9000
9001	// Priority: The priority of the peering route.
9002	Priority int64 `json:"priority,omitempty"`
9003
9004	// Type: The type of the peering route.
9005	//
9006	// Possible values:
9007	//   "DYNAMIC_PEERING_ROUTE"
9008	//   "STATIC_PEERING_ROUTE"
9009	//   "SUBNET_PEERING_ROUTE"
9010	Type string `json:"type,omitempty"`
9011
9012	// ForceSendFields is a list of field names (e.g. "DestRange") to
9013	// unconditionally include in API requests. By default, fields with
9014	// empty values are omitted from API requests. However, any non-pointer,
9015	// non-interface field appearing in ForceSendFields will be sent to the
9016	// server regardless of whether the field is empty or not. This may be
9017	// used to include empty fields in Patch requests.
9018	ForceSendFields []string `json:"-"`
9019
9020	// NullFields is a list of field names (e.g. "DestRange") to include in
9021	// API requests with the JSON null value. By default, fields with empty
9022	// values are omitted from API requests. However, any field with an
9023	// empty value appearing in NullFields will be sent to the server as
9024	// null. It is an error if a field in this list has a non-empty value.
9025	// This may be used to include null fields in Patch requests.
9026	NullFields []string `json:"-"`
9027}
9028
9029func (s *ExchangedPeeringRoute) MarshalJSON() ([]byte, error) {
9030	type NoMethod ExchangedPeeringRoute
9031	raw := NoMethod(*s)
9032	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9033}
9034
9035type ExchangedPeeringRoutesList struct {
9036	// Id: [Output Only] Unique identifier for the resource; defined by the
9037	// server.
9038	Id string `json:"id,omitempty"`
9039
9040	// Items: A list of ExchangedPeeringRoute resources.
9041	Items []*ExchangedPeeringRoute `json:"items,omitempty"`
9042
9043	// Kind: [Output Only] Type of resource. Always
9044	// compute#exchangedPeeringRoutesList for exchanged peering routes
9045	// lists.
9046	Kind string `json:"kind,omitempty"`
9047
9048	// NextPageToken: [Output Only] This token allows you to get the next
9049	// page of results for list requests. If the number of results is larger
9050	// than maxResults, use the nextPageToken as a value for the query
9051	// parameter pageToken in the next list request. Subsequent list
9052	// requests will have their own nextPageToken to continue paging through
9053	// the results.
9054	NextPageToken string `json:"nextPageToken,omitempty"`
9055
9056	// SelfLink: [Output Only] Server-defined URL for this resource.
9057	SelfLink string `json:"selfLink,omitempty"`
9058
9059	// Warning: [Output Only] Informational warning message.
9060	Warning *ExchangedPeeringRoutesListWarning `json:"warning,omitempty"`
9061
9062	// ServerResponse contains the HTTP response code and headers from the
9063	// server.
9064	googleapi.ServerResponse `json:"-"`
9065
9066	// ForceSendFields is a list of field names (e.g. "Id") to
9067	// unconditionally include in API requests. By default, fields with
9068	// empty values are omitted from API requests. However, any non-pointer,
9069	// non-interface field appearing in ForceSendFields will be sent to the
9070	// server regardless of whether the field is empty or not. This may be
9071	// used to include empty fields in Patch requests.
9072	ForceSendFields []string `json:"-"`
9073
9074	// NullFields is a list of field names (e.g. "Id") to include in API
9075	// requests with the JSON null value. By default, fields with empty
9076	// values are omitted from API requests. However, any field with an
9077	// empty value appearing in NullFields will be sent to the server as
9078	// null. It is an error if a field in this list has a non-empty value.
9079	// This may be used to include null fields in Patch requests.
9080	NullFields []string `json:"-"`
9081}
9082
9083func (s *ExchangedPeeringRoutesList) MarshalJSON() ([]byte, error) {
9084	type NoMethod ExchangedPeeringRoutesList
9085	raw := NoMethod(*s)
9086	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9087}
9088
9089// ExchangedPeeringRoutesListWarning: [Output Only] Informational
9090// warning message.
9091type ExchangedPeeringRoutesListWarning struct {
9092	// Code: [Output Only] A warning code, if applicable. For example,
9093	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9094	// the response.
9095	//
9096	// Possible values:
9097	//   "CLEANUP_FAILED"
9098	//   "DEPRECATED_RESOURCE_USED"
9099	//   "DEPRECATED_TYPE_USED"
9100	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9101	//   "EXPERIMENTAL_TYPE_USED"
9102	//   "EXTERNAL_API_WARNING"
9103	//   "FIELD_VALUE_OVERRIDEN"
9104	//   "INJECTED_KERNELS_DEPRECATED"
9105	//   "LARGE_DEPLOYMENT_WARNING"
9106	//   "MISSING_TYPE_DEPENDENCY"
9107	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9108	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9109	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9110	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9111	//   "NEXT_HOP_NOT_RUNNING"
9112	//   "NOT_CRITICAL_ERROR"
9113	//   "NO_RESULTS_ON_PAGE"
9114	//   "PARTIAL_SUCCESS"
9115	//   "REQUIRED_TOS_AGREEMENT"
9116	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9117	//   "RESOURCE_NOT_DELETED"
9118	//   "SCHEMA_VALIDATION_IGNORED"
9119	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9120	//   "UNDECLARED_PROPERTIES"
9121	//   "UNREACHABLE"
9122	Code string `json:"code,omitempty"`
9123
9124	// Data: [Output Only] Metadata about this warning in key: value format.
9125	// For example:
9126	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9127	Data []*ExchangedPeeringRoutesListWarningData `json:"data,omitempty"`
9128
9129	// Message: [Output Only] A human-readable description of the warning
9130	// code.
9131	Message string `json:"message,omitempty"`
9132
9133	// ForceSendFields is a list of field names (e.g. "Code") to
9134	// unconditionally include in API requests. By default, fields with
9135	// empty values are omitted from API requests. However, any non-pointer,
9136	// non-interface field appearing in ForceSendFields will be sent to the
9137	// server regardless of whether the field is empty or not. This may be
9138	// used to include empty fields in Patch requests.
9139	ForceSendFields []string `json:"-"`
9140
9141	// NullFields is a list of field names (e.g. "Code") to include in API
9142	// requests with the JSON null value. By default, fields with empty
9143	// values are omitted from API requests. However, any field with an
9144	// empty value appearing in NullFields will be sent to the server as
9145	// null. It is an error if a field in this list has a non-empty value.
9146	// This may be used to include null fields in Patch requests.
9147	NullFields []string `json:"-"`
9148}
9149
9150func (s *ExchangedPeeringRoutesListWarning) MarshalJSON() ([]byte, error) {
9151	type NoMethod ExchangedPeeringRoutesListWarning
9152	raw := NoMethod(*s)
9153	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9154}
9155
9156type ExchangedPeeringRoutesListWarningData struct {
9157	// Key: [Output Only] A key that provides more detail on the warning
9158	// being returned. For example, for warnings where there are no results
9159	// in a list request for a particular zone, this key might be scope and
9160	// the key value might be the zone name. Other examples might be a key
9161	// indicating a deprecated resource and a suggested replacement, or a
9162	// warning about invalid network settings (for example, if an instance
9163	// attempts to perform IP forwarding but is not enabled for IP
9164	// forwarding).
9165	Key string `json:"key,omitempty"`
9166
9167	// Value: [Output Only] A warning data value corresponding to the key.
9168	Value string `json:"value,omitempty"`
9169
9170	// ForceSendFields is a list of field names (e.g. "Key") to
9171	// unconditionally include in API requests. By default, fields with
9172	// empty values are omitted from API requests. However, any non-pointer,
9173	// non-interface field appearing in ForceSendFields will be sent to the
9174	// server regardless of whether the field is empty or not. This may be
9175	// used to include empty fields in Patch requests.
9176	ForceSendFields []string `json:"-"`
9177
9178	// NullFields is a list of field names (e.g. "Key") to include in API
9179	// requests with the JSON null value. By default, fields with empty
9180	// values are omitted from API requests. However, any field with an
9181	// empty value appearing in NullFields will be sent to the server as
9182	// null. It is an error if a field in this list has a non-empty value.
9183	// This may be used to include null fields in Patch requests.
9184	NullFields []string `json:"-"`
9185}
9186
9187func (s *ExchangedPeeringRoutesListWarningData) MarshalJSON() ([]byte, error) {
9188	type NoMethod ExchangedPeeringRoutesListWarningData
9189	raw := NoMethod(*s)
9190	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9191}
9192
9193// Expr: Represents a textual expression in the Common Expression
9194// Language (CEL) syntax. CEL is a C-like expression language. The
9195// syntax and semantics of CEL are documented at
9196// https://github.com/google/cel-spec.
9197//
9198// Example (Comparison):
9199//
9200// title: "Summary size limit" description: "Determines if a summary is
9201// less than 100 chars" expression: "document.summary.size() <
9202// 100"
9203//
9204// Example (Equality):
9205//
9206// title: "Requestor is owner" description: "Determines if requestor is
9207// the document owner" expression: "document.owner ==
9208// request.auth.claims.email"
9209//
9210// Example (Logic):
9211//
9212// title: "Public documents" description: "Determine whether the
9213// document should be publicly visible" expression: "document.type !=
9214// 'private' && document.type != 'internal'"
9215//
9216// Example (Data Manipulation):
9217//
9218// title: "Notification string" description: "Create a notification
9219// string with a timestamp." expression: "'New message received at ' +
9220// string(document.create_time)"
9221//
9222// The exact variables and functions that may be referenced within an
9223// expression are determined by the service that evaluates it. See the
9224// service documentation for additional information.
9225type Expr struct {
9226	// Description: Optional. Description of the expression. This is a
9227	// longer text which describes the expression, e.g. when hovered over it
9228	// in a UI.
9229	Description string `json:"description,omitempty"`
9230
9231	// Expression: Textual representation of an expression in Common
9232	// Expression Language syntax.
9233	Expression string `json:"expression,omitempty"`
9234
9235	// Location: Optional. String indicating the location of the expression
9236	// for error reporting, e.g. a file name and a position in the file.
9237	Location string `json:"location,omitempty"`
9238
9239	// Title: Optional. Title for the expression, i.e. a short string
9240	// describing its purpose. This can be used e.g. in UIs which allow to
9241	// enter the expression.
9242	Title string `json:"title,omitempty"`
9243
9244	// ForceSendFields is a list of field names (e.g. "Description") to
9245	// unconditionally include in API requests. By default, fields with
9246	// empty values are omitted from API requests. However, any non-pointer,
9247	// non-interface field appearing in ForceSendFields will be sent to the
9248	// server regardless of whether the field is empty or not. This may be
9249	// used to include empty fields in Patch requests.
9250	ForceSendFields []string `json:"-"`
9251
9252	// NullFields is a list of field names (e.g. "Description") to include
9253	// in API requests with the JSON null value. By default, fields with
9254	// empty values are omitted from API requests. However, any field with
9255	// an empty value appearing in NullFields will be sent to the server as
9256	// null. It is an error if a field in this list has a non-empty value.
9257	// This may be used to include null fields in Patch requests.
9258	NullFields []string `json:"-"`
9259}
9260
9261func (s *Expr) MarshalJSON() ([]byte, error) {
9262	type NoMethod Expr
9263	raw := NoMethod(*s)
9264	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9265}
9266
9267// ExternalVpnGateway: Represents an external VPN gateway.
9268//
9269// External VPN gateway is the on-premises VPN gateway(s) or another
9270// cloud provider's VPN gateway that connects to your Google Cloud VPN
9271// gateway.
9272//
9273// To create a highly available VPN from Google Cloud Platform to your
9274// VPN gateway or another cloud provider's VPN gateway, you must create
9275// a external VPN gateway resource with information about the other
9276// gateway.
9277//
9278// For more information about using external VPN gateways, see  Creating
9279// an HA VPN gateway and tunnel pair to a peer VPN. (== resource_for
9280// {$api_version}.externalVpnGateways ==)
9281type ExternalVpnGateway struct {
9282	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
9283	// format.
9284	CreationTimestamp string `json:"creationTimestamp,omitempty"`
9285
9286	// Description: An optional description of this resource. Provide this
9287	// property when you create the resource.
9288	Description string `json:"description,omitempty"`
9289
9290	// Id: [Output Only] The unique identifier for the resource. This
9291	// identifier is defined by the server.
9292	Id *uint64 `json:"id,omitempty,string"`
9293
9294	// Interfaces: List of interfaces for this external VPN gateway.
9295	//
9296	// If your peer-side gateway is an on-premises gateway and non-AWS cloud
9297	// providers? gateway, at most two interfaces can be provided for an
9298	// external VPN gateway. If your peer side is an AWS virtual private
9299	// gateway, four interfaces should be provided for an external VPN
9300	// gateway.
9301	Interfaces []*ExternalVpnGatewayInterface `json:"interfaces,omitempty"`
9302
9303	// Kind: [Output Only] Type of the resource. Always
9304	// compute#externalVpnGateway for externalVpnGateways.
9305	Kind string `json:"kind,omitempty"`
9306
9307	// LabelFingerprint: A fingerprint for the labels being applied to this
9308	// ExternalVpnGateway, which is essentially a hash of the labels set
9309	// used for optimistic locking. The fingerprint is initially generated
9310	// by Compute Engine and changes after every request to modify or update
9311	// labels. You must always provide an up-to-date fingerprint hash in
9312	// order to update or change labels, otherwise the request will fail
9313	// with error 412 conditionNotMet.
9314	//
9315	// To see the latest fingerprint, make a get() request to retrieve an
9316	// ExternalVpnGateway.
9317	LabelFingerprint string `json:"labelFingerprint,omitempty"`
9318
9319	// Labels: Labels for this resource. These can only be added or modified
9320	// by the setLabels method. Each label key/value pair must comply with
9321	// RFC1035. Label values may be empty.
9322	Labels map[string]string `json:"labels,omitempty"`
9323
9324	// Name: Name of the resource. Provided by the client when the resource
9325	// is created. The name must be 1-63 characters long, and comply with
9326	// RFC1035. Specifically, the name must be 1-63 characters long and
9327	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
9328	// the first character must be a lowercase letter, and all following
9329	// characters must be a dash, lowercase letter, or digit, except the
9330	// last character, which cannot be a dash.
9331	Name string `json:"name,omitempty"`
9332
9333	// RedundancyType: Indicates the user-supplied redundancy type of this
9334	// external VPN gateway.
9335	//
9336	// Possible values:
9337	//   "FOUR_IPS_REDUNDANCY"
9338	//   "SINGLE_IP_INTERNALLY_REDUNDANT"
9339	//   "TWO_IPS_REDUNDANCY"
9340	RedundancyType string `json:"redundancyType,omitempty"`
9341
9342	// SelfLink: [Output Only] Server-defined URL for the resource.
9343	SelfLink string `json:"selfLink,omitempty"`
9344
9345	// ServerResponse contains the HTTP response code and headers from the
9346	// server.
9347	googleapi.ServerResponse `json:"-"`
9348
9349	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
9350	// to unconditionally include in API requests. By default, fields with
9351	// empty values are omitted from API requests. However, any non-pointer,
9352	// non-interface field appearing in ForceSendFields will be sent to the
9353	// server regardless of whether the field is empty or not. This may be
9354	// used to include empty fields in Patch requests.
9355	ForceSendFields []string `json:"-"`
9356
9357	// NullFields is a list of field names (e.g. "CreationTimestamp") to
9358	// include in API requests with the JSON null value. By default, fields
9359	// with empty values are omitted from API requests. However, any field
9360	// with an empty value appearing in NullFields will be sent to the
9361	// server as null. It is an error if a field in this list has a
9362	// non-empty value. This may be used to include null fields in Patch
9363	// requests.
9364	NullFields []string `json:"-"`
9365}
9366
9367func (s *ExternalVpnGateway) MarshalJSON() ([]byte, error) {
9368	type NoMethod ExternalVpnGateway
9369	raw := NoMethod(*s)
9370	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9371}
9372
9373// ExternalVpnGatewayInterface: The interface for the external VPN
9374// gateway.
9375type ExternalVpnGatewayInterface struct {
9376	// Id: The numeric ID of this interface. The allowed input values for
9377	// this id for different redundancy types of external VPN gateway:
9378	// - SINGLE_IP_INTERNALLY_REDUNDANT - 0
9379	// - TWO_IPS_REDUNDANCY - 0, 1
9380	// - FOUR_IPS_REDUNDANCY - 0, 1, 2, 3
9381	Id int64 `json:"id,omitempty"`
9382
9383	// IpAddress: IP address of the interface in the external VPN gateway.
9384	// Only IPv4 is supported. This IP address can be either from your
9385	// on-premise gateway or another Cloud provider's VPN gateway, it cannot
9386	// be an IP address from Google Compute Engine.
9387	IpAddress string `json:"ipAddress,omitempty"`
9388
9389	// ForceSendFields is a list of field names (e.g. "Id") to
9390	// unconditionally include in API requests. By default, fields with
9391	// empty values are omitted from API requests. However, any non-pointer,
9392	// non-interface field appearing in ForceSendFields will be sent to the
9393	// server regardless of whether the field is empty or not. This may be
9394	// used to include empty fields in Patch requests.
9395	ForceSendFields []string `json:"-"`
9396
9397	// NullFields is a list of field names (e.g. "Id") to include in API
9398	// requests with the JSON null value. By default, fields with empty
9399	// values are omitted from API requests. However, any field with an
9400	// empty value appearing in NullFields will be sent to the server as
9401	// null. It is an error if a field in this list has a non-empty value.
9402	// This may be used to include null fields in Patch requests.
9403	NullFields []string `json:"-"`
9404}
9405
9406func (s *ExternalVpnGatewayInterface) MarshalJSON() ([]byte, error) {
9407	type NoMethod ExternalVpnGatewayInterface
9408	raw := NoMethod(*s)
9409	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9410}
9411
9412// ExternalVpnGatewayList: Response to the list request, and contains a
9413// list of externalVpnGateways.
9414type ExternalVpnGatewayList struct {
9415	Etag string `json:"etag,omitempty"`
9416
9417	// Id: [Output Only] Unique identifier for the resource; defined by the
9418	// server.
9419	Id string `json:"id,omitempty"`
9420
9421	// Items: A list of ExternalVpnGateway resources.
9422	Items []*ExternalVpnGateway `json:"items,omitempty"`
9423
9424	// Kind: [Output Only] Type of resource. Always
9425	// compute#externalVpnGatewayList  for lists of externalVpnGateways.
9426	Kind string `json:"kind,omitempty"`
9427
9428	// NextPageToken: [Output Only] This token allows you to get the next
9429	// page of results for list requests. If the number of results is larger
9430	// than maxResults, use the nextPageToken as a value for the query
9431	// parameter pageToken in the next list request. Subsequent list
9432	// requests will have their own nextPageToken to continue paging through
9433	// the results.
9434	NextPageToken string `json:"nextPageToken,omitempty"`
9435
9436	// SelfLink: [Output Only] Server-defined URL for this resource.
9437	SelfLink string `json:"selfLink,omitempty"`
9438
9439	// Warning: [Output Only] Informational warning message.
9440	Warning *ExternalVpnGatewayListWarning `json:"warning,omitempty"`
9441
9442	// ServerResponse contains the HTTP response code and headers from the
9443	// server.
9444	googleapi.ServerResponse `json:"-"`
9445
9446	// ForceSendFields is a list of field names (e.g. "Etag") to
9447	// unconditionally include in API requests. By default, fields with
9448	// empty values are omitted from API requests. However, any non-pointer,
9449	// non-interface field appearing in ForceSendFields will be sent to the
9450	// server regardless of whether the field is empty or not. This may be
9451	// used to include empty fields in Patch requests.
9452	ForceSendFields []string `json:"-"`
9453
9454	// NullFields is a list of field names (e.g. "Etag") to include in API
9455	// requests with the JSON null value. By default, fields with empty
9456	// values are omitted from API requests. However, any field with an
9457	// empty value appearing in NullFields will be sent to the server as
9458	// null. It is an error if a field in this list has a non-empty value.
9459	// This may be used to include null fields in Patch requests.
9460	NullFields []string `json:"-"`
9461}
9462
9463func (s *ExternalVpnGatewayList) MarshalJSON() ([]byte, error) {
9464	type NoMethod ExternalVpnGatewayList
9465	raw := NoMethod(*s)
9466	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9467}
9468
9469// ExternalVpnGatewayListWarning: [Output Only] Informational warning
9470// message.
9471type ExternalVpnGatewayListWarning struct {
9472	// Code: [Output Only] A warning code, if applicable. For example,
9473	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9474	// the response.
9475	//
9476	// Possible values:
9477	//   "CLEANUP_FAILED"
9478	//   "DEPRECATED_RESOURCE_USED"
9479	//   "DEPRECATED_TYPE_USED"
9480	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9481	//   "EXPERIMENTAL_TYPE_USED"
9482	//   "EXTERNAL_API_WARNING"
9483	//   "FIELD_VALUE_OVERRIDEN"
9484	//   "INJECTED_KERNELS_DEPRECATED"
9485	//   "LARGE_DEPLOYMENT_WARNING"
9486	//   "MISSING_TYPE_DEPENDENCY"
9487	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9488	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9489	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9490	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9491	//   "NEXT_HOP_NOT_RUNNING"
9492	//   "NOT_CRITICAL_ERROR"
9493	//   "NO_RESULTS_ON_PAGE"
9494	//   "PARTIAL_SUCCESS"
9495	//   "REQUIRED_TOS_AGREEMENT"
9496	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9497	//   "RESOURCE_NOT_DELETED"
9498	//   "SCHEMA_VALIDATION_IGNORED"
9499	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9500	//   "UNDECLARED_PROPERTIES"
9501	//   "UNREACHABLE"
9502	Code string `json:"code,omitempty"`
9503
9504	// Data: [Output Only] Metadata about this warning in key: value format.
9505	// For example:
9506	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9507	Data []*ExternalVpnGatewayListWarningData `json:"data,omitempty"`
9508
9509	// Message: [Output Only] A human-readable description of the warning
9510	// code.
9511	Message string `json:"message,omitempty"`
9512
9513	// ForceSendFields is a list of field names (e.g. "Code") to
9514	// unconditionally include in API requests. By default, fields with
9515	// empty values are omitted from API requests. However, any non-pointer,
9516	// non-interface field appearing in ForceSendFields will be sent to the
9517	// server regardless of whether the field is empty or not. This may be
9518	// used to include empty fields in Patch requests.
9519	ForceSendFields []string `json:"-"`
9520
9521	// NullFields is a list of field names (e.g. "Code") to include in API
9522	// requests with the JSON null value. By default, fields with empty
9523	// values are omitted from API requests. However, any field with an
9524	// empty value appearing in NullFields will be sent to the server as
9525	// null. It is an error if a field in this list has a non-empty value.
9526	// This may be used to include null fields in Patch requests.
9527	NullFields []string `json:"-"`
9528}
9529
9530func (s *ExternalVpnGatewayListWarning) MarshalJSON() ([]byte, error) {
9531	type NoMethod ExternalVpnGatewayListWarning
9532	raw := NoMethod(*s)
9533	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9534}
9535
9536type ExternalVpnGatewayListWarningData struct {
9537	// Key: [Output Only] A key that provides more detail on the warning
9538	// being returned. For example, for warnings where there are no results
9539	// in a list request for a particular zone, this key might be scope and
9540	// the key value might be the zone name. Other examples might be a key
9541	// indicating a deprecated resource and a suggested replacement, or a
9542	// warning about invalid network settings (for example, if an instance
9543	// attempts to perform IP forwarding but is not enabled for IP
9544	// forwarding).
9545	Key string `json:"key,omitempty"`
9546
9547	// Value: [Output Only] A warning data value corresponding to the key.
9548	Value string `json:"value,omitempty"`
9549
9550	// ForceSendFields is a list of field names (e.g. "Key") to
9551	// unconditionally include in API requests. By default, fields with
9552	// empty values are omitted from API requests. However, any non-pointer,
9553	// non-interface field appearing in ForceSendFields will be sent to the
9554	// server regardless of whether the field is empty or not. This may be
9555	// used to include empty fields in Patch requests.
9556	ForceSendFields []string `json:"-"`
9557
9558	// NullFields is a list of field names (e.g. "Key") to include in API
9559	// requests with the JSON null value. By default, fields with empty
9560	// values are omitted from API requests. However, any field with an
9561	// empty value appearing in NullFields will be sent to the server as
9562	// null. It is an error if a field in this list has a non-empty value.
9563	// This may be used to include null fields in Patch requests.
9564	NullFields []string `json:"-"`
9565}
9566
9567func (s *ExternalVpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
9568	type NoMethod ExternalVpnGatewayListWarningData
9569	raw := NoMethod(*s)
9570	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9571}
9572
9573type FileContentBuffer struct {
9574	// Content: The raw content in the secure keys file.
9575	Content string `json:"content,omitempty"`
9576
9577	// FileType: The file type of source file.
9578	//
9579	// Possible values:
9580	//   "BIN"
9581	//   "UNDEFINED"
9582	//   "X509"
9583	FileType string `json:"fileType,omitempty"`
9584
9585	// ForceSendFields is a list of field names (e.g. "Content") to
9586	// unconditionally include in API requests. By default, fields with
9587	// empty values are omitted from API requests. However, any non-pointer,
9588	// non-interface field appearing in ForceSendFields will be sent to the
9589	// server regardless of whether the field is empty or not. This may be
9590	// used to include empty fields in Patch requests.
9591	ForceSendFields []string `json:"-"`
9592
9593	// NullFields is a list of field names (e.g. "Content") to include in
9594	// API requests with the JSON null value. By default, fields with empty
9595	// values are omitted from API requests. However, any field with an
9596	// empty value appearing in NullFields will be sent to the server as
9597	// null. It is an error if a field in this list has a non-empty value.
9598	// This may be used to include null fields in Patch requests.
9599	NullFields []string `json:"-"`
9600}
9601
9602func (s *FileContentBuffer) MarshalJSON() ([]byte, error) {
9603	type NoMethod FileContentBuffer
9604	raw := NoMethod(*s)
9605	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9606}
9607
9608// Firewall: Represents a Firewall Rule resource.
9609//
9610// Firewall rules allow or deny ingress traffic to, and egress traffic
9611// from your instances. For more information, read Firewall rules.
9612type Firewall struct {
9613	// Allowed: The list of ALLOW rules specified by this firewall. Each
9614	// rule specifies a protocol and port-range tuple that describes a
9615	// permitted connection.
9616	Allowed []*FirewallAllowed `json:"allowed,omitempty"`
9617
9618	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
9619	// format.
9620	CreationTimestamp string `json:"creationTimestamp,omitempty"`
9621
9622	// Denied: The list of DENY rules specified by this firewall. Each rule
9623	// specifies a protocol and port-range tuple that describes a denied
9624	// connection.
9625	Denied []*FirewallDenied `json:"denied,omitempty"`
9626
9627	// Description: An optional description of this resource. Provide this
9628	// field when you create the resource.
9629	Description string `json:"description,omitempty"`
9630
9631	// DestinationRanges: If destination ranges are specified, the firewall
9632	// rule applies only to traffic that has destination IP address in these
9633	// ranges. These ranges must be expressed in CIDR format. Only IPv4 is
9634	// supported.
9635	DestinationRanges []string `json:"destinationRanges,omitempty"`
9636
9637	// Direction: Direction of traffic to which this firewall applies,
9638	// either `INGRESS` or `EGRESS`. The default is `INGRESS`. For `INGRESS`
9639	// traffic, you cannot specify the destinationRanges field, and for
9640	// `EGRESS` traffic, you cannot specify the sourceRanges or sourceTags
9641	// fields.
9642	//
9643	// Possible values:
9644	//   "EGRESS"
9645	//   "INGRESS"
9646	Direction string `json:"direction,omitempty"`
9647
9648	// Disabled: Denotes whether the firewall rule is disabled. When set to
9649	// true, the firewall rule is not enforced and the network behaves as if
9650	// it did not exist. If this is unspecified, the firewall rule will be
9651	// enabled.
9652	Disabled bool `json:"disabled,omitempty"`
9653
9654	// Id: [Output Only] The unique identifier for the resource. This
9655	// identifier is defined by the server.
9656	Id uint64 `json:"id,omitempty,string"`
9657
9658	// Kind: [Output Only] Type of the resource. Always compute#firewall for
9659	// firewall rules.
9660	Kind string `json:"kind,omitempty"`
9661
9662	// LogConfig: This field denotes the logging options for a particular
9663	// firewall rule. If logging is enabled, logs will be exported to Cloud
9664	// Logging.
9665	LogConfig *FirewallLogConfig `json:"logConfig,omitempty"`
9666
9667	// Name: Name of the resource; provided by the client when the resource
9668	// is created. The name must be 1-63 characters long, and comply with
9669	// RFC1035. Specifically, the name must be 1-63 characters long and
9670	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?. The first
9671	// character must be a lowercase letter, and all following characters
9672	// (except for the last character) must be a dash, lowercase letter, or
9673	// digit. The last character must be a lowercase letter or digit.
9674	Name string `json:"name,omitempty"`
9675
9676	// Network: URL of the network resource for this firewall rule. If not
9677	// specified when creating a firewall rule, the default network is
9678	// used:
9679	// global/networks/default
9680	// If you choose to specify this field, you can specify the network as a
9681	// full or partial URL. For example, the following are all valid URLs:
9682	//
9683	// -
9684	// https://www.googleapis.com/compute/v1/projects/myproject/global/networks/my-network
9685	//
9686	// - projects/myproject/global/networks/my-network
9687	// - global/networks/default
9688	Network string `json:"network,omitempty"`
9689
9690	// Priority: Priority for this rule. This is an integer between `0` and
9691	// `65535`, both inclusive. The default value is `1000`. Relative
9692	// priorities determine which rule takes effect if multiple rules apply.
9693	// Lower values indicate higher priority. For example, a rule with
9694	// priority `0` has higher precedence than a rule with priority `1`.
9695	// DENY rules take precedence over ALLOW rules if they have equal
9696	// priority. Note that VPC networks have implied rules with a priority
9697	// of `65535`. To avoid conflicts with the implied rules, use a priority
9698	// number less than `65535`.
9699	Priority int64 `json:"priority,omitempty"`
9700
9701	// SelfLink: [Output Only] Server-defined URL for the resource.
9702	SelfLink string `json:"selfLink,omitempty"`
9703
9704	// SourceRanges: If source ranges are specified, the firewall rule
9705	// applies only to traffic that has a source IP address in these ranges.
9706	// These ranges must be expressed in CIDR format. One or both of
9707	// sourceRanges and sourceTags may be set. If both fields are set, the
9708	// rule applies to traffic that has a source IP address within
9709	// sourceRanges OR a source IP from a resource with a matching tag
9710	// listed in the sourceTags field. The connection does not need to match
9711	// both fields for the rule to apply. Only IPv4 is supported.
9712	SourceRanges []string `json:"sourceRanges,omitempty"`
9713
9714	// SourceServiceAccounts: If source service accounts are specified, the
9715	// firewall rules apply only to traffic originating from an instance
9716	// with a service account in this list. Source service accounts cannot
9717	// be used to control traffic to an instance's external IP address
9718	// because service accounts are associated with an instance, not an IP
9719	// address. sourceRanges can be set at the same time as
9720	// sourceServiceAccounts. If both are set, the firewall applies to
9721	// traffic that has a source IP address within the sourceRanges OR a
9722	// source IP that belongs to an instance with service account listed in
9723	// sourceServiceAccount. The connection does not need to match both
9724	// fields for the firewall to apply. sourceServiceAccounts cannot be
9725	// used at the same time as sourceTags or targetTags.
9726	SourceServiceAccounts []string `json:"sourceServiceAccounts,omitempty"`
9727
9728	// SourceTags: If source tags are specified, the firewall rule applies
9729	// only to traffic with source IPs that match the primary network
9730	// interfaces of VM instances that have the tag and are in the same VPC
9731	// network. Source tags cannot be used to control traffic to an
9732	// instance's external IP address, it only applies to traffic between
9733	// instances in the same virtual network. Because tags are associated
9734	// with instances, not IP addresses. One or both of sourceRanges and
9735	// sourceTags may be set. If both fields are set, the firewall applies
9736	// to traffic that has a source IP address within sourceRanges OR a
9737	// source IP from a resource with a matching tag listed in the
9738	// sourceTags field. The connection does not need to match both fields
9739	// for the firewall to apply.
9740	SourceTags []string `json:"sourceTags,omitempty"`
9741
9742	// TargetServiceAccounts: A list of service accounts indicating sets of
9743	// instances located in the network that may make network connections as
9744	// specified in allowed[]. targetServiceAccounts cannot be used at the
9745	// same time as targetTags or sourceTags. If neither
9746	// targetServiceAccounts nor targetTags are specified, the firewall rule
9747	// applies to all instances on the specified network.
9748	TargetServiceAccounts []string `json:"targetServiceAccounts,omitempty"`
9749
9750	// TargetTags: A list of tags that controls which instances the firewall
9751	// rule applies to. If targetTags are specified, then the firewall rule
9752	// applies only to instances in the VPC network that have one of those
9753	// tags. If no targetTags are specified, the firewall rule applies to
9754	// all instances on the specified network.
9755	TargetTags []string `json:"targetTags,omitempty"`
9756
9757	// ServerResponse contains the HTTP response code and headers from the
9758	// server.
9759	googleapi.ServerResponse `json:"-"`
9760
9761	// ForceSendFields is a list of field names (e.g. "Allowed") to
9762	// unconditionally include in API requests. By default, fields with
9763	// empty values are omitted from API requests. However, any non-pointer,
9764	// non-interface field appearing in ForceSendFields will be sent to the
9765	// server regardless of whether the field is empty or not. This may be
9766	// used to include empty fields in Patch requests.
9767	ForceSendFields []string `json:"-"`
9768
9769	// NullFields is a list of field names (e.g. "Allowed") to include in
9770	// API requests with the JSON null value. By default, fields with empty
9771	// values are omitted from API requests. However, any field with an
9772	// empty value appearing in NullFields will be sent to the server as
9773	// null. It is an error if a field in this list has a non-empty value.
9774	// This may be used to include null fields in Patch requests.
9775	NullFields []string `json:"-"`
9776}
9777
9778func (s *Firewall) MarshalJSON() ([]byte, error) {
9779	type NoMethod Firewall
9780	raw := NoMethod(*s)
9781	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9782}
9783
9784type FirewallAllowed struct {
9785	// IPProtocol: The IP protocol to which this rule applies. The protocol
9786	// type is required when creating a firewall rule. This value can either
9787	// be one of the following well known protocol strings (tcp, udp, icmp,
9788	// esp, ah, ipip, sctp) or the IP protocol number.
9789	IPProtocol string `json:"IPProtocol,omitempty"`
9790
9791	// Ports: An optional list of ports to which this rule applies. This
9792	// field is only applicable for the UDP or TCP protocol. Each entry must
9793	// be either an integer or a range. If not specified, this rule applies
9794	// to connections through any port.
9795	//
9796	// Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
9797	Ports []string `json:"ports,omitempty"`
9798
9799	// ForceSendFields is a list of field names (e.g. "IPProtocol") to
9800	// unconditionally include in API requests. By default, fields with
9801	// empty values are omitted from API requests. However, any non-pointer,
9802	// non-interface field appearing in ForceSendFields will be sent to the
9803	// server regardless of whether the field is empty or not. This may be
9804	// used to include empty fields in Patch requests.
9805	ForceSendFields []string `json:"-"`
9806
9807	// NullFields is a list of field names (e.g. "IPProtocol") to include in
9808	// API requests with the JSON null value. By default, fields with empty
9809	// values are omitted from API requests. However, any field with an
9810	// empty value appearing in NullFields will be sent to the server as
9811	// null. It is an error if a field in this list has a non-empty value.
9812	// This may be used to include null fields in Patch requests.
9813	NullFields []string `json:"-"`
9814}
9815
9816func (s *FirewallAllowed) MarshalJSON() ([]byte, error) {
9817	type NoMethod FirewallAllowed
9818	raw := NoMethod(*s)
9819	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9820}
9821
9822type FirewallDenied struct {
9823	// IPProtocol: The IP protocol to which this rule applies. The protocol
9824	// type is required when creating a firewall rule. This value can either
9825	// be one of the following well known protocol strings (tcp, udp, icmp,
9826	// esp, ah, ipip, sctp) or the IP protocol number.
9827	IPProtocol string `json:"IPProtocol,omitempty"`
9828
9829	// Ports: An optional list of ports to which this rule applies. This
9830	// field is only applicable for the UDP or TCP protocol. Each entry must
9831	// be either an integer or a range. If not specified, this rule applies
9832	// to connections through any port.
9833	//
9834	// Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
9835	Ports []string `json:"ports,omitempty"`
9836
9837	// ForceSendFields is a list of field names (e.g. "IPProtocol") to
9838	// unconditionally include in API requests. By default, fields with
9839	// empty values are omitted from API requests. However, any non-pointer,
9840	// non-interface field appearing in ForceSendFields will be sent to the
9841	// server regardless of whether the field is empty or not. This may be
9842	// used to include empty fields in Patch requests.
9843	ForceSendFields []string `json:"-"`
9844
9845	// NullFields is a list of field names (e.g. "IPProtocol") to include in
9846	// API requests with the JSON null value. By default, fields with empty
9847	// values are omitted from API requests. However, any field with an
9848	// empty value appearing in NullFields will be sent to the server as
9849	// null. It is an error if a field in this list has a non-empty value.
9850	// This may be used to include null fields in Patch requests.
9851	NullFields []string `json:"-"`
9852}
9853
9854func (s *FirewallDenied) MarshalJSON() ([]byte, error) {
9855	type NoMethod FirewallDenied
9856	raw := NoMethod(*s)
9857	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9858}
9859
9860// FirewallList: Contains a list of firewalls.
9861type FirewallList struct {
9862	// Id: [Output Only] Unique identifier for the resource; defined by the
9863	// server.
9864	Id string `json:"id,omitempty"`
9865
9866	// Items: A list of Firewall resources.
9867	Items []*Firewall `json:"items,omitempty"`
9868
9869	// Kind: [Output Only] Type of resource. Always compute#firewallList for
9870	// lists of firewalls.
9871	Kind string `json:"kind,omitempty"`
9872
9873	// NextPageToken: [Output Only] This token allows you to get the next
9874	// page of results for list requests. If the number of results is larger
9875	// than maxResults, use the nextPageToken as a value for the query
9876	// parameter pageToken in the next list request. Subsequent list
9877	// requests will have their own nextPageToken to continue paging through
9878	// the results.
9879	NextPageToken string `json:"nextPageToken,omitempty"`
9880
9881	// SelfLink: [Output Only] Server-defined URL for this resource.
9882	SelfLink string `json:"selfLink,omitempty"`
9883
9884	// Warning: [Output Only] Informational warning message.
9885	Warning *FirewallListWarning `json:"warning,omitempty"`
9886
9887	// ServerResponse contains the HTTP response code and headers from the
9888	// server.
9889	googleapi.ServerResponse `json:"-"`
9890
9891	// ForceSendFields is a list of field names (e.g. "Id") to
9892	// unconditionally include in API requests. By default, fields with
9893	// empty values are omitted from API requests. However, any non-pointer,
9894	// non-interface field appearing in ForceSendFields will be sent to the
9895	// server regardless of whether the field is empty or not. This may be
9896	// used to include empty fields in Patch requests.
9897	ForceSendFields []string `json:"-"`
9898
9899	// NullFields is a list of field names (e.g. "Id") to include in API
9900	// requests with the JSON null value. By default, fields with empty
9901	// values are omitted from API requests. However, any field with an
9902	// empty value appearing in NullFields will be sent to the server as
9903	// null. It is an error if a field in this list has a non-empty value.
9904	// This may be used to include null fields in Patch requests.
9905	NullFields []string `json:"-"`
9906}
9907
9908func (s *FirewallList) MarshalJSON() ([]byte, error) {
9909	type NoMethod FirewallList
9910	raw := NoMethod(*s)
9911	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9912}
9913
9914// FirewallListWarning: [Output Only] Informational warning message.
9915type FirewallListWarning struct {
9916	// Code: [Output Only] A warning code, if applicable. For example,
9917	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9918	// the response.
9919	//
9920	// Possible values:
9921	//   "CLEANUP_FAILED"
9922	//   "DEPRECATED_RESOURCE_USED"
9923	//   "DEPRECATED_TYPE_USED"
9924	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9925	//   "EXPERIMENTAL_TYPE_USED"
9926	//   "EXTERNAL_API_WARNING"
9927	//   "FIELD_VALUE_OVERRIDEN"
9928	//   "INJECTED_KERNELS_DEPRECATED"
9929	//   "LARGE_DEPLOYMENT_WARNING"
9930	//   "MISSING_TYPE_DEPENDENCY"
9931	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9932	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9933	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9934	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9935	//   "NEXT_HOP_NOT_RUNNING"
9936	//   "NOT_CRITICAL_ERROR"
9937	//   "NO_RESULTS_ON_PAGE"
9938	//   "PARTIAL_SUCCESS"
9939	//   "REQUIRED_TOS_AGREEMENT"
9940	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9941	//   "RESOURCE_NOT_DELETED"
9942	//   "SCHEMA_VALIDATION_IGNORED"
9943	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9944	//   "UNDECLARED_PROPERTIES"
9945	//   "UNREACHABLE"
9946	Code string `json:"code,omitempty"`
9947
9948	// Data: [Output Only] Metadata about this warning in key: value format.
9949	// For example:
9950	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9951	Data []*FirewallListWarningData `json:"data,omitempty"`
9952
9953	// Message: [Output Only] A human-readable description of the warning
9954	// code.
9955	Message string `json:"message,omitempty"`
9956
9957	// ForceSendFields is a list of field names (e.g. "Code") to
9958	// unconditionally include in API requests. By default, fields with
9959	// empty values are omitted from API requests. However, any non-pointer,
9960	// non-interface field appearing in ForceSendFields will be sent to the
9961	// server regardless of whether the field is empty or not. This may be
9962	// used to include empty fields in Patch requests.
9963	ForceSendFields []string `json:"-"`
9964
9965	// NullFields is a list of field names (e.g. "Code") to include in API
9966	// requests with the JSON null value. By default, fields with empty
9967	// values are omitted from API requests. However, any field with an
9968	// empty value appearing in NullFields will be sent to the server as
9969	// null. It is an error if a field in this list has a non-empty value.
9970	// This may be used to include null fields in Patch requests.
9971	NullFields []string `json:"-"`
9972}
9973
9974func (s *FirewallListWarning) MarshalJSON() ([]byte, error) {
9975	type NoMethod FirewallListWarning
9976	raw := NoMethod(*s)
9977	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9978}
9979
9980type FirewallListWarningData struct {
9981	// Key: [Output Only] A key that provides more detail on the warning
9982	// being returned. For example, for warnings where there are no results
9983	// in a list request for a particular zone, this key might be scope and
9984	// the key value might be the zone name. Other examples might be a key
9985	// indicating a deprecated resource and a suggested replacement, or a
9986	// warning about invalid network settings (for example, if an instance
9987	// attempts to perform IP forwarding but is not enabled for IP
9988	// forwarding).
9989	Key string `json:"key,omitempty"`
9990
9991	// Value: [Output Only] A warning data value corresponding to the key.
9992	Value string `json:"value,omitempty"`
9993
9994	// ForceSendFields is a list of field names (e.g. "Key") to
9995	// unconditionally include in API requests. By default, fields with
9996	// empty values are omitted from API requests. However, any non-pointer,
9997	// non-interface field appearing in ForceSendFields will be sent to the
9998	// server regardless of whether the field is empty or not. This may be
9999	// used to include empty fields in Patch requests.
10000	ForceSendFields []string `json:"-"`
10001
10002	// NullFields is a list of field names (e.g. "Key") to include in API
10003	// requests with the JSON null value. By default, fields with empty
10004	// values are omitted from API requests. However, any field with an
10005	// empty value appearing in NullFields will be sent to the server as
10006	// null. It is an error if a field in this list has a non-empty value.
10007	// This may be used to include null fields in Patch requests.
10008	NullFields []string `json:"-"`
10009}
10010
10011func (s *FirewallListWarningData) MarshalJSON() ([]byte, error) {
10012	type NoMethod FirewallListWarningData
10013	raw := NoMethod(*s)
10014	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10015}
10016
10017// FirewallLogConfig: The available logging options for a firewall rule.
10018type FirewallLogConfig struct {
10019	// Enable: This field denotes whether to enable logging for a particular
10020	// firewall rule.
10021	Enable bool `json:"enable,omitempty"`
10022
10023	// Metadata: This field can only be specified for a particular firewall
10024	// rule if logging is enabled for that rule. This field denotes whether
10025	// to include or exclude metadata for firewall logs.
10026	//
10027	// Possible values:
10028	//   "EXCLUDE_ALL_METADATA"
10029	//   "INCLUDE_ALL_METADATA"
10030	Metadata string `json:"metadata,omitempty"`
10031
10032	// ForceSendFields is a list of field names (e.g. "Enable") to
10033	// unconditionally include in API requests. By default, fields with
10034	// empty values are omitted from API requests. However, any non-pointer,
10035	// non-interface field appearing in ForceSendFields will be sent to the
10036	// server regardless of whether the field is empty or not. This may be
10037	// used to include empty fields in Patch requests.
10038	ForceSendFields []string `json:"-"`
10039
10040	// NullFields is a list of field names (e.g. "Enable") to include in API
10041	// requests with the JSON null value. By default, fields with empty
10042	// values are omitted from API requests. However, any field with an
10043	// empty value appearing in NullFields will be sent to the server as
10044	// null. It is an error if a field in this list has a non-empty value.
10045	// This may be used to include null fields in Patch requests.
10046	NullFields []string `json:"-"`
10047}
10048
10049func (s *FirewallLogConfig) MarshalJSON() ([]byte, error) {
10050	type NoMethod FirewallLogConfig
10051	raw := NoMethod(*s)
10052	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10053}
10054
10055type FirewallPoliciesListAssociationsResponse struct {
10056	// Associations: A list of associations.
10057	Associations []*FirewallPolicyAssociation `json:"associations,omitempty"`
10058
10059	// Kind: [Output Only] Type of firewallPolicy associations. Always
10060	// compute#FirewallPoliciesListAssociations for lists of firewallPolicy
10061	// associations.
10062	Kind string `json:"kind,omitempty"`
10063
10064	// ServerResponse contains the HTTP response code and headers from the
10065	// server.
10066	googleapi.ServerResponse `json:"-"`
10067
10068	// ForceSendFields is a list of field names (e.g. "Associations") to
10069	// unconditionally include in API requests. By default, fields with
10070	// empty values are omitted from API requests. However, any non-pointer,
10071	// non-interface field appearing in ForceSendFields will be sent to the
10072	// server regardless of whether the field is empty or not. This may be
10073	// used to include empty fields in Patch requests.
10074	ForceSendFields []string `json:"-"`
10075
10076	// NullFields is a list of field names (e.g. "Associations") to include
10077	// in API requests with the JSON null value. By default, fields with
10078	// empty values are omitted from API requests. However, any field with
10079	// an empty value appearing in NullFields will be sent to the server as
10080	// null. It is an error if a field in this list has a non-empty value.
10081	// This may be used to include null fields in Patch requests.
10082	NullFields []string `json:"-"`
10083}
10084
10085func (s *FirewallPoliciesListAssociationsResponse) MarshalJSON() ([]byte, error) {
10086	type NoMethod FirewallPoliciesListAssociationsResponse
10087	raw := NoMethod(*s)
10088	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10089}
10090
10091// FirewallPolicy: Represents a Firewall Policy resource. (==
10092// resource_for {$api_version}.firewallPolicies ==)
10093type FirewallPolicy struct {
10094	// Associations: A list of associations that belong to this firewall
10095	// policy.
10096	Associations []*FirewallPolicyAssociation `json:"associations,omitempty"`
10097
10098	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
10099	// format.
10100	CreationTimestamp string `json:"creationTimestamp,omitempty"`
10101
10102	// Description: An optional description of this resource. Provide this
10103	// property when you create the resource.
10104	Description string `json:"description,omitempty"`
10105
10106	// DisplayName: Depreacted, please use short name instead. User-provided
10107	// name of the Organization firewall plicy. The name should be unique in
10108	// the organization in which the firewall policy is created. The name
10109	// must be 1-63 characters long, and comply with RFC1035. Specifically,
10110	// the name must be 1-63 characters long and match the regular
10111	// expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
10112	// character must be a lowercase letter, and all following characters
10113	// must be a dash, lowercase letter, or digit, except the last
10114	// character, which cannot be a dash.
10115	DisplayName string `json:"displayName,omitempty"`
10116
10117	// Fingerprint: Specifies a fingerprint for this resource, which is
10118	// essentially a hash of the metadata's contents and used for optimistic
10119	// locking. The fingerprint is initially generated by Compute Engine and
10120	// changes after every request to modify or update metadata. You must
10121	// always provide an up-to-date fingerprint hash in order to update or
10122	// change metadata, otherwise the request will fail with error 412
10123	// conditionNotMet.
10124	//
10125	// To see the latest fingerprint, make get() request to the firewall
10126	// policy.
10127	Fingerprint string `json:"fingerprint,omitempty"`
10128
10129	// Id: [Output Only] The unique identifier for the resource. This
10130	// identifier is defined by the server.
10131	Id uint64 `json:"id,omitempty,string"`
10132
10133	// Kind: [Output only] Type of the resource. Always
10134	// compute#firewallPolicyfor firewall policies
10135	Kind string `json:"kind,omitempty"`
10136
10137	// Name: [Output Only] Name of the resource. It is a numeric ID
10138	// allocated by GCP which uniquely identifies the Firewall Policy.
10139	Name string `json:"name,omitempty"`
10140
10141	// Parent: [Output Only] The parent of the firewall policy.
10142	Parent string `json:"parent,omitempty"`
10143
10144	// RuleTupleCount: [Output Only] Total count of all firewall policy rule
10145	// tuples. A firewall policy can not exceed a set number of tuples.
10146	RuleTupleCount int64 `json:"ruleTupleCount,omitempty"`
10147
10148	// Rules: A list of rules that belong to this policy. There must always
10149	// be a default rule (rule with priority 2147483647 and match "*"). If
10150	// no rules are provided when creating a firewall policy, a default rule
10151	// with action "allow" will be added.
10152	Rules []*FirewallPolicyRule `json:"rules,omitempty"`
10153
10154	// SelfLink: [Output Only] Server-defined URL for the resource.
10155	SelfLink string `json:"selfLink,omitempty"`
10156
10157	// SelfLinkWithId: [Output Only] Server-defined URL for this resource
10158	// with the resource id.
10159	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
10160
10161	// ShortName: User-provided name of the Organization firewall plicy. The
10162	// name should be unique in the organization in which the firewall
10163	// policy is created. The name must be 1-63 characters long, and comply
10164	// with RFC1035. Specifically, the name must be 1-63 characters long and
10165	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
10166	// the first character must be a lowercase letter, and all following
10167	// characters must be a dash, lowercase letter, or digit, except the
10168	// last character, which cannot be a dash.
10169	ShortName string `json:"shortName,omitempty"`
10170
10171	// ServerResponse contains the HTTP response code and headers from the
10172	// server.
10173	googleapi.ServerResponse `json:"-"`
10174
10175	// ForceSendFields is a list of field names (e.g. "Associations") to
10176	// unconditionally include in API requests. By default, fields with
10177	// empty values are omitted from API requests. However, any non-pointer,
10178	// non-interface field appearing in ForceSendFields will be sent to the
10179	// server regardless of whether the field is empty or not. This may be
10180	// used to include empty fields in Patch requests.
10181	ForceSendFields []string `json:"-"`
10182
10183	// NullFields is a list of field names (e.g. "Associations") to include
10184	// in API requests with the JSON null value. By default, fields with
10185	// empty values are omitted from API requests. However, any field with
10186	// an empty value appearing in NullFields will be sent to the server as
10187	// null. It is an error if a field in this list has a non-empty value.
10188	// This may be used to include null fields in Patch requests.
10189	NullFields []string `json:"-"`
10190}
10191
10192func (s *FirewallPolicy) MarshalJSON() ([]byte, error) {
10193	type NoMethod FirewallPolicy
10194	raw := NoMethod(*s)
10195	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10196}
10197
10198type FirewallPolicyAssociation struct {
10199	// AttachmentTarget: The target that the firewall policy is attached to.
10200	AttachmentTarget string `json:"attachmentTarget,omitempty"`
10201
10202	// DisplayName: [Output Only] Deprecated, please use short name instead.
10203	// The display name of the firewall policy of the association.
10204	DisplayName string `json:"displayName,omitempty"`
10205
10206	// FirewallPolicyId: [Output Only] The firewall policy ID of the
10207	// association.
10208	FirewallPolicyId string `json:"firewallPolicyId,omitempty"`
10209
10210	// Name: The name for an association.
10211	Name string `json:"name,omitempty"`
10212
10213	// ShortName: [Output Only] The short name of the firewall policy of the
10214	// association.
10215	ShortName string `json:"shortName,omitempty"`
10216
10217	// ServerResponse contains the HTTP response code and headers from the
10218	// server.
10219	googleapi.ServerResponse `json:"-"`
10220
10221	// ForceSendFields is a list of field names (e.g. "AttachmentTarget") to
10222	// unconditionally include in API requests. By default, fields with
10223	// empty values are omitted from API requests. However, any non-pointer,
10224	// non-interface field appearing in ForceSendFields will be sent to the
10225	// server regardless of whether the field is empty or not. This may be
10226	// used to include empty fields in Patch requests.
10227	ForceSendFields []string `json:"-"`
10228
10229	// NullFields is a list of field names (e.g. "AttachmentTarget") to
10230	// include in API requests with the JSON null value. By default, fields
10231	// with empty values are omitted from API requests. However, any field
10232	// with an empty value appearing in NullFields will be sent to the
10233	// server as null. It is an error if a field in this list has a
10234	// non-empty value. This may be used to include null fields in Patch
10235	// requests.
10236	NullFields []string `json:"-"`
10237}
10238
10239func (s *FirewallPolicyAssociation) MarshalJSON() ([]byte, error) {
10240	type NoMethod FirewallPolicyAssociation
10241	raw := NoMethod(*s)
10242	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10243}
10244
10245type FirewallPolicyList struct {
10246	// Id: [Output Only] Unique identifier for the resource; defined by the
10247	// server.
10248	Id string `json:"id,omitempty"`
10249
10250	// Items: A list of FirewallPolicy resources.
10251	Items []*FirewallPolicy `json:"items,omitempty"`
10252
10253	// Kind: [Output Only] Type of resource. Always
10254	// compute#firewallPolicyList for listsof FirewallPolicies
10255	Kind string `json:"kind,omitempty"`
10256
10257	// NextPageToken: [Output Only] This token allows you to get the next
10258	// page of results for list requests. If the number of results is larger
10259	// than maxResults, use the nextPageToken as a value for the query
10260	// parameter pageToken in the next list request. Subsequent list
10261	// requests will have their own nextPageToken to continue paging through
10262	// the results.
10263	NextPageToken string `json:"nextPageToken,omitempty"`
10264
10265	// Warning: [Output Only] Informational warning message.
10266	Warning *FirewallPolicyListWarning `json:"warning,omitempty"`
10267
10268	// ServerResponse contains the HTTP response code and headers from the
10269	// server.
10270	googleapi.ServerResponse `json:"-"`
10271
10272	// ForceSendFields is a list of field names (e.g. "Id") to
10273	// unconditionally include in API requests. By default, fields with
10274	// empty values are omitted from API requests. However, any non-pointer,
10275	// non-interface field appearing in ForceSendFields will be sent to the
10276	// server regardless of whether the field is empty or not. This may be
10277	// used to include empty fields in Patch requests.
10278	ForceSendFields []string `json:"-"`
10279
10280	// NullFields is a list of field names (e.g. "Id") to include in API
10281	// requests with the JSON null value. By default, fields with empty
10282	// values are omitted from API requests. However, any field with an
10283	// empty value appearing in NullFields will be sent to the server as
10284	// null. It is an error if a field in this list has a non-empty value.
10285	// This may be used to include null fields in Patch requests.
10286	NullFields []string `json:"-"`
10287}
10288
10289func (s *FirewallPolicyList) MarshalJSON() ([]byte, error) {
10290	type NoMethod FirewallPolicyList
10291	raw := NoMethod(*s)
10292	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10293}
10294
10295// FirewallPolicyListWarning: [Output Only] Informational warning
10296// message.
10297type FirewallPolicyListWarning struct {
10298	// Code: [Output Only] A warning code, if applicable. For example,
10299	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10300	// the response.
10301	//
10302	// Possible values:
10303	//   "CLEANUP_FAILED"
10304	//   "DEPRECATED_RESOURCE_USED"
10305	//   "DEPRECATED_TYPE_USED"
10306	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
10307	//   "EXPERIMENTAL_TYPE_USED"
10308	//   "EXTERNAL_API_WARNING"
10309	//   "FIELD_VALUE_OVERRIDEN"
10310	//   "INJECTED_KERNELS_DEPRECATED"
10311	//   "LARGE_DEPLOYMENT_WARNING"
10312	//   "MISSING_TYPE_DEPENDENCY"
10313	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
10314	//   "NEXT_HOP_CANNOT_IP_FORWARD"
10315	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
10316	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
10317	//   "NEXT_HOP_NOT_RUNNING"
10318	//   "NOT_CRITICAL_ERROR"
10319	//   "NO_RESULTS_ON_PAGE"
10320	//   "PARTIAL_SUCCESS"
10321	//   "REQUIRED_TOS_AGREEMENT"
10322	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
10323	//   "RESOURCE_NOT_DELETED"
10324	//   "SCHEMA_VALIDATION_IGNORED"
10325	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
10326	//   "UNDECLARED_PROPERTIES"
10327	//   "UNREACHABLE"
10328	Code string `json:"code,omitempty"`
10329
10330	// Data: [Output Only] Metadata about this warning in key: value format.
10331	// For example:
10332	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
10333	Data []*FirewallPolicyListWarningData `json:"data,omitempty"`
10334
10335	// Message: [Output Only] A human-readable description of the warning
10336	// code.
10337	Message string `json:"message,omitempty"`
10338
10339	// ForceSendFields is a list of field names (e.g. "Code") to
10340	// unconditionally include in API requests. By default, fields with
10341	// empty values are omitted from API requests. However, any non-pointer,
10342	// non-interface field appearing in ForceSendFields will be sent to the
10343	// server regardless of whether the field is empty or not. This may be
10344	// used to include empty fields in Patch requests.
10345	ForceSendFields []string `json:"-"`
10346
10347	// NullFields is a list of field names (e.g. "Code") to include in API
10348	// requests with the JSON null value. By default, fields with empty
10349	// values are omitted from API requests. However, any field with an
10350	// empty value appearing in NullFields will be sent to the server as
10351	// null. It is an error if a field in this list has a non-empty value.
10352	// This may be used to include null fields in Patch requests.
10353	NullFields []string `json:"-"`
10354}
10355
10356func (s *FirewallPolicyListWarning) MarshalJSON() ([]byte, error) {
10357	type NoMethod FirewallPolicyListWarning
10358	raw := NoMethod(*s)
10359	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10360}
10361
10362type FirewallPolicyListWarningData struct {
10363	// Key: [Output Only] A key that provides more detail on the warning
10364	// being returned. For example, for warnings where there are no results
10365	// in a list request for a particular zone, this key might be scope and
10366	// the key value might be the zone name. Other examples might be a key
10367	// indicating a deprecated resource and a suggested replacement, or a
10368	// warning about invalid network settings (for example, if an instance
10369	// attempts to perform IP forwarding but is not enabled for IP
10370	// forwarding).
10371	Key string `json:"key,omitempty"`
10372
10373	// Value: [Output Only] A warning data value corresponding to the key.
10374	Value string `json:"value,omitempty"`
10375
10376	// ForceSendFields is a list of field names (e.g. "Key") to
10377	// unconditionally include in API requests. By default, fields with
10378	// empty values are omitted from API requests. However, any non-pointer,
10379	// non-interface field appearing in ForceSendFields will be sent to the
10380	// server regardless of whether the field is empty or not. This may be
10381	// used to include empty fields in Patch requests.
10382	ForceSendFields []string `json:"-"`
10383
10384	// NullFields is a list of field names (e.g. "Key") to include in API
10385	// requests with the JSON null value. By default, fields with empty
10386	// values are omitted from API requests. However, any field with an
10387	// empty value appearing in NullFields will be sent to the server as
10388	// null. It is an error if a field in this list has a non-empty value.
10389	// This may be used to include null fields in Patch requests.
10390	NullFields []string `json:"-"`
10391}
10392
10393func (s *FirewallPolicyListWarningData) MarshalJSON() ([]byte, error) {
10394	type NoMethod FirewallPolicyListWarningData
10395	raw := NoMethod(*s)
10396	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10397}
10398
10399// FirewallPolicyRule: Represents a rule that describes one or more
10400// match conditions along with the action to be taken when traffic
10401// matches this condition (allow or deny).
10402type FirewallPolicyRule struct {
10403	// Action: The Action to perform when the client connection triggers the
10404	// rule. Can currently be either "allow" or "deny()" where valid values
10405	// for status are 403, 404, and 502.
10406	Action string `json:"action,omitempty"`
10407
10408	// Description: An optional description for this resource.
10409	Description string `json:"description,omitempty"`
10410
10411	// Direction: The direction in which this rule applies.
10412	//
10413	// Possible values:
10414	//   "EGRESS"
10415	//   "INGRESS"
10416	Direction string `json:"direction,omitempty"`
10417
10418	// Disabled: Denotes whether the firewall policy rule is disabled. When
10419	// set to true, the firewall policy rule is not enforced and traffic
10420	// behaves as if it did not exist. If this is unspecified, the firewall
10421	// policy rule will be enabled.
10422	Disabled bool `json:"disabled,omitempty"`
10423
10424	// EnableLogging: Denotes whether to enable logging for a particular
10425	// rule. If logging is enabled, logs will be exported to the configured
10426	// export destination in Stackdriver. Logs may be exported to BigQuery
10427	// or Pub/Sub. Note: you cannot enable logging on "goto_next" rules.
10428	EnableLogging bool `json:"enableLogging,omitempty"`
10429
10430	// Kind: [Output only] Type of the resource. Always
10431	// compute#firewallPolicyRule for firewall policy rules
10432	Kind string `json:"kind,omitempty"`
10433
10434	// Match: A match condition that incoming traffic is evaluated against.
10435	// If it evaluates to true, the corresponding 'action' is enforced.
10436	Match *FirewallPolicyRuleMatcher `json:"match,omitempty"`
10437
10438	// Priority: An integer indicating the priority of a rule in the list.
10439	// The priority must be a positive value between 0 and 2147483647. Rules
10440	// are evaluated from highest to lowest priority where 0 is the highest
10441	// priority and 2147483647 is the lowest prority.
10442	Priority int64 `json:"priority,omitempty"`
10443
10444	// RuleTupleCount: [Output Only] Calculation of the complexity of a
10445	// single firewall policy rule.
10446	RuleTupleCount int64 `json:"ruleTupleCount,omitempty"`
10447
10448	// TargetResources: A list of network resource URLs to which this rule
10449	// applies. This field allows you to control which network's VMs get
10450	// this rule. If this field is left blank, all VMs within the
10451	// organization will receive the rule.
10452	TargetResources []string `json:"targetResources,omitempty"`
10453
10454	// TargetServiceAccounts: A list of service accounts indicating the sets
10455	// of instances that are applied with this rule.
10456	TargetServiceAccounts []string `json:"targetServiceAccounts,omitempty"`
10457
10458	// ServerResponse contains the HTTP response code and headers from the
10459	// server.
10460	googleapi.ServerResponse `json:"-"`
10461
10462	// ForceSendFields is a list of field names (e.g. "Action") to
10463	// unconditionally include in API requests. By default, fields with
10464	// empty values are omitted from API requests. However, any non-pointer,
10465	// non-interface field appearing in ForceSendFields will be sent to the
10466	// server regardless of whether the field is empty or not. This may be
10467	// used to include empty fields in Patch requests.
10468	ForceSendFields []string `json:"-"`
10469
10470	// NullFields is a list of field names (e.g. "Action") to include in API
10471	// requests with the JSON null value. By default, fields with empty
10472	// values are omitted from API requests. However, any field with an
10473	// empty value appearing in NullFields will be sent to the server as
10474	// null. It is an error if a field in this list has a non-empty value.
10475	// This may be used to include null fields in Patch requests.
10476	NullFields []string `json:"-"`
10477}
10478
10479func (s *FirewallPolicyRule) MarshalJSON() ([]byte, error) {
10480	type NoMethod FirewallPolicyRule
10481	raw := NoMethod(*s)
10482	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10483}
10484
10485// FirewallPolicyRuleMatcher: Represents a match condition that incoming
10486// traffic is evaluated against. Exactly one field must be specified.
10487type FirewallPolicyRuleMatcher struct {
10488	// DestIpRanges: CIDR IP address range. Maximum number of destination
10489	// CIDR IP ranges allowed is 256.
10490	DestIpRanges []string `json:"destIpRanges,omitempty"`
10491
10492	// Layer4Configs: Pairs of IP protocols and ports that the rule should
10493	// match.
10494	Layer4Configs []*FirewallPolicyRuleMatcherLayer4Config `json:"layer4Configs,omitempty"`
10495
10496	// SrcIpRanges: CIDR IP address range. Maximum number of source CIDR IP
10497	// ranges allowed is 256.
10498	SrcIpRanges []string `json:"srcIpRanges,omitempty"`
10499
10500	// ForceSendFields is a list of field names (e.g. "DestIpRanges") to
10501	// unconditionally include in API requests. By default, fields with
10502	// empty values are omitted from API requests. However, any non-pointer,
10503	// non-interface field appearing in ForceSendFields will be sent to the
10504	// server regardless of whether the field is empty or not. This may be
10505	// used to include empty fields in Patch requests.
10506	ForceSendFields []string `json:"-"`
10507
10508	// NullFields is a list of field names (e.g. "DestIpRanges") to include
10509	// in API requests with the JSON null value. By default, fields with
10510	// empty values are omitted from API requests. However, any field with
10511	// an empty value appearing in NullFields will be sent to the server as
10512	// null. It is an error if a field in this list has a non-empty value.
10513	// This may be used to include null fields in Patch requests.
10514	NullFields []string `json:"-"`
10515}
10516
10517func (s *FirewallPolicyRuleMatcher) MarshalJSON() ([]byte, error) {
10518	type NoMethod FirewallPolicyRuleMatcher
10519	raw := NoMethod(*s)
10520	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10521}
10522
10523type FirewallPolicyRuleMatcherLayer4Config struct {
10524	// IpProtocol: The IP protocol to which this rule applies. The protocol
10525	// type is required when creating a firewall rule. This value can either
10526	// be one of the following well known protocol strings (tcp, udp, icmp,
10527	// esp, ah, ipip, sctp), or the IP protocol number.
10528	IpProtocol string `json:"ipProtocol,omitempty"`
10529
10530	// Ports: An optional list of ports to which this rule applies. This
10531	// field is only applicable for UDP or TCP protocol. Each entry must be
10532	// either an integer or a range. If not specified, this rule applies to
10533	// connections through any port.
10534	//
10535	// Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
10536	Ports []string `json:"ports,omitempty"`
10537
10538	// ForceSendFields is a list of field names (e.g. "IpProtocol") to
10539	// unconditionally include in API requests. By default, fields with
10540	// empty values are omitted from API requests. However, any non-pointer,
10541	// non-interface field appearing in ForceSendFields will be sent to the
10542	// server regardless of whether the field is empty or not. This may be
10543	// used to include empty fields in Patch requests.
10544	ForceSendFields []string `json:"-"`
10545
10546	// NullFields is a list of field names (e.g. "IpProtocol") to include in
10547	// API requests with the JSON null value. By default, fields with empty
10548	// values are omitted from API requests. However, any field with an
10549	// empty value appearing in NullFields will be sent to the server as
10550	// null. It is an error if a field in this list has a non-empty value.
10551	// This may be used to include null fields in Patch requests.
10552	NullFields []string `json:"-"`
10553}
10554
10555func (s *FirewallPolicyRuleMatcherLayer4Config) MarshalJSON() ([]byte, error) {
10556	type NoMethod FirewallPolicyRuleMatcherLayer4Config
10557	raw := NoMethod(*s)
10558	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10559}
10560
10561// FixedOrPercent: Encapsulates numeric value that can be either
10562// absolute or relative.
10563type FixedOrPercent struct {
10564	// Calculated: [Output Only] Absolute value of VM instances calculated
10565	// based on the specific mode.
10566	//
10567	//
10568	// - If the value is fixed, then the calculated value is equal to the
10569	// fixed value.
10570	// - If the value is a percent, then the calculated value is percent/100
10571	// * targetSize. For example, the calculated value of a 80% of a managed
10572	// instance group with 150 instances would be (80/100 * 150) = 120 VM
10573	// instances. If there is a remainder, the number is rounded.
10574	Calculated int64 `json:"calculated,omitempty"`
10575
10576	// Fixed: Specifies a fixed number of VM instances. This must be a
10577	// positive integer.
10578	Fixed int64 `json:"fixed,omitempty"`
10579
10580	// Percent: Specifies a percentage of instances between 0 to 100%,
10581	// inclusive. For example, specify 80 for 80%.
10582	Percent int64 `json:"percent,omitempty"`
10583
10584	// ForceSendFields is a list of field names (e.g. "Calculated") to
10585	// unconditionally include in API requests. By default, fields with
10586	// empty values are omitted from API requests. However, any non-pointer,
10587	// non-interface field appearing in ForceSendFields will be sent to the
10588	// server regardless of whether the field is empty or not. This may be
10589	// used to include empty fields in Patch requests.
10590	ForceSendFields []string `json:"-"`
10591
10592	// NullFields is a list of field names (e.g. "Calculated") to include in
10593	// API requests with the JSON null value. By default, fields with empty
10594	// values are omitted from API requests. However, any field with an
10595	// empty value appearing in NullFields will be sent to the server as
10596	// null. It is an error if a field in this list has a non-empty value.
10597	// This may be used to include null fields in Patch requests.
10598	NullFields []string `json:"-"`
10599}
10600
10601func (s *FixedOrPercent) MarshalJSON() ([]byte, error) {
10602	type NoMethod FixedOrPercent
10603	raw := NoMethod(*s)
10604	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10605}
10606
10607// ForwardingRule: Represents a Forwarding Rule resource.
10608//
10609// Forwarding rule resources in GCP can be either regional or global in
10610// scope:
10611//
10612// * Global
10613// (/compute/docs/reference/rest/{$api_version}/globalForwardingRules) *
10614// Regional
10615// (/compute/docs/reference/rest/{$api_version}/forwardingRules)
10616//
10617// A forwarding rule and its corresponding IP address represent the
10618// frontend configuration of a Google Cloud Platform load balancer.
10619// Forwarding rules can also reference target instances and Cloud VPN
10620// Classic gateways (targetVpnGateway).
10621//
10622// For more information, read Forwarding rule concepts and Using
10623// protocol forwarding.
10624//
10625// (== resource_for {$api_version}.forwardingRules ==) (== resource_for
10626// {$api_version}.globalForwardingRules ==) (== resource_for
10627// {$api_version}.regionForwardingRules ==)
10628type ForwardingRule struct {
10629	// IPAddress: IP address that this forwarding rule serves. When a client
10630	// sends traffic to this IP address, the forwarding rule directs the
10631	// traffic to the target that you specify in the forwarding rule.
10632	//
10633	// If you don't specify a reserved IP address, an ephemeral IP address
10634	// is assigned. Methods for specifying an IP address:
10635	//
10636	// * IPv4 dotted decimal, as in `100.1.2.3` * Full URL, as in
10637	// https://www.googleapis.com/compute/v1/projects/project_id/regions/region/addresses/address-name
10638	// * Partial URL or by name, as in:
10639	// - projects/project_id/regions/region/addresses/address-name
10640	// - regions/region/addresses/address-name
10641	// - global/addresses/address-name
10642	// - address-name
10643	//
10644	// The loadBalancingScheme and the forwarding rule's target determine
10645	// the type of IP address that you can use. For detailed information,
10646	// refer to IP address specifications
10647	// (/load-balancing/docs/forwarding-rule-concepts#ip_address_specificatio
10648	// ns).
10649	//
10650	// Must be set to `0.0.0.0` when the target is targetGrpcProxy that has
10651	// validateForProxyless field set to true.
10652	//
10653	// For Private Service Connect forwarding rules that forward traffic to
10654	// Google APIs, IP address must be provided.
10655	IPAddress string `json:"IPAddress,omitempty"`
10656
10657	// IPProtocol: The IP protocol to which this rule applies.
10658	//
10659	// For protocol forwarding, valid options are TCP, UDP, ESP, AH, SCTP,
10660	// ICMP and L3_DEFAULT.
10661	//
10662	// The valid IP protocols are different for different load balancing
10663	// products:
10664	// - Internal TCP/UDP Load Balancing: The load balancing scheme is
10665	// INTERNAL, and one of TCP, UDP or L3_DEFAULT is valid.
10666	// - Traffic Director: The load balancing scheme is
10667	// INTERNAL_SELF_MANAGED, and only TCP is valid.
10668	// - Internal HTTP(S) Load Balancing: The load balancing scheme is
10669	// INTERNAL_MANAGED, and only TCP is valid.
10670	// - HTTP(S), SSL Proxy, and TCP Proxy Load Balancing: The load
10671	// balancing scheme is EXTERNAL and only TCP is valid.
10672	// - Network Load Balancing: The load balancing scheme is EXTERNAL, and
10673	// one of TCP, UDP or L3_DEFAULT is valid.
10674	//
10675	// Possible values:
10676	//   "AH"
10677	//   "ESP"
10678	//   "ICMP"
10679	//   "SCTP"
10680	//   "TCP"
10681	//   "UDP"
10682	IPProtocol string `json:"IPProtocol,omitempty"`
10683
10684	// AllPorts: This field is used along with the backend_service field for
10685	// Internal TCP/UDP Load Balancing or Network Load Balancing, or with
10686	// the target field for internal and external TargetInstance.
10687	//
10688	// You can only use one of ports and port_range, or allPorts. The three
10689	// are mutually exclusive.
10690	//
10691	// For TCP, UDP and SCTP traffic, packets addressed to any ports will be
10692	// forwarded to the target or backendService.
10693	AllPorts bool `json:"allPorts,omitempty"`
10694
10695	// AllowGlobalAccess: This field is used along with the backend_service
10696	// field for internal load balancing or with the target field for
10697	// internal TargetInstance. If the field is set to TRUE, clients can
10698	// access ILB from all regions. Otherwise only allows access from
10699	// clients in the same region as the internal load balancer.
10700	AllowGlobalAccess bool `json:"allowGlobalAccess,omitempty"`
10701
10702	// BackendService: Identifies the backend service to which the
10703	// forwarding rule sends traffic. Required for Internal TCP/UDP Load
10704	// Balancing and Network Load Balancing; must be omitted for all other
10705	// load balancer types.
10706	BackendService string `json:"backendService,omitempty"`
10707
10708	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
10709	// format.
10710	CreationTimestamp string `json:"creationTimestamp,omitempty"`
10711
10712	// Description: An optional description of this resource. Provide this
10713	// property when you create the resource.
10714	Description string `json:"description,omitempty"`
10715
10716	// Fingerprint: Fingerprint of this resource. A hash of the contents
10717	// stored in this object. This field is used in optimistic locking. This
10718	// field will be ignored when inserting a ForwardingRule. Include the
10719	// fingerprint in patch request to ensure that you do not overwrite
10720	// changes that were applied from another concurrent request.
10721	//
10722	// To see the latest fingerprint, make a get() request to retrieve a
10723	// ForwardingRule.
10724	Fingerprint string `json:"fingerprint,omitempty"`
10725
10726	// Id: [Output Only] The unique identifier for the resource. This
10727	// identifier is defined by the server.
10728	Id uint64 `json:"id,omitempty,string"`
10729
10730	// IpVersion: The IP Version that will be used by this forwarding rule.
10731	// Valid options are IPV4 or IPV6. This can only be specified for an
10732	// external global forwarding rule.
10733	//
10734	// Possible values:
10735	//   "IPV4"
10736	//   "IPV6"
10737	//   "UNSPECIFIED_VERSION"
10738	IpVersion string `json:"ipVersion,omitempty"`
10739
10740	// IsMirroringCollector: Indicates whether or not this load balancer can
10741	// be used as a collector for packet mirroring. To prevent mirroring
10742	// loops, instances behind this load balancer will not have their
10743	// traffic mirrored even if a PacketMirroring rule applies to them. This
10744	// can only be set to true for load balancers that have their
10745	// loadBalancingScheme set to INTERNAL.
10746	IsMirroringCollector bool `json:"isMirroringCollector,omitempty"`
10747
10748	// Kind: [Output Only] Type of the resource. Always
10749	// compute#forwardingRule for Forwarding Rule resources.
10750	Kind string `json:"kind,omitempty"`
10751
10752	// LabelFingerprint: A fingerprint for the labels being applied to this
10753	// resource, which is essentially a hash of the labels set used for
10754	// optimistic locking. The fingerprint is initially generated by Compute
10755	// Engine and changes after every request to modify or update labels.
10756	// You must always provide an up-to-date fingerprint hash in order to
10757	// update or change labels, otherwise the request will fail with error
10758	// 412 conditionNotMet.
10759	//
10760	// To see the latest fingerprint, make a get() request to retrieve a
10761	// ForwardingRule.
10762	LabelFingerprint string `json:"labelFingerprint,omitempty"`
10763
10764	// Labels: Labels for this resource. These can only be added or modified
10765	// by the setLabels method. Each label key/value pair must comply with
10766	// RFC1035. Label values may be empty.
10767	Labels map[string]string `json:"labels,omitempty"`
10768
10769	// LoadBalancingScheme: Specifies the forwarding rule type.
10770	//
10771	//
10772	// - EXTERNAL is used for:
10773	// - Classic Cloud VPN gateways
10774	// - Protocol forwarding to VMs from an external IP address
10775	// - HTTP(S), SSL Proxy, TCP Proxy, and Network Load Balancing
10776	// - INTERNAL is used for:
10777	// - Protocol forwarding to VMs from an internal IP address
10778	// - Internal TCP/UDP Load Balancing
10779	// - INTERNAL_MANAGED is used for:
10780	// - Internal HTTP(S) Load Balancing
10781	// - INTERNAL_SELF_MANAGED is used for:
10782	// - Traffic Director
10783	//
10784	// For more information about forwarding rules, refer to Forwarding rule
10785	// concepts.
10786	//
10787	// Possible values:
10788	//   "EXTERNAL"
10789	//   "INTERNAL"
10790	//   "INTERNAL_MANAGED"
10791	//   "INTERNAL_SELF_MANAGED"
10792	//   "INVALID"
10793	LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"`
10794
10795	// MetadataFilters: Opaque filter criteria used by Loadbalancer to
10796	// restrict routing configuration to a limited set of xDS compliant
10797	// clients. In their xDS requests to Loadbalancer, xDS clients present
10798	// node metadata. When there is a match, the relevant configuration is
10799	// made available to those proxies. Otherwise, all the resources (e.g.
10800	// TargetHttpProxy, UrlMap) referenced by the ForwardingRule will not be
10801	// visible to those proxies.
10802	// For each metadataFilter in this list, if its filterMatchCriteria is
10803	// set to MATCH_ANY, at least one of the filterLabels must match the
10804	// corresponding label provided in the metadata. If its
10805	// filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels
10806	// must match with corresponding labels provided in the metadata. If
10807	// multiple metadataFilters are specified, all of them need to be
10808	// satisfied in order to be considered a match.
10809	// metadataFilters specified here will be applifed before those
10810	// specified in the UrlMap that this ForwardingRule
10811	// references.
10812	// metadataFilters only applies to Loadbalancers that have their
10813	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
10814	MetadataFilters []*MetadataFilter `json:"metadataFilters,omitempty"`
10815
10816	// Name: Name of the resource; provided by the client when the resource
10817	// is created. The name must be 1-63 characters long, and comply with
10818	// RFC1035. Specifically, the name must be 1-63 characters long and
10819	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
10820	// the first character must be a lowercase letter, and all following
10821	// characters must be a dash, lowercase letter, or digit, except the
10822	// last character, which cannot be a dash.
10823	Name string `json:"name,omitempty"`
10824
10825	// Network: This field is not used for external load balancing.
10826	//
10827	// For Internal TCP/UDP Load Balancing, this field identifies the
10828	// network that the load balanced IP should belong to for this
10829	// Forwarding Rule. If this field is not specified, the default network
10830	// will be used.
10831	//
10832	// For Private Service Connect forwarding rules that forward traffic to
10833	// Google APIs, a network must be provided.
10834	Network string `json:"network,omitempty"`
10835
10836	// NetworkTier: This signifies the networking tier used for configuring
10837	// this load balancer and can only take the following values: PREMIUM,
10838	// STANDARD.
10839	//
10840	// For regional ForwardingRule, the valid values are PREMIUM and
10841	// STANDARD. For GlobalForwardingRule, the valid value is PREMIUM.
10842	//
10843	// If this field is not specified, it is assumed to be PREMIUM. If
10844	// IPAddress is specified, this value must be equal to the networkTier
10845	// of the Address.
10846	//
10847	// Possible values:
10848	//   "PREMIUM"
10849	//   "STANDARD"
10850	NetworkTier string `json:"networkTier,omitempty"`
10851
10852	// PortRange: This field can be used only if:
10853	// - Load balancing scheme is one of EXTERNAL,  INTERNAL_SELF_MANAGED or
10854	// INTERNAL_MANAGED
10855	// - IPProtocol is one of TCP, UDP, or SCTP.
10856	//
10857	// Packets addressed to ports in the specified range will be forwarded
10858	// to target or  backend_service.
10859	//
10860	// You can only use one of ports, port_range, or allPorts. The three are
10861	// mutually exclusive.
10862	//
10863	// Forwarding rules with the same [IPAddress, IPProtocol] pair must have
10864	// disjoint ports.
10865	//
10866	// Some types of forwarding target have constraints on the acceptable
10867	// ports:
10868	// - TargetHttpProxy: 80, 8080
10869	// - TargetHttpsProxy: 443
10870	// - TargetGrpcProxy: no constraints
10871	// - TargetTcpProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993,
10872	// 995, 1688, 1883, 5222
10873	// - TargetSslProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993,
10874	// 995, 1688, 1883, 5222
10875	// - TargetVpnGateway: 500, 4500
10876	PortRange string `json:"portRange,omitempty"`
10877
10878	// Ports: The ports field is only supported when the forwarding rule
10879	// references a backend_service directly. Supported load balancing
10880	// products are Internal TCP/UDP Load Balancing and Network Load
10881	// Balancing. Only packets addressed to the specified list of ports are
10882	// forwarded to backends.
10883	//
10884	// You can only use one of ports and port_range, or allPorts. The three
10885	// are mutually exclusive.
10886	//
10887	// You can specify a list of up to five ports, which can be
10888	// non-contiguous.
10889	//
10890	// Forwarding rules with the same [IPAddress, IPProtocol] pair must have
10891	// disjoint ports.
10892	//
10893	// For more information, see Port specifications
10894	// (/load-balancing/docs/forwarding-rule-concepts#port_specifications).
10895	Ports []string `json:"ports,omitempty"`
10896
10897	// PscConnectionId: [Output Only] The PSC connection id of the PSC
10898	// Forwarding Rule.
10899	PscConnectionId uint64 `json:"pscConnectionId,omitempty,string"`
10900
10901	// Region: [Output Only] URL of the region where the regional forwarding
10902	// rule resides. This field is not applicable to global forwarding
10903	// rules. You must specify this field as part of the HTTP request URL.
10904	// It is not settable as a field in the request body.
10905	Region string `json:"region,omitempty"`
10906
10907	// SelfLink: [Output Only] Server-defined URL for the resource.
10908	SelfLink string `json:"selfLink,omitempty"`
10909
10910	// ServiceDirectoryRegistrations: Service Directory resources to
10911	// register this forwarding rule with. Currently, only supports a single
10912	// Service Directory resource.
10913	//
10914	// It is only supported for Internal TCP/UDP Load Balancing and Internal
10915	// HTTP(S) Load Balancing.
10916	ServiceDirectoryRegistrations []*ForwardingRuleServiceDirectoryRegistration `json:"serviceDirectoryRegistrations,omitempty"`
10917
10918	// ServiceLabel: An optional prefix to the service name for this
10919	// Forwarding Rule. If specified, the prefix is the first label of the
10920	// fully qualified service name.
10921	//
10922	// The label must be 1-63 characters long, and comply with RFC1035.
10923	// Specifically, the label must be 1-63 characters long and match the
10924	// regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
10925	// character must be a lowercase letter, and all following characters
10926	// must be a dash, lowercase letter, or digit, except the last
10927	// character, which cannot be a dash.
10928	//
10929	// This field is only used for internal load balancing.
10930	ServiceLabel string `json:"serviceLabel,omitempty"`
10931
10932	// ServiceName: [Output Only] The internal fully qualified service name
10933	// for this Forwarding Rule.
10934	//
10935	// This field is only used for internal load balancing.
10936	ServiceName string `json:"serviceName,omitempty"`
10937
10938	// Subnetwork: This field is only used for internal load balancing.
10939	//
10940	// For internal load balancing, this field identifies the subnetwork
10941	// that the load balanced IP should belong to for this Forwarding
10942	// Rule.
10943	//
10944	// If the network specified is in auto subnet mode, this field is
10945	// optional. However, if the network is in custom subnet mode, a
10946	// subnetwork must be specified.
10947	Subnetwork string `json:"subnetwork,omitempty"`
10948
10949	Target string `json:"target,omitempty"`
10950
10951	// ServerResponse contains the HTTP response code and headers from the
10952	// server.
10953	googleapi.ServerResponse `json:"-"`
10954
10955	// ForceSendFields is a list of field names (e.g. "IPAddress") to
10956	// unconditionally include in API requests. By default, fields with
10957	// empty values are omitted from API requests. However, any non-pointer,
10958	// non-interface field appearing in ForceSendFields will be sent to the
10959	// server regardless of whether the field is empty or not. This may be
10960	// used to include empty fields in Patch requests.
10961	ForceSendFields []string `json:"-"`
10962
10963	// NullFields is a list of field names (e.g. "IPAddress") to include in
10964	// API requests with the JSON null value. By default, fields with empty
10965	// values are omitted from API requests. However, any field with an
10966	// empty value appearing in NullFields will be sent to the server as
10967	// null. It is an error if a field in this list has a non-empty value.
10968	// This may be used to include null fields in Patch requests.
10969	NullFields []string `json:"-"`
10970}
10971
10972func (s *ForwardingRule) MarshalJSON() ([]byte, error) {
10973	type NoMethod ForwardingRule
10974	raw := NoMethod(*s)
10975	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10976}
10977
10978type ForwardingRuleAggregatedList struct {
10979	// Id: [Output Only] Unique identifier for the resource; defined by the
10980	// server.
10981	Id string `json:"id,omitempty"`
10982
10983	// Items: A list of ForwardingRulesScopedList resources.
10984	Items map[string]ForwardingRulesScopedList `json:"items,omitempty"`
10985
10986	// Kind: [Output Only] Type of resource. Always
10987	// compute#forwardingRuleAggregatedList for lists of forwarding rules.
10988	Kind string `json:"kind,omitempty"`
10989
10990	// NextPageToken: [Output Only] This token allows you to get the next
10991	// page of results for list requests. If the number of results is larger
10992	// than maxResults, use the nextPageToken as a value for the query
10993	// parameter pageToken in the next list request. Subsequent list
10994	// requests will have their own nextPageToken to continue paging through
10995	// the results.
10996	NextPageToken string `json:"nextPageToken,omitempty"`
10997
10998	// SelfLink: [Output Only] Server-defined URL for this resource.
10999	SelfLink string `json:"selfLink,omitempty"`
11000
11001	// Unreachables: [Output Only] Unreachable resources.
11002	Unreachables []string `json:"unreachables,omitempty"`
11003
11004	// Warning: [Output Only] Informational warning message.
11005	Warning *ForwardingRuleAggregatedListWarning `json:"warning,omitempty"`
11006
11007	// ServerResponse contains the HTTP response code and headers from the
11008	// server.
11009	googleapi.ServerResponse `json:"-"`
11010
11011	// ForceSendFields is a list of field names (e.g. "Id") to
11012	// unconditionally include in API requests. By default, fields with
11013	// empty values are omitted from API requests. However, any non-pointer,
11014	// non-interface field appearing in ForceSendFields will be sent to the
11015	// server regardless of whether the field is empty or not. This may be
11016	// used to include empty fields in Patch requests.
11017	ForceSendFields []string `json:"-"`
11018
11019	// NullFields is a list of field names (e.g. "Id") to include in API
11020	// requests with the JSON null value. By default, fields with empty
11021	// values are omitted from API requests. However, any field with an
11022	// empty value appearing in NullFields will be sent to the server as
11023	// null. It is an error if a field in this list has a non-empty value.
11024	// This may be used to include null fields in Patch requests.
11025	NullFields []string `json:"-"`
11026}
11027
11028func (s *ForwardingRuleAggregatedList) MarshalJSON() ([]byte, error) {
11029	type NoMethod ForwardingRuleAggregatedList
11030	raw := NoMethod(*s)
11031	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11032}
11033
11034// ForwardingRuleAggregatedListWarning: [Output Only] Informational
11035// warning message.
11036type ForwardingRuleAggregatedListWarning struct {
11037	// Code: [Output Only] A warning code, if applicable. For example,
11038	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11039	// the response.
11040	//
11041	// Possible values:
11042	//   "CLEANUP_FAILED"
11043	//   "DEPRECATED_RESOURCE_USED"
11044	//   "DEPRECATED_TYPE_USED"
11045	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
11046	//   "EXPERIMENTAL_TYPE_USED"
11047	//   "EXTERNAL_API_WARNING"
11048	//   "FIELD_VALUE_OVERRIDEN"
11049	//   "INJECTED_KERNELS_DEPRECATED"
11050	//   "LARGE_DEPLOYMENT_WARNING"
11051	//   "MISSING_TYPE_DEPENDENCY"
11052	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
11053	//   "NEXT_HOP_CANNOT_IP_FORWARD"
11054	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
11055	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
11056	//   "NEXT_HOP_NOT_RUNNING"
11057	//   "NOT_CRITICAL_ERROR"
11058	//   "NO_RESULTS_ON_PAGE"
11059	//   "PARTIAL_SUCCESS"
11060	//   "REQUIRED_TOS_AGREEMENT"
11061	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
11062	//   "RESOURCE_NOT_DELETED"
11063	//   "SCHEMA_VALIDATION_IGNORED"
11064	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
11065	//   "UNDECLARED_PROPERTIES"
11066	//   "UNREACHABLE"
11067	Code string `json:"code,omitempty"`
11068
11069	// Data: [Output Only] Metadata about this warning in key: value format.
11070	// For example:
11071	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
11072	Data []*ForwardingRuleAggregatedListWarningData `json:"data,omitempty"`
11073
11074	// Message: [Output Only] A human-readable description of the warning
11075	// code.
11076	Message string `json:"message,omitempty"`
11077
11078	// ForceSendFields is a list of field names (e.g. "Code") to
11079	// unconditionally include in API requests. By default, fields with
11080	// empty values are omitted from API requests. However, any non-pointer,
11081	// non-interface field appearing in ForceSendFields will be sent to the
11082	// server regardless of whether the field is empty or not. This may be
11083	// used to include empty fields in Patch requests.
11084	ForceSendFields []string `json:"-"`
11085
11086	// NullFields is a list of field names (e.g. "Code") to include in API
11087	// requests with the JSON null value. By default, fields with empty
11088	// values are omitted from API requests. However, any field with an
11089	// empty value appearing in NullFields will be sent to the server as
11090	// null. It is an error if a field in this list has a non-empty value.
11091	// This may be used to include null fields in Patch requests.
11092	NullFields []string `json:"-"`
11093}
11094
11095func (s *ForwardingRuleAggregatedListWarning) MarshalJSON() ([]byte, error) {
11096	type NoMethod ForwardingRuleAggregatedListWarning
11097	raw := NoMethod(*s)
11098	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11099}
11100
11101type ForwardingRuleAggregatedListWarningData struct {
11102	// Key: [Output Only] A key that provides more detail on the warning
11103	// being returned. For example, for warnings where there are no results
11104	// in a list request for a particular zone, this key might be scope and
11105	// the key value might be the zone name. Other examples might be a key
11106	// indicating a deprecated resource and a suggested replacement, or a
11107	// warning about invalid network settings (for example, if an instance
11108	// attempts to perform IP forwarding but is not enabled for IP
11109	// forwarding).
11110	Key string `json:"key,omitempty"`
11111
11112	// Value: [Output Only] A warning data value corresponding to the key.
11113	Value string `json:"value,omitempty"`
11114
11115	// ForceSendFields is a list of field names (e.g. "Key") to
11116	// unconditionally include in API requests. By default, fields with
11117	// empty values are omitted from API requests. However, any non-pointer,
11118	// non-interface field appearing in ForceSendFields will be sent to the
11119	// server regardless of whether the field is empty or not. This may be
11120	// used to include empty fields in Patch requests.
11121	ForceSendFields []string `json:"-"`
11122
11123	// NullFields is a list of field names (e.g. "Key") to include in API
11124	// requests with the JSON null value. By default, fields with empty
11125	// values are omitted from API requests. However, any field with an
11126	// empty value appearing in NullFields will be sent to the server as
11127	// null. It is an error if a field in this list has a non-empty value.
11128	// This may be used to include null fields in Patch requests.
11129	NullFields []string `json:"-"`
11130}
11131
11132func (s *ForwardingRuleAggregatedListWarningData) MarshalJSON() ([]byte, error) {
11133	type NoMethod ForwardingRuleAggregatedListWarningData
11134	raw := NoMethod(*s)
11135	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11136}
11137
11138// ForwardingRuleList: Contains a list of ForwardingRule resources.
11139type ForwardingRuleList struct {
11140	// Id: [Output Only] Unique identifier for the resource; defined by the
11141	// server.
11142	Id string `json:"id,omitempty"`
11143
11144	// Items: A list of ForwardingRule resources.
11145	Items []*ForwardingRule `json:"items,omitempty"`
11146
11147	// Kind: Type of resource.
11148	Kind string `json:"kind,omitempty"`
11149
11150	// NextPageToken: [Output Only] This token allows you to get the next
11151	// page of results for list requests. If the number of results is larger
11152	// than maxResults, use the nextPageToken as a value for the query
11153	// parameter pageToken in the next list request. Subsequent list
11154	// requests will have their own nextPageToken to continue paging through
11155	// the results.
11156	NextPageToken string `json:"nextPageToken,omitempty"`
11157
11158	// SelfLink: [Output Only] Server-defined URL for this resource.
11159	SelfLink string `json:"selfLink,omitempty"`
11160
11161	// Warning: [Output Only] Informational warning message.
11162	Warning *ForwardingRuleListWarning `json:"warning,omitempty"`
11163
11164	// ServerResponse contains the HTTP response code and headers from the
11165	// server.
11166	googleapi.ServerResponse `json:"-"`
11167
11168	// ForceSendFields is a list of field names (e.g. "Id") to
11169	// unconditionally include in API requests. By default, fields with
11170	// empty values are omitted from API requests. However, any non-pointer,
11171	// non-interface field appearing in ForceSendFields will be sent to the
11172	// server regardless of whether the field is empty or not. This may be
11173	// used to include empty fields in Patch requests.
11174	ForceSendFields []string `json:"-"`
11175
11176	// NullFields is a list of field names (e.g. "Id") to include in API
11177	// requests with the JSON null value. By default, fields with empty
11178	// values are omitted from API requests. However, any field with an
11179	// empty value appearing in NullFields will be sent to the server as
11180	// null. It is an error if a field in this list has a non-empty value.
11181	// This may be used to include null fields in Patch requests.
11182	NullFields []string `json:"-"`
11183}
11184
11185func (s *ForwardingRuleList) MarshalJSON() ([]byte, error) {
11186	type NoMethod ForwardingRuleList
11187	raw := NoMethod(*s)
11188	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11189}
11190
11191// ForwardingRuleListWarning: [Output Only] Informational warning
11192// message.
11193type ForwardingRuleListWarning struct {
11194	// Code: [Output Only] A warning code, if applicable. For example,
11195	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11196	// the response.
11197	//
11198	// Possible values:
11199	//   "CLEANUP_FAILED"
11200	//   "DEPRECATED_RESOURCE_USED"
11201	//   "DEPRECATED_TYPE_USED"
11202	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
11203	//   "EXPERIMENTAL_TYPE_USED"
11204	//   "EXTERNAL_API_WARNING"
11205	//   "FIELD_VALUE_OVERRIDEN"
11206	//   "INJECTED_KERNELS_DEPRECATED"
11207	//   "LARGE_DEPLOYMENT_WARNING"
11208	//   "MISSING_TYPE_DEPENDENCY"
11209	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
11210	//   "NEXT_HOP_CANNOT_IP_FORWARD"
11211	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
11212	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
11213	//   "NEXT_HOP_NOT_RUNNING"
11214	//   "NOT_CRITICAL_ERROR"
11215	//   "NO_RESULTS_ON_PAGE"
11216	//   "PARTIAL_SUCCESS"
11217	//   "REQUIRED_TOS_AGREEMENT"
11218	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
11219	//   "RESOURCE_NOT_DELETED"
11220	//   "SCHEMA_VALIDATION_IGNORED"
11221	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
11222	//   "UNDECLARED_PROPERTIES"
11223	//   "UNREACHABLE"
11224	Code string `json:"code,omitempty"`
11225
11226	// Data: [Output Only] Metadata about this warning in key: value format.
11227	// For example:
11228	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
11229	Data []*ForwardingRuleListWarningData `json:"data,omitempty"`
11230
11231	// Message: [Output Only] A human-readable description of the warning
11232	// code.
11233	Message string `json:"message,omitempty"`
11234
11235	// ForceSendFields is a list of field names (e.g. "Code") to
11236	// unconditionally include in API requests. By default, fields with
11237	// empty values are omitted from API requests. However, any non-pointer,
11238	// non-interface field appearing in ForceSendFields will be sent to the
11239	// server regardless of whether the field is empty or not. This may be
11240	// used to include empty fields in Patch requests.
11241	ForceSendFields []string `json:"-"`
11242
11243	// NullFields is a list of field names (e.g. "Code") to include in API
11244	// requests with the JSON null value. By default, fields with empty
11245	// values are omitted from API requests. However, any field with an
11246	// empty value appearing in NullFields will be sent to the server as
11247	// null. It is an error if a field in this list has a non-empty value.
11248	// This may be used to include null fields in Patch requests.
11249	NullFields []string `json:"-"`
11250}
11251
11252func (s *ForwardingRuleListWarning) MarshalJSON() ([]byte, error) {
11253	type NoMethod ForwardingRuleListWarning
11254	raw := NoMethod(*s)
11255	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11256}
11257
11258type ForwardingRuleListWarningData struct {
11259	// Key: [Output Only] A key that provides more detail on the warning
11260	// being returned. For example, for warnings where there are no results
11261	// in a list request for a particular zone, this key might be scope and
11262	// the key value might be the zone name. Other examples might be a key
11263	// indicating a deprecated resource and a suggested replacement, or a
11264	// warning about invalid network settings (for example, if an instance
11265	// attempts to perform IP forwarding but is not enabled for IP
11266	// forwarding).
11267	Key string `json:"key,omitempty"`
11268
11269	// Value: [Output Only] A warning data value corresponding to the key.
11270	Value string `json:"value,omitempty"`
11271
11272	// ForceSendFields is a list of field names (e.g. "Key") to
11273	// unconditionally include in API requests. By default, fields with
11274	// empty values are omitted from API requests. However, any non-pointer,
11275	// non-interface field appearing in ForceSendFields will be sent to the
11276	// server regardless of whether the field is empty or not. This may be
11277	// used to include empty fields in Patch requests.
11278	ForceSendFields []string `json:"-"`
11279
11280	// NullFields is a list of field names (e.g. "Key") to include in API
11281	// requests with the JSON null value. By default, fields with empty
11282	// values are omitted from API requests. However, any field with an
11283	// empty value appearing in NullFields will be sent to the server as
11284	// null. It is an error if a field in this list has a non-empty value.
11285	// This may be used to include null fields in Patch requests.
11286	NullFields []string `json:"-"`
11287}
11288
11289func (s *ForwardingRuleListWarningData) MarshalJSON() ([]byte, error) {
11290	type NoMethod ForwardingRuleListWarningData
11291	raw := NoMethod(*s)
11292	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11293}
11294
11295type ForwardingRuleReference struct {
11296	ForwardingRule string `json:"forwardingRule,omitempty"`
11297
11298	// ForceSendFields is a list of field names (e.g. "ForwardingRule") to
11299	// unconditionally include in API requests. By default, fields with
11300	// empty values are omitted from API requests. However, any non-pointer,
11301	// non-interface field appearing in ForceSendFields will be sent to the
11302	// server regardless of whether the field is empty or not. This may be
11303	// used to include empty fields in Patch requests.
11304	ForceSendFields []string `json:"-"`
11305
11306	// NullFields is a list of field names (e.g. "ForwardingRule") to
11307	// include in API requests with the JSON null value. By default, fields
11308	// with empty values are omitted from API requests. However, any field
11309	// with an empty value appearing in NullFields will be sent to the
11310	// server as null. It is an error if a field in this list has a
11311	// non-empty value. This may be used to include null fields in Patch
11312	// requests.
11313	NullFields []string `json:"-"`
11314}
11315
11316func (s *ForwardingRuleReference) MarshalJSON() ([]byte, error) {
11317	type NoMethod ForwardingRuleReference
11318	raw := NoMethod(*s)
11319	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11320}
11321
11322// ForwardingRuleServiceDirectoryRegistration: Describes the
11323// auto-registration of the Forwarding Rule to Service Directory. The
11324// region and project of the Service Directory resource generated from
11325// this registration will be the same as this Forwarding Rule.
11326type ForwardingRuleServiceDirectoryRegistration struct {
11327	// Namespace: Service Directory namespace to register the forwarding
11328	// rule under.
11329	Namespace string `json:"namespace,omitempty"`
11330
11331	// Service: Service Directory service to register the forwarding rule
11332	// under.
11333	Service string `json:"service,omitempty"`
11334
11335	// ServiceDirectoryRegion: [Optional] Service Directory region to
11336	// register this global forwarding rule under. Default to "us-central1".
11337	// Only used for PSC for Google APIs. All PSC for Google APIs Forwarding
11338	// Rules on the same network should use the same Service Directory
11339	// region.
11340	ServiceDirectoryRegion string `json:"serviceDirectoryRegion,omitempty"`
11341
11342	// ForceSendFields is a list of field names (e.g. "Namespace") to
11343	// unconditionally include in API requests. By default, fields with
11344	// empty values are omitted from API requests. However, any non-pointer,
11345	// non-interface field appearing in ForceSendFields will be sent to the
11346	// server regardless of whether the field is empty or not. This may be
11347	// used to include empty fields in Patch requests.
11348	ForceSendFields []string `json:"-"`
11349
11350	// NullFields is a list of field names (e.g. "Namespace") to include in
11351	// API requests with the JSON null value. By default, fields with empty
11352	// values are omitted from API requests. However, any field with an
11353	// empty value appearing in NullFields will be sent to the server as
11354	// null. It is an error if a field in this list has a non-empty value.
11355	// This may be used to include null fields in Patch requests.
11356	NullFields []string `json:"-"`
11357}
11358
11359func (s *ForwardingRuleServiceDirectoryRegistration) MarshalJSON() ([]byte, error) {
11360	type NoMethod ForwardingRuleServiceDirectoryRegistration
11361	raw := NoMethod(*s)
11362	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11363}
11364
11365type ForwardingRulesScopedList struct {
11366	// ForwardingRules: A list of forwarding rules contained in this scope.
11367	ForwardingRules []*ForwardingRule `json:"forwardingRules,omitempty"`
11368
11369	// Warning: Informational warning which replaces the list of forwarding
11370	// rules when the list is empty.
11371	Warning *ForwardingRulesScopedListWarning `json:"warning,omitempty"`
11372
11373	// ForceSendFields is a list of field names (e.g. "ForwardingRules") to
11374	// unconditionally include in API requests. By default, fields with
11375	// empty values are omitted from API requests. However, any non-pointer,
11376	// non-interface field appearing in ForceSendFields will be sent to the
11377	// server regardless of whether the field is empty or not. This may be
11378	// used to include empty fields in Patch requests.
11379	ForceSendFields []string `json:"-"`
11380
11381	// NullFields is a list of field names (e.g. "ForwardingRules") to
11382	// include in API requests with the JSON null value. By default, fields
11383	// with empty values are omitted from API requests. However, any field
11384	// with an empty value appearing in NullFields will be sent to the
11385	// server as null. It is an error if a field in this list has a
11386	// non-empty value. This may be used to include null fields in Patch
11387	// requests.
11388	NullFields []string `json:"-"`
11389}
11390
11391func (s *ForwardingRulesScopedList) MarshalJSON() ([]byte, error) {
11392	type NoMethod ForwardingRulesScopedList
11393	raw := NoMethod(*s)
11394	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11395}
11396
11397// ForwardingRulesScopedListWarning: Informational warning which
11398// replaces the list of forwarding rules when the list is empty.
11399type ForwardingRulesScopedListWarning struct {
11400	// Code: [Output Only] A warning code, if applicable. For example,
11401	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11402	// the response.
11403	//
11404	// Possible values:
11405	//   "CLEANUP_FAILED"
11406	//   "DEPRECATED_RESOURCE_USED"
11407	//   "DEPRECATED_TYPE_USED"
11408	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
11409	//   "EXPERIMENTAL_TYPE_USED"
11410	//   "EXTERNAL_API_WARNING"
11411	//   "FIELD_VALUE_OVERRIDEN"
11412	//   "INJECTED_KERNELS_DEPRECATED"
11413	//   "LARGE_DEPLOYMENT_WARNING"
11414	//   "MISSING_TYPE_DEPENDENCY"
11415	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
11416	//   "NEXT_HOP_CANNOT_IP_FORWARD"
11417	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
11418	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
11419	//   "NEXT_HOP_NOT_RUNNING"
11420	//   "NOT_CRITICAL_ERROR"
11421	//   "NO_RESULTS_ON_PAGE"
11422	//   "PARTIAL_SUCCESS"
11423	//   "REQUIRED_TOS_AGREEMENT"
11424	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
11425	//   "RESOURCE_NOT_DELETED"
11426	//   "SCHEMA_VALIDATION_IGNORED"
11427	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
11428	//   "UNDECLARED_PROPERTIES"
11429	//   "UNREACHABLE"
11430	Code string `json:"code,omitempty"`
11431
11432	// Data: [Output Only] Metadata about this warning in key: value format.
11433	// For example:
11434	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
11435	Data []*ForwardingRulesScopedListWarningData `json:"data,omitempty"`
11436
11437	// Message: [Output Only] A human-readable description of the warning
11438	// code.
11439	Message string `json:"message,omitempty"`
11440
11441	// ForceSendFields is a list of field names (e.g. "Code") to
11442	// unconditionally include in API requests. By default, fields with
11443	// empty values are omitted from API requests. However, any non-pointer,
11444	// non-interface field appearing in ForceSendFields will be sent to the
11445	// server regardless of whether the field is empty or not. This may be
11446	// used to include empty fields in Patch requests.
11447	ForceSendFields []string `json:"-"`
11448
11449	// NullFields is a list of field names (e.g. "Code") to include in API
11450	// requests with the JSON null value. By default, fields with empty
11451	// values are omitted from API requests. However, any field with an
11452	// empty value appearing in NullFields will be sent to the server as
11453	// null. It is an error if a field in this list has a non-empty value.
11454	// This may be used to include null fields in Patch requests.
11455	NullFields []string `json:"-"`
11456}
11457
11458func (s *ForwardingRulesScopedListWarning) MarshalJSON() ([]byte, error) {
11459	type NoMethod ForwardingRulesScopedListWarning
11460	raw := NoMethod(*s)
11461	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11462}
11463
11464type ForwardingRulesScopedListWarningData struct {
11465	// Key: [Output Only] A key that provides more detail on the warning
11466	// being returned. For example, for warnings where there are no results
11467	// in a list request for a particular zone, this key might be scope and
11468	// the key value might be the zone name. Other examples might be a key
11469	// indicating a deprecated resource and a suggested replacement, or a
11470	// warning about invalid network settings (for example, if an instance
11471	// attempts to perform IP forwarding but is not enabled for IP
11472	// forwarding).
11473	Key string `json:"key,omitempty"`
11474
11475	// Value: [Output Only] A warning data value corresponding to the key.
11476	Value string `json:"value,omitempty"`
11477
11478	// ForceSendFields is a list of field names (e.g. "Key") to
11479	// unconditionally include in API requests. By default, fields with
11480	// empty values are omitted from API requests. However, any non-pointer,
11481	// non-interface field appearing in ForceSendFields will be sent to the
11482	// server regardless of whether the field is empty or not. This may be
11483	// used to include empty fields in Patch requests.
11484	ForceSendFields []string `json:"-"`
11485
11486	// NullFields is a list of field names (e.g. "Key") to include in API
11487	// requests with the JSON null value. By default, fields with empty
11488	// values are omitted from API requests. However, any field with an
11489	// empty value appearing in NullFields will be sent to the server as
11490	// null. It is an error if a field in this list has a non-empty value.
11491	// This may be used to include null fields in Patch requests.
11492	NullFields []string `json:"-"`
11493}
11494
11495func (s *ForwardingRulesScopedListWarningData) MarshalJSON() ([]byte, error) {
11496	type NoMethod ForwardingRulesScopedListWarningData
11497	raw := NoMethod(*s)
11498	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11499}
11500
11501type GRPCHealthCheck struct {
11502	// GrpcServiceName: The gRPC service name for the health check. This
11503	// field is optional. The value of grpc_service_name has the following
11504	// meanings by convention:
11505	// - Empty service_name means the overall status of all services at the
11506	// backend.
11507	// - Non-empty service_name means the health of that gRPC service, as
11508	// defined by the owner of the service.
11509	// The grpc_service_name can only be ASCII.
11510	GrpcServiceName string `json:"grpcServiceName,omitempty"`
11511
11512	// Port: The port number for the health check request. Must be specified
11513	// if port_name and port_specification are not set or if
11514	// port_specification is USE_FIXED_PORT. Valid values are 1 through
11515	// 65535.
11516	Port int64 `json:"port,omitempty"`
11517
11518	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
11519	// both port and port_name are defined, port takes precedence. The
11520	// port_name should conform to RFC1035.
11521	PortName string `json:"portName,omitempty"`
11522
11523	// PortSpecification: Specifies how port is selected for health
11524	// checking, can be one of following values:
11525	// USE_FIXED_PORT: The port number in port is used for health
11526	// checking.
11527	// USE_NAMED_PORT: The portName is used for health
11528	// checking.
11529	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
11530	// each network endpoint is used for health checking. For other
11531	// backends, the port or named port specified in the Backend Service is
11532	// used for health checking.
11533	//
11534	//
11535	// If not specified, gRPC health check follows behavior specified in
11536	// port and portName fields.
11537	//
11538	// Possible values:
11539	//   "USE_FIXED_PORT"
11540	//   "USE_NAMED_PORT"
11541	//   "USE_SERVING_PORT"
11542	PortSpecification string `json:"portSpecification,omitempty"`
11543
11544	// ForceSendFields is a list of field names (e.g. "GrpcServiceName") to
11545	// unconditionally include in API requests. By default, fields with
11546	// empty values are omitted from API requests. However, any non-pointer,
11547	// non-interface field appearing in ForceSendFields will be sent to the
11548	// server regardless of whether the field is empty or not. This may be
11549	// used to include empty fields in Patch requests.
11550	ForceSendFields []string `json:"-"`
11551
11552	// NullFields is a list of field names (e.g. "GrpcServiceName") to
11553	// include in API requests with the JSON null value. By default, fields
11554	// with empty values are omitted from API requests. However, any field
11555	// with an empty value appearing in NullFields will be sent to the
11556	// server as null. It is an error if a field in this list has a
11557	// non-empty value. This may be used to include null fields in Patch
11558	// requests.
11559	NullFields []string `json:"-"`
11560}
11561
11562func (s *GRPCHealthCheck) MarshalJSON() ([]byte, error) {
11563	type NoMethod GRPCHealthCheck
11564	raw := NoMethod(*s)
11565	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11566}
11567
11568type GlobalNetworkEndpointGroupsAttachEndpointsRequest struct {
11569	// NetworkEndpoints: The list of network endpoints to be attached.
11570	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
11571
11572	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
11573	// unconditionally include in API requests. By default, fields with
11574	// empty values are omitted from API requests. However, any non-pointer,
11575	// non-interface field appearing in ForceSendFields will be sent to the
11576	// server regardless of whether the field is empty or not. This may be
11577	// used to include empty fields in Patch requests.
11578	ForceSendFields []string `json:"-"`
11579
11580	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
11581	// include in API requests with the JSON null value. By default, fields
11582	// with empty values are omitted from API requests. However, any field
11583	// with an empty value appearing in NullFields will be sent to the
11584	// server as null. It is an error if a field in this list has a
11585	// non-empty value. This may be used to include null fields in Patch
11586	// requests.
11587	NullFields []string `json:"-"`
11588}
11589
11590func (s *GlobalNetworkEndpointGroupsAttachEndpointsRequest) MarshalJSON() ([]byte, error) {
11591	type NoMethod GlobalNetworkEndpointGroupsAttachEndpointsRequest
11592	raw := NoMethod(*s)
11593	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11594}
11595
11596type GlobalNetworkEndpointGroupsDetachEndpointsRequest struct {
11597	// NetworkEndpoints: The list of network endpoints to be detached.
11598	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
11599
11600	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
11601	// unconditionally include in API requests. By default, fields with
11602	// empty values are omitted from API requests. However, any non-pointer,
11603	// non-interface field appearing in ForceSendFields will be sent to the
11604	// server regardless of whether the field is empty or not. This may be
11605	// used to include empty fields in Patch requests.
11606	ForceSendFields []string `json:"-"`
11607
11608	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
11609	// include in API requests with the JSON null value. By default, fields
11610	// with empty values are omitted from API requests. However, any field
11611	// with an empty value appearing in NullFields will be sent to the
11612	// server as null. It is an error if a field in this list has a
11613	// non-empty value. This may be used to include null fields in Patch
11614	// requests.
11615	NullFields []string `json:"-"`
11616}
11617
11618func (s *GlobalNetworkEndpointGroupsDetachEndpointsRequest) MarshalJSON() ([]byte, error) {
11619	type NoMethod GlobalNetworkEndpointGroupsDetachEndpointsRequest
11620	raw := NoMethod(*s)
11621	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11622}
11623
11624type GlobalOrganizationSetPolicyRequest struct {
11625	// Bindings: Flatten Policy to create a backward compatible wire-format.
11626	// Deprecated. Use 'policy' to specify bindings.
11627	Bindings []*Binding `json:"bindings,omitempty"`
11628
11629	// Etag: Flatten Policy to create a backward compatible wire-format.
11630	// Deprecated. Use 'policy' to specify the etag.
11631	Etag string `json:"etag,omitempty"`
11632
11633	// Policy: REQUIRED: The complete policy to be applied to the
11634	// 'resource'. The size of the policy is limited to a few 10s of KB. An
11635	// empty policy is in general a valid policy but certain services (like
11636	// Projects) might reject them.
11637	Policy *Policy `json:"policy,omitempty"`
11638
11639	// ForceSendFields is a list of field names (e.g. "Bindings") to
11640	// unconditionally include in API requests. By default, fields with
11641	// empty values are omitted from API requests. However, any non-pointer,
11642	// non-interface field appearing in ForceSendFields will be sent to the
11643	// server regardless of whether the field is empty or not. This may be
11644	// used to include empty fields in Patch requests.
11645	ForceSendFields []string `json:"-"`
11646
11647	// NullFields is a list of field names (e.g. "Bindings") to include in
11648	// API requests with the JSON null value. By default, fields with empty
11649	// values are omitted from API requests. However, any field with an
11650	// empty value appearing in NullFields will be sent to the server as
11651	// null. It is an error if a field in this list has a non-empty value.
11652	// This may be used to include null fields in Patch requests.
11653	NullFields []string `json:"-"`
11654}
11655
11656func (s *GlobalOrganizationSetPolicyRequest) MarshalJSON() ([]byte, error) {
11657	type NoMethod GlobalOrganizationSetPolicyRequest
11658	raw := NoMethod(*s)
11659	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11660}
11661
11662type GlobalSetLabelsRequest struct {
11663	// LabelFingerprint: The fingerprint of the previous set of labels for
11664	// this resource, used to detect conflicts. The fingerprint is initially
11665	// generated by Compute Engine and changes after every request to modify
11666	// or update labels. You must always provide an up-to-date fingerprint
11667	// hash when updating or changing labels, otherwise the request will
11668	// fail with error 412 conditionNotMet. Make a get() request to the
11669	// resource to get the latest fingerprint.
11670	LabelFingerprint string `json:"labelFingerprint,omitempty"`
11671
11672	// Labels: A list of labels to apply for this resource. Each label key &
11673	// value must comply with RFC1035. Specifically, the name must be 1-63
11674	// characters long and match the regular expression
11675	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
11676	// a lowercase letter, and all following characters must be a dash,
11677	// lowercase letter, or digit, except the last character, which cannot
11678	// be a dash. For example, "webserver-frontend": "images". A label value
11679	// can also be empty (e.g. "my-label": "").
11680	Labels map[string]string `json:"labels,omitempty"`
11681
11682	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
11683	// unconditionally include in API requests. By default, fields with
11684	// empty values are omitted from API requests. However, any non-pointer,
11685	// non-interface field appearing in ForceSendFields will be sent to the
11686	// server regardless of whether the field is empty or not. This may be
11687	// used to include empty fields in Patch requests.
11688	ForceSendFields []string `json:"-"`
11689
11690	// NullFields is a list of field names (e.g. "LabelFingerprint") to
11691	// include in API requests with the JSON null value. By default, fields
11692	// with empty values are omitted from API requests. However, any field
11693	// with an empty value appearing in NullFields will be sent to the
11694	// server as null. It is an error if a field in this list has a
11695	// non-empty value. This may be used to include null fields in Patch
11696	// requests.
11697	NullFields []string `json:"-"`
11698}
11699
11700func (s *GlobalSetLabelsRequest) MarshalJSON() ([]byte, error) {
11701	type NoMethod GlobalSetLabelsRequest
11702	raw := NoMethod(*s)
11703	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11704}
11705
11706type GlobalSetPolicyRequest struct {
11707	// Bindings: Flatten Policy to create a backward compatible wire-format.
11708	// Deprecated. Use 'policy' to specify bindings.
11709	Bindings []*Binding `json:"bindings,omitempty"`
11710
11711	// Etag: Flatten Policy to create a backward compatible wire-format.
11712	// Deprecated. Use 'policy' to specify the etag.
11713	Etag string `json:"etag,omitempty"`
11714
11715	// Policy: REQUIRED: The complete policy to be applied to the
11716	// 'resource'. The size of the policy is limited to a few 10s of KB. An
11717	// empty policy is in general a valid policy but certain services (like
11718	// Projects) might reject them.
11719	Policy *Policy `json:"policy,omitempty"`
11720
11721	// ForceSendFields is a list of field names (e.g. "Bindings") to
11722	// unconditionally include in API requests. By default, fields with
11723	// empty values are omitted from API requests. However, any non-pointer,
11724	// non-interface field appearing in ForceSendFields will be sent to the
11725	// server regardless of whether the field is empty or not. This may be
11726	// used to include empty fields in Patch requests.
11727	ForceSendFields []string `json:"-"`
11728
11729	// NullFields is a list of field names (e.g. "Bindings") to include in
11730	// API requests with the JSON null value. By default, fields with empty
11731	// values are omitted from API requests. However, any field with an
11732	// empty value appearing in NullFields will be sent to the server as
11733	// null. It is an error if a field in this list has a non-empty value.
11734	// This may be used to include null fields in Patch requests.
11735	NullFields []string `json:"-"`
11736}
11737
11738func (s *GlobalSetPolicyRequest) MarshalJSON() ([]byte, error) {
11739	type NoMethod GlobalSetPolicyRequest
11740	raw := NoMethod(*s)
11741	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11742}
11743
11744// GuestAttributes: A guest attributes entry.
11745type GuestAttributes struct {
11746	// Kind: [Output Only] Type of the resource. Always
11747	// compute#guestAttributes for guest attributes entry.
11748	Kind string `json:"kind,omitempty"`
11749
11750	// QueryPath: The path to be queried. This can be the default namespace
11751	// ('/') or a nested namespace ('/\/') or a specified key ('/\/\')
11752	QueryPath string `json:"queryPath,omitempty"`
11753
11754	// QueryValue: [Output Only] The value of the requested queried path.
11755	QueryValue *GuestAttributesValue `json:"queryValue,omitempty"`
11756
11757	// SelfLink: [Output Only] Server-defined URL for this resource.
11758	SelfLink string `json:"selfLink,omitempty"`
11759
11760	// VariableKey: The key to search for.
11761	VariableKey string `json:"variableKey,omitempty"`
11762
11763	// VariableValue: [Output Only] The value found for the requested key.
11764	VariableValue string `json:"variableValue,omitempty"`
11765
11766	// ServerResponse contains the HTTP response code and headers from the
11767	// server.
11768	googleapi.ServerResponse `json:"-"`
11769
11770	// ForceSendFields is a list of field names (e.g. "Kind") to
11771	// unconditionally include in API requests. By default, fields with
11772	// empty values are omitted from API requests. However, any non-pointer,
11773	// non-interface field appearing in ForceSendFields will be sent to the
11774	// server regardless of whether the field is empty or not. This may be
11775	// used to include empty fields in Patch requests.
11776	ForceSendFields []string `json:"-"`
11777
11778	// NullFields is a list of field names (e.g. "Kind") to include in API
11779	// requests with the JSON null value. By default, fields with empty
11780	// values are omitted from API requests. However, any field with an
11781	// empty value appearing in NullFields will be sent to the server as
11782	// null. It is an error if a field in this list has a non-empty value.
11783	// This may be used to include null fields in Patch requests.
11784	NullFields []string `json:"-"`
11785}
11786
11787func (s *GuestAttributes) MarshalJSON() ([]byte, error) {
11788	type NoMethod GuestAttributes
11789	raw := NoMethod(*s)
11790	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11791}
11792
11793// GuestAttributesEntry: A guest attributes namespace/key/value entry.
11794type GuestAttributesEntry struct {
11795	// Key: Key for the guest attribute entry.
11796	Key string `json:"key,omitempty"`
11797
11798	// Namespace: Namespace for the guest attribute entry.
11799	Namespace string `json:"namespace,omitempty"`
11800
11801	// Value: Value for the guest attribute entry.
11802	Value string `json:"value,omitempty"`
11803
11804	// ForceSendFields is a list of field names (e.g. "Key") to
11805	// unconditionally include in API requests. By default, fields with
11806	// empty values are omitted from API requests. However, any non-pointer,
11807	// non-interface field appearing in ForceSendFields will be sent to the
11808	// server regardless of whether the field is empty or not. This may be
11809	// used to include empty fields in Patch requests.
11810	ForceSendFields []string `json:"-"`
11811
11812	// NullFields is a list of field names (e.g. "Key") to include in API
11813	// requests with the JSON null value. By default, fields with empty
11814	// values are omitted from API requests. However, any field with an
11815	// empty value appearing in NullFields will be sent to the server as
11816	// null. It is an error if a field in this list has a non-empty value.
11817	// This may be used to include null fields in Patch requests.
11818	NullFields []string `json:"-"`
11819}
11820
11821func (s *GuestAttributesEntry) MarshalJSON() ([]byte, error) {
11822	type NoMethod GuestAttributesEntry
11823	raw := NoMethod(*s)
11824	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11825}
11826
11827// GuestAttributesValue: Array of guest attribute namespace/key/value
11828// tuples.
11829type GuestAttributesValue struct {
11830	Items []*GuestAttributesEntry `json:"items,omitempty"`
11831
11832	// ForceSendFields is a list of field names (e.g. "Items") to
11833	// unconditionally include in API requests. By default, fields with
11834	// empty values are omitted from API requests. However, any non-pointer,
11835	// non-interface field appearing in ForceSendFields will be sent to the
11836	// server regardless of whether the field is empty or not. This may be
11837	// used to include empty fields in Patch requests.
11838	ForceSendFields []string `json:"-"`
11839
11840	// NullFields is a list of field names (e.g. "Items") to include in API
11841	// requests with the JSON null value. By default, fields with empty
11842	// values are omitted from API requests. However, any field with an
11843	// empty value appearing in NullFields will be sent to the server as
11844	// null. It is an error if a field in this list has a non-empty value.
11845	// This may be used to include null fields in Patch requests.
11846	NullFields []string `json:"-"`
11847}
11848
11849func (s *GuestAttributesValue) MarshalJSON() ([]byte, error) {
11850	type NoMethod GuestAttributesValue
11851	raw := NoMethod(*s)
11852	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11853}
11854
11855// GuestOsFeature: Guest OS features.
11856type GuestOsFeature struct {
11857	// Type: The ID of a supported feature. Read  Enabling guest operating
11858	// system features to see a list of available options.
11859	//
11860	// Possible values:
11861	//   "FEATURE_TYPE_UNSPECIFIED"
11862	//   "GVNIC"
11863	//   "MULTI_IP_SUBNET"
11864	//   "SECURE_BOOT"
11865	//   "SEV_CAPABLE"
11866	//   "UEFI_COMPATIBLE"
11867	//   "VIRTIO_SCSI_MULTIQUEUE"
11868	//   "WINDOWS"
11869	Type string `json:"type,omitempty"`
11870
11871	// ForceSendFields is a list of field names (e.g. "Type") to
11872	// unconditionally include in API requests. By default, fields with
11873	// empty values are omitted from API requests. However, any non-pointer,
11874	// non-interface field appearing in ForceSendFields will be sent to the
11875	// server regardless of whether the field is empty or not. This may be
11876	// used to include empty fields in Patch requests.
11877	ForceSendFields []string `json:"-"`
11878
11879	// NullFields is a list of field names (e.g. "Type") to include in API
11880	// requests with the JSON null value. By default, fields with empty
11881	// values are omitted from API requests. However, any field with an
11882	// empty value appearing in NullFields will be sent to the server as
11883	// null. It is an error if a field in this list has a non-empty value.
11884	// This may be used to include null fields in Patch requests.
11885	NullFields []string `json:"-"`
11886}
11887
11888func (s *GuestOsFeature) MarshalJSON() ([]byte, error) {
11889	type NoMethod GuestOsFeature
11890	raw := NoMethod(*s)
11891	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11892}
11893
11894type HTTP2HealthCheck struct {
11895	// Host: The value of the host header in the HTTP/2 health check
11896	// request. If left empty (default value), the IP on behalf of which
11897	// this health check is performed will be used.
11898	Host string `json:"host,omitempty"`
11899
11900	// Port: The TCP port number for the health check request. The default
11901	// value is 443. Valid values are 1 through 65535.
11902	Port int64 `json:"port,omitempty"`
11903
11904	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
11905	// both port and port_name are defined, port takes precedence.
11906	PortName string `json:"portName,omitempty"`
11907
11908	// PortSpecification: Specifies how port is selected for health
11909	// checking, can be one of following values:
11910	// USE_FIXED_PORT: The port number in port is used for health
11911	// checking.
11912	// USE_NAMED_PORT: The portName is used for health
11913	// checking.
11914	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
11915	// each network endpoint is used for health checking. For other
11916	// backends, the port or named port specified in the Backend Service is
11917	// used for health checking.
11918	//
11919	//
11920	// If not specified, HTTP2 health check follows behavior specified in
11921	// port and portName fields.
11922	//
11923	// Possible values:
11924	//   "USE_FIXED_PORT"
11925	//   "USE_NAMED_PORT"
11926	//   "USE_SERVING_PORT"
11927	PortSpecification string `json:"portSpecification,omitempty"`
11928
11929	// ProxyHeader: Specifies the type of proxy header to append before
11930	// sending data to the backend, either NONE or PROXY_V1. The default is
11931	// NONE.
11932	//
11933	// Possible values:
11934	//   "NONE"
11935	//   "PROXY_V1"
11936	ProxyHeader string `json:"proxyHeader,omitempty"`
11937
11938	// RequestPath: The request path of the HTTP/2 health check request. The
11939	// default value is /.
11940	RequestPath string `json:"requestPath,omitempty"`
11941
11942	// Response: The string to match anywhere in the first 1024 bytes of the
11943	// response body. If left empty (the default value), the status code
11944	// determines health. The response data can only be ASCII.
11945	Response string `json:"response,omitempty"`
11946
11947	// ForceSendFields is a list of field names (e.g. "Host") to
11948	// unconditionally include in API requests. By default, fields with
11949	// empty values are omitted from API requests. However, any non-pointer,
11950	// non-interface field appearing in ForceSendFields will be sent to the
11951	// server regardless of whether the field is empty or not. This may be
11952	// used to include empty fields in Patch requests.
11953	ForceSendFields []string `json:"-"`
11954
11955	// NullFields is a list of field names (e.g. "Host") to include in API
11956	// requests with the JSON null value. By default, fields with empty
11957	// values are omitted from API requests. However, any field with an
11958	// empty value appearing in NullFields will be sent to the server as
11959	// null. It is an error if a field in this list has a non-empty value.
11960	// This may be used to include null fields in Patch requests.
11961	NullFields []string `json:"-"`
11962}
11963
11964func (s *HTTP2HealthCheck) MarshalJSON() ([]byte, error) {
11965	type NoMethod HTTP2HealthCheck
11966	raw := NoMethod(*s)
11967	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11968}
11969
11970type HTTPHealthCheck struct {
11971	// Host: The value of the host header in the HTTP health check request.
11972	// If left empty (default value), the IP on behalf of which this health
11973	// check is performed will be used.
11974	Host string `json:"host,omitempty"`
11975
11976	// Port: The TCP port number for the health check request. The default
11977	// value is 80. Valid values are 1 through 65535.
11978	Port int64 `json:"port,omitempty"`
11979
11980	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
11981	// both port and port_name are defined, port takes precedence.
11982	PortName string `json:"portName,omitempty"`
11983
11984	// PortSpecification: Specifies how port is selected for health
11985	// checking, can be one of following values:
11986	// USE_FIXED_PORT: The port number in port is used for health
11987	// checking.
11988	// USE_NAMED_PORT: The portName is used for health
11989	// checking.
11990	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
11991	// each network endpoint is used for health checking. For other
11992	// backends, the port or named port specified in the Backend Service is
11993	// used for health checking.
11994	//
11995	//
11996	// If not specified, HTTP health check follows behavior specified in
11997	// port and portName fields.
11998	//
11999	// Possible values:
12000	//   "USE_FIXED_PORT"
12001	//   "USE_NAMED_PORT"
12002	//   "USE_SERVING_PORT"
12003	PortSpecification string `json:"portSpecification,omitempty"`
12004
12005	// ProxyHeader: Specifies the type of proxy header to append before
12006	// sending data to the backend, either NONE or PROXY_V1. The default is
12007	// NONE.
12008	//
12009	// Possible values:
12010	//   "NONE"
12011	//   "PROXY_V1"
12012	ProxyHeader string `json:"proxyHeader,omitempty"`
12013
12014	// RequestPath: The request path of the HTTP health check request. The
12015	// default value is /.
12016	RequestPath string `json:"requestPath,omitempty"`
12017
12018	// Response: The string to match anywhere in the first 1024 bytes of the
12019	// response body. If left empty (the default value), the status code
12020	// determines health. The response data can only be ASCII.
12021	Response string `json:"response,omitempty"`
12022
12023	// ForceSendFields is a list of field names (e.g. "Host") to
12024	// unconditionally include in API requests. By default, fields with
12025	// empty values are omitted from API requests. However, any non-pointer,
12026	// non-interface field appearing in ForceSendFields will be sent to the
12027	// server regardless of whether the field is empty or not. This may be
12028	// used to include empty fields in Patch requests.
12029	ForceSendFields []string `json:"-"`
12030
12031	// NullFields is a list of field names (e.g. "Host") to include in API
12032	// requests with the JSON null value. By default, fields with empty
12033	// values are omitted from API requests. However, any field with an
12034	// empty value appearing in NullFields will be sent to the server as
12035	// null. It is an error if a field in this list has a non-empty value.
12036	// This may be used to include null fields in Patch requests.
12037	NullFields []string `json:"-"`
12038}
12039
12040func (s *HTTPHealthCheck) MarshalJSON() ([]byte, error) {
12041	type NoMethod HTTPHealthCheck
12042	raw := NoMethod(*s)
12043	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12044}
12045
12046type HTTPSHealthCheck struct {
12047	// Host: The value of the host header in the HTTPS health check request.
12048	// If left empty (default value), the IP on behalf of which this health
12049	// check is performed will be used.
12050	Host string `json:"host,omitempty"`
12051
12052	// Port: The TCP port number for the health check request. The default
12053	// value is 443. Valid values are 1 through 65535.
12054	Port int64 `json:"port,omitempty"`
12055
12056	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
12057	// both port and port_name are defined, port takes precedence.
12058	PortName string `json:"portName,omitempty"`
12059
12060	// PortSpecification: Specifies how port is selected for health
12061	// checking, can be one of following values:
12062	// USE_FIXED_PORT: The port number in port is used for health
12063	// checking.
12064	// USE_NAMED_PORT: The portName is used for health
12065	// checking.
12066	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
12067	// each network endpoint is used for health checking. For other
12068	// backends, the port or named port specified in the Backend Service is
12069	// used for health checking.
12070	//
12071	//
12072	// If not specified, HTTPS health check follows behavior specified in
12073	// port and portName fields.
12074	//
12075	// Possible values:
12076	//   "USE_FIXED_PORT"
12077	//   "USE_NAMED_PORT"
12078	//   "USE_SERVING_PORT"
12079	PortSpecification string `json:"portSpecification,omitempty"`
12080
12081	// ProxyHeader: Specifies the type of proxy header to append before
12082	// sending data to the backend, either NONE or PROXY_V1. The default is
12083	// NONE.
12084	//
12085	// Possible values:
12086	//   "NONE"
12087	//   "PROXY_V1"
12088	ProxyHeader string `json:"proxyHeader,omitempty"`
12089
12090	// RequestPath: The request path of the HTTPS health check request. The
12091	// default value is /.
12092	RequestPath string `json:"requestPath,omitempty"`
12093
12094	// Response: The string to match anywhere in the first 1024 bytes of the
12095	// response body. If left empty (the default value), the status code
12096	// determines health. The response data can only be ASCII.
12097	Response string `json:"response,omitempty"`
12098
12099	// ForceSendFields is a list of field names (e.g. "Host") to
12100	// unconditionally include in API requests. By default, fields with
12101	// empty values are omitted from API requests. However, any non-pointer,
12102	// non-interface field appearing in ForceSendFields will be sent to the
12103	// server regardless of whether the field is empty or not. This may be
12104	// used to include empty fields in Patch requests.
12105	ForceSendFields []string `json:"-"`
12106
12107	// NullFields is a list of field names (e.g. "Host") to include in API
12108	// requests with the JSON null value. By default, fields with empty
12109	// values are omitted from API requests. However, any field with an
12110	// empty value appearing in NullFields will be sent to the server as
12111	// null. It is an error if a field in this list has a non-empty value.
12112	// This may be used to include null fields in Patch requests.
12113	NullFields []string `json:"-"`
12114}
12115
12116func (s *HTTPSHealthCheck) MarshalJSON() ([]byte, error) {
12117	type NoMethod HTTPSHealthCheck
12118	raw := NoMethod(*s)
12119	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12120}
12121
12122// HealthCheck: Represents a Health Check resource.
12123//
12124// Google Compute Engine has two Health Check resources:
12125//
12126// * Global (/compute/docs/reference/rest/{$api_version}/healthChecks) *
12127// Regional
12128// (/compute/docs/reference/rest/{$api_version}/regionHealthChecks)
12129//
12130// Internal HTTP(S) load balancers must use regional health checks
12131// (`compute.v1.regionHealthChecks`).
12132//
12133// Traffic Director must use global health checks
12134// (`compute.v1.HealthChecks`).
12135//
12136// Internal TCP/UDP load balancers can use either regional or global
12137// health checks (`compute.v1.regionHealthChecks` or
12138// `compute.v1.HealthChecks`).
12139//
12140// External HTTP(S), TCP proxy, and SSL proxy load balancers as well as
12141// managed instance group auto-healing must use global health checks
12142// (`compute.v1.HealthChecks`).
12143//
12144// Network load balancers must use legacy HTTP health checks
12145// (httpHealthChecks).
12146//
12147// For more information, see Health checks overview.
12148type HealthCheck struct {
12149	// CheckIntervalSec: How often (in seconds) to send a health check. The
12150	// default value is 5 seconds.
12151	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
12152
12153	// CreationTimestamp: [Output Only] Creation timestamp in 3339 text
12154	// format.
12155	CreationTimestamp string `json:"creationTimestamp,omitempty"`
12156
12157	// Description: An optional description of this resource. Provide this
12158	// property when you create the resource.
12159	Description string `json:"description,omitempty"`
12160
12161	GrpcHealthCheck *GRPCHealthCheck `json:"grpcHealthCheck,omitempty"`
12162
12163	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
12164	// after this many consecutive successes. The default value is 2.
12165	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
12166
12167	Http2HealthCheck *HTTP2HealthCheck `json:"http2HealthCheck,omitempty"`
12168
12169	HttpHealthCheck *HTTPHealthCheck `json:"httpHealthCheck,omitempty"`
12170
12171	HttpsHealthCheck *HTTPSHealthCheck `json:"httpsHealthCheck,omitempty"`
12172
12173	// Id: [Output Only] The unique identifier for the resource. This
12174	// identifier is defined by the server.
12175	Id uint64 `json:"id,omitempty,string"`
12176
12177	// Kind: Type of the resource.
12178	Kind string `json:"kind,omitempty"`
12179
12180	// LogConfig: Configure logging on this health check.
12181	LogConfig *HealthCheckLogConfig `json:"logConfig,omitempty"`
12182
12183	// Name: Name of the resource. Provided by the client when the resource
12184	// is created. The name must be 1-63 characters long, and comply with
12185	// RFC1035. For example, a name that is 1-63 characters long, matches
12186	// the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`, and otherwise
12187	// complies with RFC1035. This regular expression describes a name where
12188	// the first character is a lowercase letter, and all following
12189	// characters are a dash, lowercase letter, or digit, except the last
12190	// character, which isn't a dash.
12191	Name string `json:"name,omitempty"`
12192
12193	// Region: [Output Only] Region where the health check resides. Not
12194	// applicable to global health checks.
12195	Region string `json:"region,omitempty"`
12196
12197	// SelfLink: [Output Only] Server-defined URL for the resource.
12198	SelfLink string `json:"selfLink,omitempty"`
12199
12200	SslHealthCheck *SSLHealthCheck `json:"sslHealthCheck,omitempty"`
12201
12202	TcpHealthCheck *TCPHealthCheck `json:"tcpHealthCheck,omitempty"`
12203
12204	// TimeoutSec: How long (in seconds) to wait before claiming failure.
12205	// The default value is 5 seconds. It is invalid for timeoutSec to have
12206	// greater value than checkIntervalSec.
12207	TimeoutSec int64 `json:"timeoutSec,omitempty"`
12208
12209	// Type: Specifies the type of the healthCheck, either TCP, SSL, HTTP,
12210	// HTTPS or HTTP2. If not specified, the default is TCP. Exactly one of
12211	// the protocol-specific health check field must be specified, which
12212	// must match type field.
12213	//
12214	// Possible values:
12215	//   "GRPC"
12216	//   "HTTP"
12217	//   "HTTP2"
12218	//   "HTTPS"
12219	//   "INVALID"
12220	//   "SSL"
12221	//   "TCP"
12222	Type string `json:"type,omitempty"`
12223
12224	// UnhealthyThreshold: A so-far healthy instance will be marked
12225	// unhealthy after this many consecutive failures. The default value is
12226	// 2.
12227	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
12228
12229	// ServerResponse contains the HTTP response code and headers from the
12230	// server.
12231	googleapi.ServerResponse `json:"-"`
12232
12233	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
12234	// unconditionally include in API requests. By default, fields with
12235	// empty values are omitted from API requests. However, any non-pointer,
12236	// non-interface field appearing in ForceSendFields will be sent to the
12237	// server regardless of whether the field is empty or not. This may be
12238	// used to include empty fields in Patch requests.
12239	ForceSendFields []string `json:"-"`
12240
12241	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
12242	// include in API requests with the JSON null value. By default, fields
12243	// with empty values are omitted from API requests. However, any field
12244	// with an empty value appearing in NullFields will be sent to the
12245	// server as null. It is an error if a field in this list has a
12246	// non-empty value. This may be used to include null fields in Patch
12247	// requests.
12248	NullFields []string `json:"-"`
12249}
12250
12251func (s *HealthCheck) MarshalJSON() ([]byte, error) {
12252	type NoMethod HealthCheck
12253	raw := NoMethod(*s)
12254	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12255}
12256
12257// HealthCheckList: Contains a list of HealthCheck resources.
12258type HealthCheckList struct {
12259	// Id: [Output Only] Unique identifier for the resource; defined by the
12260	// server.
12261	Id string `json:"id,omitempty"`
12262
12263	// Items: A list of HealthCheck resources.
12264	Items []*HealthCheck `json:"items,omitempty"`
12265
12266	// Kind: Type of resource.
12267	Kind string `json:"kind,omitempty"`
12268
12269	// NextPageToken: [Output Only] This token allows you to get the next
12270	// page of results for list requests. If the number of results is larger
12271	// than maxResults, use the nextPageToken as a value for the query
12272	// parameter pageToken in the next list request. Subsequent list
12273	// requests will have their own nextPageToken to continue paging through
12274	// the results.
12275	NextPageToken string `json:"nextPageToken,omitempty"`
12276
12277	// SelfLink: [Output Only] Server-defined URL for this resource.
12278	SelfLink string `json:"selfLink,omitempty"`
12279
12280	// Warning: [Output Only] Informational warning message.
12281	Warning *HealthCheckListWarning `json:"warning,omitempty"`
12282
12283	// ServerResponse contains the HTTP response code and headers from the
12284	// server.
12285	googleapi.ServerResponse `json:"-"`
12286
12287	// ForceSendFields is a list of field names (e.g. "Id") to
12288	// unconditionally include in API requests. By default, fields with
12289	// empty values are omitted from API requests. However, any non-pointer,
12290	// non-interface field appearing in ForceSendFields will be sent to the
12291	// server regardless of whether the field is empty or not. This may be
12292	// used to include empty fields in Patch requests.
12293	ForceSendFields []string `json:"-"`
12294
12295	// NullFields is a list of field names (e.g. "Id") to include in API
12296	// requests with the JSON null value. By default, fields with empty
12297	// values are omitted from API requests. However, any field with an
12298	// empty value appearing in NullFields will be sent to the server as
12299	// null. It is an error if a field in this list has a non-empty value.
12300	// This may be used to include null fields in Patch requests.
12301	NullFields []string `json:"-"`
12302}
12303
12304func (s *HealthCheckList) MarshalJSON() ([]byte, error) {
12305	type NoMethod HealthCheckList
12306	raw := NoMethod(*s)
12307	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12308}
12309
12310// HealthCheckListWarning: [Output Only] Informational warning message.
12311type HealthCheckListWarning struct {
12312	// Code: [Output Only] A warning code, if applicable. For example,
12313	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
12314	// the response.
12315	//
12316	// Possible values:
12317	//   "CLEANUP_FAILED"
12318	//   "DEPRECATED_RESOURCE_USED"
12319	//   "DEPRECATED_TYPE_USED"
12320	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
12321	//   "EXPERIMENTAL_TYPE_USED"
12322	//   "EXTERNAL_API_WARNING"
12323	//   "FIELD_VALUE_OVERRIDEN"
12324	//   "INJECTED_KERNELS_DEPRECATED"
12325	//   "LARGE_DEPLOYMENT_WARNING"
12326	//   "MISSING_TYPE_DEPENDENCY"
12327	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
12328	//   "NEXT_HOP_CANNOT_IP_FORWARD"
12329	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
12330	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
12331	//   "NEXT_HOP_NOT_RUNNING"
12332	//   "NOT_CRITICAL_ERROR"
12333	//   "NO_RESULTS_ON_PAGE"
12334	//   "PARTIAL_SUCCESS"
12335	//   "REQUIRED_TOS_AGREEMENT"
12336	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
12337	//   "RESOURCE_NOT_DELETED"
12338	//   "SCHEMA_VALIDATION_IGNORED"
12339	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
12340	//   "UNDECLARED_PROPERTIES"
12341	//   "UNREACHABLE"
12342	Code string `json:"code,omitempty"`
12343
12344	// Data: [Output Only] Metadata about this warning in key: value format.
12345	// For example:
12346	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
12347	Data []*HealthCheckListWarningData `json:"data,omitempty"`
12348
12349	// Message: [Output Only] A human-readable description of the warning
12350	// code.
12351	Message string `json:"message,omitempty"`
12352
12353	// ForceSendFields is a list of field names (e.g. "Code") to
12354	// unconditionally include in API requests. By default, fields with
12355	// empty values are omitted from API requests. However, any non-pointer,
12356	// non-interface field appearing in ForceSendFields will be sent to the
12357	// server regardless of whether the field is empty or not. This may be
12358	// used to include empty fields in Patch requests.
12359	ForceSendFields []string `json:"-"`
12360
12361	// NullFields is a list of field names (e.g. "Code") to include in API
12362	// requests with the JSON null value. By default, fields with empty
12363	// values are omitted from API requests. However, any field with an
12364	// empty value appearing in NullFields will be sent to the server as
12365	// null. It is an error if a field in this list has a non-empty value.
12366	// This may be used to include null fields in Patch requests.
12367	NullFields []string `json:"-"`
12368}
12369
12370func (s *HealthCheckListWarning) MarshalJSON() ([]byte, error) {
12371	type NoMethod HealthCheckListWarning
12372	raw := NoMethod(*s)
12373	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12374}
12375
12376type HealthCheckListWarningData struct {
12377	// Key: [Output Only] A key that provides more detail on the warning
12378	// being returned. For example, for warnings where there are no results
12379	// in a list request for a particular zone, this key might be scope and
12380	// the key value might be the zone name. Other examples might be a key
12381	// indicating a deprecated resource and a suggested replacement, or a
12382	// warning about invalid network settings (for example, if an instance
12383	// attempts to perform IP forwarding but is not enabled for IP
12384	// forwarding).
12385	Key string `json:"key,omitempty"`
12386
12387	// Value: [Output Only] A warning data value corresponding to the key.
12388	Value string `json:"value,omitempty"`
12389
12390	// ForceSendFields is a list of field names (e.g. "Key") to
12391	// unconditionally include in API requests. By default, fields with
12392	// empty values are omitted from API requests. However, any non-pointer,
12393	// non-interface field appearing in ForceSendFields will be sent to the
12394	// server regardless of whether the field is empty or not. This may be
12395	// used to include empty fields in Patch requests.
12396	ForceSendFields []string `json:"-"`
12397
12398	// NullFields is a list of field names (e.g. "Key") to include in API
12399	// requests with the JSON null value. By default, fields with empty
12400	// values are omitted from API requests. However, any field with an
12401	// empty value appearing in NullFields will be sent to the server as
12402	// null. It is an error if a field in this list has a non-empty value.
12403	// This may be used to include null fields in Patch requests.
12404	NullFields []string `json:"-"`
12405}
12406
12407func (s *HealthCheckListWarningData) MarshalJSON() ([]byte, error) {
12408	type NoMethod HealthCheckListWarningData
12409	raw := NoMethod(*s)
12410	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12411}
12412
12413// HealthCheckLogConfig: Configuration of logging on a health check. If
12414// logging is enabled, logs will be exported to Stackdriver.
12415type HealthCheckLogConfig struct {
12416	// Enable: Indicates whether or not to export logs. This is false by
12417	// default, which means no health check logging will be done.
12418	Enable bool `json:"enable,omitempty"`
12419
12420	// ForceSendFields is a list of field names (e.g. "Enable") to
12421	// unconditionally include in API requests. By default, fields with
12422	// empty values are omitted from API requests. However, any non-pointer,
12423	// non-interface field appearing in ForceSendFields will be sent to the
12424	// server regardless of whether the field is empty or not. This may be
12425	// used to include empty fields in Patch requests.
12426	ForceSendFields []string `json:"-"`
12427
12428	// NullFields is a list of field names (e.g. "Enable") to include in API
12429	// requests with the JSON null value. By default, fields with empty
12430	// values are omitted from API requests. However, any field with an
12431	// empty value appearing in NullFields will be sent to the server as
12432	// null. It is an error if a field in this list has a non-empty value.
12433	// This may be used to include null fields in Patch requests.
12434	NullFields []string `json:"-"`
12435}
12436
12437func (s *HealthCheckLogConfig) MarshalJSON() ([]byte, error) {
12438	type NoMethod HealthCheckLogConfig
12439	raw := NoMethod(*s)
12440	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12441}
12442
12443// HealthCheckReference: A full or valid partial URL to a health check.
12444// For example, the following are valid URLs:
12445// -
12446// https://www.googleapis.com/compute/beta/projects/project-id/global/httpHealthChecks/health-check
12447//
12448// - projects/project-id/global/httpHealthChecks/health-check
12449// - global/httpHealthChecks/health-check
12450type HealthCheckReference struct {
12451	HealthCheck string `json:"healthCheck,omitempty"`
12452
12453	// ForceSendFields is a list of field names (e.g. "HealthCheck") to
12454	// unconditionally include in API requests. By default, fields with
12455	// empty values are omitted from API requests. However, any non-pointer,
12456	// non-interface field appearing in ForceSendFields will be sent to the
12457	// server regardless of whether the field is empty or not. This may be
12458	// used to include empty fields in Patch requests.
12459	ForceSendFields []string `json:"-"`
12460
12461	// NullFields is a list of field names (e.g. "HealthCheck") to include
12462	// in API requests with the JSON null value. By default, fields with
12463	// empty values are omitted from API requests. However, any field with
12464	// an empty value appearing in NullFields will be sent to the server as
12465	// null. It is an error if a field in this list has a non-empty value.
12466	// This may be used to include null fields in Patch requests.
12467	NullFields []string `json:"-"`
12468}
12469
12470func (s *HealthCheckReference) MarshalJSON() ([]byte, error) {
12471	type NoMethod HealthCheckReference
12472	raw := NoMethod(*s)
12473	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12474}
12475
12476// HealthCheckService: Represents a Health-Check as a Service
12477// resource.
12478//
12479// (== resource_for {$api_version}.regionHealthCheckServices ==)
12480type HealthCheckService struct {
12481	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
12482	// format.
12483	CreationTimestamp string `json:"creationTimestamp,omitempty"`
12484
12485	// Description: An optional description of this resource. Provide this
12486	// property when you create the resource.
12487	Description string `json:"description,omitempty"`
12488
12489	// Fingerprint: Fingerprint of this resource. A hash of the contents
12490	// stored in this object. This field is used in optimistic locking. This
12491	// field will be ignored when inserting a HealthCheckService. An
12492	// up-to-date fingerprint must be provided in order to patch/update the
12493	// HealthCheckService; Otherwise, the request will fail with error 412
12494	// conditionNotMet. To see the latest fingerprint, make a get() request
12495	// to retrieve the HealthCheckService.
12496	Fingerprint string `json:"fingerprint,omitempty"`
12497
12498	// HealthChecks: List of URLs to the HealthCheck resources. Must have at
12499	// least one HealthCheck, and not more than 10. HealthCheck resources
12500	// must have portSpecification=USE_SERVING_PORT or
12501	// portSpecification=USE_FIXED_PORT. For regional HealthCheckService,
12502	// the HealthCheck must be regional and in the same region. For global
12503	// HealthCheckService, HealthCheck must be global. Mix of regional and
12504	// global HealthChecks is not supported. Multiple regional HealthChecks
12505	// must belong to the same region. Regional HealthChecks must belong to
12506	// the same region as zones of NEGs.
12507	HealthChecks []string `json:"healthChecks,omitempty"`
12508
12509	// HealthStatusAggregationPolicy: Optional. Policy for how the results
12510	// from multiple health checks for the same endpoint are aggregated.
12511	// Defaults to NO_AGGREGATION if unspecified.
12512	// - NO_AGGREGATION. An EndpointHealth message is returned for each
12513	// backend in the health check service.
12514	// - AND. If any backend's health check reports UNHEALTHY, then
12515	// UNHEALTHY is the HealthState of the entire health check service. If
12516	// all backend's are healthy, the HealthState of the health check
12517	// service is HEALTHY. .
12518	//
12519	// Possible values:
12520	//   "AND"
12521	//   "NO_AGGREGATION"
12522	HealthStatusAggregationPolicy string `json:"healthStatusAggregationPolicy,omitempty"`
12523
12524	// Id: [Output Only] The unique identifier for the resource. This
12525	// identifier is defined by the server.
12526	Id uint64 `json:"id,omitempty,string"`
12527
12528	// Kind: [Output only] Type of the resource. Always
12529	// compute#healthCheckServicefor health check services.
12530	Kind string `json:"kind,omitempty"`
12531
12532	// Name: Name of the resource. The name must be 1-63 characters long,
12533	// and comply with RFC1035. Specifically, the name must be 1-63
12534	// characters long and match the regular expression
12535	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
12536	// a lowercase letter, and all following characters must be a dash,
12537	// lowercase letter, or digit, except the last character, which cannot
12538	// be a dash.
12539	Name string `json:"name,omitempty"`
12540
12541	// NetworkEndpointGroups: List of URLs to the NetworkEndpointGroup
12542	// resources. Must not have more than 100. For regional
12543	// HealthCheckService, NEGs must be in zones in the region of the
12544	// HealthCheckService.
12545	NetworkEndpointGroups []string `json:"networkEndpointGroups,omitempty"`
12546
12547	// NotificationEndpoints: List of URLs to the NotificationEndpoint
12548	// resources. Must not have more than 10. A list of endpoints for
12549	// receiving notifications of change in health status. For regional
12550	// HealthCheckService, NotificationEndpoint must be regional and in the
12551	// same region. For global HealthCheckService, NotificationEndpoint must
12552	// be global.
12553	NotificationEndpoints []string `json:"notificationEndpoints,omitempty"`
12554
12555	// Region: [Output Only] URL of the region where the health check
12556	// service resides. This field is not applicable to global health check
12557	// services. You must specify this field as part of the HTTP request
12558	// URL. It is not settable as a field in the request body.
12559	Region string `json:"region,omitempty"`
12560
12561	// SelfLink: [Output Only] Server-defined URL for the resource.
12562	SelfLink string `json:"selfLink,omitempty"`
12563
12564	// ServerResponse contains the HTTP response code and headers from the
12565	// server.
12566	googleapi.ServerResponse `json:"-"`
12567
12568	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
12569	// to unconditionally include in API requests. By default, fields with
12570	// empty values are omitted from API requests. However, any non-pointer,
12571	// non-interface field appearing in ForceSendFields will be sent to the
12572	// server regardless of whether the field is empty or not. This may be
12573	// used to include empty fields in Patch requests.
12574	ForceSendFields []string `json:"-"`
12575
12576	// NullFields is a list of field names (e.g. "CreationTimestamp") to
12577	// include in API requests with the JSON null value. By default, fields
12578	// with empty values are omitted from API requests. However, any field
12579	// with an empty value appearing in NullFields will be sent to the
12580	// server as null. It is an error if a field in this list has a
12581	// non-empty value. This may be used to include null fields in Patch
12582	// requests.
12583	NullFields []string `json:"-"`
12584}
12585
12586func (s *HealthCheckService) MarshalJSON() ([]byte, error) {
12587	type NoMethod HealthCheckService
12588	raw := NoMethod(*s)
12589	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12590}
12591
12592// HealthCheckServiceReference: A full or valid partial URL to a health
12593// check service. For example, the following are valid URLs:
12594// -
12595// https://www.googleapis.com/compute/beta/projects/project-id/regions/us-west1/healthCheckServices/health-check-service
12596//
12597// -
12598// projects/project-id/regions/us-west1/healthCheckServices/health-check-
12599// service
12600// - regions/us-west1/healthCheckServices/health-check-service
12601type HealthCheckServiceReference struct {
12602	HealthCheckService string `json:"healthCheckService,omitempty"`
12603
12604	// ForceSendFields is a list of field names (e.g. "HealthCheckService")
12605	// to unconditionally include in API requests. By default, fields with
12606	// empty values are omitted from API requests. However, any non-pointer,
12607	// non-interface field appearing in ForceSendFields will be sent to the
12608	// server regardless of whether the field is empty or not. This may be
12609	// used to include empty fields in Patch requests.
12610	ForceSendFields []string `json:"-"`
12611
12612	// NullFields is a list of field names (e.g. "HealthCheckService") to
12613	// include in API requests with the JSON null value. By default, fields
12614	// with empty values are omitted from API requests. However, any field
12615	// with an empty value appearing in NullFields will be sent to the
12616	// server as null. It is an error if a field in this list has a
12617	// non-empty value. This may be used to include null fields in Patch
12618	// requests.
12619	NullFields []string `json:"-"`
12620}
12621
12622func (s *HealthCheckServiceReference) MarshalJSON() ([]byte, error) {
12623	type NoMethod HealthCheckServiceReference
12624	raw := NoMethod(*s)
12625	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12626}
12627
12628type HealthCheckServicesList struct {
12629	// Id: [Output Only] Unique identifier for the resource; defined by the
12630	// server.
12631	Id string `json:"id,omitempty"`
12632
12633	// Items: A list of HealthCheckService resources.
12634	Items []*HealthCheckService `json:"items,omitempty"`
12635
12636	// Kind: [Output Only] Type of the resource. Always
12637	// compute#healthCheckServicesList for lists of HealthCheckServices.
12638	Kind string `json:"kind,omitempty"`
12639
12640	// NextPageToken: [Output Only] This token allows you to get the next
12641	// page of results for list requests. If the number of results is larger
12642	// than maxResults, use the nextPageToken as a value for the query
12643	// parameter pageToken in the next list request. Subsequent list
12644	// requests will have their own nextPageToken to continue paging through
12645	// the results.
12646	NextPageToken string `json:"nextPageToken,omitempty"`
12647
12648	// SelfLink: [Output Only] Server-defined URL for this resource.
12649	SelfLink string `json:"selfLink,omitempty"`
12650
12651	// Warning: [Output Only] Informational warning message.
12652	Warning *HealthCheckServicesListWarning `json:"warning,omitempty"`
12653
12654	// ServerResponse contains the HTTP response code and headers from the
12655	// server.
12656	googleapi.ServerResponse `json:"-"`
12657
12658	// ForceSendFields is a list of field names (e.g. "Id") to
12659	// unconditionally include in API requests. By default, fields with
12660	// empty values are omitted from API requests. However, any non-pointer,
12661	// non-interface field appearing in ForceSendFields will be sent to the
12662	// server regardless of whether the field is empty or not. This may be
12663	// used to include empty fields in Patch requests.
12664	ForceSendFields []string `json:"-"`
12665
12666	// NullFields is a list of field names (e.g. "Id") to include in API
12667	// requests with the JSON null value. By default, fields with empty
12668	// values are omitted from API requests. However, any field with an
12669	// empty value appearing in NullFields will be sent to the server as
12670	// null. It is an error if a field in this list has a non-empty value.
12671	// This may be used to include null fields in Patch requests.
12672	NullFields []string `json:"-"`
12673}
12674
12675func (s *HealthCheckServicesList) MarshalJSON() ([]byte, error) {
12676	type NoMethod HealthCheckServicesList
12677	raw := NoMethod(*s)
12678	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12679}
12680
12681// HealthCheckServicesListWarning: [Output Only] Informational warning
12682// message.
12683type HealthCheckServicesListWarning struct {
12684	// Code: [Output Only] A warning code, if applicable. For example,
12685	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
12686	// the response.
12687	//
12688	// Possible values:
12689	//   "CLEANUP_FAILED"
12690	//   "DEPRECATED_RESOURCE_USED"
12691	//   "DEPRECATED_TYPE_USED"
12692	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
12693	//   "EXPERIMENTAL_TYPE_USED"
12694	//   "EXTERNAL_API_WARNING"
12695	//   "FIELD_VALUE_OVERRIDEN"
12696	//   "INJECTED_KERNELS_DEPRECATED"
12697	//   "LARGE_DEPLOYMENT_WARNING"
12698	//   "MISSING_TYPE_DEPENDENCY"
12699	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
12700	//   "NEXT_HOP_CANNOT_IP_FORWARD"
12701	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
12702	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
12703	//   "NEXT_HOP_NOT_RUNNING"
12704	//   "NOT_CRITICAL_ERROR"
12705	//   "NO_RESULTS_ON_PAGE"
12706	//   "PARTIAL_SUCCESS"
12707	//   "REQUIRED_TOS_AGREEMENT"
12708	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
12709	//   "RESOURCE_NOT_DELETED"
12710	//   "SCHEMA_VALIDATION_IGNORED"
12711	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
12712	//   "UNDECLARED_PROPERTIES"
12713	//   "UNREACHABLE"
12714	Code string `json:"code,omitempty"`
12715
12716	// Data: [Output Only] Metadata about this warning in key: value format.
12717	// For example:
12718	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
12719	Data []*HealthCheckServicesListWarningData `json:"data,omitempty"`
12720
12721	// Message: [Output Only] A human-readable description of the warning
12722	// code.
12723	Message string `json:"message,omitempty"`
12724
12725	// ForceSendFields is a list of field names (e.g. "Code") to
12726	// unconditionally include in API requests. By default, fields with
12727	// empty values are omitted from API requests. However, any non-pointer,
12728	// non-interface field appearing in ForceSendFields will be sent to the
12729	// server regardless of whether the field is empty or not. This may be
12730	// used to include empty fields in Patch requests.
12731	ForceSendFields []string `json:"-"`
12732
12733	// NullFields is a list of field names (e.g. "Code") to include in API
12734	// requests with the JSON null value. By default, fields with empty
12735	// values are omitted from API requests. However, any field with an
12736	// empty value appearing in NullFields will be sent to the server as
12737	// null. It is an error if a field in this list has a non-empty value.
12738	// This may be used to include null fields in Patch requests.
12739	NullFields []string `json:"-"`
12740}
12741
12742func (s *HealthCheckServicesListWarning) MarshalJSON() ([]byte, error) {
12743	type NoMethod HealthCheckServicesListWarning
12744	raw := NoMethod(*s)
12745	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12746}
12747
12748type HealthCheckServicesListWarningData struct {
12749	// Key: [Output Only] A key that provides more detail on the warning
12750	// being returned. For example, for warnings where there are no results
12751	// in a list request for a particular zone, this key might be scope and
12752	// the key value might be the zone name. Other examples might be a key
12753	// indicating a deprecated resource and a suggested replacement, or a
12754	// warning about invalid network settings (for example, if an instance
12755	// attempts to perform IP forwarding but is not enabled for IP
12756	// forwarding).
12757	Key string `json:"key,omitempty"`
12758
12759	// Value: [Output Only] A warning data value corresponding to the key.
12760	Value string `json:"value,omitempty"`
12761
12762	// ForceSendFields is a list of field names (e.g. "Key") to
12763	// unconditionally include in API requests. By default, fields with
12764	// empty values are omitted from API requests. However, any non-pointer,
12765	// non-interface field appearing in ForceSendFields will be sent to the
12766	// server regardless of whether the field is empty or not. This may be
12767	// used to include empty fields in Patch requests.
12768	ForceSendFields []string `json:"-"`
12769
12770	// NullFields is a list of field names (e.g. "Key") to include in API
12771	// requests with the JSON null value. By default, fields with empty
12772	// values are omitted from API requests. However, any field with an
12773	// empty value appearing in NullFields will be sent to the server as
12774	// null. It is an error if a field in this list has a non-empty value.
12775	// This may be used to include null fields in Patch requests.
12776	NullFields []string `json:"-"`
12777}
12778
12779func (s *HealthCheckServicesListWarningData) MarshalJSON() ([]byte, error) {
12780	type NoMethod HealthCheckServicesListWarningData
12781	raw := NoMethod(*s)
12782	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12783}
12784
12785type HealthChecksAggregatedList struct {
12786	// Id: [Output Only] Unique identifier for the resource; defined by the
12787	// server.
12788	Id string `json:"id,omitempty"`
12789
12790	// Items: A list of HealthChecksScopedList resources.
12791	Items map[string]HealthChecksScopedList `json:"items,omitempty"`
12792
12793	// Kind: Type of resource.
12794	Kind string `json:"kind,omitempty"`
12795
12796	// NextPageToken: [Output Only] This token allows you to get the next
12797	// page of results for list requests. If the number of results is larger
12798	// than maxResults, use the nextPageToken as a value for the query
12799	// parameter pageToken in the next list request. Subsequent list
12800	// requests will have their own nextPageToken to continue paging through
12801	// the results.
12802	NextPageToken string `json:"nextPageToken,omitempty"`
12803
12804	// SelfLink: [Output Only] Server-defined URL for this resource.
12805	SelfLink string `json:"selfLink,omitempty"`
12806
12807	// Unreachables: [Output Only] Unreachable resources.
12808	Unreachables []string `json:"unreachables,omitempty"`
12809
12810	// Warning: [Output Only] Informational warning message.
12811	Warning *HealthChecksAggregatedListWarning `json:"warning,omitempty"`
12812
12813	// ServerResponse contains the HTTP response code and headers from the
12814	// server.
12815	googleapi.ServerResponse `json:"-"`
12816
12817	// ForceSendFields is a list of field names (e.g. "Id") to
12818	// unconditionally include in API requests. By default, fields with
12819	// empty values are omitted from API requests. However, any non-pointer,
12820	// non-interface field appearing in ForceSendFields will be sent to the
12821	// server regardless of whether the field is empty or not. This may be
12822	// used to include empty fields in Patch requests.
12823	ForceSendFields []string `json:"-"`
12824
12825	// NullFields is a list of field names (e.g. "Id") to include in API
12826	// requests with the JSON null value. By default, fields with empty
12827	// values are omitted from API requests. However, any field with an
12828	// empty value appearing in NullFields will be sent to the server as
12829	// null. It is an error if a field in this list has a non-empty value.
12830	// This may be used to include null fields in Patch requests.
12831	NullFields []string `json:"-"`
12832}
12833
12834func (s *HealthChecksAggregatedList) MarshalJSON() ([]byte, error) {
12835	type NoMethod HealthChecksAggregatedList
12836	raw := NoMethod(*s)
12837	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12838}
12839
12840// HealthChecksAggregatedListWarning: [Output Only] Informational
12841// warning message.
12842type HealthChecksAggregatedListWarning struct {
12843	// Code: [Output Only] A warning code, if applicable. For example,
12844	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
12845	// the response.
12846	//
12847	// Possible values:
12848	//   "CLEANUP_FAILED"
12849	//   "DEPRECATED_RESOURCE_USED"
12850	//   "DEPRECATED_TYPE_USED"
12851	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
12852	//   "EXPERIMENTAL_TYPE_USED"
12853	//   "EXTERNAL_API_WARNING"
12854	//   "FIELD_VALUE_OVERRIDEN"
12855	//   "INJECTED_KERNELS_DEPRECATED"
12856	//   "LARGE_DEPLOYMENT_WARNING"
12857	//   "MISSING_TYPE_DEPENDENCY"
12858	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
12859	//   "NEXT_HOP_CANNOT_IP_FORWARD"
12860	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
12861	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
12862	//   "NEXT_HOP_NOT_RUNNING"
12863	//   "NOT_CRITICAL_ERROR"
12864	//   "NO_RESULTS_ON_PAGE"
12865	//   "PARTIAL_SUCCESS"
12866	//   "REQUIRED_TOS_AGREEMENT"
12867	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
12868	//   "RESOURCE_NOT_DELETED"
12869	//   "SCHEMA_VALIDATION_IGNORED"
12870	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
12871	//   "UNDECLARED_PROPERTIES"
12872	//   "UNREACHABLE"
12873	Code string `json:"code,omitempty"`
12874
12875	// Data: [Output Only] Metadata about this warning in key: value format.
12876	// For example:
12877	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
12878	Data []*HealthChecksAggregatedListWarningData `json:"data,omitempty"`
12879
12880	// Message: [Output Only] A human-readable description of the warning
12881	// code.
12882	Message string `json:"message,omitempty"`
12883
12884	// ForceSendFields is a list of field names (e.g. "Code") to
12885	// unconditionally include in API requests. By default, fields with
12886	// empty values are omitted from API requests. However, any non-pointer,
12887	// non-interface field appearing in ForceSendFields will be sent to the
12888	// server regardless of whether the field is empty or not. This may be
12889	// used to include empty fields in Patch requests.
12890	ForceSendFields []string `json:"-"`
12891
12892	// NullFields is a list of field names (e.g. "Code") to include in API
12893	// requests with the JSON null value. By default, fields with empty
12894	// values are omitted from API requests. However, any field with an
12895	// empty value appearing in NullFields will be sent to the server as
12896	// null. It is an error if a field in this list has a non-empty value.
12897	// This may be used to include null fields in Patch requests.
12898	NullFields []string `json:"-"`
12899}
12900
12901func (s *HealthChecksAggregatedListWarning) MarshalJSON() ([]byte, error) {
12902	type NoMethod HealthChecksAggregatedListWarning
12903	raw := NoMethod(*s)
12904	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12905}
12906
12907type HealthChecksAggregatedListWarningData struct {
12908	// Key: [Output Only] A key that provides more detail on the warning
12909	// being returned. For example, for warnings where there are no results
12910	// in a list request for a particular zone, this key might be scope and
12911	// the key value might be the zone name. Other examples might be a key
12912	// indicating a deprecated resource and a suggested replacement, or a
12913	// warning about invalid network settings (for example, if an instance
12914	// attempts to perform IP forwarding but is not enabled for IP
12915	// forwarding).
12916	Key string `json:"key,omitempty"`
12917
12918	// Value: [Output Only] A warning data value corresponding to the key.
12919	Value string `json:"value,omitempty"`
12920
12921	// ForceSendFields is a list of field names (e.g. "Key") to
12922	// unconditionally include in API requests. By default, fields with
12923	// empty values are omitted from API requests. However, any non-pointer,
12924	// non-interface field appearing in ForceSendFields will be sent to the
12925	// server regardless of whether the field is empty or not. This may be
12926	// used to include empty fields in Patch requests.
12927	ForceSendFields []string `json:"-"`
12928
12929	// NullFields is a list of field names (e.g. "Key") to include in API
12930	// requests with the JSON null value. By default, fields with empty
12931	// values are omitted from API requests. However, any field with an
12932	// empty value appearing in NullFields will be sent to the server as
12933	// null. It is an error if a field in this list has a non-empty value.
12934	// This may be used to include null fields in Patch requests.
12935	NullFields []string `json:"-"`
12936}
12937
12938func (s *HealthChecksAggregatedListWarningData) MarshalJSON() ([]byte, error) {
12939	type NoMethod HealthChecksAggregatedListWarningData
12940	raw := NoMethod(*s)
12941	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12942}
12943
12944type HealthChecksScopedList struct {
12945	// HealthChecks: A list of HealthChecks contained in this scope.
12946	HealthChecks []*HealthCheck `json:"healthChecks,omitempty"`
12947
12948	// Warning: Informational warning which replaces the list of backend
12949	// services when the list is empty.
12950	Warning *HealthChecksScopedListWarning `json:"warning,omitempty"`
12951
12952	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
12953	// unconditionally include in API requests. By default, fields with
12954	// empty values are omitted from API requests. However, any non-pointer,
12955	// non-interface field appearing in ForceSendFields will be sent to the
12956	// server regardless of whether the field is empty or not. This may be
12957	// used to include empty fields in Patch requests.
12958	ForceSendFields []string `json:"-"`
12959
12960	// NullFields is a list of field names (e.g. "HealthChecks") to include
12961	// in API requests with the JSON null value. By default, fields with
12962	// empty values are omitted from API requests. However, any field with
12963	// an empty value appearing in NullFields will be sent to the server as
12964	// null. It is an error if a field in this list has a non-empty value.
12965	// This may be used to include null fields in Patch requests.
12966	NullFields []string `json:"-"`
12967}
12968
12969func (s *HealthChecksScopedList) MarshalJSON() ([]byte, error) {
12970	type NoMethod HealthChecksScopedList
12971	raw := NoMethod(*s)
12972	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12973}
12974
12975// HealthChecksScopedListWarning: Informational warning which replaces
12976// the list of backend services when the list is empty.
12977type HealthChecksScopedListWarning struct {
12978	// Code: [Output Only] A warning code, if applicable. For example,
12979	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
12980	// the response.
12981	//
12982	// Possible values:
12983	//   "CLEANUP_FAILED"
12984	//   "DEPRECATED_RESOURCE_USED"
12985	//   "DEPRECATED_TYPE_USED"
12986	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
12987	//   "EXPERIMENTAL_TYPE_USED"
12988	//   "EXTERNAL_API_WARNING"
12989	//   "FIELD_VALUE_OVERRIDEN"
12990	//   "INJECTED_KERNELS_DEPRECATED"
12991	//   "LARGE_DEPLOYMENT_WARNING"
12992	//   "MISSING_TYPE_DEPENDENCY"
12993	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
12994	//   "NEXT_HOP_CANNOT_IP_FORWARD"
12995	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
12996	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
12997	//   "NEXT_HOP_NOT_RUNNING"
12998	//   "NOT_CRITICAL_ERROR"
12999	//   "NO_RESULTS_ON_PAGE"
13000	//   "PARTIAL_SUCCESS"
13001	//   "REQUIRED_TOS_AGREEMENT"
13002	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
13003	//   "RESOURCE_NOT_DELETED"
13004	//   "SCHEMA_VALIDATION_IGNORED"
13005	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
13006	//   "UNDECLARED_PROPERTIES"
13007	//   "UNREACHABLE"
13008	Code string `json:"code,omitempty"`
13009
13010	// Data: [Output Only] Metadata about this warning in key: value format.
13011	// For example:
13012	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
13013	Data []*HealthChecksScopedListWarningData `json:"data,omitempty"`
13014
13015	// Message: [Output Only] A human-readable description of the warning
13016	// code.
13017	Message string `json:"message,omitempty"`
13018
13019	// ForceSendFields is a list of field names (e.g. "Code") to
13020	// unconditionally include in API requests. By default, fields with
13021	// empty values are omitted from API requests. However, any non-pointer,
13022	// non-interface field appearing in ForceSendFields will be sent to the
13023	// server regardless of whether the field is empty or not. This may be
13024	// used to include empty fields in Patch requests.
13025	ForceSendFields []string `json:"-"`
13026
13027	// NullFields is a list of field names (e.g. "Code") to include in API
13028	// requests with the JSON null value. By default, fields with empty
13029	// values are omitted from API requests. However, any field with an
13030	// empty value appearing in NullFields will be sent to the server as
13031	// null. It is an error if a field in this list has a non-empty value.
13032	// This may be used to include null fields in Patch requests.
13033	NullFields []string `json:"-"`
13034}
13035
13036func (s *HealthChecksScopedListWarning) MarshalJSON() ([]byte, error) {
13037	type NoMethod HealthChecksScopedListWarning
13038	raw := NoMethod(*s)
13039	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13040}
13041
13042type HealthChecksScopedListWarningData struct {
13043	// Key: [Output Only] A key that provides more detail on the warning
13044	// being returned. For example, for warnings where there are no results
13045	// in a list request for a particular zone, this key might be scope and
13046	// the key value might be the zone name. Other examples might be a key
13047	// indicating a deprecated resource and a suggested replacement, or a
13048	// warning about invalid network settings (for example, if an instance
13049	// attempts to perform IP forwarding but is not enabled for IP
13050	// forwarding).
13051	Key string `json:"key,omitempty"`
13052
13053	// Value: [Output Only] A warning data value corresponding to the key.
13054	Value string `json:"value,omitempty"`
13055
13056	// ForceSendFields is a list of field names (e.g. "Key") to
13057	// unconditionally include in API requests. By default, fields with
13058	// empty values are omitted from API requests. However, any non-pointer,
13059	// non-interface field appearing in ForceSendFields will be sent to the
13060	// server regardless of whether the field is empty or not. This may be
13061	// used to include empty fields in Patch requests.
13062	ForceSendFields []string `json:"-"`
13063
13064	// NullFields is a list of field names (e.g. "Key") to include in API
13065	// requests with the JSON null value. By default, fields with empty
13066	// values are omitted from API requests. However, any field with an
13067	// empty value appearing in NullFields will be sent to the server as
13068	// null. It is an error if a field in this list has a non-empty value.
13069	// This may be used to include null fields in Patch requests.
13070	NullFields []string `json:"-"`
13071}
13072
13073func (s *HealthChecksScopedListWarningData) MarshalJSON() ([]byte, error) {
13074	type NoMethod HealthChecksScopedListWarningData
13075	raw := NoMethod(*s)
13076	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13077}
13078
13079type HealthStatus struct {
13080	// Annotations: Metadata defined as annotations for network endpoint.
13081	Annotations map[string]string `json:"annotations,omitempty"`
13082
13083	// ForwardingRule: URL of the forwarding rule associated with the health
13084	// status of the instance.
13085	ForwardingRule string `json:"forwardingRule,omitempty"`
13086
13087	// ForwardingRuleIp: A forwarding rule IP address assigned to this
13088	// instance.
13089	ForwardingRuleIp string `json:"forwardingRuleIp,omitempty"`
13090
13091	// HealthState: Health state of the instance.
13092	//
13093	// Possible values:
13094	//   "HEALTHY"
13095	//   "UNHEALTHY"
13096	HealthState string `json:"healthState,omitempty"`
13097
13098	// Instance: URL of the instance resource.
13099	Instance string `json:"instance,omitempty"`
13100
13101	// IpAddress: For target pool based Network Load Balancing, it indicates
13102	// the forwarding rule's IP address assigned to this instance. For other
13103	// types of load balancing, the field indicates VM internal ip.
13104	IpAddress string `json:"ipAddress,omitempty"`
13105
13106	// Port: The named port of the instance group, not necessarily the port
13107	// that is health-checked.
13108	Port int64 `json:"port,omitempty"`
13109
13110	Weight string `json:"weight,omitempty"`
13111
13112	// Possible values:
13113	//   "INVALID_WEIGHT"
13114	//   "MISSING_WEIGHT"
13115	//   "UNAVAILABLE_WEIGHT"
13116	//   "WEIGHT_NONE"
13117	WeightError string `json:"weightError,omitempty"`
13118
13119	// ForceSendFields is a list of field names (e.g. "Annotations") to
13120	// unconditionally include in API requests. By default, fields with
13121	// empty values are omitted from API requests. However, any non-pointer,
13122	// non-interface field appearing in ForceSendFields will be sent to the
13123	// server regardless of whether the field is empty or not. This may be
13124	// used to include empty fields in Patch requests.
13125	ForceSendFields []string `json:"-"`
13126
13127	// NullFields is a list of field names (e.g. "Annotations") to include
13128	// in API requests with the JSON null value. By default, fields with
13129	// empty values are omitted from API requests. However, any field with
13130	// an empty value appearing in NullFields will be sent to the server as
13131	// null. It is an error if a field in this list has a non-empty value.
13132	// This may be used to include null fields in Patch requests.
13133	NullFields []string `json:"-"`
13134}
13135
13136func (s *HealthStatus) MarshalJSON() ([]byte, error) {
13137	type NoMethod HealthStatus
13138	raw := NoMethod(*s)
13139	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13140}
13141
13142type HealthStatusForNetworkEndpoint struct {
13143	// BackendService: URL of the backend service associated with the health
13144	// state of the network endpoint.
13145	BackendService *BackendServiceReference `json:"backendService,omitempty"`
13146
13147	// ForwardingRule: URL of the forwarding rule associated with the health
13148	// state of the network endpoint.
13149	ForwardingRule *ForwardingRuleReference `json:"forwardingRule,omitempty"`
13150
13151	// HealthCheck: URL of the health check associated with the health state
13152	// of the network endpoint.
13153	HealthCheck *HealthCheckReference `json:"healthCheck,omitempty"`
13154
13155	// HealthCheckService: URL of the health check service associated with
13156	// the health state of the network endpoint.
13157	HealthCheckService *HealthCheckServiceReference `json:"healthCheckService,omitempty"`
13158
13159	// HealthState: Health state of the network endpoint determined based on
13160	// the health checks configured.
13161	//
13162	// Possible values:
13163	//   "DRAINING"
13164	//   "HEALTHY"
13165	//   "UNHEALTHY"
13166	//   "UNKNOWN"
13167	HealthState string `json:"healthState,omitempty"`
13168
13169	// ForceSendFields is a list of field names (e.g. "BackendService") to
13170	// unconditionally include in API requests. By default, fields with
13171	// empty values are omitted from API requests. However, any non-pointer,
13172	// non-interface field appearing in ForceSendFields will be sent to the
13173	// server regardless of whether the field is empty or not. This may be
13174	// used to include empty fields in Patch requests.
13175	ForceSendFields []string `json:"-"`
13176
13177	// NullFields is a list of field names (e.g. "BackendService") to
13178	// include in API requests with the JSON null value. By default, fields
13179	// with empty values are omitted from API requests. However, any field
13180	// with an empty value appearing in NullFields will be sent to the
13181	// server as null. It is an error if a field in this list has a
13182	// non-empty value. This may be used to include null fields in Patch
13183	// requests.
13184	NullFields []string `json:"-"`
13185}
13186
13187func (s *HealthStatusForNetworkEndpoint) MarshalJSON() ([]byte, error) {
13188	type NoMethod HealthStatusForNetworkEndpoint
13189	raw := NoMethod(*s)
13190	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13191}
13192
13193// HostRule: UrlMaps A host-matching rule for a URL. If matched, will
13194// use the named PathMatcher to select the BackendService.
13195type HostRule struct {
13196	// Description: An optional description of this resource. Provide this
13197	// property when you create the resource.
13198	Description string `json:"description,omitempty"`
13199
13200	// Hosts: The list of host patterns to match. They must be valid
13201	// hostnames with optional port numbers in the format host:port. *
13202	// matches any string of ([a-z0-9-.]*). In that case, * must be the
13203	// first character and must be followed in the pattern by either - or
13204	// ..
13205	// * based matching is not supported when the URL map is bound to target
13206	// gRPC proxy that has validateForProxyless field set to true.
13207	Hosts []string `json:"hosts,omitempty"`
13208
13209	// PathMatcher: The name of the PathMatcher to use to match the path
13210	// portion of the URL if the hostRule matches the URL's host portion.
13211	PathMatcher string `json:"pathMatcher,omitempty"`
13212
13213	// ForceSendFields is a list of field names (e.g. "Description") to
13214	// unconditionally include in API requests. By default, fields with
13215	// empty values are omitted from API requests. However, any non-pointer,
13216	// non-interface field appearing in ForceSendFields will be sent to the
13217	// server regardless of whether the field is empty or not. This may be
13218	// used to include empty fields in Patch requests.
13219	ForceSendFields []string `json:"-"`
13220
13221	// NullFields is a list of field names (e.g. "Description") to include
13222	// in API requests with the JSON null value. By default, fields with
13223	// empty values are omitted from API requests. However, any field with
13224	// an empty value appearing in NullFields will be sent to the server as
13225	// null. It is an error if a field in this list has a non-empty value.
13226	// This may be used to include null fields in Patch requests.
13227	NullFields []string `json:"-"`
13228}
13229
13230func (s *HostRule) MarshalJSON() ([]byte, error) {
13231	type NoMethod HostRule
13232	raw := NoMethod(*s)
13233	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13234}
13235
13236// HttpFaultAbort: Specification for how requests are aborted as part of
13237// fault injection.
13238type HttpFaultAbort struct {
13239	// HttpStatus: The HTTP status code used to abort the request.
13240	// The value must be between 200 and 599 inclusive.
13241	// For gRPC protocol, the gRPC status code is mapped to HTTP status code
13242	// according to this  mapping table. HTTP status 200 is mapped to gRPC
13243	// status UNKNOWN. Injecting an OK status is currently not supported by
13244	// Traffic Director.
13245	HttpStatus int64 `json:"httpStatus,omitempty"`
13246
13247	// Percentage: The percentage of traffic
13248	// (connections/operations/requests) which will be aborted as part of
13249	// fault injection.
13250	// The value must be between 0.0 and 100.0 inclusive.
13251	Percentage float64 `json:"percentage,omitempty"`
13252
13253	// ForceSendFields is a list of field names (e.g. "HttpStatus") to
13254	// unconditionally include in API requests. By default, fields with
13255	// empty values are omitted from API requests. However, any non-pointer,
13256	// non-interface field appearing in ForceSendFields will be sent to the
13257	// server regardless of whether the field is empty or not. This may be
13258	// used to include empty fields in Patch requests.
13259	ForceSendFields []string `json:"-"`
13260
13261	// NullFields is a list of field names (e.g. "HttpStatus") to include in
13262	// API requests with the JSON null value. By default, fields with empty
13263	// values are omitted from API requests. However, any field with an
13264	// empty value appearing in NullFields will be sent to the server as
13265	// null. It is an error if a field in this list has a non-empty value.
13266	// This may be used to include null fields in Patch requests.
13267	NullFields []string `json:"-"`
13268}
13269
13270func (s *HttpFaultAbort) MarshalJSON() ([]byte, error) {
13271	type NoMethod HttpFaultAbort
13272	raw := NoMethod(*s)
13273	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13274}
13275
13276func (s *HttpFaultAbort) UnmarshalJSON(data []byte) error {
13277	type NoMethod HttpFaultAbort
13278	var s1 struct {
13279		Percentage gensupport.JSONFloat64 `json:"percentage"`
13280		*NoMethod
13281	}
13282	s1.NoMethod = (*NoMethod)(s)
13283	if err := json.Unmarshal(data, &s1); err != nil {
13284		return err
13285	}
13286	s.Percentage = float64(s1.Percentage)
13287	return nil
13288}
13289
13290// HttpFaultDelay: Specifies the delay introduced by Loadbalancer before
13291// forwarding the request to the backend service as part of fault
13292// injection.
13293type HttpFaultDelay struct {
13294	// FixedDelay: Specifies the value of the fixed delay interval.
13295	FixedDelay *Duration `json:"fixedDelay,omitempty"`
13296
13297	// Percentage: The percentage of traffic
13298	// (connections/operations/requests) on which delay will be introduced
13299	// as part of fault injection.
13300	// The value must be between 0.0 and 100.0 inclusive.
13301	Percentage float64 `json:"percentage,omitempty"`
13302
13303	// ForceSendFields is a list of field names (e.g. "FixedDelay") to
13304	// unconditionally include in API requests. By default, fields with
13305	// empty values are omitted from API requests. However, any non-pointer,
13306	// non-interface field appearing in ForceSendFields will be sent to the
13307	// server regardless of whether the field is empty or not. This may be
13308	// used to include empty fields in Patch requests.
13309	ForceSendFields []string `json:"-"`
13310
13311	// NullFields is a list of field names (e.g. "FixedDelay") to include in
13312	// API requests with the JSON null value. By default, fields with empty
13313	// values are omitted from API requests. However, any field with an
13314	// empty value appearing in NullFields will be sent to the server as
13315	// null. It is an error if a field in this list has a non-empty value.
13316	// This may be used to include null fields in Patch requests.
13317	NullFields []string `json:"-"`
13318}
13319
13320func (s *HttpFaultDelay) MarshalJSON() ([]byte, error) {
13321	type NoMethod HttpFaultDelay
13322	raw := NoMethod(*s)
13323	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13324}
13325
13326func (s *HttpFaultDelay) UnmarshalJSON(data []byte) error {
13327	type NoMethod HttpFaultDelay
13328	var s1 struct {
13329		Percentage gensupport.JSONFloat64 `json:"percentage"`
13330		*NoMethod
13331	}
13332	s1.NoMethod = (*NoMethod)(s)
13333	if err := json.Unmarshal(data, &s1); err != nil {
13334		return err
13335	}
13336	s.Percentage = float64(s1.Percentage)
13337	return nil
13338}
13339
13340// HttpFaultInjection: The specification for fault injection introduced
13341// into traffic to test the resiliency of clients to backend service
13342// failure. As part of fault injection, when clients send requests to a
13343// backend service, delays can be introduced by Loadbalancer on a
13344// percentage of requests before sending those request to the backend
13345// service. Similarly requests from clients can be aborted by the
13346// Loadbalancer for a percentage of requests.
13347type HttpFaultInjection struct {
13348	// Abort: The specification for how client requests are aborted as part
13349	// of fault injection.
13350	Abort *HttpFaultAbort `json:"abort,omitempty"`
13351
13352	// Delay: The specification for how client requests are delayed as part
13353	// of fault injection, before being sent to a backend service.
13354	Delay *HttpFaultDelay `json:"delay,omitempty"`
13355
13356	// ForceSendFields is a list of field names (e.g. "Abort") to
13357	// unconditionally include in API requests. By default, fields with
13358	// empty values are omitted from API requests. However, any non-pointer,
13359	// non-interface field appearing in ForceSendFields will be sent to the
13360	// server regardless of whether the field is empty or not. This may be
13361	// used to include empty fields in Patch requests.
13362	ForceSendFields []string `json:"-"`
13363
13364	// NullFields is a list of field names (e.g. "Abort") to include in API
13365	// requests with the JSON null value. By default, fields with empty
13366	// values are omitted from API requests. However, any field with an
13367	// empty value appearing in NullFields will be sent to the server as
13368	// null. It is an error if a field in this list has a non-empty value.
13369	// This may be used to include null fields in Patch requests.
13370	NullFields []string `json:"-"`
13371}
13372
13373func (s *HttpFaultInjection) MarshalJSON() ([]byte, error) {
13374	type NoMethod HttpFaultInjection
13375	raw := NoMethod(*s)
13376	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13377}
13378
13379// HttpHeaderAction: The request and response header transformations
13380// that take effect before the request is passed along to the selected
13381// backendService.
13382type HttpHeaderAction struct {
13383	// RequestHeadersToAdd: Headers to add to a matching request prior to
13384	// forwarding the request to the backendService.
13385	RequestHeadersToAdd []*HttpHeaderOption `json:"requestHeadersToAdd,omitempty"`
13386
13387	// RequestHeadersToRemove: A list of header names for headers that need
13388	// to be removed from the request prior to forwarding the request to the
13389	// backendService.
13390	RequestHeadersToRemove []string `json:"requestHeadersToRemove,omitempty"`
13391
13392	// ResponseHeadersToAdd: Headers to add the response prior to sending
13393	// the response back to the client.
13394	ResponseHeadersToAdd []*HttpHeaderOption `json:"responseHeadersToAdd,omitempty"`
13395
13396	// ResponseHeadersToRemove: A list of header names for headers that need
13397	// to be removed from the response prior to sending the response back to
13398	// the client.
13399	ResponseHeadersToRemove []string `json:"responseHeadersToRemove,omitempty"`
13400
13401	// ForceSendFields is a list of field names (e.g. "RequestHeadersToAdd")
13402	// to unconditionally include in API requests. By default, fields with
13403	// empty values are omitted from API requests. However, any non-pointer,
13404	// non-interface field appearing in ForceSendFields will be sent to the
13405	// server regardless of whether the field is empty or not. This may be
13406	// used to include empty fields in Patch requests.
13407	ForceSendFields []string `json:"-"`
13408
13409	// NullFields is a list of field names (e.g. "RequestHeadersToAdd") to
13410	// include in API requests with the JSON null value. By default, fields
13411	// with empty values are omitted from API requests. However, any field
13412	// with an empty value appearing in NullFields will be sent to the
13413	// server as null. It is an error if a field in this list has a
13414	// non-empty value. This may be used to include null fields in Patch
13415	// requests.
13416	NullFields []string `json:"-"`
13417}
13418
13419func (s *HttpHeaderAction) MarshalJSON() ([]byte, error) {
13420	type NoMethod HttpHeaderAction
13421	raw := NoMethod(*s)
13422	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13423}
13424
13425// HttpHeaderMatch: matchRule criteria for request header matches.
13426type HttpHeaderMatch struct {
13427	// ExactMatch: The value should exactly match contents of
13428	// exactMatch.
13429	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
13430	// presentMatch or rangeMatch must be set.
13431	ExactMatch string `json:"exactMatch,omitempty"`
13432
13433	// HeaderName: The name of the HTTP header to match.
13434	// For matching against the HTTP request's authority, use a headerMatch
13435	// with the header name ":authority".
13436	// For matching a request's method, use the headerName ":method".
13437	// When the URL map is bound to target gRPC proxy that has
13438	// validateForProxyless field set to true, only non-binary
13439	// user-specified custom metadata and the `content-type` header are
13440	// supported. The following transport-level headers cannot be used in
13441	// header matching rules: `:authority`, `:method`, `:path`, `:scheme`,
13442	// `user-agent`, `accept-encoding`, `content-encoding`,
13443	// `grpc-accept-encoding`, `grpc-encoding`,
13444	// `grpc-previous-rpc-attempts`, `grpc-tags-bin`, `grpc-timeout` and
13445	// `grpc-trace-bin.
13446	HeaderName string `json:"headerName,omitempty"`
13447
13448	// InvertMatch: If set to false, the headerMatch is considered a match
13449	// if the match criteria above are met. If set to true, the headerMatch
13450	// is considered a match if the match criteria above are NOT met.
13451	// The default setting is false.
13452	InvertMatch bool `json:"invertMatch,omitempty"`
13453
13454	// PrefixMatch: The value of the header must start with the contents of
13455	// prefixMatch.
13456	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
13457	// presentMatch or rangeMatch must be set.
13458	PrefixMatch string `json:"prefixMatch,omitempty"`
13459
13460	// PresentMatch: A header with the contents of headerName must exist.
13461	// The match takes place whether or not the request's header has a
13462	// value.
13463	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
13464	// presentMatch or rangeMatch must be set.
13465	PresentMatch bool `json:"presentMatch,omitempty"`
13466
13467	// RangeMatch: The header value must be an integer and its value must be
13468	// in the range specified in rangeMatch. If the header does not contain
13469	// an integer, number or is empty, the match fails.
13470	// For example for a range [-5, 0]
13471	// - -3 will match.
13472	// - 0 will not match.
13473	// - 0.25 will not match.
13474	// - -3someString will not match.
13475	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
13476	// presentMatch or rangeMatch must be set.
13477	// Note that rangeMatch is not supported for Loadbalancers that have
13478	// their loadBalancingScheme set to EXTERNAL.
13479	RangeMatch *Int64RangeMatch `json:"rangeMatch,omitempty"`
13480
13481	// RegexMatch: The value of the header must match the regular expression
13482	// specified in regexMatch. For regular expression grammar, please see:
13483	// github.com/google/re2/wiki/Syntax
13484	// For matching against a port specified in the HTTP request, use a
13485	// headerMatch with headerName set to PORT and a regular expression that
13486	// satisfies the RFC2616 Host header's port specifier.
13487	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
13488	// presentMatch or rangeMatch must be set.
13489	// Note that regexMatch only applies to Loadbalancers that have their
13490	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
13491	RegexMatch string `json:"regexMatch,omitempty"`
13492
13493	// SuffixMatch: The value of the header must end with the contents of
13494	// suffixMatch.
13495	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
13496	// presentMatch or rangeMatch must be set.
13497	SuffixMatch string `json:"suffixMatch,omitempty"`
13498
13499	// ForceSendFields is a list of field names (e.g. "ExactMatch") to
13500	// unconditionally include in API requests. By default, fields with
13501	// empty values are omitted from API requests. However, any non-pointer,
13502	// non-interface field appearing in ForceSendFields will be sent to the
13503	// server regardless of whether the field is empty or not. This may be
13504	// used to include empty fields in Patch requests.
13505	ForceSendFields []string `json:"-"`
13506
13507	// NullFields is a list of field names (e.g. "ExactMatch") to include in
13508	// API requests with the JSON null value. By default, fields with empty
13509	// values are omitted from API requests. However, any field with an
13510	// empty value appearing in NullFields will be sent to the server as
13511	// null. It is an error if a field in this list has a non-empty value.
13512	// This may be used to include null fields in Patch requests.
13513	NullFields []string `json:"-"`
13514}
13515
13516func (s *HttpHeaderMatch) MarshalJSON() ([]byte, error) {
13517	type NoMethod HttpHeaderMatch
13518	raw := NoMethod(*s)
13519	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13520}
13521
13522// HttpHeaderOption: Specification determining how headers are added to
13523// requests or responses.
13524type HttpHeaderOption struct {
13525	// HeaderName: The name of the header.
13526	HeaderName string `json:"headerName,omitempty"`
13527
13528	// HeaderValue: The value of the header to add.
13529	HeaderValue string `json:"headerValue,omitempty"`
13530
13531	// Replace: If false, headerValue is appended to any values that already
13532	// exist for the header. If true, headerValue is set for the header,
13533	// discarding any values that were set for that header.
13534	// The default value is false.
13535	Replace bool `json:"replace,omitempty"`
13536
13537	// ForceSendFields is a list of field names (e.g. "HeaderName") to
13538	// unconditionally include in API requests. By default, fields with
13539	// empty values are omitted from API requests. However, any non-pointer,
13540	// non-interface field appearing in ForceSendFields will be sent to the
13541	// server regardless of whether the field is empty or not. This may be
13542	// used to include empty fields in Patch requests.
13543	ForceSendFields []string `json:"-"`
13544
13545	// NullFields is a list of field names (e.g. "HeaderName") to include in
13546	// API requests with the JSON null value. By default, fields with empty
13547	// values are omitted from API requests. However, any field with an
13548	// empty value appearing in NullFields will be sent to the server as
13549	// null. It is an error if a field in this list has a non-empty value.
13550	// This may be used to include null fields in Patch requests.
13551	NullFields []string `json:"-"`
13552}
13553
13554func (s *HttpHeaderOption) MarshalJSON() ([]byte, error) {
13555	type NoMethod HttpHeaderOption
13556	raw := NoMethod(*s)
13557	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13558}
13559
13560// HttpHealthCheck: Represents a legacy HTTP Health Check
13561// resource.
13562//
13563// Legacy health checks are required by network load balancers. For more
13564// information, read Health Check Concepts.
13565type HttpHealthCheck struct {
13566	// CheckIntervalSec: How often (in seconds) to send a health check. The
13567	// default value is 5 seconds.
13568	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
13569
13570	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
13571	// format.
13572	CreationTimestamp string `json:"creationTimestamp,omitempty"`
13573
13574	// Description: An optional description of this resource. Provide this
13575	// property when you create the resource.
13576	Description string `json:"description,omitempty"`
13577
13578	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
13579	// after this many consecutive successes. The default value is 2.
13580	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
13581
13582	// Host: The value of the host header in the HTTP health check request.
13583	// If left empty (default value), the public IP on behalf of which this
13584	// health check is performed will be used.
13585	Host string `json:"host,omitempty"`
13586
13587	// Id: [Output Only] The unique identifier for the resource. This
13588	// identifier is defined by the server.
13589	Id uint64 `json:"id,omitempty,string"`
13590
13591	// Kind: [Output Only] Type of the resource. Always
13592	// compute#httpHealthCheck for HTTP health checks.
13593	Kind string `json:"kind,omitempty"`
13594
13595	// Name: Name of the resource. Provided by the client when the resource
13596	// is created. The name must be 1-63 characters long, and comply with
13597	// RFC1035. Specifically, the name must be 1-63 characters long and
13598	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
13599	// the first character must be a lowercase letter, and all following
13600	// characters must be a dash, lowercase letter, or digit, except the
13601	// last character, which cannot be a dash.
13602	Name string `json:"name,omitempty"`
13603
13604	// Port: The TCP port number for the HTTP health check request. The
13605	// default value is 80.
13606	Port int64 `json:"port,omitempty"`
13607
13608	// RequestPath: The request path of the HTTP health check request. The
13609	// default value is /. This field does not support query parameters.
13610	RequestPath string `json:"requestPath,omitempty"`
13611
13612	// SelfLink: [Output Only] Server-defined URL for the resource.
13613	SelfLink string `json:"selfLink,omitempty"`
13614
13615	// TimeoutSec: How long (in seconds) to wait before claiming failure.
13616	// The default value is 5 seconds. It is invalid for timeoutSec to have
13617	// greater value than checkIntervalSec.
13618	TimeoutSec int64 `json:"timeoutSec,omitempty"`
13619
13620	// UnhealthyThreshold: A so-far healthy instance will be marked
13621	// unhealthy after this many consecutive failures. The default value is
13622	// 2.
13623	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
13624
13625	// ServerResponse contains the HTTP response code and headers from the
13626	// server.
13627	googleapi.ServerResponse `json:"-"`
13628
13629	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
13630	// unconditionally include in API requests. By default, fields with
13631	// empty values are omitted from API requests. However, any non-pointer,
13632	// non-interface field appearing in ForceSendFields will be sent to the
13633	// server regardless of whether the field is empty or not. This may be
13634	// used to include empty fields in Patch requests.
13635	ForceSendFields []string `json:"-"`
13636
13637	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
13638	// include in API requests with the JSON null value. By default, fields
13639	// with empty values are omitted from API requests. However, any field
13640	// with an empty value appearing in NullFields will be sent to the
13641	// server as null. It is an error if a field in this list has a
13642	// non-empty value. This may be used to include null fields in Patch
13643	// requests.
13644	NullFields []string `json:"-"`
13645}
13646
13647func (s *HttpHealthCheck) MarshalJSON() ([]byte, error) {
13648	type NoMethod HttpHealthCheck
13649	raw := NoMethod(*s)
13650	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13651}
13652
13653// HttpHealthCheckList: Contains a list of HttpHealthCheck resources.
13654type HttpHealthCheckList struct {
13655	// Id: [Output Only] Unique identifier for the resource; defined by the
13656	// server.
13657	Id string `json:"id,omitempty"`
13658
13659	// Items: A list of HttpHealthCheck resources.
13660	Items []*HttpHealthCheck `json:"items,omitempty"`
13661
13662	// Kind: Type of resource.
13663	Kind string `json:"kind,omitempty"`
13664
13665	// NextPageToken: [Output Only] This token allows you to get the next
13666	// page of results for list requests. If the number of results is larger
13667	// than maxResults, use the nextPageToken as a value for the query
13668	// parameter pageToken in the next list request. Subsequent list
13669	// requests will have their own nextPageToken to continue paging through
13670	// the results.
13671	NextPageToken string `json:"nextPageToken,omitempty"`
13672
13673	// SelfLink: [Output Only] Server-defined URL for this resource.
13674	SelfLink string `json:"selfLink,omitempty"`
13675
13676	// Warning: [Output Only] Informational warning message.
13677	Warning *HttpHealthCheckListWarning `json:"warning,omitempty"`
13678
13679	// ServerResponse contains the HTTP response code and headers from the
13680	// server.
13681	googleapi.ServerResponse `json:"-"`
13682
13683	// ForceSendFields is a list of field names (e.g. "Id") to
13684	// unconditionally include in API requests. By default, fields with
13685	// empty values are omitted from API requests. However, any non-pointer,
13686	// non-interface field appearing in ForceSendFields will be sent to the
13687	// server regardless of whether the field is empty or not. This may be
13688	// used to include empty fields in Patch requests.
13689	ForceSendFields []string `json:"-"`
13690
13691	// NullFields is a list of field names (e.g. "Id") to include in API
13692	// requests with the JSON null value. By default, fields with empty
13693	// values are omitted from API requests. However, any field with an
13694	// empty value appearing in NullFields will be sent to the server as
13695	// null. It is an error if a field in this list has a non-empty value.
13696	// This may be used to include null fields in Patch requests.
13697	NullFields []string `json:"-"`
13698}
13699
13700func (s *HttpHealthCheckList) MarshalJSON() ([]byte, error) {
13701	type NoMethod HttpHealthCheckList
13702	raw := NoMethod(*s)
13703	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13704}
13705
13706// HttpHealthCheckListWarning: [Output Only] Informational warning
13707// message.
13708type HttpHealthCheckListWarning struct {
13709	// Code: [Output Only] A warning code, if applicable. For example,
13710	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
13711	// the response.
13712	//
13713	// Possible values:
13714	//   "CLEANUP_FAILED"
13715	//   "DEPRECATED_RESOURCE_USED"
13716	//   "DEPRECATED_TYPE_USED"
13717	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
13718	//   "EXPERIMENTAL_TYPE_USED"
13719	//   "EXTERNAL_API_WARNING"
13720	//   "FIELD_VALUE_OVERRIDEN"
13721	//   "INJECTED_KERNELS_DEPRECATED"
13722	//   "LARGE_DEPLOYMENT_WARNING"
13723	//   "MISSING_TYPE_DEPENDENCY"
13724	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
13725	//   "NEXT_HOP_CANNOT_IP_FORWARD"
13726	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
13727	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
13728	//   "NEXT_HOP_NOT_RUNNING"
13729	//   "NOT_CRITICAL_ERROR"
13730	//   "NO_RESULTS_ON_PAGE"
13731	//   "PARTIAL_SUCCESS"
13732	//   "REQUIRED_TOS_AGREEMENT"
13733	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
13734	//   "RESOURCE_NOT_DELETED"
13735	//   "SCHEMA_VALIDATION_IGNORED"
13736	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
13737	//   "UNDECLARED_PROPERTIES"
13738	//   "UNREACHABLE"
13739	Code string `json:"code,omitempty"`
13740
13741	// Data: [Output Only] Metadata about this warning in key: value format.
13742	// For example:
13743	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
13744	Data []*HttpHealthCheckListWarningData `json:"data,omitempty"`
13745
13746	// Message: [Output Only] A human-readable description of the warning
13747	// code.
13748	Message string `json:"message,omitempty"`
13749
13750	// ForceSendFields is a list of field names (e.g. "Code") to
13751	// unconditionally include in API requests. By default, fields with
13752	// empty values are omitted from API requests. However, any non-pointer,
13753	// non-interface field appearing in ForceSendFields will be sent to the
13754	// server regardless of whether the field is empty or not. This may be
13755	// used to include empty fields in Patch requests.
13756	ForceSendFields []string `json:"-"`
13757
13758	// NullFields is a list of field names (e.g. "Code") to include in API
13759	// requests with the JSON null value. By default, fields with empty
13760	// values are omitted from API requests. However, any field with an
13761	// empty value appearing in NullFields will be sent to the server as
13762	// null. It is an error if a field in this list has a non-empty value.
13763	// This may be used to include null fields in Patch requests.
13764	NullFields []string `json:"-"`
13765}
13766
13767func (s *HttpHealthCheckListWarning) MarshalJSON() ([]byte, error) {
13768	type NoMethod HttpHealthCheckListWarning
13769	raw := NoMethod(*s)
13770	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13771}
13772
13773type HttpHealthCheckListWarningData struct {
13774	// Key: [Output Only] A key that provides more detail on the warning
13775	// being returned. For example, for warnings where there are no results
13776	// in a list request for a particular zone, this key might be scope and
13777	// the key value might be the zone name. Other examples might be a key
13778	// indicating a deprecated resource and a suggested replacement, or a
13779	// warning about invalid network settings (for example, if an instance
13780	// attempts to perform IP forwarding but is not enabled for IP
13781	// forwarding).
13782	Key string `json:"key,omitempty"`
13783
13784	// Value: [Output Only] A warning data value corresponding to the key.
13785	Value string `json:"value,omitempty"`
13786
13787	// ForceSendFields is a list of field names (e.g. "Key") to
13788	// unconditionally include in API requests. By default, fields with
13789	// empty values are omitted from API requests. However, any non-pointer,
13790	// non-interface field appearing in ForceSendFields will be sent to the
13791	// server regardless of whether the field is empty or not. This may be
13792	// used to include empty fields in Patch requests.
13793	ForceSendFields []string `json:"-"`
13794
13795	// NullFields is a list of field names (e.g. "Key") to include in API
13796	// requests with the JSON null value. By default, fields with empty
13797	// values are omitted from API requests. However, any field with an
13798	// empty value appearing in NullFields will be sent to the server as
13799	// null. It is an error if a field in this list has a non-empty value.
13800	// This may be used to include null fields in Patch requests.
13801	NullFields []string `json:"-"`
13802}
13803
13804func (s *HttpHealthCheckListWarningData) MarshalJSON() ([]byte, error) {
13805	type NoMethod HttpHealthCheckListWarningData
13806	raw := NoMethod(*s)
13807	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13808}
13809
13810// HttpQueryParameterMatch: HttpRouteRuleMatch criteria for a request's
13811// query parameter.
13812type HttpQueryParameterMatch struct {
13813	// ExactMatch: The queryParameterMatch matches if the value of the
13814	// parameter exactly matches the contents of exactMatch.
13815	// Only one of presentMatch, exactMatch or regexMatch must be set.
13816	ExactMatch string `json:"exactMatch,omitempty"`
13817
13818	// Name: The name of the query parameter to match. The query parameter
13819	// must exist in the request, in the absence of which the request match
13820	// fails.
13821	Name string `json:"name,omitempty"`
13822
13823	// PresentMatch: Specifies that the queryParameterMatch matches if the
13824	// request contains the query parameter, irrespective of whether the
13825	// parameter has a value or not.
13826	// Only one of presentMatch, exactMatch or regexMatch must be set.
13827	PresentMatch bool `json:"presentMatch,omitempty"`
13828
13829	// RegexMatch: The queryParameterMatch matches if the value of the
13830	// parameter matches the regular expression specified by regexMatch. For
13831	// the regular expression grammar, please see
13832	// github.com/google/re2/wiki/Syntax
13833	// Only one of presentMatch, exactMatch or regexMatch must be set.
13834	// Note that regexMatch only applies when the loadBalancingScheme is set
13835	// to INTERNAL_SELF_MANAGED.
13836	RegexMatch string `json:"regexMatch,omitempty"`
13837
13838	// ForceSendFields is a list of field names (e.g. "ExactMatch") to
13839	// unconditionally include in API requests. By default, fields with
13840	// empty values are omitted from API requests. However, any non-pointer,
13841	// non-interface field appearing in ForceSendFields will be sent to the
13842	// server regardless of whether the field is empty or not. This may be
13843	// used to include empty fields in Patch requests.
13844	ForceSendFields []string `json:"-"`
13845
13846	// NullFields is a list of field names (e.g. "ExactMatch") to include in
13847	// API requests with the JSON null value. By default, fields with empty
13848	// values are omitted from API requests. However, any field with an
13849	// empty value appearing in NullFields will be sent to the server as
13850	// null. It is an error if a field in this list has a non-empty value.
13851	// This may be used to include null fields in Patch requests.
13852	NullFields []string `json:"-"`
13853}
13854
13855func (s *HttpQueryParameterMatch) MarshalJSON() ([]byte, error) {
13856	type NoMethod HttpQueryParameterMatch
13857	raw := NoMethod(*s)
13858	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13859}
13860
13861// HttpRedirectAction: Specifies settings for an HTTP redirect.
13862type HttpRedirectAction struct {
13863	// HostRedirect: The host that will be used in the redirect response
13864	// instead of the one that was supplied in the request.
13865	// The value must be between 1 and 255 characters.
13866	HostRedirect string `json:"hostRedirect,omitempty"`
13867
13868	// HttpsRedirect: If set to true, the URL scheme in the redirected
13869	// request is set to https. If set to false, the URL scheme of the
13870	// redirected request will remain the same as that of the request.
13871	// This must only be set for UrlMaps used in TargetHttpProxys. Setting
13872	// this true for TargetHttpsProxy is not permitted.
13873	// The default is set to false.
13874	HttpsRedirect bool `json:"httpsRedirect,omitempty"`
13875
13876	// PathRedirect: The path that will be used in the redirect response
13877	// instead of the one that was supplied in the request.
13878	// pathRedirect cannot be supplied together with prefixRedirect. Supply
13879	// one alone or neither. If neither is supplied, the path of the
13880	// original request will be used for the redirect.
13881	// The value must be between 1 and 1024 characters.
13882	PathRedirect string `json:"pathRedirect,omitempty"`
13883
13884	// PrefixRedirect: The prefix that replaces the prefixMatch specified in
13885	// the HttpRouteRuleMatch, retaining the remaining portion of the URL
13886	// before redirecting the request.
13887	// prefixRedirect cannot be supplied together with pathRedirect. Supply
13888	// one alone or neither. If neither is supplied, the path of the
13889	// original request will be used for the redirect.
13890	// The value must be between 1 and 1024 characters.
13891	PrefixRedirect string `json:"prefixRedirect,omitempty"`
13892
13893	// RedirectResponseCode: The HTTP Status code to use for this
13894	// RedirectAction.
13895	// Supported values are:
13896	// - MOVED_PERMANENTLY_DEFAULT, which is the default value and
13897	// corresponds to 301.
13898	// - FOUND, which corresponds to 302.
13899	// - SEE_OTHER which corresponds to 303.
13900	// - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the
13901	// request method will be retained.
13902	// - PERMANENT_REDIRECT, which corresponds to 308. In this case, the
13903	// request method will be retained.
13904	//
13905	// Possible values:
13906	//   "FOUND"
13907	//   "MOVED_PERMANENTLY_DEFAULT"
13908	//   "PERMANENT_REDIRECT"
13909	//   "SEE_OTHER"
13910	//   "TEMPORARY_REDIRECT"
13911	RedirectResponseCode string `json:"redirectResponseCode,omitempty"`
13912
13913	// StripQuery: If set to true, any accompanying query portion of the
13914	// original URL is removed prior to redirecting the request. If set to
13915	// false, the query portion of the original URL is retained.
13916	// The default is set to false.
13917	StripQuery bool `json:"stripQuery,omitempty"`
13918
13919	// ForceSendFields is a list of field names (e.g. "HostRedirect") to
13920	// unconditionally include in API requests. By default, fields with
13921	// empty values are omitted from API requests. However, any non-pointer,
13922	// non-interface field appearing in ForceSendFields will be sent to the
13923	// server regardless of whether the field is empty or not. This may be
13924	// used to include empty fields in Patch requests.
13925	ForceSendFields []string `json:"-"`
13926
13927	// NullFields is a list of field names (e.g. "HostRedirect") to include
13928	// in API requests with the JSON null value. By default, fields with
13929	// empty values are omitted from API requests. However, any field with
13930	// an empty value appearing in NullFields will be sent to the server as
13931	// null. It is an error if a field in this list has a non-empty value.
13932	// This may be used to include null fields in Patch requests.
13933	NullFields []string `json:"-"`
13934}
13935
13936func (s *HttpRedirectAction) MarshalJSON() ([]byte, error) {
13937	type NoMethod HttpRedirectAction
13938	raw := NoMethod(*s)
13939	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13940}
13941
13942// HttpRetryPolicy: The retry policy associates with HttpRouteRule
13943type HttpRetryPolicy struct {
13944	// NumRetries: Specifies the allowed number retries. This number must be
13945	// > 0. If not specified, defaults to 1.
13946	NumRetries int64 `json:"numRetries,omitempty"`
13947
13948	// PerTryTimeout: Specifies a non-zero timeout per retry attempt.
13949	// If not specified, will use the timeout set in HttpRouteAction. If
13950	// timeout in HttpRouteAction is not set, will use the largest timeout
13951	// among all backend services associated with the route.
13952	PerTryTimeout *Duration `json:"perTryTimeout,omitempty"`
13953
13954	// RetryConditions: Specifies one or more conditions when this retry
13955	// rule applies. Valid values are:
13956	// - 5xx: Loadbalancer will attempt a retry if the backend service
13957	// responds with any 5xx response code, or if the backend service does
13958	// not respond at all, example: disconnects, reset, read timeout,
13959	// connection failure, and refused streams.
13960	// - gateway-error: Similar to 5xx, but only applies to response codes
13961	// 502, 503 or 504.
13962	// -
13963	// - connect-failure: Loadbalancer will retry on failures connecting to
13964	// backend services, for example due to connection timeouts.
13965	// - retriable-4xx: Loadbalancer will retry for retriable 4xx response
13966	// codes. Currently the only retriable error supported is 409.
13967	// - refused-stream:Loadbalancer will retry if the backend service
13968	// resets the stream with a REFUSED_STREAM error code. This reset type
13969	// indicates that it is safe to retry.
13970	// - cancelledLoadbalancer will retry if the gRPC status code in the
13971	// response header is set to cancelled
13972	// - deadline-exceeded: Loadbalancer will retry if the gRPC status code
13973	// in the response header is set to deadline-exceeded
13974	// - resource-exhausted: Loadbalancer will retry if the gRPC status code
13975	// in the response header is set to resource-exhausted
13976	// - unavailable: Loadbalancer will retry if the gRPC status code in the
13977	// response header is set to unavailable
13978	RetryConditions []string `json:"retryConditions,omitempty"`
13979
13980	// ForceSendFields is a list of field names (e.g. "NumRetries") to
13981	// unconditionally include in API requests. By default, fields with
13982	// empty values are omitted from API requests. However, any non-pointer,
13983	// non-interface field appearing in ForceSendFields will be sent to the
13984	// server regardless of whether the field is empty or not. This may be
13985	// used to include empty fields in Patch requests.
13986	ForceSendFields []string `json:"-"`
13987
13988	// NullFields is a list of field names (e.g. "NumRetries") to include in
13989	// API requests with the JSON null value. By default, fields with empty
13990	// values are omitted from API requests. However, any field with an
13991	// empty value appearing in NullFields will be sent to the server as
13992	// null. It is an error if a field in this list has a non-empty value.
13993	// This may be used to include null fields in Patch requests.
13994	NullFields []string `json:"-"`
13995}
13996
13997func (s *HttpRetryPolicy) MarshalJSON() ([]byte, error) {
13998	type NoMethod HttpRetryPolicy
13999	raw := NoMethod(*s)
14000	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14001}
14002
14003type HttpRouteAction struct {
14004	// CorsPolicy: The specification for allowing client side cross-origin
14005	// requests. Please see W3C Recommendation for Cross Origin Resource
14006	// Sharing
14007	// Not supported when the URL map is bound to target gRPC proxy.
14008	CorsPolicy *CorsPolicy `json:"corsPolicy,omitempty"`
14009
14010	// FaultInjectionPolicy: The specification for fault injection
14011	// introduced into traffic to test the resiliency of clients to backend
14012	// service failure. As part of fault injection, when clients send
14013	// requests to a backend service, delays can be introduced by
14014	// Loadbalancer on a percentage of requests before sending those request
14015	// to the backend service. Similarly requests from clients can be
14016	// aborted by the Loadbalancer for a percentage of requests. For the
14017	// requests impacted by fault injection,
14018	// timeout and retry_policy will be ignored by clients that are
14019	// configured with a fault_injection_policy.
14020	FaultInjectionPolicy *HttpFaultInjection `json:"faultInjectionPolicy,omitempty"`
14021
14022	// MaxStreamDuration: Specifies the maximum duration (timeout) for
14023	// streams on the selected route. Unlike the timeout field where the
14024	// timeout duration starts from the time the request has been fully
14025	// processed (i.e. end-of-stream), the duration in this field is
14026	// computed from the beginning of the stream until the response has been
14027	// completely processed, including all retries. A stream that does not
14028	// complete in this duration is closed.
14029	// If not specified, will use the largest maxStreamDuration among all
14030	// backend services associated with the route.
14031	// This field is only allowed if the Url map is used with backend
14032	// services with loadBalancingScheme set to INTERNAL_SELF_MANAGED.
14033	MaxStreamDuration *Duration `json:"maxStreamDuration,omitempty"`
14034
14035	// RequestMirrorPolicy: Specifies the policy on how requests intended
14036	// for the route's backends are shadowed to a separate mirrored backend
14037	// service. Loadbalancer does not wait for responses from the shadow
14038	// service. Prior to sending traffic to the shadow service, the host /
14039	// authority header is suffixed with -shadow.
14040	// Not supported when the URL map is bound to target gRPC proxy that has
14041	// validateForProxyless field set to true.
14042	RequestMirrorPolicy *RequestMirrorPolicy `json:"requestMirrorPolicy,omitempty"`
14043
14044	// RetryPolicy: Specifies the retry policy associated with this
14045	// route.
14046	// Not supported when the URL map is bound to target gRPC proxy that has
14047	// validateForProxyless field set to true.
14048	RetryPolicy *HttpRetryPolicy `json:"retryPolicy,omitempty"`
14049
14050	// Timeout: Specifies the timeout for the selected route. Timeout is
14051	// computed from the time the request has been fully processed (i.e.
14052	// end-of-stream) up until the response has been completely processed.
14053	// Timeout includes all retries.
14054	// If not specified, will use the largest timeout among all backend
14055	// services associated with the route.
14056	// Not supported when the URL map is bound to target gRPC proxy that has
14057	// validateForProxyless field set to true.
14058	Timeout *Duration `json:"timeout,omitempty"`
14059
14060	// UrlRewrite: The spec to modify the URL of the request, prior to
14061	// forwarding the request to the matched service.
14062	// urlRewrite is the only action supported in UrlMaps for external
14063	// HTTP(S) load balancers.
14064	// Not supported when the URL map is bound to target gRPC proxy that has
14065	// validateForProxyless field set to true.
14066	UrlRewrite *UrlRewrite `json:"urlRewrite,omitempty"`
14067
14068	// WeightedBackendServices: A list of weighted backend services to send
14069	// traffic to when a route match occurs. The weights determine the
14070	// fraction of traffic that flows to their corresponding backend
14071	// service. If all traffic needs to go to a single backend service,
14072	// there must be one  weightedBackendService with weight set to a
14073	// non-zero number.
14074	// Once a backendService is identified and before forwarding the request
14075	// to the backend service, advanced routing actions such as URL rewrites
14076	// and header transformations are applied depending on additional
14077	// settings specified in this HttpRouteAction.
14078	WeightedBackendServices []*WeightedBackendService `json:"weightedBackendServices,omitempty"`
14079
14080	// ForceSendFields is a list of field names (e.g. "CorsPolicy") to
14081	// unconditionally include in API requests. By default, fields with
14082	// empty values are omitted from API requests. However, any non-pointer,
14083	// non-interface field appearing in ForceSendFields will be sent to the
14084	// server regardless of whether the field is empty or not. This may be
14085	// used to include empty fields in Patch requests.
14086	ForceSendFields []string `json:"-"`
14087
14088	// NullFields is a list of field names (e.g. "CorsPolicy") to include in
14089	// API requests with the JSON null value. By default, fields with empty
14090	// values are omitted from API requests. However, any field with an
14091	// empty value appearing in NullFields will be sent to the server as
14092	// null. It is an error if a field in this list has a non-empty value.
14093	// This may be used to include null fields in Patch requests.
14094	NullFields []string `json:"-"`
14095}
14096
14097func (s *HttpRouteAction) MarshalJSON() ([]byte, error) {
14098	type NoMethod HttpRouteAction
14099	raw := NoMethod(*s)
14100	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14101}
14102
14103// HttpRouteRule: An HttpRouteRule specifies how to match an HTTP
14104// request and the corresponding routing action that load balancing
14105// proxies will perform.
14106type HttpRouteRule struct {
14107	// Description: The short description conveying the intent of this
14108	// routeRule.
14109	// The description can have a maximum length of 1024 characters.
14110	Description string `json:"description,omitempty"`
14111
14112	// HeaderAction: Specifies changes to request and response headers that
14113	// need to take effect for the selected backendService.
14114	// The headerAction specified here are applied before the matching
14115	// pathMatchers[].headerAction and after
14116	// pathMatchers[].routeRules[].routeAction.weightedBackendService.backend
14117	// ServiceWeightAction[].headerAction
14118	// Note that headerAction is not supported for Loadbalancers that have
14119	// their loadBalancingScheme set to EXTERNAL.
14120	// Not supported when the URL map is bound to target gRPC proxy that has
14121	// validateForProxyless field set to true.
14122	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
14123
14124	// MatchRules: The list of criteria for matching attributes of a request
14125	// to this routeRule. This list has OR semantics: the request matches
14126	// this routeRule when any of the matchRules are satisfied. However
14127	// predicates within a given matchRule have AND semantics. All
14128	// predicates within a matchRule must match for the request to match the
14129	// rule.
14130	MatchRules []*HttpRouteRuleMatch `json:"matchRules,omitempty"`
14131
14132	// Priority: For routeRules within a given pathMatcher, priority
14133	// determines the order in which load balancer will interpret
14134	// routeRules. RouteRules are evaluated in order of priority, from the
14135	// lowest to highest number. The priority of a rule decreases as its
14136	// number increases (1, 2, 3, N+1). The first rule that matches the
14137	// request is applied.
14138	// You cannot configure two or more routeRules with the same priority.
14139	// Priority for each rule must be set to a number between 0 and
14140	// 2147483647 inclusive.
14141	// Priority numbers can have gaps, which enable you to add or remove
14142	// rules in the future without affecting the rest of the rules. For
14143	// example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority
14144	// numbers to which you could add rules numbered from 6 to 8, 10 to 11,
14145	// and 13 to 15 in the future without any impact on existing rules.
14146	Priority int64 `json:"priority,omitempty"`
14147
14148	// RouteAction: In response to a matching matchRule, the load balancer
14149	// performs advanced routing actions like URL rewrites, header
14150	// transformations, etc. prior to forwarding the request to the selected
14151	// backend. If  routeAction specifies any  weightedBackendServices,
14152	// service must not be set. Conversely if service is set, routeAction
14153	// cannot contain any  weightedBackendServices.
14154	// Only one of urlRedirect, service or
14155	// routeAction.weightedBackendService must be set.
14156	// UrlMaps for external HTTP(S) load balancers support only the
14157	// urlRewrite action within a routeRule's routeAction.
14158	RouteAction *HttpRouteAction `json:"routeAction,omitempty"`
14159
14160	// Service: The full or partial URL of the backend service resource to
14161	// which traffic is directed if this rule is matched. If routeAction is
14162	// additionally specified, advanced routing actions like URL Rewrites,
14163	// etc. take effect prior to sending the request to the backend.
14164	// However, if service is specified, routeAction cannot contain any
14165	// weightedBackendService s. Conversely, if routeAction specifies any
14166	// weightedBackendServices, service must not be specified.
14167	// Only one of urlRedirect, service or
14168	// routeAction.weightedBackendService must be set.
14169	Service string `json:"service,omitempty"`
14170
14171	// UrlRedirect: When this rule is matched, the request is redirected to
14172	// a URL specified by urlRedirect.
14173	// If urlRedirect is specified, service or routeAction must not be
14174	// set.
14175	// Not supported when the URL map is bound to target gRPC proxy.
14176	UrlRedirect *HttpRedirectAction `json:"urlRedirect,omitempty"`
14177
14178	// ForceSendFields is a list of field names (e.g. "Description") to
14179	// unconditionally include in API requests. By default, fields with
14180	// empty values are omitted from API requests. However, any non-pointer,
14181	// non-interface field appearing in ForceSendFields will be sent to the
14182	// server regardless of whether the field is empty or not. This may be
14183	// used to include empty fields in Patch requests.
14184	ForceSendFields []string `json:"-"`
14185
14186	// NullFields is a list of field names (e.g. "Description") to include
14187	// in API requests with the JSON null value. By default, fields with
14188	// empty values are omitted from API requests. However, any field with
14189	// an empty value appearing in NullFields will be sent to the server as
14190	// null. It is an error if a field in this list has a non-empty value.
14191	// This may be used to include null fields in Patch requests.
14192	NullFields []string `json:"-"`
14193}
14194
14195func (s *HttpRouteRule) MarshalJSON() ([]byte, error) {
14196	type NoMethod HttpRouteRule
14197	raw := NoMethod(*s)
14198	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14199}
14200
14201// HttpRouteRuleMatch: HttpRouteRuleMatch specifies a set of criteria
14202// for matching requests to an HttpRouteRule. All specified criteria
14203// must be satisfied for a match to occur.
14204type HttpRouteRuleMatch struct {
14205	// FullPathMatch: For satisfying the matchRule condition, the path of
14206	// the request must exactly match the value specified in fullPathMatch
14207	// after removing any query parameters and anchor that may be part of
14208	// the original URL.
14209	// fullPathMatch must be between 1 and 1024 characters.
14210	// Only one of prefixMatch, fullPathMatch or regexMatch must be
14211	// specified.
14212	FullPathMatch string `json:"fullPathMatch,omitempty"`
14213
14214	// HeaderMatches: Specifies a list of header match criteria, all of
14215	// which must match corresponding headers in the request.
14216	HeaderMatches []*HttpHeaderMatch `json:"headerMatches,omitempty"`
14217
14218	// IgnoreCase: Specifies that prefixMatch and fullPathMatch matches are
14219	// case sensitive.
14220	// The default value is false.
14221	// ignoreCase must not be used with regexMatch.
14222	// Not supported when the URL map is bound to target gRPC proxy.
14223	IgnoreCase bool `json:"ignoreCase,omitempty"`
14224
14225	// MetadataFilters: Opaque filter criteria used by Loadbalancer to
14226	// restrict routing configuration to a limited set of xDS compliant
14227	// clients. In their xDS requests to Loadbalancer, xDS clients present
14228	// node metadata. When there is a match, the relevant routing
14229	// configuration is made available to those proxies.
14230	// For each metadataFilter in this list, if its filterMatchCriteria is
14231	// set to MATCH_ANY, at least one of the filterLabels must match the
14232	// corresponding label provided in the metadata. If its
14233	// filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels
14234	// must match with corresponding labels provided in the metadata. If
14235	// multiple metadataFilters are specified, all of them need to be
14236	// satisfied in order to be considered a match.
14237	// metadataFilters specified here will be applied after those specified
14238	// in ForwardingRule that refers to the UrlMap this HttpRouteRuleMatch
14239	// belongs to.
14240	// metadataFilters only applies to Loadbalancers that have their
14241	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
14242	// Not supported when the URL map is bound to target gRPC proxy that has
14243	// validateForProxyless field set to true.
14244	MetadataFilters []*MetadataFilter `json:"metadataFilters,omitempty"`
14245
14246	// PrefixMatch: For satisfying the matchRule condition, the request's
14247	// path must begin with the specified prefixMatch. prefixMatch must
14248	// begin with a /.
14249	// The value must be between 1 and 1024 characters.
14250	// Only one of prefixMatch, fullPathMatch or regexMatch must be
14251	// specified.
14252	PrefixMatch string `json:"prefixMatch,omitempty"`
14253
14254	// QueryParameterMatches: Specifies a list of query parameter match
14255	// criteria, all of which must match corresponding query parameters in
14256	// the request.
14257	// Not supported when the URL map is bound to target gRPC proxy.
14258	QueryParameterMatches []*HttpQueryParameterMatch `json:"queryParameterMatches,omitempty"`
14259
14260	// RegexMatch: For satisfying the matchRule condition, the path of the
14261	// request must satisfy the regular expression specified in regexMatch
14262	// after removing any query parameters and anchor supplied with the
14263	// original URL. For regular expression grammar please see
14264	// github.com/google/re2/wiki/Syntax
14265	// Only one of prefixMatch, fullPathMatch or regexMatch must be
14266	// specified.
14267	// Note that regexMatch only applies to Loadbalancers that have their
14268	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
14269	RegexMatch string `json:"regexMatch,omitempty"`
14270
14271	// ForceSendFields is a list of field names (e.g. "FullPathMatch") to
14272	// unconditionally include in API requests. By default, fields with
14273	// empty values are omitted from API requests. However, any non-pointer,
14274	// non-interface field appearing in ForceSendFields will be sent to the
14275	// server regardless of whether the field is empty or not. This may be
14276	// used to include empty fields in Patch requests.
14277	ForceSendFields []string `json:"-"`
14278
14279	// NullFields is a list of field names (e.g. "FullPathMatch") to include
14280	// in API requests with the JSON null value. By default, fields with
14281	// empty values are omitted from API requests. However, any field with
14282	// an empty value appearing in NullFields will be sent to the server as
14283	// null. It is an error if a field in this list has a non-empty value.
14284	// This may be used to include null fields in Patch requests.
14285	NullFields []string `json:"-"`
14286}
14287
14288func (s *HttpRouteRuleMatch) MarshalJSON() ([]byte, error) {
14289	type NoMethod HttpRouteRuleMatch
14290	raw := NoMethod(*s)
14291	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14292}
14293
14294// HttpsHealthCheck: Represents a legacy HTTPS Health Check
14295// resource.
14296//
14297// Legacy health checks are required by network load balancers. For more
14298// information, read Health Check Concepts.
14299type HttpsHealthCheck struct {
14300	// CheckIntervalSec: How often (in seconds) to send a health check. The
14301	// default value is 5 seconds.
14302	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
14303
14304	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
14305	// format.
14306	CreationTimestamp string `json:"creationTimestamp,omitempty"`
14307
14308	// Description: An optional description of this resource. Provide this
14309	// property when you create the resource.
14310	Description string `json:"description,omitempty"`
14311
14312	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
14313	// after this many consecutive successes. The default value is 2.
14314	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
14315
14316	// Host: The value of the host header in the HTTPS health check request.
14317	// If left empty (default value), the public IP on behalf of which this
14318	// health check is performed will be used.
14319	Host string `json:"host,omitempty"`
14320
14321	// Id: [Output Only] The unique identifier for the resource. This
14322	// identifier is defined by the server.
14323	Id uint64 `json:"id,omitempty,string"`
14324
14325	// Kind: Type of the resource.
14326	Kind string `json:"kind,omitempty"`
14327
14328	// Name: Name of the resource. Provided by the client when the resource
14329	// is created. The name must be 1-63 characters long, and comply with
14330	// RFC1035. Specifically, the name must be 1-63 characters long and
14331	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
14332	// the first character must be a lowercase letter, and all following
14333	// characters must be a dash, lowercase letter, or digit, except the
14334	// last character, which cannot be a dash.
14335	Name string `json:"name,omitempty"`
14336
14337	// Port: The TCP port number for the HTTPS health check request. The
14338	// default value is 443.
14339	Port int64 `json:"port,omitempty"`
14340
14341	// RequestPath: The request path of the HTTPS health check request. The
14342	// default value is "/".
14343	RequestPath string `json:"requestPath,omitempty"`
14344
14345	// SelfLink: [Output Only] Server-defined URL for the resource.
14346	SelfLink string `json:"selfLink,omitempty"`
14347
14348	// TimeoutSec: How long (in seconds) to wait before claiming failure.
14349	// The default value is 5 seconds. It is invalid for timeoutSec to have
14350	// a greater value than checkIntervalSec.
14351	TimeoutSec int64 `json:"timeoutSec,omitempty"`
14352
14353	// UnhealthyThreshold: A so-far healthy instance will be marked
14354	// unhealthy after this many consecutive failures. The default value is
14355	// 2.
14356	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
14357
14358	// ServerResponse contains the HTTP response code and headers from the
14359	// server.
14360	googleapi.ServerResponse `json:"-"`
14361
14362	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
14363	// unconditionally include in API requests. By default, fields with
14364	// empty values are omitted from API requests. However, any non-pointer,
14365	// non-interface field appearing in ForceSendFields will be sent to the
14366	// server regardless of whether the field is empty or not. This may be
14367	// used to include empty fields in Patch requests.
14368	ForceSendFields []string `json:"-"`
14369
14370	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
14371	// include in API requests with the JSON null value. By default, fields
14372	// with empty values are omitted from API requests. However, any field
14373	// with an empty value appearing in NullFields will be sent to the
14374	// server as null. It is an error if a field in this list has a
14375	// non-empty value. This may be used to include null fields in Patch
14376	// requests.
14377	NullFields []string `json:"-"`
14378}
14379
14380func (s *HttpsHealthCheck) MarshalJSON() ([]byte, error) {
14381	type NoMethod HttpsHealthCheck
14382	raw := NoMethod(*s)
14383	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14384}
14385
14386// HttpsHealthCheckList: Contains a list of HttpsHealthCheck resources.
14387type HttpsHealthCheckList struct {
14388	// Id: [Output Only] Unique identifier for the resource; defined by the
14389	// server.
14390	Id string `json:"id,omitempty"`
14391
14392	// Items: A list of HttpsHealthCheck resources.
14393	Items []*HttpsHealthCheck `json:"items,omitempty"`
14394
14395	// Kind: Type of resource.
14396	Kind string `json:"kind,omitempty"`
14397
14398	// NextPageToken: [Output Only] This token allows you to get the next
14399	// page of results for list requests. If the number of results is larger
14400	// than maxResults, use the nextPageToken as a value for the query
14401	// parameter pageToken in the next list request. Subsequent list
14402	// requests will have their own nextPageToken to continue paging through
14403	// the results.
14404	NextPageToken string `json:"nextPageToken,omitempty"`
14405
14406	// SelfLink: [Output Only] Server-defined URL for this resource.
14407	SelfLink string `json:"selfLink,omitempty"`
14408
14409	// Warning: [Output Only] Informational warning message.
14410	Warning *HttpsHealthCheckListWarning `json:"warning,omitempty"`
14411
14412	// ServerResponse contains the HTTP response code and headers from the
14413	// server.
14414	googleapi.ServerResponse `json:"-"`
14415
14416	// ForceSendFields is a list of field names (e.g. "Id") to
14417	// unconditionally include in API requests. By default, fields with
14418	// empty values are omitted from API requests. However, any non-pointer,
14419	// non-interface field appearing in ForceSendFields will be sent to the
14420	// server regardless of whether the field is empty or not. This may be
14421	// used to include empty fields in Patch requests.
14422	ForceSendFields []string `json:"-"`
14423
14424	// NullFields is a list of field names (e.g. "Id") to include in API
14425	// requests with the JSON null value. By default, fields with empty
14426	// values are omitted from API requests. However, any field with an
14427	// empty value appearing in NullFields will be sent to the server as
14428	// null. It is an error if a field in this list has a non-empty value.
14429	// This may be used to include null fields in Patch requests.
14430	NullFields []string `json:"-"`
14431}
14432
14433func (s *HttpsHealthCheckList) MarshalJSON() ([]byte, error) {
14434	type NoMethod HttpsHealthCheckList
14435	raw := NoMethod(*s)
14436	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14437}
14438
14439// HttpsHealthCheckListWarning: [Output Only] Informational warning
14440// message.
14441type HttpsHealthCheckListWarning struct {
14442	// Code: [Output Only] A warning code, if applicable. For example,
14443	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
14444	// the response.
14445	//
14446	// Possible values:
14447	//   "CLEANUP_FAILED"
14448	//   "DEPRECATED_RESOURCE_USED"
14449	//   "DEPRECATED_TYPE_USED"
14450	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
14451	//   "EXPERIMENTAL_TYPE_USED"
14452	//   "EXTERNAL_API_WARNING"
14453	//   "FIELD_VALUE_OVERRIDEN"
14454	//   "INJECTED_KERNELS_DEPRECATED"
14455	//   "LARGE_DEPLOYMENT_WARNING"
14456	//   "MISSING_TYPE_DEPENDENCY"
14457	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
14458	//   "NEXT_HOP_CANNOT_IP_FORWARD"
14459	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
14460	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
14461	//   "NEXT_HOP_NOT_RUNNING"
14462	//   "NOT_CRITICAL_ERROR"
14463	//   "NO_RESULTS_ON_PAGE"
14464	//   "PARTIAL_SUCCESS"
14465	//   "REQUIRED_TOS_AGREEMENT"
14466	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
14467	//   "RESOURCE_NOT_DELETED"
14468	//   "SCHEMA_VALIDATION_IGNORED"
14469	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
14470	//   "UNDECLARED_PROPERTIES"
14471	//   "UNREACHABLE"
14472	Code string `json:"code,omitempty"`
14473
14474	// Data: [Output Only] Metadata about this warning in key: value format.
14475	// For example:
14476	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
14477	Data []*HttpsHealthCheckListWarningData `json:"data,omitempty"`
14478
14479	// Message: [Output Only] A human-readable description of the warning
14480	// code.
14481	Message string `json:"message,omitempty"`
14482
14483	// ForceSendFields is a list of field names (e.g. "Code") to
14484	// unconditionally include in API requests. By default, fields with
14485	// empty values are omitted from API requests. However, any non-pointer,
14486	// non-interface field appearing in ForceSendFields will be sent to the
14487	// server regardless of whether the field is empty or not. This may be
14488	// used to include empty fields in Patch requests.
14489	ForceSendFields []string `json:"-"`
14490
14491	// NullFields is a list of field names (e.g. "Code") to include in API
14492	// requests with the JSON null value. By default, fields with empty
14493	// values are omitted from API requests. However, any field with an
14494	// empty value appearing in NullFields will be sent to the server as
14495	// null. It is an error if a field in this list has a non-empty value.
14496	// This may be used to include null fields in Patch requests.
14497	NullFields []string `json:"-"`
14498}
14499
14500func (s *HttpsHealthCheckListWarning) MarshalJSON() ([]byte, error) {
14501	type NoMethod HttpsHealthCheckListWarning
14502	raw := NoMethod(*s)
14503	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14504}
14505
14506type HttpsHealthCheckListWarningData struct {
14507	// Key: [Output Only] A key that provides more detail on the warning
14508	// being returned. For example, for warnings where there are no results
14509	// in a list request for a particular zone, this key might be scope and
14510	// the key value might be the zone name. Other examples might be a key
14511	// indicating a deprecated resource and a suggested replacement, or a
14512	// warning about invalid network settings (for example, if an instance
14513	// attempts to perform IP forwarding but is not enabled for IP
14514	// forwarding).
14515	Key string `json:"key,omitempty"`
14516
14517	// Value: [Output Only] A warning data value corresponding to the key.
14518	Value string `json:"value,omitempty"`
14519
14520	// ForceSendFields is a list of field names (e.g. "Key") to
14521	// unconditionally include in API requests. By default, fields with
14522	// empty values are omitted from API requests. However, any non-pointer,
14523	// non-interface field appearing in ForceSendFields will be sent to the
14524	// server regardless of whether the field is empty or not. This may be
14525	// used to include empty fields in Patch requests.
14526	ForceSendFields []string `json:"-"`
14527
14528	// NullFields is a list of field names (e.g. "Key") to include in API
14529	// requests with the JSON null value. By default, fields with empty
14530	// values are omitted from API requests. However, any field with an
14531	// empty value appearing in NullFields will be sent to the server as
14532	// null. It is an error if a field in this list has a non-empty value.
14533	// This may be used to include null fields in Patch requests.
14534	NullFields []string `json:"-"`
14535}
14536
14537func (s *HttpsHealthCheckListWarningData) MarshalJSON() ([]byte, error) {
14538	type NoMethod HttpsHealthCheckListWarningData
14539	raw := NoMethod(*s)
14540	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14541}
14542
14543// Image: Represents an Image resource.
14544//
14545// You can use images to create boot disks for your VM instances. For
14546// more information, read Images. (== resource_for {$api_version}.images
14547// ==)
14548type Image struct {
14549	// ArchiveSizeBytes: Size of the image tar.gz archive stored in Google
14550	// Cloud Storage (in bytes).
14551	ArchiveSizeBytes int64 `json:"archiveSizeBytes,omitempty,string"`
14552
14553	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
14554	// format.
14555	CreationTimestamp string `json:"creationTimestamp,omitempty"`
14556
14557	// Deprecated -- The deprecation status associated with this image.
14558	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
14559
14560	// Description: An optional description of this resource. Provide this
14561	// property when you create the resource.
14562	Description string `json:"description,omitempty"`
14563
14564	// DiskSizeGb: Size of the image when restored onto a persistent disk
14565	// (in GB).
14566	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
14567
14568	// Family: The name of the image family to which this image belongs. You
14569	// can create disks by specifying an image family instead of a specific
14570	// image name. The image family always returns its latest image that is
14571	// not deprecated. The name of the image family must comply with
14572	// RFC1035.
14573	Family string `json:"family,omitempty"`
14574
14575	// GuestOsFeatures: A list of features to enable on the guest operating
14576	// system. Applicable only for bootable images. Read  Enabling guest
14577	// operating system features to see a list of available options.
14578	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
14579
14580	// Id: [Output Only] The unique identifier for the resource. This
14581	// identifier is defined by the server.
14582	Id uint64 `json:"id,omitempty,string"`
14583
14584	// ImageEncryptionKey: Encrypts the image using a customer-supplied
14585	// encryption key.
14586	//
14587	// After you encrypt an image with a customer-supplied key, you must
14588	// provide the same key if you use the image later (e.g. to create a
14589	// disk from the image).
14590	//
14591	// Customer-supplied encryption keys do not protect access to metadata
14592	// of the disk.
14593	//
14594	// If you do not provide an encryption key when creating the image, then
14595	// the disk will be encrypted using an automatically generated key and
14596	// you do not need to provide a key to use the image later.
14597	ImageEncryptionKey *CustomerEncryptionKey `json:"imageEncryptionKey,omitempty"`
14598
14599	// Kind: [Output Only] Type of the resource. Always compute#image for
14600	// images.
14601	Kind string `json:"kind,omitempty"`
14602
14603	// LabelFingerprint: A fingerprint for the labels being applied to this
14604	// image, which is essentially a hash of the labels used for optimistic
14605	// locking. The fingerprint is initially generated by Compute Engine and
14606	// changes after every request to modify or update labels. You must
14607	// always provide an up-to-date fingerprint hash in order to update or
14608	// change labels, otherwise the request will fail with error 412
14609	// conditionNotMet.
14610	//
14611	// To see the latest fingerprint, make a get() request to retrieve an
14612	// image.
14613	LabelFingerprint string `json:"labelFingerprint,omitempty"`
14614
14615	// Labels: Labels to apply to this image. These can be later modified by
14616	// the setLabels method.
14617	Labels map[string]string `json:"labels,omitempty"`
14618
14619	// LicenseCodes: Integer license codes indicating which licenses are
14620	// attached to this image.
14621	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
14622
14623	// Licenses: Any applicable license URI.
14624	Licenses []string `json:"licenses,omitempty"`
14625
14626	// Name: Name of the resource; provided by the client when the resource
14627	// is created. The name must be 1-63 characters long, and comply with
14628	// RFC1035. Specifically, the name must be 1-63 characters long and
14629	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
14630	// the first character must be a lowercase letter, and all following
14631	// characters must be a dash, lowercase letter, or digit, except the
14632	// last character, which cannot be a dash.
14633	Name string `json:"name,omitempty"`
14634
14635	// RawDisk: The parameters of the raw disk image.
14636	RawDisk *ImageRawDisk `json:"rawDisk,omitempty"`
14637
14638	// SatisfiesPzs: [Output Only] Reserved for future use.
14639	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
14640
14641	// SelfLink: [Output Only] Server-defined URL for the resource.
14642	SelfLink string `json:"selfLink,omitempty"`
14643
14644	// ShieldedInstanceInitialState: Set the secure boot keys of shielded
14645	// instance.
14646	ShieldedInstanceInitialState *InitialStateConfig `json:"shieldedInstanceInitialState,omitempty"`
14647
14648	// SourceDisk: URL of the source disk used to create this image. For
14649	// example, the following are valid values:
14650	// -
14651	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
14652	//
14653	// - projects/project/zones/zone/disks/disk
14654	// - zones/zone/disks/disk
14655	//
14656	// In order to create an image, you must provide the full or partial URL
14657	// of one of the following:
14658	// - The rawDisk.source URL
14659	// - The sourceDisk URL
14660	// - The sourceImage URL
14661	// - The sourceSnapshot URL
14662	SourceDisk string `json:"sourceDisk,omitempty"`
14663
14664	// SourceDiskEncryptionKey: The customer-supplied encryption key of the
14665	// source disk. Required if the source disk is protected by a
14666	// customer-supplied encryption key.
14667	SourceDiskEncryptionKey *CustomerEncryptionKey `json:"sourceDiskEncryptionKey,omitempty"`
14668
14669	// SourceDiskId: [Output Only] The ID value of the disk used to create
14670	// this image. This value may be used to determine whether the image was
14671	// taken from the current or a previous instance of a given disk name.
14672	SourceDiskId string `json:"sourceDiskId,omitempty"`
14673
14674	// SourceImage: URL of the source image used to create this image.
14675	//
14676	// In order to create an image, you must provide the full or partial URL
14677	// of one of the following:
14678	// - The rawDisk.source URL
14679	// - The sourceDisk URL
14680	// - The sourceImage URL
14681	// - The sourceSnapshot URL
14682	SourceImage string `json:"sourceImage,omitempty"`
14683
14684	// SourceImageEncryptionKey: The customer-supplied encryption key of the
14685	// source image. Required if the source image is protected by a
14686	// customer-supplied encryption key.
14687	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
14688
14689	// SourceImageId: [Output Only] The ID value of the image used to create
14690	// this image. This value may be used to determine whether the image was
14691	// taken from the current or a previous instance of a given image name.
14692	SourceImageId string `json:"sourceImageId,omitempty"`
14693
14694	// SourceSnapshot: URL of the source snapshot used to create this
14695	// image.
14696	//
14697	// In order to create an image, you must provide the full or partial URL
14698	// of one of the following:
14699	// - The rawDisk.source URL
14700	// - The sourceDisk URL
14701	// - The sourceImage URL
14702	// - The sourceSnapshot URL
14703	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
14704
14705	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of
14706	// the source snapshot. Required if the source snapshot is protected by
14707	// a customer-supplied encryption key.
14708	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
14709
14710	// SourceSnapshotId: [Output Only] The ID value of the snapshot used to
14711	// create this image. This value may be used to determine whether the
14712	// snapshot was taken from the current or a previous instance of a given
14713	// snapshot name.
14714	SourceSnapshotId string `json:"sourceSnapshotId,omitempty"`
14715
14716	// SourceType: The type of the image used to create this disk. The
14717	// default and only value is RAW
14718	//
14719	// Possible values:
14720	//   "RAW" (default)
14721	SourceType string `json:"sourceType,omitempty"`
14722
14723	// Status: [Output Only] The status of the image. An image can be used
14724	// to create other resources, such as instances, only after the image
14725	// has been successfully created and the status is set to READY.
14726	// Possible values are FAILED, PENDING, or READY.
14727	//
14728	// Possible values:
14729	//   "DELETING"
14730	//   "FAILED"
14731	//   "PENDING"
14732	//   "READY"
14733	Status string `json:"status,omitempty"`
14734
14735	// StorageLocations: Cloud Storage bucket storage location of the image
14736	// (regional or multi-regional).
14737	StorageLocations []string `json:"storageLocations,omitempty"`
14738
14739	// ServerResponse contains the HTTP response code and headers from the
14740	// server.
14741	googleapi.ServerResponse `json:"-"`
14742
14743	// ForceSendFields is a list of field names (e.g. "ArchiveSizeBytes") to
14744	// unconditionally include in API requests. By default, fields with
14745	// empty values are omitted from API requests. However, any non-pointer,
14746	// non-interface field appearing in ForceSendFields will be sent to the
14747	// server regardless of whether the field is empty or not. This may be
14748	// used to include empty fields in Patch requests.
14749	ForceSendFields []string `json:"-"`
14750
14751	// NullFields is a list of field names (e.g. "ArchiveSizeBytes") to
14752	// include in API requests with the JSON null value. By default, fields
14753	// with empty values are omitted from API requests. However, any field
14754	// with an empty value appearing in NullFields will be sent to the
14755	// server as null. It is an error if a field in this list has a
14756	// non-empty value. This may be used to include null fields in Patch
14757	// requests.
14758	NullFields []string `json:"-"`
14759}
14760
14761func (s *Image) MarshalJSON() ([]byte, error) {
14762	type NoMethod Image
14763	raw := NoMethod(*s)
14764	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14765}
14766
14767// ImageRawDisk: The parameters of the raw disk image.
14768type ImageRawDisk struct {
14769	// ContainerType: The format used to encode and transmit the block
14770	// device, which should be TAR. This is just a container and
14771	// transmission format and not a runtime format. Provided by the client
14772	// when the disk image is created.
14773	//
14774	// Possible values:
14775	//   "TAR"
14776	ContainerType string `json:"containerType,omitempty"`
14777
14778	// Sha1Checksum: [Deprecated] This field is deprecated. An optional SHA1
14779	// checksum of the disk image before unpackaging provided by the client
14780	// when the disk image is created.
14781	Sha1Checksum string `json:"sha1Checksum,omitempty"`
14782
14783	// Source: The full Google Cloud Storage URL where the disk image is
14784	// stored.
14785	//
14786	// In order to create an image, you must provide the full or partial URL
14787	// of one of the following:
14788	// - The rawDisk.source URL
14789	// - The sourceDisk URL
14790	// - The sourceImage URL
14791	// - The sourceSnapshot URL
14792	Source string `json:"source,omitempty"`
14793
14794	// ForceSendFields is a list of field names (e.g. "ContainerType") to
14795	// unconditionally include in API requests. By default, fields with
14796	// empty values are omitted from API requests. However, any non-pointer,
14797	// non-interface field appearing in ForceSendFields will be sent to the
14798	// server regardless of whether the field is empty or not. This may be
14799	// used to include empty fields in Patch requests.
14800	ForceSendFields []string `json:"-"`
14801
14802	// NullFields is a list of field names (e.g. "ContainerType") to include
14803	// in API requests with the JSON null value. By default, fields with
14804	// empty values are omitted from API requests. However, any field with
14805	// an empty value appearing in NullFields will be sent to the server as
14806	// null. It is an error if a field in this list has a non-empty value.
14807	// This may be used to include null fields in Patch requests.
14808	NullFields []string `json:"-"`
14809}
14810
14811func (s *ImageRawDisk) MarshalJSON() ([]byte, error) {
14812	type NoMethod ImageRawDisk
14813	raw := NoMethod(*s)
14814	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14815}
14816
14817// ImageList: Contains a list of images.
14818type ImageList struct {
14819	// Id: [Output Only] Unique identifier for the resource; defined by the
14820	// server.
14821	Id string `json:"id,omitempty"`
14822
14823	// Items: A list of Image resources.
14824	Items []*Image `json:"items,omitempty"`
14825
14826	// Kind: Type of resource.
14827	Kind string `json:"kind,omitempty"`
14828
14829	// NextPageToken: [Output Only] This token allows you to get the next
14830	// page of results for list requests. If the number of results is larger
14831	// than maxResults, use the nextPageToken as a value for the query
14832	// parameter pageToken in the next list request. Subsequent list
14833	// requests will have their own nextPageToken to continue paging through
14834	// the results.
14835	NextPageToken string `json:"nextPageToken,omitempty"`
14836
14837	// SelfLink: [Output Only] Server-defined URL for this resource.
14838	SelfLink string `json:"selfLink,omitempty"`
14839
14840	// Warning: [Output Only] Informational warning message.
14841	Warning *ImageListWarning `json:"warning,omitempty"`
14842
14843	// ServerResponse contains the HTTP response code and headers from the
14844	// server.
14845	googleapi.ServerResponse `json:"-"`
14846
14847	// ForceSendFields is a list of field names (e.g. "Id") to
14848	// unconditionally include in API requests. By default, fields with
14849	// empty values are omitted from API requests. However, any non-pointer,
14850	// non-interface field appearing in ForceSendFields will be sent to the
14851	// server regardless of whether the field is empty or not. This may be
14852	// used to include empty fields in Patch requests.
14853	ForceSendFields []string `json:"-"`
14854
14855	// NullFields is a list of field names (e.g. "Id") to include in API
14856	// requests with the JSON null value. By default, fields with empty
14857	// values are omitted from API requests. However, any field with an
14858	// empty value appearing in NullFields will be sent to the server as
14859	// null. It is an error if a field in this list has a non-empty value.
14860	// This may be used to include null fields in Patch requests.
14861	NullFields []string `json:"-"`
14862}
14863
14864func (s *ImageList) MarshalJSON() ([]byte, error) {
14865	type NoMethod ImageList
14866	raw := NoMethod(*s)
14867	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14868}
14869
14870// ImageListWarning: [Output Only] Informational warning message.
14871type ImageListWarning struct {
14872	// Code: [Output Only] A warning code, if applicable. For example,
14873	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
14874	// the response.
14875	//
14876	// Possible values:
14877	//   "CLEANUP_FAILED"
14878	//   "DEPRECATED_RESOURCE_USED"
14879	//   "DEPRECATED_TYPE_USED"
14880	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
14881	//   "EXPERIMENTAL_TYPE_USED"
14882	//   "EXTERNAL_API_WARNING"
14883	//   "FIELD_VALUE_OVERRIDEN"
14884	//   "INJECTED_KERNELS_DEPRECATED"
14885	//   "LARGE_DEPLOYMENT_WARNING"
14886	//   "MISSING_TYPE_DEPENDENCY"
14887	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
14888	//   "NEXT_HOP_CANNOT_IP_FORWARD"
14889	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
14890	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
14891	//   "NEXT_HOP_NOT_RUNNING"
14892	//   "NOT_CRITICAL_ERROR"
14893	//   "NO_RESULTS_ON_PAGE"
14894	//   "PARTIAL_SUCCESS"
14895	//   "REQUIRED_TOS_AGREEMENT"
14896	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
14897	//   "RESOURCE_NOT_DELETED"
14898	//   "SCHEMA_VALIDATION_IGNORED"
14899	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
14900	//   "UNDECLARED_PROPERTIES"
14901	//   "UNREACHABLE"
14902	Code string `json:"code,omitempty"`
14903
14904	// Data: [Output Only] Metadata about this warning in key: value format.
14905	// For example:
14906	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
14907	Data []*ImageListWarningData `json:"data,omitempty"`
14908
14909	// Message: [Output Only] A human-readable description of the warning
14910	// code.
14911	Message string `json:"message,omitempty"`
14912
14913	// ForceSendFields is a list of field names (e.g. "Code") to
14914	// unconditionally include in API requests. By default, fields with
14915	// empty values are omitted from API requests. However, any non-pointer,
14916	// non-interface field appearing in ForceSendFields will be sent to the
14917	// server regardless of whether the field is empty or not. This may be
14918	// used to include empty fields in Patch requests.
14919	ForceSendFields []string `json:"-"`
14920
14921	// NullFields is a list of field names (e.g. "Code") to include in API
14922	// requests with the JSON null value. By default, fields with empty
14923	// values are omitted from API requests. However, any field with an
14924	// empty value appearing in NullFields will be sent to the server as
14925	// null. It is an error if a field in this list has a non-empty value.
14926	// This may be used to include null fields in Patch requests.
14927	NullFields []string `json:"-"`
14928}
14929
14930func (s *ImageListWarning) MarshalJSON() ([]byte, error) {
14931	type NoMethod ImageListWarning
14932	raw := NoMethod(*s)
14933	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14934}
14935
14936type ImageListWarningData struct {
14937	// Key: [Output Only] A key that provides more detail on the warning
14938	// being returned. For example, for warnings where there are no results
14939	// in a list request for a particular zone, this key might be scope and
14940	// the key value might be the zone name. Other examples might be a key
14941	// indicating a deprecated resource and a suggested replacement, or a
14942	// warning about invalid network settings (for example, if an instance
14943	// attempts to perform IP forwarding but is not enabled for IP
14944	// forwarding).
14945	Key string `json:"key,omitempty"`
14946
14947	// Value: [Output Only] A warning data value corresponding to the key.
14948	Value string `json:"value,omitempty"`
14949
14950	// ForceSendFields is a list of field names (e.g. "Key") to
14951	// unconditionally include in API requests. By default, fields with
14952	// empty values are omitted from API requests. However, any non-pointer,
14953	// non-interface field appearing in ForceSendFields will be sent to the
14954	// server regardless of whether the field is empty or not. This may be
14955	// used to include empty fields in Patch requests.
14956	ForceSendFields []string `json:"-"`
14957
14958	// NullFields is a list of field names (e.g. "Key") to include in API
14959	// requests with the JSON null value. By default, fields with empty
14960	// values are omitted from API requests. However, any field with an
14961	// empty value appearing in NullFields will be sent to the server as
14962	// null. It is an error if a field in this list has a non-empty value.
14963	// This may be used to include null fields in Patch requests.
14964	NullFields []string `json:"-"`
14965}
14966
14967func (s *ImageListWarningData) MarshalJSON() ([]byte, error) {
14968	type NoMethod ImageListWarningData
14969	raw := NoMethod(*s)
14970	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14971}
14972
14973// InitialStateConfig: Initial State for shielded instance, these are
14974// public keys which are safe to store in public
14975type InitialStateConfig struct {
14976	// Dbs: The Key Database (db).
14977	Dbs []*FileContentBuffer `json:"dbs,omitempty"`
14978
14979	// Dbxs: The forbidden key database (dbx).
14980	Dbxs []*FileContentBuffer `json:"dbxs,omitempty"`
14981
14982	// Keks: The Key Exchange Key (KEK).
14983	Keks []*FileContentBuffer `json:"keks,omitempty"`
14984
14985	// Pk: The Platform Key (PK).
14986	Pk *FileContentBuffer `json:"pk,omitempty"`
14987
14988	// ForceSendFields is a list of field names (e.g. "Dbs") to
14989	// unconditionally include in API requests. By default, fields with
14990	// empty values are omitted from API requests. However, any non-pointer,
14991	// non-interface field appearing in ForceSendFields will be sent to the
14992	// server regardless of whether the field is empty or not. This may be
14993	// used to include empty fields in Patch requests.
14994	ForceSendFields []string `json:"-"`
14995
14996	// NullFields is a list of field names (e.g. "Dbs") to include in API
14997	// requests with the JSON null value. By default, fields with empty
14998	// values are omitted from API requests. However, any field with an
14999	// empty value appearing in NullFields will be sent to the server as
15000	// null. It is an error if a field in this list has a non-empty value.
15001	// This may be used to include null fields in Patch requests.
15002	NullFields []string `json:"-"`
15003}
15004
15005func (s *InitialStateConfig) MarshalJSON() ([]byte, error) {
15006	type NoMethod InitialStateConfig
15007	raw := NoMethod(*s)
15008	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15009}
15010
15011// Instance: Represents an Instance resource.
15012//
15013// An instance is a virtual machine that is hosted on Google Cloud
15014// Platform. For more information, read Virtual Machine Instances. (==
15015// resource_for {$api_version}.instances ==)
15016type Instance struct {
15017	// AdvancedMachineFeatures: Controls for advanced machine-related
15018	// behavior features.
15019	AdvancedMachineFeatures *AdvancedMachineFeatures `json:"advancedMachineFeatures,omitempty"`
15020
15021	// CanIpForward: Allows this instance to send and receive packets with
15022	// non-matching destination or source IPs. This is required if you plan
15023	// to use this instance to forward routes. For more information, see
15024	// Enabling IP Forwarding.
15025	CanIpForward bool `json:"canIpForward,omitempty"`
15026
15027	ConfidentialInstanceConfig *ConfidentialInstanceConfig `json:"confidentialInstanceConfig,omitempty"`
15028
15029	// CpuPlatform: [Output Only] The CPU platform used by this instance.
15030	CpuPlatform string `json:"cpuPlatform,omitempty"`
15031
15032	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
15033	// format.
15034	CreationTimestamp string `json:"creationTimestamp,omitempty"`
15035
15036	// DeletionProtection: Whether the resource should be protected against
15037	// deletion.
15038	DeletionProtection bool `json:"deletionProtection,omitempty"`
15039
15040	// Description: An optional description of this resource. Provide this
15041	// property when you create the resource.
15042	Description string `json:"description,omitempty"`
15043
15044	// Disks: Array of disks associated with this instance. Persistent disks
15045	// must be created before you can assign them.
15046	Disks []*AttachedDisk `json:"disks,omitempty"`
15047
15048	// DisplayDevice: Enables display device for the instance.
15049	DisplayDevice *DisplayDevice `json:"displayDevice,omitempty"`
15050
15051	// Fingerprint: Specifies a fingerprint for this resource, which is
15052	// essentially a hash of the instance's contents and used for optimistic
15053	// locking. The fingerprint is initially generated by Compute Engine and
15054	// changes after every request to modify or update the instance. You
15055	// must always provide an up-to-date fingerprint hash in order to update
15056	// the instance.
15057	//
15058	// To see the latest fingerprint, make get() request to the instance.
15059	Fingerprint string `json:"fingerprint,omitempty"`
15060
15061	// GuestAccelerators: A list of the type and count of accelerator cards
15062	// attached to the instance.
15063	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
15064
15065	// Hostname: Specifies the hostname of the instance. The specified
15066	// hostname must be RFC1035 compliant. If hostname is not specified, the
15067	// default hostname is [INSTANCE_NAME].c.[PROJECT_ID].internal when
15068	// using the global DNS, and
15069	// [INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal when using zonal DNS.
15070	Hostname string `json:"hostname,omitempty"`
15071
15072	// Id: [Output Only] The unique identifier for the resource. This
15073	// identifier is defined by the server.
15074	Id uint64 `json:"id,omitempty,string"`
15075
15076	// Kind: [Output Only] Type of the resource. Always compute#instance for
15077	// instances.
15078	Kind string `json:"kind,omitempty"`
15079
15080	// LabelFingerprint: A fingerprint for this request, which is
15081	// essentially a hash of the label's contents and used for optimistic
15082	// locking. The fingerprint is initially generated by Compute Engine and
15083	// changes after every request to modify or update labels. You must
15084	// always provide an up-to-date fingerprint hash in order to update or
15085	// change labels.
15086	//
15087	// To see the latest fingerprint, make get() request to the instance.
15088	LabelFingerprint string `json:"labelFingerprint,omitempty"`
15089
15090	// Labels: Labels to apply to this instance. These can be later modified
15091	// by the setLabels method.
15092	Labels map[string]string `json:"labels,omitempty"`
15093
15094	// LastStartTimestamp: [Output Only] Last start timestamp in RFC3339
15095	// text format.
15096	LastStartTimestamp string `json:"lastStartTimestamp,omitempty"`
15097
15098	// LastStopTimestamp: [Output Only] Last stop timestamp in RFC3339 text
15099	// format.
15100	LastStopTimestamp string `json:"lastStopTimestamp,omitempty"`
15101
15102	// LastSuspendedTimestamp: [Output Only] Last suspended timestamp in
15103	// RFC3339 text format.
15104	LastSuspendedTimestamp string `json:"lastSuspendedTimestamp,omitempty"`
15105
15106	// MachineType: Full or partial URL of the machine type resource to use
15107	// for this instance, in the format:
15108	// zones/zone/machineTypes/machine-type. This is provided by the client
15109	// when the instance is created. For example, the following is a valid
15110	// partial url to a predefined machine
15111	// type:
15112	// zones/us-central1-f/machineTypes/n1-standard-1
15113	//
15114	//
15115	// To create a custom machine type, provide a URL to a machine type in
15116	// the following format, where CPUS is 1 or an even number up to 32 (2,
15117	// 4, 6, ... 24, etc), and MEMORY is the total memory for this instance.
15118	// Memory must be a multiple of 256 MB and must be supplied in MB (e.g.
15119	// 5 GB of memory is 5120
15120	// MB):
15121	// zones/zone/machineTypes/custom-CPUS-MEMORY
15122	//
15123	//
15124	// For example: zones/us-central1-f/machineTypes/custom-4-5120
15125	//
15126	// For a full list of restrictions, read the Specifications for custom
15127	// machine types.
15128	MachineType string `json:"machineType,omitempty"`
15129
15130	// Metadata: The metadata key/value pairs assigned to this instance.
15131	// This includes custom metadata and predefined keys.
15132	Metadata *Metadata `json:"metadata,omitempty"`
15133
15134	// MinCpuPlatform: Specifies a minimum CPU platform for the VM instance.
15135	// Applicable values are the friendly names of CPU platforms, such as
15136	// minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy
15137	// Bridge".
15138	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
15139
15140	// Name: The name of the resource, provided by the client when initially
15141	// creating the resource. The resource name must be 1-63 characters
15142	// long, and comply with RFC1035. Specifically, the name must be 1-63
15143	// characters long and match the regular expression
15144	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
15145	// a lowercase letter, and all following characters must be a dash,
15146	// lowercase letter, or digit, except the last character, which cannot
15147	// be a dash.
15148	Name string `json:"name,omitempty"`
15149
15150	// NetworkInterfaces: An array of network configurations for this
15151	// instance. These specify how interfaces are configured to interact
15152	// with other network services, such as connecting to the internet.
15153	// Multiple interfaces are supported per instance.
15154	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
15155
15156	// PrivateIpv6GoogleAccess: The private IPv6 google access type for the
15157	// VM. If not specified, use  INHERIT_FROM_SUBNETWORK as default.
15158	//
15159	// Possible values:
15160	//   "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE"
15161	//   "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE"
15162	//   "INHERIT_FROM_SUBNETWORK"
15163	PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"`
15164
15165	// ReservationAffinity: Specifies the reservations that this instance
15166	// can consume from.
15167	ReservationAffinity *ReservationAffinity `json:"reservationAffinity,omitempty"`
15168
15169	// ResourcePolicies: Resource policies applied to this instance.
15170	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
15171
15172	// SatisfiesPzs: [Output Only] Reserved for future use.
15173	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
15174
15175	// Scheduling: Sets the scheduling options for this instance.
15176	Scheduling *Scheduling `json:"scheduling,omitempty"`
15177
15178	// SelfLink: [Output Only] Server-defined URL for this resource.
15179	SelfLink string `json:"selfLink,omitempty"`
15180
15181	// ServiceAccounts: A list of service accounts, with their specified
15182	// scopes, authorized for this instance. Only one service account per VM
15183	// instance is supported.
15184	//
15185	// Service accounts generate access tokens that can be accessed through
15186	// the metadata server and used to authenticate applications on the
15187	// instance. See Service Accounts for more information.
15188	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
15189
15190	ShieldedInstanceConfig *ShieldedInstanceConfig `json:"shieldedInstanceConfig,omitempty"`
15191
15192	ShieldedInstanceIntegrityPolicy *ShieldedInstanceIntegrityPolicy `json:"shieldedInstanceIntegrityPolicy,omitempty"`
15193
15194	// StartRestricted: [Output Only] Whether a VM has been restricted for
15195	// start because Compute Engine has detected suspicious activity.
15196	StartRestricted bool `json:"startRestricted,omitempty"`
15197
15198	// Status: [Output Only] The status of the instance. One of the
15199	// following values: PROVISIONING, STAGING, RUNNING, STOPPING,
15200	// SUSPENDING, SUSPENDED, REPAIRING, and TERMINATED. For more
15201	// information about the status of the instance, see  Instance life
15202	// cycle.
15203	//
15204	// Possible values:
15205	//   "DEPROVISIONING"
15206	//   "PROVISIONING"
15207	//   "REPAIRING"
15208	//   "RUNNING"
15209	//   "STAGING"
15210	//   "STOPPED"
15211	//   "STOPPING"
15212	//   "SUSPENDED"
15213	//   "SUSPENDING"
15214	//   "TERMINATED"
15215	Status string `json:"status,omitempty"`
15216
15217	// StatusMessage: [Output Only] An optional, human-readable explanation
15218	// of the status.
15219	StatusMessage string `json:"statusMessage,omitempty"`
15220
15221	// Tags: Tags to apply to this instance. Tags are used to identify valid
15222	// sources or targets for network firewalls and are specified by the
15223	// client during instance creation. The tags can be later modified by
15224	// the setTags method. Each tag within the list must comply with
15225	// RFC1035. Multiple tags can be specified via the 'tags.items' field.
15226	Tags *Tags `json:"tags,omitempty"`
15227
15228	// Zone: [Output Only] URL of the zone where the instance resides. You
15229	// must specify this field as part of the HTTP request URL. It is not
15230	// settable as a field in the request body.
15231	Zone string `json:"zone,omitempty"`
15232
15233	// ServerResponse contains the HTTP response code and headers from the
15234	// server.
15235	googleapi.ServerResponse `json:"-"`
15236
15237	// ForceSendFields is a list of field names (e.g.
15238	// "AdvancedMachineFeatures") to unconditionally include in API
15239	// requests. By default, fields with empty values are omitted from API
15240	// requests. However, any non-pointer, non-interface field appearing in
15241	// ForceSendFields will be sent to the server regardless of whether the
15242	// field is empty or not. This may be used to include empty fields in
15243	// Patch requests.
15244	ForceSendFields []string `json:"-"`
15245
15246	// NullFields is a list of field names (e.g. "AdvancedMachineFeatures")
15247	// to include in API requests with the JSON null value. By default,
15248	// fields with empty values are omitted from API requests. However, any
15249	// field with an empty value appearing in NullFields will be sent to the
15250	// server as null. It is an error if a field in this list has a
15251	// non-empty value. This may be used to include null fields in Patch
15252	// requests.
15253	NullFields []string `json:"-"`
15254}
15255
15256func (s *Instance) MarshalJSON() ([]byte, error) {
15257	type NoMethod Instance
15258	raw := NoMethod(*s)
15259	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15260}
15261
15262type InstanceAggregatedList struct {
15263	// Id: [Output Only] Unique identifier for the resource; defined by the
15264	// server.
15265	Id string `json:"id,omitempty"`
15266
15267	// Items: An object that contains a list of instances scoped by zone.
15268	Items map[string]InstancesScopedList `json:"items,omitempty"`
15269
15270	// Kind: [Output Only] Type of resource. Always
15271	// compute#instanceAggregatedList for aggregated lists of Instance
15272	// resources.
15273	Kind string `json:"kind,omitempty"`
15274
15275	// NextPageToken: [Output Only] This token allows you to get the next
15276	// page of results for list requests. If the number of results is larger
15277	// than maxResults, use the nextPageToken as a value for the query
15278	// parameter pageToken in the next list request. Subsequent list
15279	// requests will have their own nextPageToken to continue paging through
15280	// the results.
15281	NextPageToken string `json:"nextPageToken,omitempty"`
15282
15283	// SelfLink: [Output Only] Server-defined URL for this resource.
15284	SelfLink string `json:"selfLink,omitempty"`
15285
15286	// Unreachables: [Output Only] Unreachable resources.
15287	Unreachables []string `json:"unreachables,omitempty"`
15288
15289	// Warning: [Output Only] Informational warning message.
15290	Warning *InstanceAggregatedListWarning `json:"warning,omitempty"`
15291
15292	// ServerResponse contains the HTTP response code and headers from the
15293	// server.
15294	googleapi.ServerResponse `json:"-"`
15295
15296	// ForceSendFields is a list of field names (e.g. "Id") to
15297	// unconditionally include in API requests. By default, fields with
15298	// empty values are omitted from API requests. However, any non-pointer,
15299	// non-interface field appearing in ForceSendFields will be sent to the
15300	// server regardless of whether the field is empty or not. This may be
15301	// used to include empty fields in Patch requests.
15302	ForceSendFields []string `json:"-"`
15303
15304	// NullFields is a list of field names (e.g. "Id") to include in API
15305	// requests with the JSON null value. By default, fields with empty
15306	// values are omitted from API requests. However, any field with an
15307	// empty value appearing in NullFields will be sent to the server as
15308	// null. It is an error if a field in this list has a non-empty value.
15309	// This may be used to include null fields in Patch requests.
15310	NullFields []string `json:"-"`
15311}
15312
15313func (s *InstanceAggregatedList) MarshalJSON() ([]byte, error) {
15314	type NoMethod InstanceAggregatedList
15315	raw := NoMethod(*s)
15316	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15317}
15318
15319// InstanceAggregatedListWarning: [Output Only] Informational warning
15320// message.
15321type InstanceAggregatedListWarning struct {
15322	// Code: [Output Only] A warning code, if applicable. For example,
15323	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15324	// the response.
15325	//
15326	// Possible values:
15327	//   "CLEANUP_FAILED"
15328	//   "DEPRECATED_RESOURCE_USED"
15329	//   "DEPRECATED_TYPE_USED"
15330	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
15331	//   "EXPERIMENTAL_TYPE_USED"
15332	//   "EXTERNAL_API_WARNING"
15333	//   "FIELD_VALUE_OVERRIDEN"
15334	//   "INJECTED_KERNELS_DEPRECATED"
15335	//   "LARGE_DEPLOYMENT_WARNING"
15336	//   "MISSING_TYPE_DEPENDENCY"
15337	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
15338	//   "NEXT_HOP_CANNOT_IP_FORWARD"
15339	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
15340	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
15341	//   "NEXT_HOP_NOT_RUNNING"
15342	//   "NOT_CRITICAL_ERROR"
15343	//   "NO_RESULTS_ON_PAGE"
15344	//   "PARTIAL_SUCCESS"
15345	//   "REQUIRED_TOS_AGREEMENT"
15346	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
15347	//   "RESOURCE_NOT_DELETED"
15348	//   "SCHEMA_VALIDATION_IGNORED"
15349	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
15350	//   "UNDECLARED_PROPERTIES"
15351	//   "UNREACHABLE"
15352	Code string `json:"code,omitempty"`
15353
15354	// Data: [Output Only] Metadata about this warning in key: value format.
15355	// For example:
15356	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
15357	Data []*InstanceAggregatedListWarningData `json:"data,omitempty"`
15358
15359	// Message: [Output Only] A human-readable description of the warning
15360	// code.
15361	Message string `json:"message,omitempty"`
15362
15363	// ForceSendFields is a list of field names (e.g. "Code") to
15364	// unconditionally include in API requests. By default, fields with
15365	// empty values are omitted from API requests. However, any non-pointer,
15366	// non-interface field appearing in ForceSendFields will be sent to the
15367	// server regardless of whether the field is empty or not. This may be
15368	// used to include empty fields in Patch requests.
15369	ForceSendFields []string `json:"-"`
15370
15371	// NullFields is a list of field names (e.g. "Code") to include in API
15372	// requests with the JSON null value. By default, fields with empty
15373	// values are omitted from API requests. However, any field with an
15374	// empty value appearing in NullFields will be sent to the server as
15375	// null. It is an error if a field in this list has a non-empty value.
15376	// This may be used to include null fields in Patch requests.
15377	NullFields []string `json:"-"`
15378}
15379
15380func (s *InstanceAggregatedListWarning) MarshalJSON() ([]byte, error) {
15381	type NoMethod InstanceAggregatedListWarning
15382	raw := NoMethod(*s)
15383	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15384}
15385
15386type InstanceAggregatedListWarningData struct {
15387	// Key: [Output Only] A key that provides more detail on the warning
15388	// being returned. For example, for warnings where there are no results
15389	// in a list request for a particular zone, this key might be scope and
15390	// the key value might be the zone name. Other examples might be a key
15391	// indicating a deprecated resource and a suggested replacement, or a
15392	// warning about invalid network settings (for example, if an instance
15393	// attempts to perform IP forwarding but is not enabled for IP
15394	// forwarding).
15395	Key string `json:"key,omitempty"`
15396
15397	// Value: [Output Only] A warning data value corresponding to the key.
15398	Value string `json:"value,omitempty"`
15399
15400	// ForceSendFields is a list of field names (e.g. "Key") to
15401	// unconditionally include in API requests. By default, fields with
15402	// empty values are omitted from API requests. However, any non-pointer,
15403	// non-interface field appearing in ForceSendFields will be sent to the
15404	// server regardless of whether the field is empty or not. This may be
15405	// used to include empty fields in Patch requests.
15406	ForceSendFields []string `json:"-"`
15407
15408	// NullFields is a list of field names (e.g. "Key") to include in API
15409	// requests with the JSON null value. By default, fields with empty
15410	// values are omitted from API requests. However, any field with an
15411	// empty value appearing in NullFields will be sent to the server as
15412	// null. It is an error if a field in this list has a non-empty value.
15413	// This may be used to include null fields in Patch requests.
15414	NullFields []string `json:"-"`
15415}
15416
15417func (s *InstanceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
15418	type NoMethod InstanceAggregatedListWarningData
15419	raw := NoMethod(*s)
15420	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15421}
15422
15423// InstanceGroup: Represents an Instance Group resource.
15424//
15425// Instance Groups can be used to configure a target for load
15426// balancing.
15427//
15428// Instance groups can either be managed or unmanaged.
15429//
15430// To create  managed instance groups, use the instanceGroupManager or
15431// regionInstanceGroupManager resource instead.
15432//
15433// Use zonal unmanaged instance groups if you need to apply load
15434// balancing to groups of heterogeneous instances or if you need to
15435// manage the instances yourself. You cannot create regional unmanaged
15436// instance groups.
15437//
15438// For more information, read Instance groups.
15439//
15440// (== resource_for {$api_version}.instanceGroups ==) (== resource_for
15441// {$api_version}.regionInstanceGroups ==)
15442type InstanceGroup struct {
15443	// CreationTimestamp: [Output Only] The creation timestamp for this
15444	// instance group in RFC3339 text format.
15445	CreationTimestamp string `json:"creationTimestamp,omitempty"`
15446
15447	// Description: An optional description of this resource. Provide this
15448	// property when you create the resource.
15449	Description string `json:"description,omitempty"`
15450
15451	// Fingerprint: [Output Only] The fingerprint of the named ports. The
15452	// system uses this fingerprint to detect conflicts when multiple users
15453	// change the named ports concurrently.
15454	Fingerprint string `json:"fingerprint,omitempty"`
15455
15456	// Id: [Output Only] A unique identifier for this instance group,
15457	// generated by the server.
15458	Id uint64 `json:"id,omitempty,string"`
15459
15460	// Kind: [Output Only] The resource type, which is always
15461	// compute#instanceGroup for instance groups.
15462	Kind string `json:"kind,omitempty"`
15463
15464	// Name: The name of the instance group. The name must be 1-63
15465	// characters long, and comply with RFC1035.
15466	Name string `json:"name,omitempty"`
15467
15468	// NamedPorts: Assigns a name to a port number. For example: {name:
15469	// "http", port: 80}
15470	//
15471	// This allows the system to reference ports by the assigned name
15472	// instead of a port number. Named ports can also contain multiple
15473	// ports. For example: [{name: "http", port: 80},{name: "http", port:
15474	// 8080}]
15475	//
15476	// Named ports apply to all instances in this instance group.
15477	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
15478
15479	// Network: [Output Only] The URL of the network to which all instances
15480	// in the instance group belong. If your instance has multiple network
15481	// interfaces, then the network and subnetwork fields only refer to the
15482	// network and subnet used by your primary interface (nic0).
15483	Network string `json:"network,omitempty"`
15484
15485	// Region: [Output Only] The URL of the region where the instance group
15486	// is located (for regional resources).
15487	Region string `json:"region,omitempty"`
15488
15489	// SelfLink: [Output Only] The URL for this instance group. The server
15490	// generates this URL.
15491	SelfLink string `json:"selfLink,omitempty"`
15492
15493	// Size: [Output Only] The total number of instances in the instance
15494	// group.
15495	Size int64 `json:"size,omitempty"`
15496
15497	// Subnetwork: [Output Only] The URL of the subnetwork to which all
15498	// instances in the instance group belong. If your instance has multiple
15499	// network interfaces, then the network and subnetwork fields only refer
15500	// to the network and subnet used by your primary interface (nic0).
15501	Subnetwork string `json:"subnetwork,omitempty"`
15502
15503	// Zone: [Output Only] The URL of the zone where the instance group is
15504	// located (for zonal resources).
15505	Zone string `json:"zone,omitempty"`
15506
15507	// ServerResponse contains the HTTP response code and headers from the
15508	// server.
15509	googleapi.ServerResponse `json:"-"`
15510
15511	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
15512	// to unconditionally include in API requests. By default, fields with
15513	// empty values are omitted from API requests. However, any non-pointer,
15514	// non-interface field appearing in ForceSendFields will be sent to the
15515	// server regardless of whether the field is empty or not. This may be
15516	// used to include empty fields in Patch requests.
15517	ForceSendFields []string `json:"-"`
15518
15519	// NullFields is a list of field names (e.g. "CreationTimestamp") to
15520	// include in API requests with the JSON null value. By default, fields
15521	// with empty values are omitted from API requests. However, any field
15522	// with an empty value appearing in NullFields will be sent to the
15523	// server as null. It is an error if a field in this list has a
15524	// non-empty value. This may be used to include null fields in Patch
15525	// requests.
15526	NullFields []string `json:"-"`
15527}
15528
15529func (s *InstanceGroup) MarshalJSON() ([]byte, error) {
15530	type NoMethod InstanceGroup
15531	raw := NoMethod(*s)
15532	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15533}
15534
15535type InstanceGroupAggregatedList struct {
15536	// Id: [Output Only] Unique identifier for the resource; defined by the
15537	// server.
15538	Id string `json:"id,omitempty"`
15539
15540	// Items: A list of InstanceGroupsScopedList resources.
15541	Items map[string]InstanceGroupsScopedList `json:"items,omitempty"`
15542
15543	// Kind: [Output Only] The resource type, which is always
15544	// compute#instanceGroupAggregatedList for aggregated lists of instance
15545	// groups.
15546	Kind string `json:"kind,omitempty"`
15547
15548	// NextPageToken: [Output Only] This token allows you to get the next
15549	// page of results for list requests. If the number of results is larger
15550	// than maxResults, use the nextPageToken as a value for the query
15551	// parameter pageToken in the next list request. Subsequent list
15552	// requests will have their own nextPageToken to continue paging through
15553	// the results.
15554	NextPageToken string `json:"nextPageToken,omitempty"`
15555
15556	// SelfLink: [Output Only] Server-defined URL for this resource.
15557	SelfLink string `json:"selfLink,omitempty"`
15558
15559	// Unreachables: [Output Only] Unreachable resources.
15560	Unreachables []string `json:"unreachables,omitempty"`
15561
15562	// Warning: [Output Only] Informational warning message.
15563	Warning *InstanceGroupAggregatedListWarning `json:"warning,omitempty"`
15564
15565	// ServerResponse contains the HTTP response code and headers from the
15566	// server.
15567	googleapi.ServerResponse `json:"-"`
15568
15569	// ForceSendFields is a list of field names (e.g. "Id") to
15570	// unconditionally include in API requests. By default, fields with
15571	// empty values are omitted from API requests. However, any non-pointer,
15572	// non-interface field appearing in ForceSendFields will be sent to the
15573	// server regardless of whether the field is empty or not. This may be
15574	// used to include empty fields in Patch requests.
15575	ForceSendFields []string `json:"-"`
15576
15577	// NullFields is a list of field names (e.g. "Id") to include in API
15578	// requests with the JSON null value. By default, fields with empty
15579	// values are omitted from API requests. However, any field with an
15580	// empty value appearing in NullFields will be sent to the server as
15581	// null. It is an error if a field in this list has a non-empty value.
15582	// This may be used to include null fields in Patch requests.
15583	NullFields []string `json:"-"`
15584}
15585
15586func (s *InstanceGroupAggregatedList) MarshalJSON() ([]byte, error) {
15587	type NoMethod InstanceGroupAggregatedList
15588	raw := NoMethod(*s)
15589	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15590}
15591
15592// InstanceGroupAggregatedListWarning: [Output Only] Informational
15593// warning message.
15594type InstanceGroupAggregatedListWarning struct {
15595	// Code: [Output Only] A warning code, if applicable. For example,
15596	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15597	// the response.
15598	//
15599	// Possible values:
15600	//   "CLEANUP_FAILED"
15601	//   "DEPRECATED_RESOURCE_USED"
15602	//   "DEPRECATED_TYPE_USED"
15603	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
15604	//   "EXPERIMENTAL_TYPE_USED"
15605	//   "EXTERNAL_API_WARNING"
15606	//   "FIELD_VALUE_OVERRIDEN"
15607	//   "INJECTED_KERNELS_DEPRECATED"
15608	//   "LARGE_DEPLOYMENT_WARNING"
15609	//   "MISSING_TYPE_DEPENDENCY"
15610	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
15611	//   "NEXT_HOP_CANNOT_IP_FORWARD"
15612	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
15613	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
15614	//   "NEXT_HOP_NOT_RUNNING"
15615	//   "NOT_CRITICAL_ERROR"
15616	//   "NO_RESULTS_ON_PAGE"
15617	//   "PARTIAL_SUCCESS"
15618	//   "REQUIRED_TOS_AGREEMENT"
15619	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
15620	//   "RESOURCE_NOT_DELETED"
15621	//   "SCHEMA_VALIDATION_IGNORED"
15622	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
15623	//   "UNDECLARED_PROPERTIES"
15624	//   "UNREACHABLE"
15625	Code string `json:"code,omitempty"`
15626
15627	// Data: [Output Only] Metadata about this warning in key: value format.
15628	// For example:
15629	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
15630	Data []*InstanceGroupAggregatedListWarningData `json:"data,omitempty"`
15631
15632	// Message: [Output Only] A human-readable description of the warning
15633	// code.
15634	Message string `json:"message,omitempty"`
15635
15636	// ForceSendFields is a list of field names (e.g. "Code") to
15637	// unconditionally include in API requests. By default, fields with
15638	// empty values are omitted from API requests. However, any non-pointer,
15639	// non-interface field appearing in ForceSendFields will be sent to the
15640	// server regardless of whether the field is empty or not. This may be
15641	// used to include empty fields in Patch requests.
15642	ForceSendFields []string `json:"-"`
15643
15644	// NullFields is a list of field names (e.g. "Code") to include in API
15645	// requests with the JSON null value. By default, fields with empty
15646	// values are omitted from API requests. However, any field with an
15647	// empty value appearing in NullFields will be sent to the server as
15648	// null. It is an error if a field in this list has a non-empty value.
15649	// This may be used to include null fields in Patch requests.
15650	NullFields []string `json:"-"`
15651}
15652
15653func (s *InstanceGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
15654	type NoMethod InstanceGroupAggregatedListWarning
15655	raw := NoMethod(*s)
15656	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15657}
15658
15659type InstanceGroupAggregatedListWarningData struct {
15660	// Key: [Output Only] A key that provides more detail on the warning
15661	// being returned. For example, for warnings where there are no results
15662	// in a list request for a particular zone, this key might be scope and
15663	// the key value might be the zone name. Other examples might be a key
15664	// indicating a deprecated resource and a suggested replacement, or a
15665	// warning about invalid network settings (for example, if an instance
15666	// attempts to perform IP forwarding but is not enabled for IP
15667	// forwarding).
15668	Key string `json:"key,omitempty"`
15669
15670	// Value: [Output Only] A warning data value corresponding to the key.
15671	Value string `json:"value,omitempty"`
15672
15673	// ForceSendFields is a list of field names (e.g. "Key") to
15674	// unconditionally include in API requests. By default, fields with
15675	// empty values are omitted from API requests. However, any non-pointer,
15676	// non-interface field appearing in ForceSendFields will be sent to the
15677	// server regardless of whether the field is empty or not. This may be
15678	// used to include empty fields in Patch requests.
15679	ForceSendFields []string `json:"-"`
15680
15681	// NullFields is a list of field names (e.g. "Key") to include in API
15682	// requests with the JSON null value. By default, fields with empty
15683	// values are omitted from API requests. However, any field with an
15684	// empty value appearing in NullFields will be sent to the server as
15685	// null. It is an error if a field in this list has a non-empty value.
15686	// This may be used to include null fields in Patch requests.
15687	NullFields []string `json:"-"`
15688}
15689
15690func (s *InstanceGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
15691	type NoMethod InstanceGroupAggregatedListWarningData
15692	raw := NoMethod(*s)
15693	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15694}
15695
15696// InstanceGroupList: A list of InstanceGroup resources.
15697type InstanceGroupList struct {
15698	// Id: [Output Only] Unique identifier for the resource; defined by the
15699	// server.
15700	Id string `json:"id,omitempty"`
15701
15702	// Items: A list of InstanceGroup resources.
15703	Items []*InstanceGroup `json:"items,omitempty"`
15704
15705	// Kind: [Output Only] The resource type, which is always
15706	// compute#instanceGroupList for instance group lists.
15707	Kind string `json:"kind,omitempty"`
15708
15709	// NextPageToken: [Output Only] This token allows you to get the next
15710	// page of results for list requests. If the number of results is larger
15711	// than maxResults, use the nextPageToken as a value for the query
15712	// parameter pageToken in the next list request. Subsequent list
15713	// requests will have their own nextPageToken to continue paging through
15714	// the results.
15715	NextPageToken string `json:"nextPageToken,omitempty"`
15716
15717	// SelfLink: [Output Only] Server-defined URL for this resource.
15718	SelfLink string `json:"selfLink,omitempty"`
15719
15720	// Warning: [Output Only] Informational warning message.
15721	Warning *InstanceGroupListWarning `json:"warning,omitempty"`
15722
15723	// ServerResponse contains the HTTP response code and headers from the
15724	// server.
15725	googleapi.ServerResponse `json:"-"`
15726
15727	// ForceSendFields is a list of field names (e.g. "Id") to
15728	// unconditionally include in API requests. By default, fields with
15729	// empty values are omitted from API requests. However, any non-pointer,
15730	// non-interface field appearing in ForceSendFields will be sent to the
15731	// server regardless of whether the field is empty or not. This may be
15732	// used to include empty fields in Patch requests.
15733	ForceSendFields []string `json:"-"`
15734
15735	// NullFields is a list of field names (e.g. "Id") to include in API
15736	// requests with the JSON null value. By default, fields with empty
15737	// values are omitted from API requests. However, any field with an
15738	// empty value appearing in NullFields will be sent to the server as
15739	// null. It is an error if a field in this list has a non-empty value.
15740	// This may be used to include null fields in Patch requests.
15741	NullFields []string `json:"-"`
15742}
15743
15744func (s *InstanceGroupList) MarshalJSON() ([]byte, error) {
15745	type NoMethod InstanceGroupList
15746	raw := NoMethod(*s)
15747	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15748}
15749
15750// InstanceGroupListWarning: [Output Only] Informational warning
15751// message.
15752type InstanceGroupListWarning struct {
15753	// Code: [Output Only] A warning code, if applicable. For example,
15754	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15755	// the response.
15756	//
15757	// Possible values:
15758	//   "CLEANUP_FAILED"
15759	//   "DEPRECATED_RESOURCE_USED"
15760	//   "DEPRECATED_TYPE_USED"
15761	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
15762	//   "EXPERIMENTAL_TYPE_USED"
15763	//   "EXTERNAL_API_WARNING"
15764	//   "FIELD_VALUE_OVERRIDEN"
15765	//   "INJECTED_KERNELS_DEPRECATED"
15766	//   "LARGE_DEPLOYMENT_WARNING"
15767	//   "MISSING_TYPE_DEPENDENCY"
15768	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
15769	//   "NEXT_HOP_CANNOT_IP_FORWARD"
15770	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
15771	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
15772	//   "NEXT_HOP_NOT_RUNNING"
15773	//   "NOT_CRITICAL_ERROR"
15774	//   "NO_RESULTS_ON_PAGE"
15775	//   "PARTIAL_SUCCESS"
15776	//   "REQUIRED_TOS_AGREEMENT"
15777	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
15778	//   "RESOURCE_NOT_DELETED"
15779	//   "SCHEMA_VALIDATION_IGNORED"
15780	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
15781	//   "UNDECLARED_PROPERTIES"
15782	//   "UNREACHABLE"
15783	Code string `json:"code,omitempty"`
15784
15785	// Data: [Output Only] Metadata about this warning in key: value format.
15786	// For example:
15787	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
15788	Data []*InstanceGroupListWarningData `json:"data,omitempty"`
15789
15790	// Message: [Output Only] A human-readable description of the warning
15791	// code.
15792	Message string `json:"message,omitempty"`
15793
15794	// ForceSendFields is a list of field names (e.g. "Code") to
15795	// unconditionally include in API requests. By default, fields with
15796	// empty values are omitted from API requests. However, any non-pointer,
15797	// non-interface field appearing in ForceSendFields will be sent to the
15798	// server regardless of whether the field is empty or not. This may be
15799	// used to include empty fields in Patch requests.
15800	ForceSendFields []string `json:"-"`
15801
15802	// NullFields is a list of field names (e.g. "Code") to include in API
15803	// requests with the JSON null value. By default, fields with empty
15804	// values are omitted from API requests. However, any field with an
15805	// empty value appearing in NullFields will be sent to the server as
15806	// null. It is an error if a field in this list has a non-empty value.
15807	// This may be used to include null fields in Patch requests.
15808	NullFields []string `json:"-"`
15809}
15810
15811func (s *InstanceGroupListWarning) MarshalJSON() ([]byte, error) {
15812	type NoMethod InstanceGroupListWarning
15813	raw := NoMethod(*s)
15814	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15815}
15816
15817type InstanceGroupListWarningData struct {
15818	// Key: [Output Only] A key that provides more detail on the warning
15819	// being returned. For example, for warnings where there are no results
15820	// in a list request for a particular zone, this key might be scope and
15821	// the key value might be the zone name. Other examples might be a key
15822	// indicating a deprecated resource and a suggested replacement, or a
15823	// warning about invalid network settings (for example, if an instance
15824	// attempts to perform IP forwarding but is not enabled for IP
15825	// forwarding).
15826	Key string `json:"key,omitempty"`
15827
15828	// Value: [Output Only] A warning data value corresponding to the key.
15829	Value string `json:"value,omitempty"`
15830
15831	// ForceSendFields is a list of field names (e.g. "Key") to
15832	// unconditionally include in API requests. By default, fields with
15833	// empty values are omitted from API requests. However, any non-pointer,
15834	// non-interface field appearing in ForceSendFields will be sent to the
15835	// server regardless of whether the field is empty or not. This may be
15836	// used to include empty fields in Patch requests.
15837	ForceSendFields []string `json:"-"`
15838
15839	// NullFields is a list of field names (e.g. "Key") to include in API
15840	// requests with the JSON null value. By default, fields with empty
15841	// values are omitted from API requests. However, any field with an
15842	// empty value appearing in NullFields will be sent to the server as
15843	// null. It is an error if a field in this list has a non-empty value.
15844	// This may be used to include null fields in Patch requests.
15845	NullFields []string `json:"-"`
15846}
15847
15848func (s *InstanceGroupListWarningData) MarshalJSON() ([]byte, error) {
15849	type NoMethod InstanceGroupListWarningData
15850	raw := NoMethod(*s)
15851	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15852}
15853
15854// InstanceGroupManager: Whether the instance is a standby. Properties
15855// of a standby instance comparing to the regular instance:
15856// ======================================================================
15857// === | regular | standby
15858// ======================================================================
15859// === managed by IGM? | yes | yes added to the IG? | yes | yes counts
15860// towards IGM's target size? | yes | no taken into account by
15861// Autoscaler? | yes | no receives traffic from LB? | yes | no
15862// ======================================================================
15863// ===
15864//
15865// Represents a Managed Instance Group resource.
15866//
15867// An instance group is a collection of VM instances that you can manage
15868// as a single entity. For more information, read Instance groups.
15869//
15870// For zonal Managed Instance Group, use the instanceGroupManagers
15871// resource.
15872//
15873// For regional Managed Instance Group, use the
15874// regionInstanceGroupManagers resource. (== resource_for
15875// {$api_version}.instanceGroupManagers ==) (== resource_for
15876// {$api_version}.regionInstanceGroupManagers ==)
15877type InstanceGroupManager struct {
15878	// AutoHealingPolicies: The autohealing policy for this managed instance
15879	// group. You can specify only one value.
15880	AutoHealingPolicies []*InstanceGroupManagerAutoHealingPolicy `json:"autoHealingPolicies,omitempty"`
15881
15882	// BaseInstanceName: The base instance name to use for instances in this
15883	// group. The value must be 1-58 characters long. Instances are named by
15884	// appending a hyphen and a random four-character string to the base
15885	// instance name. The base instance name must comply with RFC1035.
15886	BaseInstanceName string `json:"baseInstanceName,omitempty"`
15887
15888	// CreationTimestamp: [Output Only] The creation timestamp for this
15889	// managed instance group in RFC3339 text format.
15890	CreationTimestamp string `json:"creationTimestamp,omitempty"`
15891
15892	// CurrentActions: [Output Only] The list of instance actions and the
15893	// number of instances in this managed instance group that are scheduled
15894	// for each of those actions.
15895	CurrentActions *InstanceGroupManagerActionsSummary `json:"currentActions,omitempty"`
15896
15897	// Description: An optional description of this resource. Provide this
15898	// property when you create the resource.
15899	Description string `json:"description,omitempty"`
15900
15901	// DistributionPolicy: Policy specifying the intended distribution of
15902	// managed instances across zones in a regional managed instance group.
15903	DistributionPolicy *DistributionPolicy `json:"distributionPolicy,omitempty"`
15904
15905	// Fingerprint: Fingerprint of this resource. This field may be used in
15906	// optimistic locking. It will be ignored when inserting an
15907	// InstanceGroupManager. An up-to-date fingerprint must be provided in
15908	// order to update the InstanceGroupManager, otherwise the request will
15909	// fail with error 412 conditionNotMet.
15910	//
15911	// To see the latest fingerprint, make a get() request to retrieve an
15912	// InstanceGroupManager.
15913	Fingerprint string `json:"fingerprint,omitempty"`
15914
15915	// Id: [Output Only] A unique identifier for this resource type. The
15916	// server generates this identifier.
15917	Id uint64 `json:"id,omitempty,string"`
15918
15919	// InstanceGroup: [Output Only] The URL of the Instance Group resource.
15920	InstanceGroup string `json:"instanceGroup,omitempty"`
15921
15922	// InstanceTemplate: The URL of the instance template that is specified
15923	// for this managed instance group. The group uses this template to
15924	// create all new instances in the managed instance group. The templates
15925	// for existing instances in the group do not change unless you run
15926	// recreateInstances, run applyUpdatesToInstances, or set the group's
15927	// updatePolicy.type to PROACTIVE.
15928	InstanceTemplate string `json:"instanceTemplate,omitempty"`
15929
15930	// Kind: [Output Only] The resource type, which is always
15931	// compute#instanceGroupManager for managed instance groups.
15932	Kind string `json:"kind,omitempty"`
15933
15934	// Name: The name of the managed instance group. The name must be 1-63
15935	// characters long, and comply with RFC1035.
15936	Name string `json:"name,omitempty"`
15937
15938	// NamedPorts: Named ports configured for the Instance Groups
15939	// complementary to this Instance Group Manager.
15940	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
15941
15942	// Region: [Output Only] The URL of the region where the managed
15943	// instance group resides (for regional resources).
15944	Region string `json:"region,omitempty"`
15945
15946	// SelfLink: [Output Only] The URL for this managed instance group. The
15947	// server defines this URL.
15948	SelfLink string `json:"selfLink,omitempty"`
15949
15950	// StatefulPolicy: Stateful configuration for this Instanced Group
15951	// Manager
15952	StatefulPolicy *StatefulPolicy `json:"statefulPolicy,omitempty"`
15953
15954	// Status: [Output Only] The status of this managed instance group.
15955	Status *InstanceGroupManagerStatus `json:"status,omitempty"`
15956
15957	// TargetPools: The URLs for all TargetPool resources to which instances
15958	// in the instanceGroup field are added. The target pools automatically
15959	// apply to all of the instances in the managed instance group.
15960	TargetPools []string `json:"targetPools,omitempty"`
15961
15962	// TargetSize: The target number of running instances for this managed
15963	// instance group. You can reduce this number by using the
15964	// instanceGroupManager deleteInstances or abandonInstances methods.
15965	// Resizing the group also changes this number.
15966	TargetSize int64 `json:"targetSize,omitempty"`
15967
15968	// UpdatePolicy: The update policy for this managed instance group.
15969	UpdatePolicy *InstanceGroupManagerUpdatePolicy `json:"updatePolicy,omitempty"`
15970
15971	// Versions: Specifies the instance templates used by this managed
15972	// instance group to create instances.
15973	//
15974	// Each version is defined by an instanceTemplate and a name. Every
15975	// version can appear at most once per instance group. This field
15976	// overrides the top-level instanceTemplate field. Read more about the
15977	// relationships between these fields. Exactly one version must leave
15978	// the targetSize field unset. That version will be applied to all
15979	// remaining instances. For more information, read about canary updates.
15980	Versions []*InstanceGroupManagerVersion `json:"versions,omitempty"`
15981
15982	// Zone: [Output Only] The URL of a zone where the managed instance
15983	// group is located (for zonal resources).
15984	Zone string `json:"zone,omitempty"`
15985
15986	// ServerResponse contains the HTTP response code and headers from the
15987	// server.
15988	googleapi.ServerResponse `json:"-"`
15989
15990	// ForceSendFields is a list of field names (e.g. "AutoHealingPolicies")
15991	// to unconditionally include in API requests. By default, fields with
15992	// empty values are omitted from API requests. However, any non-pointer,
15993	// non-interface field appearing in ForceSendFields will be sent to the
15994	// server regardless of whether the field is empty or not. This may be
15995	// used to include empty fields in Patch requests.
15996	ForceSendFields []string `json:"-"`
15997
15998	// NullFields is a list of field names (e.g. "AutoHealingPolicies") to
15999	// include in API requests with the JSON null value. By default, fields
16000	// with empty values are omitted from API requests. However, any field
16001	// with an empty value appearing in NullFields will be sent to the
16002	// server as null. It is an error if a field in this list has a
16003	// non-empty value. This may be used to include null fields in Patch
16004	// requests.
16005	NullFields []string `json:"-"`
16006}
16007
16008func (s *InstanceGroupManager) MarshalJSON() ([]byte, error) {
16009	type NoMethod InstanceGroupManager
16010	raw := NoMethod(*s)
16011	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16012}
16013
16014type InstanceGroupManagerActionsSummary struct {
16015	// Abandoning: [Output Only] The total number of instances in the
16016	// managed instance group that are scheduled to be abandoned. Abandoning
16017	// an instance removes it from the managed instance group without
16018	// deleting it.
16019	Abandoning int64 `json:"abandoning,omitempty"`
16020
16021	// Creating: [Output Only] The number of instances in the managed
16022	// instance group that are scheduled to be created or are currently
16023	// being created. If the group fails to create any of these instances,
16024	// it tries again until it creates the instance successfully.
16025	//
16026	// If you have disabled creation retries, this field will not be
16027	// populated; instead, the creatingWithoutRetries field will be
16028	// populated.
16029	Creating int64 `json:"creating,omitempty"`
16030
16031	// CreatingWithoutRetries: [Output Only] The number of instances that
16032	// the managed instance group will attempt to create. The group attempts
16033	// to create each instance only once. If the group fails to create any
16034	// of these instances, it decreases the group's targetSize value
16035	// accordingly.
16036	CreatingWithoutRetries int64 `json:"creatingWithoutRetries,omitempty"`
16037
16038	// Deleting: [Output Only] The number of instances in the managed
16039	// instance group that are scheduled to be deleted or are currently
16040	// being deleted.
16041	Deleting int64 `json:"deleting,omitempty"`
16042
16043	// None: [Output Only] The number of instances in the managed instance
16044	// group that are running and have no scheduled actions.
16045	None int64 `json:"none,omitempty"`
16046
16047	// Recreating: [Output Only] The number of instances in the managed
16048	// instance group that are scheduled to be recreated or are currently
16049	// being being recreated. Recreating an instance deletes the existing
16050	// root persistent disk and creates a new disk from the image that is
16051	// defined in the instance template.
16052	Recreating int64 `json:"recreating,omitempty"`
16053
16054	// Refreshing: [Output Only] The number of instances in the managed
16055	// instance group that are being reconfigured with properties that do
16056	// not require a restart or a recreate action. For example, setting or
16057	// removing target pools for the instance.
16058	Refreshing int64 `json:"refreshing,omitempty"`
16059
16060	// Restarting: [Output Only] The number of instances in the managed
16061	// instance group that are scheduled to be restarted or are currently
16062	// being restarted.
16063	Restarting int64 `json:"restarting,omitempty"`
16064
16065	// Verifying: [Output Only] The number of instances in the managed
16066	// instance group that are being verified. See the
16067	// managedInstances[].currentAction property in the listManagedInstances
16068	// method documentation.
16069	Verifying int64 `json:"verifying,omitempty"`
16070
16071	// ForceSendFields is a list of field names (e.g. "Abandoning") to
16072	// unconditionally include in API requests. By default, fields with
16073	// empty values are omitted from API requests. However, any non-pointer,
16074	// non-interface field appearing in ForceSendFields will be sent to the
16075	// server regardless of whether the field is empty or not. This may be
16076	// used to include empty fields in Patch requests.
16077	ForceSendFields []string `json:"-"`
16078
16079	// NullFields is a list of field names (e.g. "Abandoning") to include in
16080	// API requests with the JSON null value. By default, fields with empty
16081	// values are omitted from API requests. However, any field with an
16082	// empty value appearing in NullFields will be sent to the server as
16083	// null. It is an error if a field in this list has a non-empty value.
16084	// This may be used to include null fields in Patch requests.
16085	NullFields []string `json:"-"`
16086}
16087
16088func (s *InstanceGroupManagerActionsSummary) MarshalJSON() ([]byte, error) {
16089	type NoMethod InstanceGroupManagerActionsSummary
16090	raw := NoMethod(*s)
16091	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16092}
16093
16094type InstanceGroupManagerAggregatedList struct {
16095	// Id: [Output Only] Unique identifier for the resource; defined by the
16096	// server.
16097	Id string `json:"id,omitempty"`
16098
16099	// Items: A list of InstanceGroupManagersScopedList resources.
16100	Items map[string]InstanceGroupManagersScopedList `json:"items,omitempty"`
16101
16102	// Kind: [Output Only] The resource type, which is always
16103	// compute#instanceGroupManagerAggregatedList for an aggregated list of
16104	// managed instance groups.
16105	Kind string `json:"kind,omitempty"`
16106
16107	// NextPageToken: [Output Only] This token allows you to get the next
16108	// page of results for list requests. If the number of results is larger
16109	// than maxResults, use the nextPageToken as a value for the query
16110	// parameter pageToken in the next list request. Subsequent list
16111	// requests will have their own nextPageToken to continue paging through
16112	// the results.
16113	NextPageToken string `json:"nextPageToken,omitempty"`
16114
16115	// SelfLink: [Output Only] Server-defined URL for this resource.
16116	SelfLink string `json:"selfLink,omitempty"`
16117
16118	// Unreachables: [Output Only] Unreachable resources.
16119	Unreachables []string `json:"unreachables,omitempty"`
16120
16121	// Warning: [Output Only] Informational warning message.
16122	Warning *InstanceGroupManagerAggregatedListWarning `json:"warning,omitempty"`
16123
16124	// ServerResponse contains the HTTP response code and headers from the
16125	// server.
16126	googleapi.ServerResponse `json:"-"`
16127
16128	// ForceSendFields is a list of field names (e.g. "Id") to
16129	// unconditionally include in API requests. By default, fields with
16130	// empty values are omitted from API requests. However, any non-pointer,
16131	// non-interface field appearing in ForceSendFields will be sent to the
16132	// server regardless of whether the field is empty or not. This may be
16133	// used to include empty fields in Patch requests.
16134	ForceSendFields []string `json:"-"`
16135
16136	// NullFields is a list of field names (e.g. "Id") to include in API
16137	// requests with the JSON null value. By default, fields with empty
16138	// values are omitted from API requests. However, any field with an
16139	// empty value appearing in NullFields will be sent to the server as
16140	// null. It is an error if a field in this list has a non-empty value.
16141	// This may be used to include null fields in Patch requests.
16142	NullFields []string `json:"-"`
16143}
16144
16145func (s *InstanceGroupManagerAggregatedList) MarshalJSON() ([]byte, error) {
16146	type NoMethod InstanceGroupManagerAggregatedList
16147	raw := NoMethod(*s)
16148	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16149}
16150
16151// InstanceGroupManagerAggregatedListWarning: [Output Only]
16152// Informational warning message.
16153type InstanceGroupManagerAggregatedListWarning struct {
16154	// Code: [Output Only] A warning code, if applicable. For example,
16155	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16156	// the response.
16157	//
16158	// Possible values:
16159	//   "CLEANUP_FAILED"
16160	//   "DEPRECATED_RESOURCE_USED"
16161	//   "DEPRECATED_TYPE_USED"
16162	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16163	//   "EXPERIMENTAL_TYPE_USED"
16164	//   "EXTERNAL_API_WARNING"
16165	//   "FIELD_VALUE_OVERRIDEN"
16166	//   "INJECTED_KERNELS_DEPRECATED"
16167	//   "LARGE_DEPLOYMENT_WARNING"
16168	//   "MISSING_TYPE_DEPENDENCY"
16169	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16170	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16171	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16172	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16173	//   "NEXT_HOP_NOT_RUNNING"
16174	//   "NOT_CRITICAL_ERROR"
16175	//   "NO_RESULTS_ON_PAGE"
16176	//   "PARTIAL_SUCCESS"
16177	//   "REQUIRED_TOS_AGREEMENT"
16178	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16179	//   "RESOURCE_NOT_DELETED"
16180	//   "SCHEMA_VALIDATION_IGNORED"
16181	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16182	//   "UNDECLARED_PROPERTIES"
16183	//   "UNREACHABLE"
16184	Code string `json:"code,omitempty"`
16185
16186	// Data: [Output Only] Metadata about this warning in key: value format.
16187	// For example:
16188	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16189	Data []*InstanceGroupManagerAggregatedListWarningData `json:"data,omitempty"`
16190
16191	// Message: [Output Only] A human-readable description of the warning
16192	// code.
16193	Message string `json:"message,omitempty"`
16194
16195	// ForceSendFields is a list of field names (e.g. "Code") to
16196	// unconditionally include in API requests. By default, fields with
16197	// empty values are omitted from API requests. However, any non-pointer,
16198	// non-interface field appearing in ForceSendFields will be sent to the
16199	// server regardless of whether the field is empty or not. This may be
16200	// used to include empty fields in Patch requests.
16201	ForceSendFields []string `json:"-"`
16202
16203	// NullFields is a list of field names (e.g. "Code") to include in API
16204	// requests with the JSON null value. By default, fields with empty
16205	// values are omitted from API requests. However, any field with an
16206	// empty value appearing in NullFields will be sent to the server as
16207	// null. It is an error if a field in this list has a non-empty value.
16208	// This may be used to include null fields in Patch requests.
16209	NullFields []string `json:"-"`
16210}
16211
16212func (s *InstanceGroupManagerAggregatedListWarning) MarshalJSON() ([]byte, error) {
16213	type NoMethod InstanceGroupManagerAggregatedListWarning
16214	raw := NoMethod(*s)
16215	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16216}
16217
16218type InstanceGroupManagerAggregatedListWarningData struct {
16219	// Key: [Output Only] A key that provides more detail on the warning
16220	// being returned. For example, for warnings where there are no results
16221	// in a list request for a particular zone, this key might be scope and
16222	// the key value might be the zone name. Other examples might be a key
16223	// indicating a deprecated resource and a suggested replacement, or a
16224	// warning about invalid network settings (for example, if an instance
16225	// attempts to perform IP forwarding but is not enabled for IP
16226	// forwarding).
16227	Key string `json:"key,omitempty"`
16228
16229	// Value: [Output Only] A warning data value corresponding to the key.
16230	Value string `json:"value,omitempty"`
16231
16232	// ForceSendFields is a list of field names (e.g. "Key") to
16233	// unconditionally include in API requests. By default, fields with
16234	// empty values are omitted from API requests. However, any non-pointer,
16235	// non-interface field appearing in ForceSendFields will be sent to the
16236	// server regardless of whether the field is empty or not. This may be
16237	// used to include empty fields in Patch requests.
16238	ForceSendFields []string `json:"-"`
16239
16240	// NullFields is a list of field names (e.g. "Key") to include in API
16241	// requests with the JSON null value. By default, fields with empty
16242	// values are omitted from API requests. However, any field with an
16243	// empty value appearing in NullFields will be sent to the server as
16244	// null. It is an error if a field in this list has a non-empty value.
16245	// This may be used to include null fields in Patch requests.
16246	NullFields []string `json:"-"`
16247}
16248
16249func (s *InstanceGroupManagerAggregatedListWarningData) MarshalJSON() ([]byte, error) {
16250	type NoMethod InstanceGroupManagerAggregatedListWarningData
16251	raw := NoMethod(*s)
16252	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16253}
16254
16255type InstanceGroupManagerAutoHealingPolicy struct {
16256	// HealthCheck: The URL for the health check that signals autohealing.
16257	HealthCheck string `json:"healthCheck,omitempty"`
16258
16259	// InitialDelaySec: The number of seconds that the managed instance
16260	// group waits before it applies autohealing policies to new instances
16261	// or recently recreated instances. This initial delay allows instances
16262	// to initialize and run their startup scripts before the instance group
16263	// determines that they are UNHEALTHY. This prevents the managed
16264	// instance group from recreating its instances prematurely. This value
16265	// must be from range [0, 3600].
16266	InitialDelaySec int64 `json:"initialDelaySec,omitempty"`
16267
16268	// ForceSendFields is a list of field names (e.g. "HealthCheck") to
16269	// unconditionally include in API requests. By default, fields with
16270	// empty values are omitted from API requests. However, any non-pointer,
16271	// non-interface field appearing in ForceSendFields will be sent to the
16272	// server regardless of whether the field is empty or not. This may be
16273	// used to include empty fields in Patch requests.
16274	ForceSendFields []string `json:"-"`
16275
16276	// NullFields is a list of field names (e.g. "HealthCheck") to include
16277	// in API requests with the JSON null value. By default, fields with
16278	// empty values are omitted from API requests. However, any field with
16279	// an empty value appearing in NullFields will be sent to the server as
16280	// null. It is an error if a field in this list has a non-empty value.
16281	// This may be used to include null fields in Patch requests.
16282	NullFields []string `json:"-"`
16283}
16284
16285func (s *InstanceGroupManagerAutoHealingPolicy) MarshalJSON() ([]byte, error) {
16286	type NoMethod InstanceGroupManagerAutoHealingPolicy
16287	raw := NoMethod(*s)
16288	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16289}
16290
16291// InstanceGroupManagerList: [Output Only] A list of managed instance
16292// groups.
16293type InstanceGroupManagerList struct {
16294	// Id: [Output Only] Unique identifier for the resource; defined by the
16295	// server.
16296	Id string `json:"id,omitempty"`
16297
16298	// Items: A list of InstanceGroupManager resources.
16299	Items []*InstanceGroupManager `json:"items,omitempty"`
16300
16301	// Kind: [Output Only] The resource type, which is always
16302	// compute#instanceGroupManagerList for a list of managed instance
16303	// groups.
16304	Kind string `json:"kind,omitempty"`
16305
16306	// NextPageToken: [Output Only] This token allows you to get the next
16307	// page of results for list requests. If the number of results is larger
16308	// than maxResults, use the nextPageToken as a value for the query
16309	// parameter pageToken in the next list request. Subsequent list
16310	// requests will have their own nextPageToken to continue paging through
16311	// the results.
16312	NextPageToken string `json:"nextPageToken,omitempty"`
16313
16314	// SelfLink: [Output Only] Server-defined URL for this resource.
16315	SelfLink string `json:"selfLink,omitempty"`
16316
16317	// Warning: [Output Only] Informational warning message.
16318	Warning *InstanceGroupManagerListWarning `json:"warning,omitempty"`
16319
16320	// ServerResponse contains the HTTP response code and headers from the
16321	// server.
16322	googleapi.ServerResponse `json:"-"`
16323
16324	// ForceSendFields is a list of field names (e.g. "Id") to
16325	// unconditionally include in API requests. By default, fields with
16326	// empty values are omitted from API requests. However, any non-pointer,
16327	// non-interface field appearing in ForceSendFields will be sent to the
16328	// server regardless of whether the field is empty or not. This may be
16329	// used to include empty fields in Patch requests.
16330	ForceSendFields []string `json:"-"`
16331
16332	// NullFields is a list of field names (e.g. "Id") to include in API
16333	// requests with the JSON null value. By default, fields with empty
16334	// values are omitted from API requests. However, any field with an
16335	// empty value appearing in NullFields will be sent to the server as
16336	// null. It is an error if a field in this list has a non-empty value.
16337	// This may be used to include null fields in Patch requests.
16338	NullFields []string `json:"-"`
16339}
16340
16341func (s *InstanceGroupManagerList) MarshalJSON() ([]byte, error) {
16342	type NoMethod InstanceGroupManagerList
16343	raw := NoMethod(*s)
16344	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16345}
16346
16347// InstanceGroupManagerListWarning: [Output Only] Informational warning
16348// message.
16349type InstanceGroupManagerListWarning struct {
16350	// Code: [Output Only] A warning code, if applicable. For example,
16351	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16352	// the response.
16353	//
16354	// Possible values:
16355	//   "CLEANUP_FAILED"
16356	//   "DEPRECATED_RESOURCE_USED"
16357	//   "DEPRECATED_TYPE_USED"
16358	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16359	//   "EXPERIMENTAL_TYPE_USED"
16360	//   "EXTERNAL_API_WARNING"
16361	//   "FIELD_VALUE_OVERRIDEN"
16362	//   "INJECTED_KERNELS_DEPRECATED"
16363	//   "LARGE_DEPLOYMENT_WARNING"
16364	//   "MISSING_TYPE_DEPENDENCY"
16365	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16366	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16367	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16368	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16369	//   "NEXT_HOP_NOT_RUNNING"
16370	//   "NOT_CRITICAL_ERROR"
16371	//   "NO_RESULTS_ON_PAGE"
16372	//   "PARTIAL_SUCCESS"
16373	//   "REQUIRED_TOS_AGREEMENT"
16374	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16375	//   "RESOURCE_NOT_DELETED"
16376	//   "SCHEMA_VALIDATION_IGNORED"
16377	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16378	//   "UNDECLARED_PROPERTIES"
16379	//   "UNREACHABLE"
16380	Code string `json:"code,omitempty"`
16381
16382	// Data: [Output Only] Metadata about this warning in key: value format.
16383	// For example:
16384	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16385	Data []*InstanceGroupManagerListWarningData `json:"data,omitempty"`
16386
16387	// Message: [Output Only] A human-readable description of the warning
16388	// code.
16389	Message string `json:"message,omitempty"`
16390
16391	// ForceSendFields is a list of field names (e.g. "Code") to
16392	// unconditionally include in API requests. By default, fields with
16393	// empty values are omitted from API requests. However, any non-pointer,
16394	// non-interface field appearing in ForceSendFields will be sent to the
16395	// server regardless of whether the field is empty or not. This may be
16396	// used to include empty fields in Patch requests.
16397	ForceSendFields []string `json:"-"`
16398
16399	// NullFields is a list of field names (e.g. "Code") to include in API
16400	// requests with the JSON null value. By default, fields with empty
16401	// values are omitted from API requests. However, any field with an
16402	// empty value appearing in NullFields will be sent to the server as
16403	// null. It is an error if a field in this list has a non-empty value.
16404	// This may be used to include null fields in Patch requests.
16405	NullFields []string `json:"-"`
16406}
16407
16408func (s *InstanceGroupManagerListWarning) MarshalJSON() ([]byte, error) {
16409	type NoMethod InstanceGroupManagerListWarning
16410	raw := NoMethod(*s)
16411	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16412}
16413
16414type InstanceGroupManagerListWarningData struct {
16415	// Key: [Output Only] A key that provides more detail on the warning
16416	// being returned. For example, for warnings where there are no results
16417	// in a list request for a particular zone, this key might be scope and
16418	// the key value might be the zone name. Other examples might be a key
16419	// indicating a deprecated resource and a suggested replacement, or a
16420	// warning about invalid network settings (for example, if an instance
16421	// attempts to perform IP forwarding but is not enabled for IP
16422	// forwarding).
16423	Key string `json:"key,omitempty"`
16424
16425	// Value: [Output Only] A warning data value corresponding to the key.
16426	Value string `json:"value,omitempty"`
16427
16428	// ForceSendFields is a list of field names (e.g. "Key") to
16429	// unconditionally include in API requests. By default, fields with
16430	// empty values are omitted from API requests. However, any non-pointer,
16431	// non-interface field appearing in ForceSendFields will be sent to the
16432	// server regardless of whether the field is empty or not. This may be
16433	// used to include empty fields in Patch requests.
16434	ForceSendFields []string `json:"-"`
16435
16436	// NullFields is a list of field names (e.g. "Key") to include in API
16437	// requests with the JSON null value. By default, fields with empty
16438	// values are omitted from API requests. However, any field with an
16439	// empty value appearing in NullFields will be sent to the server as
16440	// null. It is an error if a field in this list has a non-empty value.
16441	// This may be used to include null fields in Patch requests.
16442	NullFields []string `json:"-"`
16443}
16444
16445func (s *InstanceGroupManagerListWarningData) MarshalJSON() ([]byte, error) {
16446	type NoMethod InstanceGroupManagerListWarningData
16447	raw := NoMethod(*s)
16448	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16449}
16450
16451type InstanceGroupManagerStatus struct {
16452	// Autoscaler: [Output Only] The URL of the Autoscaler that targets this
16453	// instance group manager.
16454	Autoscaler string `json:"autoscaler,omitempty"`
16455
16456	// IsStable: [Output Only] A bit indicating whether the managed instance
16457	// group is in a stable state. A stable state means that: none of the
16458	// instances in the managed instance group is currently undergoing any
16459	// type of change (for example, creation, restart, or deletion); no
16460	// future changes are scheduled for instances in the managed instance
16461	// group; and the managed instance group itself is not being modified.
16462	IsStable bool `json:"isStable,omitempty"`
16463
16464	// Stateful: [Output Only] Stateful status of the given Instance Group
16465	// Manager.
16466	Stateful *InstanceGroupManagerStatusStateful `json:"stateful,omitempty"`
16467
16468	// VersionTarget: [Output Only] A status of consistency of Instances'
16469	// versions with their target version specified by version field on
16470	// Instance Group Manager.
16471	VersionTarget *InstanceGroupManagerStatusVersionTarget `json:"versionTarget,omitempty"`
16472
16473	// ForceSendFields is a list of field names (e.g. "Autoscaler") to
16474	// unconditionally include in API requests. By default, fields with
16475	// empty values are omitted from API requests. However, any non-pointer,
16476	// non-interface field appearing in ForceSendFields will be sent to the
16477	// server regardless of whether the field is empty or not. This may be
16478	// used to include empty fields in Patch requests.
16479	ForceSendFields []string `json:"-"`
16480
16481	// NullFields is a list of field names (e.g. "Autoscaler") to include in
16482	// API requests with the JSON null value. By default, fields with empty
16483	// values are omitted from API requests. However, any field with an
16484	// empty value appearing in NullFields will be sent to the server as
16485	// null. It is an error if a field in this list has a non-empty value.
16486	// This may be used to include null fields in Patch requests.
16487	NullFields []string `json:"-"`
16488}
16489
16490func (s *InstanceGroupManagerStatus) MarshalJSON() ([]byte, error) {
16491	type NoMethod InstanceGroupManagerStatus
16492	raw := NoMethod(*s)
16493	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16494}
16495
16496type InstanceGroupManagerStatusStateful struct {
16497	// HasStatefulConfig: [Output Only] A bit indicating whether the managed
16498	// instance group has stateful configuration, that is, if you have
16499	// configured any items in a stateful policy or in per-instance configs.
16500	// The group might report that it has no stateful config even when there
16501	// is still some preserved state on a managed instance, for example, if
16502	// you have deleted all PICs but not yet applied those deletions.
16503	HasStatefulConfig bool `json:"hasStatefulConfig,omitempty"`
16504
16505	// PerInstanceConfigs: [Output Only] Status of per-instance configs on
16506	// the instance.
16507	PerInstanceConfigs *InstanceGroupManagerStatusStatefulPerInstanceConfigs `json:"perInstanceConfigs,omitempty"`
16508
16509	// ForceSendFields is a list of field names (e.g. "HasStatefulConfig")
16510	// to unconditionally include in API requests. By default, fields with
16511	// empty values are omitted from API requests. However, any non-pointer,
16512	// non-interface field appearing in ForceSendFields will be sent to the
16513	// server regardless of whether the field is empty or not. This may be
16514	// used to include empty fields in Patch requests.
16515	ForceSendFields []string `json:"-"`
16516
16517	// NullFields is a list of field names (e.g. "HasStatefulConfig") to
16518	// include in API requests with the JSON null value. By default, fields
16519	// with empty values are omitted from API requests. However, any field
16520	// with an empty value appearing in NullFields will be sent to the
16521	// server as null. It is an error if a field in this list has a
16522	// non-empty value. This may be used to include null fields in Patch
16523	// requests.
16524	NullFields []string `json:"-"`
16525}
16526
16527func (s *InstanceGroupManagerStatusStateful) MarshalJSON() ([]byte, error) {
16528	type NoMethod InstanceGroupManagerStatusStateful
16529	raw := NoMethod(*s)
16530	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16531}
16532
16533type InstanceGroupManagerStatusStatefulPerInstanceConfigs struct {
16534	// AllEffective: A bit indicating if all of the group's per-instance
16535	// configs (listed in the output of a listPerInstanceConfigs API call)
16536	// have status EFFECTIVE or there are no per-instance-configs.
16537	AllEffective bool `json:"allEffective,omitempty"`
16538
16539	// ForceSendFields is a list of field names (e.g. "AllEffective") to
16540	// unconditionally include in API requests. By default, fields with
16541	// empty values are omitted from API requests. However, any non-pointer,
16542	// non-interface field appearing in ForceSendFields will be sent to the
16543	// server regardless of whether the field is empty or not. This may be
16544	// used to include empty fields in Patch requests.
16545	ForceSendFields []string `json:"-"`
16546
16547	// NullFields is a list of field names (e.g. "AllEffective") to include
16548	// in API requests with the JSON null value. By default, fields with
16549	// empty values are omitted from API requests. However, any field with
16550	// an empty value appearing in NullFields will be sent to the server as
16551	// null. It is an error if a field in this list has a non-empty value.
16552	// This may be used to include null fields in Patch requests.
16553	NullFields []string `json:"-"`
16554}
16555
16556func (s *InstanceGroupManagerStatusStatefulPerInstanceConfigs) MarshalJSON() ([]byte, error) {
16557	type NoMethod InstanceGroupManagerStatusStatefulPerInstanceConfigs
16558	raw := NoMethod(*s)
16559	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16560}
16561
16562type InstanceGroupManagerStatusVersionTarget struct {
16563	// IsReached: [Output Only] A bit indicating whether version target has
16564	// been reached in this managed instance group, i.e. all instances are
16565	// in their target version. Instances' target version are specified by
16566	// version field on Instance Group Manager.
16567	IsReached bool `json:"isReached,omitempty"`
16568
16569	// ForceSendFields is a list of field names (e.g. "IsReached") to
16570	// unconditionally include in API requests. By default, fields with
16571	// empty values are omitted from API requests. However, any non-pointer,
16572	// non-interface field appearing in ForceSendFields will be sent to the
16573	// server regardless of whether the field is empty or not. This may be
16574	// used to include empty fields in Patch requests.
16575	ForceSendFields []string `json:"-"`
16576
16577	// NullFields is a list of field names (e.g. "IsReached") to include in
16578	// API requests with the JSON null value. By default, fields with empty
16579	// values are omitted from API requests. However, any field with an
16580	// empty value appearing in NullFields will be sent to the server as
16581	// null. It is an error if a field in this list has a non-empty value.
16582	// This may be used to include null fields in Patch requests.
16583	NullFields []string `json:"-"`
16584}
16585
16586func (s *InstanceGroupManagerStatusVersionTarget) MarshalJSON() ([]byte, error) {
16587	type NoMethod InstanceGroupManagerStatusVersionTarget
16588	raw := NoMethod(*s)
16589	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16590}
16591
16592type InstanceGroupManagerUpdatePolicy struct {
16593	// InstanceRedistributionType: The  instance redistribution policy for
16594	// regional managed instance groups. Valid values are:
16595	// - PROACTIVE (default): The group attempts to maintain an even
16596	// distribution of VM instances across zones in the region.
16597	// - NONE: For non-autoscaled groups, proactive redistribution is
16598	// disabled.
16599	//
16600	// Possible values:
16601	//   "NONE"
16602	//   "PROACTIVE"
16603	InstanceRedistributionType string `json:"instanceRedistributionType,omitempty"`
16604
16605	// MaxSurge: The maximum number of instances that can be created above
16606	// the specified targetSize during the update process. This value can be
16607	// either a fixed number or, if the group has 10 or more instances, a
16608	// percentage. If you set a percentage, the number of instances is
16609	// rounded if necessary. The default value for maxSurge is a fixed value
16610	// equal to the number of zones in which the managed instance group
16611	// operates.
16612	//
16613	// At least one of either maxSurge or maxUnavailable must be greater
16614	// than 0. Learn more about maxSurge.
16615	MaxSurge *FixedOrPercent `json:"maxSurge,omitempty"`
16616
16617	// MaxUnavailable: The maximum number of instances that can be
16618	// unavailable during the update process. An instance is considered
16619	// available if all of the following conditions are satisfied:
16620	//
16621	//
16622	// - The instance's status is RUNNING.
16623	// - If there is a health check on the instance group, the instance's
16624	// health check status must be HEALTHY at least once. If there is no
16625	// health check on the group, then the instance only needs to have a
16626	// status of RUNNING to be considered available.  This value can be
16627	// either a fixed number or, if the group has 10 or more instances, a
16628	// percentage. If you set a percentage, the number of instances is
16629	// rounded if necessary. The default value for maxUnavailable is a fixed
16630	// value equal to the number of zones in which the managed instance
16631	// group operates.
16632	//
16633	// At least one of either maxSurge or maxUnavailable must be greater
16634	// than 0. Learn more about maxUnavailable.
16635	MaxUnavailable *FixedOrPercent `json:"maxUnavailable,omitempty"`
16636
16637	// MinimalAction: Minimal action to be taken on an instance. You can
16638	// specify either RESTART to restart existing instances or REPLACE to
16639	// delete and create new instances from the target template. If you
16640	// specify a RESTART, the Updater will attempt to perform that action
16641	// only. However, if the Updater determines that the minimal action you
16642	// specify is not enough to perform the update, it might perform a more
16643	// disruptive action.
16644	//
16645	// Possible values:
16646	//   "NONE"
16647	//   "REFRESH"
16648	//   "REPLACE"
16649	//   "RESTART"
16650	MinimalAction string `json:"minimalAction,omitempty"`
16651
16652	// ReplacementMethod: What action should be used to replace instances.
16653	// See minimal_action.REPLACE
16654	//
16655	// Possible values:
16656	//   "RECREATE"
16657	//   "SUBSTITUTE"
16658	ReplacementMethod string `json:"replacementMethod,omitempty"`
16659
16660	// Type: The type of update process. You can specify either PROACTIVE so
16661	// that the instance group manager proactively executes actions in order
16662	// to bring instances to their target versions or OPPORTUNISTIC so that
16663	// no action is proactively executed but the update will be performed as
16664	// part of other actions (for example, resizes or recreateInstances
16665	// calls).
16666	//
16667	// Possible values:
16668	//   "OPPORTUNISTIC"
16669	//   "PROACTIVE"
16670	Type string `json:"type,omitempty"`
16671
16672	// ForceSendFields is a list of field names (e.g.
16673	// "InstanceRedistributionType") to unconditionally include in API
16674	// requests. By default, fields with empty values are omitted from API
16675	// requests. However, any non-pointer, non-interface field appearing in
16676	// ForceSendFields will be sent to the server regardless of whether the
16677	// field is empty or not. This may be used to include empty fields in
16678	// Patch requests.
16679	ForceSendFields []string `json:"-"`
16680
16681	// NullFields is a list of field names (e.g.
16682	// "InstanceRedistributionType") to include in API requests with the
16683	// JSON null value. By default, fields with empty values are omitted
16684	// from API requests. However, any field with an empty value appearing
16685	// in NullFields will be sent to the server as null. It is an error if a
16686	// field in this list has a non-empty value. This may be used to include
16687	// null fields in Patch requests.
16688	NullFields []string `json:"-"`
16689}
16690
16691func (s *InstanceGroupManagerUpdatePolicy) MarshalJSON() ([]byte, error) {
16692	type NoMethod InstanceGroupManagerUpdatePolicy
16693	raw := NoMethod(*s)
16694	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16695}
16696
16697type InstanceGroupManagerVersion struct {
16698	// InstanceTemplate: The URL of the instance template that is specified
16699	// for this managed instance group. The group uses this template to
16700	// create new instances in the managed instance group until the
16701	// `targetSize` for this version is reached. The templates for existing
16702	// instances in the group do not change unless you run
16703	// recreateInstances, run applyUpdatesToInstances, or set the group's
16704	// updatePolicy.type to PROACTIVE; in those cases, existing instances
16705	// are updated until the `targetSize` for this version is reached.
16706	InstanceTemplate string `json:"instanceTemplate,omitempty"`
16707
16708	// Name: Name of the version. Unique among all versions in the scope of
16709	// this managed instance group.
16710	Name string `json:"name,omitempty"`
16711
16712	// TargetSize: Specifies the intended number of instances to be created
16713	// from the instanceTemplate. The final number of instances created from
16714	// the template will be equal to:
16715	// - If expressed as a fixed number, the minimum of either
16716	// targetSize.fixed or instanceGroupManager.targetSize is used.
16717	// - if expressed as a percent, the targetSize would be
16718	// (targetSize.percent/100 * InstanceGroupManager.targetSize) If there
16719	// is a remainder, the number is rounded.  If unset, this version will
16720	// update any remaining instances not updated by another version. Read
16721	// Starting a canary update for more information.
16722	TargetSize *FixedOrPercent `json:"targetSize,omitempty"`
16723
16724	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
16725	// unconditionally include in API requests. By default, fields with
16726	// empty values are omitted from API requests. However, any non-pointer,
16727	// non-interface field appearing in ForceSendFields will be sent to the
16728	// server regardless of whether the field is empty or not. This may be
16729	// used to include empty fields in Patch requests.
16730	ForceSendFields []string `json:"-"`
16731
16732	// NullFields is a list of field names (e.g. "InstanceTemplate") to
16733	// include in API requests with the JSON null value. By default, fields
16734	// with empty values are omitted from API requests. However, any field
16735	// with an empty value appearing in NullFields will be sent to the
16736	// server as null. It is an error if a field in this list has a
16737	// non-empty value. This may be used to include null fields in Patch
16738	// requests.
16739	NullFields []string `json:"-"`
16740}
16741
16742func (s *InstanceGroupManagerVersion) MarshalJSON() ([]byte, error) {
16743	type NoMethod InstanceGroupManagerVersion
16744	raw := NoMethod(*s)
16745	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16746}
16747
16748type InstanceGroupManagersAbandonInstancesRequest struct {
16749	// Instances: The URLs of one or more instances to abandon. This can be
16750	// a full URL or a partial URL, such as
16751	// zones/[ZONE]/instances/[INSTANCE_NAME].
16752	Instances []string `json:"instances,omitempty"`
16753
16754	// ForceSendFields is a list of field names (e.g. "Instances") to
16755	// unconditionally include in API requests. By default, fields with
16756	// empty values are omitted from API requests. However, any non-pointer,
16757	// non-interface field appearing in ForceSendFields will be sent to the
16758	// server regardless of whether the field is empty or not. This may be
16759	// used to include empty fields in Patch requests.
16760	ForceSendFields []string `json:"-"`
16761
16762	// NullFields is a list of field names (e.g. "Instances") to include in
16763	// API requests with the JSON null value. By default, fields with empty
16764	// values are omitted from API requests. However, any field with an
16765	// empty value appearing in NullFields will be sent to the server as
16766	// null. It is an error if a field in this list has a non-empty value.
16767	// This may be used to include null fields in Patch requests.
16768	NullFields []string `json:"-"`
16769}
16770
16771func (s *InstanceGroupManagersAbandonInstancesRequest) MarshalJSON() ([]byte, error) {
16772	type NoMethod InstanceGroupManagersAbandonInstancesRequest
16773	raw := NoMethod(*s)
16774	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16775}
16776
16777// InstanceGroupManagersApplyUpdatesRequest:
16778// InstanceGroupManagers.applyUpdatesToInstances
16779type InstanceGroupManagersApplyUpdatesRequest struct {
16780	// AllInstances: Flag to update all instances instead of specified list
16781	// of ?instances?. If the flag is set to true then the instances may not
16782	// be specified in the request.
16783	AllInstances bool `json:"allInstances,omitempty"`
16784
16785	// Instances: The list of URLs of one or more instances for which you
16786	// want to apply updates. Each URL can be a full URL or a partial URL,
16787	// such as zones/[ZONE]/instances/[INSTANCE_NAME].
16788	Instances []string `json:"instances,omitempty"`
16789
16790	// MinimalAction: The minimal action that you want to perform on each
16791	// instance during the update:
16792	// - REPLACE: At minimum, delete the instance and create it again.
16793	// - RESTART: Stop the instance and start it again.
16794	// - REFRESH: Do not stop the instance.
16795	// - NONE: Do not disrupt the instance at all.  By default, the minimum
16796	// action is NONE. If your update requires a more disruptive action than
16797	// you set with this flag, the necessary action is performed to execute
16798	// the update.
16799	//
16800	// Possible values:
16801	//   "NONE"
16802	//   "REFRESH"
16803	//   "REPLACE"
16804	//   "RESTART"
16805	MinimalAction string `json:"minimalAction,omitempty"`
16806
16807	// MostDisruptiveAllowedAction: The most disruptive action that you want
16808	// to perform on each instance during the update:
16809	// - REPLACE: Delete the instance and create it again.
16810	// - RESTART: Stop the instance and start it again.
16811	// - REFRESH: Do not stop the instance.
16812	// - NONE: Do not disrupt the instance at all.  By default, the most
16813	// disruptive allowed action is REPLACE. If your update requires a more
16814	// disruptive action than you set with this flag, the update request
16815	// will fail.
16816	//
16817	// Possible values:
16818	//   "NONE"
16819	//   "REFRESH"
16820	//   "REPLACE"
16821	//   "RESTART"
16822	MostDisruptiveAllowedAction string `json:"mostDisruptiveAllowedAction,omitempty"`
16823
16824	// ForceSendFields is a list of field names (e.g. "AllInstances") to
16825	// unconditionally include in API requests. By default, fields with
16826	// empty values are omitted from API requests. However, any non-pointer,
16827	// non-interface field appearing in ForceSendFields will be sent to the
16828	// server regardless of whether the field is empty or not. This may be
16829	// used to include empty fields in Patch requests.
16830	ForceSendFields []string `json:"-"`
16831
16832	// NullFields is a list of field names (e.g. "AllInstances") to include
16833	// in API requests with the JSON null value. By default, fields with
16834	// empty values are omitted from API requests. However, any field with
16835	// an empty value appearing in NullFields will be sent to the server as
16836	// null. It is an error if a field in this list has a non-empty value.
16837	// This may be used to include null fields in Patch requests.
16838	NullFields []string `json:"-"`
16839}
16840
16841func (s *InstanceGroupManagersApplyUpdatesRequest) MarshalJSON() ([]byte, error) {
16842	type NoMethod InstanceGroupManagersApplyUpdatesRequest
16843	raw := NoMethod(*s)
16844	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16845}
16846
16847// InstanceGroupManagersCreateInstancesRequest:
16848// InstanceGroupManagers.createInstances
16849type InstanceGroupManagersCreateInstancesRequest struct {
16850	// Instances: [Required] List of specifications of per-instance configs.
16851	Instances []*PerInstanceConfig `json:"instances,omitempty"`
16852
16853	// ForceSendFields is a list of field names (e.g. "Instances") to
16854	// unconditionally include in API requests. By default, fields with
16855	// empty values are omitted from API requests. However, any non-pointer,
16856	// non-interface field appearing in ForceSendFields will be sent to the
16857	// server regardless of whether the field is empty or not. This may be
16858	// used to include empty fields in Patch requests.
16859	ForceSendFields []string `json:"-"`
16860
16861	// NullFields is a list of field names (e.g. "Instances") to include in
16862	// API requests with the JSON null value. By default, fields with empty
16863	// values are omitted from API requests. However, any field with an
16864	// empty value appearing in NullFields will be sent to the server as
16865	// null. It is an error if a field in this list has a non-empty value.
16866	// This may be used to include null fields in Patch requests.
16867	NullFields []string `json:"-"`
16868}
16869
16870func (s *InstanceGroupManagersCreateInstancesRequest) MarshalJSON() ([]byte, error) {
16871	type NoMethod InstanceGroupManagersCreateInstancesRequest
16872	raw := NoMethod(*s)
16873	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16874}
16875
16876type InstanceGroupManagersDeleteInstancesRequest struct {
16877	// Instances: The URLs of one or more instances to delete. This can be a
16878	// full URL or a partial URL, such as
16879	// zones/[ZONE]/instances/[INSTANCE_NAME].
16880	Instances []string `json:"instances,omitempty"`
16881
16882	// ForceSendFields is a list of field names (e.g. "Instances") to
16883	// unconditionally include in API requests. By default, fields with
16884	// empty values are omitted from API requests. However, any non-pointer,
16885	// non-interface field appearing in ForceSendFields will be sent to the
16886	// server regardless of whether the field is empty or not. This may be
16887	// used to include empty fields in Patch requests.
16888	ForceSendFields []string `json:"-"`
16889
16890	// NullFields is a list of field names (e.g. "Instances") to include in
16891	// API requests with the JSON null value. By default, fields with empty
16892	// values are omitted from API requests. However, any field with an
16893	// empty value appearing in NullFields will be sent to the server as
16894	// null. It is an error if a field in this list has a non-empty value.
16895	// This may be used to include null fields in Patch requests.
16896	NullFields []string `json:"-"`
16897}
16898
16899func (s *InstanceGroupManagersDeleteInstancesRequest) MarshalJSON() ([]byte, error) {
16900	type NoMethod InstanceGroupManagersDeleteInstancesRequest
16901	raw := NoMethod(*s)
16902	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16903}
16904
16905// InstanceGroupManagersDeletePerInstanceConfigsReq:
16906// InstanceGroupManagers.deletePerInstanceConfigs
16907type InstanceGroupManagersDeletePerInstanceConfigsReq struct {
16908	// Names: The list of instance names for which we want to delete
16909	// per-instance configs on this managed instance group.
16910	Names []string `json:"names,omitempty"`
16911
16912	// ForceSendFields is a list of field names (e.g. "Names") to
16913	// unconditionally include in API requests. By default, fields with
16914	// empty values are omitted from API requests. However, any non-pointer,
16915	// non-interface field appearing in ForceSendFields will be sent to the
16916	// server regardless of whether the field is empty or not. This may be
16917	// used to include empty fields in Patch requests.
16918	ForceSendFields []string `json:"-"`
16919
16920	// NullFields is a list of field names (e.g. "Names") to include in API
16921	// requests with the JSON null value. By default, fields with empty
16922	// values are omitted from API requests. However, any field with an
16923	// empty value appearing in NullFields will be sent to the server as
16924	// null. It is an error if a field in this list has a non-empty value.
16925	// This may be used to include null fields in Patch requests.
16926	NullFields []string `json:"-"`
16927}
16928
16929func (s *InstanceGroupManagersDeletePerInstanceConfigsReq) MarshalJSON() ([]byte, error) {
16930	type NoMethod InstanceGroupManagersDeletePerInstanceConfigsReq
16931	raw := NoMethod(*s)
16932	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16933}
16934
16935type InstanceGroupManagersListErrorsResponse struct {
16936	// Items: [Output Only] The list of errors of the managed instance
16937	// group.
16938	Items []*InstanceManagedByIgmError `json:"items,omitempty"`
16939
16940	// NextPageToken: [Output Only] This token allows you to get the next
16941	// page of results for list requests. If the number of results is larger
16942	// than maxResults, use the nextPageToken as a value for the query
16943	// parameter pageToken in the next list request. Subsequent list
16944	// requests will have their own nextPageToken to continue paging through
16945	// the results.
16946	NextPageToken string `json:"nextPageToken,omitempty"`
16947
16948	// ServerResponse contains the HTTP response code and headers from the
16949	// server.
16950	googleapi.ServerResponse `json:"-"`
16951
16952	// ForceSendFields is a list of field names (e.g. "Items") to
16953	// unconditionally include in API requests. By default, fields with
16954	// empty values are omitted from API requests. However, any non-pointer,
16955	// non-interface field appearing in ForceSendFields will be sent to the
16956	// server regardless of whether the field is empty or not. This may be
16957	// used to include empty fields in Patch requests.
16958	ForceSendFields []string `json:"-"`
16959
16960	// NullFields is a list of field names (e.g. "Items") to include in API
16961	// requests with the JSON null value. By default, fields with empty
16962	// values are omitted from API requests. However, any field with an
16963	// empty value appearing in NullFields will be sent to the server as
16964	// null. It is an error if a field in this list has a non-empty value.
16965	// This may be used to include null fields in Patch requests.
16966	NullFields []string `json:"-"`
16967}
16968
16969func (s *InstanceGroupManagersListErrorsResponse) MarshalJSON() ([]byte, error) {
16970	type NoMethod InstanceGroupManagersListErrorsResponse
16971	raw := NoMethod(*s)
16972	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16973}
16974
16975type InstanceGroupManagersListManagedInstancesResponse struct {
16976	// ManagedInstances: [Output Only] The list of instances in the managed
16977	// instance group.
16978	ManagedInstances []*ManagedInstance `json:"managedInstances,omitempty"`
16979
16980	// NextPageToken: [Output Only] This token allows you to get the next
16981	// page of results for list requests. If the number of results is larger
16982	// than maxResults, use the nextPageToken as a value for the query
16983	// parameter pageToken in the next list request. Subsequent list
16984	// requests will have their own nextPageToken to continue paging through
16985	// the results.
16986	NextPageToken string `json:"nextPageToken,omitempty"`
16987
16988	// ServerResponse contains the HTTP response code and headers from the
16989	// server.
16990	googleapi.ServerResponse `json:"-"`
16991
16992	// ForceSendFields is a list of field names (e.g. "ManagedInstances") to
16993	// unconditionally include in API requests. By default, fields with
16994	// empty values are omitted from API requests. However, any non-pointer,
16995	// non-interface field appearing in ForceSendFields will be sent to the
16996	// server regardless of whether the field is empty or not. This may be
16997	// used to include empty fields in Patch requests.
16998	ForceSendFields []string `json:"-"`
16999
17000	// NullFields is a list of field names (e.g. "ManagedInstances") to
17001	// include in API requests with the JSON null value. By default, fields
17002	// with empty values are omitted from API requests. However, any field
17003	// with an empty value appearing in NullFields will be sent to the
17004	// server as null. It is an error if a field in this list has a
17005	// non-empty value. This may be used to include null fields in Patch
17006	// requests.
17007	NullFields []string `json:"-"`
17008}
17009
17010func (s *InstanceGroupManagersListManagedInstancesResponse) MarshalJSON() ([]byte, error) {
17011	type NoMethod InstanceGroupManagersListManagedInstancesResponse
17012	raw := NoMethod(*s)
17013	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17014}
17015
17016type InstanceGroupManagersListPerInstanceConfigsResp struct {
17017	// Items: [Output Only] The list of PerInstanceConfig.
17018	Items []*PerInstanceConfig `json:"items,omitempty"`
17019
17020	// NextPageToken: [Output Only] This token allows you to get the next
17021	// page of results for list requests. If the number of results is larger
17022	// than maxResults, use the nextPageToken as a value for the query
17023	// parameter pageToken in the next list request. Subsequent list
17024	// requests will have their own nextPageToken to continue paging through
17025	// the results.
17026	NextPageToken string `json:"nextPageToken,omitempty"`
17027
17028	// Warning: [Output Only] Informational warning message.
17029	Warning *InstanceGroupManagersListPerInstanceConfigsRespWarning `json:"warning,omitempty"`
17030
17031	// ServerResponse contains the HTTP response code and headers from the
17032	// server.
17033	googleapi.ServerResponse `json:"-"`
17034
17035	// ForceSendFields is a list of field names (e.g. "Items") to
17036	// unconditionally include in API requests. By default, fields with
17037	// empty values are omitted from API requests. However, any non-pointer,
17038	// non-interface field appearing in ForceSendFields will be sent to the
17039	// server regardless of whether the field is empty or not. This may be
17040	// used to include empty fields in Patch requests.
17041	ForceSendFields []string `json:"-"`
17042
17043	// NullFields is a list of field names (e.g. "Items") to include in API
17044	// requests with the JSON null value. By default, fields with empty
17045	// values are omitted from API requests. However, any field with an
17046	// empty value appearing in NullFields will be sent to the server as
17047	// null. It is an error if a field in this list has a non-empty value.
17048	// This may be used to include null fields in Patch requests.
17049	NullFields []string `json:"-"`
17050}
17051
17052func (s *InstanceGroupManagersListPerInstanceConfigsResp) MarshalJSON() ([]byte, error) {
17053	type NoMethod InstanceGroupManagersListPerInstanceConfigsResp
17054	raw := NoMethod(*s)
17055	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17056}
17057
17058// InstanceGroupManagersListPerInstanceConfigsRespWarning: [Output Only]
17059// Informational warning message.
17060type InstanceGroupManagersListPerInstanceConfigsRespWarning struct {
17061	// Code: [Output Only] A warning code, if applicable. For example,
17062	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17063	// the response.
17064	//
17065	// Possible values:
17066	//   "CLEANUP_FAILED"
17067	//   "DEPRECATED_RESOURCE_USED"
17068	//   "DEPRECATED_TYPE_USED"
17069	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17070	//   "EXPERIMENTAL_TYPE_USED"
17071	//   "EXTERNAL_API_WARNING"
17072	//   "FIELD_VALUE_OVERRIDEN"
17073	//   "INJECTED_KERNELS_DEPRECATED"
17074	//   "LARGE_DEPLOYMENT_WARNING"
17075	//   "MISSING_TYPE_DEPENDENCY"
17076	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17077	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17078	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17079	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17080	//   "NEXT_HOP_NOT_RUNNING"
17081	//   "NOT_CRITICAL_ERROR"
17082	//   "NO_RESULTS_ON_PAGE"
17083	//   "PARTIAL_SUCCESS"
17084	//   "REQUIRED_TOS_AGREEMENT"
17085	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17086	//   "RESOURCE_NOT_DELETED"
17087	//   "SCHEMA_VALIDATION_IGNORED"
17088	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17089	//   "UNDECLARED_PROPERTIES"
17090	//   "UNREACHABLE"
17091	Code string `json:"code,omitempty"`
17092
17093	// Data: [Output Only] Metadata about this warning in key: value format.
17094	// For example:
17095	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17096	Data []*InstanceGroupManagersListPerInstanceConfigsRespWarningData `json:"data,omitempty"`
17097
17098	// Message: [Output Only] A human-readable description of the warning
17099	// code.
17100	Message string `json:"message,omitempty"`
17101
17102	// ForceSendFields is a list of field names (e.g. "Code") to
17103	// unconditionally include in API requests. By default, fields with
17104	// empty values are omitted from API requests. However, any non-pointer,
17105	// non-interface field appearing in ForceSendFields will be sent to the
17106	// server regardless of whether the field is empty or not. This may be
17107	// used to include empty fields in Patch requests.
17108	ForceSendFields []string `json:"-"`
17109
17110	// NullFields is a list of field names (e.g. "Code") to include in API
17111	// requests with the JSON null value. By default, fields with empty
17112	// values are omitted from API requests. However, any field with an
17113	// empty value appearing in NullFields will be sent to the server as
17114	// null. It is an error if a field in this list has a non-empty value.
17115	// This may be used to include null fields in Patch requests.
17116	NullFields []string `json:"-"`
17117}
17118
17119func (s *InstanceGroupManagersListPerInstanceConfigsRespWarning) MarshalJSON() ([]byte, error) {
17120	type NoMethod InstanceGroupManagersListPerInstanceConfigsRespWarning
17121	raw := NoMethod(*s)
17122	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17123}
17124
17125type InstanceGroupManagersListPerInstanceConfigsRespWarningData struct {
17126	// Key: [Output Only] A key that provides more detail on the warning
17127	// being returned. For example, for warnings where there are no results
17128	// in a list request for a particular zone, this key might be scope and
17129	// the key value might be the zone name. Other examples might be a key
17130	// indicating a deprecated resource and a suggested replacement, or a
17131	// warning about invalid network settings (for example, if an instance
17132	// attempts to perform IP forwarding but is not enabled for IP
17133	// forwarding).
17134	Key string `json:"key,omitempty"`
17135
17136	// Value: [Output Only] A warning data value corresponding to the key.
17137	Value string `json:"value,omitempty"`
17138
17139	// ForceSendFields is a list of field names (e.g. "Key") to
17140	// unconditionally include in API requests. By default, fields with
17141	// empty values are omitted from API requests. However, any non-pointer,
17142	// non-interface field appearing in ForceSendFields will be sent to the
17143	// server regardless of whether the field is empty or not. This may be
17144	// used to include empty fields in Patch requests.
17145	ForceSendFields []string `json:"-"`
17146
17147	// NullFields is a list of field names (e.g. "Key") to include in API
17148	// requests with the JSON null value. By default, fields with empty
17149	// values are omitted from API requests. However, any field with an
17150	// empty value appearing in NullFields will be sent to the server as
17151	// null. It is an error if a field in this list has a non-empty value.
17152	// This may be used to include null fields in Patch requests.
17153	NullFields []string `json:"-"`
17154}
17155
17156func (s *InstanceGroupManagersListPerInstanceConfigsRespWarningData) MarshalJSON() ([]byte, error) {
17157	type NoMethod InstanceGroupManagersListPerInstanceConfigsRespWarningData
17158	raw := NoMethod(*s)
17159	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17160}
17161
17162// InstanceGroupManagersPatchPerInstanceConfigsReq:
17163// InstanceGroupManagers.patchPerInstanceConfigs
17164type InstanceGroupManagersPatchPerInstanceConfigsReq struct {
17165	// PerInstanceConfigs: The list of per-instance configs to insert or
17166	// patch on this managed instance group.
17167	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
17168
17169	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
17170	// to unconditionally include in API requests. By default, fields with
17171	// empty values are omitted from API requests. However, any non-pointer,
17172	// non-interface field appearing in ForceSendFields will be sent to the
17173	// server regardless of whether the field is empty or not. This may be
17174	// used to include empty fields in Patch requests.
17175	ForceSendFields []string `json:"-"`
17176
17177	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
17178	// include in API requests with the JSON null value. By default, fields
17179	// with empty values are omitted from API requests. However, any field
17180	// with an empty value appearing in NullFields will be sent to the
17181	// server as null. It is an error if a field in this list has a
17182	// non-empty value. This may be used to include null fields in Patch
17183	// requests.
17184	NullFields []string `json:"-"`
17185}
17186
17187func (s *InstanceGroupManagersPatchPerInstanceConfigsReq) MarshalJSON() ([]byte, error) {
17188	type NoMethod InstanceGroupManagersPatchPerInstanceConfigsReq
17189	raw := NoMethod(*s)
17190	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17191}
17192
17193type InstanceGroupManagersRecreateInstancesRequest struct {
17194	// Instances: The URLs of one or more instances to recreate. This can be
17195	// a full URL or a partial URL, such as
17196	// zones/[ZONE]/instances/[INSTANCE_NAME].
17197	Instances []string `json:"instances,omitempty"`
17198
17199	// ForceSendFields is a list of field names (e.g. "Instances") to
17200	// unconditionally include in API requests. By default, fields with
17201	// empty values are omitted from API requests. However, any non-pointer,
17202	// non-interface field appearing in ForceSendFields will be sent to the
17203	// server regardless of whether the field is empty or not. This may be
17204	// used to include empty fields in Patch requests.
17205	ForceSendFields []string `json:"-"`
17206
17207	// NullFields is a list of field names (e.g. "Instances") to include in
17208	// API requests with the JSON null value. By default, fields with empty
17209	// values are omitted from API requests. However, any field with an
17210	// empty value appearing in NullFields will be sent to the server as
17211	// null. It is an error if a field in this list has a non-empty value.
17212	// This may be used to include null fields in Patch requests.
17213	NullFields []string `json:"-"`
17214}
17215
17216func (s *InstanceGroupManagersRecreateInstancesRequest) MarshalJSON() ([]byte, error) {
17217	type NoMethod InstanceGroupManagersRecreateInstancesRequest
17218	raw := NoMethod(*s)
17219	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17220}
17221
17222type InstanceGroupManagersScopedList struct {
17223	// InstanceGroupManagers: [Output Only] The list of managed instance
17224	// groups that are contained in the specified project and zone.
17225	InstanceGroupManagers []*InstanceGroupManager `json:"instanceGroupManagers,omitempty"`
17226
17227	// Warning: [Output Only] The warning that replaces the list of managed
17228	// instance groups when the list is empty.
17229	Warning *InstanceGroupManagersScopedListWarning `json:"warning,omitempty"`
17230
17231	// ForceSendFields is a list of field names (e.g.
17232	// "InstanceGroupManagers") to unconditionally include in API requests.
17233	// By default, fields with empty values are omitted from API requests.
17234	// However, any non-pointer, non-interface field appearing in
17235	// ForceSendFields will be sent to the server regardless of whether the
17236	// field is empty or not. This may be used to include empty fields in
17237	// Patch requests.
17238	ForceSendFields []string `json:"-"`
17239
17240	// NullFields is a list of field names (e.g. "InstanceGroupManagers") to
17241	// include in API requests with the JSON null value. By default, fields
17242	// with empty values are omitted from API requests. However, any field
17243	// with an empty value appearing in NullFields will be sent to the
17244	// server as null. It is an error if a field in this list has a
17245	// non-empty value. This may be used to include null fields in Patch
17246	// requests.
17247	NullFields []string `json:"-"`
17248}
17249
17250func (s *InstanceGroupManagersScopedList) MarshalJSON() ([]byte, error) {
17251	type NoMethod InstanceGroupManagersScopedList
17252	raw := NoMethod(*s)
17253	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17254}
17255
17256// InstanceGroupManagersScopedListWarning: [Output Only] The warning
17257// that replaces the list of managed instance groups when the list is
17258// empty.
17259type InstanceGroupManagersScopedListWarning struct {
17260	// Code: [Output Only] A warning code, if applicable. For example,
17261	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17262	// the response.
17263	//
17264	// Possible values:
17265	//   "CLEANUP_FAILED"
17266	//   "DEPRECATED_RESOURCE_USED"
17267	//   "DEPRECATED_TYPE_USED"
17268	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17269	//   "EXPERIMENTAL_TYPE_USED"
17270	//   "EXTERNAL_API_WARNING"
17271	//   "FIELD_VALUE_OVERRIDEN"
17272	//   "INJECTED_KERNELS_DEPRECATED"
17273	//   "LARGE_DEPLOYMENT_WARNING"
17274	//   "MISSING_TYPE_DEPENDENCY"
17275	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17276	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17277	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17278	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17279	//   "NEXT_HOP_NOT_RUNNING"
17280	//   "NOT_CRITICAL_ERROR"
17281	//   "NO_RESULTS_ON_PAGE"
17282	//   "PARTIAL_SUCCESS"
17283	//   "REQUIRED_TOS_AGREEMENT"
17284	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17285	//   "RESOURCE_NOT_DELETED"
17286	//   "SCHEMA_VALIDATION_IGNORED"
17287	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17288	//   "UNDECLARED_PROPERTIES"
17289	//   "UNREACHABLE"
17290	Code string `json:"code,omitempty"`
17291
17292	// Data: [Output Only] Metadata about this warning in key: value format.
17293	// For example:
17294	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17295	Data []*InstanceGroupManagersScopedListWarningData `json:"data,omitempty"`
17296
17297	// Message: [Output Only] A human-readable description of the warning
17298	// code.
17299	Message string `json:"message,omitempty"`
17300
17301	// ForceSendFields is a list of field names (e.g. "Code") to
17302	// unconditionally include in API requests. By default, fields with
17303	// empty values are omitted from API requests. However, any non-pointer,
17304	// non-interface field appearing in ForceSendFields will be sent to the
17305	// server regardless of whether the field is empty or not. This may be
17306	// used to include empty fields in Patch requests.
17307	ForceSendFields []string `json:"-"`
17308
17309	// NullFields is a list of field names (e.g. "Code") to include in API
17310	// requests with the JSON null value. By default, fields with empty
17311	// values are omitted from API requests. However, any field with an
17312	// empty value appearing in NullFields will be sent to the server as
17313	// null. It is an error if a field in this list has a non-empty value.
17314	// This may be used to include null fields in Patch requests.
17315	NullFields []string `json:"-"`
17316}
17317
17318func (s *InstanceGroupManagersScopedListWarning) MarshalJSON() ([]byte, error) {
17319	type NoMethod InstanceGroupManagersScopedListWarning
17320	raw := NoMethod(*s)
17321	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17322}
17323
17324type InstanceGroupManagersScopedListWarningData struct {
17325	// Key: [Output Only] A key that provides more detail on the warning
17326	// being returned. For example, for warnings where there are no results
17327	// in a list request for a particular zone, this key might be scope and
17328	// the key value might be the zone name. Other examples might be a key
17329	// indicating a deprecated resource and a suggested replacement, or a
17330	// warning about invalid network settings (for example, if an instance
17331	// attempts to perform IP forwarding but is not enabled for IP
17332	// forwarding).
17333	Key string `json:"key,omitempty"`
17334
17335	// Value: [Output Only] A warning data value corresponding to the key.
17336	Value string `json:"value,omitempty"`
17337
17338	// ForceSendFields is a list of field names (e.g. "Key") to
17339	// unconditionally include in API requests. By default, fields with
17340	// empty values are omitted from API requests. However, any non-pointer,
17341	// non-interface field appearing in ForceSendFields will be sent to the
17342	// server regardless of whether the field is empty or not. This may be
17343	// used to include empty fields in Patch requests.
17344	ForceSendFields []string `json:"-"`
17345
17346	// NullFields is a list of field names (e.g. "Key") to include in API
17347	// requests with the JSON null value. By default, fields with empty
17348	// values are omitted from API requests. However, any field with an
17349	// empty value appearing in NullFields will be sent to the server as
17350	// null. It is an error if a field in this list has a non-empty value.
17351	// This may be used to include null fields in Patch requests.
17352	NullFields []string `json:"-"`
17353}
17354
17355func (s *InstanceGroupManagersScopedListWarningData) MarshalJSON() ([]byte, error) {
17356	type NoMethod InstanceGroupManagersScopedListWarningData
17357	raw := NoMethod(*s)
17358	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17359}
17360
17361type InstanceGroupManagersSetInstanceTemplateRequest struct {
17362	// InstanceTemplate: The URL of the instance template that is specified
17363	// for this managed instance group. The group uses this template to
17364	// create all new instances in the managed instance group. The templates
17365	// for existing instances in the group do not change unless you run
17366	// recreateInstances, run applyUpdatesToInstances, or set the group's
17367	// updatePolicy.type to PROACTIVE.
17368	InstanceTemplate string `json:"instanceTemplate,omitempty"`
17369
17370	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
17371	// unconditionally include in API requests. By default, fields with
17372	// empty values are omitted from API requests. However, any non-pointer,
17373	// non-interface field appearing in ForceSendFields will be sent to the
17374	// server regardless of whether the field is empty or not. This may be
17375	// used to include empty fields in Patch requests.
17376	ForceSendFields []string `json:"-"`
17377
17378	// NullFields is a list of field names (e.g. "InstanceTemplate") to
17379	// include in API requests with the JSON null value. By default, fields
17380	// with empty values are omitted from API requests. However, any field
17381	// with an empty value appearing in NullFields will be sent to the
17382	// server as null. It is an error if a field in this list has a
17383	// non-empty value. This may be used to include null fields in Patch
17384	// requests.
17385	NullFields []string `json:"-"`
17386}
17387
17388func (s *InstanceGroupManagersSetInstanceTemplateRequest) MarshalJSON() ([]byte, error) {
17389	type NoMethod InstanceGroupManagersSetInstanceTemplateRequest
17390	raw := NoMethod(*s)
17391	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17392}
17393
17394type InstanceGroupManagersSetTargetPoolsRequest struct {
17395	// Fingerprint: The fingerprint of the target pools information. Use
17396	// this optional property to prevent conflicts when multiple users
17397	// change the target pools settings concurrently. Obtain the fingerprint
17398	// with the instanceGroupManagers.get method. Then, include the
17399	// fingerprint in your request to ensure that you do not overwrite
17400	// changes that were applied from another concurrent request.
17401	Fingerprint string `json:"fingerprint,omitempty"`
17402
17403	// TargetPools: The list of target pool URLs that instances in this
17404	// managed instance group belong to. The managed instance group applies
17405	// these target pools to all of the instances in the group. Existing
17406	// instances and new instances in the group all receive these target
17407	// pool settings.
17408	TargetPools []string `json:"targetPools,omitempty"`
17409
17410	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
17411	// unconditionally include in API requests. By default, fields with
17412	// empty values are omitted from API requests. However, any non-pointer,
17413	// non-interface field appearing in ForceSendFields will be sent to the
17414	// server regardless of whether the field is empty or not. This may be
17415	// used to include empty fields in Patch requests.
17416	ForceSendFields []string `json:"-"`
17417
17418	// NullFields is a list of field names (e.g. "Fingerprint") to include
17419	// in API requests with the JSON null value. By default, fields with
17420	// empty values are omitted from API requests. However, any field with
17421	// an empty value appearing in NullFields will be sent to the server as
17422	// null. It is an error if a field in this list has a non-empty value.
17423	// This may be used to include null fields in Patch requests.
17424	NullFields []string `json:"-"`
17425}
17426
17427func (s *InstanceGroupManagersSetTargetPoolsRequest) MarshalJSON() ([]byte, error) {
17428	type NoMethod InstanceGroupManagersSetTargetPoolsRequest
17429	raw := NoMethod(*s)
17430	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17431}
17432
17433// InstanceGroupManagersUpdatePerInstanceConfigsReq:
17434// InstanceGroupManagers.updatePerInstanceConfigs
17435type InstanceGroupManagersUpdatePerInstanceConfigsReq struct {
17436	// PerInstanceConfigs: The list of per-instance configs to insert or
17437	// patch on this managed instance group.
17438	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
17439
17440	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
17441	// to unconditionally include in API requests. By default, fields with
17442	// empty values are omitted from API requests. However, any non-pointer,
17443	// non-interface field appearing in ForceSendFields will be sent to the
17444	// server regardless of whether the field is empty or not. This may be
17445	// used to include empty fields in Patch requests.
17446	ForceSendFields []string `json:"-"`
17447
17448	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
17449	// include in API requests with the JSON null value. By default, fields
17450	// with empty values are omitted from API requests. However, any field
17451	// with an empty value appearing in NullFields will be sent to the
17452	// server as null. It is an error if a field in this list has a
17453	// non-empty value. This may be used to include null fields in Patch
17454	// requests.
17455	NullFields []string `json:"-"`
17456}
17457
17458func (s *InstanceGroupManagersUpdatePerInstanceConfigsReq) MarshalJSON() ([]byte, error) {
17459	type NoMethod InstanceGroupManagersUpdatePerInstanceConfigsReq
17460	raw := NoMethod(*s)
17461	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17462}
17463
17464type InstanceGroupsAddInstancesRequest struct {
17465	// Instances: The list of instances to add to the instance group.
17466	Instances []*InstanceReference `json:"instances,omitempty"`
17467
17468	// ForceSendFields is a list of field names (e.g. "Instances") to
17469	// unconditionally include in API requests. By default, fields with
17470	// empty values are omitted from API requests. However, any non-pointer,
17471	// non-interface field appearing in ForceSendFields will be sent to the
17472	// server regardless of whether the field is empty or not. This may be
17473	// used to include empty fields in Patch requests.
17474	ForceSendFields []string `json:"-"`
17475
17476	// NullFields is a list of field names (e.g. "Instances") to include in
17477	// API requests with the JSON null value. By default, fields with empty
17478	// values are omitted from API requests. However, any field with an
17479	// empty value appearing in NullFields will be sent to the server as
17480	// null. It is an error if a field in this list has a non-empty value.
17481	// This may be used to include null fields in Patch requests.
17482	NullFields []string `json:"-"`
17483}
17484
17485func (s *InstanceGroupsAddInstancesRequest) MarshalJSON() ([]byte, error) {
17486	type NoMethod InstanceGroupsAddInstancesRequest
17487	raw := NoMethod(*s)
17488	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17489}
17490
17491type InstanceGroupsListInstances struct {
17492	// Id: [Output Only] Unique identifier for the resource; defined by the
17493	// server.
17494	Id string `json:"id,omitempty"`
17495
17496	// Items: A list of InstanceWithNamedPorts resources.
17497	Items []*InstanceWithNamedPorts `json:"items,omitempty"`
17498
17499	// Kind: [Output Only] The resource type, which is always
17500	// compute#instanceGroupsListInstances for the list of instances in the
17501	// specified instance group.
17502	Kind string `json:"kind,omitempty"`
17503
17504	// NextPageToken: [Output Only] This token allows you to get the next
17505	// page of results for list requests. If the number of results is larger
17506	// than maxResults, use the nextPageToken as a value for the query
17507	// parameter pageToken in the next list request. Subsequent list
17508	// requests will have their own nextPageToken to continue paging through
17509	// the results.
17510	NextPageToken string `json:"nextPageToken,omitempty"`
17511
17512	// SelfLink: [Output Only] Server-defined URL for this resource.
17513	SelfLink string `json:"selfLink,omitempty"`
17514
17515	// Warning: [Output Only] Informational warning message.
17516	Warning *InstanceGroupsListInstancesWarning `json:"warning,omitempty"`
17517
17518	// ServerResponse contains the HTTP response code and headers from the
17519	// server.
17520	googleapi.ServerResponse `json:"-"`
17521
17522	// ForceSendFields is a list of field names (e.g. "Id") to
17523	// unconditionally include in API requests. By default, fields with
17524	// empty values are omitted from API requests. However, any non-pointer,
17525	// non-interface field appearing in ForceSendFields will be sent to the
17526	// server regardless of whether the field is empty or not. This may be
17527	// used to include empty fields in Patch requests.
17528	ForceSendFields []string `json:"-"`
17529
17530	// NullFields is a list of field names (e.g. "Id") to include in API
17531	// requests with the JSON null value. By default, fields with empty
17532	// values are omitted from API requests. However, any field with an
17533	// empty value appearing in NullFields will be sent to the server as
17534	// null. It is an error if a field in this list has a non-empty value.
17535	// This may be used to include null fields in Patch requests.
17536	NullFields []string `json:"-"`
17537}
17538
17539func (s *InstanceGroupsListInstances) MarshalJSON() ([]byte, error) {
17540	type NoMethod InstanceGroupsListInstances
17541	raw := NoMethod(*s)
17542	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17543}
17544
17545// InstanceGroupsListInstancesWarning: [Output Only] Informational
17546// warning message.
17547type InstanceGroupsListInstancesWarning struct {
17548	// Code: [Output Only] A warning code, if applicable. For example,
17549	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17550	// the response.
17551	//
17552	// Possible values:
17553	//   "CLEANUP_FAILED"
17554	//   "DEPRECATED_RESOURCE_USED"
17555	//   "DEPRECATED_TYPE_USED"
17556	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17557	//   "EXPERIMENTAL_TYPE_USED"
17558	//   "EXTERNAL_API_WARNING"
17559	//   "FIELD_VALUE_OVERRIDEN"
17560	//   "INJECTED_KERNELS_DEPRECATED"
17561	//   "LARGE_DEPLOYMENT_WARNING"
17562	//   "MISSING_TYPE_DEPENDENCY"
17563	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17564	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17565	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17566	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17567	//   "NEXT_HOP_NOT_RUNNING"
17568	//   "NOT_CRITICAL_ERROR"
17569	//   "NO_RESULTS_ON_PAGE"
17570	//   "PARTIAL_SUCCESS"
17571	//   "REQUIRED_TOS_AGREEMENT"
17572	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17573	//   "RESOURCE_NOT_DELETED"
17574	//   "SCHEMA_VALIDATION_IGNORED"
17575	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17576	//   "UNDECLARED_PROPERTIES"
17577	//   "UNREACHABLE"
17578	Code string `json:"code,omitempty"`
17579
17580	// Data: [Output Only] Metadata about this warning in key: value format.
17581	// For example:
17582	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17583	Data []*InstanceGroupsListInstancesWarningData `json:"data,omitempty"`
17584
17585	// Message: [Output Only] A human-readable description of the warning
17586	// code.
17587	Message string `json:"message,omitempty"`
17588
17589	// ForceSendFields is a list of field names (e.g. "Code") to
17590	// unconditionally include in API requests. By default, fields with
17591	// empty values are omitted from API requests. However, any non-pointer,
17592	// non-interface field appearing in ForceSendFields will be sent to the
17593	// server regardless of whether the field is empty or not. This may be
17594	// used to include empty fields in Patch requests.
17595	ForceSendFields []string `json:"-"`
17596
17597	// NullFields is a list of field names (e.g. "Code") to include in API
17598	// requests with the JSON null value. By default, fields with empty
17599	// values are omitted from API requests. However, any field with an
17600	// empty value appearing in NullFields will be sent to the server as
17601	// null. It is an error if a field in this list has a non-empty value.
17602	// This may be used to include null fields in Patch requests.
17603	NullFields []string `json:"-"`
17604}
17605
17606func (s *InstanceGroupsListInstancesWarning) MarshalJSON() ([]byte, error) {
17607	type NoMethod InstanceGroupsListInstancesWarning
17608	raw := NoMethod(*s)
17609	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17610}
17611
17612type InstanceGroupsListInstancesWarningData struct {
17613	// Key: [Output Only] A key that provides more detail on the warning
17614	// being returned. For example, for warnings where there are no results
17615	// in a list request for a particular zone, this key might be scope and
17616	// the key value might be the zone name. Other examples might be a key
17617	// indicating a deprecated resource and a suggested replacement, or a
17618	// warning about invalid network settings (for example, if an instance
17619	// attempts to perform IP forwarding but is not enabled for IP
17620	// forwarding).
17621	Key string `json:"key,omitempty"`
17622
17623	// Value: [Output Only] A warning data value corresponding to the key.
17624	Value string `json:"value,omitempty"`
17625
17626	// ForceSendFields is a list of field names (e.g. "Key") to
17627	// unconditionally include in API requests. By default, fields with
17628	// empty values are omitted from API requests. However, any non-pointer,
17629	// non-interface field appearing in ForceSendFields will be sent to the
17630	// server regardless of whether the field is empty or not. This may be
17631	// used to include empty fields in Patch requests.
17632	ForceSendFields []string `json:"-"`
17633
17634	// NullFields is a list of field names (e.g. "Key") to include in API
17635	// requests with the JSON null value. By default, fields with empty
17636	// values are omitted from API requests. However, any field with an
17637	// empty value appearing in NullFields will be sent to the server as
17638	// null. It is an error if a field in this list has a non-empty value.
17639	// This may be used to include null fields in Patch requests.
17640	NullFields []string `json:"-"`
17641}
17642
17643func (s *InstanceGroupsListInstancesWarningData) MarshalJSON() ([]byte, error) {
17644	type NoMethod InstanceGroupsListInstancesWarningData
17645	raw := NoMethod(*s)
17646	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17647}
17648
17649type InstanceGroupsListInstancesRequest struct {
17650	// InstanceState: A filter for the state of the instances in the
17651	// instance group. Valid options are ALL or RUNNING. If you do not
17652	// specify this parameter the list includes all instances regardless of
17653	// their state.
17654	//
17655	// Possible values:
17656	//   "ALL"
17657	//   "RUNNING"
17658	InstanceState string `json:"instanceState,omitempty"`
17659
17660	// ForceSendFields is a list of field names (e.g. "InstanceState") to
17661	// unconditionally include in API requests. By default, fields with
17662	// empty values are omitted from API requests. However, any non-pointer,
17663	// non-interface field appearing in ForceSendFields will be sent to the
17664	// server regardless of whether the field is empty or not. This may be
17665	// used to include empty fields in Patch requests.
17666	ForceSendFields []string `json:"-"`
17667
17668	// NullFields is a list of field names (e.g. "InstanceState") to include
17669	// in API requests with the JSON null value. By default, fields with
17670	// empty values are omitted from API requests. However, any field with
17671	// an empty value appearing in NullFields will be sent to the server as
17672	// null. It is an error if a field in this list has a non-empty value.
17673	// This may be used to include null fields in Patch requests.
17674	NullFields []string `json:"-"`
17675}
17676
17677func (s *InstanceGroupsListInstancesRequest) MarshalJSON() ([]byte, error) {
17678	type NoMethod InstanceGroupsListInstancesRequest
17679	raw := NoMethod(*s)
17680	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17681}
17682
17683type InstanceGroupsRemoveInstancesRequest struct {
17684	// Instances: The list of instances to remove from the instance group.
17685	Instances []*InstanceReference `json:"instances,omitempty"`
17686
17687	// ForceSendFields is a list of field names (e.g. "Instances") to
17688	// unconditionally include in API requests. By default, fields with
17689	// empty values are omitted from API requests. However, any non-pointer,
17690	// non-interface field appearing in ForceSendFields will be sent to the
17691	// server regardless of whether the field is empty or not. This may be
17692	// used to include empty fields in Patch requests.
17693	ForceSendFields []string `json:"-"`
17694
17695	// NullFields is a list of field names (e.g. "Instances") to include in
17696	// API requests with the JSON null value. By default, fields with empty
17697	// values are omitted from API requests. However, any field with an
17698	// empty value appearing in NullFields will be sent to the server as
17699	// null. It is an error if a field in this list has a non-empty value.
17700	// This may be used to include null fields in Patch requests.
17701	NullFields []string `json:"-"`
17702}
17703
17704func (s *InstanceGroupsRemoveInstancesRequest) MarshalJSON() ([]byte, error) {
17705	type NoMethod InstanceGroupsRemoveInstancesRequest
17706	raw := NoMethod(*s)
17707	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17708}
17709
17710type InstanceGroupsScopedList struct {
17711	// InstanceGroups: [Output Only] The list of instance groups that are
17712	// contained in this scope.
17713	InstanceGroups []*InstanceGroup `json:"instanceGroups,omitempty"`
17714
17715	// Warning: [Output Only] An informational warning that replaces the
17716	// list of instance groups when the list is empty.
17717	Warning *InstanceGroupsScopedListWarning `json:"warning,omitempty"`
17718
17719	// ForceSendFields is a list of field names (e.g. "InstanceGroups") to
17720	// unconditionally include in API requests. By default, fields with
17721	// empty values are omitted from API requests. However, any non-pointer,
17722	// non-interface field appearing in ForceSendFields will be sent to the
17723	// server regardless of whether the field is empty or not. This may be
17724	// used to include empty fields in Patch requests.
17725	ForceSendFields []string `json:"-"`
17726
17727	// NullFields is a list of field names (e.g. "InstanceGroups") to
17728	// include in API requests with the JSON null value. By default, fields
17729	// with empty values are omitted from API requests. However, any field
17730	// with an empty value appearing in NullFields will be sent to the
17731	// server as null. It is an error if a field in this list has a
17732	// non-empty value. This may be used to include null fields in Patch
17733	// requests.
17734	NullFields []string `json:"-"`
17735}
17736
17737func (s *InstanceGroupsScopedList) MarshalJSON() ([]byte, error) {
17738	type NoMethod InstanceGroupsScopedList
17739	raw := NoMethod(*s)
17740	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17741}
17742
17743// InstanceGroupsScopedListWarning: [Output Only] An informational
17744// warning that replaces the list of instance groups when the list is
17745// empty.
17746type InstanceGroupsScopedListWarning struct {
17747	// Code: [Output Only] A warning code, if applicable. For example,
17748	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17749	// the response.
17750	//
17751	// Possible values:
17752	//   "CLEANUP_FAILED"
17753	//   "DEPRECATED_RESOURCE_USED"
17754	//   "DEPRECATED_TYPE_USED"
17755	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17756	//   "EXPERIMENTAL_TYPE_USED"
17757	//   "EXTERNAL_API_WARNING"
17758	//   "FIELD_VALUE_OVERRIDEN"
17759	//   "INJECTED_KERNELS_DEPRECATED"
17760	//   "LARGE_DEPLOYMENT_WARNING"
17761	//   "MISSING_TYPE_DEPENDENCY"
17762	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17763	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17764	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17765	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17766	//   "NEXT_HOP_NOT_RUNNING"
17767	//   "NOT_CRITICAL_ERROR"
17768	//   "NO_RESULTS_ON_PAGE"
17769	//   "PARTIAL_SUCCESS"
17770	//   "REQUIRED_TOS_AGREEMENT"
17771	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17772	//   "RESOURCE_NOT_DELETED"
17773	//   "SCHEMA_VALIDATION_IGNORED"
17774	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17775	//   "UNDECLARED_PROPERTIES"
17776	//   "UNREACHABLE"
17777	Code string `json:"code,omitempty"`
17778
17779	// Data: [Output Only] Metadata about this warning in key: value format.
17780	// For example:
17781	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17782	Data []*InstanceGroupsScopedListWarningData `json:"data,omitempty"`
17783
17784	// Message: [Output Only] A human-readable description of the warning
17785	// code.
17786	Message string `json:"message,omitempty"`
17787
17788	// ForceSendFields is a list of field names (e.g. "Code") to
17789	// unconditionally include in API requests. By default, fields with
17790	// empty values are omitted from API requests. However, any non-pointer,
17791	// non-interface field appearing in ForceSendFields will be sent to the
17792	// server regardless of whether the field is empty or not. This may be
17793	// used to include empty fields in Patch requests.
17794	ForceSendFields []string `json:"-"`
17795
17796	// NullFields is a list of field names (e.g. "Code") to include in API
17797	// requests with the JSON null value. By default, fields with empty
17798	// values are omitted from API requests. However, any field with an
17799	// empty value appearing in NullFields will be sent to the server as
17800	// null. It is an error if a field in this list has a non-empty value.
17801	// This may be used to include null fields in Patch requests.
17802	NullFields []string `json:"-"`
17803}
17804
17805func (s *InstanceGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
17806	type NoMethod InstanceGroupsScopedListWarning
17807	raw := NoMethod(*s)
17808	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17809}
17810
17811type InstanceGroupsScopedListWarningData struct {
17812	// Key: [Output Only] A key that provides more detail on the warning
17813	// being returned. For example, for warnings where there are no results
17814	// in a list request for a particular zone, this key might be scope and
17815	// the key value might be the zone name. Other examples might be a key
17816	// indicating a deprecated resource and a suggested replacement, or a
17817	// warning about invalid network settings (for example, if an instance
17818	// attempts to perform IP forwarding but is not enabled for IP
17819	// forwarding).
17820	Key string `json:"key,omitempty"`
17821
17822	// Value: [Output Only] A warning data value corresponding to the key.
17823	Value string `json:"value,omitempty"`
17824
17825	// ForceSendFields is a list of field names (e.g. "Key") to
17826	// unconditionally include in API requests. By default, fields with
17827	// empty values are omitted from API requests. However, any non-pointer,
17828	// non-interface field appearing in ForceSendFields will be sent to the
17829	// server regardless of whether the field is empty or not. This may be
17830	// used to include empty fields in Patch requests.
17831	ForceSendFields []string `json:"-"`
17832
17833	// NullFields is a list of field names (e.g. "Key") to include in API
17834	// requests with the JSON null value. By default, fields with empty
17835	// values are omitted from API requests. However, any field with an
17836	// empty value appearing in NullFields will be sent to the server as
17837	// null. It is an error if a field in this list has a non-empty value.
17838	// This may be used to include null fields in Patch requests.
17839	NullFields []string `json:"-"`
17840}
17841
17842func (s *InstanceGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
17843	type NoMethod InstanceGroupsScopedListWarningData
17844	raw := NoMethod(*s)
17845	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17846}
17847
17848type InstanceGroupsSetNamedPortsRequest struct {
17849	// Fingerprint: The fingerprint of the named ports information for this
17850	// instance group. Use this optional property to prevent conflicts when
17851	// multiple users change the named ports settings concurrently. Obtain
17852	// the fingerprint with the instanceGroups.get method. Then, include the
17853	// fingerprint in your request to ensure that you do not overwrite
17854	// changes that were applied from another concurrent request. A request
17855	// with an incorrect fingerprint will fail with error 412
17856	// conditionNotMet.
17857	Fingerprint string `json:"fingerprint,omitempty"`
17858
17859	// NamedPorts: The list of named ports to set for this instance group.
17860	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
17861
17862	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
17863	// unconditionally include in API requests. By default, fields with
17864	// empty values are omitted from API requests. However, any non-pointer,
17865	// non-interface field appearing in ForceSendFields will be sent to the
17866	// server regardless of whether the field is empty or not. This may be
17867	// used to include empty fields in Patch requests.
17868	ForceSendFields []string `json:"-"`
17869
17870	// NullFields is a list of field names (e.g. "Fingerprint") to include
17871	// in API requests with the JSON null value. By default, fields with
17872	// empty values are omitted from API requests. However, any field with
17873	// an empty value appearing in NullFields will be sent to the server as
17874	// null. It is an error if a field in this list has a non-empty value.
17875	// This may be used to include null fields in Patch requests.
17876	NullFields []string `json:"-"`
17877}
17878
17879func (s *InstanceGroupsSetNamedPortsRequest) MarshalJSON() ([]byte, error) {
17880	type NoMethod InstanceGroupsSetNamedPortsRequest
17881	raw := NoMethod(*s)
17882	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17883}
17884
17885// InstanceList: Contains a list of instances.
17886type InstanceList struct {
17887	// Id: [Output Only] Unique identifier for the resource; defined by the
17888	// server.
17889	Id string `json:"id,omitempty"`
17890
17891	// Items: A list of Instance resources.
17892	Items []*Instance `json:"items,omitempty"`
17893
17894	// Kind: [Output Only] Type of resource. Always compute#instanceList for
17895	// lists of Instance resources.
17896	Kind string `json:"kind,omitempty"`
17897
17898	// NextPageToken: [Output Only] This token allows you to get the next
17899	// page of results for list requests. If the number of results is larger
17900	// than maxResults, use the nextPageToken as a value for the query
17901	// parameter pageToken in the next list request. Subsequent list
17902	// requests will have their own nextPageToken to continue paging through
17903	// the results.
17904	NextPageToken string `json:"nextPageToken,omitempty"`
17905
17906	// SelfLink: [Output Only] Server-defined URL for this resource.
17907	SelfLink string `json:"selfLink,omitempty"`
17908
17909	// Warning: [Output Only] Informational warning message.
17910	Warning *InstanceListWarning `json:"warning,omitempty"`
17911
17912	// ServerResponse contains the HTTP response code and headers from the
17913	// server.
17914	googleapi.ServerResponse `json:"-"`
17915
17916	// ForceSendFields is a list of field names (e.g. "Id") to
17917	// unconditionally include in API requests. By default, fields with
17918	// empty values are omitted from API requests. However, any non-pointer,
17919	// non-interface field appearing in ForceSendFields will be sent to the
17920	// server regardless of whether the field is empty or not. This may be
17921	// used to include empty fields in Patch requests.
17922	ForceSendFields []string `json:"-"`
17923
17924	// NullFields is a list of field names (e.g. "Id") to include in API
17925	// requests with the JSON null value. By default, fields with empty
17926	// values are omitted from API requests. However, any field with an
17927	// empty value appearing in NullFields will be sent to the server as
17928	// null. It is an error if a field in this list has a non-empty value.
17929	// This may be used to include null fields in Patch requests.
17930	NullFields []string `json:"-"`
17931}
17932
17933func (s *InstanceList) MarshalJSON() ([]byte, error) {
17934	type NoMethod InstanceList
17935	raw := NoMethod(*s)
17936	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17937}
17938
17939// InstanceListWarning: [Output Only] Informational warning message.
17940type InstanceListWarning struct {
17941	// Code: [Output Only] A warning code, if applicable. For example,
17942	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17943	// the response.
17944	//
17945	// Possible values:
17946	//   "CLEANUP_FAILED"
17947	//   "DEPRECATED_RESOURCE_USED"
17948	//   "DEPRECATED_TYPE_USED"
17949	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17950	//   "EXPERIMENTAL_TYPE_USED"
17951	//   "EXTERNAL_API_WARNING"
17952	//   "FIELD_VALUE_OVERRIDEN"
17953	//   "INJECTED_KERNELS_DEPRECATED"
17954	//   "LARGE_DEPLOYMENT_WARNING"
17955	//   "MISSING_TYPE_DEPENDENCY"
17956	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17957	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17958	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17959	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17960	//   "NEXT_HOP_NOT_RUNNING"
17961	//   "NOT_CRITICAL_ERROR"
17962	//   "NO_RESULTS_ON_PAGE"
17963	//   "PARTIAL_SUCCESS"
17964	//   "REQUIRED_TOS_AGREEMENT"
17965	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17966	//   "RESOURCE_NOT_DELETED"
17967	//   "SCHEMA_VALIDATION_IGNORED"
17968	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17969	//   "UNDECLARED_PROPERTIES"
17970	//   "UNREACHABLE"
17971	Code string `json:"code,omitempty"`
17972
17973	// Data: [Output Only] Metadata about this warning in key: value format.
17974	// For example:
17975	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17976	Data []*InstanceListWarningData `json:"data,omitempty"`
17977
17978	// Message: [Output Only] A human-readable description of the warning
17979	// code.
17980	Message string `json:"message,omitempty"`
17981
17982	// ForceSendFields is a list of field names (e.g. "Code") to
17983	// unconditionally include in API requests. By default, fields with
17984	// empty values are omitted from API requests. However, any non-pointer,
17985	// non-interface field appearing in ForceSendFields will be sent to the
17986	// server regardless of whether the field is empty or not. This may be
17987	// used to include empty fields in Patch requests.
17988	ForceSendFields []string `json:"-"`
17989
17990	// NullFields is a list of field names (e.g. "Code") to include in API
17991	// requests with the JSON null value. By default, fields with empty
17992	// values are omitted from API requests. However, any field with an
17993	// empty value appearing in NullFields will be sent to the server as
17994	// null. It is an error if a field in this list has a non-empty value.
17995	// This may be used to include null fields in Patch requests.
17996	NullFields []string `json:"-"`
17997}
17998
17999func (s *InstanceListWarning) MarshalJSON() ([]byte, error) {
18000	type NoMethod InstanceListWarning
18001	raw := NoMethod(*s)
18002	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18003}
18004
18005type InstanceListWarningData struct {
18006	// Key: [Output Only] A key that provides more detail on the warning
18007	// being returned. For example, for warnings where there are no results
18008	// in a list request for a particular zone, this key might be scope and
18009	// the key value might be the zone name. Other examples might be a key
18010	// indicating a deprecated resource and a suggested replacement, or a
18011	// warning about invalid network settings (for example, if an instance
18012	// attempts to perform IP forwarding but is not enabled for IP
18013	// forwarding).
18014	Key string `json:"key,omitempty"`
18015
18016	// Value: [Output Only] A warning data value corresponding to the key.
18017	Value string `json:"value,omitempty"`
18018
18019	// ForceSendFields is a list of field names (e.g. "Key") to
18020	// unconditionally include in API requests. By default, fields with
18021	// empty values are omitted from API requests. However, any non-pointer,
18022	// non-interface field appearing in ForceSendFields will be sent to the
18023	// server regardless of whether the field is empty or not. This may be
18024	// used to include empty fields in Patch requests.
18025	ForceSendFields []string `json:"-"`
18026
18027	// NullFields is a list of field names (e.g. "Key") to include in API
18028	// requests with the JSON null value. By default, fields with empty
18029	// values are omitted from API requests. However, any field with an
18030	// empty value appearing in NullFields will be sent to the server as
18031	// null. It is an error if a field in this list has a non-empty value.
18032	// This may be used to include null fields in Patch requests.
18033	NullFields []string `json:"-"`
18034}
18035
18036func (s *InstanceListWarningData) MarshalJSON() ([]byte, error) {
18037	type NoMethod InstanceListWarningData
18038	raw := NoMethod(*s)
18039	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18040}
18041
18042// InstanceListReferrers: Contains a list of instance referrers.
18043type InstanceListReferrers struct {
18044	// Id: [Output Only] Unique identifier for the resource; defined by the
18045	// server.
18046	Id string `json:"id,omitempty"`
18047
18048	// Items: A list of Reference resources.
18049	Items []*Reference `json:"items,omitempty"`
18050
18051	// Kind: [Output Only] Type of resource. Always
18052	// compute#instanceListReferrers for lists of Instance referrers.
18053	Kind string `json:"kind,omitempty"`
18054
18055	// NextPageToken: [Output Only] This token allows you to get the next
18056	// page of results for list requests. If the number of results is larger
18057	// than maxResults, use the nextPageToken as a value for the query
18058	// parameter pageToken in the next list request. Subsequent list
18059	// requests will have their own nextPageToken to continue paging through
18060	// the results.
18061	NextPageToken string `json:"nextPageToken,omitempty"`
18062
18063	// SelfLink: [Output Only] Server-defined URL for this resource.
18064	SelfLink string `json:"selfLink,omitempty"`
18065
18066	// Warning: [Output Only] Informational warning message.
18067	Warning *InstanceListReferrersWarning `json:"warning,omitempty"`
18068
18069	// ServerResponse contains the HTTP response code and headers from the
18070	// server.
18071	googleapi.ServerResponse `json:"-"`
18072
18073	// ForceSendFields is a list of field names (e.g. "Id") to
18074	// unconditionally include in API requests. By default, fields with
18075	// empty values are omitted from API requests. However, any non-pointer,
18076	// non-interface field appearing in ForceSendFields will be sent to the
18077	// server regardless of whether the field is empty or not. This may be
18078	// used to include empty fields in Patch requests.
18079	ForceSendFields []string `json:"-"`
18080
18081	// NullFields is a list of field names (e.g. "Id") to include in API
18082	// requests with the JSON null value. By default, fields with empty
18083	// values are omitted from API requests. However, any field with an
18084	// empty value appearing in NullFields will be sent to the server as
18085	// null. It is an error if a field in this list has a non-empty value.
18086	// This may be used to include null fields in Patch requests.
18087	NullFields []string `json:"-"`
18088}
18089
18090func (s *InstanceListReferrers) MarshalJSON() ([]byte, error) {
18091	type NoMethod InstanceListReferrers
18092	raw := NoMethod(*s)
18093	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18094}
18095
18096// InstanceListReferrersWarning: [Output Only] Informational warning
18097// message.
18098type InstanceListReferrersWarning struct {
18099	// Code: [Output Only] A warning code, if applicable. For example,
18100	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18101	// the response.
18102	//
18103	// Possible values:
18104	//   "CLEANUP_FAILED"
18105	//   "DEPRECATED_RESOURCE_USED"
18106	//   "DEPRECATED_TYPE_USED"
18107	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18108	//   "EXPERIMENTAL_TYPE_USED"
18109	//   "EXTERNAL_API_WARNING"
18110	//   "FIELD_VALUE_OVERRIDEN"
18111	//   "INJECTED_KERNELS_DEPRECATED"
18112	//   "LARGE_DEPLOYMENT_WARNING"
18113	//   "MISSING_TYPE_DEPENDENCY"
18114	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18115	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18116	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18117	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18118	//   "NEXT_HOP_NOT_RUNNING"
18119	//   "NOT_CRITICAL_ERROR"
18120	//   "NO_RESULTS_ON_PAGE"
18121	//   "PARTIAL_SUCCESS"
18122	//   "REQUIRED_TOS_AGREEMENT"
18123	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18124	//   "RESOURCE_NOT_DELETED"
18125	//   "SCHEMA_VALIDATION_IGNORED"
18126	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18127	//   "UNDECLARED_PROPERTIES"
18128	//   "UNREACHABLE"
18129	Code string `json:"code,omitempty"`
18130
18131	// Data: [Output Only] Metadata about this warning in key: value format.
18132	// For example:
18133	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18134	Data []*InstanceListReferrersWarningData `json:"data,omitempty"`
18135
18136	// Message: [Output Only] A human-readable description of the warning
18137	// code.
18138	Message string `json:"message,omitempty"`
18139
18140	// ForceSendFields is a list of field names (e.g. "Code") to
18141	// unconditionally include in API requests. By default, fields with
18142	// empty values are omitted from API requests. However, any non-pointer,
18143	// non-interface field appearing in ForceSendFields will be sent to the
18144	// server regardless of whether the field is empty or not. This may be
18145	// used to include empty fields in Patch requests.
18146	ForceSendFields []string `json:"-"`
18147
18148	// NullFields is a list of field names (e.g. "Code") to include in API
18149	// requests with the JSON null value. By default, fields with empty
18150	// values are omitted from API requests. However, any field with an
18151	// empty value appearing in NullFields will be sent to the server as
18152	// null. It is an error if a field in this list has a non-empty value.
18153	// This may be used to include null fields in Patch requests.
18154	NullFields []string `json:"-"`
18155}
18156
18157func (s *InstanceListReferrersWarning) MarshalJSON() ([]byte, error) {
18158	type NoMethod InstanceListReferrersWarning
18159	raw := NoMethod(*s)
18160	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18161}
18162
18163type InstanceListReferrersWarningData struct {
18164	// Key: [Output Only] A key that provides more detail on the warning
18165	// being returned. For example, for warnings where there are no results
18166	// in a list request for a particular zone, this key might be scope and
18167	// the key value might be the zone name. Other examples might be a key
18168	// indicating a deprecated resource and a suggested replacement, or a
18169	// warning about invalid network settings (for example, if an instance
18170	// attempts to perform IP forwarding but is not enabled for IP
18171	// forwarding).
18172	Key string `json:"key,omitempty"`
18173
18174	// Value: [Output Only] A warning data value corresponding to the key.
18175	Value string `json:"value,omitempty"`
18176
18177	// ForceSendFields is a list of field names (e.g. "Key") to
18178	// unconditionally include in API requests. By default, fields with
18179	// empty values are omitted from API requests. However, any non-pointer,
18180	// non-interface field appearing in ForceSendFields will be sent to the
18181	// server regardless of whether the field is empty or not. This may be
18182	// used to include empty fields in Patch requests.
18183	ForceSendFields []string `json:"-"`
18184
18185	// NullFields is a list of field names (e.g. "Key") to include in API
18186	// requests with the JSON null value. By default, fields with empty
18187	// values are omitted from API requests. However, any field with an
18188	// empty value appearing in NullFields will be sent to the server as
18189	// null. It is an error if a field in this list has a non-empty value.
18190	// This may be used to include null fields in Patch requests.
18191	NullFields []string `json:"-"`
18192}
18193
18194func (s *InstanceListReferrersWarningData) MarshalJSON() ([]byte, error) {
18195	type NoMethod InstanceListReferrersWarningData
18196	raw := NoMethod(*s)
18197	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18198}
18199
18200type InstanceManagedByIgmError struct {
18201	// Error: [Output Only] Contents of the error.
18202	Error *InstanceManagedByIgmErrorManagedInstanceError `json:"error,omitempty"`
18203
18204	// InstanceActionDetails: [Output Only] Details of the instance action
18205	// that triggered this error. May be null, if the error was not caused
18206	// by an action on an instance. This field is optional.
18207	InstanceActionDetails *InstanceManagedByIgmErrorInstanceActionDetails `json:"instanceActionDetails,omitempty"`
18208
18209	// Timestamp: [Output Only] The time that this error occurred. This
18210	// value is in RFC3339 text format.
18211	Timestamp string `json:"timestamp,omitempty"`
18212
18213	// ForceSendFields is a list of field names (e.g. "Error") to
18214	// unconditionally include in API requests. By default, fields with
18215	// empty values are omitted from API requests. However, any non-pointer,
18216	// non-interface field appearing in ForceSendFields will be sent to the
18217	// server regardless of whether the field is empty or not. This may be
18218	// used to include empty fields in Patch requests.
18219	ForceSendFields []string `json:"-"`
18220
18221	// NullFields is a list of field names (e.g. "Error") to include in API
18222	// requests with the JSON null value. By default, fields with empty
18223	// values are omitted from API requests. However, any field with an
18224	// empty value appearing in NullFields will be sent to the server as
18225	// null. It is an error if a field in this list has a non-empty value.
18226	// This may be used to include null fields in Patch requests.
18227	NullFields []string `json:"-"`
18228}
18229
18230func (s *InstanceManagedByIgmError) MarshalJSON() ([]byte, error) {
18231	type NoMethod InstanceManagedByIgmError
18232	raw := NoMethod(*s)
18233	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18234}
18235
18236type InstanceManagedByIgmErrorInstanceActionDetails struct {
18237	// Action: [Output Only] Action that managed instance group was
18238	// executing on the instance when the error occurred. Possible values:
18239	//
18240	// Possible values:
18241	//   "ABANDONING"
18242	//   "CREATING"
18243	//   "CREATING_WITHOUT_RETRIES"
18244	//   "DELETING"
18245	//   "NONE"
18246	//   "RECREATING"
18247	//   "REFRESHING"
18248	//   "RESTARTING"
18249	//   "VERIFYING"
18250	Action string `json:"action,omitempty"`
18251
18252	// Instance: [Output Only] The URL of the instance. The URL can be set
18253	// even if the instance has not yet been created.
18254	Instance string `json:"instance,omitempty"`
18255
18256	// Version: [Output Only] Version this instance was created from, or was
18257	// being created from, but the creation failed. Corresponds to one of
18258	// the versions that were set on the Instance Group Manager resource at
18259	// the time this instance was being created.
18260	Version *ManagedInstanceVersion `json:"version,omitempty"`
18261
18262	// ForceSendFields is a list of field names (e.g. "Action") to
18263	// unconditionally include in API requests. By default, fields with
18264	// empty values are omitted from API requests. However, any non-pointer,
18265	// non-interface field appearing in ForceSendFields will be sent to the
18266	// server regardless of whether the field is empty or not. This may be
18267	// used to include empty fields in Patch requests.
18268	ForceSendFields []string `json:"-"`
18269
18270	// NullFields is a list of field names (e.g. "Action") to include in API
18271	// requests with the JSON null value. By default, fields with empty
18272	// values are omitted from API requests. However, any field with an
18273	// empty value appearing in NullFields will be sent to the server as
18274	// null. It is an error if a field in this list has a non-empty value.
18275	// This may be used to include null fields in Patch requests.
18276	NullFields []string `json:"-"`
18277}
18278
18279func (s *InstanceManagedByIgmErrorInstanceActionDetails) MarshalJSON() ([]byte, error) {
18280	type NoMethod InstanceManagedByIgmErrorInstanceActionDetails
18281	raw := NoMethod(*s)
18282	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18283}
18284
18285type InstanceManagedByIgmErrorManagedInstanceError struct {
18286	// Code: [Output Only] Error code.
18287	Code string `json:"code,omitempty"`
18288
18289	// Message: [Output Only] Error message.
18290	Message string `json:"message,omitempty"`
18291
18292	// ForceSendFields is a list of field names (e.g. "Code") to
18293	// unconditionally include in API requests. By default, fields with
18294	// empty values are omitted from API requests. However, any non-pointer,
18295	// non-interface field appearing in ForceSendFields will be sent to the
18296	// server regardless of whether the field is empty or not. This may be
18297	// used to include empty fields in Patch requests.
18298	ForceSendFields []string `json:"-"`
18299
18300	// NullFields is a list of field names (e.g. "Code") to include in API
18301	// requests with the JSON null value. By default, fields with empty
18302	// values are omitted from API requests. However, any field with an
18303	// empty value appearing in NullFields will be sent to the server as
18304	// null. It is an error if a field in this list has a non-empty value.
18305	// This may be used to include null fields in Patch requests.
18306	NullFields []string `json:"-"`
18307}
18308
18309func (s *InstanceManagedByIgmErrorManagedInstanceError) MarshalJSON() ([]byte, error) {
18310	type NoMethod InstanceManagedByIgmErrorManagedInstanceError
18311	raw := NoMethod(*s)
18312	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18313}
18314
18315type InstanceMoveRequest struct {
18316	// DestinationZone: The URL of the destination zone to move the
18317	// instance. This can be a full or partial URL. For example, the
18318	// following are all valid URLs to a zone:
18319	// - https://www.googleapis.com/compute/v1/projects/project/zones/zone
18320	//
18321	// - projects/project/zones/zone
18322	// - zones/zone
18323	DestinationZone string `json:"destinationZone,omitempty"`
18324
18325	// TargetInstance: The URL of the target instance to move. This can be a
18326	// full or partial URL. For example, the following are all valid URLs to
18327	// an instance:
18328	// -
18329	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
18330	//
18331	// - projects/project/zones/zone/instances/instance
18332	// - zones/zone/instances/instance
18333	TargetInstance string `json:"targetInstance,omitempty"`
18334
18335	// ForceSendFields is a list of field names (e.g. "DestinationZone") to
18336	// unconditionally include in API requests. By default, fields with
18337	// empty values are omitted from API requests. However, any non-pointer,
18338	// non-interface field appearing in ForceSendFields will be sent to the
18339	// server regardless of whether the field is empty or not. This may be
18340	// used to include empty fields in Patch requests.
18341	ForceSendFields []string `json:"-"`
18342
18343	// NullFields is a list of field names (e.g. "DestinationZone") to
18344	// include in API requests with the JSON null value. By default, fields
18345	// with empty values are omitted from API requests. However, any field
18346	// with an empty value appearing in NullFields will be sent to the
18347	// server as null. It is an error if a field in this list has a
18348	// non-empty value. This may be used to include null fields in Patch
18349	// requests.
18350	NullFields []string `json:"-"`
18351}
18352
18353func (s *InstanceMoveRequest) MarshalJSON() ([]byte, error) {
18354	type NoMethod InstanceMoveRequest
18355	raw := NoMethod(*s)
18356	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18357}
18358
18359type InstanceProperties struct {
18360	// AdvancedMachineFeatures: Controls for advanced machine-related
18361	// behavior features.
18362	AdvancedMachineFeatures *AdvancedMachineFeatures `json:"advancedMachineFeatures,omitempty"`
18363
18364	// CanIpForward: Enables instances created based on these properties to
18365	// send packets with source IP addresses other than their own and
18366	// receive packets with destination IP addresses other than their own.
18367	// If these instances will be used as an IP gateway or it will be set as
18368	// the next-hop in a Route resource, specify true. If unsure, leave this
18369	// set to false. See the Enable IP forwarding documentation for more
18370	// information.
18371	CanIpForward bool `json:"canIpForward,omitempty"`
18372
18373	// ConfidentialInstanceConfig: Specifies the Confidential Instance
18374	// options.
18375	ConfidentialInstanceConfig *ConfidentialInstanceConfig `json:"confidentialInstanceConfig,omitempty"`
18376
18377	// Description: An optional text description for the instances that are
18378	// created from these properties.
18379	Description string `json:"description,omitempty"`
18380
18381	// Disks: An array of disks that are associated with the instances that
18382	// are created from these properties.
18383	Disks []*AttachedDisk `json:"disks,omitempty"`
18384
18385	// GuestAccelerators: A list of guest accelerator cards' type and count
18386	// to use for instances created from these properties.
18387	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
18388
18389	// Labels: Labels to apply to instances that are created from these
18390	// properties.
18391	Labels map[string]string `json:"labels,omitempty"`
18392
18393	// MachineType: The machine type to use for instances that are created
18394	// from these properties.
18395	MachineType string `json:"machineType,omitempty"`
18396
18397	// Metadata: The metadata key/value pairs to assign to instances that
18398	// are created from these properties. These pairs can consist of custom
18399	// metadata or predefined keys. See Project and instance metadata for
18400	// more information.
18401	Metadata *Metadata `json:"metadata,omitempty"`
18402
18403	// MinCpuPlatform: Minimum cpu/platform to be used by instances. The
18404	// instance may be scheduled on the specified or newer cpu/platform.
18405	// Applicable values are the friendly names of CPU platforms, such as
18406	// minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy
18407	// Bridge". For more information, read Specifying a Minimum CPU
18408	// Platform.
18409	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
18410
18411	// NetworkInterfaces: An array of network access configurations for this
18412	// interface.
18413	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
18414
18415	// PrivateIpv6GoogleAccess: The private IPv6 google access type for VMs.
18416	// If not specified, use  INHERIT_FROM_SUBNETWORK as default.
18417	//
18418	// Possible values:
18419	//   "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE"
18420	//   "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE"
18421	//   "INHERIT_FROM_SUBNETWORK"
18422	PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"`
18423
18424	// ReservationAffinity: Specifies the reservations that instances can
18425	// consume from.
18426	ReservationAffinity *ReservationAffinity `json:"reservationAffinity,omitempty"`
18427
18428	// ResourcePolicies: Resource policies (names, not ULRs) applied to
18429	// instances created from these properties.
18430	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
18431
18432	// Scheduling: Specifies the scheduling options for the instances that
18433	// are created from these properties.
18434	Scheduling *Scheduling `json:"scheduling,omitempty"`
18435
18436	// ServiceAccounts: A list of service accounts with specified scopes.
18437	// Access tokens for these service accounts are available to the
18438	// instances that are created from these properties. Use metadata
18439	// queries to obtain the access tokens for these instances.
18440	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
18441
18442	ShieldedInstanceConfig *ShieldedInstanceConfig `json:"shieldedInstanceConfig,omitempty"`
18443
18444	// Tags: A list of tags to apply to the instances that are created from
18445	// these properties. The tags identify valid sources or targets for
18446	// network firewalls. The setTags method can modify this list of tags.
18447	// Each tag within the list must comply with RFC1035.
18448	Tags *Tags `json:"tags,omitempty"`
18449
18450	// ForceSendFields is a list of field names (e.g.
18451	// "AdvancedMachineFeatures") to unconditionally include in API
18452	// requests. By default, fields with empty values are omitted from API
18453	// requests. However, any non-pointer, non-interface field appearing in
18454	// ForceSendFields will be sent to the server regardless of whether the
18455	// field is empty or not. This may be used to include empty fields in
18456	// Patch requests.
18457	ForceSendFields []string `json:"-"`
18458
18459	// NullFields is a list of field names (e.g. "AdvancedMachineFeatures")
18460	// to include in API requests with the JSON null value. By default,
18461	// fields with empty values are omitted from API requests. However, any
18462	// field with an empty value appearing in NullFields will be sent to the
18463	// server as null. It is an error if a field in this list has a
18464	// non-empty value. This may be used to include null fields in Patch
18465	// requests.
18466	NullFields []string `json:"-"`
18467}
18468
18469func (s *InstanceProperties) MarshalJSON() ([]byte, error) {
18470	type NoMethod InstanceProperties
18471	raw := NoMethod(*s)
18472	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18473}
18474
18475type InstanceReference struct {
18476	// Instance: The URL for a specific instance.
18477	Instance string `json:"instance,omitempty"`
18478
18479	// ForceSendFields is a list of field names (e.g. "Instance") to
18480	// unconditionally include in API requests. By default, fields with
18481	// empty values are omitted from API requests. However, any non-pointer,
18482	// non-interface field appearing in ForceSendFields will be sent to the
18483	// server regardless of whether the field is empty or not. This may be
18484	// used to include empty fields in Patch requests.
18485	ForceSendFields []string `json:"-"`
18486
18487	// NullFields is a list of field names (e.g. "Instance") to include in
18488	// API requests with the JSON null value. By default, fields with empty
18489	// values are omitted from API requests. However, any field with an
18490	// empty value appearing in NullFields will be sent to the server as
18491	// null. It is an error if a field in this list has a non-empty value.
18492	// This may be used to include null fields in Patch requests.
18493	NullFields []string `json:"-"`
18494}
18495
18496func (s *InstanceReference) MarshalJSON() ([]byte, error) {
18497	type NoMethod InstanceReference
18498	raw := NoMethod(*s)
18499	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18500}
18501
18502// InstanceTemplate: Represents an Instance Template resource.
18503//
18504// You can use instance templates to create VM instances and managed
18505// instance groups. For more information, read Instance Templates. (==
18506// resource_for {$api_version}.instanceTemplates ==)
18507type InstanceTemplate struct {
18508	// CreationTimestamp: [Output Only] The creation timestamp for this
18509	// instance template in RFC3339 text format.
18510	CreationTimestamp string `json:"creationTimestamp,omitempty"`
18511
18512	// Description: An optional description of this resource. Provide this
18513	// property when you create the resource.
18514	Description string `json:"description,omitempty"`
18515
18516	// Id: [Output Only] A unique identifier for this instance template. The
18517	// server defines this identifier.
18518	Id uint64 `json:"id,omitempty,string"`
18519
18520	// Kind: [Output Only] The resource type, which is always
18521	// compute#instanceTemplate for instance templates.
18522	Kind string `json:"kind,omitempty"`
18523
18524	// Name: Name of the resource; provided by the client when the resource
18525	// is created. The name must be 1-63 characters long, and comply with
18526	// RFC1035. Specifically, the name must be 1-63 characters long and
18527	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
18528	// the first character must be a lowercase letter, and all following
18529	// characters must be a dash, lowercase letter, or digit, except the
18530	// last character, which cannot be a dash.
18531	Name string `json:"name,omitempty"`
18532
18533	// Properties: The instance properties for this instance template.
18534	Properties *InstanceProperties `json:"properties,omitempty"`
18535
18536	// SelfLink: [Output Only] The URL for this instance template. The
18537	// server defines this URL.
18538	SelfLink string `json:"selfLink,omitempty"`
18539
18540	// SourceInstance: The source instance used to create the template. You
18541	// can provide this as a partial or full URL to the resource. For
18542	// example, the following are valid values:
18543	// -
18544	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
18545	//
18546	// - projects/project/zones/zone/instances/instance
18547	SourceInstance string `json:"sourceInstance,omitempty"`
18548
18549	// SourceInstanceParams: The source instance params to use to create
18550	// this instance template.
18551	SourceInstanceParams *SourceInstanceParams `json:"sourceInstanceParams,omitempty"`
18552
18553	// ServerResponse contains the HTTP response code and headers from the
18554	// server.
18555	googleapi.ServerResponse `json:"-"`
18556
18557	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
18558	// to unconditionally include in API requests. By default, fields with
18559	// empty values are omitted from API requests. However, any non-pointer,
18560	// non-interface field appearing in ForceSendFields will be sent to the
18561	// server regardless of whether the field is empty or not. This may be
18562	// used to include empty fields in Patch requests.
18563	ForceSendFields []string `json:"-"`
18564
18565	// NullFields is a list of field names (e.g. "CreationTimestamp") to
18566	// include in API requests with the JSON null value. By default, fields
18567	// with empty values are omitted from API requests. However, any field
18568	// with an empty value appearing in NullFields will be sent to the
18569	// server as null. It is an error if a field in this list has a
18570	// non-empty value. This may be used to include null fields in Patch
18571	// requests.
18572	NullFields []string `json:"-"`
18573}
18574
18575func (s *InstanceTemplate) MarshalJSON() ([]byte, error) {
18576	type NoMethod InstanceTemplate
18577	raw := NoMethod(*s)
18578	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18579}
18580
18581// InstanceTemplateList: A list of instance templates.
18582type InstanceTemplateList struct {
18583	// Id: [Output Only] Unique identifier for the resource; defined by the
18584	// server.
18585	Id string `json:"id,omitempty"`
18586
18587	// Items: A list of InstanceTemplate resources.
18588	Items []*InstanceTemplate `json:"items,omitempty"`
18589
18590	// Kind: [Output Only] The resource type, which is always
18591	// compute#instanceTemplatesListResponse for instance template lists.
18592	Kind string `json:"kind,omitempty"`
18593
18594	// NextPageToken: [Output Only] This token allows you to get the next
18595	// page of results for list requests. If the number of results is larger
18596	// than maxResults, use the nextPageToken as a value for the query
18597	// parameter pageToken in the next list request. Subsequent list
18598	// requests will have their own nextPageToken to continue paging through
18599	// the results.
18600	NextPageToken string `json:"nextPageToken,omitempty"`
18601
18602	// SelfLink: [Output Only] Server-defined URL for this resource.
18603	SelfLink string `json:"selfLink,omitempty"`
18604
18605	// Warning: [Output Only] Informational warning message.
18606	Warning *InstanceTemplateListWarning `json:"warning,omitempty"`
18607
18608	// ServerResponse contains the HTTP response code and headers from the
18609	// server.
18610	googleapi.ServerResponse `json:"-"`
18611
18612	// ForceSendFields is a list of field names (e.g. "Id") to
18613	// unconditionally include in API requests. By default, fields with
18614	// empty values are omitted from API requests. However, any non-pointer,
18615	// non-interface field appearing in ForceSendFields will be sent to the
18616	// server regardless of whether the field is empty or not. This may be
18617	// used to include empty fields in Patch requests.
18618	ForceSendFields []string `json:"-"`
18619
18620	// NullFields is a list of field names (e.g. "Id") to include in API
18621	// requests with the JSON null value. By default, fields with empty
18622	// values are omitted from API requests. However, any field with an
18623	// empty value appearing in NullFields will be sent to the server as
18624	// null. It is an error if a field in this list has a non-empty value.
18625	// This may be used to include null fields in Patch requests.
18626	NullFields []string `json:"-"`
18627}
18628
18629func (s *InstanceTemplateList) MarshalJSON() ([]byte, error) {
18630	type NoMethod InstanceTemplateList
18631	raw := NoMethod(*s)
18632	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18633}
18634
18635// InstanceTemplateListWarning: [Output Only] Informational warning
18636// message.
18637type InstanceTemplateListWarning struct {
18638	// Code: [Output Only] A warning code, if applicable. For example,
18639	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18640	// the response.
18641	//
18642	// Possible values:
18643	//   "CLEANUP_FAILED"
18644	//   "DEPRECATED_RESOURCE_USED"
18645	//   "DEPRECATED_TYPE_USED"
18646	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18647	//   "EXPERIMENTAL_TYPE_USED"
18648	//   "EXTERNAL_API_WARNING"
18649	//   "FIELD_VALUE_OVERRIDEN"
18650	//   "INJECTED_KERNELS_DEPRECATED"
18651	//   "LARGE_DEPLOYMENT_WARNING"
18652	//   "MISSING_TYPE_DEPENDENCY"
18653	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18654	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18655	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18656	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18657	//   "NEXT_HOP_NOT_RUNNING"
18658	//   "NOT_CRITICAL_ERROR"
18659	//   "NO_RESULTS_ON_PAGE"
18660	//   "PARTIAL_SUCCESS"
18661	//   "REQUIRED_TOS_AGREEMENT"
18662	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18663	//   "RESOURCE_NOT_DELETED"
18664	//   "SCHEMA_VALIDATION_IGNORED"
18665	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18666	//   "UNDECLARED_PROPERTIES"
18667	//   "UNREACHABLE"
18668	Code string `json:"code,omitempty"`
18669
18670	// Data: [Output Only] Metadata about this warning in key: value format.
18671	// For example:
18672	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18673	Data []*InstanceTemplateListWarningData `json:"data,omitempty"`
18674
18675	// Message: [Output Only] A human-readable description of the warning
18676	// code.
18677	Message string `json:"message,omitempty"`
18678
18679	// ForceSendFields is a list of field names (e.g. "Code") to
18680	// unconditionally include in API requests. By default, fields with
18681	// empty values are omitted from API requests. However, any non-pointer,
18682	// non-interface field appearing in ForceSendFields will be sent to the
18683	// server regardless of whether the field is empty or not. This may be
18684	// used to include empty fields in Patch requests.
18685	ForceSendFields []string `json:"-"`
18686
18687	// NullFields is a list of field names (e.g. "Code") to include in API
18688	// requests with the JSON null value. By default, fields with empty
18689	// values are omitted from API requests. However, any field with an
18690	// empty value appearing in NullFields will be sent to the server as
18691	// null. It is an error if a field in this list has a non-empty value.
18692	// This may be used to include null fields in Patch requests.
18693	NullFields []string `json:"-"`
18694}
18695
18696func (s *InstanceTemplateListWarning) MarshalJSON() ([]byte, error) {
18697	type NoMethod InstanceTemplateListWarning
18698	raw := NoMethod(*s)
18699	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18700}
18701
18702type InstanceTemplateListWarningData struct {
18703	// Key: [Output Only] A key that provides more detail on the warning
18704	// being returned. For example, for warnings where there are no results
18705	// in a list request for a particular zone, this key might be scope and
18706	// the key value might be the zone name. Other examples might be a key
18707	// indicating a deprecated resource and a suggested replacement, or a
18708	// warning about invalid network settings (for example, if an instance
18709	// attempts to perform IP forwarding but is not enabled for IP
18710	// forwarding).
18711	Key string `json:"key,omitempty"`
18712
18713	// Value: [Output Only] A warning data value corresponding to the key.
18714	Value string `json:"value,omitempty"`
18715
18716	// ForceSendFields is a list of field names (e.g. "Key") to
18717	// unconditionally include in API requests. By default, fields with
18718	// empty values are omitted from API requests. However, any non-pointer,
18719	// non-interface field appearing in ForceSendFields will be sent to the
18720	// server regardless of whether the field is empty or not. This may be
18721	// used to include empty fields in Patch requests.
18722	ForceSendFields []string `json:"-"`
18723
18724	// NullFields is a list of field names (e.g. "Key") to include in API
18725	// requests with the JSON null value. By default, fields with empty
18726	// values are omitted from API requests. However, any field with an
18727	// empty value appearing in NullFields will be sent to the server as
18728	// null. It is an error if a field in this list has a non-empty value.
18729	// This may be used to include null fields in Patch requests.
18730	NullFields []string `json:"-"`
18731}
18732
18733func (s *InstanceTemplateListWarningData) MarshalJSON() ([]byte, error) {
18734	type NoMethod InstanceTemplateListWarningData
18735	raw := NoMethod(*s)
18736	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18737}
18738
18739type InstanceWithNamedPorts struct {
18740	// Instance: [Output Only] The URL of the instance.
18741	Instance string `json:"instance,omitempty"`
18742
18743	// NamedPorts: [Output Only] The named ports that belong to this
18744	// instance group.
18745	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
18746
18747	// Status: [Output Only] The status of the instance.
18748	//
18749	// Possible values:
18750	//   "DEPROVISIONING"
18751	//   "PROVISIONING"
18752	//   "REPAIRING"
18753	//   "RUNNING"
18754	//   "STAGING"
18755	//   "STOPPED"
18756	//   "STOPPING"
18757	//   "SUSPENDED"
18758	//   "SUSPENDING"
18759	//   "TERMINATED"
18760	Status string `json:"status,omitempty"`
18761
18762	// ForceSendFields is a list of field names (e.g. "Instance") to
18763	// unconditionally include in API requests. By default, fields with
18764	// empty values are omitted from API requests. However, any non-pointer,
18765	// non-interface field appearing in ForceSendFields will be sent to the
18766	// server regardless of whether the field is empty or not. This may be
18767	// used to include empty fields in Patch requests.
18768	ForceSendFields []string `json:"-"`
18769
18770	// NullFields is a list of field names (e.g. "Instance") to include in
18771	// API requests with the JSON null value. By default, fields with empty
18772	// values are omitted from API requests. However, any field with an
18773	// empty value appearing in NullFields will be sent to the server as
18774	// null. It is an error if a field in this list has a non-empty value.
18775	// This may be used to include null fields in Patch requests.
18776	NullFields []string `json:"-"`
18777}
18778
18779func (s *InstanceWithNamedPorts) MarshalJSON() ([]byte, error) {
18780	type NoMethod InstanceWithNamedPorts
18781	raw := NoMethod(*s)
18782	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18783}
18784
18785type InstancesAddResourcePoliciesRequest struct {
18786	// ResourcePolicies: Resource policies to be added to this instance.
18787	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
18788
18789	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
18790	// unconditionally include in API requests. By default, fields with
18791	// empty values are omitted from API requests. However, any non-pointer,
18792	// non-interface field appearing in ForceSendFields will be sent to the
18793	// server regardless of whether the field is empty or not. This may be
18794	// used to include empty fields in Patch requests.
18795	ForceSendFields []string `json:"-"`
18796
18797	// NullFields is a list of field names (e.g. "ResourcePolicies") to
18798	// include in API requests with the JSON null value. By default, fields
18799	// with empty values are omitted from API requests. However, any field
18800	// with an empty value appearing in NullFields will be sent to the
18801	// server as null. It is an error if a field in this list has a
18802	// non-empty value. This may be used to include null fields in Patch
18803	// requests.
18804	NullFields []string `json:"-"`
18805}
18806
18807func (s *InstancesAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
18808	type NoMethod InstancesAddResourcePoliciesRequest
18809	raw := NoMethod(*s)
18810	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18811}
18812
18813type InstancesGetEffectiveFirewallsResponse struct {
18814	// FirewallPolicys: Effective firewalls from firewall policies.
18815	FirewallPolicys []*InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy `json:"firewallPolicys,omitempty"`
18816
18817	// Firewalls: Effective firewalls on the instance.
18818	Firewalls []*Firewall `json:"firewalls,omitempty"`
18819
18820	// ServerResponse contains the HTTP response code and headers from the
18821	// server.
18822	googleapi.ServerResponse `json:"-"`
18823
18824	// ForceSendFields is a list of field names (e.g. "FirewallPolicys") to
18825	// unconditionally include in API requests. By default, fields with
18826	// empty values are omitted from API requests. However, any non-pointer,
18827	// non-interface field appearing in ForceSendFields will be sent to the
18828	// server regardless of whether the field is empty or not. This may be
18829	// used to include empty fields in Patch requests.
18830	ForceSendFields []string `json:"-"`
18831
18832	// NullFields is a list of field names (e.g. "FirewallPolicys") to
18833	// include in API requests with the JSON null value. By default, fields
18834	// with empty values are omitted from API requests. However, any field
18835	// with an empty value appearing in NullFields will be sent to the
18836	// server as null. It is an error if a field in this list has a
18837	// non-empty value. This may be used to include null fields in Patch
18838	// requests.
18839	NullFields []string `json:"-"`
18840}
18841
18842func (s *InstancesGetEffectiveFirewallsResponse) MarshalJSON() ([]byte, error) {
18843	type NoMethod InstancesGetEffectiveFirewallsResponse
18844	raw := NoMethod(*s)
18845	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18846}
18847
18848type InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy struct {
18849	// DisplayName: [Output Only] Deprecated, please use short name instead.
18850	// The display name of the firewall policy.
18851	DisplayName string `json:"displayName,omitempty"`
18852
18853	// Name: [Output Only] The name of the firewall policy.
18854	Name string `json:"name,omitempty"`
18855
18856	// Rules: The rules that apply to the network.
18857	Rules []*FirewallPolicyRule `json:"rules,omitempty"`
18858
18859	// ShortName: [Output Only] The short name of the firewall policy.
18860	ShortName string `json:"shortName,omitempty"`
18861
18862	// Type: [Output Only] The type of the firewall policy.
18863	//
18864	// Possible values:
18865	//   "HIERARCHY"
18866	//   "UNSPECIFIED"
18867	Type string `json:"type,omitempty"`
18868
18869	// ForceSendFields is a list of field names (e.g. "DisplayName") to
18870	// unconditionally include in API requests. By default, fields with
18871	// empty values are omitted from API requests. However, any non-pointer,
18872	// non-interface field appearing in ForceSendFields will be sent to the
18873	// server regardless of whether the field is empty or not. This may be
18874	// used to include empty fields in Patch requests.
18875	ForceSendFields []string `json:"-"`
18876
18877	// NullFields is a list of field names (e.g. "DisplayName") to include
18878	// in API requests with the JSON null value. By default, fields with
18879	// empty values are omitted from API requests. However, any field with
18880	// an empty value appearing in NullFields will be sent to the server as
18881	// null. It is an error if a field in this list has a non-empty value.
18882	// This may be used to include null fields in Patch requests.
18883	NullFields []string `json:"-"`
18884}
18885
18886func (s *InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy) MarshalJSON() ([]byte, error) {
18887	type NoMethod InstancesGetEffectiveFirewallsResponseEffectiveFirewallPolicy
18888	raw := NoMethod(*s)
18889	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18890}
18891
18892type InstancesRemoveResourcePoliciesRequest struct {
18893	// ResourcePolicies: Resource policies to be removed from this instance.
18894	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
18895
18896	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
18897	// unconditionally include in API requests. By default, fields with
18898	// empty values are omitted from API requests. However, any non-pointer,
18899	// non-interface field appearing in ForceSendFields will be sent to the
18900	// server regardless of whether the field is empty or not. This may be
18901	// used to include empty fields in Patch requests.
18902	ForceSendFields []string `json:"-"`
18903
18904	// NullFields is a list of field names (e.g. "ResourcePolicies") to
18905	// include in API requests with the JSON null value. By default, fields
18906	// with empty values are omitted from API requests. However, any field
18907	// with an empty value appearing in NullFields will be sent to the
18908	// server as null. It is an error if a field in this list has a
18909	// non-empty value. This may be used to include null fields in Patch
18910	// requests.
18911	NullFields []string `json:"-"`
18912}
18913
18914func (s *InstancesRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
18915	type NoMethod InstancesRemoveResourcePoliciesRequest
18916	raw := NoMethod(*s)
18917	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18918}
18919
18920type InstancesScopedList struct {
18921	// Instances: [Output Only] A list of instances contained in this scope.
18922	Instances []*Instance `json:"instances,omitempty"`
18923
18924	// Warning: [Output Only] Informational warning which replaces the list
18925	// of instances when the list is empty.
18926	Warning *InstancesScopedListWarning `json:"warning,omitempty"`
18927
18928	// ForceSendFields is a list of field names (e.g. "Instances") to
18929	// unconditionally include in API requests. By default, fields with
18930	// empty values are omitted from API requests. However, any non-pointer,
18931	// non-interface field appearing in ForceSendFields will be sent to the
18932	// server regardless of whether the field is empty or not. This may be
18933	// used to include empty fields in Patch requests.
18934	ForceSendFields []string `json:"-"`
18935
18936	// NullFields is a list of field names (e.g. "Instances") to include in
18937	// API requests with the JSON null value. By default, fields with empty
18938	// values are omitted from API requests. However, any field with an
18939	// empty value appearing in NullFields will be sent to the server as
18940	// null. It is an error if a field in this list has a non-empty value.
18941	// This may be used to include null fields in Patch requests.
18942	NullFields []string `json:"-"`
18943}
18944
18945func (s *InstancesScopedList) MarshalJSON() ([]byte, error) {
18946	type NoMethod InstancesScopedList
18947	raw := NoMethod(*s)
18948	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18949}
18950
18951// InstancesScopedListWarning: [Output Only] Informational warning which
18952// replaces the list of instances when the list is empty.
18953type InstancesScopedListWarning struct {
18954	// Code: [Output Only] A warning code, if applicable. For example,
18955	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18956	// the response.
18957	//
18958	// Possible values:
18959	//   "CLEANUP_FAILED"
18960	//   "DEPRECATED_RESOURCE_USED"
18961	//   "DEPRECATED_TYPE_USED"
18962	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18963	//   "EXPERIMENTAL_TYPE_USED"
18964	//   "EXTERNAL_API_WARNING"
18965	//   "FIELD_VALUE_OVERRIDEN"
18966	//   "INJECTED_KERNELS_DEPRECATED"
18967	//   "LARGE_DEPLOYMENT_WARNING"
18968	//   "MISSING_TYPE_DEPENDENCY"
18969	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18970	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18971	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18972	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18973	//   "NEXT_HOP_NOT_RUNNING"
18974	//   "NOT_CRITICAL_ERROR"
18975	//   "NO_RESULTS_ON_PAGE"
18976	//   "PARTIAL_SUCCESS"
18977	//   "REQUIRED_TOS_AGREEMENT"
18978	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18979	//   "RESOURCE_NOT_DELETED"
18980	//   "SCHEMA_VALIDATION_IGNORED"
18981	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18982	//   "UNDECLARED_PROPERTIES"
18983	//   "UNREACHABLE"
18984	Code string `json:"code,omitempty"`
18985
18986	// Data: [Output Only] Metadata about this warning in key: value format.
18987	// For example:
18988	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18989	Data []*InstancesScopedListWarningData `json:"data,omitempty"`
18990
18991	// Message: [Output Only] A human-readable description of the warning
18992	// code.
18993	Message string `json:"message,omitempty"`
18994
18995	// ForceSendFields is a list of field names (e.g. "Code") to
18996	// unconditionally include in API requests. By default, fields with
18997	// empty values are omitted from API requests. However, any non-pointer,
18998	// non-interface field appearing in ForceSendFields will be sent to the
18999	// server regardless of whether the field is empty or not. This may be
19000	// used to include empty fields in Patch requests.
19001	ForceSendFields []string `json:"-"`
19002
19003	// NullFields is a list of field names (e.g. "Code") to include in API
19004	// requests with the JSON null value. By default, fields with empty
19005	// values are omitted from API requests. However, any field with an
19006	// empty value appearing in NullFields will be sent to the server as
19007	// null. It is an error if a field in this list has a non-empty value.
19008	// This may be used to include null fields in Patch requests.
19009	NullFields []string `json:"-"`
19010}
19011
19012func (s *InstancesScopedListWarning) MarshalJSON() ([]byte, error) {
19013	type NoMethod InstancesScopedListWarning
19014	raw := NoMethod(*s)
19015	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19016}
19017
19018type InstancesScopedListWarningData struct {
19019	// Key: [Output Only] A key that provides more detail on the warning
19020	// being returned. For example, for warnings where there are no results
19021	// in a list request for a particular zone, this key might be scope and
19022	// the key value might be the zone name. Other examples might be a key
19023	// indicating a deprecated resource and a suggested replacement, or a
19024	// warning about invalid network settings (for example, if an instance
19025	// attempts to perform IP forwarding but is not enabled for IP
19026	// forwarding).
19027	Key string `json:"key,omitempty"`
19028
19029	// Value: [Output Only] A warning data value corresponding to the key.
19030	Value string `json:"value,omitempty"`
19031
19032	// ForceSendFields is a list of field names (e.g. "Key") to
19033	// unconditionally include in API requests. By default, fields with
19034	// empty values are omitted from API requests. However, any non-pointer,
19035	// non-interface field appearing in ForceSendFields will be sent to the
19036	// server regardless of whether the field is empty or not. This may be
19037	// used to include empty fields in Patch requests.
19038	ForceSendFields []string `json:"-"`
19039
19040	// NullFields is a list of field names (e.g. "Key") to include in API
19041	// requests with the JSON null value. By default, fields with empty
19042	// values are omitted from API requests. However, any field with an
19043	// empty value appearing in NullFields will be sent to the server as
19044	// null. It is an error if a field in this list has a non-empty value.
19045	// This may be used to include null fields in Patch requests.
19046	NullFields []string `json:"-"`
19047}
19048
19049func (s *InstancesScopedListWarningData) MarshalJSON() ([]byte, error) {
19050	type NoMethod InstancesScopedListWarningData
19051	raw := NoMethod(*s)
19052	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19053}
19054
19055type InstancesSetLabelsRequest struct {
19056	// LabelFingerprint: Fingerprint of the previous set of labels for this
19057	// resource, used to prevent conflicts. Provide the latest fingerprint
19058	// value when making a request to add or change labels.
19059	LabelFingerprint string `json:"labelFingerprint,omitempty"`
19060
19061	Labels map[string]string `json:"labels,omitempty"`
19062
19063	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
19064	// unconditionally include in API requests. By default, fields with
19065	// empty values are omitted from API requests. However, any non-pointer,
19066	// non-interface field appearing in ForceSendFields will be sent to the
19067	// server regardless of whether the field is empty or not. This may be
19068	// used to include empty fields in Patch requests.
19069	ForceSendFields []string `json:"-"`
19070
19071	// NullFields is a list of field names (e.g. "LabelFingerprint") to
19072	// include in API requests with the JSON null value. By default, fields
19073	// with empty values are omitted from API requests. However, any field
19074	// with an empty value appearing in NullFields will be sent to the
19075	// server as null. It is an error if a field in this list has a
19076	// non-empty value. This may be used to include null fields in Patch
19077	// requests.
19078	NullFields []string `json:"-"`
19079}
19080
19081func (s *InstancesSetLabelsRequest) MarshalJSON() ([]byte, error) {
19082	type NoMethod InstancesSetLabelsRequest
19083	raw := NoMethod(*s)
19084	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19085}
19086
19087type InstancesSetMachineResourcesRequest struct {
19088	// GuestAccelerators: A list of the type and count of accelerator cards
19089	// attached to the instance.
19090	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
19091
19092	// ForceSendFields is a list of field names (e.g. "GuestAccelerators")
19093	// to unconditionally include in API requests. By default, fields with
19094	// empty values are omitted from API requests. However, any non-pointer,
19095	// non-interface field appearing in ForceSendFields will be sent to the
19096	// server regardless of whether the field is empty or not. This may be
19097	// used to include empty fields in Patch requests.
19098	ForceSendFields []string `json:"-"`
19099
19100	// NullFields is a list of field names (e.g. "GuestAccelerators") to
19101	// include in API requests with the JSON null value. By default, fields
19102	// with empty values are omitted from API requests. However, any field
19103	// with an empty value appearing in NullFields will be sent to the
19104	// server as null. It is an error if a field in this list has a
19105	// non-empty value. This may be used to include null fields in Patch
19106	// requests.
19107	NullFields []string `json:"-"`
19108}
19109
19110func (s *InstancesSetMachineResourcesRequest) MarshalJSON() ([]byte, error) {
19111	type NoMethod InstancesSetMachineResourcesRequest
19112	raw := NoMethod(*s)
19113	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19114}
19115
19116type InstancesSetMachineTypeRequest struct {
19117	// MachineType: Full or partial URL of the machine type resource. See
19118	// Machine Types for a full list of machine types. For example:
19119	// zones/us-central1-f/machineTypes/n1-standard-1
19120	MachineType string `json:"machineType,omitempty"`
19121
19122	// ForceSendFields is a list of field names (e.g. "MachineType") to
19123	// unconditionally include in API requests. By default, fields with
19124	// empty values are omitted from API requests. However, any non-pointer,
19125	// non-interface field appearing in ForceSendFields will be sent to the
19126	// server regardless of whether the field is empty or not. This may be
19127	// used to include empty fields in Patch requests.
19128	ForceSendFields []string `json:"-"`
19129
19130	// NullFields is a list of field names (e.g. "MachineType") to include
19131	// in API requests with the JSON null value. By default, fields with
19132	// empty values are omitted from API requests. However, any field with
19133	// an empty value appearing in NullFields will be sent to the server as
19134	// null. It is an error if a field in this list has a non-empty value.
19135	// This may be used to include null fields in Patch requests.
19136	NullFields []string `json:"-"`
19137}
19138
19139func (s *InstancesSetMachineTypeRequest) MarshalJSON() ([]byte, error) {
19140	type NoMethod InstancesSetMachineTypeRequest
19141	raw := NoMethod(*s)
19142	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19143}
19144
19145type InstancesSetMinCpuPlatformRequest struct {
19146	// MinCpuPlatform: Minimum cpu/platform this instance should be started
19147	// at.
19148	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
19149
19150	// ForceSendFields is a list of field names (e.g. "MinCpuPlatform") to
19151	// unconditionally include in API requests. By default, fields with
19152	// empty values are omitted from API requests. However, any non-pointer,
19153	// non-interface field appearing in ForceSendFields will be sent to the
19154	// server regardless of whether the field is empty or not. This may be
19155	// used to include empty fields in Patch requests.
19156	ForceSendFields []string `json:"-"`
19157
19158	// NullFields is a list of field names (e.g. "MinCpuPlatform") to
19159	// include in API requests with the JSON null value. By default, fields
19160	// with empty values are omitted from API requests. However, any field
19161	// with an empty value appearing in NullFields will be sent to the
19162	// server as null. It is an error if a field in this list has a
19163	// non-empty value. This may be used to include null fields in Patch
19164	// requests.
19165	NullFields []string `json:"-"`
19166}
19167
19168func (s *InstancesSetMinCpuPlatformRequest) MarshalJSON() ([]byte, error) {
19169	type NoMethod InstancesSetMinCpuPlatformRequest
19170	raw := NoMethod(*s)
19171	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19172}
19173
19174type InstancesSetServiceAccountRequest struct {
19175	// Email: Email address of the service account.
19176	Email string `json:"email,omitempty"`
19177
19178	// Scopes: The list of scopes to be made available for this service
19179	// account.
19180	Scopes []string `json:"scopes,omitempty"`
19181
19182	// ForceSendFields is a list of field names (e.g. "Email") to
19183	// unconditionally include in API requests. By default, fields with
19184	// empty values are omitted from API requests. However, any non-pointer,
19185	// non-interface field appearing in ForceSendFields will be sent to the
19186	// server regardless of whether the field is empty or not. This may be
19187	// used to include empty fields in Patch requests.
19188	ForceSendFields []string `json:"-"`
19189
19190	// NullFields is a list of field names (e.g. "Email") to include in API
19191	// requests with the JSON null value. By default, fields with empty
19192	// values are omitted from API requests. However, any field with an
19193	// empty value appearing in NullFields will be sent to the server as
19194	// null. It is an error if a field in this list has a non-empty value.
19195	// This may be used to include null fields in Patch requests.
19196	NullFields []string `json:"-"`
19197}
19198
19199func (s *InstancesSetServiceAccountRequest) MarshalJSON() ([]byte, error) {
19200	type NoMethod InstancesSetServiceAccountRequest
19201	raw := NoMethod(*s)
19202	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19203}
19204
19205type InstancesStartWithEncryptionKeyRequest struct {
19206	// Disks: Array of disks associated with this instance that are
19207	// protected with a customer-supplied encryption key.
19208	//
19209	// In order to start the instance, the disk url and its corresponding
19210	// key must be provided.
19211	//
19212	// If the disk is not protected with a customer-supplied encryption key
19213	// it should not be specified.
19214	Disks []*CustomerEncryptionKeyProtectedDisk `json:"disks,omitempty"`
19215
19216	// ForceSendFields is a list of field names (e.g. "Disks") to
19217	// unconditionally include in API requests. By default, fields with
19218	// empty values are omitted from API requests. However, any non-pointer,
19219	// non-interface field appearing in ForceSendFields will be sent to the
19220	// server regardless of whether the field is empty or not. This may be
19221	// used to include empty fields in Patch requests.
19222	ForceSendFields []string `json:"-"`
19223
19224	// NullFields is a list of field names (e.g. "Disks") to include in API
19225	// requests with the JSON null value. By default, fields with empty
19226	// values are omitted from API requests. However, any field with an
19227	// empty value appearing in NullFields will be sent to the server as
19228	// null. It is an error if a field in this list has a non-empty value.
19229	// This may be used to include null fields in Patch requests.
19230	NullFields []string `json:"-"`
19231}
19232
19233func (s *InstancesStartWithEncryptionKeyRequest) MarshalJSON() ([]byte, error) {
19234	type NoMethod InstancesStartWithEncryptionKeyRequest
19235	raw := NoMethod(*s)
19236	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19237}
19238
19239// Int64RangeMatch: HttpRouteRuleMatch criteria for field values that
19240// must stay within the specified integer range.
19241type Int64RangeMatch struct {
19242	// RangeEnd: The end of the range (exclusive) in signed long integer
19243	// format.
19244	RangeEnd int64 `json:"rangeEnd,omitempty,string"`
19245
19246	// RangeStart: The start of the range (inclusive) in signed long integer
19247	// format.
19248	RangeStart int64 `json:"rangeStart,omitempty,string"`
19249
19250	// ForceSendFields is a list of field names (e.g. "RangeEnd") to
19251	// unconditionally include in API requests. By default, fields with
19252	// empty values are omitted from API requests. However, any non-pointer,
19253	// non-interface field appearing in ForceSendFields will be sent to the
19254	// server regardless of whether the field is empty or not. This may be
19255	// used to include empty fields in Patch requests.
19256	ForceSendFields []string `json:"-"`
19257
19258	// NullFields is a list of field names (e.g. "RangeEnd") to include in
19259	// API requests with the JSON null value. By default, fields with empty
19260	// values are omitted from API requests. However, any field with an
19261	// empty value appearing in NullFields will be sent to the server as
19262	// null. It is an error if a field in this list has a non-empty value.
19263	// This may be used to include null fields in Patch requests.
19264	NullFields []string `json:"-"`
19265}
19266
19267func (s *Int64RangeMatch) MarshalJSON() ([]byte, error) {
19268	type NoMethod Int64RangeMatch
19269	raw := NoMethod(*s)
19270	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19271}
19272
19273// Interconnect: Represents an Interconnect resource.
19274//
19275// An Interconnect resource is a dedicated connection between the GCP
19276// network and your on-premises network. For more information, read the
19277// Dedicated Interconnect Overview. (== resource_for
19278// {$api_version}.interconnects ==)
19279type Interconnect struct {
19280	// AdminEnabled: Administrative status of the interconnect. When this is
19281	// set to true, the Interconnect is functional and can carry traffic.
19282	// When set to false, no packets can be carried over the interconnect
19283	// and no BGP routes are exchanged over it. By default, the status is
19284	// set to true.
19285	AdminEnabled bool `json:"adminEnabled,omitempty"`
19286
19287	// CircuitInfos: [Output Only] A list of CircuitInfo objects, that
19288	// describe the individual circuits in this LAG.
19289	CircuitInfos []*InterconnectCircuitInfo `json:"circuitInfos,omitempty"`
19290
19291	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
19292	// format.
19293	CreationTimestamp string `json:"creationTimestamp,omitempty"`
19294
19295	// CustomerName: Customer name, to put in the Letter of Authorization as
19296	// the party authorized to request a crossconnect.
19297	CustomerName string `json:"customerName,omitempty"`
19298
19299	// Description: An optional description of this resource. Provide this
19300	// property when you create the resource.
19301	Description string `json:"description,omitempty"`
19302
19303	// ExpectedOutages: [Output Only] A list of outages expected for this
19304	// Interconnect.
19305	ExpectedOutages []*InterconnectOutageNotification `json:"expectedOutages,omitempty"`
19306
19307	// GoogleIpAddress: [Output Only] IP address configured on the Google
19308	// side of the Interconnect link. This can be used only for ping tests.
19309	GoogleIpAddress string `json:"googleIpAddress,omitempty"`
19310
19311	// GoogleReferenceId: [Output Only] Google reference ID to be used when
19312	// raising support tickets with Google or otherwise to debug backend
19313	// connectivity issues.
19314	GoogleReferenceId string `json:"googleReferenceId,omitempty"`
19315
19316	// Id: [Output Only] The unique identifier for the resource. This
19317	// identifier is defined by the server.
19318	Id uint64 `json:"id,omitempty,string"`
19319
19320	// InterconnectAttachments: [Output Only] A list of the URLs of all
19321	// InterconnectAttachments configured to use this Interconnect.
19322	InterconnectAttachments []string `json:"interconnectAttachments,omitempty"`
19323
19324	// InterconnectType: Type of interconnect, which can take one of the
19325	// following values:
19326	// - PARTNER: A partner-managed interconnection shared between customers
19327	// though a partner.
19328	// - DEDICATED: A dedicated physical interconnection with the customer.
19329	// Note that a value IT_PRIVATE has been deprecated in favor of
19330	// DEDICATED.
19331	//
19332	// Possible values:
19333	//   "DEDICATED"
19334	//   "IT_PRIVATE"
19335	//   "PARTNER"
19336	InterconnectType string `json:"interconnectType,omitempty"`
19337
19338	// Kind: [Output Only] Type of the resource. Always compute#interconnect
19339	// for interconnects.
19340	Kind string `json:"kind,omitempty"`
19341
19342	// LinkType: Type of link requested, which can take one of the following
19343	// values:
19344	// - LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics
19345	// - LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics. Note
19346	// that this field indicates the speed of each of the links in the
19347	// bundle, not the speed of the entire bundle.
19348	//
19349	// Possible values:
19350	//   "LINK_TYPE_ETHERNET_100G_LR"
19351	//   "LINK_TYPE_ETHERNET_10G_LR"
19352	LinkType string `json:"linkType,omitempty"`
19353
19354	// Location: URL of the InterconnectLocation object that represents
19355	// where this connection is to be provisioned.
19356	Location string `json:"location,omitempty"`
19357
19358	// Name: Name of the resource. Provided by the client when the resource
19359	// is created. The name must be 1-63 characters long, and comply with
19360	// RFC1035. Specifically, the name must be 1-63 characters long and
19361	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
19362	// the first character must be a lowercase letter, and all following
19363	// characters must be a dash, lowercase letter, or digit, except the
19364	// last character, which cannot be a dash.
19365	Name string `json:"name,omitempty"`
19366
19367	// NocContactEmail: Email address to contact the customer NOC for
19368	// operations and maintenance notifications regarding this Interconnect.
19369	// If specified, this will be used for notifications in addition to all
19370	// other forms described, such as Stackdriver logs alerting and Cloud
19371	// Notifications.
19372	NocContactEmail string `json:"nocContactEmail,omitempty"`
19373
19374	// OperationalStatus: [Output Only] The current status of this
19375	// Interconnect's functionality, which can take one of the following
19376	// values:
19377	// - OS_ACTIVE: A valid Interconnect, which is turned up and is ready to
19378	// use. Attachments may be provisioned on this Interconnect.
19379	// - OS_UNPROVISIONED: An Interconnect that has not completed turnup. No
19380	// attachments may be provisioned on this Interconnect.
19381	// - OS_UNDER_MAINTENANCE: An Interconnect that is undergoing internal
19382	// maintenance. No attachments may be provisioned or updated on this
19383	// Interconnect.
19384	//
19385	// Possible values:
19386	//   "OS_ACTIVE"
19387	//   "OS_UNPROVISIONED"
19388	OperationalStatus string `json:"operationalStatus,omitempty"`
19389
19390	// PeerIpAddress: [Output Only] IP address configured on the customer
19391	// side of the Interconnect link. The customer should configure this IP
19392	// address during turnup when prompted by Google NOC. This can be used
19393	// only for ping tests.
19394	PeerIpAddress string `json:"peerIpAddress,omitempty"`
19395
19396	// ProvisionedLinkCount: [Output Only] Number of links actually
19397	// provisioned in this interconnect.
19398	ProvisionedLinkCount int64 `json:"provisionedLinkCount,omitempty"`
19399
19400	// RequestedLinkCount: Target number of physical links in the link
19401	// bundle, as requested by the customer.
19402	RequestedLinkCount int64 `json:"requestedLinkCount,omitempty"`
19403
19404	// SelfLink: [Output Only] Server-defined URL for the resource.
19405	SelfLink string `json:"selfLink,omitempty"`
19406
19407	// State: [Output Only] The current state of Interconnect functionality,
19408	// which can take one of the following values:
19409	// - ACTIVE: The Interconnect is valid, turned up and ready to use.
19410	// Attachments may be provisioned on this Interconnect.
19411	// - UNPROVISIONED: The Interconnect has not completed turnup. No
19412	// attachments may be provisioned on this Interconnect.
19413	// - UNDER_MAINTENANCE: The Interconnect is undergoing internal
19414	// maintenance. No attachments may be provisioned or updated on this
19415	// Interconnect.
19416	//
19417	// Possible values:
19418	//   "ACTIVE"
19419	//   "UNPROVISIONED"
19420	State string `json:"state,omitempty"`
19421
19422	// ServerResponse contains the HTTP response code and headers from the
19423	// server.
19424	googleapi.ServerResponse `json:"-"`
19425
19426	// ForceSendFields is a list of field names (e.g. "AdminEnabled") to
19427	// unconditionally include in API requests. By default, fields with
19428	// empty values are omitted from API requests. However, any non-pointer,
19429	// non-interface field appearing in ForceSendFields will be sent to the
19430	// server regardless of whether the field is empty or not. This may be
19431	// used to include empty fields in Patch requests.
19432	ForceSendFields []string `json:"-"`
19433
19434	// NullFields is a list of field names (e.g. "AdminEnabled") to include
19435	// in API requests with the JSON null value. By default, fields with
19436	// empty values are omitted from API requests. However, any field with
19437	// an empty value appearing in NullFields will be sent to the server as
19438	// null. It is an error if a field in this list has a non-empty value.
19439	// This may be used to include null fields in Patch requests.
19440	NullFields []string `json:"-"`
19441}
19442
19443func (s *Interconnect) MarshalJSON() ([]byte, error) {
19444	type NoMethod Interconnect
19445	raw := NoMethod(*s)
19446	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19447}
19448
19449// InterconnectAttachment: Represents an Interconnect Attachment (VLAN)
19450// resource.
19451//
19452// You can use Interconnect attachments (VLANS) to connect your Virtual
19453// Private Cloud networks to your on-premises networks through an
19454// Interconnect. For more information, read  Creating VLAN Attachments.
19455// (== resource_for {$api_version}.interconnectAttachments ==)
19456type InterconnectAttachment struct {
19457	// AdminEnabled: Determines whether this Attachment will carry packets.
19458	// Not present for PARTNER_PROVIDER.
19459	AdminEnabled bool `json:"adminEnabled,omitempty"`
19460
19461	// Bandwidth: Provisioned bandwidth capacity for the interconnect
19462	// attachment. For attachments of type DEDICATED, the user can set the
19463	// bandwidth. For attachments of type PARTNER, the Google Partner that
19464	// is operating the interconnect must set the bandwidth. Output only for
19465	// PARTNER type, mutable for PARTNER_PROVIDER and DEDICATED, and can
19466	// take one of the following values:
19467	// - BPS_50M: 50 Mbit/s
19468	// - BPS_100M: 100 Mbit/s
19469	// - BPS_200M: 200 Mbit/s
19470	// - BPS_300M: 300 Mbit/s
19471	// - BPS_400M: 400 Mbit/s
19472	// - BPS_500M: 500 Mbit/s
19473	// - BPS_1G: 1 Gbit/s
19474	// - BPS_2G: 2 Gbit/s
19475	// - BPS_5G: 5 Gbit/s
19476	// - BPS_10G: 10 Gbit/s
19477	// - BPS_20G: 20 Gbit/s
19478	// - BPS_50G: 50 Gbit/s
19479	//
19480	// Possible values:
19481	//   "BPS_100M"
19482	//   "BPS_10G"
19483	//   "BPS_1G"
19484	//   "BPS_200M"
19485	//   "BPS_20G"
19486	//   "BPS_2G"
19487	//   "BPS_300M"
19488	//   "BPS_400M"
19489	//   "BPS_500M"
19490	//   "BPS_50G"
19491	//   "BPS_50M"
19492	//   "BPS_5G"
19493	Bandwidth string `json:"bandwidth,omitempty"`
19494
19495	// CandidateSubnets: Up to 16 candidate prefixes that can be used to
19496	// restrict the allocation of cloudRouterIpAddress and
19497	// customerRouterIpAddress for this attachment. All prefixes must be
19498	// within link-local address space (169.254.0.0/16) and must be /29 or
19499	// shorter (/28, /27, etc). Google will attempt to select an unused /29
19500	// from the supplied candidate prefix(es). The request will fail if all
19501	// possible /29s are in use on Google's edge. If not supplied, Google
19502	// will randomly select an unused /29 from all of link-local space.
19503	CandidateSubnets []string `json:"candidateSubnets,omitempty"`
19504
19505	// CloudRouterIpAddress: [Output Only] IPv4 address + prefix length to
19506	// be configured on Cloud Router Interface for this interconnect
19507	// attachment.
19508	CloudRouterIpAddress string `json:"cloudRouterIpAddress,omitempty"`
19509
19510	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
19511	// format.
19512	CreationTimestamp string `json:"creationTimestamp,omitempty"`
19513
19514	// CustomerRouterIpAddress: [Output Only] IPv4 address + prefix length
19515	// to be configured on the customer router subinterface for this
19516	// interconnect attachment.
19517	CustomerRouterIpAddress string `json:"customerRouterIpAddress,omitempty"`
19518
19519	// DataplaneVersion: [Output Only] Dataplane version for this
19520	// InterconnectAttachment.
19521	DataplaneVersion int64 `json:"dataplaneVersion,omitempty"`
19522
19523	// Description: An optional description of this resource.
19524	Description string `json:"description,omitempty"`
19525
19526	// EdgeAvailabilityDomain: Desired availability domain for the
19527	// attachment. Only available for type PARTNER, at creation time, and
19528	// can take one of the following values:
19529	// - AVAILABILITY_DOMAIN_ANY
19530	// - AVAILABILITY_DOMAIN_1
19531	// - AVAILABILITY_DOMAIN_2 For improved reliability, customers should
19532	// configure a pair of attachments, one per availability domain. The
19533	// selected availability domain will be provided to the Partner via the
19534	// pairing key, so that the provisioned circuit will lie in the
19535	// specified domain. If not specified, the value will default to
19536	// AVAILABILITY_DOMAIN_ANY.
19537	//
19538	// Possible values:
19539	//   "AVAILABILITY_DOMAIN_1"
19540	//   "AVAILABILITY_DOMAIN_2"
19541	//   "AVAILABILITY_DOMAIN_ANY"
19542	EdgeAvailabilityDomain string `json:"edgeAvailabilityDomain,omitempty"`
19543
19544	// Encryption: Indicates the user-supplied encryption option of this
19545	// VLAN attachment (interconnectAttachment). Can only be specified at
19546	// attachment creation for PARTNER or DEDICATED attachments. Possible
19547	// values are:
19548	// - NONE - This is the default value, which means that the VLAN
19549	// attachment carries unencrypted traffic. VMs are able to send traffic
19550	// to, or receive traffic from, such a VLAN attachment.
19551	// - IPSEC - The VLAN attachment carries only encrypted traffic that is
19552	// encrypted by an IPsec device, such as an HA VPN gateway or
19553	// third-party IPsec VPN. VMs cannot directly send traffic to, or
19554	// receive traffic from, such a VLAN attachment. To use IPsec-encrypted
19555	// Cloud Interconnect, the VLAN attachment must be created with this
19556	// option.
19557	// Not currently available publicly.
19558	//
19559	// Possible values:
19560	//   "IPSEC"
19561	//   "NONE"
19562	Encryption string `json:"encryption,omitempty"`
19563
19564	// GoogleReferenceId: [Output Only] Google reference ID, to be used when
19565	// raising support tickets with Google or otherwise to debug backend
19566	// connectivity issues. [Deprecated] This field is not used.
19567	GoogleReferenceId string `json:"googleReferenceId,omitempty"`
19568
19569	// Id: [Output Only] The unique identifier for the resource. This
19570	// identifier is defined by the server.
19571	Id uint64 `json:"id,omitempty,string"`
19572
19573	// Interconnect: URL of the underlying Interconnect object that this
19574	// attachment's traffic will traverse through.
19575	Interconnect string `json:"interconnect,omitempty"`
19576
19577	// IpsecInternalAddresses: List of URL of addresses that have been
19578	// reserved for the VLAN attachment. Used only for the VLAN attachment
19579	// that has the encryption option as IPSEC. The addresses must be
19580	// regional internal IP address ranges. When creating an HA VPN gateway
19581	// over the VLAN attachment, if the attachment is configured to use a
19582	// regional internal IP address, then the VPN gateway's IP address is
19583	// allocated from the IP address range specified here. For example, if
19584	// the HA VPN gateway's interface 0 is paired to this VLAN attachment,
19585	// then a regional internal IP address for the VPN gateway interface 0
19586	// will be allocated from the IP address specified for this VLAN
19587	// attachment. If this field is not specified when creating the VLAN
19588	// attachment, then later on when creating an HA VPN gateway on this
19589	// VLAN attachment, the HA VPN gateway's IP address is allocated from
19590	// the regional external IP address pool.
19591	// Not currently available publicly.
19592	IpsecInternalAddresses []string `json:"ipsecInternalAddresses,omitempty"`
19593
19594	// Kind: [Output Only] Type of the resource. Always
19595	// compute#interconnectAttachment for interconnect attachments.
19596	Kind string `json:"kind,omitempty"`
19597
19598	// Mtu: Maximum Transmission Unit (MTU), in bytes, of packets passing
19599	// through this interconnect attachment. Only 1440 and 1500 are allowed.
19600	// If not specified, the value will default to 1440.
19601	Mtu int64 `json:"mtu,omitempty"`
19602
19603	// Name: Name of the resource. Provided by the client when the resource
19604	// is created. The name must be 1-63 characters long, and comply with
19605	// RFC1035. Specifically, the name must be 1-63 characters long and
19606	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
19607	// the first character must be a lowercase letter, and all following
19608	// characters must be a dash, lowercase letter, or digit, except the
19609	// last character, which cannot be a dash.
19610	Name string `json:"name,omitempty"`
19611
19612	// OperationalStatus: [Output Only] The current status of whether or not
19613	// this interconnect attachment is functional, which can take one of the
19614	// following values:
19615	// - OS_ACTIVE: The attachment has been turned up and is ready to use.
19616	//
19617	// - OS_UNPROVISIONED: The attachment is not ready to use yet, because
19618	// turnup is not complete.
19619	//
19620	// Possible values:
19621	//   "OS_ACTIVE"
19622	//   "OS_UNPROVISIONED"
19623	OperationalStatus string `json:"operationalStatus,omitempty"`
19624
19625	// PairingKey: [Output only for type PARTNER. Input only for
19626	// PARTNER_PROVIDER. Not present for DEDICATED]. The opaque identifier
19627	// of an PARTNER attachment used to initiate provisioning with a
19628	// selected partner. Of the form "XXXXX/region/domain"
19629	PairingKey string `json:"pairingKey,omitempty"`
19630
19631	// PartnerAsn: Optional BGP ASN for the router supplied by a Layer 3
19632	// Partner if they configured BGP on behalf of the customer. Output only
19633	// for PARTNER type, input only for PARTNER_PROVIDER, not available for
19634	// DEDICATED.
19635	PartnerAsn int64 `json:"partnerAsn,omitempty,string"`
19636
19637	// PartnerMetadata: Informational metadata about Partner attachments
19638	// from Partners to display to customers. Output only for for PARTNER
19639	// type, mutable for PARTNER_PROVIDER, not available for DEDICATED.
19640	PartnerMetadata *InterconnectAttachmentPartnerMetadata `json:"partnerMetadata,omitempty"`
19641
19642	// PrivateInterconnectInfo: [Output Only] Information specific to an
19643	// InterconnectAttachment. This property is populated if the
19644	// interconnect that this is attached to is of type DEDICATED.
19645	PrivateInterconnectInfo *InterconnectAttachmentPrivateInfo `json:"privateInterconnectInfo,omitempty"`
19646
19647	// Region: [Output Only] URL of the region where the regional
19648	// interconnect attachment resides. You must specify this field as part
19649	// of the HTTP request URL. It is not settable as a field in the request
19650	// body.
19651	Region string `json:"region,omitempty"`
19652
19653	// Router: URL of the Cloud Router to be used for dynamic routing. This
19654	// router must be in the same region as this InterconnectAttachment. The
19655	// InterconnectAttachment will automatically connect the Interconnect to
19656	// the network & region within which the Cloud Router is configured.
19657	Router string `json:"router,omitempty"`
19658
19659	// SelfLink: [Output Only] Server-defined URL for the resource.
19660	SelfLink string `json:"selfLink,omitempty"`
19661
19662	// State: [Output Only] The current state of this attachment's
19663	// functionality. Enum values ACTIVE and UNPROVISIONED are shared by
19664	// DEDICATED/PRIVATE, PARTNER, and PARTNER_PROVIDER interconnect
19665	// attachments, while enum values PENDING_PARTNER,
19666	// PARTNER_REQUEST_RECEIVED, and PENDING_CUSTOMER are used for only
19667	// PARTNER and PARTNER_PROVIDER interconnect attachments. This state can
19668	// take one of the following values:
19669	// - ACTIVE: The attachment has been turned up and is ready to use.
19670	// - UNPROVISIONED: The attachment is not ready to use yet, because
19671	// turnup is not complete.
19672	// - PENDING_PARTNER: A newly-created PARTNER attachment that has not
19673	// yet been configured on the Partner side.
19674	// - PARTNER_REQUEST_RECEIVED: A PARTNER attachment is in the process of
19675	// provisioning after a PARTNER_PROVIDER attachment was created that
19676	// references it.
19677	// - PENDING_CUSTOMER: A PARTNER or PARTNER_PROVIDER attachment that is
19678	// waiting for a customer to activate it.
19679	// - DEFUNCT: The attachment was deleted externally and is no longer
19680	// functional. This could be because the associated Interconnect was
19681	// removed, or because the other side of a Partner attachment was
19682	// deleted.
19683	//
19684	// Possible values:
19685	//   "ACTIVE"
19686	//   "DEFUNCT"
19687	//   "PARTNER_REQUEST_RECEIVED"
19688	//   "PENDING_CUSTOMER"
19689	//   "PENDING_PARTNER"
19690	//   "STATE_UNSPECIFIED"
19691	//   "UNPROVISIONED"
19692	State string `json:"state,omitempty"`
19693
19694	// Type: The type of interconnect attachment this is, which can take one
19695	// of the following values:
19696	// - DEDICATED: an attachment to a Dedicated Interconnect.
19697	// - PARTNER: an attachment to a Partner Interconnect, created by the
19698	// customer.
19699	// - PARTNER_PROVIDER: an attachment to a Partner Interconnect, created
19700	// by the partner.
19701	//
19702	// Possible values:
19703	//   "DEDICATED"
19704	//   "PARTNER"
19705	//   "PARTNER_PROVIDER"
19706	Type string `json:"type,omitempty"`
19707
19708	// VlanTag8021q: The IEEE 802.1Q VLAN tag for this attachment, in the
19709	// range 2-4094. Only specified at creation time.
19710	VlanTag8021q int64 `json:"vlanTag8021q,omitempty"`
19711
19712	// ServerResponse contains the HTTP response code and headers from the
19713	// server.
19714	googleapi.ServerResponse `json:"-"`
19715
19716	// ForceSendFields is a list of field names (e.g. "AdminEnabled") to
19717	// unconditionally include in API requests. By default, fields with
19718	// empty values are omitted from API requests. However, any non-pointer,
19719	// non-interface field appearing in ForceSendFields will be sent to the
19720	// server regardless of whether the field is empty or not. This may be
19721	// used to include empty fields in Patch requests.
19722	ForceSendFields []string `json:"-"`
19723
19724	// NullFields is a list of field names (e.g. "AdminEnabled") to include
19725	// in API requests with the JSON null value. By default, fields with
19726	// empty values are omitted from API requests. However, any field with
19727	// an empty value appearing in NullFields will be sent to the server as
19728	// null. It is an error if a field in this list has a non-empty value.
19729	// This may be used to include null fields in Patch requests.
19730	NullFields []string `json:"-"`
19731}
19732
19733func (s *InterconnectAttachment) MarshalJSON() ([]byte, error) {
19734	type NoMethod InterconnectAttachment
19735	raw := NoMethod(*s)
19736	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19737}
19738
19739type InterconnectAttachmentAggregatedList struct {
19740	// Id: [Output Only] Unique identifier for the resource; defined by the
19741	// server.
19742	Id string `json:"id,omitempty"`
19743
19744	// Items: A list of InterconnectAttachmentsScopedList resources.
19745	Items map[string]InterconnectAttachmentsScopedList `json:"items,omitempty"`
19746
19747	// Kind: [Output Only] Type of resource. Always
19748	// compute#interconnectAttachmentAggregatedList for aggregated lists of
19749	// interconnect attachments.
19750	Kind string `json:"kind,omitempty"`
19751
19752	// NextPageToken: [Output Only] This token allows you to get the next
19753	// page of results for list requests. If the number of results is larger
19754	// than maxResults, use the nextPageToken as a value for the query
19755	// parameter pageToken in the next list request. Subsequent list
19756	// requests will have their own nextPageToken to continue paging through
19757	// the results.
19758	NextPageToken string `json:"nextPageToken,omitempty"`
19759
19760	// SelfLink: [Output Only] Server-defined URL for this resource.
19761	SelfLink string `json:"selfLink,omitempty"`
19762
19763	// Unreachables: [Output Only] Unreachable resources.
19764	Unreachables []string `json:"unreachables,omitempty"`
19765
19766	// Warning: [Output Only] Informational warning message.
19767	Warning *InterconnectAttachmentAggregatedListWarning `json:"warning,omitempty"`
19768
19769	// ServerResponse contains the HTTP response code and headers from the
19770	// server.
19771	googleapi.ServerResponse `json:"-"`
19772
19773	// ForceSendFields is a list of field names (e.g. "Id") to
19774	// unconditionally include in API requests. By default, fields with
19775	// empty values are omitted from API requests. However, any non-pointer,
19776	// non-interface field appearing in ForceSendFields will be sent to the
19777	// server regardless of whether the field is empty or not. This may be
19778	// used to include empty fields in Patch requests.
19779	ForceSendFields []string `json:"-"`
19780
19781	// NullFields is a list of field names (e.g. "Id") to include in API
19782	// requests with the JSON null value. By default, fields with empty
19783	// values are omitted from API requests. However, any field with an
19784	// empty value appearing in NullFields will be sent to the server as
19785	// null. It is an error if a field in this list has a non-empty value.
19786	// This may be used to include null fields in Patch requests.
19787	NullFields []string `json:"-"`
19788}
19789
19790func (s *InterconnectAttachmentAggregatedList) MarshalJSON() ([]byte, error) {
19791	type NoMethod InterconnectAttachmentAggregatedList
19792	raw := NoMethod(*s)
19793	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19794}
19795
19796// InterconnectAttachmentAggregatedListWarning: [Output Only]
19797// Informational warning message.
19798type InterconnectAttachmentAggregatedListWarning struct {
19799	// Code: [Output Only] A warning code, if applicable. For example,
19800	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19801	// the response.
19802	//
19803	// Possible values:
19804	//   "CLEANUP_FAILED"
19805	//   "DEPRECATED_RESOURCE_USED"
19806	//   "DEPRECATED_TYPE_USED"
19807	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19808	//   "EXPERIMENTAL_TYPE_USED"
19809	//   "EXTERNAL_API_WARNING"
19810	//   "FIELD_VALUE_OVERRIDEN"
19811	//   "INJECTED_KERNELS_DEPRECATED"
19812	//   "LARGE_DEPLOYMENT_WARNING"
19813	//   "MISSING_TYPE_DEPENDENCY"
19814	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19815	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19816	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19817	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19818	//   "NEXT_HOP_NOT_RUNNING"
19819	//   "NOT_CRITICAL_ERROR"
19820	//   "NO_RESULTS_ON_PAGE"
19821	//   "PARTIAL_SUCCESS"
19822	//   "REQUIRED_TOS_AGREEMENT"
19823	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19824	//   "RESOURCE_NOT_DELETED"
19825	//   "SCHEMA_VALIDATION_IGNORED"
19826	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19827	//   "UNDECLARED_PROPERTIES"
19828	//   "UNREACHABLE"
19829	Code string `json:"code,omitempty"`
19830
19831	// Data: [Output Only] Metadata about this warning in key: value format.
19832	// For example:
19833	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19834	Data []*InterconnectAttachmentAggregatedListWarningData `json:"data,omitempty"`
19835
19836	// Message: [Output Only] A human-readable description of the warning
19837	// code.
19838	Message string `json:"message,omitempty"`
19839
19840	// ForceSendFields is a list of field names (e.g. "Code") to
19841	// unconditionally include in API requests. By default, fields with
19842	// empty values are omitted from API requests. However, any non-pointer,
19843	// non-interface field appearing in ForceSendFields will be sent to the
19844	// server regardless of whether the field is empty or not. This may be
19845	// used to include empty fields in Patch requests.
19846	ForceSendFields []string `json:"-"`
19847
19848	// NullFields is a list of field names (e.g. "Code") to include in API
19849	// requests with the JSON null value. By default, fields with empty
19850	// values are omitted from API requests. However, any field with an
19851	// empty value appearing in NullFields will be sent to the server as
19852	// null. It is an error if a field in this list has a non-empty value.
19853	// This may be used to include null fields in Patch requests.
19854	NullFields []string `json:"-"`
19855}
19856
19857func (s *InterconnectAttachmentAggregatedListWarning) MarshalJSON() ([]byte, error) {
19858	type NoMethod InterconnectAttachmentAggregatedListWarning
19859	raw := NoMethod(*s)
19860	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19861}
19862
19863type InterconnectAttachmentAggregatedListWarningData struct {
19864	// Key: [Output Only] A key that provides more detail on the warning
19865	// being returned. For example, for warnings where there are no results
19866	// in a list request for a particular zone, this key might be scope and
19867	// the key value might be the zone name. Other examples might be a key
19868	// indicating a deprecated resource and a suggested replacement, or a
19869	// warning about invalid network settings (for example, if an instance
19870	// attempts to perform IP forwarding but is not enabled for IP
19871	// forwarding).
19872	Key string `json:"key,omitempty"`
19873
19874	// Value: [Output Only] A warning data value corresponding to the key.
19875	Value string `json:"value,omitempty"`
19876
19877	// ForceSendFields is a list of field names (e.g. "Key") to
19878	// unconditionally include in API requests. By default, fields with
19879	// empty values are omitted from API requests. However, any non-pointer,
19880	// non-interface field appearing in ForceSendFields will be sent to the
19881	// server regardless of whether the field is empty or not. This may be
19882	// used to include empty fields in Patch requests.
19883	ForceSendFields []string `json:"-"`
19884
19885	// NullFields is a list of field names (e.g. "Key") to include in API
19886	// requests with the JSON null value. By default, fields with empty
19887	// values are omitted from API requests. However, any field with an
19888	// empty value appearing in NullFields will be sent to the server as
19889	// null. It is an error if a field in this list has a non-empty value.
19890	// This may be used to include null fields in Patch requests.
19891	NullFields []string `json:"-"`
19892}
19893
19894func (s *InterconnectAttachmentAggregatedListWarningData) MarshalJSON() ([]byte, error) {
19895	type NoMethod InterconnectAttachmentAggregatedListWarningData
19896	raw := NoMethod(*s)
19897	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19898}
19899
19900// InterconnectAttachmentList: Response to the list request, and
19901// contains a list of interconnect attachments.
19902type InterconnectAttachmentList struct {
19903	// Id: [Output Only] Unique identifier for the resource; defined by the
19904	// server.
19905	Id string `json:"id,omitempty"`
19906
19907	// Items: A list of InterconnectAttachment resources.
19908	Items []*InterconnectAttachment `json:"items,omitempty"`
19909
19910	// Kind: [Output Only] Type of resource. Always
19911	// compute#interconnectAttachmentList for lists of interconnect
19912	// attachments.
19913	Kind string `json:"kind,omitempty"`
19914
19915	// NextPageToken: [Output Only] This token allows you to get the next
19916	// page of results for list requests. If the number of results is larger
19917	// than maxResults, use the nextPageToken as a value for the query
19918	// parameter pageToken in the next list request. Subsequent list
19919	// requests will have their own nextPageToken to continue paging through
19920	// the results.
19921	NextPageToken string `json:"nextPageToken,omitempty"`
19922
19923	// SelfLink: [Output Only] Server-defined URL for this resource.
19924	SelfLink string `json:"selfLink,omitempty"`
19925
19926	// Warning: [Output Only] Informational warning message.
19927	Warning *InterconnectAttachmentListWarning `json:"warning,omitempty"`
19928
19929	// ServerResponse contains the HTTP response code and headers from the
19930	// server.
19931	googleapi.ServerResponse `json:"-"`
19932
19933	// ForceSendFields is a list of field names (e.g. "Id") to
19934	// unconditionally include in API requests. By default, fields with
19935	// empty values are omitted from API requests. However, any non-pointer,
19936	// non-interface field appearing in ForceSendFields will be sent to the
19937	// server regardless of whether the field is empty or not. This may be
19938	// used to include empty fields in Patch requests.
19939	ForceSendFields []string `json:"-"`
19940
19941	// NullFields is a list of field names (e.g. "Id") to include in API
19942	// requests with the JSON null value. By default, fields with empty
19943	// values are omitted from API requests. However, any field with an
19944	// empty value appearing in NullFields will be sent to the server as
19945	// null. It is an error if a field in this list has a non-empty value.
19946	// This may be used to include null fields in Patch requests.
19947	NullFields []string `json:"-"`
19948}
19949
19950func (s *InterconnectAttachmentList) MarshalJSON() ([]byte, error) {
19951	type NoMethod InterconnectAttachmentList
19952	raw := NoMethod(*s)
19953	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19954}
19955
19956// InterconnectAttachmentListWarning: [Output Only] Informational
19957// warning message.
19958type InterconnectAttachmentListWarning struct {
19959	// Code: [Output Only] A warning code, if applicable. For example,
19960	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19961	// the response.
19962	//
19963	// Possible values:
19964	//   "CLEANUP_FAILED"
19965	//   "DEPRECATED_RESOURCE_USED"
19966	//   "DEPRECATED_TYPE_USED"
19967	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19968	//   "EXPERIMENTAL_TYPE_USED"
19969	//   "EXTERNAL_API_WARNING"
19970	//   "FIELD_VALUE_OVERRIDEN"
19971	//   "INJECTED_KERNELS_DEPRECATED"
19972	//   "LARGE_DEPLOYMENT_WARNING"
19973	//   "MISSING_TYPE_DEPENDENCY"
19974	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19975	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19976	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19977	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19978	//   "NEXT_HOP_NOT_RUNNING"
19979	//   "NOT_CRITICAL_ERROR"
19980	//   "NO_RESULTS_ON_PAGE"
19981	//   "PARTIAL_SUCCESS"
19982	//   "REQUIRED_TOS_AGREEMENT"
19983	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19984	//   "RESOURCE_NOT_DELETED"
19985	//   "SCHEMA_VALIDATION_IGNORED"
19986	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19987	//   "UNDECLARED_PROPERTIES"
19988	//   "UNREACHABLE"
19989	Code string `json:"code,omitempty"`
19990
19991	// Data: [Output Only] Metadata about this warning in key: value format.
19992	// For example:
19993	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19994	Data []*InterconnectAttachmentListWarningData `json:"data,omitempty"`
19995
19996	// Message: [Output Only] A human-readable description of the warning
19997	// code.
19998	Message string `json:"message,omitempty"`
19999
20000	// ForceSendFields is a list of field names (e.g. "Code") to
20001	// unconditionally include in API requests. By default, fields with
20002	// empty values are omitted from API requests. However, any non-pointer,
20003	// non-interface field appearing in ForceSendFields will be sent to the
20004	// server regardless of whether the field is empty or not. This may be
20005	// used to include empty fields in Patch requests.
20006	ForceSendFields []string `json:"-"`
20007
20008	// NullFields is a list of field names (e.g. "Code") to include in API
20009	// requests with the JSON null value. By default, fields with empty
20010	// values are omitted from API requests. However, any field with an
20011	// empty value appearing in NullFields will be sent to the server as
20012	// null. It is an error if a field in this list has a non-empty value.
20013	// This may be used to include null fields in Patch requests.
20014	NullFields []string `json:"-"`
20015}
20016
20017func (s *InterconnectAttachmentListWarning) MarshalJSON() ([]byte, error) {
20018	type NoMethod InterconnectAttachmentListWarning
20019	raw := NoMethod(*s)
20020	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20021}
20022
20023type InterconnectAttachmentListWarningData struct {
20024	// Key: [Output Only] A key that provides more detail on the warning
20025	// being returned. For example, for warnings where there are no results
20026	// in a list request for a particular zone, this key might be scope and
20027	// the key value might be the zone name. Other examples might be a key
20028	// indicating a deprecated resource and a suggested replacement, or a
20029	// warning about invalid network settings (for example, if an instance
20030	// attempts to perform IP forwarding but is not enabled for IP
20031	// forwarding).
20032	Key string `json:"key,omitempty"`
20033
20034	// Value: [Output Only] A warning data value corresponding to the key.
20035	Value string `json:"value,omitempty"`
20036
20037	// ForceSendFields is a list of field names (e.g. "Key") to
20038	// unconditionally include in API requests. By default, fields with
20039	// empty values are omitted from API requests. However, any non-pointer,
20040	// non-interface field appearing in ForceSendFields will be sent to the
20041	// server regardless of whether the field is empty or not. This may be
20042	// used to include empty fields in Patch requests.
20043	ForceSendFields []string `json:"-"`
20044
20045	// NullFields is a list of field names (e.g. "Key") to include in API
20046	// requests with the JSON null value. By default, fields with empty
20047	// values are omitted from API requests. However, any field with an
20048	// empty value appearing in NullFields will be sent to the server as
20049	// null. It is an error if a field in this list has a non-empty value.
20050	// This may be used to include null fields in Patch requests.
20051	NullFields []string `json:"-"`
20052}
20053
20054func (s *InterconnectAttachmentListWarningData) MarshalJSON() ([]byte, error) {
20055	type NoMethod InterconnectAttachmentListWarningData
20056	raw := NoMethod(*s)
20057	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20058}
20059
20060// InterconnectAttachmentPartnerMetadata: Informational metadata about
20061// Partner attachments from Partners to display to customers. These
20062// fields are propagated from PARTNER_PROVIDER attachments to their
20063// corresponding PARTNER attachments.
20064type InterconnectAttachmentPartnerMetadata struct {
20065	// InterconnectName: Plain text name of the Interconnect this attachment
20066	// is connected to, as displayed in the Partner's portal. For instance
20067	// "Chicago 1". This value may be validated to match approved Partner
20068	// values.
20069	InterconnectName string `json:"interconnectName,omitempty"`
20070
20071	// PartnerName: Plain text name of the Partner providing this
20072	// attachment. This value may be validated to match approved Partner
20073	// values.
20074	PartnerName string `json:"partnerName,omitempty"`
20075
20076	// PortalUrl: URL of the Partner's portal for this Attachment. Partners
20077	// may customise this to be a deep link to the specific resource on the
20078	// Partner portal. This value may be validated to match approved Partner
20079	// values.
20080	PortalUrl string `json:"portalUrl,omitempty"`
20081
20082	// ForceSendFields is a list of field names (e.g. "InterconnectName") to
20083	// unconditionally include in API requests. By default, fields with
20084	// empty values are omitted from API requests. However, any non-pointer,
20085	// non-interface field appearing in ForceSendFields will be sent to the
20086	// server regardless of whether the field is empty or not. This may be
20087	// used to include empty fields in Patch requests.
20088	ForceSendFields []string `json:"-"`
20089
20090	// NullFields is a list of field names (e.g. "InterconnectName") to
20091	// include in API requests with the JSON null value. By default, fields
20092	// with empty values are omitted from API requests. However, any field
20093	// with an empty value appearing in NullFields will be sent to the
20094	// server as null. It is an error if a field in this list has a
20095	// non-empty value. This may be used to include null fields in Patch
20096	// requests.
20097	NullFields []string `json:"-"`
20098}
20099
20100func (s *InterconnectAttachmentPartnerMetadata) MarshalJSON() ([]byte, error) {
20101	type NoMethod InterconnectAttachmentPartnerMetadata
20102	raw := NoMethod(*s)
20103	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20104}
20105
20106// InterconnectAttachmentPrivateInfo: Information for an interconnect
20107// attachment when this belongs to an interconnect of type DEDICATED.
20108type InterconnectAttachmentPrivateInfo struct {
20109	// Tag8021q: [Output Only] 802.1q encapsulation tag to be used for
20110	// traffic between Google and the customer, going to and from this
20111	// network and region.
20112	Tag8021q int64 `json:"tag8021q,omitempty"`
20113
20114	// ForceSendFields is a list of field names (e.g. "Tag8021q") to
20115	// unconditionally include in API requests. By default, fields with
20116	// empty values are omitted from API requests. However, any non-pointer,
20117	// non-interface field appearing in ForceSendFields will be sent to the
20118	// server regardless of whether the field is empty or not. This may be
20119	// used to include empty fields in Patch requests.
20120	ForceSendFields []string `json:"-"`
20121
20122	// NullFields is a list of field names (e.g. "Tag8021q") to include in
20123	// API requests with the JSON null value. By default, fields with empty
20124	// values are omitted from API requests. However, any field with an
20125	// empty value appearing in NullFields will be sent to the server as
20126	// null. It is an error if a field in this list has a non-empty value.
20127	// This may be used to include null fields in Patch requests.
20128	NullFields []string `json:"-"`
20129}
20130
20131func (s *InterconnectAttachmentPrivateInfo) MarshalJSON() ([]byte, error) {
20132	type NoMethod InterconnectAttachmentPrivateInfo
20133	raw := NoMethod(*s)
20134	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20135}
20136
20137type InterconnectAttachmentsScopedList struct {
20138	// InterconnectAttachments: A list of interconnect attachments contained
20139	// in this scope.
20140	InterconnectAttachments []*InterconnectAttachment `json:"interconnectAttachments,omitempty"`
20141
20142	// Warning: Informational warning which replaces the list of addresses
20143	// when the list is empty.
20144	Warning *InterconnectAttachmentsScopedListWarning `json:"warning,omitempty"`
20145
20146	// ForceSendFields is a list of field names (e.g.
20147	// "InterconnectAttachments") to unconditionally include in API
20148	// requests. By default, fields with empty values are omitted from API
20149	// requests. However, any non-pointer, non-interface field appearing in
20150	// ForceSendFields will be sent to the server regardless of whether the
20151	// field is empty or not. This may be used to include empty fields in
20152	// Patch requests.
20153	ForceSendFields []string `json:"-"`
20154
20155	// NullFields is a list of field names (e.g. "InterconnectAttachments")
20156	// to include in API requests with the JSON null value. By default,
20157	// fields with empty values are omitted from API requests. However, any
20158	// field with an empty value appearing in NullFields will be sent to the
20159	// server as null. It is an error if a field in this list has a
20160	// non-empty value. This may be used to include null fields in Patch
20161	// requests.
20162	NullFields []string `json:"-"`
20163}
20164
20165func (s *InterconnectAttachmentsScopedList) MarshalJSON() ([]byte, error) {
20166	type NoMethod InterconnectAttachmentsScopedList
20167	raw := NoMethod(*s)
20168	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20169}
20170
20171// InterconnectAttachmentsScopedListWarning: Informational warning which
20172// replaces the list of addresses when the list is empty.
20173type InterconnectAttachmentsScopedListWarning struct {
20174	// Code: [Output Only] A warning code, if applicable. For example,
20175	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20176	// the response.
20177	//
20178	// Possible values:
20179	//   "CLEANUP_FAILED"
20180	//   "DEPRECATED_RESOURCE_USED"
20181	//   "DEPRECATED_TYPE_USED"
20182	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
20183	//   "EXPERIMENTAL_TYPE_USED"
20184	//   "EXTERNAL_API_WARNING"
20185	//   "FIELD_VALUE_OVERRIDEN"
20186	//   "INJECTED_KERNELS_DEPRECATED"
20187	//   "LARGE_DEPLOYMENT_WARNING"
20188	//   "MISSING_TYPE_DEPENDENCY"
20189	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
20190	//   "NEXT_HOP_CANNOT_IP_FORWARD"
20191	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
20192	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
20193	//   "NEXT_HOP_NOT_RUNNING"
20194	//   "NOT_CRITICAL_ERROR"
20195	//   "NO_RESULTS_ON_PAGE"
20196	//   "PARTIAL_SUCCESS"
20197	//   "REQUIRED_TOS_AGREEMENT"
20198	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
20199	//   "RESOURCE_NOT_DELETED"
20200	//   "SCHEMA_VALIDATION_IGNORED"
20201	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
20202	//   "UNDECLARED_PROPERTIES"
20203	//   "UNREACHABLE"
20204	Code string `json:"code,omitempty"`
20205
20206	// Data: [Output Only] Metadata about this warning in key: value format.
20207	// For example:
20208	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
20209	Data []*InterconnectAttachmentsScopedListWarningData `json:"data,omitempty"`
20210
20211	// Message: [Output Only] A human-readable description of the warning
20212	// code.
20213	Message string `json:"message,omitempty"`
20214
20215	// ForceSendFields is a list of field names (e.g. "Code") to
20216	// unconditionally include in API requests. By default, fields with
20217	// empty values are omitted from API requests. However, any non-pointer,
20218	// non-interface field appearing in ForceSendFields will be sent to the
20219	// server regardless of whether the field is empty or not. This may be
20220	// used to include empty fields in Patch requests.
20221	ForceSendFields []string `json:"-"`
20222
20223	// NullFields is a list of field names (e.g. "Code") to include in API
20224	// requests with the JSON null value. By default, fields with empty
20225	// values are omitted from API requests. However, any field with an
20226	// empty value appearing in NullFields will be sent to the server as
20227	// null. It is an error if a field in this list has a non-empty value.
20228	// This may be used to include null fields in Patch requests.
20229	NullFields []string `json:"-"`
20230}
20231
20232func (s *InterconnectAttachmentsScopedListWarning) MarshalJSON() ([]byte, error) {
20233	type NoMethod InterconnectAttachmentsScopedListWarning
20234	raw := NoMethod(*s)
20235	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20236}
20237
20238type InterconnectAttachmentsScopedListWarningData struct {
20239	// Key: [Output Only] A key that provides more detail on the warning
20240	// being returned. For example, for warnings where there are no results
20241	// in a list request for a particular zone, this key might be scope and
20242	// the key value might be the zone name. Other examples might be a key
20243	// indicating a deprecated resource and a suggested replacement, or a
20244	// warning about invalid network settings (for example, if an instance
20245	// attempts to perform IP forwarding but is not enabled for IP
20246	// forwarding).
20247	Key string `json:"key,omitempty"`
20248
20249	// Value: [Output Only] A warning data value corresponding to the key.
20250	Value string `json:"value,omitempty"`
20251
20252	// ForceSendFields is a list of field names (e.g. "Key") to
20253	// unconditionally include in API requests. By default, fields with
20254	// empty values are omitted from API requests. However, any non-pointer,
20255	// non-interface field appearing in ForceSendFields will be sent to the
20256	// server regardless of whether the field is empty or not. This may be
20257	// used to include empty fields in Patch requests.
20258	ForceSendFields []string `json:"-"`
20259
20260	// NullFields is a list of field names (e.g. "Key") to include in API
20261	// requests with the JSON null value. By default, fields with empty
20262	// values are omitted from API requests. However, any field with an
20263	// empty value appearing in NullFields will be sent to the server as
20264	// null. It is an error if a field in this list has a non-empty value.
20265	// This may be used to include null fields in Patch requests.
20266	NullFields []string `json:"-"`
20267}
20268
20269func (s *InterconnectAttachmentsScopedListWarningData) MarshalJSON() ([]byte, error) {
20270	type NoMethod InterconnectAttachmentsScopedListWarningData
20271	raw := NoMethod(*s)
20272	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20273}
20274
20275// InterconnectCircuitInfo: Describes a single physical circuit between
20276// the Customer and Google. CircuitInfo objects are created by Google,
20277// so all fields are output only.
20278type InterconnectCircuitInfo struct {
20279	// CustomerDemarcId: Customer-side demarc ID for this circuit.
20280	CustomerDemarcId string `json:"customerDemarcId,omitempty"`
20281
20282	// GoogleCircuitId: Google-assigned unique ID for this circuit. Assigned
20283	// at circuit turn-up.
20284	GoogleCircuitId string `json:"googleCircuitId,omitempty"`
20285
20286	// GoogleDemarcId: Google-side demarc ID for this circuit. Assigned at
20287	// circuit turn-up and provided by Google to the customer in the LOA.
20288	GoogleDemarcId string `json:"googleDemarcId,omitempty"`
20289
20290	// ForceSendFields is a list of field names (e.g. "CustomerDemarcId") to
20291	// unconditionally include in API requests. By default, fields with
20292	// empty values are omitted from API requests. However, any non-pointer,
20293	// non-interface field appearing in ForceSendFields will be sent to the
20294	// server regardless of whether the field is empty or not. This may be
20295	// used to include empty fields in Patch requests.
20296	ForceSendFields []string `json:"-"`
20297
20298	// NullFields is a list of field names (e.g. "CustomerDemarcId") to
20299	// include in API requests with the JSON null value. By default, fields
20300	// with empty values are omitted from API requests. However, any field
20301	// with an empty value appearing in NullFields will be sent to the
20302	// server as null. It is an error if a field in this list has a
20303	// non-empty value. This may be used to include null fields in Patch
20304	// requests.
20305	NullFields []string `json:"-"`
20306}
20307
20308func (s *InterconnectCircuitInfo) MarshalJSON() ([]byte, error) {
20309	type NoMethod InterconnectCircuitInfo
20310	raw := NoMethod(*s)
20311	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20312}
20313
20314// InterconnectDiagnostics: Diagnostics information about interconnect,
20315// contains detailed and current technical information about Google's
20316// side of the connection.
20317type InterconnectDiagnostics struct {
20318	// ArpCaches: A list of InterconnectDiagnostics.ARPEntry objects,
20319	// describing individual neighbors currently seen by the Google router
20320	// in the ARP cache for the Interconnect. This will be empty when the
20321	// Interconnect is not bundled.
20322	ArpCaches []*InterconnectDiagnosticsARPEntry `json:"arpCaches,omitempty"`
20323
20324	// Links: A list of InterconnectDiagnostics.LinkStatus objects,
20325	// describing the status for each link on the Interconnect.
20326	Links []*InterconnectDiagnosticsLinkStatus `json:"links,omitempty"`
20327
20328	// MacAddress: The MAC address of the Interconnect's bundle interface.
20329	MacAddress string `json:"macAddress,omitempty"`
20330
20331	// ForceSendFields is a list of field names (e.g. "ArpCaches") to
20332	// unconditionally include in API requests. By default, fields with
20333	// empty values are omitted from API requests. However, any non-pointer,
20334	// non-interface field appearing in ForceSendFields will be sent to the
20335	// server regardless of whether the field is empty or not. This may be
20336	// used to include empty fields in Patch requests.
20337	ForceSendFields []string `json:"-"`
20338
20339	// NullFields is a list of field names (e.g. "ArpCaches") to include in
20340	// API requests with the JSON null value. By default, fields with empty
20341	// values are omitted from API requests. However, any field with an
20342	// empty value appearing in NullFields will be sent to the server as
20343	// null. It is an error if a field in this list has a non-empty value.
20344	// This may be used to include null fields in Patch requests.
20345	NullFields []string `json:"-"`
20346}
20347
20348func (s *InterconnectDiagnostics) MarshalJSON() ([]byte, error) {
20349	type NoMethod InterconnectDiagnostics
20350	raw := NoMethod(*s)
20351	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20352}
20353
20354// InterconnectDiagnosticsARPEntry: Describing the ARP neighbor entries
20355// seen on this link
20356type InterconnectDiagnosticsARPEntry struct {
20357	// IpAddress: The IP address of this ARP neighbor.
20358	IpAddress string `json:"ipAddress,omitempty"`
20359
20360	// MacAddress: The MAC address of this ARP neighbor.
20361	MacAddress string `json:"macAddress,omitempty"`
20362
20363	// ForceSendFields is a list of field names (e.g. "IpAddress") to
20364	// unconditionally include in API requests. By default, fields with
20365	// empty values are omitted from API requests. However, any non-pointer,
20366	// non-interface field appearing in ForceSendFields will be sent to the
20367	// server regardless of whether the field is empty or not. This may be
20368	// used to include empty fields in Patch requests.
20369	ForceSendFields []string `json:"-"`
20370
20371	// NullFields is a list of field names (e.g. "IpAddress") to include in
20372	// API requests with the JSON null value. By default, fields with empty
20373	// values are omitted from API requests. However, any field with an
20374	// empty value appearing in NullFields will be sent to the server as
20375	// null. It is an error if a field in this list has a non-empty value.
20376	// This may be used to include null fields in Patch requests.
20377	NullFields []string `json:"-"`
20378}
20379
20380func (s *InterconnectDiagnosticsARPEntry) MarshalJSON() ([]byte, error) {
20381	type NoMethod InterconnectDiagnosticsARPEntry
20382	raw := NoMethod(*s)
20383	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20384}
20385
20386type InterconnectDiagnosticsLinkLACPStatus struct {
20387	// GoogleSystemId: System ID of the port on Google's side of the LACP
20388	// exchange.
20389	GoogleSystemId string `json:"googleSystemId,omitempty"`
20390
20391	// NeighborSystemId: System ID of the port on the neighbor's side of the
20392	// LACP exchange.
20393	NeighborSystemId string `json:"neighborSystemId,omitempty"`
20394
20395	// State: The state of a LACP link, which can take one of the following
20396	// values:
20397	// - ACTIVE: The link is configured and active within the bundle.
20398	// - DETACHED: The link is not configured within the bundle. This means
20399	// that the rest of the object should be empty.
20400	//
20401	// Possible values:
20402	//   "ACTIVE"
20403	//   "DETACHED"
20404	State string `json:"state,omitempty"`
20405
20406	// ForceSendFields is a list of field names (e.g. "GoogleSystemId") to
20407	// unconditionally include in API requests. By default, fields with
20408	// empty values are omitted from API requests. However, any non-pointer,
20409	// non-interface field appearing in ForceSendFields will be sent to the
20410	// server regardless of whether the field is empty or not. This may be
20411	// used to include empty fields in Patch requests.
20412	ForceSendFields []string `json:"-"`
20413
20414	// NullFields is a list of field names (e.g. "GoogleSystemId") to
20415	// include in API requests with the JSON null value. By default, fields
20416	// with empty values are omitted from API requests. However, any field
20417	// with an empty value appearing in NullFields will be sent to the
20418	// server as null. It is an error if a field in this list has a
20419	// non-empty value. This may be used to include null fields in Patch
20420	// requests.
20421	NullFields []string `json:"-"`
20422}
20423
20424func (s *InterconnectDiagnosticsLinkLACPStatus) MarshalJSON() ([]byte, error) {
20425	type NoMethod InterconnectDiagnosticsLinkLACPStatus
20426	raw := NoMethod(*s)
20427	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20428}
20429
20430type InterconnectDiagnosticsLinkOpticalPower struct {
20431	// State: The status of the current value when compared to the warning
20432	// and alarm levels for the receiving or transmitting transceiver.
20433	// Possible states include:
20434	// - OK: The value has not crossed a warning threshold.
20435	// - LOW_WARNING: The value has crossed below the low warning threshold.
20436	//
20437	// - HIGH_WARNING: The value has crossed above the high warning
20438	// threshold.
20439	// - LOW_ALARM: The value has crossed below the low alarm threshold.
20440	// - HIGH_ALARM: The value has crossed above the high alarm threshold.
20441	//
20442	// Possible values:
20443	//   "HIGH_ALARM"
20444	//   "HIGH_WARNING"
20445	//   "LOW_ALARM"
20446	//   "LOW_WARNING"
20447	//   "OK"
20448	State string `json:"state,omitempty"`
20449
20450	// Value: Value of the current receiving or transmitting optical power,
20451	// read in dBm. Take a known good optical value, give it a 10% margin
20452	// and trigger warnings relative to that value. In general, a -7dBm
20453	// warning and a -11dBm alarm are good optical value estimates for most
20454	// links.
20455	Value float64 `json:"value,omitempty"`
20456
20457	// ForceSendFields is a list of field names (e.g. "State") to
20458	// unconditionally include in API requests. By default, fields with
20459	// empty values are omitted from API requests. However, any non-pointer,
20460	// non-interface field appearing in ForceSendFields will be sent to the
20461	// server regardless of whether the field is empty or not. This may be
20462	// used to include empty fields in Patch requests.
20463	ForceSendFields []string `json:"-"`
20464
20465	// NullFields is a list of field names (e.g. "State") to include in API
20466	// requests with the JSON null value. By default, fields with empty
20467	// values are omitted from API requests. However, any field with an
20468	// empty value appearing in NullFields will be sent to the server as
20469	// null. It is an error if a field in this list has a non-empty value.
20470	// This may be used to include null fields in Patch requests.
20471	NullFields []string `json:"-"`
20472}
20473
20474func (s *InterconnectDiagnosticsLinkOpticalPower) MarshalJSON() ([]byte, error) {
20475	type NoMethod InterconnectDiagnosticsLinkOpticalPower
20476	raw := NoMethod(*s)
20477	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20478}
20479
20480func (s *InterconnectDiagnosticsLinkOpticalPower) UnmarshalJSON(data []byte) error {
20481	type NoMethod InterconnectDiagnosticsLinkOpticalPower
20482	var s1 struct {
20483		Value gensupport.JSONFloat64 `json:"value"`
20484		*NoMethod
20485	}
20486	s1.NoMethod = (*NoMethod)(s)
20487	if err := json.Unmarshal(data, &s1); err != nil {
20488		return err
20489	}
20490	s.Value = float64(s1.Value)
20491	return nil
20492}
20493
20494type InterconnectDiagnosticsLinkStatus struct {
20495	// ArpCaches: A list of InterconnectDiagnostics.ARPEntry objects,
20496	// describing the ARP neighbor entries seen on this link. This will be
20497	// empty if the link is bundled
20498	ArpCaches []*InterconnectDiagnosticsARPEntry `json:"arpCaches,omitempty"`
20499
20500	// CircuitId: The unique ID for this link assigned during turn up by
20501	// Google.
20502	CircuitId string `json:"circuitId,omitempty"`
20503
20504	// GoogleDemarc: The Demarc address assigned by Google and provided in
20505	// the LoA.
20506	GoogleDemarc string `json:"googleDemarc,omitempty"`
20507
20508	LacpStatus *InterconnectDiagnosticsLinkLACPStatus `json:"lacpStatus,omitempty"`
20509
20510	// ReceivingOpticalPower: An InterconnectDiagnostics.LinkOpticalPower
20511	// object, describing the current value and status of the received light
20512	// level.
20513	ReceivingOpticalPower *InterconnectDiagnosticsLinkOpticalPower `json:"receivingOpticalPower,omitempty"`
20514
20515	// TransmittingOpticalPower: An InterconnectDiagnostics.LinkOpticalPower
20516	// object, describing the current value and status of the transmitted
20517	// light level.
20518	TransmittingOpticalPower *InterconnectDiagnosticsLinkOpticalPower `json:"transmittingOpticalPower,omitempty"`
20519
20520	// ForceSendFields is a list of field names (e.g. "ArpCaches") to
20521	// unconditionally include in API requests. By default, fields with
20522	// empty values are omitted from API requests. However, any non-pointer,
20523	// non-interface field appearing in ForceSendFields will be sent to the
20524	// server regardless of whether the field is empty or not. This may be
20525	// used to include empty fields in Patch requests.
20526	ForceSendFields []string `json:"-"`
20527
20528	// NullFields is a list of field names (e.g. "ArpCaches") to include in
20529	// API requests with the JSON null value. By default, fields with empty
20530	// values are omitted from API requests. However, any field with an
20531	// empty value appearing in NullFields will be sent to the server as
20532	// null. It is an error if a field in this list has a non-empty value.
20533	// This may be used to include null fields in Patch requests.
20534	NullFields []string `json:"-"`
20535}
20536
20537func (s *InterconnectDiagnosticsLinkStatus) MarshalJSON() ([]byte, error) {
20538	type NoMethod InterconnectDiagnosticsLinkStatus
20539	raw := NoMethod(*s)
20540	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20541}
20542
20543// InterconnectList: Response to the list request, and contains a list
20544// of interconnects.
20545type InterconnectList struct {
20546	// Id: [Output Only] Unique identifier for the resource; defined by the
20547	// server.
20548	Id string `json:"id,omitempty"`
20549
20550	// Items: A list of Interconnect resources.
20551	Items []*Interconnect `json:"items,omitempty"`
20552
20553	// Kind: [Output Only] Type of resource. Always compute#interconnectList
20554	// for lists of interconnects.
20555	Kind string `json:"kind,omitempty"`
20556
20557	// NextPageToken: [Output Only] This token allows you to get the next
20558	// page of results for list requests. If the number of results is larger
20559	// than maxResults, use the nextPageToken as a value for the query
20560	// parameter pageToken in the next list request. Subsequent list
20561	// requests will have their own nextPageToken to continue paging through
20562	// the results.
20563	NextPageToken string `json:"nextPageToken,omitempty"`
20564
20565	// SelfLink: [Output Only] Server-defined URL for this resource.
20566	SelfLink string `json:"selfLink,omitempty"`
20567
20568	// Warning: [Output Only] Informational warning message.
20569	Warning *InterconnectListWarning `json:"warning,omitempty"`
20570
20571	// ServerResponse contains the HTTP response code and headers from the
20572	// server.
20573	googleapi.ServerResponse `json:"-"`
20574
20575	// ForceSendFields is a list of field names (e.g. "Id") to
20576	// unconditionally include in API requests. By default, fields with
20577	// empty values are omitted from API requests. However, any non-pointer,
20578	// non-interface field appearing in ForceSendFields will be sent to the
20579	// server regardless of whether the field is empty or not. This may be
20580	// used to include empty fields in Patch requests.
20581	ForceSendFields []string `json:"-"`
20582
20583	// NullFields is a list of field names (e.g. "Id") to include in API
20584	// requests with the JSON null value. By default, fields with empty
20585	// values are omitted from API requests. However, any field with an
20586	// empty value appearing in NullFields will be sent to the server as
20587	// null. It is an error if a field in this list has a non-empty value.
20588	// This may be used to include null fields in Patch requests.
20589	NullFields []string `json:"-"`
20590}
20591
20592func (s *InterconnectList) MarshalJSON() ([]byte, error) {
20593	type NoMethod InterconnectList
20594	raw := NoMethod(*s)
20595	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20596}
20597
20598// InterconnectListWarning: [Output Only] Informational warning message.
20599type InterconnectListWarning struct {
20600	// Code: [Output Only] A warning code, if applicable. For example,
20601	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20602	// the response.
20603	//
20604	// Possible values:
20605	//   "CLEANUP_FAILED"
20606	//   "DEPRECATED_RESOURCE_USED"
20607	//   "DEPRECATED_TYPE_USED"
20608	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
20609	//   "EXPERIMENTAL_TYPE_USED"
20610	//   "EXTERNAL_API_WARNING"
20611	//   "FIELD_VALUE_OVERRIDEN"
20612	//   "INJECTED_KERNELS_DEPRECATED"
20613	//   "LARGE_DEPLOYMENT_WARNING"
20614	//   "MISSING_TYPE_DEPENDENCY"
20615	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
20616	//   "NEXT_HOP_CANNOT_IP_FORWARD"
20617	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
20618	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
20619	//   "NEXT_HOP_NOT_RUNNING"
20620	//   "NOT_CRITICAL_ERROR"
20621	//   "NO_RESULTS_ON_PAGE"
20622	//   "PARTIAL_SUCCESS"
20623	//   "REQUIRED_TOS_AGREEMENT"
20624	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
20625	//   "RESOURCE_NOT_DELETED"
20626	//   "SCHEMA_VALIDATION_IGNORED"
20627	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
20628	//   "UNDECLARED_PROPERTIES"
20629	//   "UNREACHABLE"
20630	Code string `json:"code,omitempty"`
20631
20632	// Data: [Output Only] Metadata about this warning in key: value format.
20633	// For example:
20634	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
20635	Data []*InterconnectListWarningData `json:"data,omitempty"`
20636
20637	// Message: [Output Only] A human-readable description of the warning
20638	// code.
20639	Message string `json:"message,omitempty"`
20640
20641	// ForceSendFields is a list of field names (e.g. "Code") to
20642	// unconditionally include in API requests. By default, fields with
20643	// empty values are omitted from API requests. However, any non-pointer,
20644	// non-interface field appearing in ForceSendFields will be sent to the
20645	// server regardless of whether the field is empty or not. This may be
20646	// used to include empty fields in Patch requests.
20647	ForceSendFields []string `json:"-"`
20648
20649	// NullFields is a list of field names (e.g. "Code") to include in API
20650	// requests with the JSON null value. By default, fields with empty
20651	// values are omitted from API requests. However, any field with an
20652	// empty value appearing in NullFields will be sent to the server as
20653	// null. It is an error if a field in this list has a non-empty value.
20654	// This may be used to include null fields in Patch requests.
20655	NullFields []string `json:"-"`
20656}
20657
20658func (s *InterconnectListWarning) MarshalJSON() ([]byte, error) {
20659	type NoMethod InterconnectListWarning
20660	raw := NoMethod(*s)
20661	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20662}
20663
20664type InterconnectListWarningData struct {
20665	// Key: [Output Only] A key that provides more detail on the warning
20666	// being returned. For example, for warnings where there are no results
20667	// in a list request for a particular zone, this key might be scope and
20668	// the key value might be the zone name. Other examples might be a key
20669	// indicating a deprecated resource and a suggested replacement, or a
20670	// warning about invalid network settings (for example, if an instance
20671	// attempts to perform IP forwarding but is not enabled for IP
20672	// forwarding).
20673	Key string `json:"key,omitempty"`
20674
20675	// Value: [Output Only] A warning data value corresponding to the key.
20676	Value string `json:"value,omitempty"`
20677
20678	// ForceSendFields is a list of field names (e.g. "Key") to
20679	// unconditionally include in API requests. By default, fields with
20680	// empty values are omitted from API requests. However, any non-pointer,
20681	// non-interface field appearing in ForceSendFields will be sent to the
20682	// server regardless of whether the field is empty or not. This may be
20683	// used to include empty fields in Patch requests.
20684	ForceSendFields []string `json:"-"`
20685
20686	// NullFields is a list of field names (e.g. "Key") to include in API
20687	// requests with the JSON null value. By default, fields with empty
20688	// values are omitted from API requests. However, any field with an
20689	// empty value appearing in NullFields will be sent to the server as
20690	// null. It is an error if a field in this list has a non-empty value.
20691	// This may be used to include null fields in Patch requests.
20692	NullFields []string `json:"-"`
20693}
20694
20695func (s *InterconnectListWarningData) MarshalJSON() ([]byte, error) {
20696	type NoMethod InterconnectListWarningData
20697	raw := NoMethod(*s)
20698	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20699}
20700
20701// InterconnectLocation: Represents an Interconnect Attachment (VLAN)
20702// Location resource.
20703//
20704// You can use this resource to find location details about an
20705// Interconnect attachment (VLAN). For more information about
20706// interconnect attachments, read  Creating VLAN Attachments.
20707type InterconnectLocation struct {
20708	// Address: [Output Only] The postal address of the Point of Presence,
20709	// each line in the address is separated by a newline character.
20710	Address string `json:"address,omitempty"`
20711
20712	// AvailabilityZone: [Output Only] Availability zone for this
20713	// InterconnectLocation. Within a metropolitan area (metro), maintenance
20714	// will not be simultaneously scheduled in more than one availability
20715	// zone. Example: "zone1" or "zone2".
20716	AvailabilityZone string `json:"availabilityZone,omitempty"`
20717
20718	// City: [Output Only] Metropolitan area designator that indicates which
20719	// city an interconnect is located. For example: "Chicago, IL",
20720	// "Amsterdam, Netherlands".
20721	City string `json:"city,omitempty"`
20722
20723	// Continent: [Output Only] Continent for this location, which can take
20724	// one of the following values:
20725	// - AFRICA
20726	// - ASIA_PAC
20727	// - EUROPE
20728	// - NORTH_AMERICA
20729	// - SOUTH_AMERICA
20730	//
20731	// Possible values:
20732	//   "AFRICA"
20733	//   "ASIA_PAC"
20734	//   "C_AFRICA"
20735	//   "C_ASIA_PAC"
20736	//   "C_EUROPE"
20737	//   "C_NORTH_AMERICA"
20738	//   "C_SOUTH_AMERICA"
20739	//   "EUROPE"
20740	//   "NORTH_AMERICA"
20741	//   "SOUTH_AMERICA"
20742	Continent string `json:"continent,omitempty"`
20743
20744	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
20745	// format.
20746	CreationTimestamp string `json:"creationTimestamp,omitempty"`
20747
20748	// Description: [Output Only] An optional description of the resource.
20749	Description string `json:"description,omitempty"`
20750
20751	// FacilityProvider: [Output Only] The name of the provider for this
20752	// facility (e.g., EQUINIX).
20753	FacilityProvider string `json:"facilityProvider,omitempty"`
20754
20755	// FacilityProviderFacilityId: [Output Only] A provider-assigned
20756	// Identifier for this facility (e.g., Ashburn-DC1).
20757	FacilityProviderFacilityId string `json:"facilityProviderFacilityId,omitempty"`
20758
20759	// Id: [Output Only] The unique identifier for the resource. This
20760	// identifier is defined by the server.
20761	Id uint64 `json:"id,omitempty,string"`
20762
20763	// Kind: [Output Only] Type of the resource. Always
20764	// compute#interconnectLocation for interconnect locations.
20765	Kind string `json:"kind,omitempty"`
20766
20767	// Name: [Output Only] Name of the resource.
20768	Name string `json:"name,omitempty"`
20769
20770	// PeeringdbFacilityId: [Output Only] The peeringdb identifier for this
20771	// facility (corresponding with a netfac type in peeringdb).
20772	PeeringdbFacilityId string `json:"peeringdbFacilityId,omitempty"`
20773
20774	// RegionInfos: [Output Only] A list of InterconnectLocation.RegionInfo
20775	// objects, that describe parameters pertaining to the relation between
20776	// this InterconnectLocation and various Google Cloud regions.
20777	RegionInfos []*InterconnectLocationRegionInfo `json:"regionInfos,omitempty"`
20778
20779	// SelfLink: [Output Only] Server-defined URL for the resource.
20780	SelfLink string `json:"selfLink,omitempty"`
20781
20782	// Status: [Output Only] The status of this InterconnectLocation, which
20783	// can take one of the following values:
20784	// - CLOSED: The InterconnectLocation is closed and is unavailable for
20785	// provisioning new Interconnects.
20786	// - AVAILABLE: The InterconnectLocation is available for provisioning
20787	// new Interconnects.
20788	//
20789	// Possible values:
20790	//   "AVAILABLE"
20791	//   "CLOSED"
20792	Status string `json:"status,omitempty"`
20793
20794	// ServerResponse contains the HTTP response code and headers from the
20795	// server.
20796	googleapi.ServerResponse `json:"-"`
20797
20798	// ForceSendFields is a list of field names (e.g. "Address") to
20799	// unconditionally include in API requests. By default, fields with
20800	// empty values are omitted from API requests. However, any non-pointer,
20801	// non-interface field appearing in ForceSendFields will be sent to the
20802	// server regardless of whether the field is empty or not. This may be
20803	// used to include empty fields in Patch requests.
20804	ForceSendFields []string `json:"-"`
20805
20806	// NullFields is a list of field names (e.g. "Address") to include in
20807	// API requests with the JSON null value. By default, fields with empty
20808	// values are omitted from API requests. However, any field with an
20809	// empty value appearing in NullFields will be sent to the server as
20810	// null. It is an error if a field in this list has a non-empty value.
20811	// This may be used to include null fields in Patch requests.
20812	NullFields []string `json:"-"`
20813}
20814
20815func (s *InterconnectLocation) MarshalJSON() ([]byte, error) {
20816	type NoMethod InterconnectLocation
20817	raw := NoMethod(*s)
20818	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20819}
20820
20821// InterconnectLocationList: Response to the list request, and contains
20822// a list of interconnect locations.
20823type InterconnectLocationList struct {
20824	// Id: [Output Only] Unique identifier for the resource; defined by the
20825	// server.
20826	Id string `json:"id,omitempty"`
20827
20828	// Items: A list of InterconnectLocation resources.
20829	Items []*InterconnectLocation `json:"items,omitempty"`
20830
20831	// Kind: [Output Only] Type of resource. Always
20832	// compute#interconnectLocationList for lists of interconnect locations.
20833	Kind string `json:"kind,omitempty"`
20834
20835	// NextPageToken: [Output Only] This token allows you to get the next
20836	// page of results for list requests. If the number of results is larger
20837	// than maxResults, use the nextPageToken as a value for the query
20838	// parameter pageToken in the next list request. Subsequent list
20839	// requests will have their own nextPageToken to continue paging through
20840	// the results.
20841	NextPageToken string `json:"nextPageToken,omitempty"`
20842
20843	// SelfLink: [Output Only] Server-defined URL for this resource.
20844	SelfLink string `json:"selfLink,omitempty"`
20845
20846	// Warning: [Output Only] Informational warning message.
20847	Warning *InterconnectLocationListWarning `json:"warning,omitempty"`
20848
20849	// ServerResponse contains the HTTP response code and headers from the
20850	// server.
20851	googleapi.ServerResponse `json:"-"`
20852
20853	// ForceSendFields is a list of field names (e.g. "Id") to
20854	// unconditionally include in API requests. By default, fields with
20855	// empty values are omitted from API requests. However, any non-pointer,
20856	// non-interface field appearing in ForceSendFields will be sent to the
20857	// server regardless of whether the field is empty or not. This may be
20858	// used to include empty fields in Patch requests.
20859	ForceSendFields []string `json:"-"`
20860
20861	// NullFields is a list of field names (e.g. "Id") to include in API
20862	// requests with the JSON null value. By default, fields with empty
20863	// values are omitted from API requests. However, any field with an
20864	// empty value appearing in NullFields will be sent to the server as
20865	// null. It is an error if a field in this list has a non-empty value.
20866	// This may be used to include null fields in Patch requests.
20867	NullFields []string `json:"-"`
20868}
20869
20870func (s *InterconnectLocationList) MarshalJSON() ([]byte, error) {
20871	type NoMethod InterconnectLocationList
20872	raw := NoMethod(*s)
20873	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20874}
20875
20876// InterconnectLocationListWarning: [Output Only] Informational warning
20877// message.
20878type InterconnectLocationListWarning struct {
20879	// Code: [Output Only] A warning code, if applicable. For example,
20880	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20881	// the response.
20882	//
20883	// Possible values:
20884	//   "CLEANUP_FAILED"
20885	//   "DEPRECATED_RESOURCE_USED"
20886	//   "DEPRECATED_TYPE_USED"
20887	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
20888	//   "EXPERIMENTAL_TYPE_USED"
20889	//   "EXTERNAL_API_WARNING"
20890	//   "FIELD_VALUE_OVERRIDEN"
20891	//   "INJECTED_KERNELS_DEPRECATED"
20892	//   "LARGE_DEPLOYMENT_WARNING"
20893	//   "MISSING_TYPE_DEPENDENCY"
20894	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
20895	//   "NEXT_HOP_CANNOT_IP_FORWARD"
20896	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
20897	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
20898	//   "NEXT_HOP_NOT_RUNNING"
20899	//   "NOT_CRITICAL_ERROR"
20900	//   "NO_RESULTS_ON_PAGE"
20901	//   "PARTIAL_SUCCESS"
20902	//   "REQUIRED_TOS_AGREEMENT"
20903	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
20904	//   "RESOURCE_NOT_DELETED"
20905	//   "SCHEMA_VALIDATION_IGNORED"
20906	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
20907	//   "UNDECLARED_PROPERTIES"
20908	//   "UNREACHABLE"
20909	Code string `json:"code,omitempty"`
20910
20911	// Data: [Output Only] Metadata about this warning in key: value format.
20912	// For example:
20913	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
20914	Data []*InterconnectLocationListWarningData `json:"data,omitempty"`
20915
20916	// Message: [Output Only] A human-readable description of the warning
20917	// code.
20918	Message string `json:"message,omitempty"`
20919
20920	// ForceSendFields is a list of field names (e.g. "Code") to
20921	// unconditionally include in API requests. By default, fields with
20922	// empty values are omitted from API requests. However, any non-pointer,
20923	// non-interface field appearing in ForceSendFields will be sent to the
20924	// server regardless of whether the field is empty or not. This may be
20925	// used to include empty fields in Patch requests.
20926	ForceSendFields []string `json:"-"`
20927
20928	// NullFields is a list of field names (e.g. "Code") to include in API
20929	// requests with the JSON null value. By default, fields with empty
20930	// values are omitted from API requests. However, any field with an
20931	// empty value appearing in NullFields will be sent to the server as
20932	// null. It is an error if a field in this list has a non-empty value.
20933	// This may be used to include null fields in Patch requests.
20934	NullFields []string `json:"-"`
20935}
20936
20937func (s *InterconnectLocationListWarning) MarshalJSON() ([]byte, error) {
20938	type NoMethod InterconnectLocationListWarning
20939	raw := NoMethod(*s)
20940	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20941}
20942
20943type InterconnectLocationListWarningData struct {
20944	// Key: [Output Only] A key that provides more detail on the warning
20945	// being returned. For example, for warnings where there are no results
20946	// in a list request for a particular zone, this key might be scope and
20947	// the key value might be the zone name. Other examples might be a key
20948	// indicating a deprecated resource and a suggested replacement, or a
20949	// warning about invalid network settings (for example, if an instance
20950	// attempts to perform IP forwarding but is not enabled for IP
20951	// forwarding).
20952	Key string `json:"key,omitempty"`
20953
20954	// Value: [Output Only] A warning data value corresponding to the key.
20955	Value string `json:"value,omitempty"`
20956
20957	// ForceSendFields is a list of field names (e.g. "Key") to
20958	// unconditionally include in API requests. By default, fields with
20959	// empty values are omitted from API requests. However, any non-pointer,
20960	// non-interface field appearing in ForceSendFields will be sent to the
20961	// server regardless of whether the field is empty or not. This may be
20962	// used to include empty fields in Patch requests.
20963	ForceSendFields []string `json:"-"`
20964
20965	// NullFields is a list of field names (e.g. "Key") to include in API
20966	// requests with the JSON null value. By default, fields with empty
20967	// values are omitted from API requests. However, any field with an
20968	// empty value appearing in NullFields will be sent to the server as
20969	// null. It is an error if a field in this list has a non-empty value.
20970	// This may be used to include null fields in Patch requests.
20971	NullFields []string `json:"-"`
20972}
20973
20974func (s *InterconnectLocationListWarningData) MarshalJSON() ([]byte, error) {
20975	type NoMethod InterconnectLocationListWarningData
20976	raw := NoMethod(*s)
20977	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20978}
20979
20980// InterconnectLocationRegionInfo: Information about any potential
20981// InterconnectAttachments between an Interconnect at a specific
20982// InterconnectLocation, and a specific Cloud Region.
20983type InterconnectLocationRegionInfo struct {
20984	// ExpectedRttMs: Expected round-trip time in milliseconds, from this
20985	// InterconnectLocation to a VM in this region.
20986	ExpectedRttMs int64 `json:"expectedRttMs,omitempty,string"`
20987
20988	// LocationPresence: Identifies the network presence of this location.
20989	//
20990	// Possible values:
20991	//   "GLOBAL"
20992	//   "LOCAL_REGION"
20993	//   "LP_GLOBAL"
20994	//   "LP_LOCAL_REGION"
20995	LocationPresence string `json:"locationPresence,omitempty"`
20996
20997	// Region: URL for the region of this location.
20998	Region string `json:"region,omitempty"`
20999
21000	// ForceSendFields is a list of field names (e.g. "ExpectedRttMs") to
21001	// unconditionally include in API requests. By default, fields with
21002	// empty values are omitted from API requests. However, any non-pointer,
21003	// non-interface field appearing in ForceSendFields will be sent to the
21004	// server regardless of whether the field is empty or not. This may be
21005	// used to include empty fields in Patch requests.
21006	ForceSendFields []string `json:"-"`
21007
21008	// NullFields is a list of field names (e.g. "ExpectedRttMs") to include
21009	// in API requests with the JSON null value. By default, fields with
21010	// empty values are omitted from API requests. However, any field with
21011	// an empty value appearing in NullFields will be sent to the server as
21012	// null. It is an error if a field in this list has a non-empty value.
21013	// This may be used to include null fields in Patch requests.
21014	NullFields []string `json:"-"`
21015}
21016
21017func (s *InterconnectLocationRegionInfo) MarshalJSON() ([]byte, error) {
21018	type NoMethod InterconnectLocationRegionInfo
21019	raw := NoMethod(*s)
21020	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21021}
21022
21023// InterconnectOutageNotification: Description of a planned outage on
21024// this Interconnect.
21025type InterconnectOutageNotification struct {
21026	// AffectedCircuits: If issue_type is IT_PARTIAL_OUTAGE, a list of the
21027	// Google-side circuit IDs that will be affected.
21028	AffectedCircuits []string `json:"affectedCircuits,omitempty"`
21029
21030	// Description: A description about the purpose of the outage.
21031	Description string `json:"description,omitempty"`
21032
21033	// EndTime: Scheduled end time for the outage (milliseconds since Unix
21034	// epoch).
21035	EndTime int64 `json:"endTime,omitempty,string"`
21036
21037	// IssueType: Form this outage is expected to take, which can take one
21038	// of the following values:
21039	// - OUTAGE: The Interconnect may be completely out of service for some
21040	// or all of the specified window.
21041	// - PARTIAL_OUTAGE: Some circuits comprising the Interconnect as a
21042	// whole should remain up, but with reduced bandwidth. Note that the
21043	// versions of this enum prefixed with "IT_" have been deprecated in
21044	// favor of the unprefixed values.
21045	//
21046	// Possible values:
21047	//   "IT_OUTAGE"
21048	//   "IT_PARTIAL_OUTAGE"
21049	//   "OUTAGE"
21050	//   "PARTIAL_OUTAGE"
21051	IssueType string `json:"issueType,omitempty"`
21052
21053	// Name: Unique identifier for this outage notification.
21054	Name string `json:"name,omitempty"`
21055
21056	// Source: The party that generated this notification, which can take
21057	// the following value:
21058	// - GOOGLE: this notification as generated by Google. Note that the
21059	// value of NSRC_GOOGLE has been deprecated in favor of GOOGLE.
21060	//
21061	// Possible values:
21062	//   "GOOGLE"
21063	//   "NSRC_GOOGLE"
21064	Source string `json:"source,omitempty"`
21065
21066	// StartTime: Scheduled start time for the outage (milliseconds since
21067	// Unix epoch).
21068	StartTime int64 `json:"startTime,omitempty,string"`
21069
21070	// State: State of this notification, which can take one of the
21071	// following values:
21072	// - ACTIVE: This outage notification is active. The event could be in
21073	// the past, present, or future. See start_time and end_time for
21074	// scheduling.
21075	// - CANCELLED: The outage associated with this notification was
21076	// cancelled before the outage was due to start.
21077	// - COMPLETED: The outage associated with this notification is
21078	// complete.  Note that the versions of this enum prefixed with "NS_"
21079	// have been deprecated in favor of the unprefixed values.
21080	//
21081	// Possible values:
21082	//   "ACTIVE"
21083	//   "CANCELLED"
21084	//   "COMPLETED"
21085	//   "NS_ACTIVE"
21086	//   "NS_CANCELED"
21087	State string `json:"state,omitempty"`
21088
21089	// ForceSendFields is a list of field names (e.g. "AffectedCircuits") to
21090	// unconditionally include in API requests. By default, fields with
21091	// empty values are omitted from API requests. However, any non-pointer,
21092	// non-interface field appearing in ForceSendFields will be sent to the
21093	// server regardless of whether the field is empty or not. This may be
21094	// used to include empty fields in Patch requests.
21095	ForceSendFields []string `json:"-"`
21096
21097	// NullFields is a list of field names (e.g. "AffectedCircuits") to
21098	// include in API requests with the JSON null value. By default, fields
21099	// with empty values are omitted from API requests. However, any field
21100	// with an empty value appearing in NullFields will be sent to the
21101	// server as null. It is an error if a field in this list has a
21102	// non-empty value. This may be used to include null fields in Patch
21103	// requests.
21104	NullFields []string `json:"-"`
21105}
21106
21107func (s *InterconnectOutageNotification) MarshalJSON() ([]byte, error) {
21108	type NoMethod InterconnectOutageNotification
21109	raw := NoMethod(*s)
21110	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21111}
21112
21113// InterconnectsGetDiagnosticsResponse: Response for the
21114// InterconnectsGetDiagnosticsRequest.
21115type InterconnectsGetDiagnosticsResponse struct {
21116	Result *InterconnectDiagnostics `json:"result,omitempty"`
21117
21118	// ServerResponse contains the HTTP response code and headers from the
21119	// server.
21120	googleapi.ServerResponse `json:"-"`
21121
21122	// ForceSendFields is a list of field names (e.g. "Result") to
21123	// unconditionally include in API requests. By default, fields with
21124	// empty values are omitted from API requests. However, any non-pointer,
21125	// non-interface field appearing in ForceSendFields will be sent to the
21126	// server regardless of whether the field is empty or not. This may be
21127	// used to include empty fields in Patch requests.
21128	ForceSendFields []string `json:"-"`
21129
21130	// NullFields is a list of field names (e.g. "Result") to include in API
21131	// requests with the JSON null value. By default, fields with empty
21132	// values are omitted from API requests. However, any field with an
21133	// empty value appearing in NullFields will be sent to the server as
21134	// null. It is an error if a field in this list has a non-empty value.
21135	// This may be used to include null fields in Patch requests.
21136	NullFields []string `json:"-"`
21137}
21138
21139func (s *InterconnectsGetDiagnosticsResponse) MarshalJSON() ([]byte, error) {
21140	type NoMethod InterconnectsGetDiagnosticsResponse
21141	raw := NoMethod(*s)
21142	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21143}
21144
21145// License: Represents a License resource.
21146//
21147// A License represents billing and aggregate usage data for public and
21148// marketplace images.  Caution This resource is intended for use only
21149// by third-party partners who are creating Cloud Marketplace images.
21150// (== resource_for {$api_version}.licenses ==)
21151type License struct {
21152	// ChargesUseFee: [Output Only] Deprecated. This field no longer
21153	// reflects whether a license charges a usage fee.
21154	ChargesUseFee bool `json:"chargesUseFee,omitempty"`
21155
21156	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
21157	// format.
21158	CreationTimestamp string `json:"creationTimestamp,omitempty"`
21159
21160	// Description: An optional textual description of the resource;
21161	// provided by the client when the resource is created.
21162	Description string `json:"description,omitempty"`
21163
21164	// Id: [Output Only] The unique identifier for the resource. This
21165	// identifier is defined by the server.
21166	Id uint64 `json:"id,omitempty,string"`
21167
21168	// Kind: [Output Only] Type of resource. Always compute#license for
21169	// licenses.
21170	Kind string `json:"kind,omitempty"`
21171
21172	// LicenseCode: [Output Only] The unique code used to attach this
21173	// license to images, snapshots, and disks.
21174	LicenseCode uint64 `json:"licenseCode,omitempty,string"`
21175
21176	// Name: Name of the resource. The name must be 1-63 characters long and
21177	// comply with RFC1035.
21178	Name string `json:"name,omitempty"`
21179
21180	ResourceRequirements *LicenseResourceRequirements `json:"resourceRequirements,omitempty"`
21181
21182	// SelfLink: [Output Only] Server-defined URL for the resource.
21183	SelfLink string `json:"selfLink,omitempty"`
21184
21185	// Transferable: If false, licenses will not be copied from the source
21186	// resource when creating an image from a disk, disk from snapshot, or
21187	// snapshot from disk.
21188	Transferable bool `json:"transferable,omitempty"`
21189
21190	// ServerResponse contains the HTTP response code and headers from the
21191	// server.
21192	googleapi.ServerResponse `json:"-"`
21193
21194	// ForceSendFields is a list of field names (e.g. "ChargesUseFee") to
21195	// unconditionally include in API requests. By default, fields with
21196	// empty values are omitted from API requests. However, any non-pointer,
21197	// non-interface field appearing in ForceSendFields will be sent to the
21198	// server regardless of whether the field is empty or not. This may be
21199	// used to include empty fields in Patch requests.
21200	ForceSendFields []string `json:"-"`
21201
21202	// NullFields is a list of field names (e.g. "ChargesUseFee") to include
21203	// in API requests with the JSON null value. By default, fields with
21204	// empty values are omitted from API requests. However, any field with
21205	// an empty value appearing in NullFields will be sent to the server as
21206	// null. It is an error if a field in this list has a non-empty value.
21207	// This may be used to include null fields in Patch requests.
21208	NullFields []string `json:"-"`
21209}
21210
21211func (s *License) MarshalJSON() ([]byte, error) {
21212	type NoMethod License
21213	raw := NoMethod(*s)
21214	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21215}
21216
21217// LicenseCode: Represents a License Code resource.
21218//
21219// A License Code is a unique identifier used to represent a license
21220// resource.  Caution This resource is intended for use only by
21221// third-party partners who are creating Cloud Marketplace images. (==
21222// resource_for {$api_version}.licenseCodes ==)
21223type LicenseCode struct {
21224	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
21225	// format.
21226	CreationTimestamp string `json:"creationTimestamp,omitempty"`
21227
21228	// Description: [Output Only] Description of this License Code.
21229	Description string `json:"description,omitempty"`
21230
21231	// Id: [Output Only] The unique identifier for the resource. This
21232	// identifier is defined by the server.
21233	Id uint64 `json:"id,omitempty,string"`
21234
21235	// Kind: [Output Only] Type of resource. Always compute#licenseCode for
21236	// licenses.
21237	Kind string `json:"kind,omitempty"`
21238
21239	// LicenseAlias: [Output Only] URL and description aliases of Licenses
21240	// with the same License Code.
21241	LicenseAlias []*LicenseCodeLicenseAlias `json:"licenseAlias,omitempty"`
21242
21243	// Name: [Output Only] Name of the resource. The name is 1-20 characters
21244	// long and must be a valid 64 bit integer.
21245	Name string `json:"name,omitempty"`
21246
21247	// SelfLink: [Output Only] Server-defined URL for the resource.
21248	SelfLink string `json:"selfLink,omitempty"`
21249
21250	// State: [Output Only] Current state of this License Code.
21251	//
21252	// Possible values:
21253	//   "DISABLED"
21254	//   "ENABLED"
21255	//   "RESTRICTED"
21256	//   "STATE_UNSPECIFIED"
21257	//   "TERMINATED"
21258	State string `json:"state,omitempty"`
21259
21260	// Transferable: [Output Only] If true, the license will remain attached
21261	// when creating images or snapshots from disks. Otherwise, the license
21262	// is not transferred.
21263	Transferable bool `json:"transferable,omitempty"`
21264
21265	// ServerResponse contains the HTTP response code and headers from the
21266	// server.
21267	googleapi.ServerResponse `json:"-"`
21268
21269	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
21270	// to unconditionally include in API requests. By default, fields with
21271	// empty values are omitted from API requests. However, any non-pointer,
21272	// non-interface field appearing in ForceSendFields will be sent to the
21273	// server regardless of whether the field is empty or not. This may be
21274	// used to include empty fields in Patch requests.
21275	ForceSendFields []string `json:"-"`
21276
21277	// NullFields is a list of field names (e.g. "CreationTimestamp") to
21278	// include in API requests with the JSON null value. By default, fields
21279	// with empty values are omitted from API requests. However, any field
21280	// with an empty value appearing in NullFields will be sent to the
21281	// server as null. It is an error if a field in this list has a
21282	// non-empty value. This may be used to include null fields in Patch
21283	// requests.
21284	NullFields []string `json:"-"`
21285}
21286
21287func (s *LicenseCode) MarshalJSON() ([]byte, error) {
21288	type NoMethod LicenseCode
21289	raw := NoMethod(*s)
21290	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21291}
21292
21293type LicenseCodeLicenseAlias struct {
21294	// Description: [Output Only] Description of this License Code.
21295	Description string `json:"description,omitempty"`
21296
21297	// SelfLink: [Output Only] URL of license corresponding to this License
21298	// Code.
21299	SelfLink string `json:"selfLink,omitempty"`
21300
21301	// ForceSendFields is a list of field names (e.g. "Description") to
21302	// unconditionally include in API requests. By default, fields with
21303	// empty values are omitted from API requests. However, any non-pointer,
21304	// non-interface field appearing in ForceSendFields will be sent to the
21305	// server regardless of whether the field is empty or not. This may be
21306	// used to include empty fields in Patch requests.
21307	ForceSendFields []string `json:"-"`
21308
21309	// NullFields is a list of field names (e.g. "Description") to include
21310	// in API requests with the JSON null value. By default, fields with
21311	// empty values are omitted from API requests. However, any field with
21312	// an empty value appearing in NullFields will be sent to the server as
21313	// null. It is an error if a field in this list has a non-empty value.
21314	// This may be used to include null fields in Patch requests.
21315	NullFields []string `json:"-"`
21316}
21317
21318func (s *LicenseCodeLicenseAlias) MarshalJSON() ([]byte, error) {
21319	type NoMethod LicenseCodeLicenseAlias
21320	raw := NoMethod(*s)
21321	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21322}
21323
21324// LicenseResourceCommitment: Commitment for a particular license
21325// resource.
21326type LicenseResourceCommitment struct {
21327	// Amount: The number of licenses purchased.
21328	Amount int64 `json:"amount,omitempty,string"`
21329
21330	// CoresPerLicense: Specifies the core range of the instance for which
21331	// this license applies.
21332	CoresPerLicense string `json:"coresPerLicense,omitempty"`
21333
21334	// License: Any applicable license URI.
21335	License string `json:"license,omitempty"`
21336
21337	// ForceSendFields is a list of field names (e.g. "Amount") to
21338	// unconditionally include in API requests. By default, fields with
21339	// empty values are omitted from API requests. However, any non-pointer,
21340	// non-interface field appearing in ForceSendFields will be sent to the
21341	// server regardless of whether the field is empty or not. This may be
21342	// used to include empty fields in Patch requests.
21343	ForceSendFields []string `json:"-"`
21344
21345	// NullFields is a list of field names (e.g. "Amount") to include in API
21346	// requests with the JSON null value. By default, fields with empty
21347	// values are omitted from API requests. However, any field with an
21348	// empty value appearing in NullFields will be sent to the server as
21349	// null. It is an error if a field in this list has a non-empty value.
21350	// This may be used to include null fields in Patch requests.
21351	NullFields []string `json:"-"`
21352}
21353
21354func (s *LicenseResourceCommitment) MarshalJSON() ([]byte, error) {
21355	type NoMethod LicenseResourceCommitment
21356	raw := NoMethod(*s)
21357	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21358}
21359
21360type LicenseResourceRequirements struct {
21361	// MinGuestCpuCount: Minimum number of guest cpus required to use the
21362	// Instance. Enforced at Instance creation and Instance start.
21363	MinGuestCpuCount int64 `json:"minGuestCpuCount,omitempty"`
21364
21365	// MinMemoryMb: Minimum memory required to use the Instance. Enforced at
21366	// Instance creation and Instance start.
21367	MinMemoryMb int64 `json:"minMemoryMb,omitempty"`
21368
21369	// ForceSendFields is a list of field names (e.g. "MinGuestCpuCount") to
21370	// unconditionally include in API requests. By default, fields with
21371	// empty values are omitted from API requests. However, any non-pointer,
21372	// non-interface field appearing in ForceSendFields will be sent to the
21373	// server regardless of whether the field is empty or not. This may be
21374	// used to include empty fields in Patch requests.
21375	ForceSendFields []string `json:"-"`
21376
21377	// NullFields is a list of field names (e.g. "MinGuestCpuCount") to
21378	// include in API requests with the JSON null value. By default, fields
21379	// with empty values are omitted from API requests. However, any field
21380	// with an empty value appearing in NullFields will be sent to the
21381	// server as null. It is an error if a field in this list has a
21382	// non-empty value. This may be used to include null fields in Patch
21383	// requests.
21384	NullFields []string `json:"-"`
21385}
21386
21387func (s *LicenseResourceRequirements) MarshalJSON() ([]byte, error) {
21388	type NoMethod LicenseResourceRequirements
21389	raw := NoMethod(*s)
21390	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21391}
21392
21393type LicensesListResponse struct {
21394	// Id: [Output Only] Unique identifier for the resource; defined by the
21395	// server.
21396	Id string `json:"id,omitempty"`
21397
21398	// Items: A list of License resources.
21399	Items []*License `json:"items,omitempty"`
21400
21401	// NextPageToken: [Output Only] This token allows you to get the next
21402	// page of results for list requests. If the number of results is larger
21403	// than maxResults, use the nextPageToken as a value for the query
21404	// parameter pageToken in the next list request. Subsequent list
21405	// requests will have their own nextPageToken to continue paging through
21406	// the results.
21407	NextPageToken string `json:"nextPageToken,omitempty"`
21408
21409	// SelfLink: [Output Only] Server-defined URL for this resource.
21410	SelfLink string `json:"selfLink,omitempty"`
21411
21412	// Warning: [Output Only] Informational warning message.
21413	Warning *LicensesListResponseWarning `json:"warning,omitempty"`
21414
21415	// ServerResponse contains the HTTP response code and headers from the
21416	// server.
21417	googleapi.ServerResponse `json:"-"`
21418
21419	// ForceSendFields is a list of field names (e.g. "Id") to
21420	// unconditionally include in API requests. By default, fields with
21421	// empty values are omitted from API requests. However, any non-pointer,
21422	// non-interface field appearing in ForceSendFields will be sent to the
21423	// server regardless of whether the field is empty or not. This may be
21424	// used to include empty fields in Patch requests.
21425	ForceSendFields []string `json:"-"`
21426
21427	// NullFields is a list of field names (e.g. "Id") to include in API
21428	// requests with the JSON null value. By default, fields with empty
21429	// values are omitted from API requests. However, any field with an
21430	// empty value appearing in NullFields will be sent to the server as
21431	// null. It is an error if a field in this list has a non-empty value.
21432	// This may be used to include null fields in Patch requests.
21433	NullFields []string `json:"-"`
21434}
21435
21436func (s *LicensesListResponse) MarshalJSON() ([]byte, error) {
21437	type NoMethod LicensesListResponse
21438	raw := NoMethod(*s)
21439	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21440}
21441
21442// LicensesListResponseWarning: [Output Only] Informational warning
21443// message.
21444type LicensesListResponseWarning struct {
21445	// Code: [Output Only] A warning code, if applicable. For example,
21446	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21447	// the response.
21448	//
21449	// Possible values:
21450	//   "CLEANUP_FAILED"
21451	//   "DEPRECATED_RESOURCE_USED"
21452	//   "DEPRECATED_TYPE_USED"
21453	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
21454	//   "EXPERIMENTAL_TYPE_USED"
21455	//   "EXTERNAL_API_WARNING"
21456	//   "FIELD_VALUE_OVERRIDEN"
21457	//   "INJECTED_KERNELS_DEPRECATED"
21458	//   "LARGE_DEPLOYMENT_WARNING"
21459	//   "MISSING_TYPE_DEPENDENCY"
21460	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
21461	//   "NEXT_HOP_CANNOT_IP_FORWARD"
21462	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
21463	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
21464	//   "NEXT_HOP_NOT_RUNNING"
21465	//   "NOT_CRITICAL_ERROR"
21466	//   "NO_RESULTS_ON_PAGE"
21467	//   "PARTIAL_SUCCESS"
21468	//   "REQUIRED_TOS_AGREEMENT"
21469	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
21470	//   "RESOURCE_NOT_DELETED"
21471	//   "SCHEMA_VALIDATION_IGNORED"
21472	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
21473	//   "UNDECLARED_PROPERTIES"
21474	//   "UNREACHABLE"
21475	Code string `json:"code,omitempty"`
21476
21477	// Data: [Output Only] Metadata about this warning in key: value format.
21478	// For example:
21479	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
21480	Data []*LicensesListResponseWarningData `json:"data,omitempty"`
21481
21482	// Message: [Output Only] A human-readable description of the warning
21483	// code.
21484	Message string `json:"message,omitempty"`
21485
21486	// ForceSendFields is a list of field names (e.g. "Code") to
21487	// unconditionally include in API requests. By default, fields with
21488	// empty values are omitted from API requests. However, any non-pointer,
21489	// non-interface field appearing in ForceSendFields will be sent to the
21490	// server regardless of whether the field is empty or not. This may be
21491	// used to include empty fields in Patch requests.
21492	ForceSendFields []string `json:"-"`
21493
21494	// NullFields is a list of field names (e.g. "Code") to include in API
21495	// requests with the JSON null value. By default, fields with empty
21496	// values are omitted from API requests. However, any field with an
21497	// empty value appearing in NullFields will be sent to the server as
21498	// null. It is an error if a field in this list has a non-empty value.
21499	// This may be used to include null fields in Patch requests.
21500	NullFields []string `json:"-"`
21501}
21502
21503func (s *LicensesListResponseWarning) MarshalJSON() ([]byte, error) {
21504	type NoMethod LicensesListResponseWarning
21505	raw := NoMethod(*s)
21506	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21507}
21508
21509type LicensesListResponseWarningData struct {
21510	// Key: [Output Only] A key that provides more detail on the warning
21511	// being returned. For example, for warnings where there are no results
21512	// in a list request for a particular zone, this key might be scope and
21513	// the key value might be the zone name. Other examples might be a key
21514	// indicating a deprecated resource and a suggested replacement, or a
21515	// warning about invalid network settings (for example, if an instance
21516	// attempts to perform IP forwarding but is not enabled for IP
21517	// forwarding).
21518	Key string `json:"key,omitempty"`
21519
21520	// Value: [Output Only] A warning data value corresponding to the key.
21521	Value string `json:"value,omitempty"`
21522
21523	// ForceSendFields is a list of field names (e.g. "Key") to
21524	// unconditionally include in API requests. By default, fields with
21525	// empty values are omitted from API requests. However, any non-pointer,
21526	// non-interface field appearing in ForceSendFields will be sent to the
21527	// server regardless of whether the field is empty or not. This may be
21528	// used to include empty fields in Patch requests.
21529	ForceSendFields []string `json:"-"`
21530
21531	// NullFields is a list of field names (e.g. "Key") to include in API
21532	// requests with the JSON null value. By default, fields with empty
21533	// values are omitted from API requests. However, any field with an
21534	// empty value appearing in NullFields will be sent to the server as
21535	// null. It is an error if a field in this list has a non-empty value.
21536	// This may be used to include null fields in Patch requests.
21537	NullFields []string `json:"-"`
21538}
21539
21540func (s *LicensesListResponseWarningData) MarshalJSON() ([]byte, error) {
21541	type NoMethod LicensesListResponseWarningData
21542	raw := NoMethod(*s)
21543	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21544}
21545
21546type LocalDisk struct {
21547	// DiskCount: Specifies the number of such disks.
21548	DiskCount int64 `json:"diskCount,omitempty"`
21549
21550	// DiskSizeGb: Specifies the size of the disk in base-2 GB.
21551	DiskSizeGb int64 `json:"diskSizeGb,omitempty"`
21552
21553	// DiskType: Specifies the desired disk type on the node. This disk type
21554	// must be a local storage type (e.g.: local-ssd). Note that for
21555	// nodeTemplates, this should be the name of the disk type and not its
21556	// URL.
21557	DiskType string `json:"diskType,omitempty"`
21558
21559	// ForceSendFields is a list of field names (e.g. "DiskCount") to
21560	// unconditionally include in API requests. By default, fields with
21561	// empty values are omitted from API requests. However, any non-pointer,
21562	// non-interface field appearing in ForceSendFields will be sent to the
21563	// server regardless of whether the field is empty or not. This may be
21564	// used to include empty fields in Patch requests.
21565	ForceSendFields []string `json:"-"`
21566
21567	// NullFields is a list of field names (e.g. "DiskCount") to include in
21568	// API requests with the JSON null value. By default, fields with empty
21569	// values are omitted from API requests. However, any field with an
21570	// empty value appearing in NullFields will be sent to the server as
21571	// null. It is an error if a field in this list has a non-empty value.
21572	// This may be used to include null fields in Patch requests.
21573	NullFields []string `json:"-"`
21574}
21575
21576func (s *LocalDisk) MarshalJSON() ([]byte, error) {
21577	type NoMethod LocalDisk
21578	raw := NoMethod(*s)
21579	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21580}
21581
21582// LocationPolicy: Configuration for location policy among multiple
21583// possible locations (e.g. preferences for zone selection among zones
21584// in a single region).
21585type LocationPolicy struct {
21586	// Locations: Location configurations mapped by location name. Currently
21587	// only zone names are supported and must be represented as valid
21588	// internal URLs, such as zones/us-central1-a.
21589	Locations map[string]LocationPolicyLocation `json:"locations,omitempty"`
21590
21591	// ForceSendFields is a list of field names (e.g. "Locations") to
21592	// unconditionally include in API requests. By default, fields with
21593	// empty values are omitted from API requests. However, any non-pointer,
21594	// non-interface field appearing in ForceSendFields will be sent to the
21595	// server regardless of whether the field is empty or not. This may be
21596	// used to include empty fields in Patch requests.
21597	ForceSendFields []string `json:"-"`
21598
21599	// NullFields is a list of field names (e.g. "Locations") to include in
21600	// API requests with the JSON null value. By default, fields with empty
21601	// values are omitted from API requests. However, any field with an
21602	// empty value appearing in NullFields will be sent to the server as
21603	// null. It is an error if a field in this list has a non-empty value.
21604	// This may be used to include null fields in Patch requests.
21605	NullFields []string `json:"-"`
21606}
21607
21608func (s *LocationPolicy) MarshalJSON() ([]byte, error) {
21609	type NoMethod LocationPolicy
21610	raw := NoMethod(*s)
21611	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21612}
21613
21614type LocationPolicyLocation struct {
21615	// Preference: Preference for a given location: ALLOW or DENY.
21616	//
21617	// Possible values:
21618	//   "ALLOW"
21619	//   "DENY"
21620	//   "PREFERENCE_UNSPECIFIED"
21621	Preference string `json:"preference,omitempty"`
21622
21623	// ForceSendFields is a list of field names (e.g. "Preference") to
21624	// unconditionally include in API requests. By default, fields with
21625	// empty values are omitted from API requests. However, any non-pointer,
21626	// non-interface field appearing in ForceSendFields will be sent to the
21627	// server regardless of whether the field is empty or not. This may be
21628	// used to include empty fields in Patch requests.
21629	ForceSendFields []string `json:"-"`
21630
21631	// NullFields is a list of field names (e.g. "Preference") to include in
21632	// API requests with the JSON null value. By default, fields with empty
21633	// values are omitted from API requests. However, any field with an
21634	// empty value appearing in NullFields will be sent to the server as
21635	// null. It is an error if a field in this list has a non-empty value.
21636	// This may be used to include null fields in Patch requests.
21637	NullFields []string `json:"-"`
21638}
21639
21640func (s *LocationPolicyLocation) MarshalJSON() ([]byte, error) {
21641	type NoMethod LocationPolicyLocation
21642	raw := NoMethod(*s)
21643	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21644}
21645
21646// LogConfig: Specifies what kind of log the caller must write
21647type LogConfig struct {
21648	// CloudAudit: Cloud audit options.
21649	CloudAudit *LogConfigCloudAuditOptions `json:"cloudAudit,omitempty"`
21650
21651	// Counter: Counter options.
21652	Counter *LogConfigCounterOptions `json:"counter,omitempty"`
21653
21654	// DataAccess: Data access options.
21655	DataAccess *LogConfigDataAccessOptions `json:"dataAccess,omitempty"`
21656
21657	// ForceSendFields is a list of field names (e.g. "CloudAudit") to
21658	// unconditionally include in API requests. By default, fields with
21659	// empty values are omitted from API requests. However, any non-pointer,
21660	// non-interface field appearing in ForceSendFields will be sent to the
21661	// server regardless of whether the field is empty or not. This may be
21662	// used to include empty fields in Patch requests.
21663	ForceSendFields []string `json:"-"`
21664
21665	// NullFields is a list of field names (e.g. "CloudAudit") to include in
21666	// API requests with the JSON null value. By default, fields with empty
21667	// values are omitted from API requests. However, any field with an
21668	// empty value appearing in NullFields will be sent to the server as
21669	// null. It is an error if a field in this list has a non-empty value.
21670	// This may be used to include null fields in Patch requests.
21671	NullFields []string `json:"-"`
21672}
21673
21674func (s *LogConfig) MarshalJSON() ([]byte, error) {
21675	type NoMethod LogConfig
21676	raw := NoMethod(*s)
21677	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21678}
21679
21680// LogConfigCloudAuditOptions: Write a Cloud Audit log
21681type LogConfigCloudAuditOptions struct {
21682	// AuthorizationLoggingOptions: Information used by the Cloud Audit
21683	// Logging pipeline.
21684	AuthorizationLoggingOptions *AuthorizationLoggingOptions `json:"authorizationLoggingOptions,omitempty"`
21685
21686	// LogName: The log_name to populate in the Cloud Audit Record.
21687	//
21688	// Possible values:
21689	//   "ADMIN_ACTIVITY"
21690	//   "DATA_ACCESS"
21691	//   "UNSPECIFIED_LOG_NAME"
21692	LogName string `json:"logName,omitempty"`
21693
21694	// ForceSendFields is a list of field names (e.g.
21695	// "AuthorizationLoggingOptions") to unconditionally include in API
21696	// requests. By default, fields with empty values are omitted from API
21697	// requests. However, any non-pointer, non-interface field appearing in
21698	// ForceSendFields will be sent to the server regardless of whether the
21699	// field is empty or not. This may be used to include empty fields in
21700	// Patch requests.
21701	ForceSendFields []string `json:"-"`
21702
21703	// NullFields is a list of field names (e.g.
21704	// "AuthorizationLoggingOptions") to include in API requests with the
21705	// JSON null value. By default, fields with empty values are omitted
21706	// from API requests. However, any field with an empty value appearing
21707	// in NullFields will be sent to the server as null. It is an error if a
21708	// field in this list has a non-empty value. This may be used to include
21709	// null fields in Patch requests.
21710	NullFields []string `json:"-"`
21711}
21712
21713func (s *LogConfigCloudAuditOptions) MarshalJSON() ([]byte, error) {
21714	type NoMethod LogConfigCloudAuditOptions
21715	raw := NoMethod(*s)
21716	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21717}
21718
21719// LogConfigCounterOptions: Increment a streamz counter with the
21720// specified metric and field names.
21721//
21722// Metric names should start with a '/', generally be lowercase-only,
21723// and end in "_count". Field names should not contain an initial slash.
21724// The actual exported metric names will have "/iam/policy"
21725// prepended.
21726//
21727// Field names correspond to IAM request parameters and field values are
21728// their respective values.
21729//
21730// Supported field names: - "authority", which is "[token]" if
21731// IAMContext.token is present, otherwise the value of
21732// IAMContext.authority_selector if present, and otherwise a
21733// representation of IAMContext.principal; or - "iam_principal", a
21734// representation of IAMContext.principal even if a token or authority
21735// selector is present; or - "" (empty string), resulting in a counter
21736// with no fields.
21737//
21738// Examples: counter { metric: "/debug_access_count" field:
21739// "iam_principal" } ==> increment counter
21740// /iam/policy/debug_access_count {iam_principal=[value of
21741// IAMContext.principal]}
21742type LogConfigCounterOptions struct {
21743	// CustomFields: Custom fields.
21744	CustomFields []*LogConfigCounterOptionsCustomField `json:"customFields,omitempty"`
21745
21746	// Field: The field value to attribute.
21747	Field string `json:"field,omitempty"`
21748
21749	// Metric: The metric to update.
21750	Metric string `json:"metric,omitempty"`
21751
21752	// ForceSendFields is a list of field names (e.g. "CustomFields") to
21753	// unconditionally include in API requests. By default, fields with
21754	// empty values are omitted from API requests. However, any non-pointer,
21755	// non-interface field appearing in ForceSendFields will be sent to the
21756	// server regardless of whether the field is empty or not. This may be
21757	// used to include empty fields in Patch requests.
21758	ForceSendFields []string `json:"-"`
21759
21760	// NullFields is a list of field names (e.g. "CustomFields") to include
21761	// in API requests with the JSON null value. By default, fields with
21762	// empty values are omitted from API requests. However, any field with
21763	// an empty value appearing in NullFields will be sent to the server as
21764	// null. It is an error if a field in this list has a non-empty value.
21765	// This may be used to include null fields in Patch requests.
21766	NullFields []string `json:"-"`
21767}
21768
21769func (s *LogConfigCounterOptions) MarshalJSON() ([]byte, error) {
21770	type NoMethod LogConfigCounterOptions
21771	raw := NoMethod(*s)
21772	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21773}
21774
21775// LogConfigCounterOptionsCustomField: Custom fields. These can be used
21776// to create a counter with arbitrary field/value pairs. See:
21777// go/rpcsp-custom-fields.
21778type LogConfigCounterOptionsCustomField struct {
21779	// Name: Name is the field name.
21780	Name string `json:"name,omitempty"`
21781
21782	// Value: Value is the field value. It is important that in contrast to
21783	// the CounterOptions.field, the value here is a constant that is not
21784	// derived from the IAMContext.
21785	Value string `json:"value,omitempty"`
21786
21787	// ForceSendFields is a list of field names (e.g. "Name") to
21788	// unconditionally include in API requests. By default, fields with
21789	// empty values are omitted from API requests. However, any non-pointer,
21790	// non-interface field appearing in ForceSendFields will be sent to the
21791	// server regardless of whether the field is empty or not. This may be
21792	// used to include empty fields in Patch requests.
21793	ForceSendFields []string `json:"-"`
21794
21795	// NullFields is a list of field names (e.g. "Name") to include in API
21796	// requests with the JSON null value. By default, fields with empty
21797	// values are omitted from API requests. However, any field with an
21798	// empty value appearing in NullFields will be sent to the server as
21799	// null. It is an error if a field in this list has a non-empty value.
21800	// This may be used to include null fields in Patch requests.
21801	NullFields []string `json:"-"`
21802}
21803
21804func (s *LogConfigCounterOptionsCustomField) MarshalJSON() ([]byte, error) {
21805	type NoMethod LogConfigCounterOptionsCustomField
21806	raw := NoMethod(*s)
21807	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21808}
21809
21810// LogConfigDataAccessOptions: Write a Data Access (Gin) log
21811type LogConfigDataAccessOptions struct {
21812	// Possible values:
21813	//   "LOG_FAIL_CLOSED"
21814	//   "LOG_MODE_UNSPECIFIED"
21815	LogMode string `json:"logMode,omitempty"`
21816
21817	// ForceSendFields is a list of field names (e.g. "LogMode") to
21818	// unconditionally include in API requests. By default, fields with
21819	// empty values are omitted from API requests. However, any non-pointer,
21820	// non-interface field appearing in ForceSendFields will be sent to the
21821	// server regardless of whether the field is empty or not. This may be
21822	// used to include empty fields in Patch requests.
21823	ForceSendFields []string `json:"-"`
21824
21825	// NullFields is a list of field names (e.g. "LogMode") to include in
21826	// API requests with the JSON null value. By default, fields with empty
21827	// values are omitted from API requests. However, any field with an
21828	// empty value appearing in NullFields will be sent to the server as
21829	// null. It is an error if a field in this list has a non-empty value.
21830	// This may be used to include null fields in Patch requests.
21831	NullFields []string `json:"-"`
21832}
21833
21834func (s *LogConfigDataAccessOptions) MarshalJSON() ([]byte, error) {
21835	type NoMethod LogConfigDataAccessOptions
21836	raw := NoMethod(*s)
21837	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21838}
21839
21840// MachineType: Represents a Machine Type resource.
21841//
21842// You can use specific machine types for your VM instances based on
21843// performance and pricing requirements. For more information, read
21844// Machine Types. (== resource_for {$api_version}.machineTypes ==)
21845type MachineType struct {
21846	// Accelerators: [Output Only] A list of accelerator configurations
21847	// assigned to this machine type.
21848	Accelerators []*MachineTypeAccelerators `json:"accelerators,omitempty"`
21849
21850	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
21851	// format.
21852	CreationTimestamp string `json:"creationTimestamp,omitempty"`
21853
21854	// Deprecated -- [Output Only] The deprecation status associated with
21855	// this machine type. Only applicable if the machine type is
21856	// unavailable.
21857	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
21858
21859	// Description: [Output Only] An optional textual description of the
21860	// resource.
21861	Description string `json:"description,omitempty"`
21862
21863	// GuestCpus: [Output Only] The number of virtual CPUs that are
21864	// available to the instance.
21865	GuestCpus int64 `json:"guestCpus,omitempty"`
21866
21867	// Id: [Output Only] The unique identifier for the resource. This
21868	// identifier is defined by the server.
21869	Id uint64 `json:"id,omitempty,string"`
21870
21871	// ImageSpaceGb: [Deprecated] This property is deprecated and will never
21872	// be populated with any relevant values.
21873	ImageSpaceGb int64 `json:"imageSpaceGb,omitempty"`
21874
21875	// IsSharedCpu: [Output Only] Whether this machine type has a shared
21876	// CPU. See Shared-core machine types for more information.
21877	IsSharedCpu bool `json:"isSharedCpu,omitempty"`
21878
21879	// Kind: [Output Only] The type of the resource. Always
21880	// compute#machineType for machine types.
21881	Kind string `json:"kind,omitempty"`
21882
21883	// MaximumPersistentDisks: [Output Only] Maximum persistent disks
21884	// allowed.
21885	MaximumPersistentDisks int64 `json:"maximumPersistentDisks,omitempty"`
21886
21887	// MaximumPersistentDisksSizeGb: [Output Only] Maximum total persistent
21888	// disks size (GB) allowed.
21889	MaximumPersistentDisksSizeGb int64 `json:"maximumPersistentDisksSizeGb,omitempty,string"`
21890
21891	// MemoryMb: [Output Only] The amount of physical memory available to
21892	// the instance, defined in MB.
21893	MemoryMb int64 `json:"memoryMb,omitempty"`
21894
21895	// Name: [Output Only] Name of the resource.
21896	Name string `json:"name,omitempty"`
21897
21898	// ScratchDisks: [Output Only] A list of extended scratch disks assigned
21899	// to the instance.
21900	ScratchDisks []*MachineTypeScratchDisks `json:"scratchDisks,omitempty"`
21901
21902	// SelfLink: [Output Only] Server-defined URL for the resource.
21903	SelfLink string `json:"selfLink,omitempty"`
21904
21905	// Zone: [Output Only] The name of the zone where the machine type
21906	// resides, such as us-central1-a.
21907	Zone string `json:"zone,omitempty"`
21908
21909	// ServerResponse contains the HTTP response code and headers from the
21910	// server.
21911	googleapi.ServerResponse `json:"-"`
21912
21913	// ForceSendFields is a list of field names (e.g. "Accelerators") to
21914	// unconditionally include in API requests. By default, fields with
21915	// empty values are omitted from API requests. However, any non-pointer,
21916	// non-interface field appearing in ForceSendFields will be sent to the
21917	// server regardless of whether the field is empty or not. This may be
21918	// used to include empty fields in Patch requests.
21919	ForceSendFields []string `json:"-"`
21920
21921	// NullFields is a list of field names (e.g. "Accelerators") to include
21922	// in API requests with the JSON null value. By default, fields with
21923	// empty values are omitted from API requests. However, any field with
21924	// an empty value appearing in NullFields will be sent to the server as
21925	// null. It is an error if a field in this list has a non-empty value.
21926	// This may be used to include null fields in Patch requests.
21927	NullFields []string `json:"-"`
21928}
21929
21930func (s *MachineType) MarshalJSON() ([]byte, error) {
21931	type NoMethod MachineType
21932	raw := NoMethod(*s)
21933	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21934}
21935
21936type MachineTypeAccelerators struct {
21937	// GuestAcceleratorCount: Number of accelerator cards exposed to the
21938	// guest.
21939	GuestAcceleratorCount int64 `json:"guestAcceleratorCount,omitempty"`
21940
21941	// GuestAcceleratorType: The accelerator type resource name, not a full
21942	// URL, e.g. 'nvidia-tesla-k80'.
21943	GuestAcceleratorType string `json:"guestAcceleratorType,omitempty"`
21944
21945	// ForceSendFields is a list of field names (e.g.
21946	// "GuestAcceleratorCount") to unconditionally include in API requests.
21947	// By default, fields with empty values are omitted from API requests.
21948	// However, any non-pointer, non-interface field appearing in
21949	// ForceSendFields will be sent to the server regardless of whether the
21950	// field is empty or not. This may be used to include empty fields in
21951	// Patch requests.
21952	ForceSendFields []string `json:"-"`
21953
21954	// NullFields is a list of field names (e.g. "GuestAcceleratorCount") to
21955	// include in API requests with the JSON null value. By default, fields
21956	// with empty values are omitted from API requests. However, any field
21957	// with an empty value appearing in NullFields will be sent to the
21958	// server as null. It is an error if a field in this list has a
21959	// non-empty value. This may be used to include null fields in Patch
21960	// requests.
21961	NullFields []string `json:"-"`
21962}
21963
21964func (s *MachineTypeAccelerators) MarshalJSON() ([]byte, error) {
21965	type NoMethod MachineTypeAccelerators
21966	raw := NoMethod(*s)
21967	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21968}
21969
21970type MachineTypeScratchDisks struct {
21971	// DiskGb: Size of the scratch disk, defined in GB.
21972	DiskGb int64 `json:"diskGb,omitempty"`
21973
21974	// ForceSendFields is a list of field names (e.g. "DiskGb") to
21975	// unconditionally include in API requests. By default, fields with
21976	// empty values are omitted from API requests. However, any non-pointer,
21977	// non-interface field appearing in ForceSendFields will be sent to the
21978	// server regardless of whether the field is empty or not. This may be
21979	// used to include empty fields in Patch requests.
21980	ForceSendFields []string `json:"-"`
21981
21982	// NullFields is a list of field names (e.g. "DiskGb") to include in API
21983	// requests with the JSON null value. By default, fields with empty
21984	// values are omitted from API requests. However, any field with an
21985	// empty value appearing in NullFields will be sent to the server as
21986	// null. It is an error if a field in this list has a non-empty value.
21987	// This may be used to include null fields in Patch requests.
21988	NullFields []string `json:"-"`
21989}
21990
21991func (s *MachineTypeScratchDisks) MarshalJSON() ([]byte, error) {
21992	type NoMethod MachineTypeScratchDisks
21993	raw := NoMethod(*s)
21994	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21995}
21996
21997type MachineTypeAggregatedList struct {
21998	// Id: [Output Only] Unique identifier for the resource; defined by the
21999	// server.
22000	Id string `json:"id,omitempty"`
22001
22002	// Items: A list of MachineTypesScopedList resources.
22003	Items map[string]MachineTypesScopedList `json:"items,omitempty"`
22004
22005	// Kind: [Output Only] Type of resource. Always
22006	// compute#machineTypeAggregatedList for aggregated lists of machine
22007	// types.
22008	Kind string `json:"kind,omitempty"`
22009
22010	// NextPageToken: [Output Only] This token allows you to get the next
22011	// page of results for list requests. If the number of results is larger
22012	// than maxResults, use the nextPageToken as a value for the query
22013	// parameter pageToken in the next list request. Subsequent list
22014	// requests will have their own nextPageToken to continue paging through
22015	// the results.
22016	NextPageToken string `json:"nextPageToken,omitempty"`
22017
22018	// SelfLink: [Output Only] Server-defined URL for this resource.
22019	SelfLink string `json:"selfLink,omitempty"`
22020
22021	// Unreachables: [Output Only] Unreachable resources.
22022	Unreachables []string `json:"unreachables,omitempty"`
22023
22024	// Warning: [Output Only] Informational warning message.
22025	Warning *MachineTypeAggregatedListWarning `json:"warning,omitempty"`
22026
22027	// ServerResponse contains the HTTP response code and headers from the
22028	// server.
22029	googleapi.ServerResponse `json:"-"`
22030
22031	// ForceSendFields is a list of field names (e.g. "Id") to
22032	// unconditionally include in API requests. By default, fields with
22033	// empty values are omitted from API requests. However, any non-pointer,
22034	// non-interface field appearing in ForceSendFields will be sent to the
22035	// server regardless of whether the field is empty or not. This may be
22036	// used to include empty fields in Patch requests.
22037	ForceSendFields []string `json:"-"`
22038
22039	// NullFields is a list of field names (e.g. "Id") to include in API
22040	// requests with the JSON null value. By default, fields with empty
22041	// values are omitted from API requests. However, any field with an
22042	// empty value appearing in NullFields will be sent to the server as
22043	// null. It is an error if a field in this list has a non-empty value.
22044	// This may be used to include null fields in Patch requests.
22045	NullFields []string `json:"-"`
22046}
22047
22048func (s *MachineTypeAggregatedList) MarshalJSON() ([]byte, error) {
22049	type NoMethod MachineTypeAggregatedList
22050	raw := NoMethod(*s)
22051	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22052}
22053
22054// MachineTypeAggregatedListWarning: [Output Only] Informational warning
22055// message.
22056type MachineTypeAggregatedListWarning struct {
22057	// Code: [Output Only] A warning code, if applicable. For example,
22058	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22059	// the response.
22060	//
22061	// Possible values:
22062	//   "CLEANUP_FAILED"
22063	//   "DEPRECATED_RESOURCE_USED"
22064	//   "DEPRECATED_TYPE_USED"
22065	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22066	//   "EXPERIMENTAL_TYPE_USED"
22067	//   "EXTERNAL_API_WARNING"
22068	//   "FIELD_VALUE_OVERRIDEN"
22069	//   "INJECTED_KERNELS_DEPRECATED"
22070	//   "LARGE_DEPLOYMENT_WARNING"
22071	//   "MISSING_TYPE_DEPENDENCY"
22072	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22073	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22074	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22075	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22076	//   "NEXT_HOP_NOT_RUNNING"
22077	//   "NOT_CRITICAL_ERROR"
22078	//   "NO_RESULTS_ON_PAGE"
22079	//   "PARTIAL_SUCCESS"
22080	//   "REQUIRED_TOS_AGREEMENT"
22081	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22082	//   "RESOURCE_NOT_DELETED"
22083	//   "SCHEMA_VALIDATION_IGNORED"
22084	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22085	//   "UNDECLARED_PROPERTIES"
22086	//   "UNREACHABLE"
22087	Code string `json:"code,omitempty"`
22088
22089	// Data: [Output Only] Metadata about this warning in key: value format.
22090	// For example:
22091	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22092	Data []*MachineTypeAggregatedListWarningData `json:"data,omitempty"`
22093
22094	// Message: [Output Only] A human-readable description of the warning
22095	// code.
22096	Message string `json:"message,omitempty"`
22097
22098	// ForceSendFields is a list of field names (e.g. "Code") to
22099	// unconditionally include in API requests. By default, fields with
22100	// empty values are omitted from API requests. However, any non-pointer,
22101	// non-interface field appearing in ForceSendFields will be sent to the
22102	// server regardless of whether the field is empty or not. This may be
22103	// used to include empty fields in Patch requests.
22104	ForceSendFields []string `json:"-"`
22105
22106	// NullFields is a list of field names (e.g. "Code") to include in API
22107	// requests with the JSON null value. By default, fields with empty
22108	// values are omitted from API requests. However, any field with an
22109	// empty value appearing in NullFields will be sent to the server as
22110	// null. It is an error if a field in this list has a non-empty value.
22111	// This may be used to include null fields in Patch requests.
22112	NullFields []string `json:"-"`
22113}
22114
22115func (s *MachineTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
22116	type NoMethod MachineTypeAggregatedListWarning
22117	raw := NoMethod(*s)
22118	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22119}
22120
22121type MachineTypeAggregatedListWarningData struct {
22122	// Key: [Output Only] A key that provides more detail on the warning
22123	// being returned. For example, for warnings where there are no results
22124	// in a list request for a particular zone, this key might be scope and
22125	// the key value might be the zone name. Other examples might be a key
22126	// indicating a deprecated resource and a suggested replacement, or a
22127	// warning about invalid network settings (for example, if an instance
22128	// attempts to perform IP forwarding but is not enabled for IP
22129	// forwarding).
22130	Key string `json:"key,omitempty"`
22131
22132	// Value: [Output Only] A warning data value corresponding to the key.
22133	Value string `json:"value,omitempty"`
22134
22135	// ForceSendFields is a list of field names (e.g. "Key") 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. "Key") to include in API
22144	// requests with the JSON null value. By default, fields with empty
22145	// values are omitted from API requests. However, any field with an
22146	// empty value appearing in NullFields will be sent to the server as
22147	// null. It is an error if a field in this list has a non-empty value.
22148	// This may be used to include null fields in Patch requests.
22149	NullFields []string `json:"-"`
22150}
22151
22152func (s *MachineTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
22153	type NoMethod MachineTypeAggregatedListWarningData
22154	raw := NoMethod(*s)
22155	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22156}
22157
22158// MachineTypeList: Contains a list of machine types.
22159type MachineTypeList struct {
22160	// Id: [Output Only] Unique identifier for the resource; defined by the
22161	// server.
22162	Id string `json:"id,omitempty"`
22163
22164	// Items: A list of MachineType resources.
22165	Items []*MachineType `json:"items,omitempty"`
22166
22167	// Kind: [Output Only] Type of resource. Always compute#machineTypeList
22168	// for lists of machine types.
22169	Kind string `json:"kind,omitempty"`
22170
22171	// NextPageToken: [Output Only] This token allows you to get the next
22172	// page of results for list requests. If the number of results is larger
22173	// than maxResults, use the nextPageToken as a value for the query
22174	// parameter pageToken in the next list request. Subsequent list
22175	// requests will have their own nextPageToken to continue paging through
22176	// the results.
22177	NextPageToken string `json:"nextPageToken,omitempty"`
22178
22179	// SelfLink: [Output Only] Server-defined URL for this resource.
22180	SelfLink string `json:"selfLink,omitempty"`
22181
22182	// Warning: [Output Only] Informational warning message.
22183	Warning *MachineTypeListWarning `json:"warning,omitempty"`
22184
22185	// ServerResponse contains the HTTP response code and headers from the
22186	// server.
22187	googleapi.ServerResponse `json:"-"`
22188
22189	// ForceSendFields is a list of field names (e.g. "Id") to
22190	// unconditionally include in API requests. By default, fields with
22191	// empty values are omitted from API requests. However, any non-pointer,
22192	// non-interface field appearing in ForceSendFields will be sent to the
22193	// server regardless of whether the field is empty or not. This may be
22194	// used to include empty fields in Patch requests.
22195	ForceSendFields []string `json:"-"`
22196
22197	// NullFields is a list of field names (e.g. "Id") to include in API
22198	// requests with the JSON null value. By default, fields with empty
22199	// values are omitted from API requests. However, any field with an
22200	// empty value appearing in NullFields will be sent to the server as
22201	// null. It is an error if a field in this list has a non-empty value.
22202	// This may be used to include null fields in Patch requests.
22203	NullFields []string `json:"-"`
22204}
22205
22206func (s *MachineTypeList) MarshalJSON() ([]byte, error) {
22207	type NoMethod MachineTypeList
22208	raw := NoMethod(*s)
22209	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22210}
22211
22212// MachineTypeListWarning: [Output Only] Informational warning message.
22213type MachineTypeListWarning struct {
22214	// Code: [Output Only] A warning code, if applicable. For example,
22215	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22216	// the response.
22217	//
22218	// Possible values:
22219	//   "CLEANUP_FAILED"
22220	//   "DEPRECATED_RESOURCE_USED"
22221	//   "DEPRECATED_TYPE_USED"
22222	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22223	//   "EXPERIMENTAL_TYPE_USED"
22224	//   "EXTERNAL_API_WARNING"
22225	//   "FIELD_VALUE_OVERRIDEN"
22226	//   "INJECTED_KERNELS_DEPRECATED"
22227	//   "LARGE_DEPLOYMENT_WARNING"
22228	//   "MISSING_TYPE_DEPENDENCY"
22229	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22230	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22231	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22232	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22233	//   "NEXT_HOP_NOT_RUNNING"
22234	//   "NOT_CRITICAL_ERROR"
22235	//   "NO_RESULTS_ON_PAGE"
22236	//   "PARTIAL_SUCCESS"
22237	//   "REQUIRED_TOS_AGREEMENT"
22238	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22239	//   "RESOURCE_NOT_DELETED"
22240	//   "SCHEMA_VALIDATION_IGNORED"
22241	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22242	//   "UNDECLARED_PROPERTIES"
22243	//   "UNREACHABLE"
22244	Code string `json:"code,omitempty"`
22245
22246	// Data: [Output Only] Metadata about this warning in key: value format.
22247	// For example:
22248	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22249	Data []*MachineTypeListWarningData `json:"data,omitempty"`
22250
22251	// Message: [Output Only] A human-readable description of the warning
22252	// code.
22253	Message string `json:"message,omitempty"`
22254
22255	// ForceSendFields is a list of field names (e.g. "Code") to
22256	// unconditionally include in API requests. By default, fields with
22257	// empty values are omitted from API requests. However, any non-pointer,
22258	// non-interface field appearing in ForceSendFields will be sent to the
22259	// server regardless of whether the field is empty or not. This may be
22260	// used to include empty fields in Patch requests.
22261	ForceSendFields []string `json:"-"`
22262
22263	// NullFields is a list of field names (e.g. "Code") to include in API
22264	// requests with the JSON null value. By default, fields with empty
22265	// values are omitted from API requests. However, any field with an
22266	// empty value appearing in NullFields will be sent to the server as
22267	// null. It is an error if a field in this list has a non-empty value.
22268	// This may be used to include null fields in Patch requests.
22269	NullFields []string `json:"-"`
22270}
22271
22272func (s *MachineTypeListWarning) MarshalJSON() ([]byte, error) {
22273	type NoMethod MachineTypeListWarning
22274	raw := NoMethod(*s)
22275	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22276}
22277
22278type MachineTypeListWarningData struct {
22279	// Key: [Output Only] A key that provides more detail on the warning
22280	// being returned. For example, for warnings where there are no results
22281	// in a list request for a particular zone, this key might be scope and
22282	// the key value might be the zone name. Other examples might be a key
22283	// indicating a deprecated resource and a suggested replacement, or a
22284	// warning about invalid network settings (for example, if an instance
22285	// attempts to perform IP forwarding but is not enabled for IP
22286	// forwarding).
22287	Key string `json:"key,omitempty"`
22288
22289	// Value: [Output Only] A warning data value corresponding to the key.
22290	Value string `json:"value,omitempty"`
22291
22292	// ForceSendFields is a list of field names (e.g. "Key") to
22293	// unconditionally include in API requests. By default, fields with
22294	// empty values are omitted from API requests. However, any non-pointer,
22295	// non-interface field appearing in ForceSendFields will be sent to the
22296	// server regardless of whether the field is empty or not. This may be
22297	// used to include empty fields in Patch requests.
22298	ForceSendFields []string `json:"-"`
22299
22300	// NullFields is a list of field names (e.g. "Key") to include in API
22301	// requests with the JSON null value. By default, fields with empty
22302	// values are omitted from API requests. However, any field with an
22303	// empty value appearing in NullFields will be sent to the server as
22304	// null. It is an error if a field in this list has a non-empty value.
22305	// This may be used to include null fields in Patch requests.
22306	NullFields []string `json:"-"`
22307}
22308
22309func (s *MachineTypeListWarningData) MarshalJSON() ([]byte, error) {
22310	type NoMethod MachineTypeListWarningData
22311	raw := NoMethod(*s)
22312	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22313}
22314
22315type MachineTypesScopedList struct {
22316	// MachineTypes: [Output Only] A list of machine types contained in this
22317	// scope.
22318	MachineTypes []*MachineType `json:"machineTypes,omitempty"`
22319
22320	// Warning: [Output Only] An informational warning that appears when the
22321	// machine types list is empty.
22322	Warning *MachineTypesScopedListWarning `json:"warning,omitempty"`
22323
22324	// ForceSendFields is a list of field names (e.g. "MachineTypes") to
22325	// unconditionally include in API requests. By default, fields with
22326	// empty values are omitted from API requests. However, any non-pointer,
22327	// non-interface field appearing in ForceSendFields will be sent to the
22328	// server regardless of whether the field is empty or not. This may be
22329	// used to include empty fields in Patch requests.
22330	ForceSendFields []string `json:"-"`
22331
22332	// NullFields is a list of field names (e.g. "MachineTypes") to include
22333	// in API requests with the JSON null value. By default, fields with
22334	// empty values are omitted from API requests. However, any field with
22335	// an empty value appearing in NullFields will be sent to the server as
22336	// null. It is an error if a field in this list has a non-empty value.
22337	// This may be used to include null fields in Patch requests.
22338	NullFields []string `json:"-"`
22339}
22340
22341func (s *MachineTypesScopedList) MarshalJSON() ([]byte, error) {
22342	type NoMethod MachineTypesScopedList
22343	raw := NoMethod(*s)
22344	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22345}
22346
22347// MachineTypesScopedListWarning: [Output Only] An informational warning
22348// that appears when the machine types list is empty.
22349type MachineTypesScopedListWarning struct {
22350	// Code: [Output Only] A warning code, if applicable. For example,
22351	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22352	// the response.
22353	//
22354	// Possible values:
22355	//   "CLEANUP_FAILED"
22356	//   "DEPRECATED_RESOURCE_USED"
22357	//   "DEPRECATED_TYPE_USED"
22358	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22359	//   "EXPERIMENTAL_TYPE_USED"
22360	//   "EXTERNAL_API_WARNING"
22361	//   "FIELD_VALUE_OVERRIDEN"
22362	//   "INJECTED_KERNELS_DEPRECATED"
22363	//   "LARGE_DEPLOYMENT_WARNING"
22364	//   "MISSING_TYPE_DEPENDENCY"
22365	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22366	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22367	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22368	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22369	//   "NEXT_HOP_NOT_RUNNING"
22370	//   "NOT_CRITICAL_ERROR"
22371	//   "NO_RESULTS_ON_PAGE"
22372	//   "PARTIAL_SUCCESS"
22373	//   "REQUIRED_TOS_AGREEMENT"
22374	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22375	//   "RESOURCE_NOT_DELETED"
22376	//   "SCHEMA_VALIDATION_IGNORED"
22377	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22378	//   "UNDECLARED_PROPERTIES"
22379	//   "UNREACHABLE"
22380	Code string `json:"code,omitempty"`
22381
22382	// Data: [Output Only] Metadata about this warning in key: value format.
22383	// For example:
22384	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22385	Data []*MachineTypesScopedListWarningData `json:"data,omitempty"`
22386
22387	// Message: [Output Only] A human-readable description of the warning
22388	// code.
22389	Message string `json:"message,omitempty"`
22390
22391	// ForceSendFields is a list of field names (e.g. "Code") to
22392	// unconditionally include in API requests. By default, fields with
22393	// empty values are omitted from API requests. However, any non-pointer,
22394	// non-interface field appearing in ForceSendFields will be sent to the
22395	// server regardless of whether the field is empty or not. This may be
22396	// used to include empty fields in Patch requests.
22397	ForceSendFields []string `json:"-"`
22398
22399	// NullFields is a list of field names (e.g. "Code") to include in API
22400	// requests with the JSON null value. By default, fields with empty
22401	// values are omitted from API requests. However, any field with an
22402	// empty value appearing in NullFields will be sent to the server as
22403	// null. It is an error if a field in this list has a non-empty value.
22404	// This may be used to include null fields in Patch requests.
22405	NullFields []string `json:"-"`
22406}
22407
22408func (s *MachineTypesScopedListWarning) MarshalJSON() ([]byte, error) {
22409	type NoMethod MachineTypesScopedListWarning
22410	raw := NoMethod(*s)
22411	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22412}
22413
22414type MachineTypesScopedListWarningData struct {
22415	// Key: [Output Only] A key that provides more detail on the warning
22416	// being returned. For example, for warnings where there are no results
22417	// in a list request for a particular zone, this key might be scope and
22418	// the key value might be the zone name. Other examples might be a key
22419	// indicating a deprecated resource and a suggested replacement, or a
22420	// warning about invalid network settings (for example, if an instance
22421	// attempts to perform IP forwarding but is not enabled for IP
22422	// forwarding).
22423	Key string `json:"key,omitempty"`
22424
22425	// Value: [Output Only] A warning data value corresponding to the key.
22426	Value string `json:"value,omitempty"`
22427
22428	// ForceSendFields is a list of field names (e.g. "Key") to
22429	// unconditionally include in API requests. By default, fields with
22430	// empty values are omitted from API requests. However, any non-pointer,
22431	// non-interface field appearing in ForceSendFields will be sent to the
22432	// server regardless of whether the field is empty or not. This may be
22433	// used to include empty fields in Patch requests.
22434	ForceSendFields []string `json:"-"`
22435
22436	// NullFields is a list of field names (e.g. "Key") to include in API
22437	// requests with the JSON null value. By default, fields with empty
22438	// values are omitted from API requests. However, any field with an
22439	// empty value appearing in NullFields will be sent to the server as
22440	// null. It is an error if a field in this list has a non-empty value.
22441	// This may be used to include null fields in Patch requests.
22442	NullFields []string `json:"-"`
22443}
22444
22445func (s *MachineTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
22446	type NoMethod MachineTypesScopedListWarningData
22447	raw := NoMethod(*s)
22448	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22449}
22450
22451// ManagedInstance: A Managed Instance resource.
22452type ManagedInstance struct {
22453	// CurrentAction: [Output Only] The current action that the managed
22454	// instance group has scheduled for the instance. Possible values:
22455	// - NONE The instance is running, and the managed instance group does
22456	// not have any scheduled actions for this instance.
22457	// - CREATING The managed instance group is creating this instance. If
22458	// the group fails to create this instance, it will try again until it
22459	// is successful.
22460	// - CREATING_WITHOUT_RETRIES The managed instance group is attempting
22461	// to create this instance only once. If the group fails to create this
22462	// instance, it does not try again and the group's targetSize value is
22463	// decreased instead.
22464	// - RECREATING The managed instance group is recreating this instance.
22465	//
22466	// - DELETING The managed instance group is permanently deleting this
22467	// instance.
22468	// - ABANDONING The managed instance group is abandoning this instance.
22469	// The instance will be removed from the instance group and from any
22470	// target pools that are associated with this group.
22471	// - RESTARTING The managed instance group is restarting the instance.
22472	//
22473	// - REFRESHING The managed instance group is applying configuration
22474	// changes to the instance without stopping it. For example, the group
22475	// can update the target pool list for an instance without stopping that
22476	// instance.
22477	// - VERIFYING The managed instance group has created the instance and
22478	// it is in the process of being verified.
22479	//
22480	// Possible values:
22481	//   "ABANDONING"
22482	//   "CREATING"
22483	//   "CREATING_WITHOUT_RETRIES"
22484	//   "DELETING"
22485	//   "NONE"
22486	//   "RECREATING"
22487	//   "REFRESHING"
22488	//   "RESTARTING"
22489	//   "VERIFYING"
22490	CurrentAction string `json:"currentAction,omitempty"`
22491
22492	// Id: [Output only] The unique identifier for this resource. This field
22493	// is empty when instance does not exist.
22494	Id uint64 `json:"id,omitempty,string"`
22495
22496	// Instance: [Output Only] The URL of the instance. The URL can exist
22497	// even if the instance has not yet been created.
22498	Instance string `json:"instance,omitempty"`
22499
22500	// InstanceHealth: [Output Only] Health state of the instance per
22501	// health-check.
22502	InstanceHealth []*ManagedInstanceInstanceHealth `json:"instanceHealth,omitempty"`
22503
22504	// InstanceStatus: [Output Only] The status of the instance. This field
22505	// is empty when the instance does not exist.
22506	//
22507	// Possible values:
22508	//   "DEPROVISIONING"
22509	//   "PROVISIONING"
22510	//   "REPAIRING"
22511	//   "RUNNING"
22512	//   "STAGING"
22513	//   "STOPPED"
22514	//   "STOPPING"
22515	//   "SUSPENDED"
22516	//   "SUSPENDING"
22517	//   "TERMINATED"
22518	InstanceStatus string `json:"instanceStatus,omitempty"`
22519
22520	// LastAttempt: [Output Only] Information about the last attempt to
22521	// create or delete the instance.
22522	LastAttempt *ManagedInstanceLastAttempt `json:"lastAttempt,omitempty"`
22523
22524	// PreservedStateFromConfig: [Output Only] Preserved state applied from
22525	// per-instance config for this instance.
22526	PreservedStateFromConfig *PreservedState `json:"preservedStateFromConfig,omitempty"`
22527
22528	// PreservedStateFromPolicy: [Output Only] Preserved state generated
22529	// based on stateful policy for this instance.
22530	PreservedStateFromPolicy *PreservedState `json:"preservedStateFromPolicy,omitempty"`
22531
22532	// Version: [Output Only] Intended version of this instance.
22533	Version *ManagedInstanceVersion `json:"version,omitempty"`
22534
22535	// ForceSendFields is a list of field names (e.g. "CurrentAction") to
22536	// unconditionally include in API requests. By default, fields with
22537	// empty values are omitted from API requests. However, any non-pointer,
22538	// non-interface field appearing in ForceSendFields will be sent to the
22539	// server regardless of whether the field is empty or not. This may be
22540	// used to include empty fields in Patch requests.
22541	ForceSendFields []string `json:"-"`
22542
22543	// NullFields is a list of field names (e.g. "CurrentAction") to include
22544	// in API requests with the JSON null value. By default, fields with
22545	// empty values are omitted from API requests. However, any field with
22546	// an empty value appearing in NullFields will be sent to the server as
22547	// null. It is an error if a field in this list has a non-empty value.
22548	// This may be used to include null fields in Patch requests.
22549	NullFields []string `json:"-"`
22550}
22551
22552func (s *ManagedInstance) MarshalJSON() ([]byte, error) {
22553	type NoMethod ManagedInstance
22554	raw := NoMethod(*s)
22555	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22556}
22557
22558type ManagedInstanceInstanceHealth struct {
22559	// DetailedHealthState: [Output Only] The current detailed instance
22560	// health state.
22561	//
22562	// Possible values:
22563	//   "DRAINING"
22564	//   "HEALTHY"
22565	//   "TIMEOUT"
22566	//   "UNHEALTHY"
22567	//   "UNKNOWN"
22568	DetailedHealthState string `json:"detailedHealthState,omitempty"`
22569
22570	// HealthCheck: [Output Only] The URL for the health check that verifies
22571	// whether the instance is healthy.
22572	HealthCheck string `json:"healthCheck,omitempty"`
22573
22574	// ForceSendFields is a list of field names (e.g. "DetailedHealthState")
22575	// to unconditionally include in API requests. By default, fields with
22576	// empty values are omitted from API requests. However, any non-pointer,
22577	// non-interface field appearing in ForceSendFields will be sent to the
22578	// server regardless of whether the field is empty or not. This may be
22579	// used to include empty fields in Patch requests.
22580	ForceSendFields []string `json:"-"`
22581
22582	// NullFields is a list of field names (e.g. "DetailedHealthState") to
22583	// include in API requests with the JSON null value. By default, fields
22584	// with empty values are omitted from API requests. However, any field
22585	// with an empty value appearing in NullFields will be sent to the
22586	// server as null. It is an error if a field in this list has a
22587	// non-empty value. This may be used to include null fields in Patch
22588	// requests.
22589	NullFields []string `json:"-"`
22590}
22591
22592func (s *ManagedInstanceInstanceHealth) MarshalJSON() ([]byte, error) {
22593	type NoMethod ManagedInstanceInstanceHealth
22594	raw := NoMethod(*s)
22595	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22596}
22597
22598type ManagedInstanceLastAttempt struct {
22599	// Errors: [Output Only] Encountered errors during the last attempt to
22600	// create or delete the instance.
22601	Errors *ManagedInstanceLastAttemptErrors `json:"errors,omitempty"`
22602
22603	// ForceSendFields is a list of field names (e.g. "Errors") to
22604	// unconditionally include in API requests. By default, fields with
22605	// empty values are omitted from API requests. However, any non-pointer,
22606	// non-interface field appearing in ForceSendFields will be sent to the
22607	// server regardless of whether the field is empty or not. This may be
22608	// used to include empty fields in Patch requests.
22609	ForceSendFields []string `json:"-"`
22610
22611	// NullFields is a list of field names (e.g. "Errors") to include in API
22612	// requests with the JSON null value. By default, fields with empty
22613	// values are omitted from API requests. However, any field with an
22614	// empty value appearing in NullFields will be sent to the server as
22615	// null. It is an error if a field in this list has a non-empty value.
22616	// This may be used to include null fields in Patch requests.
22617	NullFields []string `json:"-"`
22618}
22619
22620func (s *ManagedInstanceLastAttempt) MarshalJSON() ([]byte, error) {
22621	type NoMethod ManagedInstanceLastAttempt
22622	raw := NoMethod(*s)
22623	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22624}
22625
22626// ManagedInstanceLastAttemptErrors: [Output Only] Encountered errors
22627// during the last attempt to create or delete the instance.
22628type ManagedInstanceLastAttemptErrors struct {
22629	// Errors: [Output Only] The array of errors encountered while
22630	// processing this operation.
22631	Errors []*ManagedInstanceLastAttemptErrorsErrors `json:"errors,omitempty"`
22632
22633	// ForceSendFields is a list of field names (e.g. "Errors") to
22634	// unconditionally include in API requests. By default, fields with
22635	// empty values are omitted from API requests. However, any non-pointer,
22636	// non-interface field appearing in ForceSendFields will be sent to the
22637	// server regardless of whether the field is empty or not. This may be
22638	// used to include empty fields in Patch requests.
22639	ForceSendFields []string `json:"-"`
22640
22641	// NullFields is a list of field names (e.g. "Errors") to include in API
22642	// requests with the JSON null value. By default, fields with empty
22643	// values are omitted from API requests. However, any field with an
22644	// empty value appearing in NullFields will be sent to the server as
22645	// null. It is an error if a field in this list has a non-empty value.
22646	// This may be used to include null fields in Patch requests.
22647	NullFields []string `json:"-"`
22648}
22649
22650func (s *ManagedInstanceLastAttemptErrors) MarshalJSON() ([]byte, error) {
22651	type NoMethod ManagedInstanceLastAttemptErrors
22652	raw := NoMethod(*s)
22653	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22654}
22655
22656type ManagedInstanceLastAttemptErrorsErrors struct {
22657	// Code: [Output Only] The error type identifier for this error.
22658	Code string `json:"code,omitempty"`
22659
22660	// Location: [Output Only] Indicates the field in the request that
22661	// caused the error. This property is optional.
22662	Location string `json:"location,omitempty"`
22663
22664	// Message: [Output Only] An optional, human-readable error message.
22665	Message string `json:"message,omitempty"`
22666
22667	// ForceSendFields is a list of field names (e.g. "Code") to
22668	// unconditionally include in API requests. By default, fields with
22669	// empty values are omitted from API requests. However, any non-pointer,
22670	// non-interface field appearing in ForceSendFields will be sent to the
22671	// server regardless of whether the field is empty or not. This may be
22672	// used to include empty fields in Patch requests.
22673	ForceSendFields []string `json:"-"`
22674
22675	// NullFields is a list of field names (e.g. "Code") to include in API
22676	// requests with the JSON null value. By default, fields with empty
22677	// values are omitted from API requests. However, any field with an
22678	// empty value appearing in NullFields will be sent to the server as
22679	// null. It is an error if a field in this list has a non-empty value.
22680	// This may be used to include null fields in Patch requests.
22681	NullFields []string `json:"-"`
22682}
22683
22684func (s *ManagedInstanceLastAttemptErrorsErrors) MarshalJSON() ([]byte, error) {
22685	type NoMethod ManagedInstanceLastAttemptErrorsErrors
22686	raw := NoMethod(*s)
22687	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22688}
22689
22690type ManagedInstanceVersion struct {
22691	// InstanceTemplate: [Output Only] The intended template of the
22692	// instance. This field is empty when current_action is one of {
22693	// DELETING, ABANDONING }.
22694	InstanceTemplate string `json:"instanceTemplate,omitempty"`
22695
22696	// Name: [Output Only] Name of the version.
22697	Name string `json:"name,omitempty"`
22698
22699	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
22700	// unconditionally include in API requests. By default, fields with
22701	// empty values are omitted from API requests. However, any non-pointer,
22702	// non-interface field appearing in ForceSendFields will be sent to the
22703	// server regardless of whether the field is empty or not. This may be
22704	// used to include empty fields in Patch requests.
22705	ForceSendFields []string `json:"-"`
22706
22707	// NullFields is a list of field names (e.g. "InstanceTemplate") to
22708	// include in API requests with the JSON null value. By default, fields
22709	// with empty values are omitted from API requests. However, any field
22710	// with an empty value appearing in NullFields will be sent to the
22711	// server as null. It is an error if a field in this list has a
22712	// non-empty value. This may be used to include null fields in Patch
22713	// requests.
22714	NullFields []string `json:"-"`
22715}
22716
22717func (s *ManagedInstanceVersion) MarshalJSON() ([]byte, error) {
22718	type NoMethod ManagedInstanceVersion
22719	raw := NoMethod(*s)
22720	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22721}
22722
22723// Metadata: A metadata key/value entry.
22724type Metadata struct {
22725	// Fingerprint: Specifies a fingerprint for this request, which is
22726	// essentially a hash of the metadata's contents and used for optimistic
22727	// locking. The fingerprint is initially generated by Compute Engine and
22728	// changes after every request to modify or update metadata. You must
22729	// always provide an up-to-date fingerprint hash in order to update or
22730	// change metadata, otherwise the request will fail with error 412
22731	// conditionNotMet.
22732	//
22733	// To see the latest fingerprint, make a get() request to retrieve the
22734	// resource.
22735	Fingerprint string `json:"fingerprint,omitempty"`
22736
22737	// Items: Array of key/value pairs. The total size of all keys and
22738	// values must be less than 512 KB.
22739	Items []*MetadataItems `json:"items,omitempty"`
22740
22741	// Kind: [Output Only] Type of the resource. Always compute#metadata for
22742	// metadata.
22743	Kind string `json:"kind,omitempty"`
22744
22745	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
22746	// unconditionally include in API requests. By default, fields with
22747	// empty values are omitted from API requests. However, any non-pointer,
22748	// non-interface field appearing in ForceSendFields will be sent to the
22749	// server regardless of whether the field is empty or not. This may be
22750	// used to include empty fields in Patch requests.
22751	ForceSendFields []string `json:"-"`
22752
22753	// NullFields is a list of field names (e.g. "Fingerprint") to include
22754	// in API requests with the JSON null value. By default, fields with
22755	// empty values are omitted from API requests. However, any field with
22756	// an empty value appearing in NullFields will be sent to the server as
22757	// null. It is an error if a field in this list has a non-empty value.
22758	// This may be used to include null fields in Patch requests.
22759	NullFields []string `json:"-"`
22760}
22761
22762func (s *Metadata) MarshalJSON() ([]byte, error) {
22763	type NoMethod Metadata
22764	raw := NoMethod(*s)
22765	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22766}
22767
22768type MetadataItems struct {
22769	// Key: Key for the metadata entry. Keys must conform to the following
22770	// regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is
22771	// reflected as part of a URL in the metadata server. Additionally, to
22772	// avoid ambiguity, keys must not conflict with any other metadata keys
22773	// for the project.
22774	Key string `json:"key,omitempty"`
22775
22776	// Value: Value for the metadata entry. These are free-form strings, and
22777	// only have meaning as interpreted by the image running in the
22778	// instance. The only restriction placed on values is that their size
22779	// must be less than or equal to 262144 bytes (256 KiB).
22780	Value *string `json:"value,omitempty"`
22781
22782	// ForceSendFields is a list of field names (e.g. "Key") to
22783	// unconditionally include in API requests. By default, fields with
22784	// empty values are omitted from API requests. However, any non-pointer,
22785	// non-interface field appearing in ForceSendFields will be sent to the
22786	// server regardless of whether the field is empty or not. This may be
22787	// used to include empty fields in Patch requests.
22788	ForceSendFields []string `json:"-"`
22789
22790	// NullFields is a list of field names (e.g. "Key") to include in API
22791	// requests with the JSON null value. By default, fields with empty
22792	// values are omitted from API requests. However, any field with an
22793	// empty value appearing in NullFields will be sent to the server as
22794	// null. It is an error if a field in this list has a non-empty value.
22795	// This may be used to include null fields in Patch requests.
22796	NullFields []string `json:"-"`
22797}
22798
22799func (s *MetadataItems) MarshalJSON() ([]byte, error) {
22800	type NoMethod MetadataItems
22801	raw := NoMethod(*s)
22802	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22803}
22804
22805// MetadataFilter: Opaque filter criteria used by loadbalancers to
22806// restrict routing configuration to a limited set of loadbalancing
22807// proxies. Proxies and sidecars involved in loadbalancing would
22808// typically present metadata to the loadbalancers which need to match
22809// criteria specified here. If a match takes place, the relevant
22810// configuration is made available to those proxies.
22811// For each metadataFilter in this list, if its filterMatchCriteria is
22812// set to MATCH_ANY, at least one of the filterLabels must match the
22813// corresponding label provided in the metadata. If its
22814// filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels
22815// must match with corresponding labels provided in the metadata.
22816// An example for using metadataFilters would be: if loadbalancing
22817// involves  Envoys, they will only receive routing configuration when
22818// values in metadataFilters match values supplied in <a
22819// href="https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/core/b
22820// ase.proto#envoy-api-msg-core-node" Node metadata of their XDS
22821// requests to loadbalancers.
22822type MetadataFilter struct {
22823	// FilterLabels: The list of label value pairs that must match labels in
22824	// the provided metadata based on filterMatchCriteria
22825	// This list must not be empty and can have at the most 64 entries.
22826	FilterLabels []*MetadataFilterLabelMatch `json:"filterLabels,omitempty"`
22827
22828	// FilterMatchCriteria: Specifies how individual filterLabel matches
22829	// within the list of filterLabels contribute towards the overall
22830	// metadataFilter match.
22831	// Supported values are:
22832	// - MATCH_ANY: At least one of the filterLabels must have a matching
22833	// label in the provided metadata.
22834	// - MATCH_ALL: All filterLabels must have matching labels in the
22835	// provided metadata.
22836	//
22837	// Possible values:
22838	//   "MATCH_ALL"
22839	//   "MATCH_ANY"
22840	//   "NOT_SET"
22841	FilterMatchCriteria string `json:"filterMatchCriteria,omitempty"`
22842
22843	// ForceSendFields is a list of field names (e.g. "FilterLabels") to
22844	// unconditionally include in API requests. By default, fields with
22845	// empty values are omitted from API requests. However, any non-pointer,
22846	// non-interface field appearing in ForceSendFields will be sent to the
22847	// server regardless of whether the field is empty or not. This may be
22848	// used to include empty fields in Patch requests.
22849	ForceSendFields []string `json:"-"`
22850
22851	// NullFields is a list of field names (e.g. "FilterLabels") to include
22852	// in API requests with the JSON null value. By default, fields with
22853	// empty values are omitted from API requests. However, any field with
22854	// an empty value appearing in NullFields will be sent to the server as
22855	// null. It is an error if a field in this list has a non-empty value.
22856	// This may be used to include null fields in Patch requests.
22857	NullFields []string `json:"-"`
22858}
22859
22860func (s *MetadataFilter) MarshalJSON() ([]byte, error) {
22861	type NoMethod MetadataFilter
22862	raw := NoMethod(*s)
22863	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22864}
22865
22866// MetadataFilterLabelMatch: MetadataFilter label name value pairs that
22867// are expected to match corresponding labels presented as metadata to
22868// the loadbalancer.
22869type MetadataFilterLabelMatch struct {
22870	// Name: Name of metadata label.
22871	// The name can have a maximum length of 1024 characters and must be at
22872	// least 1 character long.
22873	Name string `json:"name,omitempty"`
22874
22875	// Value: The value of the label must match the specified value.
22876	// value can have a maximum length of 1024 characters.
22877	Value string `json:"value,omitempty"`
22878
22879	// ForceSendFields is a list of field names (e.g. "Name") to
22880	// unconditionally include in API requests. By default, fields with
22881	// empty values are omitted from API requests. However, any non-pointer,
22882	// non-interface field appearing in ForceSendFields will be sent to the
22883	// server regardless of whether the field is empty or not. This may be
22884	// used to include empty fields in Patch requests.
22885	ForceSendFields []string `json:"-"`
22886
22887	// NullFields is a list of field names (e.g. "Name") to include in API
22888	// requests with the JSON null value. By default, fields with empty
22889	// values are omitted from API requests. However, any field with an
22890	// empty value appearing in NullFields will be sent to the server as
22891	// null. It is an error if a field in this list has a non-empty value.
22892	// This may be used to include null fields in Patch requests.
22893	NullFields []string `json:"-"`
22894}
22895
22896func (s *MetadataFilterLabelMatch) MarshalJSON() ([]byte, error) {
22897	type NoMethod MetadataFilterLabelMatch
22898	raw := NoMethod(*s)
22899	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22900}
22901
22902// NamedPort: The named port. For example: .
22903type NamedPort struct {
22904	// Name: The name for this named port. The name must be 1-63 characters
22905	// long, and comply with RFC1035.
22906	Name string `json:"name,omitempty"`
22907
22908	// Port: The port number, which can be a value between 1 and 65535.
22909	Port int64 `json:"port,omitempty"`
22910
22911	// ForceSendFields is a list of field names (e.g. "Name") to
22912	// unconditionally include in API requests. By default, fields with
22913	// empty values are omitted from API requests. However, any non-pointer,
22914	// non-interface field appearing in ForceSendFields will be sent to the
22915	// server regardless of whether the field is empty or not. This may be
22916	// used to include empty fields in Patch requests.
22917	ForceSendFields []string `json:"-"`
22918
22919	// NullFields is a list of field names (e.g. "Name") to include in API
22920	// requests with the JSON null value. By default, fields with empty
22921	// values are omitted from API requests. However, any field with an
22922	// empty value appearing in NullFields will be sent to the server as
22923	// null. It is an error if a field in this list has a non-empty value.
22924	// This may be used to include null fields in Patch requests.
22925	NullFields []string `json:"-"`
22926}
22927
22928func (s *NamedPort) MarshalJSON() ([]byte, error) {
22929	type NoMethod NamedPort
22930	raw := NoMethod(*s)
22931	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22932}
22933
22934// Network: Represents a VPC Network resource.
22935//
22936// Networks connect resources to each other and to the internet. For
22937// more information, read Virtual Private Cloud (VPC) Network. (==
22938// resource_for {$api_version}.networks ==)
22939type Network struct {
22940	// IPv4Range: Deprecated in favor of subnet mode networks. The range of
22941	// internal addresses that are legal on this network. This range is a
22942	// CIDR specification, for example: 192.168.0.0/16. Provided by the
22943	// client when the network is created.
22944	IPv4Range string `json:"IPv4Range,omitempty"`
22945
22946	// AutoCreateSubnetworks: Must be set to create a VPC network. If not
22947	// set, a legacy network is created.
22948	//
22949	// When set to true, the VPC network is created in auto mode. When set
22950	// to false, the VPC network is created in custom mode.
22951	//
22952	// An auto mode VPC network starts with one subnet per region. Each
22953	// subnet has a predetermined range as described in Auto mode VPC
22954	// network IP ranges.
22955	//
22956	// For custom mode VPC networks, you can add subnets using the
22957	// subnetworks insert method.
22958	AutoCreateSubnetworks bool `json:"autoCreateSubnetworks,omitempty"`
22959
22960	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
22961	// format.
22962	CreationTimestamp string `json:"creationTimestamp,omitempty"`
22963
22964	// Description: An optional description of this resource. Provide this
22965	// field when you create the resource.
22966	Description string `json:"description,omitempty"`
22967
22968	// GatewayIPv4: [Output Only] The gateway address for default routing
22969	// out of the network, selected by GCP.
22970	GatewayIPv4 string `json:"gatewayIPv4,omitempty"`
22971
22972	// Id: [Output Only] The unique identifier for the resource. This
22973	// identifier is defined by the server.
22974	Id uint64 `json:"id,omitempty,string"`
22975
22976	// Kind: [Output Only] Type of the resource. Always compute#network for
22977	// networks.
22978	Kind string `json:"kind,omitempty"`
22979
22980	// Mtu: Maximum Transmission Unit in bytes. The minimum value for this
22981	// field is 1460 and the maximum value is 1500 bytes.
22982	Mtu int64 `json:"mtu,omitempty"`
22983
22984	// Name: Name of the resource. Provided by the client when the resource
22985	// is created. The name must be 1-63 characters long, and comply with
22986	// RFC1035. Specifically, the name must be 1-63 characters long and
22987	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first
22988	// character must be a lowercase letter, and all following characters
22989	// (except for the last character) must be a dash, lowercase letter, or
22990	// digit. The last character must be a lowercase letter or digit.
22991	Name string `json:"name,omitempty"`
22992
22993	// Peerings: [Output Only] A list of network peerings for the resource.
22994	Peerings []*NetworkPeering `json:"peerings,omitempty"`
22995
22996	// RoutingConfig: The network-level routing configuration for this
22997	// network. Used by Cloud Router to determine what type of network-wide
22998	// routing behavior to enforce.
22999	RoutingConfig *NetworkRoutingConfig `json:"routingConfig,omitempty"`
23000
23001	// SelfLink: [Output Only] Server-defined URL for the resource.
23002	SelfLink string `json:"selfLink,omitempty"`
23003
23004	// Subnetworks: [Output Only] Server-defined fully-qualified URLs for
23005	// all subnetworks in this VPC network.
23006	Subnetworks []string `json:"subnetworks,omitempty"`
23007
23008	// ServerResponse contains the HTTP response code and headers from the
23009	// server.
23010	googleapi.ServerResponse `json:"-"`
23011
23012	// ForceSendFields is a list of field names (e.g. "IPv4Range") to
23013	// unconditionally include in API requests. By default, fields with
23014	// empty values are omitted from API requests. However, any non-pointer,
23015	// non-interface field appearing in ForceSendFields will be sent to the
23016	// server regardless of whether the field is empty or not. This may be
23017	// used to include empty fields in Patch requests.
23018	ForceSendFields []string `json:"-"`
23019
23020	// NullFields is a list of field names (e.g. "IPv4Range") to include in
23021	// API requests with the JSON null value. By default, fields with empty
23022	// values are omitted from API requests. However, any field with an
23023	// empty value appearing in NullFields will be sent to the server as
23024	// null. It is an error if a field in this list has a non-empty value.
23025	// This may be used to include null fields in Patch requests.
23026	NullFields []string `json:"-"`
23027}
23028
23029func (s *Network) MarshalJSON() ([]byte, error) {
23030	type NoMethod Network
23031	raw := NoMethod(*s)
23032	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23033}
23034
23035// NetworkEndpoint: The network endpoint.
23036type NetworkEndpoint struct {
23037	// Annotations: Metadata defined as annotations on the network endpoint.
23038	Annotations map[string]string `json:"annotations,omitempty"`
23039
23040	// Fqdn: Optional fully qualified domain name of network endpoint. This
23041	// can only be specified when NetworkEndpointGroup.network_endpoint_type
23042	// is NON_GCP_FQDN_PORT.
23043	Fqdn string `json:"fqdn,omitempty"`
23044
23045	// Instance: The name for a specific VM instance that the IP address
23046	// belongs to. This is required for network endpoints of type
23047	// GCE_VM_IP_PORT. The instance must be in the same zone of network
23048	// endpoint group.
23049	//
23050	// The name must be 1-63 characters long, and comply with RFC1035.
23051	Instance string `json:"instance,omitempty"`
23052
23053	// IpAddress: Optional IPv4 address of network endpoint. The IP address
23054	// must belong to a VM in Compute Engine (either the primary IP or as
23055	// part of an aliased IP range). If the IP address is not specified,
23056	// then the primary IP address for the VM instance in the network that
23057	// the network endpoint group belongs to will be used.
23058	IpAddress string `json:"ipAddress,omitempty"`
23059
23060	// Port: Optional port number of network endpoint. If not specified, the
23061	// defaultPort for the network endpoint group will be used.
23062	Port int64 `json:"port,omitempty"`
23063
23064	// ForceSendFields is a list of field names (e.g. "Annotations") to
23065	// unconditionally include in API requests. By default, fields with
23066	// empty values are omitted from API requests. However, any non-pointer,
23067	// non-interface field appearing in ForceSendFields will be sent to the
23068	// server regardless of whether the field is empty or not. This may be
23069	// used to include empty fields in Patch requests.
23070	ForceSendFields []string `json:"-"`
23071
23072	// NullFields is a list of field names (e.g. "Annotations") to include
23073	// in API requests with the JSON null value. By default, fields with
23074	// empty values are omitted from API requests. However, any field with
23075	// an empty value appearing in NullFields will be sent to the server as
23076	// null. It is an error if a field in this list has a non-empty value.
23077	// This may be used to include null fields in Patch requests.
23078	NullFields []string `json:"-"`
23079}
23080
23081func (s *NetworkEndpoint) MarshalJSON() ([]byte, error) {
23082	type NoMethod NetworkEndpoint
23083	raw := NoMethod(*s)
23084	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23085}
23086
23087// NetworkEndpointGroup: Represents a collection of network
23088// endpoints.
23089//
23090// A network endpoint group (NEG) defines how a set of endpoints should
23091// be reached, whether they are reachable, and where they are located.
23092// For more information about using NEGs, see  Setting up external
23093// HTTP(S) Load Balancing with internet NEGs,  Setting up zonal NEGs, or
23094//  Setting up external HTTP(S) Load Balancing with serverless NEGs. (==
23095// resource_for {$api_version}.networkEndpointGroups ==) (==
23096// resource_for {$api_version}.globalNetworkEndpointGroups ==) (==
23097// resource_for {$api_version}.regionNetworkEndpointGroups ==)
23098type NetworkEndpointGroup struct {
23099	// Annotations: Metadata defined as annotations on the network endpoint
23100	// group.
23101	Annotations map[string]string `json:"annotations,omitempty"`
23102
23103	// AppEngine: Only valid when networkEndpointType is "SERVERLESS". Only
23104	// one of cloudRun, appEngine or cloudFunction may be set.
23105	AppEngine *NetworkEndpointGroupAppEngine `json:"appEngine,omitempty"`
23106
23107	// CloudFunction: Only valid when networkEndpointType is "SERVERLESS".
23108	// Only one of cloudRun, appEngine or cloudFunction may be set.
23109	CloudFunction *NetworkEndpointGroupCloudFunction `json:"cloudFunction,omitempty"`
23110
23111	// CloudRun: Only valid when networkEndpointType is "SERVERLESS". Only
23112	// one of cloudRun, appEngine or cloudFunction may be set.
23113	CloudRun *NetworkEndpointGroupCloudRun `json:"cloudRun,omitempty"`
23114
23115	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
23116	// format.
23117	CreationTimestamp string `json:"creationTimestamp,omitempty"`
23118
23119	// DefaultPort: The default port used if the port number is not
23120	// specified in the network endpoint.
23121	DefaultPort int64 `json:"defaultPort,omitempty"`
23122
23123	// Description: An optional description of this resource. Provide this
23124	// property when you create the resource.
23125	Description string `json:"description,omitempty"`
23126
23127	// Id: [Output Only] The unique identifier for the resource. This
23128	// identifier is defined by the server.
23129	Id uint64 `json:"id,omitempty,string"`
23130
23131	// Kind: [Output Only] Type of the resource. Always
23132	// compute#networkEndpointGroup for network endpoint group.
23133	Kind string `json:"kind,omitempty"`
23134
23135	// Name: Name of the resource; provided by the client when the resource
23136	// is created. The name must be 1-63 characters long, and comply with
23137	// RFC1035. Specifically, the name must be 1-63 characters long and
23138	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
23139	// the first character must be a lowercase letter, and all following
23140	// characters must be a dash, lowercase letter, or digit, except the
23141	// last character, which cannot be a dash.
23142	Name string `json:"name,omitempty"`
23143
23144	// Network: The URL of the network to which all network endpoints in the
23145	// NEG belong. Uses "default" project network if unspecified.
23146	Network string `json:"network,omitempty"`
23147
23148	// NetworkEndpointType: Type of network endpoints in this network
23149	// endpoint group. Can be one of GCE_VM_IP_PORT,
23150	// NON_GCP_PRIVATE_IP_PORT, INTERNET_FQDN_PORT, INTERNET_IP_PORT, or
23151	// SERVERLESS.
23152	//
23153	// Possible values:
23154	//   "GCE_VM_IP"
23155	//   "GCE_VM_IP_PORT"
23156	//   "INTERNET_FQDN_PORT"
23157	//   "INTERNET_IP_PORT"
23158	//   "NON_GCP_PRIVATE_IP_PORT"
23159	//   "SERVERLESS"
23160	NetworkEndpointType string `json:"networkEndpointType,omitempty"`
23161
23162	// Region: [Output Only] The URL of the region where the network
23163	// endpoint group is located.
23164	Region string `json:"region,omitempty"`
23165
23166	// SelfLink: [Output Only] Server-defined URL for the resource.
23167	SelfLink string `json:"selfLink,omitempty"`
23168
23169	// Size: [Output only] Number of network endpoints in the network
23170	// endpoint group.
23171	Size int64 `json:"size,omitempty"`
23172
23173	// Subnetwork: Optional URL of the subnetwork to which all network
23174	// endpoints in the NEG belong.
23175	Subnetwork string `json:"subnetwork,omitempty"`
23176
23177	// Zone: [Output Only] The URL of the zone where the network endpoint
23178	// group is located.
23179	Zone string `json:"zone,omitempty"`
23180
23181	// ServerResponse contains the HTTP response code and headers from the
23182	// server.
23183	googleapi.ServerResponse `json:"-"`
23184
23185	// ForceSendFields is a list of field names (e.g. "Annotations") to
23186	// unconditionally include in API requests. By default, fields with
23187	// empty values are omitted from API requests. However, any non-pointer,
23188	// non-interface field appearing in ForceSendFields will be sent to the
23189	// server regardless of whether the field is empty or not. This may be
23190	// used to include empty fields in Patch requests.
23191	ForceSendFields []string `json:"-"`
23192
23193	// NullFields is a list of field names (e.g. "Annotations") to include
23194	// in API requests with the JSON null value. By default, fields with
23195	// empty values are omitted from API requests. However, any field with
23196	// an empty value appearing in NullFields will be sent to the server as
23197	// null. It is an error if a field in this list has a non-empty value.
23198	// This may be used to include null fields in Patch requests.
23199	NullFields []string `json:"-"`
23200}
23201
23202func (s *NetworkEndpointGroup) MarshalJSON() ([]byte, error) {
23203	type NoMethod NetworkEndpointGroup
23204	raw := NoMethod(*s)
23205	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23206}
23207
23208type NetworkEndpointGroupAggregatedList struct {
23209	// Id: [Output Only] Unique identifier for the resource; defined by the
23210	// server.
23211	Id string `json:"id,omitempty"`
23212
23213	// Items: A list of NetworkEndpointGroupsScopedList resources.
23214	Items map[string]NetworkEndpointGroupsScopedList `json:"items,omitempty"`
23215
23216	// Kind: [Output Only] The resource type, which is always
23217	// compute#networkEndpointGroupAggregatedList for aggregated lists of
23218	// network endpoint groups.
23219	Kind string `json:"kind,omitempty"`
23220
23221	// NextPageToken: [Output Only] This token allows you to get the next
23222	// page of results for list requests. If the number of results is larger
23223	// than maxResults, use the nextPageToken as a value for the query
23224	// parameter pageToken in the next list request. Subsequent list
23225	// requests will have their own nextPageToken to continue paging through
23226	// the results.
23227	NextPageToken string `json:"nextPageToken,omitempty"`
23228
23229	// SelfLink: [Output Only] Server-defined URL for this resource.
23230	SelfLink string `json:"selfLink,omitempty"`
23231
23232	// Unreachables: [Output Only] Unreachable resources.
23233	Unreachables []string `json:"unreachables,omitempty"`
23234
23235	// Warning: [Output Only] Informational warning message.
23236	Warning *NetworkEndpointGroupAggregatedListWarning `json:"warning,omitempty"`
23237
23238	// ServerResponse contains the HTTP response code and headers from the
23239	// server.
23240	googleapi.ServerResponse `json:"-"`
23241
23242	// ForceSendFields is a list of field names (e.g. "Id") to
23243	// unconditionally include in API requests. By default, fields with
23244	// empty values are omitted from API requests. However, any non-pointer,
23245	// non-interface field appearing in ForceSendFields will be sent to the
23246	// server regardless of whether the field is empty or not. This may be
23247	// used to include empty fields in Patch requests.
23248	ForceSendFields []string `json:"-"`
23249
23250	// NullFields is a list of field names (e.g. "Id") to include in API
23251	// requests with the JSON null value. By default, fields with empty
23252	// values are omitted from API requests. However, any field with an
23253	// empty value appearing in NullFields will be sent to the server as
23254	// null. It is an error if a field in this list has a non-empty value.
23255	// This may be used to include null fields in Patch requests.
23256	NullFields []string `json:"-"`
23257}
23258
23259func (s *NetworkEndpointGroupAggregatedList) MarshalJSON() ([]byte, error) {
23260	type NoMethod NetworkEndpointGroupAggregatedList
23261	raw := NoMethod(*s)
23262	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23263}
23264
23265// NetworkEndpointGroupAggregatedListWarning: [Output Only]
23266// Informational warning message.
23267type NetworkEndpointGroupAggregatedListWarning struct {
23268	// Code: [Output Only] A warning code, if applicable. For example,
23269	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23270	// the response.
23271	//
23272	// Possible values:
23273	//   "CLEANUP_FAILED"
23274	//   "DEPRECATED_RESOURCE_USED"
23275	//   "DEPRECATED_TYPE_USED"
23276	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23277	//   "EXPERIMENTAL_TYPE_USED"
23278	//   "EXTERNAL_API_WARNING"
23279	//   "FIELD_VALUE_OVERRIDEN"
23280	//   "INJECTED_KERNELS_DEPRECATED"
23281	//   "LARGE_DEPLOYMENT_WARNING"
23282	//   "MISSING_TYPE_DEPENDENCY"
23283	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23284	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23285	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23286	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23287	//   "NEXT_HOP_NOT_RUNNING"
23288	//   "NOT_CRITICAL_ERROR"
23289	//   "NO_RESULTS_ON_PAGE"
23290	//   "PARTIAL_SUCCESS"
23291	//   "REQUIRED_TOS_AGREEMENT"
23292	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23293	//   "RESOURCE_NOT_DELETED"
23294	//   "SCHEMA_VALIDATION_IGNORED"
23295	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23296	//   "UNDECLARED_PROPERTIES"
23297	//   "UNREACHABLE"
23298	Code string `json:"code,omitempty"`
23299
23300	// Data: [Output Only] Metadata about this warning in key: value format.
23301	// For example:
23302	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
23303	Data []*NetworkEndpointGroupAggregatedListWarningData `json:"data,omitempty"`
23304
23305	// Message: [Output Only] A human-readable description of the warning
23306	// code.
23307	Message string `json:"message,omitempty"`
23308
23309	// ForceSendFields is a list of field names (e.g. "Code") to
23310	// unconditionally include in API requests. By default, fields with
23311	// empty values are omitted from API requests. However, any non-pointer,
23312	// non-interface field appearing in ForceSendFields will be sent to the
23313	// server regardless of whether the field is empty or not. This may be
23314	// used to include empty fields in Patch requests.
23315	ForceSendFields []string `json:"-"`
23316
23317	// NullFields is a list of field names (e.g. "Code") to include in API
23318	// requests with the JSON null value. By default, fields with empty
23319	// values are omitted from API requests. However, any field with an
23320	// empty value appearing in NullFields will be sent to the server as
23321	// null. It is an error if a field in this list has a non-empty value.
23322	// This may be used to include null fields in Patch requests.
23323	NullFields []string `json:"-"`
23324}
23325
23326func (s *NetworkEndpointGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
23327	type NoMethod NetworkEndpointGroupAggregatedListWarning
23328	raw := NoMethod(*s)
23329	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23330}
23331
23332type NetworkEndpointGroupAggregatedListWarningData struct {
23333	// Key: [Output Only] A key that provides more detail on the warning
23334	// being returned. For example, for warnings where there are no results
23335	// in a list request for a particular zone, this key might be scope and
23336	// the key value might be the zone name. Other examples might be a key
23337	// indicating a deprecated resource and a suggested replacement, or a
23338	// warning about invalid network settings (for example, if an instance
23339	// attempts to perform IP forwarding but is not enabled for IP
23340	// forwarding).
23341	Key string `json:"key,omitempty"`
23342
23343	// Value: [Output Only] A warning data value corresponding to the key.
23344	Value string `json:"value,omitempty"`
23345
23346	// ForceSendFields is a list of field names (e.g. "Key") to
23347	// unconditionally include in API requests. By default, fields with
23348	// empty values are omitted from API requests. However, any non-pointer,
23349	// non-interface field appearing in ForceSendFields will be sent to the
23350	// server regardless of whether the field is empty or not. This may be
23351	// used to include empty fields in Patch requests.
23352	ForceSendFields []string `json:"-"`
23353
23354	// NullFields is a list of field names (e.g. "Key") to include in API
23355	// requests with the JSON null value. By default, fields with empty
23356	// values are omitted from API requests. However, any field with an
23357	// empty value appearing in NullFields will be sent to the server as
23358	// null. It is an error if a field in this list has a non-empty value.
23359	// This may be used to include null fields in Patch requests.
23360	NullFields []string `json:"-"`
23361}
23362
23363func (s *NetworkEndpointGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
23364	type NoMethod NetworkEndpointGroupAggregatedListWarningData
23365	raw := NoMethod(*s)
23366	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23367}
23368
23369// NetworkEndpointGroupAppEngine: Configuration for an App Engine
23370// network endpoint group (NEG). The service is optional, may be
23371// provided explicitly or in the URL mask. The version is optional and
23372// can only be provided explicitly or in the URL mask when service is
23373// present.
23374//
23375// Note: App Engine service must be in the same project and located in
23376// the same region as the Serverless NEG.
23377type NetworkEndpointGroupAppEngine struct {
23378	// Service: Optional serving service.
23379	//
23380	// The service name is case-sensitive and must be 1-63 characters
23381	// long.
23382	//
23383	// Example value: "default", "my-service".
23384	Service string `json:"service,omitempty"`
23385
23386	// UrlMask: A template to parse service and version fields from a
23387	// request URL. URL mask allows for routing to multiple App Engine
23388	// services without having to create multiple Network Endpoint Groups
23389	// and backend services.
23390	//
23391	// For example, the request URLs "foo1-dot-appname.appspot.com/v1" and
23392	// "foo1-dot-appname.appspot.com/v2" can be backed by the same
23393	// Serverless NEG with URL mask "-dot-appname.appspot.com/". The URL
23394	// mask will parse them to { service = "foo1", version = "v1" } and {
23395	// service = "foo1", version = "v2" } respectively.
23396	UrlMask string `json:"urlMask,omitempty"`
23397
23398	// Version: Optional serving version.
23399	//
23400	// The version name is case-sensitive and must be 1-100 characters
23401	// long.
23402	//
23403	// Example value: "v1", "v2".
23404	Version string `json:"version,omitempty"`
23405
23406	// ForceSendFields is a list of field names (e.g. "Service") to
23407	// unconditionally include in API requests. By default, fields with
23408	// empty values are omitted from API requests. However, any non-pointer,
23409	// non-interface field appearing in ForceSendFields will be sent to the
23410	// server regardless of whether the field is empty or not. This may be
23411	// used to include empty fields in Patch requests.
23412	ForceSendFields []string `json:"-"`
23413
23414	// NullFields is a list of field names (e.g. "Service") to include in
23415	// API requests with the JSON null value. By default, fields with empty
23416	// values are omitted from API requests. However, any field with an
23417	// empty value appearing in NullFields will be sent to the server as
23418	// null. It is an error if a field in this list has a non-empty value.
23419	// This may be used to include null fields in Patch requests.
23420	NullFields []string `json:"-"`
23421}
23422
23423func (s *NetworkEndpointGroupAppEngine) MarshalJSON() ([]byte, error) {
23424	type NoMethod NetworkEndpointGroupAppEngine
23425	raw := NoMethod(*s)
23426	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23427}
23428
23429// NetworkEndpointGroupCloudFunction: Configuration for a Cloud Function
23430// network endpoint group (NEG). The function must be provided
23431// explicitly or in the URL mask.
23432//
23433// Note: Cloud Function must be in the same project and located in the
23434// same region as the Serverless NEG.
23435type NetworkEndpointGroupCloudFunction struct {
23436	// Function: A user-defined name of the Cloud Function.
23437	//
23438	// The function name is case-sensitive and must be 1-63 characters
23439	// long.
23440	//
23441	// Example value: "func1".
23442	Function string `json:"function,omitempty"`
23443
23444	// UrlMask: A template to parse function field from a request URL. URL
23445	// mask allows for routing to multiple Cloud Functions without having to
23446	// create multiple Network Endpoint Groups and backend services.
23447	//
23448	// For example, request URLs "mydomain.com/function1" and
23449	// "mydomain.com/function2" can be backed by the same Serverless NEG
23450	// with URL mask "/". The URL mask will parse them to { function =
23451	// "function1" } and { function = "function2" } respectively.
23452	UrlMask string `json:"urlMask,omitempty"`
23453
23454	// ForceSendFields is a list of field names (e.g. "Function") to
23455	// unconditionally include in API requests. By default, fields with
23456	// empty values are omitted from API requests. However, any non-pointer,
23457	// non-interface field appearing in ForceSendFields will be sent to the
23458	// server regardless of whether the field is empty or not. This may be
23459	// used to include empty fields in Patch requests.
23460	ForceSendFields []string `json:"-"`
23461
23462	// NullFields is a list of field names (e.g. "Function") to include in
23463	// API requests with the JSON null value. By default, fields with empty
23464	// values are omitted from API requests. However, any field with an
23465	// empty value appearing in NullFields will be sent to the server as
23466	// null. It is an error if a field in this list has a non-empty value.
23467	// This may be used to include null fields in Patch requests.
23468	NullFields []string `json:"-"`
23469}
23470
23471func (s *NetworkEndpointGroupCloudFunction) MarshalJSON() ([]byte, error) {
23472	type NoMethod NetworkEndpointGroupCloudFunction
23473	raw := NoMethod(*s)
23474	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23475}
23476
23477// NetworkEndpointGroupCloudRun: Configuration for a Cloud Run network
23478// endpoint group (NEG). The service must be provided explicitly or in
23479// the URL mask. The tag is optional, may be provided explicitly or in
23480// the URL mask.
23481//
23482// Note: Cloud Run service must be in the same project and located in
23483// the same region as the Serverless NEG.
23484type NetworkEndpointGroupCloudRun struct {
23485	// Service: Cloud Run service is the main resource of Cloud Run.
23486	//
23487	// The service must be 1-63 characters long, and comply with
23488	// RFC1035.
23489	//
23490	// Example value: "run-service".
23491	Service string `json:"service,omitempty"`
23492
23493	// Tag: Optional Cloud Run tag represents the "named-revision" to
23494	// provide additional fine-grained traffic routing information.
23495	//
23496	// The tag must be 1-63 characters long, and comply with
23497	// RFC1035.
23498	//
23499	// Example value: "revision-0010".
23500	Tag string `json:"tag,omitempty"`
23501
23502	// UrlMask: A template to parse service and tag fields from a request
23503	// URL. URL mask allows for routing to multiple Run services without
23504	// having to create multiple network endpoint groups and backend
23505	// services.
23506	//
23507	// For example, request URLs "foo1.domain.com/bar1" and
23508	// "foo1.domain.com/bar2" can be backed by the same Serverless Network
23509	// Endpoint Group (NEG) with URL mask ".domain.com/". The URL mask will
23510	// parse them to { service="bar1", tag="foo1" } and { service="bar2",
23511	// tag="foo2" } respectively.
23512	UrlMask string `json:"urlMask,omitempty"`
23513
23514	// ForceSendFields is a list of field names (e.g. "Service") to
23515	// unconditionally include in API requests. By default, fields with
23516	// empty values are omitted from API requests. However, any non-pointer,
23517	// non-interface field appearing in ForceSendFields will be sent to the
23518	// server regardless of whether the field is empty or not. This may be
23519	// used to include empty fields in Patch requests.
23520	ForceSendFields []string `json:"-"`
23521
23522	// NullFields is a list of field names (e.g. "Service") to include in
23523	// API requests with the JSON null value. By default, fields with empty
23524	// values are omitted from API requests. However, any field with an
23525	// empty value appearing in NullFields will be sent to the server as
23526	// null. It is an error if a field in this list has a non-empty value.
23527	// This may be used to include null fields in Patch requests.
23528	NullFields []string `json:"-"`
23529}
23530
23531func (s *NetworkEndpointGroupCloudRun) MarshalJSON() ([]byte, error) {
23532	type NoMethod NetworkEndpointGroupCloudRun
23533	raw := NoMethod(*s)
23534	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23535}
23536
23537type NetworkEndpointGroupList struct {
23538	// Id: [Output Only] Unique identifier for the resource; defined by the
23539	// server.
23540	Id string `json:"id,omitempty"`
23541
23542	// Items: A list of NetworkEndpointGroup resources.
23543	Items []*NetworkEndpointGroup `json:"items,omitempty"`
23544
23545	// Kind: [Output Only] The resource type, which is always
23546	// compute#networkEndpointGroupList for network endpoint group lists.
23547	Kind string `json:"kind,omitempty"`
23548
23549	// NextPageToken: [Output Only] This token allows you to get the next
23550	// page of results for list requests. If the number of results is larger
23551	// than maxResults, use the nextPageToken as a value for the query
23552	// parameter pageToken in the next list request. Subsequent list
23553	// requests will have their own nextPageToken to continue paging through
23554	// the results.
23555	NextPageToken string `json:"nextPageToken,omitempty"`
23556
23557	// SelfLink: [Output Only] Server-defined URL for this resource.
23558	SelfLink string `json:"selfLink,omitempty"`
23559
23560	// Warning: [Output Only] Informational warning message.
23561	Warning *NetworkEndpointGroupListWarning `json:"warning,omitempty"`
23562
23563	// ServerResponse contains the HTTP response code and headers from the
23564	// server.
23565	googleapi.ServerResponse `json:"-"`
23566
23567	// ForceSendFields is a list of field names (e.g. "Id") to
23568	// unconditionally include in API requests. By default, fields with
23569	// empty values are omitted from API requests. However, any non-pointer,
23570	// non-interface field appearing in ForceSendFields will be sent to the
23571	// server regardless of whether the field is empty or not. This may be
23572	// used to include empty fields in Patch requests.
23573	ForceSendFields []string `json:"-"`
23574
23575	// NullFields is a list of field names (e.g. "Id") to include in API
23576	// requests with the JSON null value. By default, fields with empty
23577	// values are omitted from API requests. However, any field with an
23578	// empty value appearing in NullFields will be sent to the server as
23579	// null. It is an error if a field in this list has a non-empty value.
23580	// This may be used to include null fields in Patch requests.
23581	NullFields []string `json:"-"`
23582}
23583
23584func (s *NetworkEndpointGroupList) MarshalJSON() ([]byte, error) {
23585	type NoMethod NetworkEndpointGroupList
23586	raw := NoMethod(*s)
23587	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23588}
23589
23590// NetworkEndpointGroupListWarning: [Output Only] Informational warning
23591// message.
23592type NetworkEndpointGroupListWarning struct {
23593	// Code: [Output Only] A warning code, if applicable. For example,
23594	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23595	// the response.
23596	//
23597	// Possible values:
23598	//   "CLEANUP_FAILED"
23599	//   "DEPRECATED_RESOURCE_USED"
23600	//   "DEPRECATED_TYPE_USED"
23601	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23602	//   "EXPERIMENTAL_TYPE_USED"
23603	//   "EXTERNAL_API_WARNING"
23604	//   "FIELD_VALUE_OVERRIDEN"
23605	//   "INJECTED_KERNELS_DEPRECATED"
23606	//   "LARGE_DEPLOYMENT_WARNING"
23607	//   "MISSING_TYPE_DEPENDENCY"
23608	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23609	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23610	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23611	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23612	//   "NEXT_HOP_NOT_RUNNING"
23613	//   "NOT_CRITICAL_ERROR"
23614	//   "NO_RESULTS_ON_PAGE"
23615	//   "PARTIAL_SUCCESS"
23616	//   "REQUIRED_TOS_AGREEMENT"
23617	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23618	//   "RESOURCE_NOT_DELETED"
23619	//   "SCHEMA_VALIDATION_IGNORED"
23620	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23621	//   "UNDECLARED_PROPERTIES"
23622	//   "UNREACHABLE"
23623	Code string `json:"code,omitempty"`
23624
23625	// Data: [Output Only] Metadata about this warning in key: value format.
23626	// For example:
23627	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
23628	Data []*NetworkEndpointGroupListWarningData `json:"data,omitempty"`
23629
23630	// Message: [Output Only] A human-readable description of the warning
23631	// code.
23632	Message string `json:"message,omitempty"`
23633
23634	// ForceSendFields is a list of field names (e.g. "Code") to
23635	// unconditionally include in API requests. By default, fields with
23636	// empty values are omitted from API requests. However, any non-pointer,
23637	// non-interface field appearing in ForceSendFields will be sent to the
23638	// server regardless of whether the field is empty or not. This may be
23639	// used to include empty fields in Patch requests.
23640	ForceSendFields []string `json:"-"`
23641
23642	// NullFields is a list of field names (e.g. "Code") to include in API
23643	// requests with the JSON null value. By default, fields with empty
23644	// values are omitted from API requests. However, any field with an
23645	// empty value appearing in NullFields will be sent to the server as
23646	// null. It is an error if a field in this list has a non-empty value.
23647	// This may be used to include null fields in Patch requests.
23648	NullFields []string `json:"-"`
23649}
23650
23651func (s *NetworkEndpointGroupListWarning) MarshalJSON() ([]byte, error) {
23652	type NoMethod NetworkEndpointGroupListWarning
23653	raw := NoMethod(*s)
23654	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23655}
23656
23657type NetworkEndpointGroupListWarningData struct {
23658	// Key: [Output Only] A key that provides more detail on the warning
23659	// being returned. For example, for warnings where there are no results
23660	// in a list request for a particular zone, this key might be scope and
23661	// the key value might be the zone name. Other examples might be a key
23662	// indicating a deprecated resource and a suggested replacement, or a
23663	// warning about invalid network settings (for example, if an instance
23664	// attempts to perform IP forwarding but is not enabled for IP
23665	// forwarding).
23666	Key string `json:"key,omitempty"`
23667
23668	// Value: [Output Only] A warning data value corresponding to the key.
23669	Value string `json:"value,omitempty"`
23670
23671	// ForceSendFields is a list of field names (e.g. "Key") to
23672	// unconditionally include in API requests. By default, fields with
23673	// empty values are omitted from API requests. However, any non-pointer,
23674	// non-interface field appearing in ForceSendFields will be sent to the
23675	// server regardless of whether the field is empty or not. This may be
23676	// used to include empty fields in Patch requests.
23677	ForceSendFields []string `json:"-"`
23678
23679	// NullFields is a list of field names (e.g. "Key") to include in API
23680	// requests with the JSON null value. By default, fields with empty
23681	// values are omitted from API requests. However, any field with an
23682	// empty value appearing in NullFields will be sent to the server as
23683	// null. It is an error if a field in this list has a non-empty value.
23684	// This may be used to include null fields in Patch requests.
23685	NullFields []string `json:"-"`
23686}
23687
23688func (s *NetworkEndpointGroupListWarningData) MarshalJSON() ([]byte, error) {
23689	type NoMethod NetworkEndpointGroupListWarningData
23690	raw := NoMethod(*s)
23691	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23692}
23693
23694type NetworkEndpointGroupsAttachEndpointsRequest struct {
23695	// NetworkEndpoints: The list of network endpoints to be attached.
23696	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
23697
23698	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
23699	// unconditionally include in API requests. By default, fields with
23700	// empty values are omitted from API requests. However, any non-pointer,
23701	// non-interface field appearing in ForceSendFields will be sent to the
23702	// server regardless of whether the field is empty or not. This may be
23703	// used to include empty fields in Patch requests.
23704	ForceSendFields []string `json:"-"`
23705
23706	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
23707	// include in API requests with the JSON null value. By default, fields
23708	// with empty values are omitted from API requests. However, any field
23709	// with an empty value appearing in NullFields will be sent to the
23710	// server as null. It is an error if a field in this list has a
23711	// non-empty value. This may be used to include null fields in Patch
23712	// requests.
23713	NullFields []string `json:"-"`
23714}
23715
23716func (s *NetworkEndpointGroupsAttachEndpointsRequest) MarshalJSON() ([]byte, error) {
23717	type NoMethod NetworkEndpointGroupsAttachEndpointsRequest
23718	raw := NoMethod(*s)
23719	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23720}
23721
23722type NetworkEndpointGroupsDetachEndpointsRequest struct {
23723	// NetworkEndpoints: The list of network endpoints to be detached.
23724	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
23725
23726	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") 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. "NetworkEndpoints") to
23735	// include in API requests with the JSON null value. By default, fields
23736	// with empty values are omitted from API requests. However, any field
23737	// with an empty value appearing in NullFields will be sent to the
23738	// server as null. It is an error if a field in this list has a
23739	// non-empty value. This may be used to include null fields in Patch
23740	// requests.
23741	NullFields []string `json:"-"`
23742}
23743
23744func (s *NetworkEndpointGroupsDetachEndpointsRequest) MarshalJSON() ([]byte, error) {
23745	type NoMethod NetworkEndpointGroupsDetachEndpointsRequest
23746	raw := NoMethod(*s)
23747	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23748}
23749
23750type NetworkEndpointGroupsListEndpointsRequest struct {
23751	// HealthStatus: Optional query parameter for showing the health status
23752	// of each network endpoint. Valid options are SKIP or SHOW. If you
23753	// don't specify this parameter, the health status of network endpoints
23754	// will not be provided.
23755	//
23756	// Possible values:
23757	//   "SHOW"
23758	//   "SKIP"
23759	HealthStatus string `json:"healthStatus,omitempty"`
23760
23761	// ForceSendFields is a list of field names (e.g. "HealthStatus") to
23762	// unconditionally include in API requests. By default, fields with
23763	// empty values are omitted from API requests. However, any non-pointer,
23764	// non-interface field appearing in ForceSendFields will be sent to the
23765	// server regardless of whether the field is empty or not. This may be
23766	// used to include empty fields in Patch requests.
23767	ForceSendFields []string `json:"-"`
23768
23769	// NullFields is a list of field names (e.g. "HealthStatus") to include
23770	// in API requests with the JSON null value. By default, fields with
23771	// empty values are omitted from API requests. However, any field with
23772	// an empty value appearing in NullFields will be sent to the server as
23773	// null. It is an error if a field in this list has a non-empty value.
23774	// This may be used to include null fields in Patch requests.
23775	NullFields []string `json:"-"`
23776}
23777
23778func (s *NetworkEndpointGroupsListEndpointsRequest) MarshalJSON() ([]byte, error) {
23779	type NoMethod NetworkEndpointGroupsListEndpointsRequest
23780	raw := NoMethod(*s)
23781	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23782}
23783
23784type NetworkEndpointGroupsListNetworkEndpoints struct {
23785	// Id: [Output Only] Unique identifier for the resource; defined by the
23786	// server.
23787	Id string `json:"id,omitempty"`
23788
23789	// Items: A list of NetworkEndpointWithHealthStatus resources.
23790	Items []*NetworkEndpointWithHealthStatus `json:"items,omitempty"`
23791
23792	// Kind: [Output Only] The resource type, which is always
23793	// compute#networkEndpointGroupsListNetworkEndpoints for the list of
23794	// network endpoints in the specified network endpoint group.
23795	Kind string `json:"kind,omitempty"`
23796
23797	// NextPageToken: [Output Only] This token allows you to get the next
23798	// page of results for list requests. If the number of results is larger
23799	// than maxResults, use the nextPageToken as a value for the query
23800	// parameter pageToken in the next list request. Subsequent list
23801	// requests will have their own nextPageToken to continue paging through
23802	// the results.
23803	NextPageToken string `json:"nextPageToken,omitempty"`
23804
23805	// Warning: [Output Only] Informational warning message.
23806	Warning *NetworkEndpointGroupsListNetworkEndpointsWarning `json:"warning,omitempty"`
23807
23808	// ServerResponse contains the HTTP response code and headers from the
23809	// server.
23810	googleapi.ServerResponse `json:"-"`
23811
23812	// ForceSendFields is a list of field names (e.g. "Id") to
23813	// unconditionally include in API requests. By default, fields with
23814	// empty values are omitted from API requests. However, any non-pointer,
23815	// non-interface field appearing in ForceSendFields will be sent to the
23816	// server regardless of whether the field is empty or not. This may be
23817	// used to include empty fields in Patch requests.
23818	ForceSendFields []string `json:"-"`
23819
23820	// NullFields is a list of field names (e.g. "Id") to include in API
23821	// requests with the JSON null value. By default, fields with empty
23822	// values are omitted from API requests. However, any field with an
23823	// empty value appearing in NullFields will be sent to the server as
23824	// null. It is an error if a field in this list has a non-empty value.
23825	// This may be used to include null fields in Patch requests.
23826	NullFields []string `json:"-"`
23827}
23828
23829func (s *NetworkEndpointGroupsListNetworkEndpoints) MarshalJSON() ([]byte, error) {
23830	type NoMethod NetworkEndpointGroupsListNetworkEndpoints
23831	raw := NoMethod(*s)
23832	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23833}
23834
23835// NetworkEndpointGroupsListNetworkEndpointsWarning: [Output Only]
23836// Informational warning message.
23837type NetworkEndpointGroupsListNetworkEndpointsWarning struct {
23838	// Code: [Output Only] A warning code, if applicable. For example,
23839	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23840	// the response.
23841	//
23842	// Possible values:
23843	//   "CLEANUP_FAILED"
23844	//   "DEPRECATED_RESOURCE_USED"
23845	//   "DEPRECATED_TYPE_USED"
23846	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23847	//   "EXPERIMENTAL_TYPE_USED"
23848	//   "EXTERNAL_API_WARNING"
23849	//   "FIELD_VALUE_OVERRIDEN"
23850	//   "INJECTED_KERNELS_DEPRECATED"
23851	//   "LARGE_DEPLOYMENT_WARNING"
23852	//   "MISSING_TYPE_DEPENDENCY"
23853	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23854	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23855	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23856	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23857	//   "NEXT_HOP_NOT_RUNNING"
23858	//   "NOT_CRITICAL_ERROR"
23859	//   "NO_RESULTS_ON_PAGE"
23860	//   "PARTIAL_SUCCESS"
23861	//   "REQUIRED_TOS_AGREEMENT"
23862	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23863	//   "RESOURCE_NOT_DELETED"
23864	//   "SCHEMA_VALIDATION_IGNORED"
23865	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23866	//   "UNDECLARED_PROPERTIES"
23867	//   "UNREACHABLE"
23868	Code string `json:"code,omitempty"`
23869
23870	// Data: [Output Only] Metadata about this warning in key: value format.
23871	// For example:
23872	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
23873	Data []*NetworkEndpointGroupsListNetworkEndpointsWarningData `json:"data,omitempty"`
23874
23875	// Message: [Output Only] A human-readable description of the warning
23876	// code.
23877	Message string `json:"message,omitempty"`
23878
23879	// ForceSendFields is a list of field names (e.g. "Code") to
23880	// unconditionally include in API requests. By default, fields with
23881	// empty values are omitted from API requests. However, any non-pointer,
23882	// non-interface field appearing in ForceSendFields will be sent to the
23883	// server regardless of whether the field is empty or not. This may be
23884	// used to include empty fields in Patch requests.
23885	ForceSendFields []string `json:"-"`
23886
23887	// NullFields is a list of field names (e.g. "Code") to include in API
23888	// requests with the JSON null value. By default, fields with empty
23889	// values are omitted from API requests. However, any field with an
23890	// empty value appearing in NullFields will be sent to the server as
23891	// null. It is an error if a field in this list has a non-empty value.
23892	// This may be used to include null fields in Patch requests.
23893	NullFields []string `json:"-"`
23894}
23895
23896func (s *NetworkEndpointGroupsListNetworkEndpointsWarning) MarshalJSON() ([]byte, error) {
23897	type NoMethod NetworkEndpointGroupsListNetworkEndpointsWarning
23898	raw := NoMethod(*s)
23899	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23900}
23901
23902type NetworkEndpointGroupsListNetworkEndpointsWarningData struct {
23903	// Key: [Output Only] A key that provides more detail on the warning
23904	// being returned. For example, for warnings where there are no results
23905	// in a list request for a particular zone, this key might be scope and
23906	// the key value might be the zone name. Other examples might be a key
23907	// indicating a deprecated resource and a suggested replacement, or a
23908	// warning about invalid network settings (for example, if an instance
23909	// attempts to perform IP forwarding but is not enabled for IP
23910	// forwarding).
23911	Key string `json:"key,omitempty"`
23912
23913	// Value: [Output Only] A warning data value corresponding to the key.
23914	Value string `json:"value,omitempty"`
23915
23916	// ForceSendFields is a list of field names (e.g. "Key") to
23917	// unconditionally include in API requests. By default, fields with
23918	// empty values are omitted from API requests. However, any non-pointer,
23919	// non-interface field appearing in ForceSendFields will be sent to the
23920	// server regardless of whether the field is empty or not. This may be
23921	// used to include empty fields in Patch requests.
23922	ForceSendFields []string `json:"-"`
23923
23924	// NullFields is a list of field names (e.g. "Key") to include in API
23925	// requests with the JSON null value. By default, fields with empty
23926	// values are omitted from API requests. However, any field with an
23927	// empty value appearing in NullFields will be sent to the server as
23928	// null. It is an error if a field in this list has a non-empty value.
23929	// This may be used to include null fields in Patch requests.
23930	NullFields []string `json:"-"`
23931}
23932
23933func (s *NetworkEndpointGroupsListNetworkEndpointsWarningData) MarshalJSON() ([]byte, error) {
23934	type NoMethod NetworkEndpointGroupsListNetworkEndpointsWarningData
23935	raw := NoMethod(*s)
23936	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23937}
23938
23939type NetworkEndpointGroupsScopedList struct {
23940	// NetworkEndpointGroups: [Output Only] The list of network endpoint
23941	// groups that are contained in this scope.
23942	NetworkEndpointGroups []*NetworkEndpointGroup `json:"networkEndpointGroups,omitempty"`
23943
23944	// Warning: [Output Only] An informational warning that replaces the
23945	// list of network endpoint groups when the list is empty.
23946	Warning *NetworkEndpointGroupsScopedListWarning `json:"warning,omitempty"`
23947
23948	// ForceSendFields is a list of field names (e.g.
23949	// "NetworkEndpointGroups") to unconditionally include in API requests.
23950	// By default, fields with empty values are omitted from API requests.
23951	// However, any non-pointer, non-interface field appearing in
23952	// ForceSendFields will be sent to the server regardless of whether the
23953	// field is empty or not. This may be used to include empty fields in
23954	// Patch requests.
23955	ForceSendFields []string `json:"-"`
23956
23957	// NullFields is a list of field names (e.g. "NetworkEndpointGroups") to
23958	// include in API requests with the JSON null value. By default, fields
23959	// with empty values are omitted from API requests. However, any field
23960	// with an empty value appearing in NullFields will be sent to the
23961	// server as null. It is an error if a field in this list has a
23962	// non-empty value. This may be used to include null fields in Patch
23963	// requests.
23964	NullFields []string `json:"-"`
23965}
23966
23967func (s *NetworkEndpointGroupsScopedList) MarshalJSON() ([]byte, error) {
23968	type NoMethod NetworkEndpointGroupsScopedList
23969	raw := NoMethod(*s)
23970	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23971}
23972
23973// NetworkEndpointGroupsScopedListWarning: [Output Only] An
23974// informational warning that replaces the list of network endpoint
23975// groups when the list is empty.
23976type NetworkEndpointGroupsScopedListWarning struct {
23977	// Code: [Output Only] A warning code, if applicable. For example,
23978	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23979	// the response.
23980	//
23981	// Possible values:
23982	//   "CLEANUP_FAILED"
23983	//   "DEPRECATED_RESOURCE_USED"
23984	//   "DEPRECATED_TYPE_USED"
23985	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23986	//   "EXPERIMENTAL_TYPE_USED"
23987	//   "EXTERNAL_API_WARNING"
23988	//   "FIELD_VALUE_OVERRIDEN"
23989	//   "INJECTED_KERNELS_DEPRECATED"
23990	//   "LARGE_DEPLOYMENT_WARNING"
23991	//   "MISSING_TYPE_DEPENDENCY"
23992	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23993	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23994	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23995	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23996	//   "NEXT_HOP_NOT_RUNNING"
23997	//   "NOT_CRITICAL_ERROR"
23998	//   "NO_RESULTS_ON_PAGE"
23999	//   "PARTIAL_SUCCESS"
24000	//   "REQUIRED_TOS_AGREEMENT"
24001	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
24002	//   "RESOURCE_NOT_DELETED"
24003	//   "SCHEMA_VALIDATION_IGNORED"
24004	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
24005	//   "UNDECLARED_PROPERTIES"
24006	//   "UNREACHABLE"
24007	Code string `json:"code,omitempty"`
24008
24009	// Data: [Output Only] Metadata about this warning in key: value format.
24010	// For example:
24011	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
24012	Data []*NetworkEndpointGroupsScopedListWarningData `json:"data,omitempty"`
24013
24014	// Message: [Output Only] A human-readable description of the warning
24015	// code.
24016	Message string `json:"message,omitempty"`
24017
24018	// ForceSendFields is a list of field names (e.g. "Code") to
24019	// unconditionally include in API requests. By default, fields with
24020	// empty values are omitted from API requests. However, any non-pointer,
24021	// non-interface field appearing in ForceSendFields will be sent to the
24022	// server regardless of whether the field is empty or not. This may be
24023	// used to include empty fields in Patch requests.
24024	ForceSendFields []string `json:"-"`
24025
24026	// NullFields is a list of field names (e.g. "Code") to include in API
24027	// requests with the JSON null value. By default, fields with empty
24028	// values are omitted from API requests. However, any field with an
24029	// empty value appearing in NullFields will be sent to the server as
24030	// null. It is an error if a field in this list has a non-empty value.
24031	// This may be used to include null fields in Patch requests.
24032	NullFields []string `json:"-"`
24033}
24034
24035func (s *NetworkEndpointGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
24036	type NoMethod NetworkEndpointGroupsScopedListWarning
24037	raw := NoMethod(*s)
24038	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24039}
24040
24041type NetworkEndpointGroupsScopedListWarningData struct {
24042	// Key: [Output Only] A key that provides more detail on the warning
24043	// being returned. For example, for warnings where there are no results
24044	// in a list request for a particular zone, this key might be scope and
24045	// the key value might be the zone name. Other examples might be a key
24046	// indicating a deprecated resource and a suggested replacement, or a
24047	// warning about invalid network settings (for example, if an instance
24048	// attempts to perform IP forwarding but is not enabled for IP
24049	// forwarding).
24050	Key string `json:"key,omitempty"`
24051
24052	// Value: [Output Only] A warning data value corresponding to the key.
24053	Value string `json:"value,omitempty"`
24054
24055	// ForceSendFields is a list of field names (e.g. "Key") to
24056	// unconditionally include in API requests. By default, fields with
24057	// empty values are omitted from API requests. However, any non-pointer,
24058	// non-interface field appearing in ForceSendFields will be sent to the
24059	// server regardless of whether the field is empty or not. This may be
24060	// used to include empty fields in Patch requests.
24061	ForceSendFields []string `json:"-"`
24062
24063	// NullFields is a list of field names (e.g. "Key") to include in API
24064	// requests with the JSON null value. By default, fields with empty
24065	// values are omitted from API requests. However, any field with an
24066	// empty value appearing in NullFields will be sent to the server as
24067	// null. It is an error if a field in this list has a non-empty value.
24068	// This may be used to include null fields in Patch requests.
24069	NullFields []string `json:"-"`
24070}
24071
24072func (s *NetworkEndpointGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
24073	type NoMethod NetworkEndpointGroupsScopedListWarningData
24074	raw := NoMethod(*s)
24075	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24076}
24077
24078type NetworkEndpointWithHealthStatus struct {
24079	// Healths: [Output only] The health status of network endpoint;
24080	Healths []*HealthStatusForNetworkEndpoint `json:"healths,omitempty"`
24081
24082	// NetworkEndpoint: [Output only] The network endpoint;
24083	NetworkEndpoint *NetworkEndpoint `json:"networkEndpoint,omitempty"`
24084
24085	// ForceSendFields is a list of field names (e.g. "Healths") to
24086	// unconditionally include in API requests. By default, fields with
24087	// empty values are omitted from API requests. However, any non-pointer,
24088	// non-interface field appearing in ForceSendFields will be sent to the
24089	// server regardless of whether the field is empty or not. This may be
24090	// used to include empty fields in Patch requests.
24091	ForceSendFields []string `json:"-"`
24092
24093	// NullFields is a list of field names (e.g. "Healths") to include in
24094	// API requests with the JSON null value. By default, fields with empty
24095	// values are omitted from API requests. However, any field with an
24096	// empty value appearing in NullFields will be sent to the server as
24097	// null. It is an error if a field in this list has a non-empty value.
24098	// This may be used to include null fields in Patch requests.
24099	NullFields []string `json:"-"`
24100}
24101
24102func (s *NetworkEndpointWithHealthStatus) MarshalJSON() ([]byte, error) {
24103	type NoMethod NetworkEndpointWithHealthStatus
24104	raw := NoMethod(*s)
24105	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24106}
24107
24108// NetworkInterface: A network interface resource attached to an
24109// instance.
24110type NetworkInterface struct {
24111	// AccessConfigs: An array of configurations for this interface.
24112	// Currently, only one access config, ONE_TO_ONE_NAT, is supported. If
24113	// there are no accessConfigs specified, then this instance will have no
24114	// external internet access.
24115	AccessConfigs []*AccessConfig `json:"accessConfigs,omitempty"`
24116
24117	// AliasIpRanges: An array of alias IP ranges for this network
24118	// interface. You can only specify this field for network interfaces in
24119	// VPC networks.
24120	AliasIpRanges []*AliasIpRange `json:"aliasIpRanges,omitempty"`
24121
24122	// Fingerprint: Fingerprint hash of contents stored in this network
24123	// interface. This field will be ignored when inserting an Instance or
24124	// adding a NetworkInterface. An up-to-date fingerprint must be provided
24125	// in order to update the NetworkInterface. The request will fail with
24126	// error 400 Bad Request if the fingerprint is not provided, or 412
24127	// Precondition Failed if the fingerprint is out of date.
24128	Fingerprint string `json:"fingerprint,omitempty"`
24129
24130	// Ipv6AccessConfigs: An array of IPv6 access configurations for this
24131	// interface. Currently, only one IPv6 access config, DIRECT_IPV6, is
24132	// supported. If there is no ipv6AccessConfig specified, then this
24133	// instance will have no external IPv6 Internet access.
24134	Ipv6AccessConfigs []*AccessConfig `json:"ipv6AccessConfigs,omitempty"`
24135
24136	// Ipv6AccessType: [Output Only] One of EXTERNAL, INTERNAL to indicate
24137	// whether the IP can be accessed from the Internet. This field is
24138	// always inherited from its subnetwork.
24139	//
24140	// Valid only if stackType is IPV4_IPV6.
24141	//
24142	// Possible values:
24143	//   "EXTERNAL"
24144	//   "UNSPECIFIED_IPV6_ACCESS_TYPE"
24145	Ipv6AccessType string `json:"ipv6AccessType,omitempty"`
24146
24147	// Ipv6Address: [Output Only] An IPv6 internal network address for this
24148	// network interface.
24149	Ipv6Address string `json:"ipv6Address,omitempty"`
24150
24151	// Kind: [Output Only] Type of the resource. Always
24152	// compute#networkInterface for network interfaces.
24153	Kind string `json:"kind,omitempty"`
24154
24155	// Name: [Output Only] The name of the network interface, which is
24156	// generated by the server. For network devices, these are eth0, eth1,
24157	// etc.
24158	Name string `json:"name,omitempty"`
24159
24160	// Network: URL of the network resource for this instance. When creating
24161	// an instance, if neither the network nor the subnetwork is specified,
24162	// the default network global/networks/default is used; if the network
24163	// is not specified but the subnetwork is specified, the network is
24164	// inferred.
24165	//
24166	// If you specify this property, you can specify the network as a full
24167	// or partial URL. For example, the following are all valid URLs:
24168	// -
24169	// https://www.googleapis.com/compute/v1/projects/project/global/networks/network
24170	//
24171	// - projects/project/global/networks/network
24172	// - global/networks/default
24173	Network string `json:"network,omitempty"`
24174
24175	// NetworkIP: An IPv4 internal IP address to assign to the instance for
24176	// this network interface. If not specified by the user, an unused
24177	// internal IP is assigned by the system.
24178	NetworkIP string `json:"networkIP,omitempty"`
24179
24180	// NicType: The type of vNIC to be used on this interface. This may be
24181	// gVNIC or VirtioNet.
24182	//
24183	// Possible values:
24184	//   "GVNIC"
24185	//   "UNSPECIFIED_NIC_TYPE"
24186	//   "VIRTIO_NET"
24187	NicType string `json:"nicType,omitempty"`
24188
24189	// StackType: The stack type for this network interface to identify
24190	// whether the IPv6 feature is enabled or not. If not specified,
24191	// IPV4_ONLY will be used.
24192	//
24193	// This field can be both set at instance creation and update network
24194	// interface operations.
24195	//
24196	// Possible values:
24197	//   "IPV4_IPV6"
24198	//   "IPV4_ONLY"
24199	//   "UNSPECIFIED_STACK_TYPE"
24200	StackType string `json:"stackType,omitempty"`
24201
24202	// Subnetwork: The URL of the Subnetwork resource for this instance. If
24203	// the network resource is in legacy mode, do not specify this field. If
24204	// the network is in auto subnet mode, specifying the subnetwork is
24205	// optional. If the network is in custom subnet mode, specifying the
24206	// subnetwork is required. If you specify this field, you can specify
24207	// the subnetwork as a full or partial URL. For example, the following
24208	// are all valid URLs:
24209	// -
24210	// https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
24211	//
24212	// - regions/region/subnetworks/subnetwork
24213	Subnetwork string `json:"subnetwork,omitempty"`
24214
24215	// ForceSendFields is a list of field names (e.g. "AccessConfigs") to
24216	// unconditionally include in API requests. By default, fields with
24217	// empty values are omitted from API requests. However, any non-pointer,
24218	// non-interface field appearing in ForceSendFields will be sent to the
24219	// server regardless of whether the field is empty or not. This may be
24220	// used to include empty fields in Patch requests.
24221	ForceSendFields []string `json:"-"`
24222
24223	// NullFields is a list of field names (e.g. "AccessConfigs") to include
24224	// in API requests with the JSON null value. By default, fields with
24225	// empty values are omitted from API requests. However, any field with
24226	// an empty value appearing in NullFields will be sent to the server as
24227	// null. It is an error if a field in this list has a non-empty value.
24228	// This may be used to include null fields in Patch requests.
24229	NullFields []string `json:"-"`
24230}
24231
24232func (s *NetworkInterface) MarshalJSON() ([]byte, error) {
24233	type NoMethod NetworkInterface
24234	raw := NoMethod(*s)
24235	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24236}
24237
24238// NetworkList: Contains a list of networks.
24239type NetworkList struct {
24240	// Id: [Output Only] Unique identifier for the resource; defined by the
24241	// server.
24242	Id string `json:"id,omitempty"`
24243
24244	// Items: A list of Network resources.
24245	Items []*Network `json:"items,omitempty"`
24246
24247	// Kind: [Output Only] Type of resource. Always compute#networkList for
24248	// lists of networks.
24249	Kind string `json:"kind,omitempty"`
24250
24251	// NextPageToken: [Output Only] This token allows you to get the next
24252	// page of results for list requests. If the number of results is larger
24253	// than maxResults, use the nextPageToken as a value for the query
24254	// parameter pageToken in the next list request. Subsequent list
24255	// requests will have their own nextPageToken to continue paging through
24256	// the results.
24257	NextPageToken string `json:"nextPageToken,omitempty"`
24258
24259	// SelfLink: [Output Only] Server-defined URL for this resource.
24260	SelfLink string `json:"selfLink,omitempty"`
24261
24262	// Warning: [Output Only] Informational warning message.
24263	Warning *NetworkListWarning `json:"warning,omitempty"`
24264
24265	// ServerResponse contains the HTTP response code and headers from the
24266	// server.
24267	googleapi.ServerResponse `json:"-"`
24268
24269	// ForceSendFields is a list of field names (e.g. "Id") to
24270	// unconditionally include in API requests. By default, fields with
24271	// empty values are omitted from API requests. However, any non-pointer,
24272	// non-interface field appearing in ForceSendFields will be sent to the
24273	// server regardless of whether the field is empty or not. This may be
24274	// used to include empty fields in Patch requests.
24275	ForceSendFields []string `json:"-"`
24276
24277	// NullFields is a list of field names (e.g. "Id") to include in API
24278	// requests with the JSON null value. By default, fields with empty
24279	// values are omitted from API requests. However, any field with an
24280	// empty value appearing in NullFields will be sent to the server as
24281	// null. It is an error if a field in this list has a non-empty value.
24282	// This may be used to include null fields in Patch requests.
24283	NullFields []string `json:"-"`
24284}
24285
24286func (s *NetworkList) MarshalJSON() ([]byte, error) {
24287	type NoMethod NetworkList
24288	raw := NoMethod(*s)
24289	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24290}
24291
24292// NetworkListWarning: [Output Only] Informational warning message.
24293type NetworkListWarning struct {
24294	// Code: [Output Only] A warning code, if applicable. For example,
24295	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24296	// the response.
24297	//
24298	// Possible values:
24299	//   "CLEANUP_FAILED"
24300	//   "DEPRECATED_RESOURCE_USED"
24301	//   "DEPRECATED_TYPE_USED"
24302	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
24303	//   "EXPERIMENTAL_TYPE_USED"
24304	//   "EXTERNAL_API_WARNING"
24305	//   "FIELD_VALUE_OVERRIDEN"
24306	//   "INJECTED_KERNELS_DEPRECATED"
24307	//   "LARGE_DEPLOYMENT_WARNING"
24308	//   "MISSING_TYPE_DEPENDENCY"
24309	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
24310	//   "NEXT_HOP_CANNOT_IP_FORWARD"
24311	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
24312	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
24313	//   "NEXT_HOP_NOT_RUNNING"
24314	//   "NOT_CRITICAL_ERROR"
24315	//   "NO_RESULTS_ON_PAGE"
24316	//   "PARTIAL_SUCCESS"
24317	//   "REQUIRED_TOS_AGREEMENT"
24318	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
24319	//   "RESOURCE_NOT_DELETED"
24320	//   "SCHEMA_VALIDATION_IGNORED"
24321	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
24322	//   "UNDECLARED_PROPERTIES"
24323	//   "UNREACHABLE"
24324	Code string `json:"code,omitempty"`
24325
24326	// Data: [Output Only] Metadata about this warning in key: value format.
24327	// For example:
24328	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
24329	Data []*NetworkListWarningData `json:"data,omitempty"`
24330
24331	// Message: [Output Only] A human-readable description of the warning
24332	// code.
24333	Message string `json:"message,omitempty"`
24334
24335	// ForceSendFields is a list of field names (e.g. "Code") to
24336	// unconditionally include in API requests. By default, fields with
24337	// empty values are omitted from API requests. However, any non-pointer,
24338	// non-interface field appearing in ForceSendFields will be sent to the
24339	// server regardless of whether the field is empty or not. This may be
24340	// used to include empty fields in Patch requests.
24341	ForceSendFields []string `json:"-"`
24342
24343	// NullFields is a list of field names (e.g. "Code") to include in API
24344	// requests with the JSON null value. By default, fields with empty
24345	// values are omitted from API requests. However, any field with an
24346	// empty value appearing in NullFields will be sent to the server as
24347	// null. It is an error if a field in this list has a non-empty value.
24348	// This may be used to include null fields in Patch requests.
24349	NullFields []string `json:"-"`
24350}
24351
24352func (s *NetworkListWarning) MarshalJSON() ([]byte, error) {
24353	type NoMethod NetworkListWarning
24354	raw := NoMethod(*s)
24355	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24356}
24357
24358type NetworkListWarningData struct {
24359	// Key: [Output Only] A key that provides more detail on the warning
24360	// being returned. For example, for warnings where there are no results
24361	// in a list request for a particular zone, this key might be scope and
24362	// the key value might be the zone name. Other examples might be a key
24363	// indicating a deprecated resource and a suggested replacement, or a
24364	// warning about invalid network settings (for example, if an instance
24365	// attempts to perform IP forwarding but is not enabled for IP
24366	// forwarding).
24367	Key string `json:"key,omitempty"`
24368
24369	// Value: [Output Only] A warning data value corresponding to the key.
24370	Value string `json:"value,omitempty"`
24371
24372	// ForceSendFields is a list of field names (e.g. "Key") to
24373	// unconditionally include in API requests. By default, fields with
24374	// empty values are omitted from API requests. However, any non-pointer,
24375	// non-interface field appearing in ForceSendFields will be sent to the
24376	// server regardless of whether the field is empty or not. This may be
24377	// used to include empty fields in Patch requests.
24378	ForceSendFields []string `json:"-"`
24379
24380	// NullFields is a list of field names (e.g. "Key") to include in API
24381	// requests with the JSON null value. By default, fields with empty
24382	// values are omitted from API requests. However, any field with an
24383	// empty value appearing in NullFields will be sent to the server as
24384	// null. It is an error if a field in this list has a non-empty value.
24385	// This may be used to include null fields in Patch requests.
24386	NullFields []string `json:"-"`
24387}
24388
24389func (s *NetworkListWarningData) MarshalJSON() ([]byte, error) {
24390	type NoMethod NetworkListWarningData
24391	raw := NoMethod(*s)
24392	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24393}
24394
24395// NetworkPeering: A network peering attached to a network resource. The
24396// message includes the peering name, peer network, peering state, and a
24397// flag indicating whether Google Compute Engine should automatically
24398// create routes for the peering.
24399type NetworkPeering struct {
24400	// AutoCreateRoutes: This field will be deprecated soon. Use the
24401	// exchange_subnet_routes field instead. Indicates whether full mesh
24402	// connectivity is created and managed automatically between peered
24403	// networks. Currently this field should always be true since Google
24404	// Compute Engine will automatically create and manage subnetwork routes
24405	// between two networks when peering state is ACTIVE.
24406	AutoCreateRoutes bool `json:"autoCreateRoutes,omitempty"`
24407
24408	// ExchangeSubnetRoutes: Indicates whether full mesh connectivity is
24409	// created and managed automatically between peered networks. Currently
24410	// this field should always be true since Google Compute Engine will
24411	// automatically create and manage subnetwork routes between two
24412	// networks when peering state is ACTIVE.
24413	ExchangeSubnetRoutes bool `json:"exchangeSubnetRoutes,omitempty"`
24414
24415	// ExportCustomRoutes: Whether to export the custom routes to peer
24416	// network.
24417	ExportCustomRoutes bool `json:"exportCustomRoutes,omitempty"`
24418
24419	// ExportSubnetRoutesWithPublicIp: Whether subnet routes with public IP
24420	// range are exported. The default value is true, all subnet routes are
24421	// exported. The IPv4 special-use ranges
24422	// (https://en.wikipedia.org/wiki/IPv4#Special_addresses) are always
24423	// exported to peers and are not controlled by this field.
24424	ExportSubnetRoutesWithPublicIp bool `json:"exportSubnetRoutesWithPublicIp,omitempty"`
24425
24426	// ImportCustomRoutes: Whether to import the custom routes from peer
24427	// network.
24428	ImportCustomRoutes bool `json:"importCustomRoutes,omitempty"`
24429
24430	// ImportSubnetRoutesWithPublicIp: Whether subnet routes with public IP
24431	// range are imported. The default value is false. The IPv4 special-use
24432	// ranges (https://en.wikipedia.org/wiki/IPv4#Special_addresses) are
24433	// always imported from peers and are not controlled by this field.
24434	ImportSubnetRoutesWithPublicIp bool `json:"importSubnetRoutesWithPublicIp,omitempty"`
24435
24436	// Name: Name of this peering. Provided by the client when the peering
24437	// is created. The name must comply with RFC1035. Specifically, the name
24438	// must be 1-63 characters long and match regular expression
24439	// `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a lowercase
24440	// letter, and all the following characters must be a dash, lowercase
24441	// letter, or digit, except the last character, which cannot be a dash.
24442	Name string `json:"name,omitempty"`
24443
24444	// Network: The URL of the peer network. It can be either full URL or
24445	// partial URL. The peer network may belong to a different project. If
24446	// the partial URL does not contain project, it is assumed that the peer
24447	// network is in the same project as the current network.
24448	Network string `json:"network,omitempty"`
24449
24450	// PeerMtu: Maximum Transmission Unit in bytes.
24451	PeerMtu int64 `json:"peerMtu,omitempty"`
24452
24453	// State: [Output Only] State for the peering, either `ACTIVE` or
24454	// `INACTIVE`. The peering is `ACTIVE` when there's a matching
24455	// configuration in the peer network.
24456	//
24457	// Possible values:
24458	//   "ACTIVE"
24459	//   "INACTIVE"
24460	State string `json:"state,omitempty"`
24461
24462	// StateDetails: [Output Only] Details about the current state of the
24463	// peering.
24464	StateDetails string `json:"stateDetails,omitempty"`
24465
24466	// ForceSendFields is a list of field names (e.g. "AutoCreateRoutes") to
24467	// unconditionally include in API requests. By default, fields with
24468	// empty values are omitted from API requests. However, any non-pointer,
24469	// non-interface field appearing in ForceSendFields will be sent to the
24470	// server regardless of whether the field is empty or not. This may be
24471	// used to include empty fields in Patch requests.
24472	ForceSendFields []string `json:"-"`
24473
24474	// NullFields is a list of field names (e.g. "AutoCreateRoutes") to
24475	// include in API requests with the JSON null value. By default, fields
24476	// with empty values are omitted from API requests. However, any field
24477	// with an empty value appearing in NullFields will be sent to the
24478	// server as null. It is an error if a field in this list has a
24479	// non-empty value. This may be used to include null fields in Patch
24480	// requests.
24481	NullFields []string `json:"-"`
24482}
24483
24484func (s *NetworkPeering) MarshalJSON() ([]byte, error) {
24485	type NoMethod NetworkPeering
24486	raw := NoMethod(*s)
24487	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24488}
24489
24490// NetworkRoutingConfig: A routing configuration attached to a network
24491// resource. The message includes the list of routers associated with
24492// the network, and a flag indicating the type of routing behavior to
24493// enforce network-wide.
24494type NetworkRoutingConfig struct {
24495	// RoutingMode: The network-wide routing mode to use. If set to
24496	// REGIONAL, this network's Cloud Routers will only advertise routes
24497	// with subnets of this network in the same region as the router. If set
24498	// to GLOBAL, this network's Cloud Routers will advertise routes with
24499	// all subnets of this network, across regions.
24500	//
24501	// Possible values:
24502	//   "GLOBAL"
24503	//   "REGIONAL"
24504	RoutingMode string `json:"routingMode,omitempty"`
24505
24506	// ForceSendFields is a list of field names (e.g. "RoutingMode") to
24507	// unconditionally include in API requests. By default, fields with
24508	// empty values are omitted from API requests. However, any non-pointer,
24509	// non-interface field appearing in ForceSendFields will be sent to the
24510	// server regardless of whether the field is empty or not. This may be
24511	// used to include empty fields in Patch requests.
24512	ForceSendFields []string `json:"-"`
24513
24514	// NullFields is a list of field names (e.g. "RoutingMode") to include
24515	// in API requests with the JSON null value. By default, fields with
24516	// empty values are omitted from API requests. However, any field with
24517	// an empty value appearing in NullFields will be sent to the server as
24518	// null. It is an error if a field in this list has a non-empty value.
24519	// This may be used to include null fields in Patch requests.
24520	NullFields []string `json:"-"`
24521}
24522
24523func (s *NetworkRoutingConfig) MarshalJSON() ([]byte, error) {
24524	type NoMethod NetworkRoutingConfig
24525	raw := NoMethod(*s)
24526	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24527}
24528
24529type NetworksAddPeeringRequest struct {
24530	// AutoCreateRoutes: This field will be deprecated soon. Use
24531	// exchange_subnet_routes in network_peering instead. Indicates whether
24532	// full mesh connectivity is created and managed automatically between
24533	// peered networks. Currently this field should always be true since
24534	// Google Compute Engine will automatically create and manage subnetwork
24535	// routes between two networks when peering state is ACTIVE.
24536	AutoCreateRoutes bool `json:"autoCreateRoutes,omitempty"`
24537
24538	// Name: Name of the peering, which should conform to RFC1035.
24539	Name string `json:"name,omitempty"`
24540
24541	// NetworkPeering: Network peering parameters. In order to specify route
24542	// policies for peering using import and export custom routes, you must
24543	// specify all peering related parameters (name, peer network,
24544	// exchange_subnet_routes) in the network_peering field. The
24545	// corresponding fields in NetworksAddPeeringRequest will be deprecated
24546	// soon.
24547	NetworkPeering *NetworkPeering `json:"networkPeering,omitempty"`
24548
24549	// PeerNetwork: URL of the peer network. It can be either full URL or
24550	// partial URL. The peer network may belong to a different project. If
24551	// the partial URL does not contain project, it is assumed that the peer
24552	// network is in the same project as the current network.
24553	PeerNetwork string `json:"peerNetwork,omitempty"`
24554
24555	// ForceSendFields is a list of field names (e.g. "AutoCreateRoutes") to
24556	// unconditionally include in API requests. By default, fields with
24557	// empty values are omitted from API requests. However, any non-pointer,
24558	// non-interface field appearing in ForceSendFields will be sent to the
24559	// server regardless of whether the field is empty or not. This may be
24560	// used to include empty fields in Patch requests.
24561	ForceSendFields []string `json:"-"`
24562
24563	// NullFields is a list of field names (e.g. "AutoCreateRoutes") to
24564	// include in API requests with the JSON null value. By default, fields
24565	// with empty values are omitted from API requests. However, any field
24566	// with an empty value appearing in NullFields will be sent to the
24567	// server as null. It is an error if a field in this list has a
24568	// non-empty value. This may be used to include null fields in Patch
24569	// requests.
24570	NullFields []string `json:"-"`
24571}
24572
24573func (s *NetworksAddPeeringRequest) MarshalJSON() ([]byte, error) {
24574	type NoMethod NetworksAddPeeringRequest
24575	raw := NoMethod(*s)
24576	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24577}
24578
24579type NetworksGetEffectiveFirewallsResponse struct {
24580	// FirewallPolicys: Effective firewalls from firewall policy.
24581	FirewallPolicys []*NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy `json:"firewallPolicys,omitempty"`
24582
24583	// Firewalls: Effective firewalls on the network.
24584	Firewalls []*Firewall `json:"firewalls,omitempty"`
24585
24586	// ServerResponse contains the HTTP response code and headers from the
24587	// server.
24588	googleapi.ServerResponse `json:"-"`
24589
24590	// ForceSendFields is a list of field names (e.g. "FirewallPolicys") to
24591	// unconditionally include in API requests. By default, fields with
24592	// empty values are omitted from API requests. However, any non-pointer,
24593	// non-interface field appearing in ForceSendFields will be sent to the
24594	// server regardless of whether the field is empty or not. This may be
24595	// used to include empty fields in Patch requests.
24596	ForceSendFields []string `json:"-"`
24597
24598	// NullFields is a list of field names (e.g. "FirewallPolicys") to
24599	// include in API requests with the JSON null value. By default, fields
24600	// with empty values are omitted from API requests. However, any field
24601	// with an empty value appearing in NullFields will be sent to the
24602	// server as null. It is an error if a field in this list has a
24603	// non-empty value. This may be used to include null fields in Patch
24604	// requests.
24605	NullFields []string `json:"-"`
24606}
24607
24608func (s *NetworksGetEffectiveFirewallsResponse) MarshalJSON() ([]byte, error) {
24609	type NoMethod NetworksGetEffectiveFirewallsResponse
24610	raw := NoMethod(*s)
24611	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24612}
24613
24614type NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy struct {
24615	// DisplayName: [Output Only] Deprecated, please use short name instead.
24616	// The display name of the firewall policy.
24617	DisplayName string `json:"displayName,omitempty"`
24618
24619	// Name: [Output Only] The name of the firewall policy.
24620	Name string `json:"name,omitempty"`
24621
24622	// Rules: The rules that apply to the network.
24623	Rules []*FirewallPolicyRule `json:"rules,omitempty"`
24624
24625	// ShortName: [Output Only] The short name of the firewall policy.
24626	ShortName string `json:"shortName,omitempty"`
24627
24628	// Type: [Output Only] The type of the firewall policy.
24629	//
24630	// Possible values:
24631	//   "HIERARCHY"
24632	//   "NETWORK"
24633	//   "UNSPECIFIED"
24634	Type string `json:"type,omitempty"`
24635
24636	// ForceSendFields is a list of field names (e.g. "DisplayName") to
24637	// unconditionally include in API requests. By default, fields with
24638	// empty values are omitted from API requests. However, any non-pointer,
24639	// non-interface field appearing in ForceSendFields will be sent to the
24640	// server regardless of whether the field is empty or not. This may be
24641	// used to include empty fields in Patch requests.
24642	ForceSendFields []string `json:"-"`
24643
24644	// NullFields is a list of field names (e.g. "DisplayName") to include
24645	// in API requests with the JSON null value. By default, fields with
24646	// empty values are omitted from API requests. However, any field with
24647	// an empty value appearing in NullFields will be sent to the server as
24648	// null. It is an error if a field in this list has a non-empty value.
24649	// This may be used to include null fields in Patch requests.
24650	NullFields []string `json:"-"`
24651}
24652
24653func (s *NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy) MarshalJSON() ([]byte, error) {
24654	type NoMethod NetworksGetEffectiveFirewallsResponseEffectiveFirewallPolicy
24655	raw := NoMethod(*s)
24656	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24657}
24658
24659type NetworksRemovePeeringRequest struct {
24660	// Name: Name of the peering, which should conform to RFC1035.
24661	Name string `json:"name,omitempty"`
24662
24663	// ForceSendFields is a list of field names (e.g. "Name") to
24664	// unconditionally include in API requests. By default, fields with
24665	// empty values are omitted from API requests. However, any non-pointer,
24666	// non-interface field appearing in ForceSendFields will be sent to the
24667	// server regardless of whether the field is empty or not. This may be
24668	// used to include empty fields in Patch requests.
24669	ForceSendFields []string `json:"-"`
24670
24671	// NullFields is a list of field names (e.g. "Name") to include in API
24672	// requests with the JSON null value. By default, fields with empty
24673	// values are omitted from API requests. However, any field with an
24674	// empty value appearing in NullFields will be sent to the server as
24675	// null. It is an error if a field in this list has a non-empty value.
24676	// This may be used to include null fields in Patch requests.
24677	NullFields []string `json:"-"`
24678}
24679
24680func (s *NetworksRemovePeeringRequest) MarshalJSON() ([]byte, error) {
24681	type NoMethod NetworksRemovePeeringRequest
24682	raw := NoMethod(*s)
24683	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24684}
24685
24686type NetworksUpdatePeeringRequest struct {
24687	NetworkPeering *NetworkPeering `json:"networkPeering,omitempty"`
24688
24689	// ForceSendFields is a list of field names (e.g. "NetworkPeering") to
24690	// unconditionally include in API requests. By default, fields with
24691	// empty values are omitted from API requests. However, any non-pointer,
24692	// non-interface field appearing in ForceSendFields will be sent to the
24693	// server regardless of whether the field is empty or not. This may be
24694	// used to include empty fields in Patch requests.
24695	ForceSendFields []string `json:"-"`
24696
24697	// NullFields is a list of field names (e.g. "NetworkPeering") to
24698	// include in API requests with the JSON null value. By default, fields
24699	// with empty values are omitted from API requests. However, any field
24700	// with an empty value appearing in NullFields will be sent to the
24701	// server as null. It is an error if a field in this list has a
24702	// non-empty value. This may be used to include null fields in Patch
24703	// requests.
24704	NullFields []string `json:"-"`
24705}
24706
24707func (s *NetworksUpdatePeeringRequest) MarshalJSON() ([]byte, error) {
24708	type NoMethod NetworksUpdatePeeringRequest
24709	raw := NoMethod(*s)
24710	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24711}
24712
24713// NodeGroup: Represent a sole-tenant Node Group resource.
24714//
24715// A sole-tenant node is a physical server that is dedicated to hosting
24716// VM instances only for your specific project. Use sole-tenant nodes to
24717// keep your instances physically separated from instances in other
24718// projects, or to group your instances together on the same host
24719// hardware. For more information, read Sole-tenant nodes. (==
24720// resource_for {$api_version}.nodeGroups ==)
24721type NodeGroup struct {
24722	// AutoscalingPolicy: Specifies how autoscaling should behave.
24723	AutoscalingPolicy *NodeGroupAutoscalingPolicy `json:"autoscalingPolicy,omitempty"`
24724
24725	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
24726	// format.
24727	CreationTimestamp string `json:"creationTimestamp,omitempty"`
24728
24729	// Description: An optional description of this resource. Provide this
24730	// property when you create the resource.
24731	Description string `json:"description,omitempty"`
24732
24733	Fingerprint string `json:"fingerprint,omitempty"`
24734
24735	// Id: [Output Only] The unique identifier for the resource. This
24736	// identifier is defined by the server.
24737	Id uint64 `json:"id,omitempty,string"`
24738
24739	// Kind: [Output Only] The type of the resource. Always
24740	// compute#nodeGroup for node group.
24741	Kind string `json:"kind,omitempty"`
24742
24743	// LocationHint: An opaque location hint used to place the Node close to
24744	// other resources. This field is for use by internal tools that use the
24745	// public API. The location hint here on the NodeGroup overrides any
24746	// location_hint present in the NodeTemplate.
24747	LocationHint string `json:"locationHint,omitempty"`
24748
24749	// MaintenancePolicy: Specifies how to handle instances when a node in
24750	// the group undergoes maintenance. Set to one of: DEFAULT,
24751	// RESTART_IN_PLACE, or MIGRATE_WITHIN_NODE_GROUP. The default value is
24752	// DEFAULT. For more information, see  Maintenance policies.
24753	//
24754	// Possible values:
24755	//   "DEFAULT"
24756	//   "MAINTENANCE_POLICY_UNSPECIFIED"
24757	//   "MIGRATE_WITHIN_NODE_GROUP"
24758	//   "RESTART_IN_PLACE"
24759	MaintenancePolicy string `json:"maintenancePolicy,omitempty"`
24760
24761	MaintenanceWindow *NodeGroupMaintenanceWindow `json:"maintenanceWindow,omitempty"`
24762
24763	// Name: The name of the resource, provided by the client when initially
24764	// creating the resource. The resource name must be 1-63 characters
24765	// long, and comply with RFC1035. Specifically, the name must be 1-63
24766	// characters long and match the regular expression
24767	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
24768	// a lowercase letter, and all following characters must be a dash,
24769	// lowercase letter, or digit, except the last character, which cannot
24770	// be a dash.
24771	Name string `json:"name,omitempty"`
24772
24773	// NodeTemplate: URL of the node template to create the node group from.
24774	NodeTemplate string `json:"nodeTemplate,omitempty"`
24775
24776	// SelfLink: [Output Only] Server-defined URL for the resource.
24777	SelfLink string `json:"selfLink,omitempty"`
24778
24779	// Size: [Output Only] The total number of nodes in the node group.
24780	Size int64 `json:"size,omitempty"`
24781
24782	// Possible values:
24783	//   "CREATING"
24784	//   "DELETING"
24785	//   "INVALID"
24786	//   "READY"
24787	Status string `json:"status,omitempty"`
24788
24789	// Zone: [Output Only] The name of the zone where the node group
24790	// resides, such as us-central1-a.
24791	Zone string `json:"zone,omitempty"`
24792
24793	// ServerResponse contains the HTTP response code and headers from the
24794	// server.
24795	googleapi.ServerResponse `json:"-"`
24796
24797	// ForceSendFields is a list of field names (e.g. "AutoscalingPolicy")
24798	// to unconditionally include in API requests. By default, fields with
24799	// empty values are omitted from API requests. However, any non-pointer,
24800	// non-interface field appearing in ForceSendFields will be sent to the
24801	// server regardless of whether the field is empty or not. This may be
24802	// used to include empty fields in Patch requests.
24803	ForceSendFields []string `json:"-"`
24804
24805	// NullFields is a list of field names (e.g. "AutoscalingPolicy") to
24806	// include in API requests with the JSON null value. By default, fields
24807	// with empty values are omitted from API requests. However, any field
24808	// with an empty value appearing in NullFields will be sent to the
24809	// server as null. It is an error if a field in this list has a
24810	// non-empty value. This may be used to include null fields in Patch
24811	// requests.
24812	NullFields []string `json:"-"`
24813}
24814
24815func (s *NodeGroup) MarshalJSON() ([]byte, error) {
24816	type NoMethod NodeGroup
24817	raw := NoMethod(*s)
24818	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24819}
24820
24821type NodeGroupAggregatedList struct {
24822	// Id: [Output Only] Unique identifier for the resource; defined by the
24823	// server.
24824	Id string `json:"id,omitempty"`
24825
24826	// Items: A list of NodeGroupsScopedList resources.
24827	Items map[string]NodeGroupsScopedList `json:"items,omitempty"`
24828
24829	// Kind: [Output Only] Type of resource.Always
24830	// compute#nodeGroupAggregatedList for aggregated lists of node groups.
24831	Kind string `json:"kind,omitempty"`
24832
24833	// NextPageToken: [Output Only] This token allows you to get the next
24834	// page of results for list requests. If the number of results is larger
24835	// than maxResults, use the nextPageToken as a value for the query
24836	// parameter pageToken in the next list request. Subsequent list
24837	// requests will have their own nextPageToken to continue paging through
24838	// the results.
24839	NextPageToken string `json:"nextPageToken,omitempty"`
24840
24841	// SelfLink: [Output Only] Server-defined URL for this resource.
24842	SelfLink string `json:"selfLink,omitempty"`
24843
24844	// Unreachables: [Output Only] Unreachable resources.
24845	Unreachables []string `json:"unreachables,omitempty"`
24846
24847	// Warning: [Output Only] Informational warning message.
24848	Warning *NodeGroupAggregatedListWarning `json:"warning,omitempty"`
24849
24850	// ServerResponse contains the HTTP response code and headers from the
24851	// server.
24852	googleapi.ServerResponse `json:"-"`
24853
24854	// ForceSendFields is a list of field names (e.g. "Id") to
24855	// unconditionally include in API requests. By default, fields with
24856	// empty values are omitted from API requests. However, any non-pointer,
24857	// non-interface field appearing in ForceSendFields will be sent to the
24858	// server regardless of whether the field is empty or not. This may be
24859	// used to include empty fields in Patch requests.
24860	ForceSendFields []string `json:"-"`
24861
24862	// NullFields is a list of field names (e.g. "Id") to include in API
24863	// requests with the JSON null value. By default, fields with empty
24864	// values are omitted from API requests. However, any field with an
24865	// empty value appearing in NullFields will be sent to the server as
24866	// null. It is an error if a field in this list has a non-empty value.
24867	// This may be used to include null fields in Patch requests.
24868	NullFields []string `json:"-"`
24869}
24870
24871func (s *NodeGroupAggregatedList) MarshalJSON() ([]byte, error) {
24872	type NoMethod NodeGroupAggregatedList
24873	raw := NoMethod(*s)
24874	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24875}
24876
24877// NodeGroupAggregatedListWarning: [Output Only] Informational warning
24878// message.
24879type NodeGroupAggregatedListWarning struct {
24880	// Code: [Output Only] A warning code, if applicable. For example,
24881	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24882	// the response.
24883	//
24884	// Possible values:
24885	//   "CLEANUP_FAILED"
24886	//   "DEPRECATED_RESOURCE_USED"
24887	//   "DEPRECATED_TYPE_USED"
24888	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
24889	//   "EXPERIMENTAL_TYPE_USED"
24890	//   "EXTERNAL_API_WARNING"
24891	//   "FIELD_VALUE_OVERRIDEN"
24892	//   "INJECTED_KERNELS_DEPRECATED"
24893	//   "LARGE_DEPLOYMENT_WARNING"
24894	//   "MISSING_TYPE_DEPENDENCY"
24895	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
24896	//   "NEXT_HOP_CANNOT_IP_FORWARD"
24897	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
24898	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
24899	//   "NEXT_HOP_NOT_RUNNING"
24900	//   "NOT_CRITICAL_ERROR"
24901	//   "NO_RESULTS_ON_PAGE"
24902	//   "PARTIAL_SUCCESS"
24903	//   "REQUIRED_TOS_AGREEMENT"
24904	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
24905	//   "RESOURCE_NOT_DELETED"
24906	//   "SCHEMA_VALIDATION_IGNORED"
24907	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
24908	//   "UNDECLARED_PROPERTIES"
24909	//   "UNREACHABLE"
24910	Code string `json:"code,omitempty"`
24911
24912	// Data: [Output Only] Metadata about this warning in key: value format.
24913	// For example:
24914	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
24915	Data []*NodeGroupAggregatedListWarningData `json:"data,omitempty"`
24916
24917	// Message: [Output Only] A human-readable description of the warning
24918	// code.
24919	Message string `json:"message,omitempty"`
24920
24921	// ForceSendFields is a list of field names (e.g. "Code") to
24922	// unconditionally include in API requests. By default, fields with
24923	// empty values are omitted from API requests. However, any non-pointer,
24924	// non-interface field appearing in ForceSendFields will be sent to the
24925	// server regardless of whether the field is empty or not. This may be
24926	// used to include empty fields in Patch requests.
24927	ForceSendFields []string `json:"-"`
24928
24929	// NullFields is a list of field names (e.g. "Code") to include in API
24930	// requests with the JSON null value. By default, fields with empty
24931	// values are omitted from API requests. However, any field with an
24932	// empty value appearing in NullFields will be sent to the server as
24933	// null. It is an error if a field in this list has a non-empty value.
24934	// This may be used to include null fields in Patch requests.
24935	NullFields []string `json:"-"`
24936}
24937
24938func (s *NodeGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
24939	type NoMethod NodeGroupAggregatedListWarning
24940	raw := NoMethod(*s)
24941	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24942}
24943
24944type NodeGroupAggregatedListWarningData struct {
24945	// Key: [Output Only] A key that provides more detail on the warning
24946	// being returned. For example, for warnings where there are no results
24947	// in a list request for a particular zone, this key might be scope and
24948	// the key value might be the zone name. Other examples might be a key
24949	// indicating a deprecated resource and a suggested replacement, or a
24950	// warning about invalid network settings (for example, if an instance
24951	// attempts to perform IP forwarding but is not enabled for IP
24952	// forwarding).
24953	Key string `json:"key,omitempty"`
24954
24955	// Value: [Output Only] A warning data value corresponding to the key.
24956	Value string `json:"value,omitempty"`
24957
24958	// ForceSendFields is a list of field names (e.g. "Key") to
24959	// unconditionally include in API requests. By default, fields with
24960	// empty values are omitted from API requests. However, any non-pointer,
24961	// non-interface field appearing in ForceSendFields will be sent to the
24962	// server regardless of whether the field is empty or not. This may be
24963	// used to include empty fields in Patch requests.
24964	ForceSendFields []string `json:"-"`
24965
24966	// NullFields is a list of field names (e.g. "Key") to include in API
24967	// requests with the JSON null value. By default, fields with empty
24968	// values are omitted from API requests. However, any field with an
24969	// empty value appearing in NullFields will be sent to the server as
24970	// null. It is an error if a field in this list has a non-empty value.
24971	// This may be used to include null fields in Patch requests.
24972	NullFields []string `json:"-"`
24973}
24974
24975func (s *NodeGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
24976	type NoMethod NodeGroupAggregatedListWarningData
24977	raw := NoMethod(*s)
24978	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24979}
24980
24981type NodeGroupAutoscalingPolicy struct {
24982	// MaxNodes: The maximum number of nodes that the group should have.
24983	// Must be set if autoscaling is enabled. Maximum value allowed is 100.
24984	MaxNodes int64 `json:"maxNodes,omitempty"`
24985
24986	// MinNodes: The minimum number of nodes that the group should have.
24987	MinNodes int64 `json:"minNodes,omitempty"`
24988
24989	// Mode: The autoscaling mode. Set to one of: ON, OFF, or
24990	// ONLY_SCALE_OUT. For more information, see  Autoscaler modes.
24991	//
24992	// Possible values:
24993	//   "MODE_UNSPECIFIED"
24994	//   "OFF"
24995	//   "ON"
24996	//   "ONLY_SCALE_OUT"
24997	Mode string `json:"mode,omitempty"`
24998
24999	// ForceSendFields is a list of field names (e.g. "MaxNodes") to
25000	// unconditionally include in API requests. By default, fields with
25001	// empty values are omitted from API requests. However, any non-pointer,
25002	// non-interface field appearing in ForceSendFields will be sent to the
25003	// server regardless of whether the field is empty or not. This may be
25004	// used to include empty fields in Patch requests.
25005	ForceSendFields []string `json:"-"`
25006
25007	// NullFields is a list of field names (e.g. "MaxNodes") to include in
25008	// API requests with the JSON null value. By default, fields with empty
25009	// values are omitted from API requests. However, any field with an
25010	// empty value appearing in NullFields will be sent to the server as
25011	// null. It is an error if a field in this list has a non-empty value.
25012	// This may be used to include null fields in Patch requests.
25013	NullFields []string `json:"-"`
25014}
25015
25016func (s *NodeGroupAutoscalingPolicy) MarshalJSON() ([]byte, error) {
25017	type NoMethod NodeGroupAutoscalingPolicy
25018	raw := NoMethod(*s)
25019	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25020}
25021
25022// NodeGroupList: Contains a list of nodeGroups.
25023type NodeGroupList struct {
25024	// Id: [Output Only] Unique identifier for the resource; defined by the
25025	// server.
25026	Id string `json:"id,omitempty"`
25027
25028	// Items: A list of NodeGroup resources.
25029	Items []*NodeGroup `json:"items,omitempty"`
25030
25031	// Kind: [Output Only] Type of resource.Always compute#nodeGroupList for
25032	// lists of node groups.
25033	Kind string `json:"kind,omitempty"`
25034
25035	// NextPageToken: [Output Only] This token allows you to get the next
25036	// page of results for list requests. If the number of results is larger
25037	// than maxResults, use the nextPageToken as a value for the query
25038	// parameter pageToken in the next list request. Subsequent list
25039	// requests will have their own nextPageToken to continue paging through
25040	// the results.
25041	NextPageToken string `json:"nextPageToken,omitempty"`
25042
25043	// SelfLink: [Output Only] Server-defined URL for this resource.
25044	SelfLink string `json:"selfLink,omitempty"`
25045
25046	// Warning: [Output Only] Informational warning message.
25047	Warning *NodeGroupListWarning `json:"warning,omitempty"`
25048
25049	// ServerResponse contains the HTTP response code and headers from the
25050	// server.
25051	googleapi.ServerResponse `json:"-"`
25052
25053	// ForceSendFields is a list of field names (e.g. "Id") to
25054	// unconditionally include in API requests. By default, fields with
25055	// empty values are omitted from API requests. However, any non-pointer,
25056	// non-interface field appearing in ForceSendFields will be sent to the
25057	// server regardless of whether the field is empty or not. This may be
25058	// used to include empty fields in Patch requests.
25059	ForceSendFields []string `json:"-"`
25060
25061	// NullFields is a list of field names (e.g. "Id") to include in API
25062	// requests with the JSON null value. By default, fields with empty
25063	// values are omitted from API requests. However, any field with an
25064	// empty value appearing in NullFields will be sent to the server as
25065	// null. It is an error if a field in this list has a non-empty value.
25066	// This may be used to include null fields in Patch requests.
25067	NullFields []string `json:"-"`
25068}
25069
25070func (s *NodeGroupList) MarshalJSON() ([]byte, error) {
25071	type NoMethod NodeGroupList
25072	raw := NoMethod(*s)
25073	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25074}
25075
25076// NodeGroupListWarning: [Output Only] Informational warning message.
25077type NodeGroupListWarning struct {
25078	// Code: [Output Only] A warning code, if applicable. For example,
25079	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25080	// the response.
25081	//
25082	// Possible values:
25083	//   "CLEANUP_FAILED"
25084	//   "DEPRECATED_RESOURCE_USED"
25085	//   "DEPRECATED_TYPE_USED"
25086	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25087	//   "EXPERIMENTAL_TYPE_USED"
25088	//   "EXTERNAL_API_WARNING"
25089	//   "FIELD_VALUE_OVERRIDEN"
25090	//   "INJECTED_KERNELS_DEPRECATED"
25091	//   "LARGE_DEPLOYMENT_WARNING"
25092	//   "MISSING_TYPE_DEPENDENCY"
25093	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25094	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25095	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25096	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25097	//   "NEXT_HOP_NOT_RUNNING"
25098	//   "NOT_CRITICAL_ERROR"
25099	//   "NO_RESULTS_ON_PAGE"
25100	//   "PARTIAL_SUCCESS"
25101	//   "REQUIRED_TOS_AGREEMENT"
25102	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25103	//   "RESOURCE_NOT_DELETED"
25104	//   "SCHEMA_VALIDATION_IGNORED"
25105	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25106	//   "UNDECLARED_PROPERTIES"
25107	//   "UNREACHABLE"
25108	Code string `json:"code,omitempty"`
25109
25110	// Data: [Output Only] Metadata about this warning in key: value format.
25111	// For example:
25112	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25113	Data []*NodeGroupListWarningData `json:"data,omitempty"`
25114
25115	// Message: [Output Only] A human-readable description of the warning
25116	// code.
25117	Message string `json:"message,omitempty"`
25118
25119	// ForceSendFields is a list of field names (e.g. "Code") to
25120	// unconditionally include in API requests. By default, fields with
25121	// empty values are omitted from API requests. However, any non-pointer,
25122	// non-interface field appearing in ForceSendFields will be sent to the
25123	// server regardless of whether the field is empty or not. This may be
25124	// used to include empty fields in Patch requests.
25125	ForceSendFields []string `json:"-"`
25126
25127	// NullFields is a list of field names (e.g. "Code") to include in API
25128	// requests with the JSON null value. By default, fields with empty
25129	// values are omitted from API requests. However, any field with an
25130	// empty value appearing in NullFields will be sent to the server as
25131	// null. It is an error if a field in this list has a non-empty value.
25132	// This may be used to include null fields in Patch requests.
25133	NullFields []string `json:"-"`
25134}
25135
25136func (s *NodeGroupListWarning) MarshalJSON() ([]byte, error) {
25137	type NoMethod NodeGroupListWarning
25138	raw := NoMethod(*s)
25139	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25140}
25141
25142type NodeGroupListWarningData struct {
25143	// Key: [Output Only] A key that provides more detail on the warning
25144	// being returned. For example, for warnings where there are no results
25145	// in a list request for a particular zone, this key might be scope and
25146	// the key value might be the zone name. Other examples might be a key
25147	// indicating a deprecated resource and a suggested replacement, or a
25148	// warning about invalid network settings (for example, if an instance
25149	// attempts to perform IP forwarding but is not enabled for IP
25150	// forwarding).
25151	Key string `json:"key,omitempty"`
25152
25153	// Value: [Output Only] A warning data value corresponding to the key.
25154	Value string `json:"value,omitempty"`
25155
25156	// ForceSendFields is a list of field names (e.g. "Key") to
25157	// unconditionally include in API requests. By default, fields with
25158	// empty values are omitted from API requests. However, any non-pointer,
25159	// non-interface field appearing in ForceSendFields will be sent to the
25160	// server regardless of whether the field is empty or not. This may be
25161	// used to include empty fields in Patch requests.
25162	ForceSendFields []string `json:"-"`
25163
25164	// NullFields is a list of field names (e.g. "Key") to include in API
25165	// requests with the JSON null value. By default, fields with empty
25166	// values are omitted from API requests. However, any field with an
25167	// empty value appearing in NullFields will be sent to the server as
25168	// null. It is an error if a field in this list has a non-empty value.
25169	// This may be used to include null fields in Patch requests.
25170	NullFields []string `json:"-"`
25171}
25172
25173func (s *NodeGroupListWarningData) MarshalJSON() ([]byte, error) {
25174	type NoMethod NodeGroupListWarningData
25175	raw := NoMethod(*s)
25176	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25177}
25178
25179// NodeGroupMaintenanceWindow: Time window specified for daily
25180// maintenance operations. GCE's internal maintenance will be performed
25181// within this window.
25182type NodeGroupMaintenanceWindow struct {
25183	// MaintenanceDuration: [Output only] A predetermined duration for the
25184	// window, automatically chosen to be the smallest possible in the given
25185	// scenario.
25186	MaintenanceDuration *Duration `json:"maintenanceDuration,omitempty"`
25187
25188	// StartTime: Start time of the window. This must be in UTC format that
25189	// resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For
25190	// example, both 13:00-5 and 08:00 are valid.
25191	StartTime string `json:"startTime,omitempty"`
25192
25193	// ForceSendFields is a list of field names (e.g. "MaintenanceDuration")
25194	// to 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. "MaintenanceDuration") to
25202	// include in API requests with the JSON null value. By default, fields
25203	// with empty values are omitted from API requests. However, any field
25204	// with an empty value appearing in NullFields will be sent to the
25205	// server as null. It is an error if a field in this list has a
25206	// non-empty value. This may be used to include null fields in Patch
25207	// requests.
25208	NullFields []string `json:"-"`
25209}
25210
25211func (s *NodeGroupMaintenanceWindow) MarshalJSON() ([]byte, error) {
25212	type NoMethod NodeGroupMaintenanceWindow
25213	raw := NoMethod(*s)
25214	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25215}
25216
25217type NodeGroupNode struct {
25218	// Accelerators: Accelerators for this node.
25219	Accelerators []*AcceleratorConfig `json:"accelerators,omitempty"`
25220
25221	// CpuOvercommitType: CPU overcommit.
25222	//
25223	// Possible values:
25224	//   "CPU_OVERCOMMIT_TYPE_UNSPECIFIED"
25225	//   "ENABLED"
25226	//   "NONE"
25227	CpuOvercommitType string `json:"cpuOvercommitType,omitempty"`
25228
25229	// Disks: Local disk configurations.
25230	Disks []*LocalDisk `json:"disks,omitempty"`
25231
25232	// Instances: Instances scheduled on this node.
25233	Instances []string `json:"instances,omitempty"`
25234
25235	// Name: The name of the node.
25236	Name string `json:"name,omitempty"`
25237
25238	// NodeType: The type of this node.
25239	NodeType string `json:"nodeType,omitempty"`
25240
25241	// SatisfiesPzs: [Output Only] Reserved for future use.
25242	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
25243
25244	// ServerBinding: Binding properties for the physical server.
25245	ServerBinding *ServerBinding `json:"serverBinding,omitempty"`
25246
25247	// ServerId: Server ID associated with this node.
25248	ServerId string `json:"serverId,omitempty"`
25249
25250	// Possible values:
25251	//   "CREATING"
25252	//   "DELETING"
25253	//   "INVALID"
25254	//   "READY"
25255	//   "REPAIRING"
25256	Status string `json:"status,omitempty"`
25257
25258	// ForceSendFields is a list of field names (e.g. "Accelerators") to
25259	// unconditionally include in API requests. By default, fields with
25260	// empty values are omitted from API requests. However, any non-pointer,
25261	// non-interface field appearing in ForceSendFields will be sent to the
25262	// server regardless of whether the field is empty or not. This may be
25263	// used to include empty fields in Patch requests.
25264	ForceSendFields []string `json:"-"`
25265
25266	// NullFields is a list of field names (e.g. "Accelerators") to include
25267	// in API requests with the JSON null value. By default, fields with
25268	// empty values are omitted from API requests. However, any field with
25269	// an empty value appearing in NullFields will be sent to the server as
25270	// null. It is an error if a field in this list has a non-empty value.
25271	// This may be used to include null fields in Patch requests.
25272	NullFields []string `json:"-"`
25273}
25274
25275func (s *NodeGroupNode) MarshalJSON() ([]byte, error) {
25276	type NoMethod NodeGroupNode
25277	raw := NoMethod(*s)
25278	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25279}
25280
25281type NodeGroupsAddNodesRequest struct {
25282	// AdditionalNodeCount: Count of additional nodes to be added to the
25283	// node group.
25284	AdditionalNodeCount int64 `json:"additionalNodeCount,omitempty"`
25285
25286	// ForceSendFields is a list of field names (e.g. "AdditionalNodeCount")
25287	// to unconditionally include in API requests. By default, fields with
25288	// empty values are omitted from API requests. However, any non-pointer,
25289	// non-interface field appearing in ForceSendFields will be sent to the
25290	// server regardless of whether the field is empty or not. This may be
25291	// used to include empty fields in Patch requests.
25292	ForceSendFields []string `json:"-"`
25293
25294	// NullFields is a list of field names (e.g. "AdditionalNodeCount") to
25295	// include in API requests with the JSON null value. By default, fields
25296	// with empty values are omitted from API requests. However, any field
25297	// with an empty value appearing in NullFields will be sent to the
25298	// server as null. It is an error if a field in this list has a
25299	// non-empty value. This may be used to include null fields in Patch
25300	// requests.
25301	NullFields []string `json:"-"`
25302}
25303
25304func (s *NodeGroupsAddNodesRequest) MarshalJSON() ([]byte, error) {
25305	type NoMethod NodeGroupsAddNodesRequest
25306	raw := NoMethod(*s)
25307	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25308}
25309
25310type NodeGroupsDeleteNodesRequest struct {
25311	// Nodes: Names of the nodes to delete.
25312	Nodes []string `json:"nodes,omitempty"`
25313
25314	// ForceSendFields is a list of field names (e.g. "Nodes") to
25315	// unconditionally include in API requests. By default, fields with
25316	// empty values are omitted from API requests. However, any non-pointer,
25317	// non-interface field appearing in ForceSendFields will be sent to the
25318	// server regardless of whether the field is empty or not. This may be
25319	// used to include empty fields in Patch requests.
25320	ForceSendFields []string `json:"-"`
25321
25322	// NullFields is a list of field names (e.g. "Nodes") to include in API
25323	// requests with the JSON null value. By default, fields with empty
25324	// values are omitted from API requests. However, any field with an
25325	// empty value appearing in NullFields will be sent to the server as
25326	// null. It is an error if a field in this list has a non-empty value.
25327	// This may be used to include null fields in Patch requests.
25328	NullFields []string `json:"-"`
25329}
25330
25331func (s *NodeGroupsDeleteNodesRequest) MarshalJSON() ([]byte, error) {
25332	type NoMethod NodeGroupsDeleteNodesRequest
25333	raw := NoMethod(*s)
25334	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25335}
25336
25337type NodeGroupsListNodes struct {
25338	// Id: [Output Only] Unique identifier for the resource; defined by the
25339	// server.
25340	Id string `json:"id,omitempty"`
25341
25342	// Items: A list of Node resources.
25343	Items []*NodeGroupNode `json:"items,omitempty"`
25344
25345	// Kind: [Output Only] The resource type, which is always
25346	// compute.nodeGroupsListNodes for the list of nodes in the specified
25347	// node group.
25348	Kind string `json:"kind,omitempty"`
25349
25350	// NextPageToken: [Output Only] This token allows you to get the next
25351	// page of results for list requests. If the number of results is larger
25352	// than maxResults, use the nextPageToken as a value for the query
25353	// parameter pageToken in the next list request. Subsequent list
25354	// requests will have their own nextPageToken to continue paging through
25355	// the results.
25356	NextPageToken string `json:"nextPageToken,omitempty"`
25357
25358	// SelfLink: [Output Only] Server-defined URL for this resource.
25359	SelfLink string `json:"selfLink,omitempty"`
25360
25361	// Warning: [Output Only] Informational warning message.
25362	Warning *NodeGroupsListNodesWarning `json:"warning,omitempty"`
25363
25364	// ServerResponse contains the HTTP response code and headers from the
25365	// server.
25366	googleapi.ServerResponse `json:"-"`
25367
25368	// ForceSendFields is a list of field names (e.g. "Id") to
25369	// unconditionally include in API requests. By default, fields with
25370	// empty values are omitted from API requests. However, any non-pointer,
25371	// non-interface field appearing in ForceSendFields will be sent to the
25372	// server regardless of whether the field is empty or not. This may be
25373	// used to include empty fields in Patch requests.
25374	ForceSendFields []string `json:"-"`
25375
25376	// NullFields is a list of field names (e.g. "Id") to include in API
25377	// requests with the JSON null value. By default, fields with empty
25378	// values are omitted from API requests. However, any field with an
25379	// empty value appearing in NullFields will be sent to the server as
25380	// null. It is an error if a field in this list has a non-empty value.
25381	// This may be used to include null fields in Patch requests.
25382	NullFields []string `json:"-"`
25383}
25384
25385func (s *NodeGroupsListNodes) MarshalJSON() ([]byte, error) {
25386	type NoMethod NodeGroupsListNodes
25387	raw := NoMethod(*s)
25388	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25389}
25390
25391// NodeGroupsListNodesWarning: [Output Only] Informational warning
25392// message.
25393type NodeGroupsListNodesWarning struct {
25394	// Code: [Output Only] A warning code, if applicable. For example,
25395	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25396	// the response.
25397	//
25398	// Possible values:
25399	//   "CLEANUP_FAILED"
25400	//   "DEPRECATED_RESOURCE_USED"
25401	//   "DEPRECATED_TYPE_USED"
25402	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25403	//   "EXPERIMENTAL_TYPE_USED"
25404	//   "EXTERNAL_API_WARNING"
25405	//   "FIELD_VALUE_OVERRIDEN"
25406	//   "INJECTED_KERNELS_DEPRECATED"
25407	//   "LARGE_DEPLOYMENT_WARNING"
25408	//   "MISSING_TYPE_DEPENDENCY"
25409	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25410	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25411	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25412	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25413	//   "NEXT_HOP_NOT_RUNNING"
25414	//   "NOT_CRITICAL_ERROR"
25415	//   "NO_RESULTS_ON_PAGE"
25416	//   "PARTIAL_SUCCESS"
25417	//   "REQUIRED_TOS_AGREEMENT"
25418	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25419	//   "RESOURCE_NOT_DELETED"
25420	//   "SCHEMA_VALIDATION_IGNORED"
25421	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25422	//   "UNDECLARED_PROPERTIES"
25423	//   "UNREACHABLE"
25424	Code string `json:"code,omitempty"`
25425
25426	// Data: [Output Only] Metadata about this warning in key: value format.
25427	// For example:
25428	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25429	Data []*NodeGroupsListNodesWarningData `json:"data,omitempty"`
25430
25431	// Message: [Output Only] A human-readable description of the warning
25432	// code.
25433	Message string `json:"message,omitempty"`
25434
25435	// ForceSendFields is a list of field names (e.g. "Code") to
25436	// unconditionally include in API requests. By default, fields with
25437	// empty values are omitted from API requests. However, any non-pointer,
25438	// non-interface field appearing in ForceSendFields will be sent to the
25439	// server regardless of whether the field is empty or not. This may be
25440	// used to include empty fields in Patch requests.
25441	ForceSendFields []string `json:"-"`
25442
25443	// NullFields is a list of field names (e.g. "Code") to include in API
25444	// requests with the JSON null value. By default, fields with empty
25445	// values are omitted from API requests. However, any field with an
25446	// empty value appearing in NullFields will be sent to the server as
25447	// null. It is an error if a field in this list has a non-empty value.
25448	// This may be used to include null fields in Patch requests.
25449	NullFields []string `json:"-"`
25450}
25451
25452func (s *NodeGroupsListNodesWarning) MarshalJSON() ([]byte, error) {
25453	type NoMethod NodeGroupsListNodesWarning
25454	raw := NoMethod(*s)
25455	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25456}
25457
25458type NodeGroupsListNodesWarningData struct {
25459	// Key: [Output Only] A key that provides more detail on the warning
25460	// being returned. For example, for warnings where there are no results
25461	// in a list request for a particular zone, this key might be scope and
25462	// the key value might be the zone name. Other examples might be a key
25463	// indicating a deprecated resource and a suggested replacement, or a
25464	// warning about invalid network settings (for example, if an instance
25465	// attempts to perform IP forwarding but is not enabled for IP
25466	// forwarding).
25467	Key string `json:"key,omitempty"`
25468
25469	// Value: [Output Only] A warning data value corresponding to the key.
25470	Value string `json:"value,omitempty"`
25471
25472	// ForceSendFields is a list of field names (e.g. "Key") to
25473	// unconditionally include in API requests. By default, fields with
25474	// empty values are omitted from API requests. However, any non-pointer,
25475	// non-interface field appearing in ForceSendFields will be sent to the
25476	// server regardless of whether the field is empty or not. This may be
25477	// used to include empty fields in Patch requests.
25478	ForceSendFields []string `json:"-"`
25479
25480	// NullFields is a list of field names (e.g. "Key") to include in API
25481	// requests with the JSON null value. By default, fields with empty
25482	// values are omitted from API requests. However, any field with an
25483	// empty value appearing in NullFields will be sent to the server as
25484	// null. It is an error if a field in this list has a non-empty value.
25485	// This may be used to include null fields in Patch requests.
25486	NullFields []string `json:"-"`
25487}
25488
25489func (s *NodeGroupsListNodesWarningData) MarshalJSON() ([]byte, error) {
25490	type NoMethod NodeGroupsListNodesWarningData
25491	raw := NoMethod(*s)
25492	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25493}
25494
25495type NodeGroupsScopedList struct {
25496	// NodeGroups: [Output Only] A list of node groups contained in this
25497	// scope.
25498	NodeGroups []*NodeGroup `json:"nodeGroups,omitempty"`
25499
25500	// Warning: [Output Only] An informational warning that appears when the
25501	// nodeGroup list is empty.
25502	Warning *NodeGroupsScopedListWarning `json:"warning,omitempty"`
25503
25504	// ForceSendFields is a list of field names (e.g. "NodeGroups") to
25505	// unconditionally include in API requests. By default, fields with
25506	// empty values are omitted from API requests. However, any non-pointer,
25507	// non-interface field appearing in ForceSendFields will be sent to the
25508	// server regardless of whether the field is empty or not. This may be
25509	// used to include empty fields in Patch requests.
25510	ForceSendFields []string `json:"-"`
25511
25512	// NullFields is a list of field names (e.g. "NodeGroups") to include in
25513	// API requests with the JSON null value. By default, fields with empty
25514	// values are omitted from API requests. However, any field with an
25515	// empty value appearing in NullFields will be sent to the server as
25516	// null. It is an error if a field in this list has a non-empty value.
25517	// This may be used to include null fields in Patch requests.
25518	NullFields []string `json:"-"`
25519}
25520
25521func (s *NodeGroupsScopedList) MarshalJSON() ([]byte, error) {
25522	type NoMethod NodeGroupsScopedList
25523	raw := NoMethod(*s)
25524	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25525}
25526
25527// NodeGroupsScopedListWarning: [Output Only] An informational warning
25528// that appears when the nodeGroup list is empty.
25529type NodeGroupsScopedListWarning struct {
25530	// Code: [Output Only] A warning code, if applicable. For example,
25531	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25532	// the response.
25533	//
25534	// Possible values:
25535	//   "CLEANUP_FAILED"
25536	//   "DEPRECATED_RESOURCE_USED"
25537	//   "DEPRECATED_TYPE_USED"
25538	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25539	//   "EXPERIMENTAL_TYPE_USED"
25540	//   "EXTERNAL_API_WARNING"
25541	//   "FIELD_VALUE_OVERRIDEN"
25542	//   "INJECTED_KERNELS_DEPRECATED"
25543	//   "LARGE_DEPLOYMENT_WARNING"
25544	//   "MISSING_TYPE_DEPENDENCY"
25545	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25546	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25547	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25548	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25549	//   "NEXT_HOP_NOT_RUNNING"
25550	//   "NOT_CRITICAL_ERROR"
25551	//   "NO_RESULTS_ON_PAGE"
25552	//   "PARTIAL_SUCCESS"
25553	//   "REQUIRED_TOS_AGREEMENT"
25554	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25555	//   "RESOURCE_NOT_DELETED"
25556	//   "SCHEMA_VALIDATION_IGNORED"
25557	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25558	//   "UNDECLARED_PROPERTIES"
25559	//   "UNREACHABLE"
25560	Code string `json:"code,omitempty"`
25561
25562	// Data: [Output Only] Metadata about this warning in key: value format.
25563	// For example:
25564	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25565	Data []*NodeGroupsScopedListWarningData `json:"data,omitempty"`
25566
25567	// Message: [Output Only] A human-readable description of the warning
25568	// code.
25569	Message string `json:"message,omitempty"`
25570
25571	// ForceSendFields is a list of field names (e.g. "Code") to
25572	// unconditionally include in API requests. By default, fields with
25573	// empty values are omitted from API requests. However, any non-pointer,
25574	// non-interface field appearing in ForceSendFields will be sent to the
25575	// server regardless of whether the field is empty or not. This may be
25576	// used to include empty fields in Patch requests.
25577	ForceSendFields []string `json:"-"`
25578
25579	// NullFields is a list of field names (e.g. "Code") to include in API
25580	// requests with the JSON null value. By default, fields with empty
25581	// values are omitted from API requests. However, any field with an
25582	// empty value appearing in NullFields will be sent to the server as
25583	// null. It is an error if a field in this list has a non-empty value.
25584	// This may be used to include null fields in Patch requests.
25585	NullFields []string `json:"-"`
25586}
25587
25588func (s *NodeGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
25589	type NoMethod NodeGroupsScopedListWarning
25590	raw := NoMethod(*s)
25591	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25592}
25593
25594type NodeGroupsScopedListWarningData struct {
25595	// Key: [Output Only] A key that provides more detail on the warning
25596	// being returned. For example, for warnings where there are no results
25597	// in a list request for a particular zone, this key might be scope and
25598	// the key value might be the zone name. Other examples might be a key
25599	// indicating a deprecated resource and a suggested replacement, or a
25600	// warning about invalid network settings (for example, if an instance
25601	// attempts to perform IP forwarding but is not enabled for IP
25602	// forwarding).
25603	Key string `json:"key,omitempty"`
25604
25605	// Value: [Output Only] A warning data value corresponding to the key.
25606	Value string `json:"value,omitempty"`
25607
25608	// ForceSendFields is a list of field names (e.g. "Key") to
25609	// unconditionally include in API requests. By default, fields with
25610	// empty values are omitted from API requests. However, any non-pointer,
25611	// non-interface field appearing in ForceSendFields will be sent to the
25612	// server regardless of whether the field is empty or not. This may be
25613	// used to include empty fields in Patch requests.
25614	ForceSendFields []string `json:"-"`
25615
25616	// NullFields is a list of field names (e.g. "Key") to include in API
25617	// requests with the JSON null value. By default, fields with empty
25618	// values are omitted from API requests. However, any field with an
25619	// empty value appearing in NullFields will be sent to the server as
25620	// null. It is an error if a field in this list has a non-empty value.
25621	// This may be used to include null fields in Patch requests.
25622	NullFields []string `json:"-"`
25623}
25624
25625func (s *NodeGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
25626	type NoMethod NodeGroupsScopedListWarningData
25627	raw := NoMethod(*s)
25628	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25629}
25630
25631type NodeGroupsSetNodeTemplateRequest struct {
25632	// NodeTemplate: Full or partial URL of the node template resource to be
25633	// updated for this node group.
25634	NodeTemplate string `json:"nodeTemplate,omitempty"`
25635
25636	// ForceSendFields is a list of field names (e.g. "NodeTemplate") to
25637	// unconditionally include in API requests. By default, fields with
25638	// empty values are omitted from API requests. However, any non-pointer,
25639	// non-interface field appearing in ForceSendFields will be sent to the
25640	// server regardless of whether the field is empty or not. This may be
25641	// used to include empty fields in Patch requests.
25642	ForceSendFields []string `json:"-"`
25643
25644	// NullFields is a list of field names (e.g. "NodeTemplate") to include
25645	// in API requests with the JSON null value. By default, fields with
25646	// empty values are omitted from API requests. However, any field with
25647	// an empty value appearing in NullFields will be sent to the server as
25648	// null. It is an error if a field in this list has a non-empty value.
25649	// This may be used to include null fields in Patch requests.
25650	NullFields []string `json:"-"`
25651}
25652
25653func (s *NodeGroupsSetNodeTemplateRequest) MarshalJSON() ([]byte, error) {
25654	type NoMethod NodeGroupsSetNodeTemplateRequest
25655	raw := NoMethod(*s)
25656	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25657}
25658
25659// NodeTemplate: Represent a sole-tenant Node Template resource.
25660//
25661// You can use a template to define properties for nodes in a node
25662// group. For more information, read Creating node groups and instances.
25663// (== resource_for {$api_version}.nodeTemplates ==)
25664type NodeTemplate struct {
25665	Accelerators []*AcceleratorConfig `json:"accelerators,omitempty"`
25666
25667	// CpuOvercommitType: CPU overcommit.
25668	//
25669	// Possible values:
25670	//   "CPU_OVERCOMMIT_TYPE_UNSPECIFIED"
25671	//   "ENABLED"
25672	//   "NONE"
25673	CpuOvercommitType string `json:"cpuOvercommitType,omitempty"`
25674
25675	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
25676	// format.
25677	CreationTimestamp string `json:"creationTimestamp,omitempty"`
25678
25679	// Description: An optional description of this resource. Provide this
25680	// property when you create the resource.
25681	Description string `json:"description,omitempty"`
25682
25683	Disks []*LocalDisk `json:"disks,omitempty"`
25684
25685	// Id: [Output Only] The unique identifier for the resource. This
25686	// identifier is defined by the server.
25687	Id uint64 `json:"id,omitempty,string"`
25688
25689	// Kind: [Output Only] The type of the resource. Always
25690	// compute#nodeTemplate for node templates.
25691	Kind string `json:"kind,omitempty"`
25692
25693	// Name: The name of the resource, provided by the client when initially
25694	// creating the resource. The resource name must be 1-63 characters
25695	// long, and comply with RFC1035. Specifically, the name must be 1-63
25696	// characters long and match the regular expression
25697	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
25698	// a lowercase letter, and all following characters must be a dash,
25699	// lowercase letter, or digit, except the last character, which cannot
25700	// be a dash.
25701	Name string `json:"name,omitempty"`
25702
25703	// NodeAffinityLabels: Labels to use for node affinity, which will be
25704	// used in instance scheduling.
25705	NodeAffinityLabels map[string]string `json:"nodeAffinityLabels,omitempty"`
25706
25707	// NodeType: The node type to use for nodes group that are created from
25708	// this template.
25709	NodeType string `json:"nodeType,omitempty"`
25710
25711	// NodeTypeFlexibility: The flexible properties of the desired node
25712	// type. Node groups that use this node template will create nodes of a
25713	// type that matches these properties.
25714	//
25715	// This field is mutually exclusive with the node_type property; you can
25716	// only define one or the other, but not both.
25717	NodeTypeFlexibility *NodeTemplateNodeTypeFlexibility `json:"nodeTypeFlexibility,omitempty"`
25718
25719	// Region: [Output Only] The name of the region where the node template
25720	// resides, such as us-central1.
25721	Region string `json:"region,omitempty"`
25722
25723	// SelfLink: [Output Only] Server-defined URL for the resource.
25724	SelfLink string `json:"selfLink,omitempty"`
25725
25726	// ServerBinding: Sets the binding properties for the physical server.
25727	// Valid values include:
25728	// - [Default] RESTART_NODE_ON_ANY_SERVER: Restarts VMs on any available
25729	// physical server
25730	// - RESTART_NODE_ON_MINIMAL_SERVER: Restarts VMs on the same physical
25731	// server whenever possible
25732	//
25733	// See Sole-tenant node options for more information.
25734	ServerBinding *ServerBinding `json:"serverBinding,omitempty"`
25735
25736	// Status: [Output Only] The status of the node template. One of the
25737	// following values: CREATING, READY, and DELETING.
25738	//
25739	// Possible values:
25740	//   "CREATING"
25741	//   "DELETING"
25742	//   "INVALID"
25743	//   "READY"
25744	Status string `json:"status,omitempty"`
25745
25746	// StatusMessage: [Output Only] An optional, human-readable explanation
25747	// of the status.
25748	StatusMessage string `json:"statusMessage,omitempty"`
25749
25750	// ServerResponse contains the HTTP response code and headers from the
25751	// server.
25752	googleapi.ServerResponse `json:"-"`
25753
25754	// ForceSendFields is a list of field names (e.g. "Accelerators") to
25755	// unconditionally include in API requests. By default, fields with
25756	// empty values are omitted from API requests. However, any non-pointer,
25757	// non-interface field appearing in ForceSendFields will be sent to the
25758	// server regardless of whether the field is empty or not. This may be
25759	// used to include empty fields in Patch requests.
25760	ForceSendFields []string `json:"-"`
25761
25762	// NullFields is a list of field names (e.g. "Accelerators") to include
25763	// in API requests with the JSON null value. By default, fields with
25764	// empty values are omitted from API requests. However, any field with
25765	// an empty value appearing in NullFields will be sent to the server as
25766	// null. It is an error if a field in this list has a non-empty value.
25767	// This may be used to include null fields in Patch requests.
25768	NullFields []string `json:"-"`
25769}
25770
25771func (s *NodeTemplate) MarshalJSON() ([]byte, error) {
25772	type NoMethod NodeTemplate
25773	raw := NoMethod(*s)
25774	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25775}
25776
25777type NodeTemplateAggregatedList struct {
25778	// Id: [Output Only] Unique identifier for the resource; defined by the
25779	// server.
25780	Id string `json:"id,omitempty"`
25781
25782	// Items: A list of NodeTemplatesScopedList resources.
25783	Items map[string]NodeTemplatesScopedList `json:"items,omitempty"`
25784
25785	// Kind: [Output Only] Type of resource.Always
25786	// compute#nodeTemplateAggregatedList for aggregated lists of node
25787	// templates.
25788	Kind string `json:"kind,omitempty"`
25789
25790	// NextPageToken: [Output Only] This token allows you to get the next
25791	// page of results for list requests. If the number of results is larger
25792	// than maxResults, use the nextPageToken as a value for the query
25793	// parameter pageToken in the next list request. Subsequent list
25794	// requests will have their own nextPageToken to continue paging through
25795	// the results.
25796	NextPageToken string `json:"nextPageToken,omitempty"`
25797
25798	// SelfLink: [Output Only] Server-defined URL for this resource.
25799	SelfLink string `json:"selfLink,omitempty"`
25800
25801	// Unreachables: [Output Only] Unreachable resources.
25802	Unreachables []string `json:"unreachables,omitempty"`
25803
25804	// Warning: [Output Only] Informational warning message.
25805	Warning *NodeTemplateAggregatedListWarning `json:"warning,omitempty"`
25806
25807	// ServerResponse contains the HTTP response code and headers from the
25808	// server.
25809	googleapi.ServerResponse `json:"-"`
25810
25811	// ForceSendFields is a list of field names (e.g. "Id") to
25812	// unconditionally include in API requests. By default, fields with
25813	// empty values are omitted from API requests. However, any non-pointer,
25814	// non-interface field appearing in ForceSendFields will be sent to the
25815	// server regardless of whether the field is empty or not. This may be
25816	// used to include empty fields in Patch requests.
25817	ForceSendFields []string `json:"-"`
25818
25819	// NullFields is a list of field names (e.g. "Id") to include in API
25820	// requests with the JSON null value. By default, fields with empty
25821	// values are omitted from API requests. However, any field with an
25822	// empty value appearing in NullFields will be sent to the server as
25823	// null. It is an error if a field in this list has a non-empty value.
25824	// This may be used to include null fields in Patch requests.
25825	NullFields []string `json:"-"`
25826}
25827
25828func (s *NodeTemplateAggregatedList) MarshalJSON() ([]byte, error) {
25829	type NoMethod NodeTemplateAggregatedList
25830	raw := NoMethod(*s)
25831	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25832}
25833
25834// NodeTemplateAggregatedListWarning: [Output Only] Informational
25835// warning message.
25836type NodeTemplateAggregatedListWarning struct {
25837	// Code: [Output Only] A warning code, if applicable. For example,
25838	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25839	// the response.
25840	//
25841	// Possible values:
25842	//   "CLEANUP_FAILED"
25843	//   "DEPRECATED_RESOURCE_USED"
25844	//   "DEPRECATED_TYPE_USED"
25845	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25846	//   "EXPERIMENTAL_TYPE_USED"
25847	//   "EXTERNAL_API_WARNING"
25848	//   "FIELD_VALUE_OVERRIDEN"
25849	//   "INJECTED_KERNELS_DEPRECATED"
25850	//   "LARGE_DEPLOYMENT_WARNING"
25851	//   "MISSING_TYPE_DEPENDENCY"
25852	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25853	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25854	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25855	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25856	//   "NEXT_HOP_NOT_RUNNING"
25857	//   "NOT_CRITICAL_ERROR"
25858	//   "NO_RESULTS_ON_PAGE"
25859	//   "PARTIAL_SUCCESS"
25860	//   "REQUIRED_TOS_AGREEMENT"
25861	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25862	//   "RESOURCE_NOT_DELETED"
25863	//   "SCHEMA_VALIDATION_IGNORED"
25864	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25865	//   "UNDECLARED_PROPERTIES"
25866	//   "UNREACHABLE"
25867	Code string `json:"code,omitempty"`
25868
25869	// Data: [Output Only] Metadata about this warning in key: value format.
25870	// For example:
25871	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25872	Data []*NodeTemplateAggregatedListWarningData `json:"data,omitempty"`
25873
25874	// Message: [Output Only] A human-readable description of the warning
25875	// code.
25876	Message string `json:"message,omitempty"`
25877
25878	// ForceSendFields is a list of field names (e.g. "Code") to
25879	// unconditionally include in API requests. By default, fields with
25880	// empty values are omitted from API requests. However, any non-pointer,
25881	// non-interface field appearing in ForceSendFields will be sent to the
25882	// server regardless of whether the field is empty or not. This may be
25883	// used to include empty fields in Patch requests.
25884	ForceSendFields []string `json:"-"`
25885
25886	// NullFields is a list of field names (e.g. "Code") to include in API
25887	// requests with the JSON null value. By default, fields with empty
25888	// values are omitted from API requests. However, any field with an
25889	// empty value appearing in NullFields will be sent to the server as
25890	// null. It is an error if a field in this list has a non-empty value.
25891	// This may be used to include null fields in Patch requests.
25892	NullFields []string `json:"-"`
25893}
25894
25895func (s *NodeTemplateAggregatedListWarning) MarshalJSON() ([]byte, error) {
25896	type NoMethod NodeTemplateAggregatedListWarning
25897	raw := NoMethod(*s)
25898	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25899}
25900
25901type NodeTemplateAggregatedListWarningData struct {
25902	// Key: [Output Only] A key that provides more detail on the warning
25903	// being returned. For example, for warnings where there are no results
25904	// in a list request for a particular zone, this key might be scope and
25905	// the key value might be the zone name. Other examples might be a key
25906	// indicating a deprecated resource and a suggested replacement, or a
25907	// warning about invalid network settings (for example, if an instance
25908	// attempts to perform IP forwarding but is not enabled for IP
25909	// forwarding).
25910	Key string `json:"key,omitempty"`
25911
25912	// Value: [Output Only] A warning data value corresponding to the key.
25913	Value string `json:"value,omitempty"`
25914
25915	// ForceSendFields is a list of field names (e.g. "Key") to
25916	// unconditionally include in API requests. By default, fields with
25917	// empty values are omitted from API requests. However, any non-pointer,
25918	// non-interface field appearing in ForceSendFields will be sent to the
25919	// server regardless of whether the field is empty or not. This may be
25920	// used to include empty fields in Patch requests.
25921	ForceSendFields []string `json:"-"`
25922
25923	// NullFields is a list of field names (e.g. "Key") to include in API
25924	// requests with the JSON null value. By default, fields with empty
25925	// values are omitted from API requests. However, any field with an
25926	// empty value appearing in NullFields will be sent to the server as
25927	// null. It is an error if a field in this list has a non-empty value.
25928	// This may be used to include null fields in Patch requests.
25929	NullFields []string `json:"-"`
25930}
25931
25932func (s *NodeTemplateAggregatedListWarningData) MarshalJSON() ([]byte, error) {
25933	type NoMethod NodeTemplateAggregatedListWarningData
25934	raw := NoMethod(*s)
25935	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25936}
25937
25938// NodeTemplateList: Contains a list of node templates.
25939type NodeTemplateList struct {
25940	// Id: [Output Only] Unique identifier for the resource; defined by the
25941	// server.
25942	Id string `json:"id,omitempty"`
25943
25944	// Items: A list of NodeTemplate resources.
25945	Items []*NodeTemplate `json:"items,omitempty"`
25946
25947	// Kind: [Output Only] Type of resource.Always compute#nodeTemplateList
25948	// for lists of node templates.
25949	Kind string `json:"kind,omitempty"`
25950
25951	// NextPageToken: [Output Only] This token allows you to get the next
25952	// page of results for list requests. If the number of results is larger
25953	// than maxResults, use the nextPageToken as a value for the query
25954	// parameter pageToken in the next list request. Subsequent list
25955	// requests will have their own nextPageToken to continue paging through
25956	// the results.
25957	NextPageToken string `json:"nextPageToken,omitempty"`
25958
25959	// SelfLink: [Output Only] Server-defined URL for this resource.
25960	SelfLink string `json:"selfLink,omitempty"`
25961
25962	// Warning: [Output Only] Informational warning message.
25963	Warning *NodeTemplateListWarning `json:"warning,omitempty"`
25964
25965	// ServerResponse contains the HTTP response code and headers from the
25966	// server.
25967	googleapi.ServerResponse `json:"-"`
25968
25969	// ForceSendFields is a list of field names (e.g. "Id") to
25970	// unconditionally include in API requests. By default, fields with
25971	// empty values are omitted from API requests. However, any non-pointer,
25972	// non-interface field appearing in ForceSendFields will be sent to the
25973	// server regardless of whether the field is empty or not. This may be
25974	// used to include empty fields in Patch requests.
25975	ForceSendFields []string `json:"-"`
25976
25977	// NullFields is a list of field names (e.g. "Id") to include in API
25978	// requests with the JSON null value. By default, fields with empty
25979	// values are omitted from API requests. However, any field with an
25980	// empty value appearing in NullFields will be sent to the server as
25981	// null. It is an error if a field in this list has a non-empty value.
25982	// This may be used to include null fields in Patch requests.
25983	NullFields []string `json:"-"`
25984}
25985
25986func (s *NodeTemplateList) MarshalJSON() ([]byte, error) {
25987	type NoMethod NodeTemplateList
25988	raw := NoMethod(*s)
25989	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25990}
25991
25992// NodeTemplateListWarning: [Output Only] Informational warning message.
25993type NodeTemplateListWarning struct {
25994	// Code: [Output Only] A warning code, if applicable. For example,
25995	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25996	// the response.
25997	//
25998	// Possible values:
25999	//   "CLEANUP_FAILED"
26000	//   "DEPRECATED_RESOURCE_USED"
26001	//   "DEPRECATED_TYPE_USED"
26002	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26003	//   "EXPERIMENTAL_TYPE_USED"
26004	//   "EXTERNAL_API_WARNING"
26005	//   "FIELD_VALUE_OVERRIDEN"
26006	//   "INJECTED_KERNELS_DEPRECATED"
26007	//   "LARGE_DEPLOYMENT_WARNING"
26008	//   "MISSING_TYPE_DEPENDENCY"
26009	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26010	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26011	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26012	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26013	//   "NEXT_HOP_NOT_RUNNING"
26014	//   "NOT_CRITICAL_ERROR"
26015	//   "NO_RESULTS_ON_PAGE"
26016	//   "PARTIAL_SUCCESS"
26017	//   "REQUIRED_TOS_AGREEMENT"
26018	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26019	//   "RESOURCE_NOT_DELETED"
26020	//   "SCHEMA_VALIDATION_IGNORED"
26021	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26022	//   "UNDECLARED_PROPERTIES"
26023	//   "UNREACHABLE"
26024	Code string `json:"code,omitempty"`
26025
26026	// Data: [Output Only] Metadata about this warning in key: value format.
26027	// For example:
26028	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26029	Data []*NodeTemplateListWarningData `json:"data,omitempty"`
26030
26031	// Message: [Output Only] A human-readable description of the warning
26032	// code.
26033	Message string `json:"message,omitempty"`
26034
26035	// ForceSendFields is a list of field names (e.g. "Code") to
26036	// unconditionally include in API requests. By default, fields with
26037	// empty values are omitted from API requests. However, any non-pointer,
26038	// non-interface field appearing in ForceSendFields will be sent to the
26039	// server regardless of whether the field is empty or not. This may be
26040	// used to include empty fields in Patch requests.
26041	ForceSendFields []string `json:"-"`
26042
26043	// NullFields is a list of field names (e.g. "Code") to include in API
26044	// requests with the JSON null value. By default, fields with empty
26045	// values are omitted from API requests. However, any field with an
26046	// empty value appearing in NullFields will be sent to the server as
26047	// null. It is an error if a field in this list has a non-empty value.
26048	// This may be used to include null fields in Patch requests.
26049	NullFields []string `json:"-"`
26050}
26051
26052func (s *NodeTemplateListWarning) MarshalJSON() ([]byte, error) {
26053	type NoMethod NodeTemplateListWarning
26054	raw := NoMethod(*s)
26055	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26056}
26057
26058type NodeTemplateListWarningData struct {
26059	// Key: [Output Only] A key that provides more detail on the warning
26060	// being returned. For example, for warnings where there are no results
26061	// in a list request for a particular zone, this key might be scope and
26062	// the key value might be the zone name. Other examples might be a key
26063	// indicating a deprecated resource and a suggested replacement, or a
26064	// warning about invalid network settings (for example, if an instance
26065	// attempts to perform IP forwarding but is not enabled for IP
26066	// forwarding).
26067	Key string `json:"key,omitempty"`
26068
26069	// Value: [Output Only] A warning data value corresponding to the key.
26070	Value string `json:"value,omitempty"`
26071
26072	// ForceSendFields is a list of field names (e.g. "Key") to
26073	// unconditionally include in API requests. By default, fields with
26074	// empty values are omitted from API requests. However, any non-pointer,
26075	// non-interface field appearing in ForceSendFields will be sent to the
26076	// server regardless of whether the field is empty or not. This may be
26077	// used to include empty fields in Patch requests.
26078	ForceSendFields []string `json:"-"`
26079
26080	// NullFields is a list of field names (e.g. "Key") to include in API
26081	// requests with the JSON null value. By default, fields with empty
26082	// values are omitted from API requests. However, any field with an
26083	// empty value appearing in NullFields will be sent to the server as
26084	// null. It is an error if a field in this list has a non-empty value.
26085	// This may be used to include null fields in Patch requests.
26086	NullFields []string `json:"-"`
26087}
26088
26089func (s *NodeTemplateListWarningData) MarshalJSON() ([]byte, error) {
26090	type NoMethod NodeTemplateListWarningData
26091	raw := NoMethod(*s)
26092	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26093}
26094
26095type NodeTemplateNodeTypeFlexibility struct {
26096	Cpus string `json:"cpus,omitempty"`
26097
26098	LocalSsd string `json:"localSsd,omitempty"`
26099
26100	Memory string `json:"memory,omitempty"`
26101
26102	// ForceSendFields is a list of field names (e.g. "Cpus") to
26103	// unconditionally include in API requests. By default, fields with
26104	// empty values are omitted from API requests. However, any non-pointer,
26105	// non-interface field appearing in ForceSendFields will be sent to the
26106	// server regardless of whether the field is empty or not. This may be
26107	// used to include empty fields in Patch requests.
26108	ForceSendFields []string `json:"-"`
26109
26110	// NullFields is a list of field names (e.g. "Cpus") to include in API
26111	// requests with the JSON null value. By default, fields with empty
26112	// values are omitted from API requests. However, any field with an
26113	// empty value appearing in NullFields will be sent to the server as
26114	// null. It is an error if a field in this list has a non-empty value.
26115	// This may be used to include null fields in Patch requests.
26116	NullFields []string `json:"-"`
26117}
26118
26119func (s *NodeTemplateNodeTypeFlexibility) MarshalJSON() ([]byte, error) {
26120	type NoMethod NodeTemplateNodeTypeFlexibility
26121	raw := NoMethod(*s)
26122	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26123}
26124
26125type NodeTemplatesScopedList struct {
26126	// NodeTemplates: [Output Only] A list of node templates contained in
26127	// this scope.
26128	NodeTemplates []*NodeTemplate `json:"nodeTemplates,omitempty"`
26129
26130	// Warning: [Output Only] An informational warning that appears when the
26131	// node templates list is empty.
26132	Warning *NodeTemplatesScopedListWarning `json:"warning,omitempty"`
26133
26134	// ForceSendFields is a list of field names (e.g. "NodeTemplates") to
26135	// unconditionally include in API requests. By default, fields with
26136	// empty values are omitted from API requests. However, any non-pointer,
26137	// non-interface field appearing in ForceSendFields will be sent to the
26138	// server regardless of whether the field is empty or not. This may be
26139	// used to include empty fields in Patch requests.
26140	ForceSendFields []string `json:"-"`
26141
26142	// NullFields is a list of field names (e.g. "NodeTemplates") to include
26143	// in API requests with the JSON null value. By default, fields with
26144	// empty values are omitted from API requests. However, any field with
26145	// an empty value appearing in NullFields will be sent to the server as
26146	// null. It is an error if a field in this list has a non-empty value.
26147	// This may be used to include null fields in Patch requests.
26148	NullFields []string `json:"-"`
26149}
26150
26151func (s *NodeTemplatesScopedList) MarshalJSON() ([]byte, error) {
26152	type NoMethod NodeTemplatesScopedList
26153	raw := NoMethod(*s)
26154	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26155}
26156
26157// NodeTemplatesScopedListWarning: [Output Only] An informational
26158// warning that appears when the node templates list is empty.
26159type NodeTemplatesScopedListWarning struct {
26160	// Code: [Output Only] A warning code, if applicable. For example,
26161	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26162	// the response.
26163	//
26164	// Possible values:
26165	//   "CLEANUP_FAILED"
26166	//   "DEPRECATED_RESOURCE_USED"
26167	//   "DEPRECATED_TYPE_USED"
26168	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26169	//   "EXPERIMENTAL_TYPE_USED"
26170	//   "EXTERNAL_API_WARNING"
26171	//   "FIELD_VALUE_OVERRIDEN"
26172	//   "INJECTED_KERNELS_DEPRECATED"
26173	//   "LARGE_DEPLOYMENT_WARNING"
26174	//   "MISSING_TYPE_DEPENDENCY"
26175	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26176	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26177	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26178	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26179	//   "NEXT_HOP_NOT_RUNNING"
26180	//   "NOT_CRITICAL_ERROR"
26181	//   "NO_RESULTS_ON_PAGE"
26182	//   "PARTIAL_SUCCESS"
26183	//   "REQUIRED_TOS_AGREEMENT"
26184	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26185	//   "RESOURCE_NOT_DELETED"
26186	//   "SCHEMA_VALIDATION_IGNORED"
26187	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26188	//   "UNDECLARED_PROPERTIES"
26189	//   "UNREACHABLE"
26190	Code string `json:"code,omitempty"`
26191
26192	// Data: [Output Only] Metadata about this warning in key: value format.
26193	// For example:
26194	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26195	Data []*NodeTemplatesScopedListWarningData `json:"data,omitempty"`
26196
26197	// Message: [Output Only] A human-readable description of the warning
26198	// code.
26199	Message string `json:"message,omitempty"`
26200
26201	// ForceSendFields is a list of field names (e.g. "Code") to
26202	// unconditionally include in API requests. By default, fields with
26203	// empty values are omitted from API requests. However, any non-pointer,
26204	// non-interface field appearing in ForceSendFields will be sent to the
26205	// server regardless of whether the field is empty or not. This may be
26206	// used to include empty fields in Patch requests.
26207	ForceSendFields []string `json:"-"`
26208
26209	// NullFields is a list of field names (e.g. "Code") to include in API
26210	// requests with the JSON null value. By default, fields with empty
26211	// values are omitted from API requests. However, any field with an
26212	// empty value appearing in NullFields will be sent to the server as
26213	// null. It is an error if a field in this list has a non-empty value.
26214	// This may be used to include null fields in Patch requests.
26215	NullFields []string `json:"-"`
26216}
26217
26218func (s *NodeTemplatesScopedListWarning) MarshalJSON() ([]byte, error) {
26219	type NoMethod NodeTemplatesScopedListWarning
26220	raw := NoMethod(*s)
26221	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26222}
26223
26224type NodeTemplatesScopedListWarningData struct {
26225	// Key: [Output Only] A key that provides more detail on the warning
26226	// being returned. For example, for warnings where there are no results
26227	// in a list request for a particular zone, this key might be scope and
26228	// the key value might be the zone name. Other examples might be a key
26229	// indicating a deprecated resource and a suggested replacement, or a
26230	// warning about invalid network settings (for example, if an instance
26231	// attempts to perform IP forwarding but is not enabled for IP
26232	// forwarding).
26233	Key string `json:"key,omitempty"`
26234
26235	// Value: [Output Only] A warning data value corresponding to the key.
26236	Value string `json:"value,omitempty"`
26237
26238	// ForceSendFields is a list of field names (e.g. "Key") to
26239	// unconditionally include in API requests. By default, fields with
26240	// empty values are omitted from API requests. However, any non-pointer,
26241	// non-interface field appearing in ForceSendFields will be sent to the
26242	// server regardless of whether the field is empty or not. This may be
26243	// used to include empty fields in Patch requests.
26244	ForceSendFields []string `json:"-"`
26245
26246	// NullFields is a list of field names (e.g. "Key") to include in API
26247	// requests with the JSON null value. By default, fields with empty
26248	// values are omitted from API requests. However, any field with an
26249	// empty value appearing in NullFields will be sent to the server as
26250	// null. It is an error if a field in this list has a non-empty value.
26251	// This may be used to include null fields in Patch requests.
26252	NullFields []string `json:"-"`
26253}
26254
26255func (s *NodeTemplatesScopedListWarningData) MarshalJSON() ([]byte, error) {
26256	type NoMethod NodeTemplatesScopedListWarningData
26257	raw := NoMethod(*s)
26258	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26259}
26260
26261// NodeType: Represent a sole-tenant Node Type resource.
26262//
26263// Each node within a node group must have a node type. A node type
26264// specifies the total amount of cores and memory for that node.
26265// Currently, the only available node type is n1-node-96-624 node type
26266// that has 96 vCPUs and 624 GB of memory, available in multiple zones.
26267// For more information read Node types. (== resource_for
26268// {$api_version}.nodeTypes ==)
26269type NodeType struct {
26270	// CpuPlatform: [Output Only] The CPU platform used by this node type.
26271	CpuPlatform string `json:"cpuPlatform,omitempty"`
26272
26273	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
26274	// format.
26275	CreationTimestamp string `json:"creationTimestamp,omitempty"`
26276
26277	// Deprecated -- [Output Only] The deprecation status associated with
26278	// this node type.
26279	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
26280
26281	// Description: [Output Only] An optional textual description of the
26282	// resource.
26283	Description string `json:"description,omitempty"`
26284
26285	// GuestCpus: [Output Only] The number of virtual CPUs that are
26286	// available to the node type.
26287	GuestCpus int64 `json:"guestCpus,omitempty"`
26288
26289	// Id: [Output Only] The unique identifier for the resource. This
26290	// identifier is defined by the server.
26291	Id uint64 `json:"id,omitempty,string"`
26292
26293	// Kind: [Output Only] The type of the resource. Always compute#nodeType
26294	// for node types.
26295	Kind string `json:"kind,omitempty"`
26296
26297	// LocalSsdGb: [Output Only] Local SSD available to the node type,
26298	// defined in GB.
26299	LocalSsdGb int64 `json:"localSsdGb,omitempty"`
26300
26301	// MemoryMb: [Output Only] The amount of physical memory available to
26302	// the node type, defined in MB.
26303	MemoryMb int64 `json:"memoryMb,omitempty"`
26304
26305	// Name: [Output Only] Name of the resource.
26306	Name string `json:"name,omitempty"`
26307
26308	// SelfLink: [Output Only] Server-defined URL for the resource.
26309	SelfLink string `json:"selfLink,omitempty"`
26310
26311	// Zone: [Output Only] The name of the zone where the node type resides,
26312	// such as us-central1-a.
26313	Zone string `json:"zone,omitempty"`
26314
26315	// ServerResponse contains the HTTP response code and headers from the
26316	// server.
26317	googleapi.ServerResponse `json:"-"`
26318
26319	// ForceSendFields is a list of field names (e.g. "CpuPlatform") to
26320	// unconditionally include in API requests. By default, fields with
26321	// empty values are omitted from API requests. However, any non-pointer,
26322	// non-interface field appearing in ForceSendFields will be sent to the
26323	// server regardless of whether the field is empty or not. This may be
26324	// used to include empty fields in Patch requests.
26325	ForceSendFields []string `json:"-"`
26326
26327	// NullFields is a list of field names (e.g. "CpuPlatform") to include
26328	// in API requests with the JSON null value. By default, fields with
26329	// empty values are omitted from API requests. However, any field with
26330	// an empty value appearing in NullFields will be sent to the server as
26331	// null. It is an error if a field in this list has a non-empty value.
26332	// This may be used to include null fields in Patch requests.
26333	NullFields []string `json:"-"`
26334}
26335
26336func (s *NodeType) MarshalJSON() ([]byte, error) {
26337	type NoMethod NodeType
26338	raw := NoMethod(*s)
26339	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26340}
26341
26342type NodeTypeAggregatedList struct {
26343	// Id: [Output Only] Unique identifier for the resource; defined by the
26344	// server.
26345	Id string `json:"id,omitempty"`
26346
26347	// Items: A list of NodeTypesScopedList resources.
26348	Items map[string]NodeTypesScopedList `json:"items,omitempty"`
26349
26350	// Kind: [Output Only] Type of resource.Always
26351	// compute#nodeTypeAggregatedList for aggregated lists of node types.
26352	Kind string `json:"kind,omitempty"`
26353
26354	// NextPageToken: [Output Only] This token allows you to get the next
26355	// page of results for list requests. If the number of results is larger
26356	// than maxResults, use the nextPageToken as a value for the query
26357	// parameter pageToken in the next list request. Subsequent list
26358	// requests will have their own nextPageToken to continue paging through
26359	// the results.
26360	NextPageToken string `json:"nextPageToken,omitempty"`
26361
26362	// SelfLink: [Output Only] Server-defined URL for this resource.
26363	SelfLink string `json:"selfLink,omitempty"`
26364
26365	// Unreachables: [Output Only] Unreachable resources.
26366	Unreachables []string `json:"unreachables,omitempty"`
26367
26368	// Warning: [Output Only] Informational warning message.
26369	Warning *NodeTypeAggregatedListWarning `json:"warning,omitempty"`
26370
26371	// ServerResponse contains the HTTP response code and headers from the
26372	// server.
26373	googleapi.ServerResponse `json:"-"`
26374
26375	// ForceSendFields is a list of field names (e.g. "Id") to
26376	// unconditionally include in API requests. By default, fields with
26377	// empty values are omitted from API requests. However, any non-pointer,
26378	// non-interface field appearing in ForceSendFields will be sent to the
26379	// server regardless of whether the field is empty or not. This may be
26380	// used to include empty fields in Patch requests.
26381	ForceSendFields []string `json:"-"`
26382
26383	// NullFields is a list of field names (e.g. "Id") to include in API
26384	// requests with the JSON null value. By default, fields with empty
26385	// values are omitted from API requests. However, any field with an
26386	// empty value appearing in NullFields will be sent to the server as
26387	// null. It is an error if a field in this list has a non-empty value.
26388	// This may be used to include null fields in Patch requests.
26389	NullFields []string `json:"-"`
26390}
26391
26392func (s *NodeTypeAggregatedList) MarshalJSON() ([]byte, error) {
26393	type NoMethod NodeTypeAggregatedList
26394	raw := NoMethod(*s)
26395	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26396}
26397
26398// NodeTypeAggregatedListWarning: [Output Only] Informational warning
26399// message.
26400type NodeTypeAggregatedListWarning struct {
26401	// Code: [Output Only] A warning code, if applicable. For example,
26402	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26403	// the response.
26404	//
26405	// Possible values:
26406	//   "CLEANUP_FAILED"
26407	//   "DEPRECATED_RESOURCE_USED"
26408	//   "DEPRECATED_TYPE_USED"
26409	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26410	//   "EXPERIMENTAL_TYPE_USED"
26411	//   "EXTERNAL_API_WARNING"
26412	//   "FIELD_VALUE_OVERRIDEN"
26413	//   "INJECTED_KERNELS_DEPRECATED"
26414	//   "LARGE_DEPLOYMENT_WARNING"
26415	//   "MISSING_TYPE_DEPENDENCY"
26416	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26417	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26418	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26419	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26420	//   "NEXT_HOP_NOT_RUNNING"
26421	//   "NOT_CRITICAL_ERROR"
26422	//   "NO_RESULTS_ON_PAGE"
26423	//   "PARTIAL_SUCCESS"
26424	//   "REQUIRED_TOS_AGREEMENT"
26425	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26426	//   "RESOURCE_NOT_DELETED"
26427	//   "SCHEMA_VALIDATION_IGNORED"
26428	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26429	//   "UNDECLARED_PROPERTIES"
26430	//   "UNREACHABLE"
26431	Code string `json:"code,omitempty"`
26432
26433	// Data: [Output Only] Metadata about this warning in key: value format.
26434	// For example:
26435	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26436	Data []*NodeTypeAggregatedListWarningData `json:"data,omitempty"`
26437
26438	// Message: [Output Only] A human-readable description of the warning
26439	// code.
26440	Message string `json:"message,omitempty"`
26441
26442	// ForceSendFields is a list of field names (e.g. "Code") to
26443	// unconditionally include in API requests. By default, fields with
26444	// empty values are omitted from API requests. However, any non-pointer,
26445	// non-interface field appearing in ForceSendFields will be sent to the
26446	// server regardless of whether the field is empty or not. This may be
26447	// used to include empty fields in Patch requests.
26448	ForceSendFields []string `json:"-"`
26449
26450	// NullFields is a list of field names (e.g. "Code") to include in API
26451	// requests with the JSON null value. By default, fields with empty
26452	// values are omitted from API requests. However, any field with an
26453	// empty value appearing in NullFields will be sent to the server as
26454	// null. It is an error if a field in this list has a non-empty value.
26455	// This may be used to include null fields in Patch requests.
26456	NullFields []string `json:"-"`
26457}
26458
26459func (s *NodeTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
26460	type NoMethod NodeTypeAggregatedListWarning
26461	raw := NoMethod(*s)
26462	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26463}
26464
26465type NodeTypeAggregatedListWarningData struct {
26466	// Key: [Output Only] A key that provides more detail on the warning
26467	// being returned. For example, for warnings where there are no results
26468	// in a list request for a particular zone, this key might be scope and
26469	// the key value might be the zone name. Other examples might be a key
26470	// indicating a deprecated resource and a suggested replacement, or a
26471	// warning about invalid network settings (for example, if an instance
26472	// attempts to perform IP forwarding but is not enabled for IP
26473	// forwarding).
26474	Key string `json:"key,omitempty"`
26475
26476	// Value: [Output Only] A warning data value corresponding to the key.
26477	Value string `json:"value,omitempty"`
26478
26479	// ForceSendFields is a list of field names (e.g. "Key") to
26480	// unconditionally include in API requests. By default, fields with
26481	// empty values are omitted from API requests. However, any non-pointer,
26482	// non-interface field appearing in ForceSendFields will be sent to the
26483	// server regardless of whether the field is empty or not. This may be
26484	// used to include empty fields in Patch requests.
26485	ForceSendFields []string `json:"-"`
26486
26487	// NullFields is a list of field names (e.g. "Key") to include in API
26488	// requests with the JSON null value. By default, fields with empty
26489	// values are omitted from API requests. However, any field with an
26490	// empty value appearing in NullFields will be sent to the server as
26491	// null. It is an error if a field in this list has a non-empty value.
26492	// This may be used to include null fields in Patch requests.
26493	NullFields []string `json:"-"`
26494}
26495
26496func (s *NodeTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
26497	type NoMethod NodeTypeAggregatedListWarningData
26498	raw := NoMethod(*s)
26499	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26500}
26501
26502// NodeTypeList: Contains a list of node types.
26503type NodeTypeList struct {
26504	// Id: [Output Only] Unique identifier for the resource; defined by the
26505	// server.
26506	Id string `json:"id,omitempty"`
26507
26508	// Items: A list of NodeType resources.
26509	Items []*NodeType `json:"items,omitempty"`
26510
26511	// Kind: [Output Only] Type of resource.Always compute#nodeTypeList for
26512	// lists of node types.
26513	Kind string `json:"kind,omitempty"`
26514
26515	// NextPageToken: [Output Only] This token allows you to get the next
26516	// page of results for list requests. If the number of results is larger
26517	// than maxResults, use the nextPageToken as a value for the query
26518	// parameter pageToken in the next list request. Subsequent list
26519	// requests will have their own nextPageToken to continue paging through
26520	// the results.
26521	NextPageToken string `json:"nextPageToken,omitempty"`
26522
26523	// SelfLink: [Output Only] Server-defined URL for this resource.
26524	SelfLink string `json:"selfLink,omitempty"`
26525
26526	// Warning: [Output Only] Informational warning message.
26527	Warning *NodeTypeListWarning `json:"warning,omitempty"`
26528
26529	// ServerResponse contains the HTTP response code and headers from the
26530	// server.
26531	googleapi.ServerResponse `json:"-"`
26532
26533	// ForceSendFields is a list of field names (e.g. "Id") to
26534	// unconditionally include in API requests. By default, fields with
26535	// empty values are omitted from API requests. However, any non-pointer,
26536	// non-interface field appearing in ForceSendFields will be sent to the
26537	// server regardless of whether the field is empty or not. This may be
26538	// used to include empty fields in Patch requests.
26539	ForceSendFields []string `json:"-"`
26540
26541	// NullFields is a list of field names (e.g. "Id") to include in API
26542	// requests with the JSON null value. By default, fields with empty
26543	// values are omitted from API requests. However, any field with an
26544	// empty value appearing in NullFields will be sent to the server as
26545	// null. It is an error if a field in this list has a non-empty value.
26546	// This may be used to include null fields in Patch requests.
26547	NullFields []string `json:"-"`
26548}
26549
26550func (s *NodeTypeList) MarshalJSON() ([]byte, error) {
26551	type NoMethod NodeTypeList
26552	raw := NoMethod(*s)
26553	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26554}
26555
26556// NodeTypeListWarning: [Output Only] Informational warning message.
26557type NodeTypeListWarning struct {
26558	// Code: [Output Only] A warning code, if applicable. For example,
26559	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26560	// the response.
26561	//
26562	// Possible values:
26563	//   "CLEANUP_FAILED"
26564	//   "DEPRECATED_RESOURCE_USED"
26565	//   "DEPRECATED_TYPE_USED"
26566	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26567	//   "EXPERIMENTAL_TYPE_USED"
26568	//   "EXTERNAL_API_WARNING"
26569	//   "FIELD_VALUE_OVERRIDEN"
26570	//   "INJECTED_KERNELS_DEPRECATED"
26571	//   "LARGE_DEPLOYMENT_WARNING"
26572	//   "MISSING_TYPE_DEPENDENCY"
26573	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26574	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26575	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26576	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26577	//   "NEXT_HOP_NOT_RUNNING"
26578	//   "NOT_CRITICAL_ERROR"
26579	//   "NO_RESULTS_ON_PAGE"
26580	//   "PARTIAL_SUCCESS"
26581	//   "REQUIRED_TOS_AGREEMENT"
26582	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26583	//   "RESOURCE_NOT_DELETED"
26584	//   "SCHEMA_VALIDATION_IGNORED"
26585	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26586	//   "UNDECLARED_PROPERTIES"
26587	//   "UNREACHABLE"
26588	Code string `json:"code,omitempty"`
26589
26590	// Data: [Output Only] Metadata about this warning in key: value format.
26591	// For example:
26592	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26593	Data []*NodeTypeListWarningData `json:"data,omitempty"`
26594
26595	// Message: [Output Only] A human-readable description of the warning
26596	// code.
26597	Message string `json:"message,omitempty"`
26598
26599	// ForceSendFields is a list of field names (e.g. "Code") to
26600	// unconditionally include in API requests. By default, fields with
26601	// empty values are omitted from API requests. However, any non-pointer,
26602	// non-interface field appearing in ForceSendFields will be sent to the
26603	// server regardless of whether the field is empty or not. This may be
26604	// used to include empty fields in Patch requests.
26605	ForceSendFields []string `json:"-"`
26606
26607	// NullFields is a list of field names (e.g. "Code") to include in API
26608	// requests with the JSON null value. By default, fields with empty
26609	// values are omitted from API requests. However, any field with an
26610	// empty value appearing in NullFields will be sent to the server as
26611	// null. It is an error if a field in this list has a non-empty value.
26612	// This may be used to include null fields in Patch requests.
26613	NullFields []string `json:"-"`
26614}
26615
26616func (s *NodeTypeListWarning) MarshalJSON() ([]byte, error) {
26617	type NoMethod NodeTypeListWarning
26618	raw := NoMethod(*s)
26619	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26620}
26621
26622type NodeTypeListWarningData struct {
26623	// Key: [Output Only] A key that provides more detail on the warning
26624	// being returned. For example, for warnings where there are no results
26625	// in a list request for a particular zone, this key might be scope and
26626	// the key value might be the zone name. Other examples might be a key
26627	// indicating a deprecated resource and a suggested replacement, or a
26628	// warning about invalid network settings (for example, if an instance
26629	// attempts to perform IP forwarding but is not enabled for IP
26630	// forwarding).
26631	Key string `json:"key,omitempty"`
26632
26633	// Value: [Output Only] A warning data value corresponding to the key.
26634	Value string `json:"value,omitempty"`
26635
26636	// ForceSendFields is a list of field names (e.g. "Key") to
26637	// unconditionally include in API requests. By default, fields with
26638	// empty values are omitted from API requests. However, any non-pointer,
26639	// non-interface field appearing in ForceSendFields will be sent to the
26640	// server regardless of whether the field is empty or not. This may be
26641	// used to include empty fields in Patch requests.
26642	ForceSendFields []string `json:"-"`
26643
26644	// NullFields is a list of field names (e.g. "Key") to include in API
26645	// requests with the JSON null value. By default, fields with empty
26646	// values are omitted from API requests. However, any field with an
26647	// empty value appearing in NullFields will be sent to the server as
26648	// null. It is an error if a field in this list has a non-empty value.
26649	// This may be used to include null fields in Patch requests.
26650	NullFields []string `json:"-"`
26651}
26652
26653func (s *NodeTypeListWarningData) MarshalJSON() ([]byte, error) {
26654	type NoMethod NodeTypeListWarningData
26655	raw := NoMethod(*s)
26656	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26657}
26658
26659type NodeTypesScopedList struct {
26660	// NodeTypes: [Output Only] A list of node types contained in this
26661	// scope.
26662	NodeTypes []*NodeType `json:"nodeTypes,omitempty"`
26663
26664	// Warning: [Output Only] An informational warning that appears when the
26665	// node types list is empty.
26666	Warning *NodeTypesScopedListWarning `json:"warning,omitempty"`
26667
26668	// ForceSendFields is a list of field names (e.g. "NodeTypes") to
26669	// unconditionally include in API requests. By default, fields with
26670	// empty values are omitted from API requests. However, any non-pointer,
26671	// non-interface field appearing in ForceSendFields will be sent to the
26672	// server regardless of whether the field is empty or not. This may be
26673	// used to include empty fields in Patch requests.
26674	ForceSendFields []string `json:"-"`
26675
26676	// NullFields is a list of field names (e.g. "NodeTypes") to include in
26677	// API requests with the JSON null value. By default, fields with empty
26678	// values are omitted from API requests. However, any field with an
26679	// empty value appearing in NullFields will be sent to the server as
26680	// null. It is an error if a field in this list has a non-empty value.
26681	// This may be used to include null fields in Patch requests.
26682	NullFields []string `json:"-"`
26683}
26684
26685func (s *NodeTypesScopedList) MarshalJSON() ([]byte, error) {
26686	type NoMethod NodeTypesScopedList
26687	raw := NoMethod(*s)
26688	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26689}
26690
26691// NodeTypesScopedListWarning: [Output Only] An informational warning
26692// that appears when the node types list is empty.
26693type NodeTypesScopedListWarning struct {
26694	// Code: [Output Only] A warning code, if applicable. For example,
26695	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26696	// the response.
26697	//
26698	// Possible values:
26699	//   "CLEANUP_FAILED"
26700	//   "DEPRECATED_RESOURCE_USED"
26701	//   "DEPRECATED_TYPE_USED"
26702	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26703	//   "EXPERIMENTAL_TYPE_USED"
26704	//   "EXTERNAL_API_WARNING"
26705	//   "FIELD_VALUE_OVERRIDEN"
26706	//   "INJECTED_KERNELS_DEPRECATED"
26707	//   "LARGE_DEPLOYMENT_WARNING"
26708	//   "MISSING_TYPE_DEPENDENCY"
26709	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26710	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26711	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26712	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26713	//   "NEXT_HOP_NOT_RUNNING"
26714	//   "NOT_CRITICAL_ERROR"
26715	//   "NO_RESULTS_ON_PAGE"
26716	//   "PARTIAL_SUCCESS"
26717	//   "REQUIRED_TOS_AGREEMENT"
26718	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26719	//   "RESOURCE_NOT_DELETED"
26720	//   "SCHEMA_VALIDATION_IGNORED"
26721	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26722	//   "UNDECLARED_PROPERTIES"
26723	//   "UNREACHABLE"
26724	Code string `json:"code,omitempty"`
26725
26726	// Data: [Output Only] Metadata about this warning in key: value format.
26727	// For example:
26728	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26729	Data []*NodeTypesScopedListWarningData `json:"data,omitempty"`
26730
26731	// Message: [Output Only] A human-readable description of the warning
26732	// code.
26733	Message string `json:"message,omitempty"`
26734
26735	// ForceSendFields is a list of field names (e.g. "Code") to
26736	// unconditionally include in API requests. By default, fields with
26737	// empty values are omitted from API requests. However, any non-pointer,
26738	// non-interface field appearing in ForceSendFields will be sent to the
26739	// server regardless of whether the field is empty or not. This may be
26740	// used to include empty fields in Patch requests.
26741	ForceSendFields []string `json:"-"`
26742
26743	// NullFields is a list of field names (e.g. "Code") to include in API
26744	// requests with the JSON null value. By default, fields with empty
26745	// values are omitted from API requests. However, any field with an
26746	// empty value appearing in NullFields will be sent to the server as
26747	// null. It is an error if a field in this list has a non-empty value.
26748	// This may be used to include null fields in Patch requests.
26749	NullFields []string `json:"-"`
26750}
26751
26752func (s *NodeTypesScopedListWarning) MarshalJSON() ([]byte, error) {
26753	type NoMethod NodeTypesScopedListWarning
26754	raw := NoMethod(*s)
26755	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26756}
26757
26758type NodeTypesScopedListWarningData struct {
26759	// Key: [Output Only] A key that provides more detail on the warning
26760	// being returned. For example, for warnings where there are no results
26761	// in a list request for a particular zone, this key might be scope and
26762	// the key value might be the zone name. Other examples might be a key
26763	// indicating a deprecated resource and a suggested replacement, or a
26764	// warning about invalid network settings (for example, if an instance
26765	// attempts to perform IP forwarding but is not enabled for IP
26766	// forwarding).
26767	Key string `json:"key,omitempty"`
26768
26769	// Value: [Output Only] A warning data value corresponding to the key.
26770	Value string `json:"value,omitempty"`
26771
26772	// ForceSendFields is a list of field names (e.g. "Key") to
26773	// unconditionally include in API requests. By default, fields with
26774	// empty values are omitted from API requests. However, any non-pointer,
26775	// non-interface field appearing in ForceSendFields will be sent to the
26776	// server regardless of whether the field is empty or not. This may be
26777	// used to include empty fields in Patch requests.
26778	ForceSendFields []string `json:"-"`
26779
26780	// NullFields is a list of field names (e.g. "Key") to include in API
26781	// requests with the JSON null value. By default, fields with empty
26782	// values are omitted from API requests. However, any field with an
26783	// empty value appearing in NullFields will be sent to the server as
26784	// null. It is an error if a field in this list has a non-empty value.
26785	// This may be used to include null fields in Patch requests.
26786	NullFields []string `json:"-"`
26787}
26788
26789func (s *NodeTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
26790	type NoMethod NodeTypesScopedListWarningData
26791	raw := NoMethod(*s)
26792	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26793}
26794
26795// NotificationEndpoint: Represents a notification endpoint.
26796//
26797// A notification endpoint resource defines an endpoint to receive
26798// notifications when there are status changes detected by the
26799// associated health check service.
26800//
26801// For more information, see  Health checks overview. (== resource_for
26802// {$api_version}.notificationEndpoint ==) (== resource_for
26803// {$api_version}.regionNotificationEndpoints ==)
26804type NotificationEndpoint struct {
26805	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
26806	// format.
26807	CreationTimestamp string `json:"creationTimestamp,omitempty"`
26808
26809	// Description: An optional description of this resource. Provide this
26810	// property when you create the resource.
26811	Description string `json:"description,omitempty"`
26812
26813	// GrpcSettings: Settings of the gRPC notification endpoint including
26814	// the endpoint URL and the retry duration.
26815	GrpcSettings *NotificationEndpointGrpcSettings `json:"grpcSettings,omitempty"`
26816
26817	// Id: [Output Only] A unique identifier for this resource type. The
26818	// server generates this identifier.
26819	Id uint64 `json:"id,omitempty,string"`
26820
26821	// Kind: [Output Only] Type of the resource. Always
26822	// compute#notificationEndpoint for notification endpoints.
26823	Kind string `json:"kind,omitempty"`
26824
26825	// Name: Name of the resource. Provided by the client when the resource
26826	// is created. The name must be 1-63 characters long, and comply with
26827	// RFC1035. Specifically, the name must be 1-63 characters long and
26828	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
26829	// the first character must be a lowercase letter, and all following
26830	// characters must be a dash, lowercase letter, or digit, except the
26831	// last character, which cannot be a dash.
26832	Name string `json:"name,omitempty"`
26833
26834	// Region: [Output Only] URL of the region where the notification
26835	// endpoint resides. This field applies only to the regional resource.
26836	// You must specify this field as part of the HTTP request URL. It is
26837	// not settable as a field in the request body.
26838	Region string `json:"region,omitempty"`
26839
26840	// SelfLink: [Output Only] Server-defined URL for the resource.
26841	SelfLink string `json:"selfLink,omitempty"`
26842
26843	// ServerResponse contains the HTTP response code and headers from the
26844	// server.
26845	googleapi.ServerResponse `json:"-"`
26846
26847	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
26848	// to unconditionally include in API requests. By default, fields with
26849	// empty values are omitted from API requests. However, any non-pointer,
26850	// non-interface field appearing in ForceSendFields will be sent to the
26851	// server regardless of whether the field is empty or not. This may be
26852	// used to include empty fields in Patch requests.
26853	ForceSendFields []string `json:"-"`
26854
26855	// NullFields is a list of field names (e.g. "CreationTimestamp") to
26856	// include in API requests with the JSON null value. By default, fields
26857	// with empty values are omitted from API requests. However, any field
26858	// with an empty value appearing in NullFields will be sent to the
26859	// server as null. It is an error if a field in this list has a
26860	// non-empty value. This may be used to include null fields in Patch
26861	// requests.
26862	NullFields []string `json:"-"`
26863}
26864
26865func (s *NotificationEndpoint) MarshalJSON() ([]byte, error) {
26866	type NoMethod NotificationEndpoint
26867	raw := NoMethod(*s)
26868	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26869}
26870
26871// NotificationEndpointGrpcSettings: Represents a gRPC setting that
26872// describes one gRPC notification endpoint and the retry duration
26873// attempting to send notification to this endpoint.
26874type NotificationEndpointGrpcSettings struct {
26875	// Authority: Optional. If specified, this field is used to set the
26876	// authority header by the sender of notifications. See
26877	// https://tools.ietf.org/html/rfc7540#section-8.1.2.3
26878	Authority string `json:"authority,omitempty"`
26879
26880	// Endpoint: Endpoint to which gRPC notifications are sent. This must be
26881	// a valid gRPCLB DNS name.
26882	Endpoint string `json:"endpoint,omitempty"`
26883
26884	// PayloadName: Optional. If specified, this field is used to populate
26885	// the "name" field in gRPC requests.
26886	PayloadName string `json:"payloadName,omitempty"`
26887
26888	// ResendInterval: Optional. This field is used to configure how often
26889	// to send a full update of all non-healthy backends. If unspecified,
26890	// full updates are not sent. If specified, must be in the range between
26891	// 600 seconds to 3600 seconds. Nanos are disallowed.
26892	ResendInterval *Duration `json:"resendInterval,omitempty"`
26893
26894	// RetryDurationSec: How much time (in seconds) is spent attempting
26895	// notification retries until a successful response is received. Default
26896	// is 30s. Limit is 20m (1200s). Must be a positive number.
26897	RetryDurationSec int64 `json:"retryDurationSec,omitempty"`
26898
26899	// ForceSendFields is a list of field names (e.g. "Authority") to
26900	// unconditionally include in API requests. By default, fields with
26901	// empty values are omitted from API requests. However, any non-pointer,
26902	// non-interface field appearing in ForceSendFields will be sent to the
26903	// server regardless of whether the field is empty or not. This may be
26904	// used to include empty fields in Patch requests.
26905	ForceSendFields []string `json:"-"`
26906
26907	// NullFields is a list of field names (e.g. "Authority") to include in
26908	// API requests with the JSON null value. By default, fields with empty
26909	// values are omitted from API requests. However, any field with an
26910	// empty value appearing in NullFields will be sent to the server as
26911	// null. It is an error if a field in this list has a non-empty value.
26912	// This may be used to include null fields in Patch requests.
26913	NullFields []string `json:"-"`
26914}
26915
26916func (s *NotificationEndpointGrpcSettings) MarshalJSON() ([]byte, error) {
26917	type NoMethod NotificationEndpointGrpcSettings
26918	raw := NoMethod(*s)
26919	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26920}
26921
26922type NotificationEndpointList struct {
26923	// Id: [Output Only] Unique identifier for the resource; defined by the
26924	// server.
26925	Id string `json:"id,omitempty"`
26926
26927	// Items: A list of NotificationEndpoint resources.
26928	Items []*NotificationEndpoint `json:"items,omitempty"`
26929
26930	// Kind: [Output Only] Type of the resource. Always
26931	// compute#notificationEndpoint for notification endpoints.
26932	Kind string `json:"kind,omitempty"`
26933
26934	// NextPageToken: [Output Only] This token allows you to get the next
26935	// page of results for list requests. If the number of results is larger
26936	// than maxResults, use the nextPageToken as a value for the query
26937	// parameter pageToken in the next list request. Subsequent list
26938	// requests will have their own nextPageToken to continue paging through
26939	// the results.
26940	NextPageToken string `json:"nextPageToken,omitempty"`
26941
26942	// SelfLink: [Output Only] Server-defined URL for this resource.
26943	SelfLink string `json:"selfLink,omitempty"`
26944
26945	// Warning: [Output Only] Informational warning message.
26946	Warning *NotificationEndpointListWarning `json:"warning,omitempty"`
26947
26948	// ServerResponse contains the HTTP response code and headers from the
26949	// server.
26950	googleapi.ServerResponse `json:"-"`
26951
26952	// ForceSendFields is a list of field names (e.g. "Id") to
26953	// unconditionally include in API requests. By default, fields with
26954	// empty values are omitted from API requests. However, any non-pointer,
26955	// non-interface field appearing in ForceSendFields will be sent to the
26956	// server regardless of whether the field is empty or not. This may be
26957	// used to include empty fields in Patch requests.
26958	ForceSendFields []string `json:"-"`
26959
26960	// NullFields is a list of field names (e.g. "Id") to include in API
26961	// requests with the JSON null value. By default, fields with empty
26962	// values are omitted from API requests. However, any field with an
26963	// empty value appearing in NullFields will be sent to the server as
26964	// null. It is an error if a field in this list has a non-empty value.
26965	// This may be used to include null fields in Patch requests.
26966	NullFields []string `json:"-"`
26967}
26968
26969func (s *NotificationEndpointList) MarshalJSON() ([]byte, error) {
26970	type NoMethod NotificationEndpointList
26971	raw := NoMethod(*s)
26972	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26973}
26974
26975// NotificationEndpointListWarning: [Output Only] Informational warning
26976// message.
26977type NotificationEndpointListWarning struct {
26978	// Code: [Output Only] A warning code, if applicable. For example,
26979	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26980	// the response.
26981	//
26982	// Possible values:
26983	//   "CLEANUP_FAILED"
26984	//   "DEPRECATED_RESOURCE_USED"
26985	//   "DEPRECATED_TYPE_USED"
26986	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26987	//   "EXPERIMENTAL_TYPE_USED"
26988	//   "EXTERNAL_API_WARNING"
26989	//   "FIELD_VALUE_OVERRIDEN"
26990	//   "INJECTED_KERNELS_DEPRECATED"
26991	//   "LARGE_DEPLOYMENT_WARNING"
26992	//   "MISSING_TYPE_DEPENDENCY"
26993	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26994	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26995	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26996	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26997	//   "NEXT_HOP_NOT_RUNNING"
26998	//   "NOT_CRITICAL_ERROR"
26999	//   "NO_RESULTS_ON_PAGE"
27000	//   "PARTIAL_SUCCESS"
27001	//   "REQUIRED_TOS_AGREEMENT"
27002	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27003	//   "RESOURCE_NOT_DELETED"
27004	//   "SCHEMA_VALIDATION_IGNORED"
27005	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27006	//   "UNDECLARED_PROPERTIES"
27007	//   "UNREACHABLE"
27008	Code string `json:"code,omitempty"`
27009
27010	// Data: [Output Only] Metadata about this warning in key: value format.
27011	// For example:
27012	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27013	Data []*NotificationEndpointListWarningData `json:"data,omitempty"`
27014
27015	// Message: [Output Only] A human-readable description of the warning
27016	// code.
27017	Message string `json:"message,omitempty"`
27018
27019	// ForceSendFields is a list of field names (e.g. "Code") to
27020	// unconditionally include in API requests. By default, fields with
27021	// empty values are omitted from API requests. However, any non-pointer,
27022	// non-interface field appearing in ForceSendFields will be sent to the
27023	// server regardless of whether the field is empty or not. This may be
27024	// used to include empty fields in Patch requests.
27025	ForceSendFields []string `json:"-"`
27026
27027	// NullFields is a list of field names (e.g. "Code") to include in API
27028	// requests with the JSON null value. By default, fields with empty
27029	// values are omitted from API requests. However, any field with an
27030	// empty value appearing in NullFields will be sent to the server as
27031	// null. It is an error if a field in this list has a non-empty value.
27032	// This may be used to include null fields in Patch requests.
27033	NullFields []string `json:"-"`
27034}
27035
27036func (s *NotificationEndpointListWarning) MarshalJSON() ([]byte, error) {
27037	type NoMethod NotificationEndpointListWarning
27038	raw := NoMethod(*s)
27039	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27040}
27041
27042type NotificationEndpointListWarningData struct {
27043	// Key: [Output Only] A key that provides more detail on the warning
27044	// being returned. For example, for warnings where there are no results
27045	// in a list request for a particular zone, this key might be scope and
27046	// the key value might be the zone name. Other examples might be a key
27047	// indicating a deprecated resource and a suggested replacement, or a
27048	// warning about invalid network settings (for example, if an instance
27049	// attempts to perform IP forwarding but is not enabled for IP
27050	// forwarding).
27051	Key string `json:"key,omitempty"`
27052
27053	// Value: [Output Only] A warning data value corresponding to the key.
27054	Value string `json:"value,omitempty"`
27055
27056	// ForceSendFields is a list of field names (e.g. "Key") to
27057	// unconditionally include in API requests. By default, fields with
27058	// empty values are omitted from API requests. However, any non-pointer,
27059	// non-interface field appearing in ForceSendFields will be sent to the
27060	// server regardless of whether the field is empty or not. This may be
27061	// used to include empty fields in Patch requests.
27062	ForceSendFields []string `json:"-"`
27063
27064	// NullFields is a list of field names (e.g. "Key") to include in API
27065	// requests with the JSON null value. By default, fields with empty
27066	// values are omitted from API requests. However, any field with an
27067	// empty value appearing in NullFields will be sent to the server as
27068	// null. It is an error if a field in this list has a non-empty value.
27069	// This may be used to include null fields in Patch requests.
27070	NullFields []string `json:"-"`
27071}
27072
27073func (s *NotificationEndpointListWarningData) MarshalJSON() ([]byte, error) {
27074	type NoMethod NotificationEndpointListWarningData
27075	raw := NoMethod(*s)
27076	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27077}
27078
27079// Operation: Represents an Operation resource.
27080//
27081// Google Compute Engine has three Operation resources:
27082//
27083// * Global
27084// (/compute/docs/reference/rest/{$api_version}/globalOperations) *
27085// Regional
27086// (/compute/docs/reference/rest/{$api_version}/regionOperations) *
27087// Zonal
27088// (/compute/docs/reference/rest/{$api_version}/zoneOperations)
27089//
27090// You can use an operation resource to manage asynchronous API
27091// requests. For more information, read Handling API
27092// responses.
27093//
27094// Operations can be global, regional or zonal.
27095// - For global operations, use the `globalOperations` resource.
27096// - For regional operations, use the `regionOperations` resource.
27097// - For zonal operations, use the `zonalOperations` resource.
27098//
27099// For more information, read  Global, Regional, and Zonal Resources.
27100// (== resource_for {$api_version}.globalOperations ==) (== resource_for
27101// {$api_version}.regionOperations ==) (== resource_for
27102// {$api_version}.zoneOperations ==)
27103type Operation struct {
27104	// ClientOperationId: [Output Only] The value of `requestId` if you
27105	// provided it in the request. Not present otherwise.
27106	ClientOperationId string `json:"clientOperationId,omitempty"`
27107
27108	// CreationTimestamp: [Deprecated] This field is deprecated.
27109	CreationTimestamp string `json:"creationTimestamp,omitempty"`
27110
27111	// Description: [Output Only] A textual description of the operation,
27112	// which is set when the operation is created.
27113	Description string `json:"description,omitempty"`
27114
27115	// EndTime: [Output Only] The time that this operation was completed.
27116	// This value is in RFC3339 text format.
27117	EndTime string `json:"endTime,omitempty"`
27118
27119	// Error: [Output Only] If errors are generated during processing of the
27120	// operation, this field will be populated.
27121	Error *OperationError `json:"error,omitempty"`
27122
27123	// HttpErrorMessage: [Output Only] If the operation fails, this field
27124	// contains the HTTP error message that was returned, such as `NOT
27125	// FOUND`.
27126	HttpErrorMessage string `json:"httpErrorMessage,omitempty"`
27127
27128	// HttpErrorStatusCode: [Output Only] If the operation fails, this field
27129	// contains the HTTP error status code that was returned. For example, a
27130	// `404` means the resource was not found.
27131	HttpErrorStatusCode int64 `json:"httpErrorStatusCode,omitempty"`
27132
27133	// Id: [Output Only] The unique identifier for the operation. This
27134	// identifier is defined by the server.
27135	Id uint64 `json:"id,omitempty,string"`
27136
27137	// InsertTime: [Output Only] The time that this operation was requested.
27138	// This value is in RFC3339 text format.
27139	InsertTime string `json:"insertTime,omitempty"`
27140
27141	// Kind: [Output Only] Type of the resource. Always `compute#operation`
27142	// for Operation resources.
27143	Kind string `json:"kind,omitempty"`
27144
27145	// Name: [Output Only] Name of the operation.
27146	Name string `json:"name,omitempty"`
27147
27148	// OperationGroupId: [Output Only] An ID that represents a group of
27149	// operations, such as when a group of operations results from a
27150	// `bulkInsert` API request.
27151	OperationGroupId string `json:"operationGroupId,omitempty"`
27152
27153	// OperationType: [Output Only] The type of operation, such as `insert`,
27154	// `update`, or `delete`, and so on.
27155	OperationType string `json:"operationType,omitempty"`
27156
27157	// Progress: [Output Only] An optional progress indicator that ranges
27158	// from 0 to 100. There is no requirement that this be linear or support
27159	// any granularity of operations. This should not be used to guess when
27160	// the operation will be complete. This number should monotonically
27161	// increase as the operation progresses.
27162	Progress int64 `json:"progress,omitempty"`
27163
27164	// Region: [Output Only] The URL of the region where the operation
27165	// resides. Only applicable when performing regional operations.
27166	Region string `json:"region,omitempty"`
27167
27168	// SelfLink: [Output Only] Server-defined URL for the resource.
27169	SelfLink string `json:"selfLink,omitempty"`
27170
27171	// StartTime: [Output Only] The time that this operation was started by
27172	// the server. This value is in RFC3339 text format.
27173	StartTime string `json:"startTime,omitempty"`
27174
27175	// Status: [Output Only] The status of the operation, which can be one
27176	// of the following: `PENDING`, `RUNNING`, or `DONE`.
27177	//
27178	// Possible values:
27179	//   "DONE"
27180	//   "PENDING"
27181	//   "RUNNING"
27182	Status string `json:"status,omitempty"`
27183
27184	// StatusMessage: [Output Only] An optional textual description of the
27185	// current status of the operation.
27186	StatusMessage string `json:"statusMessage,omitempty"`
27187
27188	// TargetId: [Output Only] The unique target ID, which identifies a
27189	// specific incarnation of the target resource.
27190	TargetId uint64 `json:"targetId,omitempty,string"`
27191
27192	// TargetLink: [Output Only] The URL of the resource that the operation
27193	// modifies. For operations related to creating a snapshot, this points
27194	// to the persistent disk that the snapshot was created from.
27195	TargetLink string `json:"targetLink,omitempty"`
27196
27197	// User: [Output Only] User who requested the operation, for example:
27198	// `user@example.com`.
27199	User string `json:"user,omitempty"`
27200
27201	// Warnings: [Output Only] If warning messages are generated during
27202	// processing of the operation, this field will be populated.
27203	Warnings []*OperationWarnings `json:"warnings,omitempty"`
27204
27205	// Zone: [Output Only] The URL of the zone where the operation resides.
27206	// Only applicable when performing per-zone operations.
27207	Zone string `json:"zone,omitempty"`
27208
27209	// ServerResponse contains the HTTP response code and headers from the
27210	// server.
27211	googleapi.ServerResponse `json:"-"`
27212
27213	// ForceSendFields is a list of field names (e.g. "ClientOperationId")
27214	// to unconditionally include in API requests. By default, fields with
27215	// empty values are omitted from API requests. However, any non-pointer,
27216	// non-interface field appearing in ForceSendFields will be sent to the
27217	// server regardless of whether the field is empty or not. This may be
27218	// used to include empty fields in Patch requests.
27219	ForceSendFields []string `json:"-"`
27220
27221	// NullFields is a list of field names (e.g. "ClientOperationId") to
27222	// include in API requests with the JSON null value. By default, fields
27223	// with empty values are omitted from API requests. However, any field
27224	// with an empty value appearing in NullFields will be sent to the
27225	// server as null. It is an error if a field in this list has a
27226	// non-empty value. This may be used to include null fields in Patch
27227	// requests.
27228	NullFields []string `json:"-"`
27229}
27230
27231func (s *Operation) MarshalJSON() ([]byte, error) {
27232	type NoMethod Operation
27233	raw := NoMethod(*s)
27234	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27235}
27236
27237// OperationError: [Output Only] If errors are generated during
27238// processing of the operation, this field will be populated.
27239type OperationError struct {
27240	// Errors: [Output Only] The array of errors encountered while
27241	// processing this operation.
27242	Errors []*OperationErrorErrors `json:"errors,omitempty"`
27243
27244	// ForceSendFields is a list of field names (e.g. "Errors") to
27245	// unconditionally include in API requests. By default, fields with
27246	// empty values are omitted from API requests. However, any non-pointer,
27247	// non-interface field appearing in ForceSendFields will be sent to the
27248	// server regardless of whether the field is empty or not. This may be
27249	// used to include empty fields in Patch requests.
27250	ForceSendFields []string `json:"-"`
27251
27252	// NullFields is a list of field names (e.g. "Errors") to include in API
27253	// requests with the JSON null value. By default, fields with empty
27254	// values are omitted from API requests. However, any field with an
27255	// empty value appearing in NullFields will be sent to the server as
27256	// null. It is an error if a field in this list has a non-empty value.
27257	// This may be used to include null fields in Patch requests.
27258	NullFields []string `json:"-"`
27259}
27260
27261func (s *OperationError) MarshalJSON() ([]byte, error) {
27262	type NoMethod OperationError
27263	raw := NoMethod(*s)
27264	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27265}
27266
27267type OperationErrorErrors struct {
27268	// Code: [Output Only] The error type identifier for this error.
27269	Code string `json:"code,omitempty"`
27270
27271	// Location: [Output Only] Indicates the field in the request that
27272	// caused the error. This property is optional.
27273	Location string `json:"location,omitempty"`
27274
27275	// Message: [Output Only] An optional, human-readable error message.
27276	Message string `json:"message,omitempty"`
27277
27278	// ForceSendFields is a list of field names (e.g. "Code") to
27279	// unconditionally include in API requests. By default, fields with
27280	// empty values are omitted from API requests. However, any non-pointer,
27281	// non-interface field appearing in ForceSendFields will be sent to the
27282	// server regardless of whether the field is empty or not. This may be
27283	// used to include empty fields in Patch requests.
27284	ForceSendFields []string `json:"-"`
27285
27286	// NullFields is a list of field names (e.g. "Code") to include in API
27287	// requests with the JSON null value. By default, fields with empty
27288	// values are omitted from API requests. However, any field with an
27289	// empty value appearing in NullFields will be sent to the server as
27290	// null. It is an error if a field in this list has a non-empty value.
27291	// This may be used to include null fields in Patch requests.
27292	NullFields []string `json:"-"`
27293}
27294
27295func (s *OperationErrorErrors) MarshalJSON() ([]byte, error) {
27296	type NoMethod OperationErrorErrors
27297	raw := NoMethod(*s)
27298	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27299}
27300
27301type OperationWarnings struct {
27302	// Code: [Output Only] A warning code, if applicable. For example,
27303	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27304	// the response.
27305	//
27306	// Possible values:
27307	//   "CLEANUP_FAILED"
27308	//   "DEPRECATED_RESOURCE_USED"
27309	//   "DEPRECATED_TYPE_USED"
27310	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27311	//   "EXPERIMENTAL_TYPE_USED"
27312	//   "EXTERNAL_API_WARNING"
27313	//   "FIELD_VALUE_OVERRIDEN"
27314	//   "INJECTED_KERNELS_DEPRECATED"
27315	//   "LARGE_DEPLOYMENT_WARNING"
27316	//   "MISSING_TYPE_DEPENDENCY"
27317	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27318	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27319	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27320	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27321	//   "NEXT_HOP_NOT_RUNNING"
27322	//   "NOT_CRITICAL_ERROR"
27323	//   "NO_RESULTS_ON_PAGE"
27324	//   "PARTIAL_SUCCESS"
27325	//   "REQUIRED_TOS_AGREEMENT"
27326	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27327	//   "RESOURCE_NOT_DELETED"
27328	//   "SCHEMA_VALIDATION_IGNORED"
27329	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27330	//   "UNDECLARED_PROPERTIES"
27331	//   "UNREACHABLE"
27332	Code string `json:"code,omitempty"`
27333
27334	// Data: [Output Only] Metadata about this warning in key: value format.
27335	// For example:
27336	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27337	Data []*OperationWarningsData `json:"data,omitempty"`
27338
27339	// Message: [Output Only] A human-readable description of the warning
27340	// code.
27341	Message string `json:"message,omitempty"`
27342
27343	// ForceSendFields is a list of field names (e.g. "Code") to
27344	// unconditionally include in API requests. By default, fields with
27345	// empty values are omitted from API requests. However, any non-pointer,
27346	// non-interface field appearing in ForceSendFields will be sent to the
27347	// server regardless of whether the field is empty or not. This may be
27348	// used to include empty fields in Patch requests.
27349	ForceSendFields []string `json:"-"`
27350
27351	// NullFields is a list of field names (e.g. "Code") to include in API
27352	// requests with the JSON null value. By default, fields with empty
27353	// values are omitted from API requests. However, any field with an
27354	// empty value appearing in NullFields will be sent to the server as
27355	// null. It is an error if a field in this list has a non-empty value.
27356	// This may be used to include null fields in Patch requests.
27357	NullFields []string `json:"-"`
27358}
27359
27360func (s *OperationWarnings) MarshalJSON() ([]byte, error) {
27361	type NoMethod OperationWarnings
27362	raw := NoMethod(*s)
27363	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27364}
27365
27366type OperationWarningsData struct {
27367	// Key: [Output Only] A key that provides more detail on the warning
27368	// being returned. For example, for warnings where there are no results
27369	// in a list request for a particular zone, this key might be scope and
27370	// the key value might be the zone name. Other examples might be a key
27371	// indicating a deprecated resource and a suggested replacement, or a
27372	// warning about invalid network settings (for example, if an instance
27373	// attempts to perform IP forwarding but is not enabled for IP
27374	// forwarding).
27375	Key string `json:"key,omitempty"`
27376
27377	// Value: [Output Only] A warning data value corresponding to the key.
27378	Value string `json:"value,omitempty"`
27379
27380	// ForceSendFields is a list of field names (e.g. "Key") to
27381	// unconditionally include in API requests. By default, fields with
27382	// empty values are omitted from API requests. However, any non-pointer,
27383	// non-interface field appearing in ForceSendFields will be sent to the
27384	// server regardless of whether the field is empty or not. This may be
27385	// used to include empty fields in Patch requests.
27386	ForceSendFields []string `json:"-"`
27387
27388	// NullFields is a list of field names (e.g. "Key") to include in API
27389	// requests with the JSON null value. By default, fields with empty
27390	// values are omitted from API requests. However, any field with an
27391	// empty value appearing in NullFields will be sent to the server as
27392	// null. It is an error if a field in this list has a non-empty value.
27393	// This may be used to include null fields in Patch requests.
27394	NullFields []string `json:"-"`
27395}
27396
27397func (s *OperationWarningsData) MarshalJSON() ([]byte, error) {
27398	type NoMethod OperationWarningsData
27399	raw := NoMethod(*s)
27400	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27401}
27402
27403type OperationAggregatedList struct {
27404	// Id: [Output Only] The unique identifier for the resource. This
27405	// identifier is defined by the server.
27406	Id string `json:"id,omitempty"`
27407
27408	// Items: [Output Only] A map of scoped operation lists.
27409	Items map[string]OperationsScopedList `json:"items,omitempty"`
27410
27411	// Kind: [Output Only] Type of resource. Always
27412	// `compute#operationAggregatedList` for aggregated lists of operations.
27413	Kind string `json:"kind,omitempty"`
27414
27415	// NextPageToken: [Output Only] This token allows you to get the next
27416	// page of results for list requests. If the number of results is larger
27417	// than `maxResults`, use the `nextPageToken` as a value for the query
27418	// parameter `pageToken` in the next list request. Subsequent list
27419	// requests will have their own `nextPageToken` to continue paging
27420	// through the results.
27421	NextPageToken string `json:"nextPageToken,omitempty"`
27422
27423	// SelfLink: [Output Only] Server-defined URL for this resource.
27424	SelfLink string `json:"selfLink,omitempty"`
27425
27426	// Unreachables: [Output Only] Unreachable resources.
27427	Unreachables []string `json:"unreachables,omitempty"`
27428
27429	// Warning: [Output Only] Informational warning message.
27430	Warning *OperationAggregatedListWarning `json:"warning,omitempty"`
27431
27432	// ServerResponse contains the HTTP response code and headers from the
27433	// server.
27434	googleapi.ServerResponse `json:"-"`
27435
27436	// ForceSendFields is a list of field names (e.g. "Id") to
27437	// unconditionally include in API requests. By default, fields with
27438	// empty values are omitted from API requests. However, any non-pointer,
27439	// non-interface field appearing in ForceSendFields will be sent to the
27440	// server regardless of whether the field is empty or not. This may be
27441	// used to include empty fields in Patch requests.
27442	ForceSendFields []string `json:"-"`
27443
27444	// NullFields is a list of field names (e.g. "Id") to include in API
27445	// requests with the JSON null value. By default, fields with empty
27446	// values are omitted from API requests. However, any field with an
27447	// empty value appearing in NullFields will be sent to the server as
27448	// null. It is an error if a field in this list has a non-empty value.
27449	// This may be used to include null fields in Patch requests.
27450	NullFields []string `json:"-"`
27451}
27452
27453func (s *OperationAggregatedList) MarshalJSON() ([]byte, error) {
27454	type NoMethod OperationAggregatedList
27455	raw := NoMethod(*s)
27456	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27457}
27458
27459// OperationAggregatedListWarning: [Output Only] Informational warning
27460// message.
27461type OperationAggregatedListWarning struct {
27462	// Code: [Output Only] A warning code, if applicable. For example,
27463	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27464	// the response.
27465	//
27466	// Possible values:
27467	//   "CLEANUP_FAILED"
27468	//   "DEPRECATED_RESOURCE_USED"
27469	//   "DEPRECATED_TYPE_USED"
27470	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27471	//   "EXPERIMENTAL_TYPE_USED"
27472	//   "EXTERNAL_API_WARNING"
27473	//   "FIELD_VALUE_OVERRIDEN"
27474	//   "INJECTED_KERNELS_DEPRECATED"
27475	//   "LARGE_DEPLOYMENT_WARNING"
27476	//   "MISSING_TYPE_DEPENDENCY"
27477	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27478	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27479	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27480	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27481	//   "NEXT_HOP_NOT_RUNNING"
27482	//   "NOT_CRITICAL_ERROR"
27483	//   "NO_RESULTS_ON_PAGE"
27484	//   "PARTIAL_SUCCESS"
27485	//   "REQUIRED_TOS_AGREEMENT"
27486	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27487	//   "RESOURCE_NOT_DELETED"
27488	//   "SCHEMA_VALIDATION_IGNORED"
27489	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27490	//   "UNDECLARED_PROPERTIES"
27491	//   "UNREACHABLE"
27492	Code string `json:"code,omitempty"`
27493
27494	// Data: [Output Only] Metadata about this warning in key: value format.
27495	// For example:
27496	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27497	Data []*OperationAggregatedListWarningData `json:"data,omitempty"`
27498
27499	// Message: [Output Only] A human-readable description of the warning
27500	// code.
27501	Message string `json:"message,omitempty"`
27502
27503	// ForceSendFields is a list of field names (e.g. "Code") to
27504	// unconditionally include in API requests. By default, fields with
27505	// empty values are omitted from API requests. However, any non-pointer,
27506	// non-interface field appearing in ForceSendFields will be sent to the
27507	// server regardless of whether the field is empty or not. This may be
27508	// used to include empty fields in Patch requests.
27509	ForceSendFields []string `json:"-"`
27510
27511	// NullFields is a list of field names (e.g. "Code") to include in API
27512	// requests with the JSON null value. By default, fields with empty
27513	// values are omitted from API requests. However, any field with an
27514	// empty value appearing in NullFields will be sent to the server as
27515	// null. It is an error if a field in this list has a non-empty value.
27516	// This may be used to include null fields in Patch requests.
27517	NullFields []string `json:"-"`
27518}
27519
27520func (s *OperationAggregatedListWarning) MarshalJSON() ([]byte, error) {
27521	type NoMethod OperationAggregatedListWarning
27522	raw := NoMethod(*s)
27523	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27524}
27525
27526type OperationAggregatedListWarningData struct {
27527	// Key: [Output Only] A key that provides more detail on the warning
27528	// being returned. For example, for warnings where there are no results
27529	// in a list request for a particular zone, this key might be scope and
27530	// the key value might be the zone name. Other examples might be a key
27531	// indicating a deprecated resource and a suggested replacement, or a
27532	// warning about invalid network settings (for example, if an instance
27533	// attempts to perform IP forwarding but is not enabled for IP
27534	// forwarding).
27535	Key string `json:"key,omitempty"`
27536
27537	// Value: [Output Only] A warning data value corresponding to the key.
27538	Value string `json:"value,omitempty"`
27539
27540	// ForceSendFields is a list of field names (e.g. "Key") to
27541	// unconditionally include in API requests. By default, fields with
27542	// empty values are omitted from API requests. However, any non-pointer,
27543	// non-interface field appearing in ForceSendFields will be sent to the
27544	// server regardless of whether the field is empty or not. This may be
27545	// used to include empty fields in Patch requests.
27546	ForceSendFields []string `json:"-"`
27547
27548	// NullFields is a list of field names (e.g. "Key") to include in API
27549	// requests with the JSON null value. By default, fields with empty
27550	// values are omitted from API requests. However, any field with an
27551	// empty value appearing in NullFields will be sent to the server as
27552	// null. It is an error if a field in this list has a non-empty value.
27553	// This may be used to include null fields in Patch requests.
27554	NullFields []string `json:"-"`
27555}
27556
27557func (s *OperationAggregatedListWarningData) MarshalJSON() ([]byte, error) {
27558	type NoMethod OperationAggregatedListWarningData
27559	raw := NoMethod(*s)
27560	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27561}
27562
27563// OperationList: Contains a list of Operation resources.
27564type OperationList struct {
27565	// Id: [Output Only] The unique identifier for the resource. This
27566	// identifier is defined by the server.
27567	Id string `json:"id,omitempty"`
27568
27569	// Items: [Output Only] A list of Operation resources.
27570	Items []*Operation `json:"items,omitempty"`
27571
27572	// Kind: [Output Only] Type of resource. Always `compute#operations` for
27573	// Operations resource.
27574	Kind string `json:"kind,omitempty"`
27575
27576	// NextPageToken: [Output Only] This token allows you to get the next
27577	// page of results for list requests. If the number of results is larger
27578	// than `maxResults`, use the `nextPageToken` as a value for the query
27579	// parameter `pageToken` in the next list request. Subsequent list
27580	// requests will have their own `nextPageToken` to continue paging
27581	// through the results.
27582	NextPageToken string `json:"nextPageToken,omitempty"`
27583
27584	// SelfLink: [Output Only] Server-defined URL for this resource.
27585	SelfLink string `json:"selfLink,omitempty"`
27586
27587	// Warning: [Output Only] Informational warning message.
27588	Warning *OperationListWarning `json:"warning,omitempty"`
27589
27590	// ServerResponse contains the HTTP response code and headers from the
27591	// server.
27592	googleapi.ServerResponse `json:"-"`
27593
27594	// ForceSendFields is a list of field names (e.g. "Id") to
27595	// unconditionally include in API requests. By default, fields with
27596	// empty values are omitted from API requests. However, any non-pointer,
27597	// non-interface field appearing in ForceSendFields will be sent to the
27598	// server regardless of whether the field is empty or not. This may be
27599	// used to include empty fields in Patch requests.
27600	ForceSendFields []string `json:"-"`
27601
27602	// NullFields is a list of field names (e.g. "Id") to include in API
27603	// requests with the JSON null value. By default, fields with empty
27604	// values are omitted from API requests. However, any field with an
27605	// empty value appearing in NullFields will be sent to the server as
27606	// null. It is an error if a field in this list has a non-empty value.
27607	// This may be used to include null fields in Patch requests.
27608	NullFields []string `json:"-"`
27609}
27610
27611func (s *OperationList) MarshalJSON() ([]byte, error) {
27612	type NoMethod OperationList
27613	raw := NoMethod(*s)
27614	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27615}
27616
27617// OperationListWarning: [Output Only] Informational warning message.
27618type OperationListWarning struct {
27619	// Code: [Output Only] A warning code, if applicable. For example,
27620	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27621	// the response.
27622	//
27623	// Possible values:
27624	//   "CLEANUP_FAILED"
27625	//   "DEPRECATED_RESOURCE_USED"
27626	//   "DEPRECATED_TYPE_USED"
27627	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27628	//   "EXPERIMENTAL_TYPE_USED"
27629	//   "EXTERNAL_API_WARNING"
27630	//   "FIELD_VALUE_OVERRIDEN"
27631	//   "INJECTED_KERNELS_DEPRECATED"
27632	//   "LARGE_DEPLOYMENT_WARNING"
27633	//   "MISSING_TYPE_DEPENDENCY"
27634	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27635	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27636	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27637	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27638	//   "NEXT_HOP_NOT_RUNNING"
27639	//   "NOT_CRITICAL_ERROR"
27640	//   "NO_RESULTS_ON_PAGE"
27641	//   "PARTIAL_SUCCESS"
27642	//   "REQUIRED_TOS_AGREEMENT"
27643	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27644	//   "RESOURCE_NOT_DELETED"
27645	//   "SCHEMA_VALIDATION_IGNORED"
27646	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27647	//   "UNDECLARED_PROPERTIES"
27648	//   "UNREACHABLE"
27649	Code string `json:"code,omitempty"`
27650
27651	// Data: [Output Only] Metadata about this warning in key: value format.
27652	// For example:
27653	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27654	Data []*OperationListWarningData `json:"data,omitempty"`
27655
27656	// Message: [Output Only] A human-readable description of the warning
27657	// code.
27658	Message string `json:"message,omitempty"`
27659
27660	// ForceSendFields is a list of field names (e.g. "Code") to
27661	// unconditionally include in API requests. By default, fields with
27662	// empty values are omitted from API requests. However, any non-pointer,
27663	// non-interface field appearing in ForceSendFields will be sent to the
27664	// server regardless of whether the field is empty or not. This may be
27665	// used to include empty fields in Patch requests.
27666	ForceSendFields []string `json:"-"`
27667
27668	// NullFields is a list of field names (e.g. "Code") to include in API
27669	// requests with the JSON null value. By default, fields with empty
27670	// values are omitted from API requests. However, any field with an
27671	// empty value appearing in NullFields will be sent to the server as
27672	// null. It is an error if a field in this list has a non-empty value.
27673	// This may be used to include null fields in Patch requests.
27674	NullFields []string `json:"-"`
27675}
27676
27677func (s *OperationListWarning) MarshalJSON() ([]byte, error) {
27678	type NoMethod OperationListWarning
27679	raw := NoMethod(*s)
27680	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27681}
27682
27683type OperationListWarningData struct {
27684	// Key: [Output Only] A key that provides more detail on the warning
27685	// being returned. For example, for warnings where there are no results
27686	// in a list request for a particular zone, this key might be scope and
27687	// the key value might be the zone name. Other examples might be a key
27688	// indicating a deprecated resource and a suggested replacement, or a
27689	// warning about invalid network settings (for example, if an instance
27690	// attempts to perform IP forwarding but is not enabled for IP
27691	// forwarding).
27692	Key string `json:"key,omitempty"`
27693
27694	// Value: [Output Only] A warning data value corresponding to the key.
27695	Value string `json:"value,omitempty"`
27696
27697	// ForceSendFields is a list of field names (e.g. "Key") to
27698	// unconditionally include in API requests. By default, fields with
27699	// empty values are omitted from API requests. However, any non-pointer,
27700	// non-interface field appearing in ForceSendFields will be sent to the
27701	// server regardless of whether the field is empty or not. This may be
27702	// used to include empty fields in Patch requests.
27703	ForceSendFields []string `json:"-"`
27704
27705	// NullFields is a list of field names (e.g. "Key") to include in API
27706	// requests with the JSON null value. By default, fields with empty
27707	// values are omitted from API requests. However, any field with an
27708	// empty value appearing in NullFields will be sent to the server as
27709	// null. It is an error if a field in this list has a non-empty value.
27710	// This may be used to include null fields in Patch requests.
27711	NullFields []string `json:"-"`
27712}
27713
27714func (s *OperationListWarningData) MarshalJSON() ([]byte, error) {
27715	type NoMethod OperationListWarningData
27716	raw := NoMethod(*s)
27717	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27718}
27719
27720type OperationsScopedList struct {
27721	// Operations: [Output Only] A list of operations contained in this
27722	// scope.
27723	Operations []*Operation `json:"operations,omitempty"`
27724
27725	// Warning: [Output Only] Informational warning which replaces the list
27726	// of operations when the list is empty.
27727	Warning *OperationsScopedListWarning `json:"warning,omitempty"`
27728
27729	// ForceSendFields is a list of field names (e.g. "Operations") to
27730	// unconditionally include in API requests. By default, fields with
27731	// empty values are omitted from API requests. However, any non-pointer,
27732	// non-interface field appearing in ForceSendFields will be sent to the
27733	// server regardless of whether the field is empty or not. This may be
27734	// used to include empty fields in Patch requests.
27735	ForceSendFields []string `json:"-"`
27736
27737	// NullFields is a list of field names (e.g. "Operations") to include in
27738	// API requests with the JSON null value. By default, fields with empty
27739	// values are omitted from API requests. However, any field with an
27740	// empty value appearing in NullFields will be sent to the server as
27741	// null. It is an error if a field in this list has a non-empty value.
27742	// This may be used to include null fields in Patch requests.
27743	NullFields []string `json:"-"`
27744}
27745
27746func (s *OperationsScopedList) MarshalJSON() ([]byte, error) {
27747	type NoMethod OperationsScopedList
27748	raw := NoMethod(*s)
27749	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27750}
27751
27752// OperationsScopedListWarning: [Output Only] Informational warning
27753// which replaces the list of operations when the list is empty.
27754type OperationsScopedListWarning struct {
27755	// Code: [Output Only] A warning code, if applicable. For example,
27756	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27757	// the response.
27758	//
27759	// Possible values:
27760	//   "CLEANUP_FAILED"
27761	//   "DEPRECATED_RESOURCE_USED"
27762	//   "DEPRECATED_TYPE_USED"
27763	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27764	//   "EXPERIMENTAL_TYPE_USED"
27765	//   "EXTERNAL_API_WARNING"
27766	//   "FIELD_VALUE_OVERRIDEN"
27767	//   "INJECTED_KERNELS_DEPRECATED"
27768	//   "LARGE_DEPLOYMENT_WARNING"
27769	//   "MISSING_TYPE_DEPENDENCY"
27770	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27771	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27772	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27773	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27774	//   "NEXT_HOP_NOT_RUNNING"
27775	//   "NOT_CRITICAL_ERROR"
27776	//   "NO_RESULTS_ON_PAGE"
27777	//   "PARTIAL_SUCCESS"
27778	//   "REQUIRED_TOS_AGREEMENT"
27779	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27780	//   "RESOURCE_NOT_DELETED"
27781	//   "SCHEMA_VALIDATION_IGNORED"
27782	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27783	//   "UNDECLARED_PROPERTIES"
27784	//   "UNREACHABLE"
27785	Code string `json:"code,omitempty"`
27786
27787	// Data: [Output Only] Metadata about this warning in key: value format.
27788	// For example:
27789	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27790	Data []*OperationsScopedListWarningData `json:"data,omitempty"`
27791
27792	// Message: [Output Only] A human-readable description of the warning
27793	// code.
27794	Message string `json:"message,omitempty"`
27795
27796	// ForceSendFields is a list of field names (e.g. "Code") to
27797	// unconditionally include in API requests. By default, fields with
27798	// empty values are omitted from API requests. However, any non-pointer,
27799	// non-interface field appearing in ForceSendFields will be sent to the
27800	// server regardless of whether the field is empty or not. This may be
27801	// used to include empty fields in Patch requests.
27802	ForceSendFields []string `json:"-"`
27803
27804	// NullFields is a list of field names (e.g. "Code") to include in API
27805	// requests with the JSON null value. By default, fields with empty
27806	// values are omitted from API requests. However, any field with an
27807	// empty value appearing in NullFields will be sent to the server as
27808	// null. It is an error if a field in this list has a non-empty value.
27809	// This may be used to include null fields in Patch requests.
27810	NullFields []string `json:"-"`
27811}
27812
27813func (s *OperationsScopedListWarning) MarshalJSON() ([]byte, error) {
27814	type NoMethod OperationsScopedListWarning
27815	raw := NoMethod(*s)
27816	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27817}
27818
27819type OperationsScopedListWarningData struct {
27820	// Key: [Output Only] A key that provides more detail on the warning
27821	// being returned. For example, for warnings where there are no results
27822	// in a list request for a particular zone, this key might be scope and
27823	// the key value might be the zone name. Other examples might be a key
27824	// indicating a deprecated resource and a suggested replacement, or a
27825	// warning about invalid network settings (for example, if an instance
27826	// attempts to perform IP forwarding but is not enabled for IP
27827	// forwarding).
27828	Key string `json:"key,omitempty"`
27829
27830	// Value: [Output Only] A warning data value corresponding to the key.
27831	Value string `json:"value,omitempty"`
27832
27833	// ForceSendFields is a list of field names (e.g. "Key") to
27834	// unconditionally include in API requests. By default, fields with
27835	// empty values are omitted from API requests. However, any non-pointer,
27836	// non-interface field appearing in ForceSendFields will be sent to the
27837	// server regardless of whether the field is empty or not. This may be
27838	// used to include empty fields in Patch requests.
27839	ForceSendFields []string `json:"-"`
27840
27841	// NullFields is a list of field names (e.g. "Key") to include in API
27842	// requests with the JSON null value. By default, fields with empty
27843	// values are omitted from API requests. However, any field with an
27844	// empty value appearing in NullFields will be sent to the server as
27845	// null. It is an error if a field in this list has a non-empty value.
27846	// This may be used to include null fields in Patch requests.
27847	NullFields []string `json:"-"`
27848}
27849
27850func (s *OperationsScopedListWarningData) MarshalJSON() ([]byte, error) {
27851	type NoMethod OperationsScopedListWarningData
27852	raw := NoMethod(*s)
27853	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27854}
27855
27856// OutlierDetection: Settings controlling the eviction of unhealthy
27857// hosts from the load balancing pool for the backend service.
27858type OutlierDetection struct {
27859	// BaseEjectionTime: The base time that a host is ejected for. The real
27860	// ejection time is equal to the base ejection time multiplied by the
27861	// number of times the host has been ejected. Defaults to 30000ms or
27862	// 30s.
27863	BaseEjectionTime *Duration `json:"baseEjectionTime,omitempty"`
27864
27865	// ConsecutiveErrors: Number of errors before a host is ejected from the
27866	// connection pool. When the backend host is accessed over HTTP, a 5xx
27867	// return code qualifies as an error. Defaults to 5.
27868	ConsecutiveErrors int64 `json:"consecutiveErrors,omitempty"`
27869
27870	// ConsecutiveGatewayFailure: The number of consecutive gateway failures
27871	// (502, 503, 504 status or connection errors that are mapped to one of
27872	// those status codes) before a consecutive gateway failure ejection
27873	// occurs. Defaults to 3.
27874	ConsecutiveGatewayFailure int64 `json:"consecutiveGatewayFailure,omitempty"`
27875
27876	// EnforcingConsecutiveErrors: The percentage chance that a host will be
27877	// actually ejected when an outlier status is detected through
27878	// consecutive 5xx. This setting can be used to disable ejection or to
27879	// ramp it up slowly. Defaults to 0.
27880	EnforcingConsecutiveErrors int64 `json:"enforcingConsecutiveErrors,omitempty"`
27881
27882	// EnforcingConsecutiveGatewayFailure: The percentage chance that a host
27883	// will be actually ejected when an outlier status is detected through
27884	// consecutive gateway failures. This setting can be used to disable
27885	// ejection or to ramp it up slowly. Defaults to 100.
27886	EnforcingConsecutiveGatewayFailure int64 `json:"enforcingConsecutiveGatewayFailure,omitempty"`
27887
27888	// EnforcingSuccessRate: The percentage chance that a host will be
27889	// actually ejected when an outlier status is detected through success
27890	// rate statistics. This setting can be used to disable ejection or to
27891	// ramp it up slowly. Defaults to 100.
27892	EnforcingSuccessRate int64 `json:"enforcingSuccessRate,omitempty"`
27893
27894	// Interval: Time interval between ejection analysis sweeps. This can
27895	// result in both new ejections as well as hosts being returned to
27896	// service. Defaults to 1 second.
27897	Interval *Duration `json:"interval,omitempty"`
27898
27899	// MaxEjectionPercent: Maximum percentage of hosts in the load balancing
27900	// pool for the backend service that can be ejected. Defaults to 50%.
27901	MaxEjectionPercent int64 `json:"maxEjectionPercent,omitempty"`
27902
27903	// SuccessRateMinimumHosts: The number of hosts in a cluster that must
27904	// have enough request volume to detect success rate outliers. If the
27905	// number of hosts is less than this setting, outlier detection via
27906	// success rate statistics is not performed for any host in the cluster.
27907	// Defaults to 5.
27908	SuccessRateMinimumHosts int64 `json:"successRateMinimumHosts,omitempty"`
27909
27910	// SuccessRateRequestVolume: The minimum number of total requests that
27911	// must be collected in one interval (as defined by the interval
27912	// duration above) to include this host in success rate based outlier
27913	// detection. If the volume is lower than this setting, outlier
27914	// detection via success rate statistics is not performed for that host.
27915	// Defaults to 100.
27916	SuccessRateRequestVolume int64 `json:"successRateRequestVolume,omitempty"`
27917
27918	// SuccessRateStdevFactor: This factor is used to determine the ejection
27919	// threshold for success rate outlier ejection. The ejection threshold
27920	// is the difference between the mean success rate, and the product of
27921	// this factor and the standard deviation of the mean success rate: mean
27922	// - (stdev * success_rate_stdev_factor). This factor is divided by a
27923	// thousand to get a double. That is, if the desired factor is 1.9, the
27924	// runtime value should be 1900. Defaults to 1900.
27925	SuccessRateStdevFactor int64 `json:"successRateStdevFactor,omitempty"`
27926
27927	// ForceSendFields is a list of field names (e.g. "BaseEjectionTime") to
27928	// unconditionally include in API requests. By default, fields with
27929	// empty values are omitted from API requests. However, any non-pointer,
27930	// non-interface field appearing in ForceSendFields will be sent to the
27931	// server regardless of whether the field is empty or not. This may be
27932	// used to include empty fields in Patch requests.
27933	ForceSendFields []string `json:"-"`
27934
27935	// NullFields is a list of field names (e.g. "BaseEjectionTime") to
27936	// include in API requests with the JSON null value. By default, fields
27937	// with empty values are omitted from API requests. However, any field
27938	// with an empty value appearing in NullFields will be sent to the
27939	// server as null. It is an error if a field in this list has a
27940	// non-empty value. This may be used to include null fields in Patch
27941	// requests.
27942	NullFields []string `json:"-"`
27943}
27944
27945func (s *OutlierDetection) MarshalJSON() ([]byte, error) {
27946	type NoMethod OutlierDetection
27947	raw := NoMethod(*s)
27948	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27949}
27950
27951// PacketMirroring: Represents a Packet Mirroring resource.
27952//
27953// Packet Mirroring clones the traffic of specified instances in your
27954// Virtual Private Cloud (VPC) network and forwards it to a collector
27955// destination, such as an instance group of an internal TCP/UDP load
27956// balancer, for analysis or examination. For more information about
27957// setting up Packet Mirroring, see Using Packet Mirroring. (==
27958// resource_for {$api_version}.packetMirrorings ==)
27959type PacketMirroring struct {
27960	// CollectorIlb: The Forwarding Rule resource of type
27961	// loadBalancingScheme=INTERNAL that will be used as collector for
27962	// mirrored traffic. The specified forwarding rule must have
27963	// isMirroringCollector set to true.
27964	CollectorIlb *PacketMirroringForwardingRuleInfo `json:"collectorIlb,omitempty"`
27965
27966	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
27967	// format.
27968	CreationTimestamp string `json:"creationTimestamp,omitempty"`
27969
27970	// Description: An optional description of this resource. Provide this
27971	// property when you create the resource.
27972	Description string `json:"description,omitempty"`
27973
27974	// Enable: Indicates whether or not this packet mirroring takes effect.
27975	// If set to FALSE, this packet mirroring policy will not be enforced on
27976	// the network.
27977	//
27978	// The default is TRUE.
27979	//
27980	// Possible values:
27981	//   "FALSE"
27982	//   "TRUE"
27983	Enable string `json:"enable,omitempty"`
27984
27985	// Filter: Filter for mirrored traffic. If unspecified, all traffic is
27986	// mirrored.
27987	Filter *PacketMirroringFilter `json:"filter,omitempty"`
27988
27989	// Id: [Output Only] The unique identifier for the resource. This
27990	// identifier is defined by the server.
27991	Id uint64 `json:"id,omitempty,string"`
27992
27993	// Kind: [Output Only] Type of the resource. Always
27994	// compute#packetMirroring for packet mirrorings.
27995	Kind string `json:"kind,omitempty"`
27996
27997	// MirroredResources: PacketMirroring mirroredResourceInfos.
27998	// MirroredResourceInfo specifies a set of mirrored VM instances,
27999	// subnetworks and/or tags for which traffic from/to all VM instances
28000	// will be mirrored.
28001	MirroredResources *PacketMirroringMirroredResourceInfo `json:"mirroredResources,omitempty"`
28002
28003	// Name: Name of the resource; provided by the client when the resource
28004	// is created. The name must be 1-63 characters long, and comply with
28005	// RFC1035. Specifically, the name must be 1-63 characters long and
28006	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
28007	// the first character must be a lowercase letter, and all following
28008	// characters must be a dash, lowercase letter, or digit, except the
28009	// last character, which cannot be a dash.
28010	Name string `json:"name,omitempty"`
28011
28012	// Network: Specifies the mirrored VPC network. Only packets in this
28013	// network will be mirrored. All mirrored VMs should have a NIC in the
28014	// given network. All mirrored subnetworks should belong to the given
28015	// network.
28016	Network *PacketMirroringNetworkInfo `json:"network,omitempty"`
28017
28018	// Priority: The priority of applying this configuration. Priority is
28019	// used to break ties in cases where there is more than one matching
28020	// rule. In the case of two rules that apply for a given Instance, the
28021	// one with the lowest-numbered priority value wins.
28022	//
28023	// Default value is 1000. Valid range is 0 through 65535.
28024	Priority int64 `json:"priority,omitempty"`
28025
28026	// Region: [Output Only] URI of the region where the packetMirroring
28027	// resides.
28028	Region string `json:"region,omitempty"`
28029
28030	// SelfLink: [Output Only] Server-defined URL for the resource.
28031	SelfLink string `json:"selfLink,omitempty"`
28032
28033	// ServerResponse contains the HTTP response code and headers from the
28034	// server.
28035	googleapi.ServerResponse `json:"-"`
28036
28037	// ForceSendFields is a list of field names (e.g. "CollectorIlb") to
28038	// unconditionally include in API requests. By default, fields with
28039	// empty values are omitted from API requests. However, any non-pointer,
28040	// non-interface field appearing in ForceSendFields will be sent to the
28041	// server regardless of whether the field is empty or not. This may be
28042	// used to include empty fields in Patch requests.
28043	ForceSendFields []string `json:"-"`
28044
28045	// NullFields is a list of field names (e.g. "CollectorIlb") to include
28046	// in API requests with the JSON null value. By default, fields with
28047	// empty values are omitted from API requests. However, any field with
28048	// an empty value appearing in NullFields will be sent to the server as
28049	// null. It is an error if a field in this list has a non-empty value.
28050	// This may be used to include null fields in Patch requests.
28051	NullFields []string `json:"-"`
28052}
28053
28054func (s *PacketMirroring) MarshalJSON() ([]byte, error) {
28055	type NoMethod PacketMirroring
28056	raw := NoMethod(*s)
28057	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28058}
28059
28060// PacketMirroringAggregatedList: Contains a list of packetMirrorings.
28061type PacketMirroringAggregatedList struct {
28062	// Id: [Output Only] Unique identifier for the resource; defined by the
28063	// server.
28064	Id string `json:"id,omitempty"`
28065
28066	// Items: A list of PacketMirroring resources.
28067	Items map[string]PacketMirroringsScopedList `json:"items,omitempty"`
28068
28069	// Kind: Type of resource.
28070	Kind string `json:"kind,omitempty"`
28071
28072	// NextPageToken: [Output Only] This token allows you to get the next
28073	// page of results for list requests. If the number of results is larger
28074	// than maxResults, use the nextPageToken as a value for the query
28075	// parameter pageToken in the next list request. Subsequent list
28076	// requests will have their own nextPageToken to continue paging through
28077	// the results.
28078	NextPageToken string `json:"nextPageToken,omitempty"`
28079
28080	// SelfLink: [Output Only] Server-defined URL for this resource.
28081	SelfLink string `json:"selfLink,omitempty"`
28082
28083	// Unreachables: [Output Only] Unreachable resources.
28084	Unreachables []string `json:"unreachables,omitempty"`
28085
28086	// Warning: [Output Only] Informational warning message.
28087	Warning *PacketMirroringAggregatedListWarning `json:"warning,omitempty"`
28088
28089	// ServerResponse contains the HTTP response code and headers from the
28090	// server.
28091	googleapi.ServerResponse `json:"-"`
28092
28093	// ForceSendFields is a list of field names (e.g. "Id") to
28094	// unconditionally include in API requests. By default, fields with
28095	// empty values are omitted from API requests. However, any non-pointer,
28096	// non-interface field appearing in ForceSendFields will be sent to the
28097	// server regardless of whether the field is empty or not. This may be
28098	// used to include empty fields in Patch requests.
28099	ForceSendFields []string `json:"-"`
28100
28101	// NullFields is a list of field names (e.g. "Id") to include in API
28102	// requests with the JSON null value. By default, fields with empty
28103	// values are omitted from API requests. However, any field with an
28104	// empty value appearing in NullFields will be sent to the server as
28105	// null. It is an error if a field in this list has a non-empty value.
28106	// This may be used to include null fields in Patch requests.
28107	NullFields []string `json:"-"`
28108}
28109
28110func (s *PacketMirroringAggregatedList) MarshalJSON() ([]byte, error) {
28111	type NoMethod PacketMirroringAggregatedList
28112	raw := NoMethod(*s)
28113	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28114}
28115
28116// PacketMirroringAggregatedListWarning: [Output Only] Informational
28117// warning message.
28118type PacketMirroringAggregatedListWarning struct {
28119	// Code: [Output Only] A warning code, if applicable. For example,
28120	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28121	// the response.
28122	//
28123	// Possible values:
28124	//   "CLEANUP_FAILED"
28125	//   "DEPRECATED_RESOURCE_USED"
28126	//   "DEPRECATED_TYPE_USED"
28127	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28128	//   "EXPERIMENTAL_TYPE_USED"
28129	//   "EXTERNAL_API_WARNING"
28130	//   "FIELD_VALUE_OVERRIDEN"
28131	//   "INJECTED_KERNELS_DEPRECATED"
28132	//   "LARGE_DEPLOYMENT_WARNING"
28133	//   "MISSING_TYPE_DEPENDENCY"
28134	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28135	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28136	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28137	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28138	//   "NEXT_HOP_NOT_RUNNING"
28139	//   "NOT_CRITICAL_ERROR"
28140	//   "NO_RESULTS_ON_PAGE"
28141	//   "PARTIAL_SUCCESS"
28142	//   "REQUIRED_TOS_AGREEMENT"
28143	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28144	//   "RESOURCE_NOT_DELETED"
28145	//   "SCHEMA_VALIDATION_IGNORED"
28146	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28147	//   "UNDECLARED_PROPERTIES"
28148	//   "UNREACHABLE"
28149	Code string `json:"code,omitempty"`
28150
28151	// Data: [Output Only] Metadata about this warning in key: value format.
28152	// For example:
28153	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28154	Data []*PacketMirroringAggregatedListWarningData `json:"data,omitempty"`
28155
28156	// Message: [Output Only] A human-readable description of the warning
28157	// code.
28158	Message string `json:"message,omitempty"`
28159
28160	// ForceSendFields is a list of field names (e.g. "Code") to
28161	// unconditionally include in API requests. By default, fields with
28162	// empty values are omitted from API requests. However, any non-pointer,
28163	// non-interface field appearing in ForceSendFields will be sent to the
28164	// server regardless of whether the field is empty or not. This may be
28165	// used to include empty fields in Patch requests.
28166	ForceSendFields []string `json:"-"`
28167
28168	// NullFields is a list of field names (e.g. "Code") to include in API
28169	// requests with the JSON null value. By default, fields with empty
28170	// values are omitted from API requests. However, any field with an
28171	// empty value appearing in NullFields will be sent to the server as
28172	// null. It is an error if a field in this list has a non-empty value.
28173	// This may be used to include null fields in Patch requests.
28174	NullFields []string `json:"-"`
28175}
28176
28177func (s *PacketMirroringAggregatedListWarning) MarshalJSON() ([]byte, error) {
28178	type NoMethod PacketMirroringAggregatedListWarning
28179	raw := NoMethod(*s)
28180	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28181}
28182
28183type PacketMirroringAggregatedListWarningData struct {
28184	// Key: [Output Only] A key that provides more detail on the warning
28185	// being returned. For example, for warnings where there are no results
28186	// in a list request for a particular zone, this key might be scope and
28187	// the key value might be the zone name. Other examples might be a key
28188	// indicating a deprecated resource and a suggested replacement, or a
28189	// warning about invalid network settings (for example, if an instance
28190	// attempts to perform IP forwarding but is not enabled for IP
28191	// forwarding).
28192	Key string `json:"key,omitempty"`
28193
28194	// Value: [Output Only] A warning data value corresponding to the key.
28195	Value string `json:"value,omitempty"`
28196
28197	// ForceSendFields is a list of field names (e.g. "Key") to
28198	// unconditionally include in API requests. By default, fields with
28199	// empty values are omitted from API requests. However, any non-pointer,
28200	// non-interface field appearing in ForceSendFields will be sent to the
28201	// server regardless of whether the field is empty or not. This may be
28202	// used to include empty fields in Patch requests.
28203	ForceSendFields []string `json:"-"`
28204
28205	// NullFields is a list of field names (e.g. "Key") to include in API
28206	// requests with the JSON null value. By default, fields with empty
28207	// values are omitted from API requests. However, any field with an
28208	// empty value appearing in NullFields will be sent to the server as
28209	// null. It is an error if a field in this list has a non-empty value.
28210	// This may be used to include null fields in Patch requests.
28211	NullFields []string `json:"-"`
28212}
28213
28214func (s *PacketMirroringAggregatedListWarningData) MarshalJSON() ([]byte, error) {
28215	type NoMethod PacketMirroringAggregatedListWarningData
28216	raw := NoMethod(*s)
28217	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28218}
28219
28220type PacketMirroringFilter struct {
28221	// IPProtocols: Protocols that apply as filter on mirrored traffic. If
28222	// no protocols are specified, all traffic that matches the specified
28223	// CIDR ranges is mirrored. If neither cidrRanges nor IPProtocols is
28224	// specified, all traffic is mirrored.
28225	IPProtocols []string `json:"IPProtocols,omitempty"`
28226
28227	// CidrRanges: IP CIDR ranges that apply as filter on the source
28228	// (ingress) or destination (egress) IP in the IP header. Only IPv4 is
28229	// supported. If no ranges are specified, all traffic that matches the
28230	// specified IPProtocols is mirrored. If neither cidrRanges nor
28231	// IPProtocols is specified, all traffic is mirrored.
28232	CidrRanges []string `json:"cidrRanges,omitempty"`
28233
28234	// Direction: Direction of traffic to mirror, either INGRESS, EGRESS, or
28235	// BOTH. The default is BOTH.
28236	//
28237	// Possible values:
28238	//   "BOTH"
28239	//   "EGRESS"
28240	//   "INGRESS"
28241	Direction string `json:"direction,omitempty"`
28242
28243	// ForceSendFields is a list of field names (e.g. "IPProtocols") to
28244	// unconditionally include in API requests. By default, fields with
28245	// empty values are omitted from API requests. However, any non-pointer,
28246	// non-interface field appearing in ForceSendFields will be sent to the
28247	// server regardless of whether the field is empty or not. This may be
28248	// used to include empty fields in Patch requests.
28249	ForceSendFields []string `json:"-"`
28250
28251	// NullFields is a list of field names (e.g. "IPProtocols") to include
28252	// in API requests with the JSON null value. By default, fields with
28253	// empty values are omitted from API requests. However, any field with
28254	// an empty value appearing in NullFields will be sent to the server as
28255	// null. It is an error if a field in this list has a non-empty value.
28256	// This may be used to include null fields in Patch requests.
28257	NullFields []string `json:"-"`
28258}
28259
28260func (s *PacketMirroringFilter) MarshalJSON() ([]byte, error) {
28261	type NoMethod PacketMirroringFilter
28262	raw := NoMethod(*s)
28263	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28264}
28265
28266type PacketMirroringForwardingRuleInfo struct {
28267	// CanonicalUrl: [Output Only] Unique identifier for the forwarding
28268	// rule; defined by the server.
28269	CanonicalUrl string `json:"canonicalUrl,omitempty"`
28270
28271	// Url: Resource URL to the forwarding rule representing the ILB
28272	// configured as destination of the mirrored traffic.
28273	Url string `json:"url,omitempty"`
28274
28275	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
28276	// unconditionally include in API requests. By default, fields with
28277	// empty values are omitted from API requests. However, any non-pointer,
28278	// non-interface field appearing in ForceSendFields will be sent to the
28279	// server regardless of whether the field is empty or not. This may be
28280	// used to include empty fields in Patch requests.
28281	ForceSendFields []string `json:"-"`
28282
28283	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
28284	// in API requests with the JSON null value. By default, fields with
28285	// empty values are omitted from API requests. However, any field with
28286	// an empty value appearing in NullFields will be sent to the server as
28287	// null. It is an error if a field in this list has a non-empty value.
28288	// This may be used to include null fields in Patch requests.
28289	NullFields []string `json:"-"`
28290}
28291
28292func (s *PacketMirroringForwardingRuleInfo) MarshalJSON() ([]byte, error) {
28293	type NoMethod PacketMirroringForwardingRuleInfo
28294	raw := NoMethod(*s)
28295	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28296}
28297
28298// PacketMirroringList: Contains a list of PacketMirroring resources.
28299type PacketMirroringList struct {
28300	// Id: [Output Only] Unique identifier for the resource; defined by the
28301	// server.
28302	Id string `json:"id,omitempty"`
28303
28304	// Items: A list of PacketMirroring resources.
28305	Items []*PacketMirroring `json:"items,omitempty"`
28306
28307	// Kind: [Output Only] Type of resource. Always compute#packetMirroring
28308	// for packetMirrorings.
28309	Kind string `json:"kind,omitempty"`
28310
28311	// NextPageToken: [Output Only] This token allows you to get the next
28312	// page of results for list requests. If the number of results is larger
28313	// than maxResults, use the nextPageToken as a value for the query
28314	// parameter pageToken in the next list request. Subsequent list
28315	// requests will have their own nextPageToken to continue paging through
28316	// the results.
28317	NextPageToken string `json:"nextPageToken,omitempty"`
28318
28319	// SelfLink: [Output Only] Server-defined URL for this resource.
28320	SelfLink string `json:"selfLink,omitempty"`
28321
28322	// Warning: [Output Only] Informational warning message.
28323	Warning *PacketMirroringListWarning `json:"warning,omitempty"`
28324
28325	// ServerResponse contains the HTTP response code and headers from the
28326	// server.
28327	googleapi.ServerResponse `json:"-"`
28328
28329	// ForceSendFields is a list of field names (e.g. "Id") to
28330	// unconditionally include in API requests. By default, fields with
28331	// empty values are omitted from API requests. However, any non-pointer,
28332	// non-interface field appearing in ForceSendFields will be sent to the
28333	// server regardless of whether the field is empty or not. This may be
28334	// used to include empty fields in Patch requests.
28335	ForceSendFields []string `json:"-"`
28336
28337	// NullFields is a list of field names (e.g. "Id") to include in API
28338	// requests with the JSON null value. By default, fields with empty
28339	// values are omitted from API requests. However, any field with an
28340	// empty value appearing in NullFields will be sent to the server as
28341	// null. It is an error if a field in this list has a non-empty value.
28342	// This may be used to include null fields in Patch requests.
28343	NullFields []string `json:"-"`
28344}
28345
28346func (s *PacketMirroringList) MarshalJSON() ([]byte, error) {
28347	type NoMethod PacketMirroringList
28348	raw := NoMethod(*s)
28349	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28350}
28351
28352// PacketMirroringListWarning: [Output Only] Informational warning
28353// message.
28354type PacketMirroringListWarning struct {
28355	// Code: [Output Only] A warning code, if applicable. For example,
28356	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28357	// the response.
28358	//
28359	// Possible values:
28360	//   "CLEANUP_FAILED"
28361	//   "DEPRECATED_RESOURCE_USED"
28362	//   "DEPRECATED_TYPE_USED"
28363	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28364	//   "EXPERIMENTAL_TYPE_USED"
28365	//   "EXTERNAL_API_WARNING"
28366	//   "FIELD_VALUE_OVERRIDEN"
28367	//   "INJECTED_KERNELS_DEPRECATED"
28368	//   "LARGE_DEPLOYMENT_WARNING"
28369	//   "MISSING_TYPE_DEPENDENCY"
28370	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28371	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28372	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28373	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28374	//   "NEXT_HOP_NOT_RUNNING"
28375	//   "NOT_CRITICAL_ERROR"
28376	//   "NO_RESULTS_ON_PAGE"
28377	//   "PARTIAL_SUCCESS"
28378	//   "REQUIRED_TOS_AGREEMENT"
28379	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28380	//   "RESOURCE_NOT_DELETED"
28381	//   "SCHEMA_VALIDATION_IGNORED"
28382	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28383	//   "UNDECLARED_PROPERTIES"
28384	//   "UNREACHABLE"
28385	Code string `json:"code,omitempty"`
28386
28387	// Data: [Output Only] Metadata about this warning in key: value format.
28388	// For example:
28389	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28390	Data []*PacketMirroringListWarningData `json:"data,omitempty"`
28391
28392	// Message: [Output Only] A human-readable description of the warning
28393	// code.
28394	Message string `json:"message,omitempty"`
28395
28396	// ForceSendFields is a list of field names (e.g. "Code") to
28397	// unconditionally include in API requests. By default, fields with
28398	// empty values are omitted from API requests. However, any non-pointer,
28399	// non-interface field appearing in ForceSendFields will be sent to the
28400	// server regardless of whether the field is empty or not. This may be
28401	// used to include empty fields in Patch requests.
28402	ForceSendFields []string `json:"-"`
28403
28404	// NullFields is a list of field names (e.g. "Code") to include in API
28405	// requests with the JSON null value. By default, fields with empty
28406	// values are omitted from API requests. However, any field with an
28407	// empty value appearing in NullFields will be sent to the server as
28408	// null. It is an error if a field in this list has a non-empty value.
28409	// This may be used to include null fields in Patch requests.
28410	NullFields []string `json:"-"`
28411}
28412
28413func (s *PacketMirroringListWarning) MarshalJSON() ([]byte, error) {
28414	type NoMethod PacketMirroringListWarning
28415	raw := NoMethod(*s)
28416	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28417}
28418
28419type PacketMirroringListWarningData struct {
28420	// Key: [Output Only] A key that provides more detail on the warning
28421	// being returned. For example, for warnings where there are no results
28422	// in a list request for a particular zone, this key might be scope and
28423	// the key value might be the zone name. Other examples might be a key
28424	// indicating a deprecated resource and a suggested replacement, or a
28425	// warning about invalid network settings (for example, if an instance
28426	// attempts to perform IP forwarding but is not enabled for IP
28427	// forwarding).
28428	Key string `json:"key,omitempty"`
28429
28430	// Value: [Output Only] A warning data value corresponding to the key.
28431	Value string `json:"value,omitempty"`
28432
28433	// ForceSendFields is a list of field names (e.g. "Key") to
28434	// unconditionally include in API requests. By default, fields with
28435	// empty values are omitted from API requests. However, any non-pointer,
28436	// non-interface field appearing in ForceSendFields will be sent to the
28437	// server regardless of whether the field is empty or not. This may be
28438	// used to include empty fields in Patch requests.
28439	ForceSendFields []string `json:"-"`
28440
28441	// NullFields is a list of field names (e.g. "Key") to include in API
28442	// requests with the JSON null value. By default, fields with empty
28443	// values are omitted from API requests. However, any field with an
28444	// empty value appearing in NullFields will be sent to the server as
28445	// null. It is an error if a field in this list has a non-empty value.
28446	// This may be used to include null fields in Patch requests.
28447	NullFields []string `json:"-"`
28448}
28449
28450func (s *PacketMirroringListWarningData) MarshalJSON() ([]byte, error) {
28451	type NoMethod PacketMirroringListWarningData
28452	raw := NoMethod(*s)
28453	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28454}
28455
28456type PacketMirroringMirroredResourceInfo struct {
28457	// Instances: A set of virtual machine instances that are being
28458	// mirrored. They must live in zones contained in the same region as
28459	// this packetMirroring.
28460	//
28461	// Note that this config will apply only to those network interfaces of
28462	// the Instances that belong to the network specified in this
28463	// packetMirroring.
28464	//
28465	// You may specify a maximum of 50 Instances.
28466	Instances []*PacketMirroringMirroredResourceInfoInstanceInfo `json:"instances,omitempty"`
28467
28468	// Subnetworks: A set of subnetworks for which traffic from/to all VM
28469	// instances will be mirrored. They must live in the same region as this
28470	// packetMirroring.
28471	//
28472	// You may specify a maximum of 5 subnetworks.
28473	Subnetworks []*PacketMirroringMirroredResourceInfoSubnetInfo `json:"subnetworks,omitempty"`
28474
28475	// Tags: A set of mirrored tags. Traffic from/to all VM instances that
28476	// have one or more of these tags will be mirrored.
28477	Tags []string `json:"tags,omitempty"`
28478
28479	// ForceSendFields is a list of field names (e.g. "Instances") to
28480	// unconditionally include in API requests. By default, fields with
28481	// empty values are omitted from API requests. However, any non-pointer,
28482	// non-interface field appearing in ForceSendFields will be sent to the
28483	// server regardless of whether the field is empty or not. This may be
28484	// used to include empty fields in Patch requests.
28485	ForceSendFields []string `json:"-"`
28486
28487	// NullFields is a list of field names (e.g. "Instances") to include in
28488	// API requests with the JSON null value. By default, fields with empty
28489	// values are omitted from API requests. However, any field with an
28490	// empty value appearing in NullFields will be sent to the server as
28491	// null. It is an error if a field in this list has a non-empty value.
28492	// This may be used to include null fields in Patch requests.
28493	NullFields []string `json:"-"`
28494}
28495
28496func (s *PacketMirroringMirroredResourceInfo) MarshalJSON() ([]byte, error) {
28497	type NoMethod PacketMirroringMirroredResourceInfo
28498	raw := NoMethod(*s)
28499	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28500}
28501
28502type PacketMirroringMirroredResourceInfoInstanceInfo struct {
28503	// CanonicalUrl: [Output Only] Unique identifier for the instance;
28504	// defined by the server.
28505	CanonicalUrl string `json:"canonicalUrl,omitempty"`
28506
28507	// Url: Resource URL to the virtual machine instance which is being
28508	// mirrored.
28509	Url string `json:"url,omitempty"`
28510
28511	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
28512	// unconditionally include in API requests. By default, fields with
28513	// empty values are omitted from API requests. However, any non-pointer,
28514	// non-interface field appearing in ForceSendFields will be sent to the
28515	// server regardless of whether the field is empty or not. This may be
28516	// used to include empty fields in Patch requests.
28517	ForceSendFields []string `json:"-"`
28518
28519	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
28520	// in API requests with the JSON null value. By default, fields with
28521	// empty values are omitted from API requests. However, any field with
28522	// an empty value appearing in NullFields will be sent to the server as
28523	// null. It is an error if a field in this list has a non-empty value.
28524	// This may be used to include null fields in Patch requests.
28525	NullFields []string `json:"-"`
28526}
28527
28528func (s *PacketMirroringMirroredResourceInfoInstanceInfo) MarshalJSON() ([]byte, error) {
28529	type NoMethod PacketMirroringMirroredResourceInfoInstanceInfo
28530	raw := NoMethod(*s)
28531	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28532}
28533
28534type PacketMirroringMirroredResourceInfoSubnetInfo struct {
28535	// CanonicalUrl: [Output Only] Unique identifier for the subnetwork;
28536	// defined by the server.
28537	CanonicalUrl string `json:"canonicalUrl,omitempty"`
28538
28539	// Url: Resource URL to the subnetwork for which traffic from/to all VM
28540	// instances will be mirrored.
28541	Url string `json:"url,omitempty"`
28542
28543	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
28544	// unconditionally include in API requests. By default, fields with
28545	// empty values are omitted from API requests. However, any non-pointer,
28546	// non-interface field appearing in ForceSendFields will be sent to the
28547	// server regardless of whether the field is empty or not. This may be
28548	// used to include empty fields in Patch requests.
28549	ForceSendFields []string `json:"-"`
28550
28551	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
28552	// in API requests with the JSON null value. By default, fields with
28553	// empty values are omitted from API requests. However, any field with
28554	// an empty value appearing in NullFields will be sent to the server as
28555	// null. It is an error if a field in this list has a non-empty value.
28556	// This may be used to include null fields in Patch requests.
28557	NullFields []string `json:"-"`
28558}
28559
28560func (s *PacketMirroringMirroredResourceInfoSubnetInfo) MarshalJSON() ([]byte, error) {
28561	type NoMethod PacketMirroringMirroredResourceInfoSubnetInfo
28562	raw := NoMethod(*s)
28563	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28564}
28565
28566type PacketMirroringNetworkInfo struct {
28567	// CanonicalUrl: [Output Only] Unique identifier for the network;
28568	// defined by the server.
28569	CanonicalUrl string `json:"canonicalUrl,omitempty"`
28570
28571	// Url: URL of the network resource.
28572	Url string `json:"url,omitempty"`
28573
28574	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
28575	// unconditionally include in API requests. By default, fields with
28576	// empty values are omitted from API requests. However, any non-pointer,
28577	// non-interface field appearing in ForceSendFields will be sent to the
28578	// server regardless of whether the field is empty or not. This may be
28579	// used to include empty fields in Patch requests.
28580	ForceSendFields []string `json:"-"`
28581
28582	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
28583	// in API requests with the JSON null value. By default, fields with
28584	// empty values are omitted from API requests. However, any field with
28585	// an empty value appearing in NullFields will be sent to the server as
28586	// null. It is an error if a field in this list has a non-empty value.
28587	// This may be used to include null fields in Patch requests.
28588	NullFields []string `json:"-"`
28589}
28590
28591func (s *PacketMirroringNetworkInfo) MarshalJSON() ([]byte, error) {
28592	type NoMethod PacketMirroringNetworkInfo
28593	raw := NoMethod(*s)
28594	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28595}
28596
28597type PacketMirroringsScopedList struct {
28598	// PacketMirrorings: A list of packetMirrorings contained in this scope.
28599	PacketMirrorings []*PacketMirroring `json:"packetMirrorings,omitempty"`
28600
28601	// Warning: Informational warning which replaces the list of
28602	// packetMirrorings when the list is empty.
28603	Warning *PacketMirroringsScopedListWarning `json:"warning,omitempty"`
28604
28605	// ForceSendFields is a list of field names (e.g. "PacketMirrorings") to
28606	// unconditionally include in API requests. By default, fields with
28607	// empty values are omitted from API requests. However, any non-pointer,
28608	// non-interface field appearing in ForceSendFields will be sent to the
28609	// server regardless of whether the field is empty or not. This may be
28610	// used to include empty fields in Patch requests.
28611	ForceSendFields []string `json:"-"`
28612
28613	// NullFields is a list of field names (e.g. "PacketMirrorings") to
28614	// include in API requests with the JSON null value. By default, fields
28615	// with empty values are omitted from API requests. However, any field
28616	// with an empty value appearing in NullFields will be sent to the
28617	// server as null. It is an error if a field in this list has a
28618	// non-empty value. This may be used to include null fields in Patch
28619	// requests.
28620	NullFields []string `json:"-"`
28621}
28622
28623func (s *PacketMirroringsScopedList) MarshalJSON() ([]byte, error) {
28624	type NoMethod PacketMirroringsScopedList
28625	raw := NoMethod(*s)
28626	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28627}
28628
28629// PacketMirroringsScopedListWarning: Informational warning which
28630// replaces the list of packetMirrorings when the list is empty.
28631type PacketMirroringsScopedListWarning struct {
28632	// Code: [Output Only] A warning code, if applicable. For example,
28633	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28634	// the response.
28635	//
28636	// Possible values:
28637	//   "CLEANUP_FAILED"
28638	//   "DEPRECATED_RESOURCE_USED"
28639	//   "DEPRECATED_TYPE_USED"
28640	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28641	//   "EXPERIMENTAL_TYPE_USED"
28642	//   "EXTERNAL_API_WARNING"
28643	//   "FIELD_VALUE_OVERRIDEN"
28644	//   "INJECTED_KERNELS_DEPRECATED"
28645	//   "LARGE_DEPLOYMENT_WARNING"
28646	//   "MISSING_TYPE_DEPENDENCY"
28647	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28648	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28649	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28650	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28651	//   "NEXT_HOP_NOT_RUNNING"
28652	//   "NOT_CRITICAL_ERROR"
28653	//   "NO_RESULTS_ON_PAGE"
28654	//   "PARTIAL_SUCCESS"
28655	//   "REQUIRED_TOS_AGREEMENT"
28656	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28657	//   "RESOURCE_NOT_DELETED"
28658	//   "SCHEMA_VALIDATION_IGNORED"
28659	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28660	//   "UNDECLARED_PROPERTIES"
28661	//   "UNREACHABLE"
28662	Code string `json:"code,omitempty"`
28663
28664	// Data: [Output Only] Metadata about this warning in key: value format.
28665	// For example:
28666	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28667	Data []*PacketMirroringsScopedListWarningData `json:"data,omitempty"`
28668
28669	// Message: [Output Only] A human-readable description of the warning
28670	// code.
28671	Message string `json:"message,omitempty"`
28672
28673	// ForceSendFields is a list of field names (e.g. "Code") to
28674	// unconditionally include in API requests. By default, fields with
28675	// empty values are omitted from API requests. However, any non-pointer,
28676	// non-interface field appearing in ForceSendFields will be sent to the
28677	// server regardless of whether the field is empty or not. This may be
28678	// used to include empty fields in Patch requests.
28679	ForceSendFields []string `json:"-"`
28680
28681	// NullFields is a list of field names (e.g. "Code") to include in API
28682	// requests with the JSON null value. By default, fields with empty
28683	// values are omitted from API requests. However, any field with an
28684	// empty value appearing in NullFields will be sent to the server as
28685	// null. It is an error if a field in this list has a non-empty value.
28686	// This may be used to include null fields in Patch requests.
28687	NullFields []string `json:"-"`
28688}
28689
28690func (s *PacketMirroringsScopedListWarning) MarshalJSON() ([]byte, error) {
28691	type NoMethod PacketMirroringsScopedListWarning
28692	raw := NoMethod(*s)
28693	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28694}
28695
28696type PacketMirroringsScopedListWarningData struct {
28697	// Key: [Output Only] A key that provides more detail on the warning
28698	// being returned. For example, for warnings where there are no results
28699	// in a list request for a particular zone, this key might be scope and
28700	// the key value might be the zone name. Other examples might be a key
28701	// indicating a deprecated resource and a suggested replacement, or a
28702	// warning about invalid network settings (for example, if an instance
28703	// attempts to perform IP forwarding but is not enabled for IP
28704	// forwarding).
28705	Key string `json:"key,omitempty"`
28706
28707	// Value: [Output Only] A warning data value corresponding to the key.
28708	Value string `json:"value,omitempty"`
28709
28710	// ForceSendFields is a list of field names (e.g. "Key") to
28711	// unconditionally include in API requests. By default, fields with
28712	// empty values are omitted from API requests. However, any non-pointer,
28713	// non-interface field appearing in ForceSendFields will be sent to the
28714	// server regardless of whether the field is empty or not. This may be
28715	// used to include empty fields in Patch requests.
28716	ForceSendFields []string `json:"-"`
28717
28718	// NullFields is a list of field names (e.g. "Key") to include in API
28719	// requests with the JSON null value. By default, fields with empty
28720	// values are omitted from API requests. However, any field with an
28721	// empty value appearing in NullFields will be sent to the server as
28722	// null. It is an error if a field in this list has a non-empty value.
28723	// This may be used to include null fields in Patch requests.
28724	NullFields []string `json:"-"`
28725}
28726
28727func (s *PacketMirroringsScopedListWarningData) MarshalJSON() ([]byte, error) {
28728	type NoMethod PacketMirroringsScopedListWarningData
28729	raw := NoMethod(*s)
28730	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28731}
28732
28733// PathMatcher: A matcher for the path portion of the URL. The
28734// BackendService from the longest-matched rule will serve the URL. If
28735// no rule was matched, the default service will be used.
28736type PathMatcher struct {
28737	// DefaultRouteAction: defaultRouteAction takes effect when none of the
28738	// pathRules or routeRules match. The load balancer performs advanced
28739	// routing actions like URL rewrites, header transformations, etc. prior
28740	// to forwarding the request to the selected backend. If
28741	// defaultRouteAction specifies any weightedBackendServices,
28742	// defaultService must not be set. Conversely if defaultService is set,
28743	// defaultRouteAction cannot contain any  weightedBackendServices.
28744	// Only one of defaultRouteAction or defaultUrlRedirect must be
28745	// set.
28746	// UrlMaps for external HTTP(S) load balancers support only the
28747	// urlRewrite action within a pathMatcher's defaultRouteAction.
28748	DefaultRouteAction *HttpRouteAction `json:"defaultRouteAction,omitempty"`
28749
28750	// DefaultService: The full or partial URL to the BackendService
28751	// resource. This will be used if none of the pathRules or routeRules
28752	// defined by this PathMatcher are matched. For example, the following
28753	// are all valid URLs to a BackendService resource:
28754	// -
28755	// https://www.googleapis.com/compute/v1/projects/project/global/backendServices/backendService
28756	//
28757	// - compute/v1/projects/project/global/backendServices/backendService
28758	//
28759	// - global/backendServices/backendService  If defaultRouteAction is
28760	// additionally specified, advanced routing actions like URL Rewrites,
28761	// etc. take effect prior to sending the request to the backend.
28762	// However, if defaultService is specified, defaultRouteAction cannot
28763	// contain any weightedBackendServices. Conversely, if
28764	// defaultRouteAction specifies any weightedBackendServices,
28765	// defaultService must not be specified.
28766	// Only one of defaultService, defaultUrlRedirect  or
28767	// defaultRouteAction.weightedBackendService must be set.
28768	// Authorization requires one or more of the following Google IAM
28769	// permissions on the specified resource default_service:
28770	// - compute.backendBuckets.use
28771	// - compute.backendServices.use
28772	DefaultService string `json:"defaultService,omitempty"`
28773
28774	// DefaultUrlRedirect: When none of the specified pathRules or
28775	// routeRules match, the request is redirected to a URL specified by
28776	// defaultUrlRedirect.
28777	// If defaultUrlRedirect is specified, defaultService or
28778	// defaultRouteAction must not be set.
28779	// Not supported when the URL map is bound to target gRPC proxy.
28780	DefaultUrlRedirect *HttpRedirectAction `json:"defaultUrlRedirect,omitempty"`
28781
28782	// Description: An optional description of this resource. Provide this
28783	// property when you create the resource.
28784	Description string `json:"description,omitempty"`
28785
28786	// HeaderAction: Specifies changes to request and response headers that
28787	// need to take effect for the selected backendService.
28788	// HeaderAction specified here are applied after the matching
28789	// HttpRouteRule HeaderAction and before the HeaderAction in the UrlMap
28790	//
28791	// Note that headerAction is not supported for Loadbalancers that have
28792	// their loadBalancingScheme set to EXTERNAL.
28793	// Not supported when the URL map is bound to target gRPC proxy that has
28794	// validateForProxyless field set to true.
28795	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
28796
28797	// Name: The name to which this PathMatcher is referred by the HostRule.
28798	Name string `json:"name,omitempty"`
28799
28800	// PathRules: The list of path rules. Use this list instead of
28801	// routeRules when routing based on simple path matching is all that's
28802	// required. The order by which path rules are specified does not
28803	// matter. Matches are always done on the longest-path-first basis.
28804	// For example: a pathRule with a path /a/b/c/* will match before /a/b/*
28805	// irrespective of the order in which those paths appear in this
28806	// list.
28807	// Within a given pathMatcher, only one of pathRules or routeRules must
28808	// be set.
28809	PathRules []*PathRule `json:"pathRules,omitempty"`
28810
28811	// RouteRules: The list of HTTP route rules. Use this list instead of
28812	// pathRules when advanced route matching and routing actions are
28813	// desired. routeRules are evaluated in order of priority, from the
28814	// lowest to highest number.
28815	// Within a given pathMatcher, you can set only one of pathRules or
28816	// routeRules.
28817	RouteRules []*HttpRouteRule `json:"routeRules,omitempty"`
28818
28819	// ForceSendFields is a list of field names (e.g. "DefaultRouteAction")
28820	// to unconditionally include in API requests. By default, fields with
28821	// empty values are omitted from API requests. However, any non-pointer,
28822	// non-interface field appearing in ForceSendFields will be sent to the
28823	// server regardless of whether the field is empty or not. This may be
28824	// used to include empty fields in Patch requests.
28825	ForceSendFields []string `json:"-"`
28826
28827	// NullFields is a list of field names (e.g. "DefaultRouteAction") to
28828	// include in API requests with the JSON null value. By default, fields
28829	// with empty values are omitted from API requests. However, any field
28830	// with an empty value appearing in NullFields will be sent to the
28831	// server as null. It is an error if a field in this list has a
28832	// non-empty value. This may be used to include null fields in Patch
28833	// requests.
28834	NullFields []string `json:"-"`
28835}
28836
28837func (s *PathMatcher) MarshalJSON() ([]byte, error) {
28838	type NoMethod PathMatcher
28839	raw := NoMethod(*s)
28840	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28841}
28842
28843// PathRule: A path-matching rule for a URL. If matched, will use the
28844// specified BackendService to handle the traffic arriving at this URL.
28845type PathRule struct {
28846	// Paths: The list of path patterns to match. Each must start with / and
28847	// the only place a * is allowed is at the end following a /. The string
28848	// fed to the path matcher does not include any text after the first ?
28849	// or #, and those chars are not allowed here.
28850	Paths []string `json:"paths,omitempty"`
28851
28852	// RouteAction: In response to a matching path, the load balancer
28853	// performs advanced routing actions like URL rewrites, header
28854	// transformations, etc. prior to forwarding the request to the selected
28855	// backend. If routeAction specifies any  weightedBackendServices,
28856	// service must not be set. Conversely if service is set, routeAction
28857	// cannot contain any  weightedBackendServices.
28858	// Only one of routeAction or urlRedirect must be set.
28859	// UrlMaps for external HTTP(S) load balancers support only the
28860	// urlRewrite action within a pathRule's routeAction.
28861	RouteAction *HttpRouteAction `json:"routeAction,omitempty"`
28862
28863	// Service: The full or partial URL of the backend service resource to
28864	// which traffic is directed if this rule is matched. If routeAction is
28865	// additionally specified, advanced routing actions like URL Rewrites,
28866	// etc. take effect prior to sending the request to the backend.
28867	// However, if service is specified, routeAction cannot contain any
28868	// weightedBackendService s. Conversely, if routeAction specifies any
28869	// weightedBackendServices, service must not be specified.
28870	// Only one of urlRedirect, service or
28871	// routeAction.weightedBackendService must be set.
28872	Service string `json:"service,omitempty"`
28873
28874	// UrlRedirect: When a path pattern is matched, the request is
28875	// redirected to a URL specified by urlRedirect.
28876	// If urlRedirect is specified, service or routeAction must not be
28877	// set.
28878	// Not supported when the URL map is bound to target gRPC proxy.
28879	UrlRedirect *HttpRedirectAction `json:"urlRedirect,omitempty"`
28880
28881	// ForceSendFields is a list of field names (e.g. "Paths") to
28882	// unconditionally include in API requests. By default, fields with
28883	// empty values are omitted from API requests. However, any non-pointer,
28884	// non-interface field appearing in ForceSendFields will be sent to the
28885	// server regardless of whether the field is empty or not. This may be
28886	// used to include empty fields in Patch requests.
28887	ForceSendFields []string `json:"-"`
28888
28889	// NullFields is a list of field names (e.g. "Paths") to include in API
28890	// requests with the JSON null value. By default, fields with empty
28891	// values are omitted from API requests. However, any field with an
28892	// empty value appearing in NullFields will be sent to the server as
28893	// null. It is an error if a field in this list has a non-empty value.
28894	// This may be used to include null fields in Patch requests.
28895	NullFields []string `json:"-"`
28896}
28897
28898func (s *PathRule) MarshalJSON() ([]byte, error) {
28899	type NoMethod PathRule
28900	raw := NoMethod(*s)
28901	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28902}
28903
28904type PerInstanceConfig struct {
28905	// Fingerprint: Fingerprint of this per-instance config. This field can
28906	// be used in optimistic locking. It is ignored when inserting a
28907	// per-instance config. An up-to-date fingerprint must be provided in
28908	// order to update an existing per-instance config or the field needs to
28909	// be unset.
28910	Fingerprint string `json:"fingerprint,omitempty"`
28911
28912	// Name: The name of a per-instance config and its corresponding
28913	// instance. Serves as a merge key during UpdatePerInstanceConfigs
28914	// operations, that is, if a per-instance config with the same name
28915	// exists then it will be updated, otherwise a new one will be created
28916	// for the VM instance with the same name. An attempt to create a
28917	// per-instance config for a VM instance that either doesn't exist or is
28918	// not part of the group will result in an error.
28919	Name string `json:"name,omitempty"`
28920
28921	// PreservedState: The intended preserved state for the given instance.
28922	// Does not contain preserved state generated from a stateful policy.
28923	PreservedState *PreservedState `json:"preservedState,omitempty"`
28924
28925	// Status: The status of applying this per-instance config on the
28926	// corresponding managed instance.
28927	//
28928	// Possible values:
28929	//   "APPLYING"
28930	//   "DELETING"
28931	//   "EFFECTIVE"
28932	//   "NONE"
28933	//   "UNAPPLIED"
28934	//   "UNAPPLIED_DELETION"
28935	Status string `json:"status,omitempty"`
28936
28937	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
28938	// unconditionally include in API requests. By default, fields with
28939	// empty values are omitted from API requests. However, any non-pointer,
28940	// non-interface field appearing in ForceSendFields will be sent to the
28941	// server regardless of whether the field is empty or not. This may be
28942	// used to include empty fields in Patch requests.
28943	ForceSendFields []string `json:"-"`
28944
28945	// NullFields is a list of field names (e.g. "Fingerprint") to include
28946	// in API requests with the JSON null value. By default, fields with
28947	// empty values are omitted from API requests. However, any field with
28948	// an empty value appearing in NullFields will be sent to the server as
28949	// null. It is an error if a field in this list has a non-empty value.
28950	// This may be used to include null fields in Patch requests.
28951	NullFields []string `json:"-"`
28952}
28953
28954func (s *PerInstanceConfig) MarshalJSON() ([]byte, error) {
28955	type NoMethod PerInstanceConfig
28956	raw := NoMethod(*s)
28957	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28958}
28959
28960// Policy: An Identity and Access Management (IAM) policy, which
28961// specifies access controls for Google Cloud resources.
28962//
28963//
28964//
28965// A `Policy` is a collection of `bindings`. A `binding` binds one or
28966// more `members` to a single `role`. Members can be user accounts,
28967// service accounts, Google groups, and domains (such as G Suite). A
28968// `role` is a named list of permissions; each `role` can be an IAM
28969// predefined role or a user-created custom role.
28970//
28971// For some types of Google Cloud resources, a `binding` can also
28972// specify a `condition`, which is a logical expression that allows
28973// access to a resource only if the expression evaluates to `true`. A
28974// condition can add constraints based on attributes of the request, the
28975// resource, or both. To learn which resources support conditions in
28976// their IAM policies, see the IAM documentation
28977// (https://cloud.google.com/iam/help/conditions/resource-policies).
28978//
28979// **JSON example:**
28980//
28981// { "bindings": [ { "role": "roles/resourcemanager.organizationAdmin",
28982// "members": [ "user:mike@example.com", "group:admins@example.com",
28983// "domain:google.com",
28984// "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, {
28985// "role": "roles/resourcemanager.organizationViewer", "members": [
28986// "user:eve@example.com" ], "condition": { "title": "expirable access",
28987// "description": "Does not grant access after Sep 2020", "expression":
28988// "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ],
28989// "etag": "BwWWja0YfJA=", "version": 3 }
28990//
28991// **YAML example:**
28992//
28993// bindings: - members: - user:mike@example.com -
28994// group:admins@example.com - domain:google.com -
28995// serviceAccount:my-project-id@appspot.gserviceaccount.com role:
28996// roles/resourcemanager.organizationAdmin - members: -
28997// user:eve@example.com role: roles/resourcemanager.organizationViewer
28998// condition: title: expirable access description: Does not grant access
28999// after Sep 2020 expression: request.time <
29000// timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version:
29001// 3
29002//
29003// For a description of IAM and its features, see the IAM documentation
29004// (https://cloud.google.com/iam/docs/).
29005type Policy struct {
29006	// AuditConfigs: Specifies cloud audit logging configuration for this
29007	// policy.
29008	AuditConfigs []*AuditConfig `json:"auditConfigs,omitempty"`
29009
29010	// Bindings: Associates a list of `members` to a `role`. Optionally, may
29011	// specify a `condition` that determines how and when the `bindings` are
29012	// applied. Each of the `bindings` must contain at least one member.
29013	Bindings []*Binding `json:"bindings,omitempty"`
29014
29015	// Etag: `etag` is used for optimistic concurrency control as a way to
29016	// help prevent simultaneous updates of a policy from overwriting each
29017	// other. It is strongly suggested that systems make use of the `etag`
29018	// in the read-modify-write cycle to perform policy updates in order to
29019	// avoid race conditions: An `etag` is returned in the response to
29020	// `getIamPolicy`, and systems are expected to put that etag in the
29021	// request to `setIamPolicy` to ensure that their change will be applied
29022	// to the same version of the policy.
29023	//
29024	// **Important:** If you use IAM Conditions, you must include the `etag`
29025	// field whenever you call `setIamPolicy`. If you omit this field, then
29026	// IAM allows you to overwrite a version `3` policy with a version `1`
29027	// policy, and all of the conditions in the version `3` policy are lost.
29028	Etag string `json:"etag,omitempty"`
29029
29030	IamOwned bool `json:"iamOwned,omitempty"`
29031
29032	// Rules: If more than one rule is specified, the rules are applied in
29033	// the following manner: - All matching LOG rules are always applied. -
29034	// If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging
29035	// will be applied if one or more matching rule requires logging. -
29036	// Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
29037	// granted. Logging will be applied if one or more matching rule
29038	// requires logging. - Otherwise, if no rule applies, permission is
29039	// denied.
29040	Rules []*Rule `json:"rules,omitempty"`
29041
29042	// Version: Specifies the format of the policy.
29043	//
29044	// Valid values are `0`, `1`, and `3`. Requests that specify an invalid
29045	// value are rejected.
29046	//
29047	// Any operation that affects conditional role bindings must specify
29048	// version `3`. This requirement applies to the following operations:
29049	//
29050	// * Getting a policy that includes a conditional role binding * Adding
29051	// a conditional role binding to a policy * Changing a conditional role
29052	// binding in a policy * Removing any role binding, with or without a
29053	// condition, from a policy that includes conditions
29054	//
29055	// **Important:** If you use IAM Conditions, you must include the `etag`
29056	// field whenever you call `setIamPolicy`. If you omit this field, then
29057	// IAM allows you to overwrite a version `3` policy with a version `1`
29058	// policy, and all of the conditions in the version `3` policy are
29059	// lost.
29060	//
29061	// If a policy does not include any conditions, operations on that
29062	// policy may specify any valid version or leave the field unset.
29063	//
29064	// To learn which resources support conditions in their IAM policies,
29065	// see the IAM documentation
29066	// (https://cloud.google.com/iam/help/conditions/resource-policies).
29067	Version int64 `json:"version,omitempty"`
29068
29069	// ServerResponse contains the HTTP response code and headers from the
29070	// server.
29071	googleapi.ServerResponse `json:"-"`
29072
29073	// ForceSendFields is a list of field names (e.g. "AuditConfigs") to
29074	// unconditionally include in API requests. By default, fields with
29075	// empty values are omitted from API requests. However, any non-pointer,
29076	// non-interface field appearing in ForceSendFields will be sent to the
29077	// server regardless of whether the field is empty or not. This may be
29078	// used to include empty fields in Patch requests.
29079	ForceSendFields []string `json:"-"`
29080
29081	// NullFields is a list of field names (e.g. "AuditConfigs") to include
29082	// in API requests with the JSON null value. By default, fields with
29083	// empty values are omitted from API requests. However, any field with
29084	// an empty value appearing in NullFields will be sent to the server as
29085	// null. It is an error if a field in this list has a non-empty value.
29086	// This may be used to include null fields in Patch requests.
29087	NullFields []string `json:"-"`
29088}
29089
29090func (s *Policy) MarshalJSON() ([]byte, error) {
29091	type NoMethod Policy
29092	raw := NoMethod(*s)
29093	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29094}
29095
29096type PreconfiguredWafSet struct {
29097	// ExpressionSets: List of entities that are currently supported for WAF
29098	// rules.
29099	ExpressionSets []*WafExpressionSet `json:"expressionSets,omitempty"`
29100
29101	// ForceSendFields is a list of field names (e.g. "ExpressionSets") to
29102	// unconditionally include in API requests. By default, fields with
29103	// empty values are omitted from API requests. However, any non-pointer,
29104	// non-interface field appearing in ForceSendFields will be sent to the
29105	// server regardless of whether the field is empty or not. This may be
29106	// used to include empty fields in Patch requests.
29107	ForceSendFields []string `json:"-"`
29108
29109	// NullFields is a list of field names (e.g. "ExpressionSets") to
29110	// include in API requests with the JSON null value. By default, fields
29111	// with empty values are omitted from API requests. However, any field
29112	// with an empty value appearing in NullFields will be sent to the
29113	// server as null. It is an error if a field in this list has a
29114	// non-empty value. This may be used to include null fields in Patch
29115	// requests.
29116	NullFields []string `json:"-"`
29117}
29118
29119func (s *PreconfiguredWafSet) MarshalJSON() ([]byte, error) {
29120	type NoMethod PreconfiguredWafSet
29121	raw := NoMethod(*s)
29122	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29123}
29124
29125// PreservedState: Preserved state for a given instance.
29126type PreservedState struct {
29127	// Disks: Preserved disks defined for this instance. This map is keyed
29128	// with the device names of the disks.
29129	Disks map[string]PreservedStatePreservedDisk `json:"disks,omitempty"`
29130
29131	// Metadata: Preserved metadata defined for this instance.
29132	Metadata map[string]string `json:"metadata,omitempty"`
29133
29134	// ForceSendFields is a list of field names (e.g. "Disks") to
29135	// unconditionally include in API requests. By default, fields with
29136	// empty values are omitted from API requests. However, any non-pointer,
29137	// non-interface field appearing in ForceSendFields will be sent to the
29138	// server regardless of whether the field is empty or not. This may be
29139	// used to include empty fields in Patch requests.
29140	ForceSendFields []string `json:"-"`
29141
29142	// NullFields is a list of field names (e.g. "Disks") to include in API
29143	// requests with the JSON null value. By default, fields with empty
29144	// values are omitted from API requests. However, any field with an
29145	// empty value appearing in NullFields will be sent to the server as
29146	// null. It is an error if a field in this list has a non-empty value.
29147	// This may be used to include null fields in Patch requests.
29148	NullFields []string `json:"-"`
29149}
29150
29151func (s *PreservedState) MarshalJSON() ([]byte, error) {
29152	type NoMethod PreservedState
29153	raw := NoMethod(*s)
29154	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29155}
29156
29157type PreservedStatePreservedDisk struct {
29158	// AutoDelete: These stateful disks will never be deleted during
29159	// autohealing, update, instance recreate operations. This flag is used
29160	// to configure if the disk should be deleted after it is no longer used
29161	// by the group, e.g. when the given instance or the whole MIG is
29162	// deleted. Note: disks attached in READ_ONLY mode cannot be
29163	// auto-deleted.
29164	//
29165	// Possible values:
29166	//   "NEVER"
29167	//   "ON_PERMANENT_INSTANCE_DELETION"
29168	AutoDelete string `json:"autoDelete,omitempty"`
29169
29170	// Mode: The mode in which to attach this disk, either READ_WRITE or
29171	// READ_ONLY. If not specified, the default is to attach the disk in
29172	// READ_WRITE mode.
29173	//
29174	// Possible values:
29175	//   "READ_ONLY"
29176	//   "READ_WRITE"
29177	Mode string `json:"mode,omitempty"`
29178
29179	// Source: The URL of the disk resource that is stateful and should be
29180	// attached to the VM instance.
29181	Source string `json:"source,omitempty"`
29182
29183	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
29184	// unconditionally include in API requests. By default, fields with
29185	// empty values are omitted from API requests. However, any non-pointer,
29186	// non-interface field appearing in ForceSendFields will be sent to the
29187	// server regardless of whether the field is empty or not. This may be
29188	// used to include empty fields in Patch requests.
29189	ForceSendFields []string `json:"-"`
29190
29191	// NullFields is a list of field names (e.g. "AutoDelete") to include in
29192	// API requests with the JSON null value. By default, fields with empty
29193	// values are omitted from API requests. However, any field with an
29194	// empty value appearing in NullFields will be sent to the server as
29195	// null. It is an error if a field in this list has a non-empty value.
29196	// This may be used to include null fields in Patch requests.
29197	NullFields []string `json:"-"`
29198}
29199
29200func (s *PreservedStatePreservedDisk) MarshalJSON() ([]byte, error) {
29201	type NoMethod PreservedStatePreservedDisk
29202	raw := NoMethod(*s)
29203	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29204}
29205
29206// Project: Represents a Project resource.
29207//
29208// A project is used to organize resources in a Google Cloud Platform
29209// environment. For more information, read about the  Resource
29210// Hierarchy. (== resource_for {$api_version}.projects ==)
29211type Project struct {
29212	// CommonInstanceMetadata: Metadata key/value pairs available to all
29213	// instances contained in this project. See Custom metadata for more
29214	// information.
29215	CommonInstanceMetadata *Metadata `json:"commonInstanceMetadata,omitempty"`
29216
29217	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
29218	// format.
29219	CreationTimestamp string `json:"creationTimestamp,omitempty"`
29220
29221	// DefaultNetworkTier: This signifies the default network tier used for
29222	// configuring resources of the project and can only take the following
29223	// values: PREMIUM, STANDARD. Initially the default network tier is
29224	// PREMIUM.
29225	//
29226	// Possible values:
29227	//   "PREMIUM"
29228	//   "STANDARD"
29229	DefaultNetworkTier string `json:"defaultNetworkTier,omitempty"`
29230
29231	// DefaultServiceAccount: [Output Only] Default service account used by
29232	// VMs running in this project.
29233	DefaultServiceAccount string `json:"defaultServiceAccount,omitempty"`
29234
29235	// Description: An optional textual description of the resource.
29236	Description string `json:"description,omitempty"`
29237
29238	// EnabledFeatures: Restricted features enabled for use on this project.
29239	EnabledFeatures []string `json:"enabledFeatures,omitempty"`
29240
29241	// Id: [Output Only] The unique identifier for the resource. This
29242	// identifier is defined by the server. This is not the project ID, and
29243	// is just a unique ID used by Compute Engine to identify resources.
29244	Id uint64 `json:"id,omitempty,string"`
29245
29246	// Kind: [Output Only] Type of the resource. Always compute#project for
29247	// projects.
29248	Kind string `json:"kind,omitempty"`
29249
29250	// Name: The project ID. For example: my-example-project. Use the
29251	// project ID to make requests to Compute Engine.
29252	Name string `json:"name,omitempty"`
29253
29254	// Quotas: [Output Only] Quotas assigned to this project.
29255	Quotas []*Quota `json:"quotas,omitempty"`
29256
29257	// SelfLink: [Output Only] Server-defined URL for the resource.
29258	SelfLink string `json:"selfLink,omitempty"`
29259
29260	// UsageExportLocation: The naming prefix for daily usage reports and
29261	// the Google Cloud Storage bucket where they are stored.
29262	UsageExportLocation *UsageExportLocation `json:"usageExportLocation,omitempty"`
29263
29264	// XpnProjectStatus: [Output Only] The role this project has in a shared
29265	// VPC configuration. Currently, only projects with the host role, which
29266	// is specified by the value HOST, are differentiated.
29267	//
29268	// Possible values:
29269	//   "HOST"
29270	//   "UNSPECIFIED_XPN_PROJECT_STATUS"
29271	XpnProjectStatus string `json:"xpnProjectStatus,omitempty"`
29272
29273	// ServerResponse contains the HTTP response code and headers from the
29274	// server.
29275	googleapi.ServerResponse `json:"-"`
29276
29277	// ForceSendFields is a list of field names (e.g.
29278	// "CommonInstanceMetadata") to unconditionally include in API requests.
29279	// By default, fields with empty values are omitted from API requests.
29280	// However, any non-pointer, non-interface field appearing in
29281	// ForceSendFields will be sent to the server regardless of whether the
29282	// field is empty or not. This may be used to include empty fields in
29283	// Patch requests.
29284	ForceSendFields []string `json:"-"`
29285
29286	// NullFields is a list of field names (e.g. "CommonInstanceMetadata")
29287	// to include in API requests with the JSON null value. By default,
29288	// fields with empty values are omitted from API requests. However, any
29289	// field with an empty value appearing in NullFields will be sent to the
29290	// server as null. It is an error if a field in this list has a
29291	// non-empty value. This may be used to include null fields in Patch
29292	// requests.
29293	NullFields []string `json:"-"`
29294}
29295
29296func (s *Project) MarshalJSON() ([]byte, error) {
29297	type NoMethod Project
29298	raw := NoMethod(*s)
29299	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29300}
29301
29302type ProjectsDisableXpnResourceRequest struct {
29303	// XpnResource: Service resource (a.k.a service project) ID.
29304	XpnResource *XpnResourceId `json:"xpnResource,omitempty"`
29305
29306	// ForceSendFields is a list of field names (e.g. "XpnResource") to
29307	// unconditionally include in API requests. By default, fields with
29308	// empty values are omitted from API requests. However, any non-pointer,
29309	// non-interface field appearing in ForceSendFields will be sent to the
29310	// server regardless of whether the field is empty or not. This may be
29311	// used to include empty fields in Patch requests.
29312	ForceSendFields []string `json:"-"`
29313
29314	// NullFields is a list of field names (e.g. "XpnResource") to include
29315	// in API requests with the JSON null value. By default, fields with
29316	// empty values are omitted from API requests. However, any field with
29317	// an empty value appearing in NullFields will be sent to the server as
29318	// null. It is an error if a field in this list has a non-empty value.
29319	// This may be used to include null fields in Patch requests.
29320	NullFields []string `json:"-"`
29321}
29322
29323func (s *ProjectsDisableXpnResourceRequest) MarshalJSON() ([]byte, error) {
29324	type NoMethod ProjectsDisableXpnResourceRequest
29325	raw := NoMethod(*s)
29326	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29327}
29328
29329type ProjectsEnableXpnResourceRequest struct {
29330	// XpnResource: Service resource (a.k.a service project) ID.
29331	XpnResource *XpnResourceId `json:"xpnResource,omitempty"`
29332
29333	// ForceSendFields is a list of field names (e.g. "XpnResource") to
29334	// unconditionally include in API requests. By default, fields with
29335	// empty values are omitted from API requests. However, any non-pointer,
29336	// non-interface field appearing in ForceSendFields will be sent to the
29337	// server regardless of whether the field is empty or not. This may be
29338	// used to include empty fields in Patch requests.
29339	ForceSendFields []string `json:"-"`
29340
29341	// NullFields is a list of field names (e.g. "XpnResource") to include
29342	// in API requests with the JSON null value. By default, fields with
29343	// empty values are omitted from API requests. However, any field with
29344	// an empty value appearing in NullFields will be sent to the server as
29345	// null. It is an error if a field in this list has a non-empty value.
29346	// This may be used to include null fields in Patch requests.
29347	NullFields []string `json:"-"`
29348}
29349
29350func (s *ProjectsEnableXpnResourceRequest) MarshalJSON() ([]byte, error) {
29351	type NoMethod ProjectsEnableXpnResourceRequest
29352	raw := NoMethod(*s)
29353	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29354}
29355
29356type ProjectsGetXpnResources struct {
29357	// Kind: [Output Only] Type of resource. Always
29358	// compute#projectsGetXpnResources for lists of service resources (a.k.a
29359	// service projects)
29360	Kind string `json:"kind,omitempty"`
29361
29362	// NextPageToken: [Output Only] This token allows you to get the next
29363	// page of results for list requests. If the number of results is larger
29364	// than maxResults, use the nextPageToken as a value for the query
29365	// parameter pageToken in the next list request. Subsequent list
29366	// requests will have their own nextPageToken to continue paging through
29367	// the results.
29368	NextPageToken string `json:"nextPageToken,omitempty"`
29369
29370	// Resources: Service resources (a.k.a service projects) attached to
29371	// this project as their shared VPC host.
29372	Resources []*XpnResourceId `json:"resources,omitempty"`
29373
29374	// ServerResponse contains the HTTP response code and headers from the
29375	// server.
29376	googleapi.ServerResponse `json:"-"`
29377
29378	// ForceSendFields is a list of field names (e.g. "Kind") to
29379	// unconditionally include in API requests. By default, fields with
29380	// empty values are omitted from API requests. However, any non-pointer,
29381	// non-interface field appearing in ForceSendFields will be sent to the
29382	// server regardless of whether the field is empty or not. This may be
29383	// used to include empty fields in Patch requests.
29384	ForceSendFields []string `json:"-"`
29385
29386	// NullFields is a list of field names (e.g. "Kind") to include in API
29387	// requests with the JSON null value. By default, fields with empty
29388	// values are omitted from API requests. However, any field with an
29389	// empty value appearing in NullFields will be sent to the server as
29390	// null. It is an error if a field in this list has a non-empty value.
29391	// This may be used to include null fields in Patch requests.
29392	NullFields []string `json:"-"`
29393}
29394
29395func (s *ProjectsGetXpnResources) MarshalJSON() ([]byte, error) {
29396	type NoMethod ProjectsGetXpnResources
29397	raw := NoMethod(*s)
29398	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29399}
29400
29401type ProjectsListXpnHostsRequest struct {
29402	// Organization: Optional organization ID managed by Cloud Resource
29403	// Manager, for which to list shared VPC host projects. If not
29404	// specified, the organization will be inferred from the project.
29405	Organization string `json:"organization,omitempty"`
29406
29407	// ForceSendFields is a list of field names (e.g. "Organization") to
29408	// unconditionally include in API requests. By default, fields with
29409	// empty values are omitted from API requests. However, any non-pointer,
29410	// non-interface field appearing in ForceSendFields will be sent to the
29411	// server regardless of whether the field is empty or not. This may be
29412	// used to include empty fields in Patch requests.
29413	ForceSendFields []string `json:"-"`
29414
29415	// NullFields is a list of field names (e.g. "Organization") to include
29416	// in API requests with the JSON null value. By default, fields with
29417	// empty values are omitted from API requests. However, any field with
29418	// an empty value appearing in NullFields will be sent to the server as
29419	// null. It is an error if a field in this list has a non-empty value.
29420	// This may be used to include null fields in Patch requests.
29421	NullFields []string `json:"-"`
29422}
29423
29424func (s *ProjectsListXpnHostsRequest) MarshalJSON() ([]byte, error) {
29425	type NoMethod ProjectsListXpnHostsRequest
29426	raw := NoMethod(*s)
29427	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29428}
29429
29430type ProjectsSetDefaultNetworkTierRequest struct {
29431	// NetworkTier: Default network tier to be set.
29432	//
29433	// Possible values:
29434	//   "PREMIUM"
29435	//   "STANDARD"
29436	NetworkTier string `json:"networkTier,omitempty"`
29437
29438	// ForceSendFields is a list of field names (e.g. "NetworkTier") to
29439	// unconditionally include in API requests. By default, fields with
29440	// empty values are omitted from API requests. However, any non-pointer,
29441	// non-interface field appearing in ForceSendFields will be sent to the
29442	// server regardless of whether the field is empty or not. This may be
29443	// used to include empty fields in Patch requests.
29444	ForceSendFields []string `json:"-"`
29445
29446	// NullFields is a list of field names (e.g. "NetworkTier") to include
29447	// in API requests with the JSON null value. By default, fields with
29448	// empty values are omitted from API requests. However, any field with
29449	// an empty value appearing in NullFields will be sent to the server as
29450	// null. It is an error if a field in this list has a non-empty value.
29451	// This may be used to include null fields in Patch requests.
29452	NullFields []string `json:"-"`
29453}
29454
29455func (s *ProjectsSetDefaultNetworkTierRequest) MarshalJSON() ([]byte, error) {
29456	type NoMethod ProjectsSetDefaultNetworkTierRequest
29457	raw := NoMethod(*s)
29458	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29459}
29460
29461// PublicAdvertisedPrefix: A public advertised prefix represents an
29462// aggregated IP prefix or netblock which customers bring to cloud. The
29463// IP prefix is a single unit of route advertisement and is announced
29464// globally to the internet.
29465type PublicAdvertisedPrefix struct {
29466	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
29467	// format.
29468	CreationTimestamp string `json:"creationTimestamp,omitempty"`
29469
29470	// Description: An optional description of this resource. Provide this
29471	// property when you create the resource.
29472	Description string `json:"description,omitempty"`
29473
29474	// DnsVerificationIp: The IPv4 address to be used for reverse DNS
29475	// verification.
29476	DnsVerificationIp string `json:"dnsVerificationIp,omitempty"`
29477
29478	// Fingerprint: Fingerprint of this resource. A hash of the contents
29479	// stored in this object. This field is used in optimistic locking. This
29480	// field will be ignored when inserting a new PublicAdvertisedPrefix. An
29481	// up-to-date fingerprint must be provided in order to update the
29482	// PublicAdvertisedPrefix, otherwise the request will fail with error
29483	// 412 conditionNotMet.
29484	//
29485	// To see the latest fingerprint, make a get() request to retrieve a
29486	// PublicAdvertisedPrefix.
29487	Fingerprint string `json:"fingerprint,omitempty"`
29488
29489	// Id: [Output Only] The unique identifier for the resource type. The
29490	// server generates this identifier.
29491	Id uint64 `json:"id,omitempty,string"`
29492
29493	// IpCidrRange: The IPv4 address range, in CIDR format, represented by
29494	// this public advertised prefix.
29495	IpCidrRange string `json:"ipCidrRange,omitempty"`
29496
29497	// Kind: [Output Only] Type of the resource. Always
29498	// compute#publicAdvertisedPrefix for public advertised prefixes.
29499	Kind string `json:"kind,omitempty"`
29500
29501	// Name: Name of the resource. Provided by the client when the resource
29502	// is created. The name must be 1-63 characters long, and comply with
29503	// RFC1035. Specifically, the name must be 1-63 characters long and
29504	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
29505	// the first character must be a lowercase letter, and all following
29506	// characters must be a dash, lowercase letter, or digit, except the
29507	// last character, which cannot be a dash.
29508	Name string `json:"name,omitempty"`
29509
29510	// PublicDelegatedPrefixs: [Output Only] The list of public delegated
29511	// prefixes that exist for this public advertised prefix.
29512	PublicDelegatedPrefixs []*PublicAdvertisedPrefixPublicDelegatedPrefix `json:"publicDelegatedPrefixs,omitempty"`
29513
29514	// SelfLink: [Output Only] Server-defined URL for the resource.
29515	SelfLink string `json:"selfLink,omitempty"`
29516
29517	// SharedSecret: [Output Only] The shared secret to be used for reverse
29518	// DNS verification.
29519	SharedSecret string `json:"sharedSecret,omitempty"`
29520
29521	// Status: The status of the public advertised prefix.
29522	//
29523	// Possible values:
29524	//   "INITIAL"
29525	//   "PREFIX_CONFIGURATION_COMPLETE"
29526	//   "PREFIX_CONFIGURATION_IN_PROGRESS"
29527	//   "PREFIX_REMOVAL_IN_PROGRESS"
29528	//   "PTR_CONFIGURED"
29529	//   "REVERSE_DNS_LOOKUP_FAILED"
29530	//   "VALIDATED"
29531	Status string `json:"status,omitempty"`
29532
29533	// ServerResponse contains the HTTP response code and headers from the
29534	// server.
29535	googleapi.ServerResponse `json:"-"`
29536
29537	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
29538	// to unconditionally include in API requests. By default, fields with
29539	// empty values are omitted from API requests. However, any non-pointer,
29540	// non-interface field appearing in ForceSendFields will be sent to the
29541	// server regardless of whether the field is empty or not. This may be
29542	// used to include empty fields in Patch requests.
29543	ForceSendFields []string `json:"-"`
29544
29545	// NullFields is a list of field names (e.g. "CreationTimestamp") to
29546	// include in API requests with the JSON null value. By default, fields
29547	// with empty values are omitted from API requests. However, any field
29548	// with an empty value appearing in NullFields will be sent to the
29549	// server as null. It is an error if a field in this list has a
29550	// non-empty value. This may be used to include null fields in Patch
29551	// requests.
29552	NullFields []string `json:"-"`
29553}
29554
29555func (s *PublicAdvertisedPrefix) MarshalJSON() ([]byte, error) {
29556	type NoMethod PublicAdvertisedPrefix
29557	raw := NoMethod(*s)
29558	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29559}
29560
29561type PublicAdvertisedPrefixList struct {
29562	// Id: [Output Only] Unique identifier for the resource; defined by the
29563	// server.
29564	Id string `json:"id,omitempty"`
29565
29566	// Items: A list of PublicAdvertisedPrefix resources.
29567	Items []*PublicAdvertisedPrefix `json:"items,omitempty"`
29568
29569	// Kind: [Output Only] Type of the resource. Always
29570	// compute#publicAdvertisedPrefix for public advertised prefixes.
29571	Kind string `json:"kind,omitempty"`
29572
29573	// NextPageToken: [Output Only] This token allows you to get the next
29574	// page of results for list requests. If the number of results is larger
29575	// than maxResults, use the nextPageToken as a value for the query
29576	// parameter pageToken in the next list request. Subsequent list
29577	// requests will have their own nextPageToken to continue paging through
29578	// the results.
29579	NextPageToken string `json:"nextPageToken,omitempty"`
29580
29581	// SelfLink: [Output Only] Server-defined URL for this resource.
29582	SelfLink string `json:"selfLink,omitempty"`
29583
29584	// Warning: [Output Only] Informational warning message.
29585	Warning *PublicAdvertisedPrefixListWarning `json:"warning,omitempty"`
29586
29587	// ServerResponse contains the HTTP response code and headers from the
29588	// server.
29589	googleapi.ServerResponse `json:"-"`
29590
29591	// ForceSendFields is a list of field names (e.g. "Id") to
29592	// unconditionally include in API requests. By default, fields with
29593	// empty values are omitted from API requests. However, any non-pointer,
29594	// non-interface field appearing in ForceSendFields will be sent to the
29595	// server regardless of whether the field is empty or not. This may be
29596	// used to include empty fields in Patch requests.
29597	ForceSendFields []string `json:"-"`
29598
29599	// NullFields is a list of field names (e.g. "Id") to include in API
29600	// requests with the JSON null value. By default, fields with empty
29601	// values are omitted from API requests. However, any field with an
29602	// empty value appearing in NullFields will be sent to the server as
29603	// null. It is an error if a field in this list has a non-empty value.
29604	// This may be used to include null fields in Patch requests.
29605	NullFields []string `json:"-"`
29606}
29607
29608func (s *PublicAdvertisedPrefixList) MarshalJSON() ([]byte, error) {
29609	type NoMethod PublicAdvertisedPrefixList
29610	raw := NoMethod(*s)
29611	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29612}
29613
29614// PublicAdvertisedPrefixListWarning: [Output Only] Informational
29615// warning message.
29616type PublicAdvertisedPrefixListWarning struct {
29617	// Code: [Output Only] A warning code, if applicable. For example,
29618	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
29619	// the response.
29620	//
29621	// Possible values:
29622	//   "CLEANUP_FAILED"
29623	//   "DEPRECATED_RESOURCE_USED"
29624	//   "DEPRECATED_TYPE_USED"
29625	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
29626	//   "EXPERIMENTAL_TYPE_USED"
29627	//   "EXTERNAL_API_WARNING"
29628	//   "FIELD_VALUE_OVERRIDEN"
29629	//   "INJECTED_KERNELS_DEPRECATED"
29630	//   "LARGE_DEPLOYMENT_WARNING"
29631	//   "MISSING_TYPE_DEPENDENCY"
29632	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
29633	//   "NEXT_HOP_CANNOT_IP_FORWARD"
29634	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
29635	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
29636	//   "NEXT_HOP_NOT_RUNNING"
29637	//   "NOT_CRITICAL_ERROR"
29638	//   "NO_RESULTS_ON_PAGE"
29639	//   "PARTIAL_SUCCESS"
29640	//   "REQUIRED_TOS_AGREEMENT"
29641	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
29642	//   "RESOURCE_NOT_DELETED"
29643	//   "SCHEMA_VALIDATION_IGNORED"
29644	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
29645	//   "UNDECLARED_PROPERTIES"
29646	//   "UNREACHABLE"
29647	Code string `json:"code,omitempty"`
29648
29649	// Data: [Output Only] Metadata about this warning in key: value format.
29650	// For example:
29651	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
29652	Data []*PublicAdvertisedPrefixListWarningData `json:"data,omitempty"`
29653
29654	// Message: [Output Only] A human-readable description of the warning
29655	// code.
29656	Message string `json:"message,omitempty"`
29657
29658	// ForceSendFields is a list of field names (e.g. "Code") to
29659	// unconditionally include in API requests. By default, fields with
29660	// empty values are omitted from API requests. However, any non-pointer,
29661	// non-interface field appearing in ForceSendFields will be sent to the
29662	// server regardless of whether the field is empty or not. This may be
29663	// used to include empty fields in Patch requests.
29664	ForceSendFields []string `json:"-"`
29665
29666	// NullFields is a list of field names (e.g. "Code") to include in API
29667	// requests with the JSON null value. By default, fields with empty
29668	// values are omitted from API requests. However, any field with an
29669	// empty value appearing in NullFields will be sent to the server as
29670	// null. It is an error if a field in this list has a non-empty value.
29671	// This may be used to include null fields in Patch requests.
29672	NullFields []string `json:"-"`
29673}
29674
29675func (s *PublicAdvertisedPrefixListWarning) MarshalJSON() ([]byte, error) {
29676	type NoMethod PublicAdvertisedPrefixListWarning
29677	raw := NoMethod(*s)
29678	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29679}
29680
29681type PublicAdvertisedPrefixListWarningData struct {
29682	// Key: [Output Only] A key that provides more detail on the warning
29683	// being returned. For example, for warnings where there are no results
29684	// in a list request for a particular zone, this key might be scope and
29685	// the key value might be the zone name. Other examples might be a key
29686	// indicating a deprecated resource and a suggested replacement, or a
29687	// warning about invalid network settings (for example, if an instance
29688	// attempts to perform IP forwarding but is not enabled for IP
29689	// forwarding).
29690	Key string `json:"key,omitempty"`
29691
29692	// Value: [Output Only] A warning data value corresponding to the key.
29693	Value string `json:"value,omitempty"`
29694
29695	// ForceSendFields is a list of field names (e.g. "Key") to
29696	// unconditionally include in API requests. By default, fields with
29697	// empty values are omitted from API requests. However, any non-pointer,
29698	// non-interface field appearing in ForceSendFields will be sent to the
29699	// server regardless of whether the field is empty or not. This may be
29700	// used to include empty fields in Patch requests.
29701	ForceSendFields []string `json:"-"`
29702
29703	// NullFields is a list of field names (e.g. "Key") to include in API
29704	// requests with the JSON null value. By default, fields with empty
29705	// values are omitted from API requests. However, any field with an
29706	// empty value appearing in NullFields will be sent to the server as
29707	// null. It is an error if a field in this list has a non-empty value.
29708	// This may be used to include null fields in Patch requests.
29709	NullFields []string `json:"-"`
29710}
29711
29712func (s *PublicAdvertisedPrefixListWarningData) MarshalJSON() ([]byte, error) {
29713	type NoMethod PublicAdvertisedPrefixListWarningData
29714	raw := NoMethod(*s)
29715	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29716}
29717
29718// PublicAdvertisedPrefixPublicDelegatedPrefix: Represents a CIDR range
29719// which can be used to assign addresses.
29720type PublicAdvertisedPrefixPublicDelegatedPrefix struct {
29721	// IpRange: The IP address range of the public delegated prefix
29722	IpRange string `json:"ipRange,omitempty"`
29723
29724	// Name: The name of the public delegated prefix
29725	Name string `json:"name,omitempty"`
29726
29727	// Project: The project number of the public delegated prefix
29728	Project string `json:"project,omitempty"`
29729
29730	// Region: The region of the public delegated prefix if it is regional.
29731	// If absent, the prefix is global.
29732	Region string `json:"region,omitempty"`
29733
29734	// Status: The status of the public delegated prefix. Possible values
29735	// are: INITIALIZING: The public delegated prefix is being initialized
29736	// and addresses cannot be created yet. ANNOUNCED: The public delegated
29737	// prefix is active.
29738	Status string `json:"status,omitempty"`
29739
29740	// ForceSendFields is a list of field names (e.g. "IpRange") to
29741	// unconditionally include in API requests. By default, fields with
29742	// empty values are omitted from API requests. However, any non-pointer,
29743	// non-interface field appearing in ForceSendFields will be sent to the
29744	// server regardless of whether the field is empty or not. This may be
29745	// used to include empty fields in Patch requests.
29746	ForceSendFields []string `json:"-"`
29747
29748	// NullFields is a list of field names (e.g. "IpRange") to include in
29749	// API requests with the JSON null value. By default, fields with empty
29750	// values are omitted from API requests. However, any field with an
29751	// empty value appearing in NullFields will be sent to the server as
29752	// null. It is an error if a field in this list has a non-empty value.
29753	// This may be used to include null fields in Patch requests.
29754	NullFields []string `json:"-"`
29755}
29756
29757func (s *PublicAdvertisedPrefixPublicDelegatedPrefix) MarshalJSON() ([]byte, error) {
29758	type NoMethod PublicAdvertisedPrefixPublicDelegatedPrefix
29759	raw := NoMethod(*s)
29760	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29761}
29762
29763// PublicDelegatedPrefix: A PublicDelegatedPrefix resource represents an
29764// IP block within a PublicAdvertisedPrefix that is configured within a
29765// single cloud scope (global or region). IPs in the block can be
29766// allocated to resources within that scope. Public delegated prefixes
29767// may be further broken up into smaller IP blocks in the same scope as
29768// the parent block.
29769type PublicDelegatedPrefix struct {
29770	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
29771	// format.
29772	CreationTimestamp string `json:"creationTimestamp,omitempty"`
29773
29774	// Description: An optional description of this resource. Provide this
29775	// property when you create the resource.
29776	Description string `json:"description,omitempty"`
29777
29778	// Fingerprint: Fingerprint of this resource. A hash of the contents
29779	// stored in this object. This field is used in optimistic locking. This
29780	// field will be ignored when inserting a new PublicDelegatedPrefix. An
29781	// up-to-date fingerprint must be provided in order to update the
29782	// PublicDelegatedPrefix, otherwise the request will fail with error 412
29783	// conditionNotMet.
29784	//
29785	// To see the latest fingerprint, make a get() request to retrieve a
29786	// PublicDelegatedPrefix.
29787	Fingerprint string `json:"fingerprint,omitempty"`
29788
29789	// Id: [Output Only] The unique identifier for the resource type. The
29790	// server generates this identifier.
29791	Id uint64 `json:"id,omitempty,string"`
29792
29793	// IpCidrRange: The IPv4 address range, in CIDR format, represented by
29794	// this public delegated prefix.
29795	IpCidrRange string `json:"ipCidrRange,omitempty"`
29796
29797	// IsLiveMigration: If true, the prefix will be live migrated.
29798	IsLiveMigration bool `json:"isLiveMigration,omitempty"`
29799
29800	// Kind: [Output Only] Type of the resource. Always
29801	// compute#publicDelegatedPrefix for public delegated prefixes.
29802	Kind string `json:"kind,omitempty"`
29803
29804	// Name: Name of the resource. Provided by the client when the resource
29805	// is created. The name must be 1-63 characters long, and comply with
29806	// RFC1035. Specifically, the name must be 1-63 characters long and
29807	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
29808	// the first character must be a lowercase letter, and all following
29809	// characters must be a dash, lowercase letter, or digit, except the
29810	// last character, which cannot be a dash.
29811	Name string `json:"name,omitempty"`
29812
29813	// ParentPrefix: The URL of parent prefix. Either PublicAdvertisedPrefix
29814	// or PublicDelegatedPrefix.
29815	ParentPrefix string `json:"parentPrefix,omitempty"`
29816
29817	// PublicDelegatedSubPrefixs: The list of sub public delegated prefixes
29818	// that exist for this public delegated prefix.
29819	PublicDelegatedSubPrefixs []*PublicDelegatedPrefixPublicDelegatedSubPrefix `json:"publicDelegatedSubPrefixs,omitempty"`
29820
29821	// Region: [Output Only] URL of the region where the public delegated
29822	// prefix resides. This field applies only to the region resource. You
29823	// must specify this field as part of the HTTP request URL. It is not
29824	// settable as a field in the request body.
29825	Region string `json:"region,omitempty"`
29826
29827	// SelfLink: [Output Only] Server-defined URL for the resource.
29828	SelfLink string `json:"selfLink,omitempty"`
29829
29830	// Status: [Output Only] The status of the public delegated prefix.
29831	//
29832	// Possible values:
29833	//   "ANNOUNCED"
29834	//   "DELETING"
29835	//   "INITIALIZING"
29836	Status string `json:"status,omitempty"`
29837
29838	// ServerResponse contains the HTTP response code and headers from the
29839	// server.
29840	googleapi.ServerResponse `json:"-"`
29841
29842	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
29843	// to unconditionally include in API requests. By default, fields with
29844	// empty values are omitted from API requests. However, any non-pointer,
29845	// non-interface field appearing in ForceSendFields will be sent to the
29846	// server regardless of whether the field is empty or not. This may be
29847	// used to include empty fields in Patch requests.
29848	ForceSendFields []string `json:"-"`
29849
29850	// NullFields is a list of field names (e.g. "CreationTimestamp") to
29851	// include in API requests with the JSON null value. By default, fields
29852	// with empty values are omitted from API requests. However, any field
29853	// with an empty value appearing in NullFields will be sent to the
29854	// server as null. It is an error if a field in this list has a
29855	// non-empty value. This may be used to include null fields in Patch
29856	// requests.
29857	NullFields []string `json:"-"`
29858}
29859
29860func (s *PublicDelegatedPrefix) MarshalJSON() ([]byte, error) {
29861	type NoMethod PublicDelegatedPrefix
29862	raw := NoMethod(*s)
29863	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29864}
29865
29866type PublicDelegatedPrefixAggregatedList struct {
29867	// Id: [Output Only] Unique identifier for the resource; defined by the
29868	// server.
29869	Id string `json:"id,omitempty"`
29870
29871	// Items: A list of PublicDelegatedPrefixesScopedList resources.
29872	Items map[string]PublicDelegatedPrefixesScopedList `json:"items,omitempty"`
29873
29874	// Kind: [Output Only] Type of the resource. Always
29875	// compute#publicDelegatedPrefixAggregatedList for aggregated lists of
29876	// public delegated prefixes.
29877	Kind string `json:"kind,omitempty"`
29878
29879	// NextPageToken: [Output Only] This token allows you to get the next
29880	// page of results for list requests. If the number of results is larger
29881	// than maxResults, use the nextPageToken as a value for the query
29882	// parameter pageToken in the next list request. Subsequent list
29883	// requests will have their own nextPageToken to continue paging through
29884	// the results.
29885	NextPageToken string `json:"nextPageToken,omitempty"`
29886
29887	// SelfLink: [Output Only] Server-defined URL for this resource.
29888	SelfLink string `json:"selfLink,omitempty"`
29889
29890	// Unreachables: [Output Only] Unreachable resources.
29891	Unreachables []string `json:"unreachables,omitempty"`
29892
29893	// Warning: [Output Only] Informational warning message.
29894	Warning *PublicDelegatedPrefixAggregatedListWarning `json:"warning,omitempty"`
29895
29896	// ServerResponse contains the HTTP response code and headers from the
29897	// server.
29898	googleapi.ServerResponse `json:"-"`
29899
29900	// ForceSendFields is a list of field names (e.g. "Id") to
29901	// unconditionally include in API requests. By default, fields with
29902	// empty values are omitted from API requests. However, any non-pointer,
29903	// non-interface field appearing in ForceSendFields will be sent to the
29904	// server regardless of whether the field is empty or not. This may be
29905	// used to include empty fields in Patch requests.
29906	ForceSendFields []string `json:"-"`
29907
29908	// NullFields is a list of field names (e.g. "Id") to include in API
29909	// requests with the JSON null value. By default, fields with empty
29910	// values are omitted from API requests. However, any field with an
29911	// empty value appearing in NullFields will be sent to the server as
29912	// null. It is an error if a field in this list has a non-empty value.
29913	// This may be used to include null fields in Patch requests.
29914	NullFields []string `json:"-"`
29915}
29916
29917func (s *PublicDelegatedPrefixAggregatedList) MarshalJSON() ([]byte, error) {
29918	type NoMethod PublicDelegatedPrefixAggregatedList
29919	raw := NoMethod(*s)
29920	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29921}
29922
29923// PublicDelegatedPrefixAggregatedListWarning: [Output Only]
29924// Informational warning message.
29925type PublicDelegatedPrefixAggregatedListWarning struct {
29926	// Code: [Output Only] A warning code, if applicable. For example,
29927	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
29928	// the response.
29929	//
29930	// Possible values:
29931	//   "CLEANUP_FAILED"
29932	//   "DEPRECATED_RESOURCE_USED"
29933	//   "DEPRECATED_TYPE_USED"
29934	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
29935	//   "EXPERIMENTAL_TYPE_USED"
29936	//   "EXTERNAL_API_WARNING"
29937	//   "FIELD_VALUE_OVERRIDEN"
29938	//   "INJECTED_KERNELS_DEPRECATED"
29939	//   "LARGE_DEPLOYMENT_WARNING"
29940	//   "MISSING_TYPE_DEPENDENCY"
29941	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
29942	//   "NEXT_HOP_CANNOT_IP_FORWARD"
29943	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
29944	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
29945	//   "NEXT_HOP_NOT_RUNNING"
29946	//   "NOT_CRITICAL_ERROR"
29947	//   "NO_RESULTS_ON_PAGE"
29948	//   "PARTIAL_SUCCESS"
29949	//   "REQUIRED_TOS_AGREEMENT"
29950	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
29951	//   "RESOURCE_NOT_DELETED"
29952	//   "SCHEMA_VALIDATION_IGNORED"
29953	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
29954	//   "UNDECLARED_PROPERTIES"
29955	//   "UNREACHABLE"
29956	Code string `json:"code,omitempty"`
29957
29958	// Data: [Output Only] Metadata about this warning in key: value format.
29959	// For example:
29960	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
29961	Data []*PublicDelegatedPrefixAggregatedListWarningData `json:"data,omitempty"`
29962
29963	// Message: [Output Only] A human-readable description of the warning
29964	// code.
29965	Message string `json:"message,omitempty"`
29966
29967	// ForceSendFields is a list of field names (e.g. "Code") to
29968	// unconditionally include in API requests. By default, fields with
29969	// empty values are omitted from API requests. However, any non-pointer,
29970	// non-interface field appearing in ForceSendFields will be sent to the
29971	// server regardless of whether the field is empty or not. This may be
29972	// used to include empty fields in Patch requests.
29973	ForceSendFields []string `json:"-"`
29974
29975	// NullFields is a list of field names (e.g. "Code") to include in API
29976	// requests with the JSON null value. By default, fields with empty
29977	// values are omitted from API requests. However, any field with an
29978	// empty value appearing in NullFields will be sent to the server as
29979	// null. It is an error if a field in this list has a non-empty value.
29980	// This may be used to include null fields in Patch requests.
29981	NullFields []string `json:"-"`
29982}
29983
29984func (s *PublicDelegatedPrefixAggregatedListWarning) MarshalJSON() ([]byte, error) {
29985	type NoMethod PublicDelegatedPrefixAggregatedListWarning
29986	raw := NoMethod(*s)
29987	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29988}
29989
29990type PublicDelegatedPrefixAggregatedListWarningData struct {
29991	// Key: [Output Only] A key that provides more detail on the warning
29992	// being returned. For example, for warnings where there are no results
29993	// in a list request for a particular zone, this key might be scope and
29994	// the key value might be the zone name. Other examples might be a key
29995	// indicating a deprecated resource and a suggested replacement, or a
29996	// warning about invalid network settings (for example, if an instance
29997	// attempts to perform IP forwarding but is not enabled for IP
29998	// forwarding).
29999	Key string `json:"key,omitempty"`
30000
30001	// Value: [Output Only] A warning data value corresponding to the key.
30002	Value string `json:"value,omitempty"`
30003
30004	// ForceSendFields is a list of field names (e.g. "Key") to
30005	// unconditionally include in API requests. By default, fields with
30006	// empty values are omitted from API requests. However, any non-pointer,
30007	// non-interface field appearing in ForceSendFields will be sent to the
30008	// server regardless of whether the field is empty or not. This may be
30009	// used to include empty fields in Patch requests.
30010	ForceSendFields []string `json:"-"`
30011
30012	// NullFields is a list of field names (e.g. "Key") to include in API
30013	// requests with the JSON null value. By default, fields with empty
30014	// values are omitted from API requests. However, any field with an
30015	// empty value appearing in NullFields will be sent to the server as
30016	// null. It is an error if a field in this list has a non-empty value.
30017	// This may be used to include null fields in Patch requests.
30018	NullFields []string `json:"-"`
30019}
30020
30021func (s *PublicDelegatedPrefixAggregatedListWarningData) MarshalJSON() ([]byte, error) {
30022	type NoMethod PublicDelegatedPrefixAggregatedListWarningData
30023	raw := NoMethod(*s)
30024	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30025}
30026
30027type PublicDelegatedPrefixList struct {
30028	// Id: [Output Only] Unique identifier for the resource; defined by the
30029	// server.
30030	Id string `json:"id,omitempty"`
30031
30032	// Items: A list of PublicDelegatedPrefix resources.
30033	Items []*PublicDelegatedPrefix `json:"items,omitempty"`
30034
30035	// Kind: [Output Only] Type of the resource. Always
30036	// compute#publicDelegatedPrefixList for public delegated prefixes.
30037	Kind string `json:"kind,omitempty"`
30038
30039	// NextPageToken: [Output Only] This token allows you to get the next
30040	// page of results for list requests. If the number of results is larger
30041	// than maxResults, use the nextPageToken as a value for the query
30042	// parameter pageToken in the next list request. Subsequent list
30043	// requests will have their own nextPageToken to continue paging through
30044	// the results.
30045	NextPageToken string `json:"nextPageToken,omitempty"`
30046
30047	// SelfLink: [Output Only] Server-defined URL for this resource.
30048	SelfLink string `json:"selfLink,omitempty"`
30049
30050	// Warning: [Output Only] Informational warning message.
30051	Warning *PublicDelegatedPrefixListWarning `json:"warning,omitempty"`
30052
30053	// ServerResponse contains the HTTP response code and headers from the
30054	// server.
30055	googleapi.ServerResponse `json:"-"`
30056
30057	// ForceSendFields is a list of field names (e.g. "Id") to
30058	// unconditionally include in API requests. By default, fields with
30059	// empty values are omitted from API requests. However, any non-pointer,
30060	// non-interface field appearing in ForceSendFields will be sent to the
30061	// server regardless of whether the field is empty or not. This may be
30062	// used to include empty fields in Patch requests.
30063	ForceSendFields []string `json:"-"`
30064
30065	// NullFields is a list of field names (e.g. "Id") to include in API
30066	// requests with the JSON null value. By default, fields with empty
30067	// values are omitted from API requests. However, any field with an
30068	// empty value appearing in NullFields will be sent to the server as
30069	// null. It is an error if a field in this list has a non-empty value.
30070	// This may be used to include null fields in Patch requests.
30071	NullFields []string `json:"-"`
30072}
30073
30074func (s *PublicDelegatedPrefixList) MarshalJSON() ([]byte, error) {
30075	type NoMethod PublicDelegatedPrefixList
30076	raw := NoMethod(*s)
30077	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30078}
30079
30080// PublicDelegatedPrefixListWarning: [Output Only] Informational warning
30081// message.
30082type PublicDelegatedPrefixListWarning struct {
30083	// Code: [Output Only] A warning code, if applicable. For example,
30084	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
30085	// the response.
30086	//
30087	// Possible values:
30088	//   "CLEANUP_FAILED"
30089	//   "DEPRECATED_RESOURCE_USED"
30090	//   "DEPRECATED_TYPE_USED"
30091	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
30092	//   "EXPERIMENTAL_TYPE_USED"
30093	//   "EXTERNAL_API_WARNING"
30094	//   "FIELD_VALUE_OVERRIDEN"
30095	//   "INJECTED_KERNELS_DEPRECATED"
30096	//   "LARGE_DEPLOYMENT_WARNING"
30097	//   "MISSING_TYPE_DEPENDENCY"
30098	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
30099	//   "NEXT_HOP_CANNOT_IP_FORWARD"
30100	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
30101	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
30102	//   "NEXT_HOP_NOT_RUNNING"
30103	//   "NOT_CRITICAL_ERROR"
30104	//   "NO_RESULTS_ON_PAGE"
30105	//   "PARTIAL_SUCCESS"
30106	//   "REQUIRED_TOS_AGREEMENT"
30107	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
30108	//   "RESOURCE_NOT_DELETED"
30109	//   "SCHEMA_VALIDATION_IGNORED"
30110	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
30111	//   "UNDECLARED_PROPERTIES"
30112	//   "UNREACHABLE"
30113	Code string `json:"code,omitempty"`
30114
30115	// Data: [Output Only] Metadata about this warning in key: value format.
30116	// For example:
30117	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
30118	Data []*PublicDelegatedPrefixListWarningData `json:"data,omitempty"`
30119
30120	// Message: [Output Only] A human-readable description of the warning
30121	// code.
30122	Message string `json:"message,omitempty"`
30123
30124	// ForceSendFields is a list of field names (e.g. "Code") to
30125	// unconditionally include in API requests. By default, fields with
30126	// empty values are omitted from API requests. However, any non-pointer,
30127	// non-interface field appearing in ForceSendFields will be sent to the
30128	// server regardless of whether the field is empty or not. This may be
30129	// used to include empty fields in Patch requests.
30130	ForceSendFields []string `json:"-"`
30131
30132	// NullFields is a list of field names (e.g. "Code") to include in API
30133	// requests with the JSON null value. By default, fields with empty
30134	// values are omitted from API requests. However, any field with an
30135	// empty value appearing in NullFields will be sent to the server as
30136	// null. It is an error if a field in this list has a non-empty value.
30137	// This may be used to include null fields in Patch requests.
30138	NullFields []string `json:"-"`
30139}
30140
30141func (s *PublicDelegatedPrefixListWarning) MarshalJSON() ([]byte, error) {
30142	type NoMethod PublicDelegatedPrefixListWarning
30143	raw := NoMethod(*s)
30144	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30145}
30146
30147type PublicDelegatedPrefixListWarningData struct {
30148	// Key: [Output Only] A key that provides more detail on the warning
30149	// being returned. For example, for warnings where there are no results
30150	// in a list request for a particular zone, this key might be scope and
30151	// the key value might be the zone name. Other examples might be a key
30152	// indicating a deprecated resource and a suggested replacement, or a
30153	// warning about invalid network settings (for example, if an instance
30154	// attempts to perform IP forwarding but is not enabled for IP
30155	// forwarding).
30156	Key string `json:"key,omitempty"`
30157
30158	// Value: [Output Only] A warning data value corresponding to the key.
30159	Value string `json:"value,omitempty"`
30160
30161	// ForceSendFields is a list of field names (e.g. "Key") to
30162	// unconditionally include in API requests. By default, fields with
30163	// empty values are omitted from API requests. However, any non-pointer,
30164	// non-interface field appearing in ForceSendFields will be sent to the
30165	// server regardless of whether the field is empty or not. This may be
30166	// used to include empty fields in Patch requests.
30167	ForceSendFields []string `json:"-"`
30168
30169	// NullFields is a list of field names (e.g. "Key") to include in API
30170	// requests with the JSON null value. By default, fields with empty
30171	// values are omitted from API requests. However, any field with an
30172	// empty value appearing in NullFields will be sent to the server as
30173	// null. It is an error if a field in this list has a non-empty value.
30174	// This may be used to include null fields in Patch requests.
30175	NullFields []string `json:"-"`
30176}
30177
30178func (s *PublicDelegatedPrefixListWarningData) MarshalJSON() ([]byte, error) {
30179	type NoMethod PublicDelegatedPrefixListWarningData
30180	raw := NoMethod(*s)
30181	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30182}
30183
30184// PublicDelegatedPrefixPublicDelegatedSubPrefix: Represents a sub
30185// PublicDelegatedPrefix.
30186type PublicDelegatedPrefixPublicDelegatedSubPrefix struct {
30187	// DelegateeProject: Name of the project scoping this
30188	// PublicDelegatedSubPrefix.
30189	DelegateeProject string `json:"delegateeProject,omitempty"`
30190
30191	// Description: An optional description of this resource. Provide this
30192	// property when you create the resource.
30193	Description string `json:"description,omitempty"`
30194
30195	// IpCidrRange: The IPv4 address range, in CIDR format, represented by
30196	// this sub public delegated prefix.
30197	IpCidrRange string `json:"ipCidrRange,omitempty"`
30198
30199	// IsAddress: Whether the sub prefix is delegated to create Address
30200	// resources in the delegatee project.
30201	IsAddress bool `json:"isAddress,omitempty"`
30202
30203	// Name: The name of the sub public delegated prefix.
30204	Name string `json:"name,omitempty"`
30205
30206	// Region: [Output Only] The region of the sub public delegated prefix
30207	// if it is regional. If absent, the sub prefix is global.
30208	Region string `json:"region,omitempty"`
30209
30210	// Status: [Output Only] The status of the sub public delegated prefix.
30211	//
30212	// Possible values:
30213	//   "ACTIVE"
30214	//   "INACTIVE"
30215	Status string `json:"status,omitempty"`
30216
30217	// ForceSendFields is a list of field names (e.g. "DelegateeProject") 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. "DelegateeProject") to
30226	// include in API requests with the JSON null value. By default, fields
30227	// with empty values are omitted from API requests. However, any field
30228	// with an empty value appearing in NullFields will be sent to the
30229	// server as null. It is an error if a field in this list has a
30230	// non-empty value. This may be used to include null fields in Patch
30231	// requests.
30232	NullFields []string `json:"-"`
30233}
30234
30235func (s *PublicDelegatedPrefixPublicDelegatedSubPrefix) MarshalJSON() ([]byte, error) {
30236	type NoMethod PublicDelegatedPrefixPublicDelegatedSubPrefix
30237	raw := NoMethod(*s)
30238	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30239}
30240
30241type PublicDelegatedPrefixesScopedList struct {
30242	// PublicDelegatedPrefixes: [Output Only] A list of
30243	// PublicDelegatedPrefixes contained in this scope.
30244	PublicDelegatedPrefixes []*PublicDelegatedPrefix `json:"publicDelegatedPrefixes,omitempty"`
30245
30246	// Warning: [Output Only] Informational warning which replaces the list
30247	// of public delegated prefixes when the list is empty.
30248	Warning *PublicDelegatedPrefixesScopedListWarning `json:"warning,omitempty"`
30249
30250	// ForceSendFields is a list of field names (e.g.
30251	// "PublicDelegatedPrefixes") to unconditionally include in API
30252	// requests. By default, fields with empty values are omitted from API
30253	// requests. However, any non-pointer, non-interface field appearing in
30254	// ForceSendFields will be sent to the server regardless of whether the
30255	// field is empty or not. This may be used to include empty fields in
30256	// Patch requests.
30257	ForceSendFields []string `json:"-"`
30258
30259	// NullFields is a list of field names (e.g. "PublicDelegatedPrefixes")
30260	// to include in API requests with the JSON null value. By default,
30261	// fields with empty values are omitted from API requests. However, any
30262	// field with an empty value appearing in NullFields will be sent to the
30263	// server as null. It is an error if a field in this list has a
30264	// non-empty value. This may be used to include null fields in Patch
30265	// requests.
30266	NullFields []string `json:"-"`
30267}
30268
30269func (s *PublicDelegatedPrefixesScopedList) MarshalJSON() ([]byte, error) {
30270	type NoMethod PublicDelegatedPrefixesScopedList
30271	raw := NoMethod(*s)
30272	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30273}
30274
30275// PublicDelegatedPrefixesScopedListWarning: [Output Only] Informational
30276// warning which replaces the list of public delegated prefixes when the
30277// list is empty.
30278type PublicDelegatedPrefixesScopedListWarning struct {
30279	// Code: [Output Only] A warning code, if applicable. For example,
30280	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
30281	// the response.
30282	//
30283	// Possible values:
30284	//   "CLEANUP_FAILED"
30285	//   "DEPRECATED_RESOURCE_USED"
30286	//   "DEPRECATED_TYPE_USED"
30287	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
30288	//   "EXPERIMENTAL_TYPE_USED"
30289	//   "EXTERNAL_API_WARNING"
30290	//   "FIELD_VALUE_OVERRIDEN"
30291	//   "INJECTED_KERNELS_DEPRECATED"
30292	//   "LARGE_DEPLOYMENT_WARNING"
30293	//   "MISSING_TYPE_DEPENDENCY"
30294	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
30295	//   "NEXT_HOP_CANNOT_IP_FORWARD"
30296	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
30297	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
30298	//   "NEXT_HOP_NOT_RUNNING"
30299	//   "NOT_CRITICAL_ERROR"
30300	//   "NO_RESULTS_ON_PAGE"
30301	//   "PARTIAL_SUCCESS"
30302	//   "REQUIRED_TOS_AGREEMENT"
30303	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
30304	//   "RESOURCE_NOT_DELETED"
30305	//   "SCHEMA_VALIDATION_IGNORED"
30306	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
30307	//   "UNDECLARED_PROPERTIES"
30308	//   "UNREACHABLE"
30309	Code string `json:"code,omitempty"`
30310
30311	// Data: [Output Only] Metadata about this warning in key: value format.
30312	// For example:
30313	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
30314	Data []*PublicDelegatedPrefixesScopedListWarningData `json:"data,omitempty"`
30315
30316	// Message: [Output Only] A human-readable description of the warning
30317	// code.
30318	Message string `json:"message,omitempty"`
30319
30320	// ForceSendFields is a list of field names (e.g. "Code") to
30321	// unconditionally include in API requests. By default, fields with
30322	// empty values are omitted from API requests. However, any non-pointer,
30323	// non-interface field appearing in ForceSendFields will be sent to the
30324	// server regardless of whether the field is empty or not. This may be
30325	// used to include empty fields in Patch requests.
30326	ForceSendFields []string `json:"-"`
30327
30328	// NullFields is a list of field names (e.g. "Code") to include in API
30329	// requests with the JSON null value. By default, fields with empty
30330	// values are omitted from API requests. However, any field with an
30331	// empty value appearing in NullFields will be sent to the server as
30332	// null. It is an error if a field in this list has a non-empty value.
30333	// This may be used to include null fields in Patch requests.
30334	NullFields []string `json:"-"`
30335}
30336
30337func (s *PublicDelegatedPrefixesScopedListWarning) MarshalJSON() ([]byte, error) {
30338	type NoMethod PublicDelegatedPrefixesScopedListWarning
30339	raw := NoMethod(*s)
30340	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30341}
30342
30343type PublicDelegatedPrefixesScopedListWarningData struct {
30344	// Key: [Output Only] A key that provides more detail on the warning
30345	// being returned. For example, for warnings where there are no results
30346	// in a list request for a particular zone, this key might be scope and
30347	// the key value might be the zone name. Other examples might be a key
30348	// indicating a deprecated resource and a suggested replacement, or a
30349	// warning about invalid network settings (for example, if an instance
30350	// attempts to perform IP forwarding but is not enabled for IP
30351	// forwarding).
30352	Key string `json:"key,omitempty"`
30353
30354	// Value: [Output Only] A warning data value corresponding to the key.
30355	Value string `json:"value,omitempty"`
30356
30357	// ForceSendFields is a list of field names (e.g. "Key") to
30358	// unconditionally include in API requests. By default, fields with
30359	// empty values are omitted from API requests. However, any non-pointer,
30360	// non-interface field appearing in ForceSendFields will be sent to the
30361	// server regardless of whether the field is empty or not. This may be
30362	// used to include empty fields in Patch requests.
30363	ForceSendFields []string `json:"-"`
30364
30365	// NullFields is a list of field names (e.g. "Key") to include in API
30366	// requests with the JSON null value. By default, fields with empty
30367	// values are omitted from API requests. However, any field with an
30368	// empty value appearing in NullFields will be sent to the server as
30369	// null. It is an error if a field in this list has a non-empty value.
30370	// This may be used to include null fields in Patch requests.
30371	NullFields []string `json:"-"`
30372}
30373
30374func (s *PublicDelegatedPrefixesScopedListWarningData) MarshalJSON() ([]byte, error) {
30375	type NoMethod PublicDelegatedPrefixesScopedListWarningData
30376	raw := NoMethod(*s)
30377	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30378}
30379
30380// Quota: A quotas entry.
30381type Quota struct {
30382	// Limit: [Output Only] Quota limit for this metric.
30383	Limit float64 `json:"limit,omitempty"`
30384
30385	// Metric: [Output Only] Name of the quota metric.
30386	//
30387	// Possible values:
30388	//   "A2_CPUS"
30389	//   "AFFINITY_GROUPS"
30390	//   "AUTOSCALERS"
30391	//   "BACKEND_BUCKETS"
30392	//   "BACKEND_SERVICES"
30393	//   "C2D_CPUS"
30394	//   "C2_CPUS"
30395	//   "COMMITMENTS"
30396	//   "COMMITTED_A2_CPUS"
30397	//   "COMMITTED_C2D_CPUS"
30398	//   "COMMITTED_C2_CPUS"
30399	//   "COMMITTED_CPUS"
30400	//   "COMMITTED_E2_CPUS"
30401	//   "COMMITTED_LICENSES"
30402	//   "COMMITTED_LOCAL_SSD_TOTAL_GB"
30403	//   "COMMITTED_MEMORY_OPTIMIZED_CPUS"
30404	//   "COMMITTED_N2A_CPUS"
30405	//   "COMMITTED_N2D_CPUS"
30406	//   "COMMITTED_N2_CPUS"
30407	//   "COMMITTED_NVIDIA_A100_GPUS"
30408	//   "COMMITTED_NVIDIA_K80_GPUS"
30409	//   "COMMITTED_NVIDIA_P100_GPUS"
30410	//   "COMMITTED_NVIDIA_P4_GPUS"
30411	//   "COMMITTED_NVIDIA_T4_GPUS"
30412	//   "COMMITTED_NVIDIA_V100_GPUS"
30413	//   "COMMITTED_P2D_CPUS"
30414	//   "CPUS"
30415	//   "CPUS_ALL_REGIONS"
30416	//   "DISKS_TOTAL_GB"
30417	//   "E2_CPUS"
30418	//   "EXTERNAL_NETWORK_LB_FORWARDING_RULES"
30419	//   "EXTERNAL_PROTOCOL_FORWARDING_RULES"
30420	//   "EXTERNAL_VPN_GATEWAYS"
30421	//   "FIREWALLS"
30422	//   "FORWARDING_RULES"
30423	//   "GLOBAL_INTERNAL_ADDRESSES"
30424	//   "GPUS_ALL_REGIONS"
30425	//   "HEALTH_CHECKS"
30426	//   "IMAGES"
30427	//   "INSTANCES"
30428	//   "INSTANCE_GROUPS"
30429	//   "INSTANCE_GROUP_MANAGERS"
30430	//   "INSTANCE_TEMPLATES"
30431	//   "INTERCONNECTS"
30432	//   "INTERCONNECT_ATTACHMENTS_PER_REGION"
30433	//   "INTERCONNECT_ATTACHMENTS_TOTAL_MBPS"
30434	//   "INTERCONNECT_TOTAL_GBPS"
30435	//   "INTERNAL_ADDRESSES"
30436	//   "INTERNAL_TRAFFIC_DIRECTOR_FORWARDING_RULES"
30437	//   "IN_PLACE_SNAPSHOTS"
30438	//   "IN_USE_ADDRESSES"
30439	//   "IN_USE_BACKUP_SCHEDULES"
30440	//   "IN_USE_SNAPSHOT_SCHEDULES"
30441	//   "LOCAL_SSD_TOTAL_GB"
30442	//   "M1_CPUS"
30443	//   "M2_CPUS"
30444	//   "MACHINE_IMAGES"
30445	//   "N2A_CPUS"
30446	//   "N2D_CPUS"
30447	//   "N2_CPUS"
30448	//   "NETWORKS"
30449	//   "NETWORK_ENDPOINT_GROUPS"
30450	//   "NETWORK_FIREWALL_POLICIES"
30451	//   "NODE_GROUPS"
30452	//   "NODE_TEMPLATES"
30453	//   "NVIDIA_A100_GPUS"
30454	//   "NVIDIA_K80_GPUS"
30455	//   "NVIDIA_P100_GPUS"
30456	//   "NVIDIA_P100_VWS_GPUS"
30457	//   "NVIDIA_P4_GPUS"
30458	//   "NVIDIA_P4_VWS_GPUS"
30459	//   "NVIDIA_T4_GPUS"
30460	//   "NVIDIA_T4_VWS_GPUS"
30461	//   "NVIDIA_V100_GPUS"
30462	//   "P2D_CPUS"
30463	//   "PACKET_MIRRORINGS"
30464	//   "PD_EXTREME_TOTAL_PROVISIONED_IOPS"
30465	//   "PREEMPTIBLE_CPUS"
30466	//   "PREEMPTIBLE_LOCAL_SSD_GB"
30467	//   "PREEMPTIBLE_NVIDIA_A100_GPUS"
30468	//   "PREEMPTIBLE_NVIDIA_K80_GPUS"
30469	//   "PREEMPTIBLE_NVIDIA_P100_GPUS"
30470	//   "PREEMPTIBLE_NVIDIA_P100_VWS_GPUS"
30471	//   "PREEMPTIBLE_NVIDIA_P4_GPUS"
30472	//   "PREEMPTIBLE_NVIDIA_P4_VWS_GPUS"
30473	//   "PREEMPTIBLE_NVIDIA_T4_GPUS"
30474	//   "PREEMPTIBLE_NVIDIA_T4_VWS_GPUS"
30475	//   "PREEMPTIBLE_NVIDIA_V100_GPUS"
30476	//   "PSC_ILB_CONSUMER_FORWARDING_RULES_PER_PRODUCER_NETWORK"
30477	//   "PUBLIC_ADVERTISED_PREFIXES"
30478	//   "PUBLIC_DELEGATED_PREFIXES"
30479	//   "REGIONAL_AUTOSCALERS"
30480	//   "REGIONAL_INSTANCE_GROUP_MANAGERS"
30481	//   "RESERVATIONS"
30482	//   "RESOURCE_POLICIES"
30483	//   "ROUTERS"
30484	//   "ROUTES"
30485	//   "SECURITY_POLICIES"
30486	//   "SECURITY_POLICIES_PER_REGION"
30487	//   "SECURITY_POLICY_CEVAL_RULES"
30488	//   "SECURITY_POLICY_RULES"
30489	//   "SECURITY_POLICY_RULES_PER_REGION"
30490	//   "SNAPSHOTS"
30491	//   "SSD_TOTAL_GB"
30492	//   "SSL_CERTIFICATES"
30493	//   "STATIC_ADDRESSES"
30494	//   "STATIC_BYOIP_ADDRESSES"
30495	//   "SUBNETWORKS"
30496	//   "TARGET_HTTPS_PROXIES"
30497	//   "TARGET_HTTP_PROXIES"
30498	//   "TARGET_INSTANCES"
30499	//   "TARGET_POOLS"
30500	//   "TARGET_SSL_PROXIES"
30501	//   "TARGET_TCP_PROXIES"
30502	//   "TARGET_VPN_GATEWAYS"
30503	//   "URL_MAPS"
30504	//   "VPN_GATEWAYS"
30505	//   "VPN_TUNNELS"
30506	//   "XPN_SERVICE_PROJECTS"
30507	Metric string `json:"metric,omitempty"`
30508
30509	// Owner: [Output Only] Owning resource. This is the resource on which
30510	// this quota is applied.
30511	Owner string `json:"owner,omitempty"`
30512
30513	// Usage: [Output Only] Current usage of this metric.
30514	Usage float64 `json:"usage,omitempty"`
30515
30516	// ForceSendFields is a list of field names (e.g. "Limit") to
30517	// unconditionally include in API requests. By default, fields with
30518	// empty values are omitted from API requests. However, any non-pointer,
30519	// non-interface field appearing in ForceSendFields will be sent to the
30520	// server regardless of whether the field is empty or not. This may be
30521	// used to include empty fields in Patch requests.
30522	ForceSendFields []string `json:"-"`
30523
30524	// NullFields is a list of field names (e.g. "Limit") to include in API
30525	// requests with the JSON null value. By default, fields with empty
30526	// values are omitted from API requests. However, any field with an
30527	// empty value appearing in NullFields will be sent to the server as
30528	// null. It is an error if a field in this list has a non-empty value.
30529	// This may be used to include null fields in Patch requests.
30530	NullFields []string `json:"-"`
30531}
30532
30533func (s *Quota) MarshalJSON() ([]byte, error) {
30534	type NoMethod Quota
30535	raw := NoMethod(*s)
30536	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30537}
30538
30539func (s *Quota) UnmarshalJSON(data []byte) error {
30540	type NoMethod Quota
30541	var s1 struct {
30542		Limit gensupport.JSONFloat64 `json:"limit"`
30543		Usage gensupport.JSONFloat64 `json:"usage"`
30544		*NoMethod
30545	}
30546	s1.NoMethod = (*NoMethod)(s)
30547	if err := json.Unmarshal(data, &s1); err != nil {
30548		return err
30549	}
30550	s.Limit = float64(s1.Limit)
30551	s.Usage = float64(s1.Usage)
30552	return nil
30553}
30554
30555// Reference: Represents a reference to a resource.
30556type Reference struct {
30557	// Kind: [Output Only] Type of the resource. Always compute#reference
30558	// for references.
30559	Kind string `json:"kind,omitempty"`
30560
30561	// ReferenceType: A description of the reference type with no implied
30562	// semantics. Possible values include:
30563	// - MEMBER_OF
30564	ReferenceType string `json:"referenceType,omitempty"`
30565
30566	// Referrer: URL of the resource which refers to the target.
30567	Referrer string `json:"referrer,omitempty"`
30568
30569	// Target: URL of the resource to which this reference points.
30570	Target string `json:"target,omitempty"`
30571
30572	// ForceSendFields is a list of field names (e.g. "Kind") to
30573	// unconditionally include in API requests. By default, fields with
30574	// empty values are omitted from API requests. However, any non-pointer,
30575	// non-interface field appearing in ForceSendFields will be sent to the
30576	// server regardless of whether the field is empty or not. This may be
30577	// used to include empty fields in Patch requests.
30578	ForceSendFields []string `json:"-"`
30579
30580	// NullFields is a list of field names (e.g. "Kind") to include in API
30581	// requests with the JSON null value. By default, fields with empty
30582	// values are omitted from API requests. However, any field with an
30583	// empty value appearing in NullFields will be sent to the server as
30584	// null. It is an error if a field in this list has a non-empty value.
30585	// This may be used to include null fields in Patch requests.
30586	NullFields []string `json:"-"`
30587}
30588
30589func (s *Reference) MarshalJSON() ([]byte, error) {
30590	type NoMethod Reference
30591	raw := NoMethod(*s)
30592	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30593}
30594
30595// Region: Represents a Region resource.
30596//
30597// A region is a geographical area where a resource is located. For more
30598// information, read Regions and Zones. (== resource_for
30599// {$api_version}.regions ==)
30600type Region struct {
30601	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
30602	// format.
30603	CreationTimestamp string `json:"creationTimestamp,omitempty"`
30604
30605	// Deprecated -- [Output Only] The deprecation status associated with
30606	// this region.
30607	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
30608
30609	// Description: [Output Only] Textual description of the resource.
30610	Description string `json:"description,omitempty"`
30611
30612	// Id: [Output Only] The unique identifier for the resource. This
30613	// identifier is defined by the server.
30614	Id uint64 `json:"id,omitempty,string"`
30615
30616	// Kind: [Output Only] Type of the resource. Always compute#region for
30617	// regions.
30618	Kind string `json:"kind,omitempty"`
30619
30620	// Name: [Output Only] Name of the resource.
30621	Name string `json:"name,omitempty"`
30622
30623	// Quotas: [Output Only] Quotas assigned to this region.
30624	Quotas []*Quota `json:"quotas,omitempty"`
30625
30626	// SelfLink: [Output Only] Server-defined URL for the resource.
30627	SelfLink string `json:"selfLink,omitempty"`
30628
30629	// Status: [Output Only] Status of the region, either UP or DOWN.
30630	//
30631	// Possible values:
30632	//   "DOWN"
30633	//   "UP"
30634	Status string `json:"status,omitempty"`
30635
30636	// SupportsPzs: [Output Only] Reserved for future use.
30637	SupportsPzs bool `json:"supportsPzs,omitempty"`
30638
30639	// Zones: [Output Only] A list of zones available in this region, in the
30640	// form of resource URLs.
30641	Zones []string `json:"zones,omitempty"`
30642
30643	// ServerResponse contains the HTTP response code and headers from the
30644	// server.
30645	googleapi.ServerResponse `json:"-"`
30646
30647	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
30648	// to unconditionally include in API requests. By default, fields with
30649	// empty values are omitted from API requests. However, any non-pointer,
30650	// non-interface field appearing in ForceSendFields will be sent to the
30651	// server regardless of whether the field is empty or not. This may be
30652	// used to include empty fields in Patch requests.
30653	ForceSendFields []string `json:"-"`
30654
30655	// NullFields is a list of field names (e.g. "CreationTimestamp") to
30656	// include in API requests with the JSON null value. By default, fields
30657	// with empty values are omitted from API requests. However, any field
30658	// with an empty value appearing in NullFields will be sent to the
30659	// server as null. It is an error if a field in this list has a
30660	// non-empty value. This may be used to include null fields in Patch
30661	// requests.
30662	NullFields []string `json:"-"`
30663}
30664
30665func (s *Region) MarshalJSON() ([]byte, error) {
30666	type NoMethod Region
30667	raw := NoMethod(*s)
30668	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30669}
30670
30671// RegionAutoscalerList: Contains a list of autoscalers.
30672type RegionAutoscalerList struct {
30673	// Id: [Output Only] Unique identifier for the resource; defined by the
30674	// server.
30675	Id string `json:"id,omitempty"`
30676
30677	// Items: A list of Autoscaler resources.
30678	Items []*Autoscaler `json:"items,omitempty"`
30679
30680	// Kind: Type of resource.
30681	Kind string `json:"kind,omitempty"`
30682
30683	// NextPageToken: [Output Only] This token allows you to get the next
30684	// page of results for list requests. If the number of results is larger
30685	// than maxResults, use the nextPageToken as a value for the query
30686	// parameter pageToken in the next list request. Subsequent list
30687	// requests will have their own nextPageToken to continue paging through
30688	// the results.
30689	NextPageToken string `json:"nextPageToken,omitempty"`
30690
30691	// SelfLink: [Output Only] Server-defined URL for this resource.
30692	SelfLink string `json:"selfLink,omitempty"`
30693
30694	// Warning: [Output Only] Informational warning message.
30695	Warning *RegionAutoscalerListWarning `json:"warning,omitempty"`
30696
30697	// ServerResponse contains the HTTP response code and headers from the
30698	// server.
30699	googleapi.ServerResponse `json:"-"`
30700
30701	// ForceSendFields is a list of field names (e.g. "Id") to
30702	// unconditionally include in API requests. By default, fields with
30703	// empty values are omitted from API requests. However, any non-pointer,
30704	// non-interface field appearing in ForceSendFields will be sent to the
30705	// server regardless of whether the field is empty or not. This may be
30706	// used to include empty fields in Patch requests.
30707	ForceSendFields []string `json:"-"`
30708
30709	// NullFields is a list of field names (e.g. "Id") to include in API
30710	// requests with the JSON null value. By default, fields with empty
30711	// values are omitted from API requests. However, any field with an
30712	// empty value appearing in NullFields will be sent to the server as
30713	// null. It is an error if a field in this list has a non-empty value.
30714	// This may be used to include null fields in Patch requests.
30715	NullFields []string `json:"-"`
30716}
30717
30718func (s *RegionAutoscalerList) MarshalJSON() ([]byte, error) {
30719	type NoMethod RegionAutoscalerList
30720	raw := NoMethod(*s)
30721	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30722}
30723
30724// RegionAutoscalerListWarning: [Output Only] Informational warning
30725// message.
30726type RegionAutoscalerListWarning struct {
30727	// Code: [Output Only] A warning code, if applicable. For example,
30728	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
30729	// the response.
30730	//
30731	// Possible values:
30732	//   "CLEANUP_FAILED"
30733	//   "DEPRECATED_RESOURCE_USED"
30734	//   "DEPRECATED_TYPE_USED"
30735	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
30736	//   "EXPERIMENTAL_TYPE_USED"
30737	//   "EXTERNAL_API_WARNING"
30738	//   "FIELD_VALUE_OVERRIDEN"
30739	//   "INJECTED_KERNELS_DEPRECATED"
30740	//   "LARGE_DEPLOYMENT_WARNING"
30741	//   "MISSING_TYPE_DEPENDENCY"
30742	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
30743	//   "NEXT_HOP_CANNOT_IP_FORWARD"
30744	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
30745	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
30746	//   "NEXT_HOP_NOT_RUNNING"
30747	//   "NOT_CRITICAL_ERROR"
30748	//   "NO_RESULTS_ON_PAGE"
30749	//   "PARTIAL_SUCCESS"
30750	//   "REQUIRED_TOS_AGREEMENT"
30751	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
30752	//   "RESOURCE_NOT_DELETED"
30753	//   "SCHEMA_VALIDATION_IGNORED"
30754	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
30755	//   "UNDECLARED_PROPERTIES"
30756	//   "UNREACHABLE"
30757	Code string `json:"code,omitempty"`
30758
30759	// Data: [Output Only] Metadata about this warning in key: value format.
30760	// For example:
30761	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
30762	Data []*RegionAutoscalerListWarningData `json:"data,omitempty"`
30763
30764	// Message: [Output Only] A human-readable description of the warning
30765	// code.
30766	Message string `json:"message,omitempty"`
30767
30768	// ForceSendFields is a list of field names (e.g. "Code") to
30769	// unconditionally include in API requests. By default, fields with
30770	// empty values are omitted from API requests. However, any non-pointer,
30771	// non-interface field appearing in ForceSendFields will be sent to the
30772	// server regardless of whether the field is empty or not. This may be
30773	// used to include empty fields in Patch requests.
30774	ForceSendFields []string `json:"-"`
30775
30776	// NullFields is a list of field names (e.g. "Code") to include in API
30777	// requests with the JSON null value. By default, fields with empty
30778	// values are omitted from API requests. However, any field with an
30779	// empty value appearing in NullFields will be sent to the server as
30780	// null. It is an error if a field in this list has a non-empty value.
30781	// This may be used to include null fields in Patch requests.
30782	NullFields []string `json:"-"`
30783}
30784
30785func (s *RegionAutoscalerListWarning) MarshalJSON() ([]byte, error) {
30786	type NoMethod RegionAutoscalerListWarning
30787	raw := NoMethod(*s)
30788	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30789}
30790
30791type RegionAutoscalerListWarningData struct {
30792	// Key: [Output Only] A key that provides more detail on the warning
30793	// being returned. For example, for warnings where there are no results
30794	// in a list request for a particular zone, this key might be scope and
30795	// the key value might be the zone name. Other examples might be a key
30796	// indicating a deprecated resource and a suggested replacement, or a
30797	// warning about invalid network settings (for example, if an instance
30798	// attempts to perform IP forwarding but is not enabled for IP
30799	// forwarding).
30800	Key string `json:"key,omitempty"`
30801
30802	// Value: [Output Only] A warning data value corresponding to the key.
30803	Value string `json:"value,omitempty"`
30804
30805	// ForceSendFields is a list of field names (e.g. "Key") to
30806	// unconditionally include in API requests. By default, fields with
30807	// empty values are omitted from API requests. However, any non-pointer,
30808	// non-interface field appearing in ForceSendFields will be sent to the
30809	// server regardless of whether the field is empty or not. This may be
30810	// used to include empty fields in Patch requests.
30811	ForceSendFields []string `json:"-"`
30812
30813	// NullFields is a list of field names (e.g. "Key") to include in API
30814	// requests with the JSON null value. By default, fields with empty
30815	// values are omitted from API requests. However, any field with an
30816	// empty value appearing in NullFields will be sent to the server as
30817	// null. It is an error if a field in this list has a non-empty value.
30818	// This may be used to include null fields in Patch requests.
30819	NullFields []string `json:"-"`
30820}
30821
30822func (s *RegionAutoscalerListWarningData) MarshalJSON() ([]byte, error) {
30823	type NoMethod RegionAutoscalerListWarningData
30824	raw := NoMethod(*s)
30825	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30826}
30827
30828type RegionDiskTypeList struct {
30829	// Id: [Output Only] Unique identifier for the resource; defined by the
30830	// server.
30831	Id string `json:"id,omitempty"`
30832
30833	// Items: A list of DiskType resources.
30834	Items []*DiskType `json:"items,omitempty"`
30835
30836	// Kind: [Output Only] Type of resource. Always
30837	// compute#regionDiskTypeList for region disk types.
30838	Kind string `json:"kind,omitempty"`
30839
30840	// NextPageToken: [Output Only] This token allows you to get the next
30841	// page of results for list requests. If the number of results is larger
30842	// than maxResults, use the nextPageToken as a value for the query
30843	// parameter pageToken in the next list request. Subsequent list
30844	// requests will have their own nextPageToken to continue paging through
30845	// the results.
30846	NextPageToken string `json:"nextPageToken,omitempty"`
30847
30848	// SelfLink: [Output Only] Server-defined URL for this resource.
30849	SelfLink string `json:"selfLink,omitempty"`
30850
30851	// Warning: [Output Only] Informational warning message.
30852	Warning *RegionDiskTypeListWarning `json:"warning,omitempty"`
30853
30854	// ServerResponse contains the HTTP response code and headers from the
30855	// server.
30856	googleapi.ServerResponse `json:"-"`
30857
30858	// ForceSendFields is a list of field names (e.g. "Id") to
30859	// unconditionally include in API requests. By default, fields with
30860	// empty values are omitted from API requests. However, any non-pointer,
30861	// non-interface field appearing in ForceSendFields will be sent to the
30862	// server regardless of whether the field is empty or not. This may be
30863	// used to include empty fields in Patch requests.
30864	ForceSendFields []string `json:"-"`
30865
30866	// NullFields is a list of field names (e.g. "Id") to include in API
30867	// requests with the JSON null value. By default, fields with empty
30868	// values are omitted from API requests. However, any field with an
30869	// empty value appearing in NullFields will be sent to the server as
30870	// null. It is an error if a field in this list has a non-empty value.
30871	// This may be used to include null fields in Patch requests.
30872	NullFields []string `json:"-"`
30873}
30874
30875func (s *RegionDiskTypeList) MarshalJSON() ([]byte, error) {
30876	type NoMethod RegionDiskTypeList
30877	raw := NoMethod(*s)
30878	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30879}
30880
30881// RegionDiskTypeListWarning: [Output Only] Informational warning
30882// message.
30883type RegionDiskTypeListWarning struct {
30884	// Code: [Output Only] A warning code, if applicable. For example,
30885	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
30886	// the response.
30887	//
30888	// Possible values:
30889	//   "CLEANUP_FAILED"
30890	//   "DEPRECATED_RESOURCE_USED"
30891	//   "DEPRECATED_TYPE_USED"
30892	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
30893	//   "EXPERIMENTAL_TYPE_USED"
30894	//   "EXTERNAL_API_WARNING"
30895	//   "FIELD_VALUE_OVERRIDEN"
30896	//   "INJECTED_KERNELS_DEPRECATED"
30897	//   "LARGE_DEPLOYMENT_WARNING"
30898	//   "MISSING_TYPE_DEPENDENCY"
30899	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
30900	//   "NEXT_HOP_CANNOT_IP_FORWARD"
30901	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
30902	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
30903	//   "NEXT_HOP_NOT_RUNNING"
30904	//   "NOT_CRITICAL_ERROR"
30905	//   "NO_RESULTS_ON_PAGE"
30906	//   "PARTIAL_SUCCESS"
30907	//   "REQUIRED_TOS_AGREEMENT"
30908	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
30909	//   "RESOURCE_NOT_DELETED"
30910	//   "SCHEMA_VALIDATION_IGNORED"
30911	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
30912	//   "UNDECLARED_PROPERTIES"
30913	//   "UNREACHABLE"
30914	Code string `json:"code,omitempty"`
30915
30916	// Data: [Output Only] Metadata about this warning in key: value format.
30917	// For example:
30918	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
30919	Data []*RegionDiskTypeListWarningData `json:"data,omitempty"`
30920
30921	// Message: [Output Only] A human-readable description of the warning
30922	// code.
30923	Message string `json:"message,omitempty"`
30924
30925	// ForceSendFields is a list of field names (e.g. "Code") to
30926	// unconditionally include in API requests. By default, fields with
30927	// empty values are omitted from API requests. However, any non-pointer,
30928	// non-interface field appearing in ForceSendFields will be sent to the
30929	// server regardless of whether the field is empty or not. This may be
30930	// used to include empty fields in Patch requests.
30931	ForceSendFields []string `json:"-"`
30932
30933	// NullFields is a list of field names (e.g. "Code") to include in API
30934	// requests with the JSON null value. By default, fields with empty
30935	// values are omitted from API requests. However, any field with an
30936	// empty value appearing in NullFields will be sent to the server as
30937	// null. It is an error if a field in this list has a non-empty value.
30938	// This may be used to include null fields in Patch requests.
30939	NullFields []string `json:"-"`
30940}
30941
30942func (s *RegionDiskTypeListWarning) MarshalJSON() ([]byte, error) {
30943	type NoMethod RegionDiskTypeListWarning
30944	raw := NoMethod(*s)
30945	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30946}
30947
30948type RegionDiskTypeListWarningData struct {
30949	// Key: [Output Only] A key that provides more detail on the warning
30950	// being returned. For example, for warnings where there are no results
30951	// in a list request for a particular zone, this key might be scope and
30952	// the key value might be the zone name. Other examples might be a key
30953	// indicating a deprecated resource and a suggested replacement, or a
30954	// warning about invalid network settings (for example, if an instance
30955	// attempts to perform IP forwarding but is not enabled for IP
30956	// forwarding).
30957	Key string `json:"key,omitempty"`
30958
30959	// Value: [Output Only] A warning data value corresponding to the key.
30960	Value string `json:"value,omitempty"`
30961
30962	// ForceSendFields is a list of field names (e.g. "Key") to
30963	// unconditionally include in API requests. By default, fields with
30964	// empty values are omitted from API requests. However, any non-pointer,
30965	// non-interface field appearing in ForceSendFields will be sent to the
30966	// server regardless of whether the field is empty or not. This may be
30967	// used to include empty fields in Patch requests.
30968	ForceSendFields []string `json:"-"`
30969
30970	// NullFields is a list of field names (e.g. "Key") to include in API
30971	// requests with the JSON null value. By default, fields with empty
30972	// values are omitted from API requests. However, any field with an
30973	// empty value appearing in NullFields will be sent to the server as
30974	// null. It is an error if a field in this list has a non-empty value.
30975	// This may be used to include null fields in Patch requests.
30976	NullFields []string `json:"-"`
30977}
30978
30979func (s *RegionDiskTypeListWarningData) MarshalJSON() ([]byte, error) {
30980	type NoMethod RegionDiskTypeListWarningData
30981	raw := NoMethod(*s)
30982	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30983}
30984
30985type RegionDisksAddResourcePoliciesRequest struct {
30986	// ResourcePolicies: Resource policies to be added to this disk.
30987	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
30988
30989	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
30990	// unconditionally include in API requests. By default, fields with
30991	// empty values are omitted from API requests. However, any non-pointer,
30992	// non-interface field appearing in ForceSendFields will be sent to the
30993	// server regardless of whether the field is empty or not. This may be
30994	// used to include empty fields in Patch requests.
30995	ForceSendFields []string `json:"-"`
30996
30997	// NullFields is a list of field names (e.g. "ResourcePolicies") to
30998	// include in API requests with the JSON null value. By default, fields
30999	// with empty values are omitted from API requests. However, any field
31000	// with an empty value appearing in NullFields will be sent to the
31001	// server as null. It is an error if a field in this list has a
31002	// non-empty value. This may be used to include null fields in Patch
31003	// requests.
31004	NullFields []string `json:"-"`
31005}
31006
31007func (s *RegionDisksAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
31008	type NoMethod RegionDisksAddResourcePoliciesRequest
31009	raw := NoMethod(*s)
31010	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31011}
31012
31013type RegionDisksRemoveResourcePoliciesRequest struct {
31014	// ResourcePolicies: Resource policies to be removed from this disk.
31015	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
31016
31017	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
31018	// unconditionally include in API requests. By default, fields with
31019	// empty values are omitted from API requests. However, any non-pointer,
31020	// non-interface field appearing in ForceSendFields will be sent to the
31021	// server regardless of whether the field is empty or not. This may be
31022	// used to include empty fields in Patch requests.
31023	ForceSendFields []string `json:"-"`
31024
31025	// NullFields is a list of field names (e.g. "ResourcePolicies") to
31026	// include in API requests with the JSON null value. By default, fields
31027	// with empty values are omitted from API requests. However, any field
31028	// with an empty value appearing in NullFields will be sent to the
31029	// server as null. It is an error if a field in this list has a
31030	// non-empty value. This may be used to include null fields in Patch
31031	// requests.
31032	NullFields []string `json:"-"`
31033}
31034
31035func (s *RegionDisksRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
31036	type NoMethod RegionDisksRemoveResourcePoliciesRequest
31037	raw := NoMethod(*s)
31038	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31039}
31040
31041type RegionDisksResizeRequest struct {
31042	// SizeGb: The new size of the regional persistent disk, which is
31043	// specified in GB.
31044	SizeGb int64 `json:"sizeGb,omitempty,string"`
31045
31046	// ForceSendFields is a list of field names (e.g. "SizeGb") to
31047	// unconditionally include in API requests. By default, fields with
31048	// empty values are omitted from API requests. However, any non-pointer,
31049	// non-interface field appearing in ForceSendFields will be sent to the
31050	// server regardless of whether the field is empty or not. This may be
31051	// used to include empty fields in Patch requests.
31052	ForceSendFields []string `json:"-"`
31053
31054	// NullFields is a list of field names (e.g. "SizeGb") to include in API
31055	// requests with the JSON null value. By default, fields with empty
31056	// values are omitted from API requests. However, any field with an
31057	// empty value appearing in NullFields will be sent to the server as
31058	// null. It is an error if a field in this list has a non-empty value.
31059	// This may be used to include null fields in Patch requests.
31060	NullFields []string `json:"-"`
31061}
31062
31063func (s *RegionDisksResizeRequest) MarshalJSON() ([]byte, error) {
31064	type NoMethod RegionDisksResizeRequest
31065	raw := NoMethod(*s)
31066	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31067}
31068
31069// RegionInstanceGroupList: Contains a list of InstanceGroup resources.
31070type RegionInstanceGroupList struct {
31071	// Id: [Output Only] Unique identifier for the resource; defined by the
31072	// server.
31073	Id string `json:"id,omitempty"`
31074
31075	// Items: A list of InstanceGroup resources.
31076	Items []*InstanceGroup `json:"items,omitempty"`
31077
31078	// Kind: The resource type.
31079	Kind string `json:"kind,omitempty"`
31080
31081	// NextPageToken: [Output Only] This token allows you to get the next
31082	// page of results for list requests. If the number of results is larger
31083	// than maxResults, use the nextPageToken as a value for the query
31084	// parameter pageToken in the next list request. Subsequent list
31085	// requests will have their own nextPageToken to continue paging through
31086	// the results.
31087	NextPageToken string `json:"nextPageToken,omitempty"`
31088
31089	// SelfLink: [Output Only] Server-defined URL for this resource.
31090	SelfLink string `json:"selfLink,omitempty"`
31091
31092	// Warning: [Output Only] Informational warning message.
31093	Warning *RegionInstanceGroupListWarning `json:"warning,omitempty"`
31094
31095	// ServerResponse contains the HTTP response code and headers from the
31096	// server.
31097	googleapi.ServerResponse `json:"-"`
31098
31099	// ForceSendFields is a list of field names (e.g. "Id") to
31100	// unconditionally include in API requests. By default, fields with
31101	// empty values are omitted from API requests. However, any non-pointer,
31102	// non-interface field appearing in ForceSendFields will be sent to the
31103	// server regardless of whether the field is empty or not. This may be
31104	// used to include empty fields in Patch requests.
31105	ForceSendFields []string `json:"-"`
31106
31107	// NullFields is a list of field names (e.g. "Id") to include in API
31108	// requests with the JSON null value. By default, fields with empty
31109	// values are omitted from API requests. However, any field with an
31110	// empty value appearing in NullFields will be sent to the server as
31111	// null. It is an error if a field in this list has a non-empty value.
31112	// This may be used to include null fields in Patch requests.
31113	NullFields []string `json:"-"`
31114}
31115
31116func (s *RegionInstanceGroupList) MarshalJSON() ([]byte, error) {
31117	type NoMethod RegionInstanceGroupList
31118	raw := NoMethod(*s)
31119	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31120}
31121
31122// RegionInstanceGroupListWarning: [Output Only] Informational warning
31123// message.
31124type RegionInstanceGroupListWarning struct {
31125	// Code: [Output Only] A warning code, if applicable. For example,
31126	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
31127	// the response.
31128	//
31129	// Possible values:
31130	//   "CLEANUP_FAILED"
31131	//   "DEPRECATED_RESOURCE_USED"
31132	//   "DEPRECATED_TYPE_USED"
31133	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
31134	//   "EXPERIMENTAL_TYPE_USED"
31135	//   "EXTERNAL_API_WARNING"
31136	//   "FIELD_VALUE_OVERRIDEN"
31137	//   "INJECTED_KERNELS_DEPRECATED"
31138	//   "LARGE_DEPLOYMENT_WARNING"
31139	//   "MISSING_TYPE_DEPENDENCY"
31140	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
31141	//   "NEXT_HOP_CANNOT_IP_FORWARD"
31142	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
31143	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
31144	//   "NEXT_HOP_NOT_RUNNING"
31145	//   "NOT_CRITICAL_ERROR"
31146	//   "NO_RESULTS_ON_PAGE"
31147	//   "PARTIAL_SUCCESS"
31148	//   "REQUIRED_TOS_AGREEMENT"
31149	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
31150	//   "RESOURCE_NOT_DELETED"
31151	//   "SCHEMA_VALIDATION_IGNORED"
31152	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
31153	//   "UNDECLARED_PROPERTIES"
31154	//   "UNREACHABLE"
31155	Code string `json:"code,omitempty"`
31156
31157	// Data: [Output Only] Metadata about this warning in key: value format.
31158	// For example:
31159	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
31160	Data []*RegionInstanceGroupListWarningData `json:"data,omitempty"`
31161
31162	// Message: [Output Only] A human-readable description of the warning
31163	// code.
31164	Message string `json:"message,omitempty"`
31165
31166	// ForceSendFields is a list of field names (e.g. "Code") to
31167	// unconditionally include in API requests. By default, fields with
31168	// empty values are omitted from API requests. However, any non-pointer,
31169	// non-interface field appearing in ForceSendFields will be sent to the
31170	// server regardless of whether the field is empty or not. This may be
31171	// used to include empty fields in Patch requests.
31172	ForceSendFields []string `json:"-"`
31173
31174	// NullFields is a list of field names (e.g. "Code") to include in API
31175	// requests with the JSON null value. By default, fields with empty
31176	// values are omitted from API requests. However, any field with an
31177	// empty value appearing in NullFields will be sent to the server as
31178	// null. It is an error if a field in this list has a non-empty value.
31179	// This may be used to include null fields in Patch requests.
31180	NullFields []string `json:"-"`
31181}
31182
31183func (s *RegionInstanceGroupListWarning) MarshalJSON() ([]byte, error) {
31184	type NoMethod RegionInstanceGroupListWarning
31185	raw := NoMethod(*s)
31186	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31187}
31188
31189type RegionInstanceGroupListWarningData struct {
31190	// Key: [Output Only] A key that provides more detail on the warning
31191	// being returned. For example, for warnings where there are no results
31192	// in a list request for a particular zone, this key might be scope and
31193	// the key value might be the zone name. Other examples might be a key
31194	// indicating a deprecated resource and a suggested replacement, or a
31195	// warning about invalid network settings (for example, if an instance
31196	// attempts to perform IP forwarding but is not enabled for IP
31197	// forwarding).
31198	Key string `json:"key,omitempty"`
31199
31200	// Value: [Output Only] A warning data value corresponding to the key.
31201	Value string `json:"value,omitempty"`
31202
31203	// ForceSendFields is a list of field names (e.g. "Key") to
31204	// unconditionally include in API requests. By default, fields with
31205	// empty values are omitted from API requests. However, any non-pointer,
31206	// non-interface field appearing in ForceSendFields will be sent to the
31207	// server regardless of whether the field is empty or not. This may be
31208	// used to include empty fields in Patch requests.
31209	ForceSendFields []string `json:"-"`
31210
31211	// NullFields is a list of field names (e.g. "Key") to include in API
31212	// requests with the JSON null value. By default, fields with empty
31213	// values are omitted from API requests. However, any field with an
31214	// empty value appearing in NullFields will be sent to the server as
31215	// null. It is an error if a field in this list has a non-empty value.
31216	// This may be used to include null fields in Patch requests.
31217	NullFields []string `json:"-"`
31218}
31219
31220func (s *RegionInstanceGroupListWarningData) MarshalJSON() ([]byte, error) {
31221	type NoMethod RegionInstanceGroupListWarningData
31222	raw := NoMethod(*s)
31223	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31224}
31225
31226// RegionInstanceGroupManagerDeleteInstanceConfigReq:
31227// RegionInstanceGroupManagers.deletePerInstanceConfigs
31228type RegionInstanceGroupManagerDeleteInstanceConfigReq struct {
31229	// Names: The list of instance names for which we want to delete
31230	// per-instance configs on this managed instance group.
31231	Names []string `json:"names,omitempty"`
31232
31233	// ForceSendFields is a list of field names (e.g. "Names") to
31234	// unconditionally include in API requests. By default, fields with
31235	// empty values are omitted from API requests. However, any non-pointer,
31236	// non-interface field appearing in ForceSendFields will be sent to the
31237	// server regardless of whether the field is empty or not. This may be
31238	// used to include empty fields in Patch requests.
31239	ForceSendFields []string `json:"-"`
31240
31241	// NullFields is a list of field names (e.g. "Names") to include in API
31242	// requests with the JSON null value. By default, fields with empty
31243	// values are omitted from API requests. However, any field with an
31244	// empty value appearing in NullFields will be sent to the server as
31245	// null. It is an error if a field in this list has a non-empty value.
31246	// This may be used to include null fields in Patch requests.
31247	NullFields []string `json:"-"`
31248}
31249
31250func (s *RegionInstanceGroupManagerDeleteInstanceConfigReq) MarshalJSON() ([]byte, error) {
31251	type NoMethod RegionInstanceGroupManagerDeleteInstanceConfigReq
31252	raw := NoMethod(*s)
31253	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31254}
31255
31256// RegionInstanceGroupManagerList: Contains a list of managed instance
31257// groups.
31258type RegionInstanceGroupManagerList struct {
31259	// Id: [Output Only] Unique identifier for the resource; defined by the
31260	// server.
31261	Id string `json:"id,omitempty"`
31262
31263	// Items: A list of InstanceGroupManager resources.
31264	Items []*InstanceGroupManager `json:"items,omitempty"`
31265
31266	// Kind: [Output Only] The resource type, which is always
31267	// compute#instanceGroupManagerList for a list of managed instance
31268	// groups that exist in th regional scope.
31269	Kind string `json:"kind,omitempty"`
31270
31271	// NextPageToken: [Output Only] This token allows you to get the next
31272	// page of results for list requests. If the number of results is larger
31273	// than maxResults, use the nextPageToken as a value for the query
31274	// parameter pageToken in the next list request. Subsequent list
31275	// requests will have their own nextPageToken to continue paging through
31276	// the results.
31277	NextPageToken string `json:"nextPageToken,omitempty"`
31278
31279	// SelfLink: [Output Only] Server-defined URL for this resource.
31280	SelfLink string `json:"selfLink,omitempty"`
31281
31282	// Warning: [Output Only] Informational warning message.
31283	Warning *RegionInstanceGroupManagerListWarning `json:"warning,omitempty"`
31284
31285	// ServerResponse contains the HTTP response code and headers from the
31286	// server.
31287	googleapi.ServerResponse `json:"-"`
31288
31289	// ForceSendFields is a list of field names (e.g. "Id") to
31290	// unconditionally include in API requests. By default, fields with
31291	// empty values are omitted from API requests. However, any non-pointer,
31292	// non-interface field appearing in ForceSendFields will be sent to the
31293	// server regardless of whether the field is empty or not. This may be
31294	// used to include empty fields in Patch requests.
31295	ForceSendFields []string `json:"-"`
31296
31297	// NullFields is a list of field names (e.g. "Id") to include in API
31298	// requests with the JSON null value. By default, fields with empty
31299	// values are omitted from API requests. However, any field with an
31300	// empty value appearing in NullFields will be sent to the server as
31301	// null. It is an error if a field in this list has a non-empty value.
31302	// This may be used to include null fields in Patch requests.
31303	NullFields []string `json:"-"`
31304}
31305
31306func (s *RegionInstanceGroupManagerList) MarshalJSON() ([]byte, error) {
31307	type NoMethod RegionInstanceGroupManagerList
31308	raw := NoMethod(*s)
31309	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31310}
31311
31312// RegionInstanceGroupManagerListWarning: [Output Only] Informational
31313// warning message.
31314type RegionInstanceGroupManagerListWarning struct {
31315	// Code: [Output Only] A warning code, if applicable. For example,
31316	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
31317	// the response.
31318	//
31319	// Possible values:
31320	//   "CLEANUP_FAILED"
31321	//   "DEPRECATED_RESOURCE_USED"
31322	//   "DEPRECATED_TYPE_USED"
31323	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
31324	//   "EXPERIMENTAL_TYPE_USED"
31325	//   "EXTERNAL_API_WARNING"
31326	//   "FIELD_VALUE_OVERRIDEN"
31327	//   "INJECTED_KERNELS_DEPRECATED"
31328	//   "LARGE_DEPLOYMENT_WARNING"
31329	//   "MISSING_TYPE_DEPENDENCY"
31330	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
31331	//   "NEXT_HOP_CANNOT_IP_FORWARD"
31332	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
31333	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
31334	//   "NEXT_HOP_NOT_RUNNING"
31335	//   "NOT_CRITICAL_ERROR"
31336	//   "NO_RESULTS_ON_PAGE"
31337	//   "PARTIAL_SUCCESS"
31338	//   "REQUIRED_TOS_AGREEMENT"
31339	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
31340	//   "RESOURCE_NOT_DELETED"
31341	//   "SCHEMA_VALIDATION_IGNORED"
31342	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
31343	//   "UNDECLARED_PROPERTIES"
31344	//   "UNREACHABLE"
31345	Code string `json:"code,omitempty"`
31346
31347	// Data: [Output Only] Metadata about this warning in key: value format.
31348	// For example:
31349	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
31350	Data []*RegionInstanceGroupManagerListWarningData `json:"data,omitempty"`
31351
31352	// Message: [Output Only] A human-readable description of the warning
31353	// code.
31354	Message string `json:"message,omitempty"`
31355
31356	// ForceSendFields is a list of field names (e.g. "Code") to
31357	// unconditionally include in API requests. By default, fields with
31358	// empty values are omitted from API requests. However, any non-pointer,
31359	// non-interface field appearing in ForceSendFields will be sent to the
31360	// server regardless of whether the field is empty or not. This may be
31361	// used to include empty fields in Patch requests.
31362	ForceSendFields []string `json:"-"`
31363
31364	// NullFields is a list of field names (e.g. "Code") to include in API
31365	// requests with the JSON null value. By default, fields with empty
31366	// values are omitted from API requests. However, any field with an
31367	// empty value appearing in NullFields will be sent to the server as
31368	// null. It is an error if a field in this list has a non-empty value.
31369	// This may be used to include null fields in Patch requests.
31370	NullFields []string `json:"-"`
31371}
31372
31373func (s *RegionInstanceGroupManagerListWarning) MarshalJSON() ([]byte, error) {
31374	type NoMethod RegionInstanceGroupManagerListWarning
31375	raw := NoMethod(*s)
31376	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31377}
31378
31379type RegionInstanceGroupManagerListWarningData struct {
31380	// Key: [Output Only] A key that provides more detail on the warning
31381	// being returned. For example, for warnings where there are no results
31382	// in a list request for a particular zone, this key might be scope and
31383	// the key value might be the zone name. Other examples might be a key
31384	// indicating a deprecated resource and a suggested replacement, or a
31385	// warning about invalid network settings (for example, if an instance
31386	// attempts to perform IP forwarding but is not enabled for IP
31387	// forwarding).
31388	Key string `json:"key,omitempty"`
31389
31390	// Value: [Output Only] A warning data value corresponding to the key.
31391	Value string `json:"value,omitempty"`
31392
31393	// ForceSendFields is a list of field names (e.g. "Key") to
31394	// unconditionally include in API requests. By default, fields with
31395	// empty values are omitted from API requests. However, any non-pointer,
31396	// non-interface field appearing in ForceSendFields will be sent to the
31397	// server regardless of whether the field is empty or not. This may be
31398	// used to include empty fields in Patch requests.
31399	ForceSendFields []string `json:"-"`
31400
31401	// NullFields is a list of field names (e.g. "Key") to include in API
31402	// requests with the JSON null value. By default, fields with empty
31403	// values are omitted from API requests. However, any field with an
31404	// empty value appearing in NullFields will be sent to the server as
31405	// null. It is an error if a field in this list has a non-empty value.
31406	// This may be used to include null fields in Patch requests.
31407	NullFields []string `json:"-"`
31408}
31409
31410func (s *RegionInstanceGroupManagerListWarningData) MarshalJSON() ([]byte, error) {
31411	type NoMethod RegionInstanceGroupManagerListWarningData
31412	raw := NoMethod(*s)
31413	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31414}
31415
31416// RegionInstanceGroupManagerPatchInstanceConfigReq:
31417// RegionInstanceGroupManagers.patchPerInstanceConfigs
31418type RegionInstanceGroupManagerPatchInstanceConfigReq struct {
31419	// PerInstanceConfigs: The list of per-instance configs to insert or
31420	// patch on this managed instance group.
31421	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
31422
31423	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
31424	// to unconditionally include in API requests. By default, fields with
31425	// empty values are omitted from API requests. However, any non-pointer,
31426	// non-interface field appearing in ForceSendFields will be sent to the
31427	// server regardless of whether the field is empty or not. This may be
31428	// used to include empty fields in Patch requests.
31429	ForceSendFields []string `json:"-"`
31430
31431	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
31432	// include in API requests with the JSON null value. By default, fields
31433	// with empty values are omitted from API requests. However, any field
31434	// with an empty value appearing in NullFields will be sent to the
31435	// server as null. It is an error if a field in this list has a
31436	// non-empty value. This may be used to include null fields in Patch
31437	// requests.
31438	NullFields []string `json:"-"`
31439}
31440
31441func (s *RegionInstanceGroupManagerPatchInstanceConfigReq) MarshalJSON() ([]byte, error) {
31442	type NoMethod RegionInstanceGroupManagerPatchInstanceConfigReq
31443	raw := NoMethod(*s)
31444	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31445}
31446
31447// RegionInstanceGroupManagerUpdateInstanceConfigReq:
31448// RegionInstanceGroupManagers.updatePerInstanceConfigs
31449type RegionInstanceGroupManagerUpdateInstanceConfigReq struct {
31450	// PerInstanceConfigs: The list of per-instance configs to insert or
31451	// patch on this managed instance group.
31452	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
31453
31454	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
31455	// to unconditionally include in API requests. By default, fields with
31456	// empty values are omitted from API requests. However, any non-pointer,
31457	// non-interface field appearing in ForceSendFields will be sent to the
31458	// server regardless of whether the field is empty or not. This may be
31459	// used to include empty fields in Patch requests.
31460	ForceSendFields []string `json:"-"`
31461
31462	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
31463	// include in API requests with the JSON null value. By default, fields
31464	// with empty values are omitted from API requests. However, any field
31465	// with an empty value appearing in NullFields will be sent to the
31466	// server as null. It is an error if a field in this list has a
31467	// non-empty value. This may be used to include null fields in Patch
31468	// requests.
31469	NullFields []string `json:"-"`
31470}
31471
31472func (s *RegionInstanceGroupManagerUpdateInstanceConfigReq) MarshalJSON() ([]byte, error) {
31473	type NoMethod RegionInstanceGroupManagerUpdateInstanceConfigReq
31474	raw := NoMethod(*s)
31475	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31476}
31477
31478type RegionInstanceGroupManagersAbandonInstancesRequest struct {
31479	// Instances: The URLs of one or more instances to abandon. This can be
31480	// a full URL or a partial URL, such as
31481	// zones/[ZONE]/instances/[INSTANCE_NAME].
31482	Instances []string `json:"instances,omitempty"`
31483
31484	// ForceSendFields is a list of field names (e.g. "Instances") to
31485	// unconditionally include in API requests. By default, fields with
31486	// empty values are omitted from API requests. However, any non-pointer,
31487	// non-interface field appearing in ForceSendFields will be sent to the
31488	// server regardless of whether the field is empty or not. This may be
31489	// used to include empty fields in Patch requests.
31490	ForceSendFields []string `json:"-"`
31491
31492	// NullFields is a list of field names (e.g. "Instances") to include in
31493	// API requests with the JSON null value. By default, fields with empty
31494	// values are omitted from API requests. However, any field with an
31495	// empty value appearing in NullFields will be sent to the server as
31496	// null. It is an error if a field in this list has a non-empty value.
31497	// This may be used to include null fields in Patch requests.
31498	NullFields []string `json:"-"`
31499}
31500
31501func (s *RegionInstanceGroupManagersAbandonInstancesRequest) MarshalJSON() ([]byte, error) {
31502	type NoMethod RegionInstanceGroupManagersAbandonInstancesRequest
31503	raw := NoMethod(*s)
31504	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31505}
31506
31507// RegionInstanceGroupManagersApplyUpdatesRequest:
31508// RegionInstanceGroupManagers.applyUpdatesToInstances
31509type RegionInstanceGroupManagersApplyUpdatesRequest struct {
31510	// AllInstances: Flag to update all instances instead of specified list
31511	// of ?instances?. If the flag is set to true then the instances may not
31512	// be specified in the request.
31513	AllInstances bool `json:"allInstances,omitempty"`
31514
31515	// Instances: The list of URLs of one or more instances for which you
31516	// want to apply updates. Each URL can be a full URL or a partial URL,
31517	// such as zones/[ZONE]/instances/[INSTANCE_NAME].
31518	Instances []string `json:"instances,omitempty"`
31519
31520	// MinimalAction: The minimal action that you want to perform on each
31521	// instance during the update:
31522	// - REPLACE: At minimum, delete the instance and create it again.
31523	// - RESTART: Stop the instance and start it again.
31524	// - REFRESH: Do not stop the instance.
31525	// - NONE: Do not disrupt the instance at all.  By default, the minimum
31526	// action is NONE. If your update requires a more disruptive action than
31527	// you set with this flag, the necessary action is performed to execute
31528	// the update.
31529	//
31530	// Possible values:
31531	//   "NONE"
31532	//   "REFRESH"
31533	//   "REPLACE"
31534	//   "RESTART"
31535	MinimalAction string `json:"minimalAction,omitempty"`
31536
31537	// MostDisruptiveAllowedAction: The most disruptive action that you want
31538	// to perform on each instance during the update:
31539	// - REPLACE: Delete the instance and create it again.
31540	// - RESTART: Stop the instance and start it again.
31541	// - REFRESH: Do not stop the instance.
31542	// - NONE: Do not disrupt the instance at all.  By default, the most
31543	// disruptive allowed action is REPLACE. If your update requires a more
31544	// disruptive action than you set with this flag, the update request
31545	// will fail.
31546	//
31547	// Possible values:
31548	//   "NONE"
31549	//   "REFRESH"
31550	//   "REPLACE"
31551	//   "RESTART"
31552	MostDisruptiveAllowedAction string `json:"mostDisruptiveAllowedAction,omitempty"`
31553
31554	// ForceSendFields is a list of field names (e.g. "AllInstances") to
31555	// unconditionally include in API requests. By default, fields with
31556	// empty values are omitted from API requests. However, any non-pointer,
31557	// non-interface field appearing in ForceSendFields will be sent to the
31558	// server regardless of whether the field is empty or not. This may be
31559	// used to include empty fields in Patch requests.
31560	ForceSendFields []string `json:"-"`
31561
31562	// NullFields is a list of field names (e.g. "AllInstances") to include
31563	// in API requests with the JSON null value. By default, fields with
31564	// empty values are omitted from API requests. However, any field with
31565	// an empty value appearing in NullFields will be sent to the server as
31566	// null. It is an error if a field in this list has a non-empty value.
31567	// This may be used to include null fields in Patch requests.
31568	NullFields []string `json:"-"`
31569}
31570
31571func (s *RegionInstanceGroupManagersApplyUpdatesRequest) MarshalJSON() ([]byte, error) {
31572	type NoMethod RegionInstanceGroupManagersApplyUpdatesRequest
31573	raw := NoMethod(*s)
31574	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31575}
31576
31577// RegionInstanceGroupManagersCreateInstancesRequest:
31578// RegionInstanceGroupManagers.createInstances
31579type RegionInstanceGroupManagersCreateInstancesRequest struct {
31580	// Instances: [Required] List of specifications of per-instance configs.
31581	Instances []*PerInstanceConfig `json:"instances,omitempty"`
31582
31583	// ForceSendFields is a list of field names (e.g. "Instances") to
31584	// unconditionally include in API requests. By default, fields with
31585	// empty values are omitted from API requests. However, any non-pointer,
31586	// non-interface field appearing in ForceSendFields will be sent to the
31587	// server regardless of whether the field is empty or not. This may be
31588	// used to include empty fields in Patch requests.
31589	ForceSendFields []string `json:"-"`
31590
31591	// NullFields is a list of field names (e.g. "Instances") to include in
31592	// API requests with the JSON null value. By default, fields with empty
31593	// values are omitted from API requests. However, any field with an
31594	// empty value appearing in NullFields will be sent to the server as
31595	// null. It is an error if a field in this list has a non-empty value.
31596	// This may be used to include null fields in Patch requests.
31597	NullFields []string `json:"-"`
31598}
31599
31600func (s *RegionInstanceGroupManagersCreateInstancesRequest) MarshalJSON() ([]byte, error) {
31601	type NoMethod RegionInstanceGroupManagersCreateInstancesRequest
31602	raw := NoMethod(*s)
31603	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31604}
31605
31606type RegionInstanceGroupManagersDeleteInstancesRequest struct {
31607	// Instances: The URLs of one or more instances to delete. This can be a
31608	// full URL or a partial URL, such as
31609	// zones/[ZONE]/instances/[INSTANCE_NAME].
31610	Instances []string `json:"instances,omitempty"`
31611
31612	// ForceSendFields is a list of field names (e.g. "Instances") to
31613	// unconditionally include in API requests. By default, fields with
31614	// empty values are omitted from API requests. However, any non-pointer,
31615	// non-interface field appearing in ForceSendFields will be sent to the
31616	// server regardless of whether the field is empty or not. This may be
31617	// used to include empty fields in Patch requests.
31618	ForceSendFields []string `json:"-"`
31619
31620	// NullFields is a list of field names (e.g. "Instances") to include in
31621	// API requests with the JSON null value. By default, fields with empty
31622	// values are omitted from API requests. However, any field with an
31623	// empty value appearing in NullFields will be sent to the server as
31624	// null. It is an error if a field in this list has a non-empty value.
31625	// This may be used to include null fields in Patch requests.
31626	NullFields []string `json:"-"`
31627}
31628
31629func (s *RegionInstanceGroupManagersDeleteInstancesRequest) MarshalJSON() ([]byte, error) {
31630	type NoMethod RegionInstanceGroupManagersDeleteInstancesRequest
31631	raw := NoMethod(*s)
31632	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31633}
31634
31635type RegionInstanceGroupManagersListErrorsResponse struct {
31636	// Items: [Output Only] The list of errors of the managed instance
31637	// group.
31638	Items []*InstanceManagedByIgmError `json:"items,omitempty"`
31639
31640	// NextPageToken: [Output Only] This token allows you to get the next
31641	// page of results for list requests. If the number of results is larger
31642	// than maxResults, use the nextPageToken as a value for the query
31643	// parameter pageToken in the next list request. Subsequent list
31644	// requests will have their own nextPageToken to continue paging through
31645	// the results.
31646	NextPageToken string `json:"nextPageToken,omitempty"`
31647
31648	// ServerResponse contains the HTTP response code and headers from the
31649	// server.
31650	googleapi.ServerResponse `json:"-"`
31651
31652	// ForceSendFields is a list of field names (e.g. "Items") to
31653	// unconditionally include in API requests. By default, fields with
31654	// empty values are omitted from API requests. However, any non-pointer,
31655	// non-interface field appearing in ForceSendFields will be sent to the
31656	// server regardless of whether the field is empty or not. This may be
31657	// used to include empty fields in Patch requests.
31658	ForceSendFields []string `json:"-"`
31659
31660	// NullFields is a list of field names (e.g. "Items") to include in API
31661	// requests with the JSON null value. By default, fields with empty
31662	// values are omitted from API requests. However, any field with an
31663	// empty value appearing in NullFields will be sent to the server as
31664	// null. It is an error if a field in this list has a non-empty value.
31665	// This may be used to include null fields in Patch requests.
31666	NullFields []string `json:"-"`
31667}
31668
31669func (s *RegionInstanceGroupManagersListErrorsResponse) MarshalJSON() ([]byte, error) {
31670	type NoMethod RegionInstanceGroupManagersListErrorsResponse
31671	raw := NoMethod(*s)
31672	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31673}
31674
31675type RegionInstanceGroupManagersListInstanceConfigsResp struct {
31676	// Items: [Output Only] The list of PerInstanceConfig.
31677	Items []*PerInstanceConfig `json:"items,omitempty"`
31678
31679	// NextPageToken: [Output Only] This token allows you to get the next
31680	// page of results for list requests. If the number of results is larger
31681	// than maxResults, use the nextPageToken as a value for the query
31682	// parameter pageToken in the next list request. Subsequent list
31683	// requests will have their own nextPageToken to continue paging through
31684	// the results.
31685	NextPageToken string `json:"nextPageToken,omitempty"`
31686
31687	// Warning: [Output Only] Informational warning message.
31688	Warning *RegionInstanceGroupManagersListInstanceConfigsRespWarning `json:"warning,omitempty"`
31689
31690	// ServerResponse contains the HTTP response code and headers from the
31691	// server.
31692	googleapi.ServerResponse `json:"-"`
31693
31694	// ForceSendFields is a list of field names (e.g. "Items") to
31695	// unconditionally include in API requests. By default, fields with
31696	// empty values are omitted from API requests. However, any non-pointer,
31697	// non-interface field appearing in ForceSendFields will be sent to the
31698	// server regardless of whether the field is empty or not. This may be
31699	// used to include empty fields in Patch requests.
31700	ForceSendFields []string `json:"-"`
31701
31702	// NullFields is a list of field names (e.g. "Items") to include in API
31703	// requests with the JSON null value. By default, fields with empty
31704	// values are omitted from API requests. However, any field with an
31705	// empty value appearing in NullFields will be sent to the server as
31706	// null. It is an error if a field in this list has a non-empty value.
31707	// This may be used to include null fields in Patch requests.
31708	NullFields []string `json:"-"`
31709}
31710
31711func (s *RegionInstanceGroupManagersListInstanceConfigsResp) MarshalJSON() ([]byte, error) {
31712	type NoMethod RegionInstanceGroupManagersListInstanceConfigsResp
31713	raw := NoMethod(*s)
31714	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31715}
31716
31717// RegionInstanceGroupManagersListInstanceConfigsRespWarning: [Output
31718// Only] Informational warning message.
31719type RegionInstanceGroupManagersListInstanceConfigsRespWarning struct {
31720	// Code: [Output Only] A warning code, if applicable. For example,
31721	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
31722	// the response.
31723	//
31724	// Possible values:
31725	//   "CLEANUP_FAILED"
31726	//   "DEPRECATED_RESOURCE_USED"
31727	//   "DEPRECATED_TYPE_USED"
31728	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
31729	//   "EXPERIMENTAL_TYPE_USED"
31730	//   "EXTERNAL_API_WARNING"
31731	//   "FIELD_VALUE_OVERRIDEN"
31732	//   "INJECTED_KERNELS_DEPRECATED"
31733	//   "LARGE_DEPLOYMENT_WARNING"
31734	//   "MISSING_TYPE_DEPENDENCY"
31735	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
31736	//   "NEXT_HOP_CANNOT_IP_FORWARD"
31737	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
31738	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
31739	//   "NEXT_HOP_NOT_RUNNING"
31740	//   "NOT_CRITICAL_ERROR"
31741	//   "NO_RESULTS_ON_PAGE"
31742	//   "PARTIAL_SUCCESS"
31743	//   "REQUIRED_TOS_AGREEMENT"
31744	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
31745	//   "RESOURCE_NOT_DELETED"
31746	//   "SCHEMA_VALIDATION_IGNORED"
31747	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
31748	//   "UNDECLARED_PROPERTIES"
31749	//   "UNREACHABLE"
31750	Code string `json:"code,omitempty"`
31751
31752	// Data: [Output Only] Metadata about this warning in key: value format.
31753	// For example:
31754	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
31755	Data []*RegionInstanceGroupManagersListInstanceConfigsRespWarningData `json:"data,omitempty"`
31756
31757	// Message: [Output Only] A human-readable description of the warning
31758	// code.
31759	Message string `json:"message,omitempty"`
31760
31761	// ForceSendFields is a list of field names (e.g. "Code") 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. "Code") to include in API
31770	// requests with the JSON null value. By default, fields with empty
31771	// values are omitted from API requests. However, any field with an
31772	// empty value appearing in NullFields will be sent to the server as
31773	// null. It is an error if a field in this list has a non-empty value.
31774	// This may be used to include null fields in Patch requests.
31775	NullFields []string `json:"-"`
31776}
31777
31778func (s *RegionInstanceGroupManagersListInstanceConfigsRespWarning) MarshalJSON() ([]byte, error) {
31779	type NoMethod RegionInstanceGroupManagersListInstanceConfigsRespWarning
31780	raw := NoMethod(*s)
31781	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31782}
31783
31784type RegionInstanceGroupManagersListInstanceConfigsRespWarningData struct {
31785	// Key: [Output Only] A key that provides more detail on the warning
31786	// being returned. For example, for warnings where there are no results
31787	// in a list request for a particular zone, this key might be scope and
31788	// the key value might be the zone name. Other examples might be a key
31789	// indicating a deprecated resource and a suggested replacement, or a
31790	// warning about invalid network settings (for example, if an instance
31791	// attempts to perform IP forwarding but is not enabled for IP
31792	// forwarding).
31793	Key string `json:"key,omitempty"`
31794
31795	// Value: [Output Only] A warning data value corresponding to the key.
31796	Value string `json:"value,omitempty"`
31797
31798	// ForceSendFields is a list of field names (e.g. "Key") to
31799	// unconditionally include in API requests. By default, fields with
31800	// empty values are omitted from API requests. However, any non-pointer,
31801	// non-interface field appearing in ForceSendFields will be sent to the
31802	// server regardless of whether the field is empty or not. This may be
31803	// used to include empty fields in Patch requests.
31804	ForceSendFields []string `json:"-"`
31805
31806	// NullFields is a list of field names (e.g. "Key") to include in API
31807	// requests with the JSON null value. By default, fields with empty
31808	// values are omitted from API requests. However, any field with an
31809	// empty value appearing in NullFields will be sent to the server as
31810	// null. It is an error if a field in this list has a non-empty value.
31811	// This may be used to include null fields in Patch requests.
31812	NullFields []string `json:"-"`
31813}
31814
31815func (s *RegionInstanceGroupManagersListInstanceConfigsRespWarningData) MarshalJSON() ([]byte, error) {
31816	type NoMethod RegionInstanceGroupManagersListInstanceConfigsRespWarningData
31817	raw := NoMethod(*s)
31818	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31819}
31820
31821type RegionInstanceGroupManagersListInstancesResponse struct {
31822	// ManagedInstances: A list of managed instances.
31823	ManagedInstances []*ManagedInstance `json:"managedInstances,omitempty"`
31824
31825	// NextPageToken: [Output Only] This token allows you to get the next
31826	// page of results for list requests. If the number of results is larger
31827	// than maxResults, use the nextPageToken as a value for the query
31828	// parameter pageToken in the next list request. Subsequent list
31829	// requests will have their own nextPageToken to continue paging through
31830	// the results.
31831	NextPageToken string `json:"nextPageToken,omitempty"`
31832
31833	// ServerResponse contains the HTTP response code and headers from the
31834	// server.
31835	googleapi.ServerResponse `json:"-"`
31836
31837	// ForceSendFields is a list of field names (e.g. "ManagedInstances") to
31838	// unconditionally include in API requests. By default, fields with
31839	// empty values are omitted from API requests. However, any non-pointer,
31840	// non-interface field appearing in ForceSendFields will be sent to the
31841	// server regardless of whether the field is empty or not. This may be
31842	// used to include empty fields in Patch requests.
31843	ForceSendFields []string `json:"-"`
31844
31845	// NullFields is a list of field names (e.g. "ManagedInstances") to
31846	// include in API requests with the JSON null value. By default, fields
31847	// with empty values are omitted from API requests. However, any field
31848	// with an empty value appearing in NullFields will be sent to the
31849	// server as null. It is an error if a field in this list has a
31850	// non-empty value. This may be used to include null fields in Patch
31851	// requests.
31852	NullFields []string `json:"-"`
31853}
31854
31855func (s *RegionInstanceGroupManagersListInstancesResponse) MarshalJSON() ([]byte, error) {
31856	type NoMethod RegionInstanceGroupManagersListInstancesResponse
31857	raw := NoMethod(*s)
31858	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31859}
31860
31861type RegionInstanceGroupManagersRecreateRequest struct {
31862	// Instances: The URLs of one or more instances to recreate. This can be
31863	// a full URL or a partial URL, such as
31864	// zones/[ZONE]/instances/[INSTANCE_NAME].
31865	Instances []string `json:"instances,omitempty"`
31866
31867	// ForceSendFields is a list of field names (e.g. "Instances") to
31868	// unconditionally include in API requests. By default, fields with
31869	// empty values are omitted from API requests. However, any non-pointer,
31870	// non-interface field appearing in ForceSendFields will be sent to the
31871	// server regardless of whether the field is empty or not. This may be
31872	// used to include empty fields in Patch requests.
31873	ForceSendFields []string `json:"-"`
31874
31875	// NullFields is a list of field names (e.g. "Instances") to include in
31876	// API requests with the JSON null value. By default, fields with empty
31877	// values are omitted from API requests. However, any field with an
31878	// empty value appearing in NullFields will be sent to the server as
31879	// null. It is an error if a field in this list has a non-empty value.
31880	// This may be used to include null fields in Patch requests.
31881	NullFields []string `json:"-"`
31882}
31883
31884func (s *RegionInstanceGroupManagersRecreateRequest) MarshalJSON() ([]byte, error) {
31885	type NoMethod RegionInstanceGroupManagersRecreateRequest
31886	raw := NoMethod(*s)
31887	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31888}
31889
31890type RegionInstanceGroupManagersSetTargetPoolsRequest struct {
31891	// Fingerprint: Fingerprint of the target pools information, which is a
31892	// hash of the contents. This field is used for optimistic locking when
31893	// you update the target pool entries. This field is optional.
31894	Fingerprint string `json:"fingerprint,omitempty"`
31895
31896	// TargetPools: The URL of all TargetPool resources to which instances
31897	// in the instanceGroup field are added. The target pools automatically
31898	// apply to all of the instances in the managed instance group.
31899	TargetPools []string `json:"targetPools,omitempty"`
31900
31901	// ForceSendFields is a list of field names (e.g. "Fingerprint") 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. "Fingerprint") to include
31910	// in API requests with the JSON null value. By default, fields with
31911	// empty values are omitted from API requests. However, any field with
31912	// an 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 *RegionInstanceGroupManagersSetTargetPoolsRequest) MarshalJSON() ([]byte, error) {
31919	type NoMethod RegionInstanceGroupManagersSetTargetPoolsRequest
31920	raw := NoMethod(*s)
31921	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31922}
31923
31924type RegionInstanceGroupManagersSetTemplateRequest struct {
31925	// InstanceTemplate: URL of the InstanceTemplate resource from which all
31926	// new instances will be created.
31927	InstanceTemplate string `json:"instanceTemplate,omitempty"`
31928
31929	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
31930	// unconditionally include in API requests. By default, fields with
31931	// empty values are omitted from API requests. However, any non-pointer,
31932	// non-interface field appearing in ForceSendFields will be sent to the
31933	// server regardless of whether the field is empty or not. This may be
31934	// used to include empty fields in Patch requests.
31935	ForceSendFields []string `json:"-"`
31936
31937	// NullFields is a list of field names (e.g. "InstanceTemplate") to
31938	// include in API requests with the JSON null value. By default, fields
31939	// with empty values are omitted from API requests. However, any field
31940	// with an empty value appearing in NullFields will be sent to the
31941	// server as null. It is an error if a field in this list has a
31942	// non-empty value. This may be used to include null fields in Patch
31943	// requests.
31944	NullFields []string `json:"-"`
31945}
31946
31947func (s *RegionInstanceGroupManagersSetTemplateRequest) MarshalJSON() ([]byte, error) {
31948	type NoMethod RegionInstanceGroupManagersSetTemplateRequest
31949	raw := NoMethod(*s)
31950	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31951}
31952
31953type RegionInstanceGroupsListInstances struct {
31954	// Id: [Output Only] Unique identifier for the resource; defined by the
31955	// server.
31956	Id string `json:"id,omitempty"`
31957
31958	// Items: A list of InstanceWithNamedPorts resources.
31959	Items []*InstanceWithNamedPorts `json:"items,omitempty"`
31960
31961	// Kind: The resource type.
31962	Kind string `json:"kind,omitempty"`
31963
31964	// NextPageToken: [Output Only] This token allows you to get the next
31965	// page of results for list requests. If the number of results is larger
31966	// than maxResults, use the nextPageToken as a value for the query
31967	// parameter pageToken in the next list request. Subsequent list
31968	// requests will have their own nextPageToken to continue paging through
31969	// the results.
31970	NextPageToken string `json:"nextPageToken,omitempty"`
31971
31972	// SelfLink: [Output Only] Server-defined URL for this resource.
31973	SelfLink string `json:"selfLink,omitempty"`
31974
31975	// Warning: [Output Only] Informational warning message.
31976	Warning *RegionInstanceGroupsListInstancesWarning `json:"warning,omitempty"`
31977
31978	// ServerResponse contains the HTTP response code and headers from the
31979	// server.
31980	googleapi.ServerResponse `json:"-"`
31981
31982	// ForceSendFields is a list of field names (e.g. "Id") to
31983	// unconditionally include in API requests. By default, fields with
31984	// empty values are omitted from API requests. However, any non-pointer,
31985	// non-interface field appearing in ForceSendFields will be sent to the
31986	// server regardless of whether the field is empty or not. This may be
31987	// used to include empty fields in Patch requests.
31988	ForceSendFields []string `json:"-"`
31989
31990	// NullFields is a list of field names (e.g. "Id") to include in API
31991	// requests with the JSON null value. By default, fields with empty
31992	// values are omitted from API requests. However, any field with an
31993	// empty value appearing in NullFields will be sent to the server as
31994	// null. It is an error if a field in this list has a non-empty value.
31995	// This may be used to include null fields in Patch requests.
31996	NullFields []string `json:"-"`
31997}
31998
31999func (s *RegionInstanceGroupsListInstances) MarshalJSON() ([]byte, error) {
32000	type NoMethod RegionInstanceGroupsListInstances
32001	raw := NoMethod(*s)
32002	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32003}
32004
32005// RegionInstanceGroupsListInstancesWarning: [Output Only] Informational
32006// warning message.
32007type RegionInstanceGroupsListInstancesWarning struct {
32008	// Code: [Output Only] A warning code, if applicable. For example,
32009	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
32010	// the response.
32011	//
32012	// Possible values:
32013	//   "CLEANUP_FAILED"
32014	//   "DEPRECATED_RESOURCE_USED"
32015	//   "DEPRECATED_TYPE_USED"
32016	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
32017	//   "EXPERIMENTAL_TYPE_USED"
32018	//   "EXTERNAL_API_WARNING"
32019	//   "FIELD_VALUE_OVERRIDEN"
32020	//   "INJECTED_KERNELS_DEPRECATED"
32021	//   "LARGE_DEPLOYMENT_WARNING"
32022	//   "MISSING_TYPE_DEPENDENCY"
32023	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
32024	//   "NEXT_HOP_CANNOT_IP_FORWARD"
32025	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
32026	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
32027	//   "NEXT_HOP_NOT_RUNNING"
32028	//   "NOT_CRITICAL_ERROR"
32029	//   "NO_RESULTS_ON_PAGE"
32030	//   "PARTIAL_SUCCESS"
32031	//   "REQUIRED_TOS_AGREEMENT"
32032	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
32033	//   "RESOURCE_NOT_DELETED"
32034	//   "SCHEMA_VALIDATION_IGNORED"
32035	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
32036	//   "UNDECLARED_PROPERTIES"
32037	//   "UNREACHABLE"
32038	Code string `json:"code,omitempty"`
32039
32040	// Data: [Output Only] Metadata about this warning in key: value format.
32041	// For example:
32042	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
32043	Data []*RegionInstanceGroupsListInstancesWarningData `json:"data,omitempty"`
32044
32045	// Message: [Output Only] A human-readable description of the warning
32046	// code.
32047	Message string `json:"message,omitempty"`
32048
32049	// ForceSendFields is a list of field names (e.g. "Code") to
32050	// unconditionally include in API requests. By default, fields with
32051	// empty values are omitted from API requests. However, any non-pointer,
32052	// non-interface field appearing in ForceSendFields will be sent to the
32053	// server regardless of whether the field is empty or not. This may be
32054	// used to include empty fields in Patch requests.
32055	ForceSendFields []string `json:"-"`
32056
32057	// NullFields is a list of field names (e.g. "Code") to include in API
32058	// requests with the JSON null value. By default, fields with empty
32059	// values are omitted from API requests. However, any field with an
32060	// empty value appearing in NullFields will be sent to the server as
32061	// null. It is an error if a field in this list has a non-empty value.
32062	// This may be used to include null fields in Patch requests.
32063	NullFields []string `json:"-"`
32064}
32065
32066func (s *RegionInstanceGroupsListInstancesWarning) MarshalJSON() ([]byte, error) {
32067	type NoMethod RegionInstanceGroupsListInstancesWarning
32068	raw := NoMethod(*s)
32069	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32070}
32071
32072type RegionInstanceGroupsListInstancesWarningData struct {
32073	// Key: [Output Only] A key that provides more detail on the warning
32074	// being returned. For example, for warnings where there are no results
32075	// in a list request for a particular zone, this key might be scope and
32076	// the key value might be the zone name. Other examples might be a key
32077	// indicating a deprecated resource and a suggested replacement, or a
32078	// warning about invalid network settings (for example, if an instance
32079	// attempts to perform IP forwarding but is not enabled for IP
32080	// forwarding).
32081	Key string `json:"key,omitempty"`
32082
32083	// Value: [Output Only] A warning data value corresponding to the key.
32084	Value string `json:"value,omitempty"`
32085
32086	// ForceSendFields is a list of field names (e.g. "Key") to
32087	// unconditionally include in API requests. By default, fields with
32088	// empty values are omitted from API requests. However, any non-pointer,
32089	// non-interface field appearing in ForceSendFields will be sent to the
32090	// server regardless of whether the field is empty or not. This may be
32091	// used to include empty fields in Patch requests.
32092	ForceSendFields []string `json:"-"`
32093
32094	// NullFields is a list of field names (e.g. "Key") to include in API
32095	// requests with the JSON null value. By default, fields with empty
32096	// values are omitted from API requests. However, any field with an
32097	// empty value appearing in NullFields will be sent to the server as
32098	// null. It is an error if a field in this list has a non-empty value.
32099	// This may be used to include null fields in Patch requests.
32100	NullFields []string `json:"-"`
32101}
32102
32103func (s *RegionInstanceGroupsListInstancesWarningData) MarshalJSON() ([]byte, error) {
32104	type NoMethod RegionInstanceGroupsListInstancesWarningData
32105	raw := NoMethod(*s)
32106	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32107}
32108
32109type RegionInstanceGroupsListInstancesRequest struct {
32110	// InstanceState: Instances in which state should be returned. Valid
32111	// options are: 'ALL', 'RUNNING'. By default, it lists all instances.
32112	//
32113	// Possible values:
32114	//   "ALL"
32115	//   "RUNNING"
32116	InstanceState string `json:"instanceState,omitempty"`
32117
32118	// PortName: Name of port user is interested in. It is optional. If it
32119	// is set, only information about this ports will be returned. If it is
32120	// not set, all the named ports will be returned. Always lists all
32121	// instances.
32122	PortName string `json:"portName,omitempty"`
32123
32124	// ForceSendFields is a list of field names (e.g. "InstanceState") to
32125	// unconditionally include in API requests. By default, fields with
32126	// empty values are omitted from API requests. However, any non-pointer,
32127	// non-interface field appearing in ForceSendFields will be sent to the
32128	// server regardless of whether the field is empty or not. This may be
32129	// used to include empty fields in Patch requests.
32130	ForceSendFields []string `json:"-"`
32131
32132	// NullFields is a list of field names (e.g. "InstanceState") to include
32133	// in API requests with the JSON null value. By default, fields with
32134	// empty values are omitted from API requests. However, any field with
32135	// an empty value appearing in NullFields will be sent to the server as
32136	// null. It is an error if a field in this list has a non-empty value.
32137	// This may be used to include null fields in Patch requests.
32138	NullFields []string `json:"-"`
32139}
32140
32141func (s *RegionInstanceGroupsListInstancesRequest) MarshalJSON() ([]byte, error) {
32142	type NoMethod RegionInstanceGroupsListInstancesRequest
32143	raw := NoMethod(*s)
32144	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32145}
32146
32147type RegionInstanceGroupsSetNamedPortsRequest struct {
32148	// Fingerprint: The fingerprint of the named ports information for this
32149	// instance group. Use this optional property to prevent conflicts when
32150	// multiple users change the named ports settings concurrently. Obtain
32151	// the fingerprint with the instanceGroups.get method. Then, include the
32152	// fingerprint in your request to ensure that you do not overwrite
32153	// changes that were applied from another concurrent request.
32154	Fingerprint string `json:"fingerprint,omitempty"`
32155
32156	// NamedPorts: The list of named ports to set for this instance group.
32157	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
32158
32159	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
32160	// unconditionally include in API requests. By default, fields with
32161	// empty values are omitted from API requests. However, any non-pointer,
32162	// non-interface field appearing in ForceSendFields will be sent to the
32163	// server regardless of whether the field is empty or not. This may be
32164	// used to include empty fields in Patch requests.
32165	ForceSendFields []string `json:"-"`
32166
32167	// NullFields is a list of field names (e.g. "Fingerprint") to include
32168	// in API requests with the JSON null value. By default, fields with
32169	// empty values are omitted from API requests. However, any field with
32170	// an empty value appearing in NullFields will be sent to the server as
32171	// null. It is an error if a field in this list has a non-empty value.
32172	// This may be used to include null fields in Patch requests.
32173	NullFields []string `json:"-"`
32174}
32175
32176func (s *RegionInstanceGroupsSetNamedPortsRequest) MarshalJSON() ([]byte, error) {
32177	type NoMethod RegionInstanceGroupsSetNamedPortsRequest
32178	raw := NoMethod(*s)
32179	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32180}
32181
32182// RegionList: Contains a list of region resources.
32183type RegionList struct {
32184	// Id: [Output Only] Unique identifier for the resource; defined by the
32185	// server.
32186	Id string `json:"id,omitempty"`
32187
32188	// Items: A list of Region resources.
32189	Items []*Region `json:"items,omitempty"`
32190
32191	// Kind: [Output Only] Type of resource. Always compute#regionList for
32192	// lists of regions.
32193	Kind string `json:"kind,omitempty"`
32194
32195	// NextPageToken: [Output Only] This token allows you to get the next
32196	// page of results for list requests. If the number of results is larger
32197	// than maxResults, use the nextPageToken as a value for the query
32198	// parameter pageToken in the next list request. Subsequent list
32199	// requests will have their own nextPageToken to continue paging through
32200	// the results.
32201	NextPageToken string `json:"nextPageToken,omitempty"`
32202
32203	// SelfLink: [Output Only] Server-defined URL for this resource.
32204	SelfLink string `json:"selfLink,omitempty"`
32205
32206	// Warning: [Output Only] Informational warning message.
32207	Warning *RegionListWarning `json:"warning,omitempty"`
32208
32209	// ServerResponse contains the HTTP response code and headers from the
32210	// server.
32211	googleapi.ServerResponse `json:"-"`
32212
32213	// ForceSendFields is a list of field names (e.g. "Id") to
32214	// unconditionally include in API requests. By default, fields with
32215	// empty values are omitted from API requests. However, any non-pointer,
32216	// non-interface field appearing in ForceSendFields will be sent to the
32217	// server regardless of whether the field is empty or not. This may be
32218	// used to include empty fields in Patch requests.
32219	ForceSendFields []string `json:"-"`
32220
32221	// NullFields is a list of field names (e.g. "Id") to include in API
32222	// requests with the JSON null value. By default, fields with empty
32223	// values are omitted from API requests. However, any field with an
32224	// empty value appearing in NullFields will be sent to the server as
32225	// null. It is an error if a field in this list has a non-empty value.
32226	// This may be used to include null fields in Patch requests.
32227	NullFields []string `json:"-"`
32228}
32229
32230func (s *RegionList) MarshalJSON() ([]byte, error) {
32231	type NoMethod RegionList
32232	raw := NoMethod(*s)
32233	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32234}
32235
32236// RegionListWarning: [Output Only] Informational warning message.
32237type RegionListWarning struct {
32238	// Code: [Output Only] A warning code, if applicable. For example,
32239	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
32240	// the response.
32241	//
32242	// Possible values:
32243	//   "CLEANUP_FAILED"
32244	//   "DEPRECATED_RESOURCE_USED"
32245	//   "DEPRECATED_TYPE_USED"
32246	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
32247	//   "EXPERIMENTAL_TYPE_USED"
32248	//   "EXTERNAL_API_WARNING"
32249	//   "FIELD_VALUE_OVERRIDEN"
32250	//   "INJECTED_KERNELS_DEPRECATED"
32251	//   "LARGE_DEPLOYMENT_WARNING"
32252	//   "MISSING_TYPE_DEPENDENCY"
32253	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
32254	//   "NEXT_HOP_CANNOT_IP_FORWARD"
32255	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
32256	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
32257	//   "NEXT_HOP_NOT_RUNNING"
32258	//   "NOT_CRITICAL_ERROR"
32259	//   "NO_RESULTS_ON_PAGE"
32260	//   "PARTIAL_SUCCESS"
32261	//   "REQUIRED_TOS_AGREEMENT"
32262	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
32263	//   "RESOURCE_NOT_DELETED"
32264	//   "SCHEMA_VALIDATION_IGNORED"
32265	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
32266	//   "UNDECLARED_PROPERTIES"
32267	//   "UNREACHABLE"
32268	Code string `json:"code,omitempty"`
32269
32270	// Data: [Output Only] Metadata about this warning in key: value format.
32271	// For example:
32272	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
32273	Data []*RegionListWarningData `json:"data,omitempty"`
32274
32275	// Message: [Output Only] A human-readable description of the warning
32276	// code.
32277	Message string `json:"message,omitempty"`
32278
32279	// ForceSendFields is a list of field names (e.g. "Code") to
32280	// unconditionally include in API requests. By default, fields with
32281	// empty values are omitted from API requests. However, any non-pointer,
32282	// non-interface field appearing in ForceSendFields will be sent to the
32283	// server regardless of whether the field is empty or not. This may be
32284	// used to include empty fields in Patch requests.
32285	ForceSendFields []string `json:"-"`
32286
32287	// NullFields is a list of field names (e.g. "Code") to include in API
32288	// requests with the JSON null value. By default, fields with empty
32289	// values are omitted from API requests. However, any field with an
32290	// empty value appearing in NullFields will be sent to the server as
32291	// null. It is an error if a field in this list has a non-empty value.
32292	// This may be used to include null fields in Patch requests.
32293	NullFields []string `json:"-"`
32294}
32295
32296func (s *RegionListWarning) MarshalJSON() ([]byte, error) {
32297	type NoMethod RegionListWarning
32298	raw := NoMethod(*s)
32299	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32300}
32301
32302type RegionListWarningData struct {
32303	// Key: [Output Only] A key that provides more detail on the warning
32304	// being returned. For example, for warnings where there are no results
32305	// in a list request for a particular zone, this key might be scope and
32306	// the key value might be the zone name. Other examples might be a key
32307	// indicating a deprecated resource and a suggested replacement, or a
32308	// warning about invalid network settings (for example, if an instance
32309	// attempts to perform IP forwarding but is not enabled for IP
32310	// forwarding).
32311	Key string `json:"key,omitempty"`
32312
32313	// Value: [Output Only] A warning data value corresponding to the key.
32314	Value string `json:"value,omitempty"`
32315
32316	// ForceSendFields is a list of field names (e.g. "Key") to
32317	// unconditionally include in API requests. By default, fields with
32318	// empty values are omitted from API requests. However, any non-pointer,
32319	// non-interface field appearing in ForceSendFields will be sent to the
32320	// server regardless of whether the field is empty or not. This may be
32321	// used to include empty fields in Patch requests.
32322	ForceSendFields []string `json:"-"`
32323
32324	// NullFields is a list of field names (e.g. "Key") to include in API
32325	// requests with the JSON null value. By default, fields with empty
32326	// values are omitted from API requests. However, any field with an
32327	// empty value appearing in NullFields will be sent to the server as
32328	// null. It is an error if a field in this list has a non-empty value.
32329	// This may be used to include null fields in Patch requests.
32330	NullFields []string `json:"-"`
32331}
32332
32333func (s *RegionListWarningData) MarshalJSON() ([]byte, error) {
32334	type NoMethod RegionListWarningData
32335	raw := NoMethod(*s)
32336	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32337}
32338
32339type RegionSetLabelsRequest struct {
32340	// LabelFingerprint: The fingerprint of the previous set of labels for
32341	// this resource, used to detect conflicts. The fingerprint is initially
32342	// generated by Compute Engine and changes after every request to modify
32343	// or update labels. You must always provide an up-to-date fingerprint
32344	// hash in order to update or change labels. Make a get() request to the
32345	// resource to get the latest fingerprint.
32346	LabelFingerprint string `json:"labelFingerprint,omitempty"`
32347
32348	// Labels: The labels to set for this resource.
32349	Labels map[string]string `json:"labels,omitempty"`
32350
32351	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
32352	// unconditionally include in API requests. By default, fields with
32353	// empty values are omitted from API requests. However, any non-pointer,
32354	// non-interface field appearing in ForceSendFields will be sent to the
32355	// server regardless of whether the field is empty or not. This may be
32356	// used to include empty fields in Patch requests.
32357	ForceSendFields []string `json:"-"`
32358
32359	// NullFields is a list of field names (e.g. "LabelFingerprint") to
32360	// include in API requests with the JSON null value. By default, fields
32361	// with empty values are omitted from API requests. However, any field
32362	// with an empty value appearing in NullFields will be sent to the
32363	// server as null. It is an error if a field in this list has a
32364	// non-empty value. This may be used to include null fields in Patch
32365	// requests.
32366	NullFields []string `json:"-"`
32367}
32368
32369func (s *RegionSetLabelsRequest) MarshalJSON() ([]byte, error) {
32370	type NoMethod RegionSetLabelsRequest
32371	raw := NoMethod(*s)
32372	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32373}
32374
32375type RegionSetPolicyRequest struct {
32376	// Bindings: Flatten Policy to create a backwacd compatible wire-format.
32377	// Deprecated. Use 'policy' to specify bindings.
32378	Bindings []*Binding `json:"bindings,omitempty"`
32379
32380	// Etag: Flatten Policy to create a backward compatible wire-format.
32381	// Deprecated. Use 'policy' to specify the etag.
32382	Etag string `json:"etag,omitempty"`
32383
32384	// Policy: REQUIRED: The complete policy to be applied to the
32385	// 'resource'. The size of the policy is limited to a few 10s of KB. An
32386	// empty policy is in general a valid policy but certain services (like
32387	// Projects) might reject them.
32388	Policy *Policy `json:"policy,omitempty"`
32389
32390	// ForceSendFields is a list of field names (e.g. "Bindings") to
32391	// unconditionally include in API requests. By default, fields with
32392	// empty values are omitted from API requests. However, any non-pointer,
32393	// non-interface field appearing in ForceSendFields will be sent to the
32394	// server regardless of whether the field is empty or not. This may be
32395	// used to include empty fields in Patch requests.
32396	ForceSendFields []string `json:"-"`
32397
32398	// NullFields is a list of field names (e.g. "Bindings") to include in
32399	// API requests with the JSON null value. By default, fields with empty
32400	// values are omitted from API requests. However, any field with an
32401	// empty value appearing in NullFields will be sent to the server as
32402	// null. It is an error if a field in this list has a non-empty value.
32403	// This may be used to include null fields in Patch requests.
32404	NullFields []string `json:"-"`
32405}
32406
32407func (s *RegionSetPolicyRequest) MarshalJSON() ([]byte, error) {
32408	type NoMethod RegionSetPolicyRequest
32409	raw := NoMethod(*s)
32410	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32411}
32412
32413type RegionTargetHttpsProxiesSetSslCertificatesRequest struct {
32414	// SslCertificates: New set of SslCertificate resources to associate
32415	// with this TargetHttpsProxy resource. Currently exactly one
32416	// SslCertificate resource must be specified.
32417	SslCertificates []string `json:"sslCertificates,omitempty"`
32418
32419	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
32420	// unconditionally include in API requests. By default, fields with
32421	// empty values are omitted from API requests. However, any non-pointer,
32422	// non-interface field appearing in ForceSendFields will be sent to the
32423	// server regardless of whether the field is empty or not. This may be
32424	// used to include empty fields in Patch requests.
32425	ForceSendFields []string `json:"-"`
32426
32427	// NullFields is a list of field names (e.g. "SslCertificates") to
32428	// include in API requests with the JSON null value. By default, fields
32429	// with empty values are omitted from API requests. However, any field
32430	// with an empty value appearing in NullFields will be sent to the
32431	// server as null. It is an error if a field in this list has a
32432	// non-empty value. This may be used to include null fields in Patch
32433	// requests.
32434	NullFields []string `json:"-"`
32435}
32436
32437func (s *RegionTargetHttpsProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
32438	type NoMethod RegionTargetHttpsProxiesSetSslCertificatesRequest
32439	raw := NoMethod(*s)
32440	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32441}
32442
32443type RegionUrlMapsValidateRequest struct {
32444	// Resource: Content of the UrlMap to be validated.
32445	Resource *UrlMap `json:"resource,omitempty"`
32446
32447	// ForceSendFields is a list of field names (e.g. "Resource") to
32448	// unconditionally include in API requests. By default, fields with
32449	// empty values are omitted from API requests. However, any non-pointer,
32450	// non-interface field appearing in ForceSendFields will be sent to the
32451	// server regardless of whether the field is empty or not. This may be
32452	// used to include empty fields in Patch requests.
32453	ForceSendFields []string `json:"-"`
32454
32455	// NullFields is a list of field names (e.g. "Resource") to include in
32456	// API requests with the JSON null value. By default, fields with empty
32457	// values are omitted from API requests. However, any field with an
32458	// empty value appearing in NullFields will be sent to the server as
32459	// null. It is an error if a field in this list has a non-empty value.
32460	// This may be used to include null fields in Patch requests.
32461	NullFields []string `json:"-"`
32462}
32463
32464func (s *RegionUrlMapsValidateRequest) MarshalJSON() ([]byte, error) {
32465	type NoMethod RegionUrlMapsValidateRequest
32466	raw := NoMethod(*s)
32467	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32468}
32469
32470// RequestMirrorPolicy: A policy that specifies how requests intended
32471// for the route's backends are shadowed to a separate mirrored backend
32472// service. Loadbalancer does not wait for responses from the shadow
32473// service. Prior to sending traffic to the shadow service, the host /
32474// authority header is suffixed with -shadow.
32475type RequestMirrorPolicy struct {
32476	// BackendService: The full or partial URL to the BackendService
32477	// resource being mirrored to.
32478	BackendService string `json:"backendService,omitempty"`
32479
32480	// ForceSendFields is a list of field names (e.g. "BackendService") to
32481	// unconditionally include in API requests. By default, fields with
32482	// empty values are omitted from API requests. However, any non-pointer,
32483	// non-interface field appearing in ForceSendFields will be sent to the
32484	// server regardless of whether the field is empty or not. This may be
32485	// used to include empty fields in Patch requests.
32486	ForceSendFields []string `json:"-"`
32487
32488	// NullFields is a list of field names (e.g. "BackendService") to
32489	// include in API requests with the JSON null value. By default, fields
32490	// with empty values are omitted from API requests. However, any field
32491	// with an empty value appearing in NullFields will be sent to the
32492	// server as null. It is an error if a field in this list has a
32493	// non-empty value. This may be used to include null fields in Patch
32494	// requests.
32495	NullFields []string `json:"-"`
32496}
32497
32498func (s *RequestMirrorPolicy) MarshalJSON() ([]byte, error) {
32499	type NoMethod RequestMirrorPolicy
32500	raw := NoMethod(*s)
32501	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32502}
32503
32504// Reservation: Represents a reservation resource. A reservation ensures
32505// that capacity is held in a specific zone even if the reserved VMs are
32506// not running. For more information, read  Reserving zonal resources.
32507// (== resource_for {$api_version}.reservations ==)
32508type Reservation struct {
32509	// Commitment: [Output Only] Full or partial URL to a parent commitment.
32510	// This field displays for reservations that are tied to a commitment.
32511	Commitment string `json:"commitment,omitempty"`
32512
32513	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
32514	// format.
32515	CreationTimestamp string `json:"creationTimestamp,omitempty"`
32516
32517	// Description: An optional description of this resource. Provide this
32518	// property when you create the resource.
32519	Description string `json:"description,omitempty"`
32520
32521	// Id: [Output Only] The unique identifier for the resource. This
32522	// identifier is defined by the server.
32523	Id uint64 `json:"id,omitempty,string"`
32524
32525	// Kind: [Output Only] Type of the resource. Always compute#reservations
32526	// for reservations.
32527	Kind string `json:"kind,omitempty"`
32528
32529	// Name: The name of the resource, provided by the client when initially
32530	// creating the resource. The resource name must be 1-63 characters
32531	// long, and comply with RFC1035. Specifically, the name must be 1-63
32532	// characters long and match the regular expression
32533	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
32534	// a lowercase letter, and all following characters must be a dash,
32535	// lowercase letter, or digit, except the last character, which cannot
32536	// be a dash.
32537	Name string `json:"name,omitempty"`
32538
32539	// SatisfiesPzs: [Output Only] Reserved for future use.
32540	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
32541
32542	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
32543	// resource.
32544	SelfLink string `json:"selfLink,omitempty"`
32545
32546	// SpecificReservation: Reservation for instances with specific machine
32547	// shapes.
32548	SpecificReservation *AllocationSpecificSKUReservation `json:"specificReservation,omitempty"`
32549
32550	// SpecificReservationRequired: Indicates whether the reservation can be
32551	// consumed by VMs with affinity for "any" reservation. If the field is
32552	// set, then only VMs that target the reservation by name can consume
32553	// from this reservation.
32554	SpecificReservationRequired bool `json:"specificReservationRequired,omitempty"`
32555
32556	// Status: [Output Only] The status of the reservation.
32557	//
32558	// Possible values:
32559	//   "CREATING"
32560	//   "DELETING"
32561	//   "INVALID"
32562	//   "READY"
32563	//   "UPDATING"
32564	Status string `json:"status,omitempty"`
32565
32566	// Zone: Zone in which the reservation resides. A zone must be provided
32567	// if the reservation is created within a commitment.
32568	Zone string `json:"zone,omitempty"`
32569
32570	// ServerResponse contains the HTTP response code and headers from the
32571	// server.
32572	googleapi.ServerResponse `json:"-"`
32573
32574	// ForceSendFields is a list of field names (e.g. "Commitment") to
32575	// unconditionally include in API requests. By default, fields with
32576	// empty values are omitted from API requests. However, any non-pointer,
32577	// non-interface field appearing in ForceSendFields will be sent to the
32578	// server regardless of whether the field is empty or not. This may be
32579	// used to include empty fields in Patch requests.
32580	ForceSendFields []string `json:"-"`
32581
32582	// NullFields is a list of field names (e.g. "Commitment") to include in
32583	// API requests with the JSON null value. By default, fields with empty
32584	// values are omitted from API requests. However, any field with an
32585	// empty value appearing in NullFields will be sent to the server as
32586	// null. It is an error if a field in this list has a non-empty value.
32587	// This may be used to include null fields in Patch requests.
32588	NullFields []string `json:"-"`
32589}
32590
32591func (s *Reservation) MarshalJSON() ([]byte, error) {
32592	type NoMethod Reservation
32593	raw := NoMethod(*s)
32594	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32595}
32596
32597// ReservationAffinity: Specifies the reservations that this instance
32598// can consume from.
32599type ReservationAffinity struct {
32600	// ConsumeReservationType: Specifies the type of reservation from which
32601	// this instance can consume resources: ANY_RESERVATION (default),
32602	// SPECIFIC_RESERVATION, or NO_RESERVATION. See  Consuming reserved
32603	// instances for examples.
32604	//
32605	// Possible values:
32606	//   "ANY_RESERVATION"
32607	//   "NO_RESERVATION"
32608	//   "SPECIFIC_RESERVATION"
32609	//   "UNSPECIFIED"
32610	ConsumeReservationType string `json:"consumeReservationType,omitempty"`
32611
32612	// Key: Corresponds to the label key of a reservation resource. To
32613	// target a SPECIFIC_RESERVATION by name, specify
32614	// googleapis.com/reservation-name as the key and specify the name of
32615	// your reservation as its value.
32616	Key string `json:"key,omitempty"`
32617
32618	// Values: Corresponds to the label values of a reservation resource.
32619	// This can be either a name to a reservation in the same project or
32620	// "projects/different-project/reservations/some-reservation-name" to
32621	// target a shared reservation in the same zone but in a different
32622	// project.
32623	Values []string `json:"values,omitempty"`
32624
32625	// ForceSendFields is a list of field names (e.g.
32626	// "ConsumeReservationType") to unconditionally include in API requests.
32627	// By default, fields with empty values are omitted from API requests.
32628	// However, any non-pointer, non-interface field appearing in
32629	// ForceSendFields will be sent to the server regardless of whether the
32630	// field is empty or not. This may be used to include empty fields in
32631	// Patch requests.
32632	ForceSendFields []string `json:"-"`
32633
32634	// NullFields is a list of field names (e.g. "ConsumeReservationType")
32635	// to include in API requests with the JSON null value. By default,
32636	// fields with empty values are omitted from API requests. However, any
32637	// field with an empty value appearing in NullFields will be sent to the
32638	// server as null. It is an error if a field in this list has a
32639	// non-empty value. This may be used to include null fields in Patch
32640	// requests.
32641	NullFields []string `json:"-"`
32642}
32643
32644func (s *ReservationAffinity) MarshalJSON() ([]byte, error) {
32645	type NoMethod ReservationAffinity
32646	raw := NoMethod(*s)
32647	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32648}
32649
32650// ReservationAggregatedList: Contains a list of reservations.
32651type ReservationAggregatedList struct {
32652	// Id: [Output Only] Unique identifier for the resource; defined by the
32653	// server.
32654	Id string `json:"id,omitempty"`
32655
32656	// Items: A list of Allocation resources.
32657	Items map[string]ReservationsScopedList `json:"items,omitempty"`
32658
32659	// Kind: Type of resource.
32660	Kind string `json:"kind,omitempty"`
32661
32662	// NextPageToken: [Output Only] This token allows you to get the next
32663	// page of results for list requests. If the number of results is larger
32664	// than maxResults, use the nextPageToken as a value for the query
32665	// parameter pageToken in the next list request. Subsequent list
32666	// requests will have their own nextPageToken to continue paging through
32667	// the results.
32668	NextPageToken string `json:"nextPageToken,omitempty"`
32669
32670	// SelfLink: [Output Only] Server-defined URL for this resource.
32671	SelfLink string `json:"selfLink,omitempty"`
32672
32673	// Unreachables: [Output Only] Unreachable resources.
32674	Unreachables []string `json:"unreachables,omitempty"`
32675
32676	// Warning: [Output Only] Informational warning message.
32677	Warning *ReservationAggregatedListWarning `json:"warning,omitempty"`
32678
32679	// ServerResponse contains the HTTP response code and headers from the
32680	// server.
32681	googleapi.ServerResponse `json:"-"`
32682
32683	// ForceSendFields is a list of field names (e.g. "Id") to
32684	// unconditionally include in API requests. By default, fields with
32685	// empty values are omitted from API requests. However, any non-pointer,
32686	// non-interface field appearing in ForceSendFields will be sent to the
32687	// server regardless of whether the field is empty or not. This may be
32688	// used to include empty fields in Patch requests.
32689	ForceSendFields []string `json:"-"`
32690
32691	// NullFields is a list of field names (e.g. "Id") to include in API
32692	// requests with the JSON null value. By default, fields with empty
32693	// values are omitted from API requests. However, any field with an
32694	// empty value appearing in NullFields will be sent to the server as
32695	// null. It is an error if a field in this list has a non-empty value.
32696	// This may be used to include null fields in Patch requests.
32697	NullFields []string `json:"-"`
32698}
32699
32700func (s *ReservationAggregatedList) MarshalJSON() ([]byte, error) {
32701	type NoMethod ReservationAggregatedList
32702	raw := NoMethod(*s)
32703	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32704}
32705
32706// ReservationAggregatedListWarning: [Output Only] Informational warning
32707// message.
32708type ReservationAggregatedListWarning struct {
32709	// Code: [Output Only] A warning code, if applicable. For example,
32710	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
32711	// the response.
32712	//
32713	// Possible values:
32714	//   "CLEANUP_FAILED"
32715	//   "DEPRECATED_RESOURCE_USED"
32716	//   "DEPRECATED_TYPE_USED"
32717	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
32718	//   "EXPERIMENTAL_TYPE_USED"
32719	//   "EXTERNAL_API_WARNING"
32720	//   "FIELD_VALUE_OVERRIDEN"
32721	//   "INJECTED_KERNELS_DEPRECATED"
32722	//   "LARGE_DEPLOYMENT_WARNING"
32723	//   "MISSING_TYPE_DEPENDENCY"
32724	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
32725	//   "NEXT_HOP_CANNOT_IP_FORWARD"
32726	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
32727	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
32728	//   "NEXT_HOP_NOT_RUNNING"
32729	//   "NOT_CRITICAL_ERROR"
32730	//   "NO_RESULTS_ON_PAGE"
32731	//   "PARTIAL_SUCCESS"
32732	//   "REQUIRED_TOS_AGREEMENT"
32733	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
32734	//   "RESOURCE_NOT_DELETED"
32735	//   "SCHEMA_VALIDATION_IGNORED"
32736	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
32737	//   "UNDECLARED_PROPERTIES"
32738	//   "UNREACHABLE"
32739	Code string `json:"code,omitempty"`
32740
32741	// Data: [Output Only] Metadata about this warning in key: value format.
32742	// For example:
32743	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
32744	Data []*ReservationAggregatedListWarningData `json:"data,omitempty"`
32745
32746	// Message: [Output Only] A human-readable description of the warning
32747	// code.
32748	Message string `json:"message,omitempty"`
32749
32750	// ForceSendFields is a list of field names (e.g. "Code") to
32751	// unconditionally include in API requests. By default, fields with
32752	// empty values are omitted from API requests. However, any non-pointer,
32753	// non-interface field appearing in ForceSendFields will be sent to the
32754	// server regardless of whether the field is empty or not. This may be
32755	// used to include empty fields in Patch requests.
32756	ForceSendFields []string `json:"-"`
32757
32758	// NullFields is a list of field names (e.g. "Code") to include in API
32759	// requests with the JSON null value. By default, fields with empty
32760	// values are omitted from API requests. However, any field with an
32761	// empty value appearing in NullFields will be sent to the server as
32762	// null. It is an error if a field in this list has a non-empty value.
32763	// This may be used to include null fields in Patch requests.
32764	NullFields []string `json:"-"`
32765}
32766
32767func (s *ReservationAggregatedListWarning) MarshalJSON() ([]byte, error) {
32768	type NoMethod ReservationAggregatedListWarning
32769	raw := NoMethod(*s)
32770	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32771}
32772
32773type ReservationAggregatedListWarningData struct {
32774	// Key: [Output Only] A key that provides more detail on the warning
32775	// being returned. For example, for warnings where there are no results
32776	// in a list request for a particular zone, this key might be scope and
32777	// the key value might be the zone name. Other examples might be a key
32778	// indicating a deprecated resource and a suggested replacement, or a
32779	// warning about invalid network settings (for example, if an instance
32780	// attempts to perform IP forwarding but is not enabled for IP
32781	// forwarding).
32782	Key string `json:"key,omitempty"`
32783
32784	// Value: [Output Only] A warning data value corresponding to the key.
32785	Value string `json:"value,omitempty"`
32786
32787	// ForceSendFields is a list of field names (e.g. "Key") to
32788	// unconditionally include in API requests. By default, fields with
32789	// empty values are omitted from API requests. However, any non-pointer,
32790	// non-interface field appearing in ForceSendFields will be sent to the
32791	// server regardless of whether the field is empty or not. This may be
32792	// used to include empty fields in Patch requests.
32793	ForceSendFields []string `json:"-"`
32794
32795	// NullFields is a list of field names (e.g. "Key") to include in API
32796	// requests with the JSON null value. By default, fields with empty
32797	// values are omitted from API requests. However, any field with an
32798	// empty value appearing in NullFields will be sent to the server as
32799	// null. It is an error if a field in this list has a non-empty value.
32800	// This may be used to include null fields in Patch requests.
32801	NullFields []string `json:"-"`
32802}
32803
32804func (s *ReservationAggregatedListWarningData) MarshalJSON() ([]byte, error) {
32805	type NoMethod ReservationAggregatedListWarningData
32806	raw := NoMethod(*s)
32807	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32808}
32809
32810type ReservationList struct {
32811	// Id: [Output Only] The unique identifier for the resource. This
32812	// identifier is defined by the server.
32813	Id string `json:"id,omitempty"`
32814
32815	// Items: [Output Only] A list of Allocation resources.
32816	Items []*Reservation `json:"items,omitempty"`
32817
32818	// Kind: [Output Only] Type of resource.Always compute#reservationsList
32819	// for listsof reservations
32820	Kind string `json:"kind,omitempty"`
32821
32822	// NextPageToken: [Output Only] This token allows you to get the next
32823	// page of results for list requests. If the number of results is larger
32824	// than maxResults, use the nextPageToken as a value for the query
32825	// parameter pageToken in the next list request. Subsequent list
32826	// requests will have their own nextPageToken to continue paging through
32827	// the results.
32828	NextPageToken string `json:"nextPageToken,omitempty"`
32829
32830	// SelfLink: [Output Only] Server-defined URL for this resource.
32831	SelfLink string `json:"selfLink,omitempty"`
32832
32833	// Warning: [Output Only] Informational warning message.
32834	Warning *ReservationListWarning `json:"warning,omitempty"`
32835
32836	// ServerResponse contains the HTTP response code and headers from the
32837	// server.
32838	googleapi.ServerResponse `json:"-"`
32839
32840	// ForceSendFields is a list of field names (e.g. "Id") to
32841	// unconditionally include in API requests. By default, fields with
32842	// empty values are omitted from API requests. However, any non-pointer,
32843	// non-interface field appearing in ForceSendFields will be sent to the
32844	// server regardless of whether the field is empty or not. This may be
32845	// used to include empty fields in Patch requests.
32846	ForceSendFields []string `json:"-"`
32847
32848	// NullFields is a list of field names (e.g. "Id") to include in API
32849	// requests with the JSON null value. By default, fields with empty
32850	// values are omitted from API requests. However, any field with an
32851	// empty value appearing in NullFields will be sent to the server as
32852	// null. It is an error if a field in this list has a non-empty value.
32853	// This may be used to include null fields in Patch requests.
32854	NullFields []string `json:"-"`
32855}
32856
32857func (s *ReservationList) MarshalJSON() ([]byte, error) {
32858	type NoMethod ReservationList
32859	raw := NoMethod(*s)
32860	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32861}
32862
32863// ReservationListWarning: [Output Only] Informational warning message.
32864type ReservationListWarning struct {
32865	// Code: [Output Only] A warning code, if applicable. For example,
32866	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
32867	// the response.
32868	//
32869	// Possible values:
32870	//   "CLEANUP_FAILED"
32871	//   "DEPRECATED_RESOURCE_USED"
32872	//   "DEPRECATED_TYPE_USED"
32873	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
32874	//   "EXPERIMENTAL_TYPE_USED"
32875	//   "EXTERNAL_API_WARNING"
32876	//   "FIELD_VALUE_OVERRIDEN"
32877	//   "INJECTED_KERNELS_DEPRECATED"
32878	//   "LARGE_DEPLOYMENT_WARNING"
32879	//   "MISSING_TYPE_DEPENDENCY"
32880	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
32881	//   "NEXT_HOP_CANNOT_IP_FORWARD"
32882	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
32883	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
32884	//   "NEXT_HOP_NOT_RUNNING"
32885	//   "NOT_CRITICAL_ERROR"
32886	//   "NO_RESULTS_ON_PAGE"
32887	//   "PARTIAL_SUCCESS"
32888	//   "REQUIRED_TOS_AGREEMENT"
32889	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
32890	//   "RESOURCE_NOT_DELETED"
32891	//   "SCHEMA_VALIDATION_IGNORED"
32892	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
32893	//   "UNDECLARED_PROPERTIES"
32894	//   "UNREACHABLE"
32895	Code string `json:"code,omitempty"`
32896
32897	// Data: [Output Only] Metadata about this warning in key: value format.
32898	// For example:
32899	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
32900	Data []*ReservationListWarningData `json:"data,omitempty"`
32901
32902	// Message: [Output Only] A human-readable description of the warning
32903	// code.
32904	Message string `json:"message,omitempty"`
32905
32906	// ForceSendFields is a list of field names (e.g. "Code") to
32907	// unconditionally include in API requests. By default, fields with
32908	// empty values are omitted from API requests. However, any non-pointer,
32909	// non-interface field appearing in ForceSendFields will be sent to the
32910	// server regardless of whether the field is empty or not. This may be
32911	// used to include empty fields in Patch requests.
32912	ForceSendFields []string `json:"-"`
32913
32914	// NullFields is a list of field names (e.g. "Code") to include in API
32915	// requests with the JSON null value. By default, fields with empty
32916	// values are omitted from API requests. However, any field with an
32917	// empty value appearing in NullFields will be sent to the server as
32918	// null. It is an error if a field in this list has a non-empty value.
32919	// This may be used to include null fields in Patch requests.
32920	NullFields []string `json:"-"`
32921}
32922
32923func (s *ReservationListWarning) MarshalJSON() ([]byte, error) {
32924	type NoMethod ReservationListWarning
32925	raw := NoMethod(*s)
32926	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32927}
32928
32929type ReservationListWarningData struct {
32930	// Key: [Output Only] A key that provides more detail on the warning
32931	// being returned. For example, for warnings where there are no results
32932	// in a list request for a particular zone, this key might be scope and
32933	// the key value might be the zone name. Other examples might be a key
32934	// indicating a deprecated resource and a suggested replacement, or a
32935	// warning about invalid network settings (for example, if an instance
32936	// attempts to perform IP forwarding but is not enabled for IP
32937	// forwarding).
32938	Key string `json:"key,omitempty"`
32939
32940	// Value: [Output Only] A warning data value corresponding to the key.
32941	Value string `json:"value,omitempty"`
32942
32943	// ForceSendFields is a list of field names (e.g. "Key") to
32944	// unconditionally include in API requests. By default, fields with
32945	// empty values are omitted from API requests. However, any non-pointer,
32946	// non-interface field appearing in ForceSendFields will be sent to the
32947	// server regardless of whether the field is empty or not. This may be
32948	// used to include empty fields in Patch requests.
32949	ForceSendFields []string `json:"-"`
32950
32951	// NullFields is a list of field names (e.g. "Key") to include in API
32952	// requests with the JSON null value. By default, fields with empty
32953	// values are omitted from API requests. However, any field with an
32954	// empty value appearing in NullFields will be sent to the server as
32955	// null. It is an error if a field in this list has a non-empty value.
32956	// This may be used to include null fields in Patch requests.
32957	NullFields []string `json:"-"`
32958}
32959
32960func (s *ReservationListWarningData) MarshalJSON() ([]byte, error) {
32961	type NoMethod ReservationListWarningData
32962	raw := NoMethod(*s)
32963	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32964}
32965
32966type ReservationsResizeRequest struct {
32967	// SpecificSkuCount: Number of allocated resources can be resized with
32968	// minimum = 1 and maximum = 1000.
32969	SpecificSkuCount int64 `json:"specificSkuCount,omitempty,string"`
32970
32971	// ForceSendFields is a list of field names (e.g. "SpecificSkuCount") to
32972	// unconditionally include in API requests. By default, fields with
32973	// empty values are omitted from API requests. However, any non-pointer,
32974	// non-interface field appearing in ForceSendFields will be sent to the
32975	// server regardless of whether the field is empty or not. This may be
32976	// used to include empty fields in Patch requests.
32977	ForceSendFields []string `json:"-"`
32978
32979	// NullFields is a list of field names (e.g. "SpecificSkuCount") to
32980	// include in API requests with the JSON null value. By default, fields
32981	// with empty values are omitted from API requests. However, any field
32982	// with an empty value appearing in NullFields will be sent to the
32983	// server as null. It is an error if a field in this list has a
32984	// non-empty value. This may be used to include null fields in Patch
32985	// requests.
32986	NullFields []string `json:"-"`
32987}
32988
32989func (s *ReservationsResizeRequest) MarshalJSON() ([]byte, error) {
32990	type NoMethod ReservationsResizeRequest
32991	raw := NoMethod(*s)
32992	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32993}
32994
32995type ReservationsScopedList struct {
32996	// Reservations: A list of reservations contained in this scope.
32997	Reservations []*Reservation `json:"reservations,omitempty"`
32998
32999	// Warning: Informational warning which replaces the list of
33000	// reservations when the list is empty.
33001	Warning *ReservationsScopedListWarning `json:"warning,omitempty"`
33002
33003	// ForceSendFields is a list of field names (e.g. "Reservations") to
33004	// unconditionally include in API requests. By default, fields with
33005	// empty values are omitted from API requests. However, any non-pointer,
33006	// non-interface field appearing in ForceSendFields will be sent to the
33007	// server regardless of whether the field is empty or not. This may be
33008	// used to include empty fields in Patch requests.
33009	ForceSendFields []string `json:"-"`
33010
33011	// NullFields is a list of field names (e.g. "Reservations") to include
33012	// in API requests with the JSON null value. By default, fields with
33013	// empty values are omitted from API requests. However, any field with
33014	// an empty value appearing in NullFields will be sent to the server as
33015	// null. It is an error if a field in this list has a non-empty value.
33016	// This may be used to include null fields in Patch requests.
33017	NullFields []string `json:"-"`
33018}
33019
33020func (s *ReservationsScopedList) MarshalJSON() ([]byte, error) {
33021	type NoMethod ReservationsScopedList
33022	raw := NoMethod(*s)
33023	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33024}
33025
33026// ReservationsScopedListWarning: Informational warning which replaces
33027// the list of reservations when the list is empty.
33028type ReservationsScopedListWarning struct {
33029	// Code: [Output Only] A warning code, if applicable. For example,
33030	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
33031	// the response.
33032	//
33033	// Possible values:
33034	//   "CLEANUP_FAILED"
33035	//   "DEPRECATED_RESOURCE_USED"
33036	//   "DEPRECATED_TYPE_USED"
33037	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
33038	//   "EXPERIMENTAL_TYPE_USED"
33039	//   "EXTERNAL_API_WARNING"
33040	//   "FIELD_VALUE_OVERRIDEN"
33041	//   "INJECTED_KERNELS_DEPRECATED"
33042	//   "LARGE_DEPLOYMENT_WARNING"
33043	//   "MISSING_TYPE_DEPENDENCY"
33044	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
33045	//   "NEXT_HOP_CANNOT_IP_FORWARD"
33046	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
33047	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
33048	//   "NEXT_HOP_NOT_RUNNING"
33049	//   "NOT_CRITICAL_ERROR"
33050	//   "NO_RESULTS_ON_PAGE"
33051	//   "PARTIAL_SUCCESS"
33052	//   "REQUIRED_TOS_AGREEMENT"
33053	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
33054	//   "RESOURCE_NOT_DELETED"
33055	//   "SCHEMA_VALIDATION_IGNORED"
33056	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
33057	//   "UNDECLARED_PROPERTIES"
33058	//   "UNREACHABLE"
33059	Code string `json:"code,omitempty"`
33060
33061	// Data: [Output Only] Metadata about this warning in key: value format.
33062	// For example:
33063	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
33064	Data []*ReservationsScopedListWarningData `json:"data,omitempty"`
33065
33066	// Message: [Output Only] A human-readable description of the warning
33067	// code.
33068	Message string `json:"message,omitempty"`
33069
33070	// ForceSendFields is a list of field names (e.g. "Code") to
33071	// unconditionally include in API requests. By default, fields with
33072	// empty values are omitted from API requests. However, any non-pointer,
33073	// non-interface field appearing in ForceSendFields will be sent to the
33074	// server regardless of whether the field is empty or not. This may be
33075	// used to include empty fields in Patch requests.
33076	ForceSendFields []string `json:"-"`
33077
33078	// NullFields is a list of field names (e.g. "Code") to include in API
33079	// requests with the JSON null value. By default, fields with empty
33080	// values are omitted from API requests. However, any field with an
33081	// empty value appearing in NullFields will be sent to the server as
33082	// null. It is an error if a field in this list has a non-empty value.
33083	// This may be used to include null fields in Patch requests.
33084	NullFields []string `json:"-"`
33085}
33086
33087func (s *ReservationsScopedListWarning) MarshalJSON() ([]byte, error) {
33088	type NoMethod ReservationsScopedListWarning
33089	raw := NoMethod(*s)
33090	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33091}
33092
33093type ReservationsScopedListWarningData struct {
33094	// Key: [Output Only] A key that provides more detail on the warning
33095	// being returned. For example, for warnings where there are no results
33096	// in a list request for a particular zone, this key might be scope and
33097	// the key value might be the zone name. Other examples might be a key
33098	// indicating a deprecated resource and a suggested replacement, or a
33099	// warning about invalid network settings (for example, if an instance
33100	// attempts to perform IP forwarding but is not enabled for IP
33101	// forwarding).
33102	Key string `json:"key,omitempty"`
33103
33104	// Value: [Output Only] A warning data value corresponding to the key.
33105	Value string `json:"value,omitempty"`
33106
33107	// ForceSendFields is a list of field names (e.g. "Key") to
33108	// unconditionally include in API requests. By default, fields with
33109	// empty values are omitted from API requests. However, any non-pointer,
33110	// non-interface field appearing in ForceSendFields will be sent to the
33111	// server regardless of whether the field is empty or not. This may be
33112	// used to include empty fields in Patch requests.
33113	ForceSendFields []string `json:"-"`
33114
33115	// NullFields is a list of field names (e.g. "Key") to include in API
33116	// requests with the JSON null value. By default, fields with empty
33117	// values are omitted from API requests. However, any field with an
33118	// empty value appearing in NullFields will be sent to the server as
33119	// null. It is an error if a field in this list has a non-empty value.
33120	// This may be used to include null fields in Patch requests.
33121	NullFields []string `json:"-"`
33122}
33123
33124func (s *ReservationsScopedListWarningData) MarshalJSON() ([]byte, error) {
33125	type NoMethod ReservationsScopedListWarningData
33126	raw := NoMethod(*s)
33127	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33128}
33129
33130// ResourceCommitment: Commitment for a particular resource (a
33131// Commitment is composed of one or more of these).
33132type ResourceCommitment struct {
33133	// AcceleratorType: Name of the accelerator type resource. Applicable
33134	// only when the type is ACCELERATOR.
33135	AcceleratorType string `json:"acceleratorType,omitempty"`
33136
33137	// Amount: The amount of the resource purchased (in a type-dependent
33138	// unit, such as bytes). For vCPUs, this can just be an integer. For
33139	// memory, this must be provided in MB. Memory must be a multiple of 256
33140	// MB, with up to 6.5GB of memory per every vCPU.
33141	Amount int64 `json:"amount,omitempty,string"`
33142
33143	// Type: Type of resource for which this commitment applies. Possible
33144	// values are VCPU and MEMORY
33145	//
33146	// Possible values:
33147	//   "ACCELERATOR"
33148	//   "LOCAL_SSD"
33149	//   "MEMORY"
33150	//   "UNSPECIFIED"
33151	//   "VCPU"
33152	Type string `json:"type,omitempty"`
33153
33154	// ForceSendFields is a list of field names (e.g. "AcceleratorType") to
33155	// unconditionally include in API requests. By default, fields with
33156	// empty values are omitted from API requests. However, any non-pointer,
33157	// non-interface field appearing in ForceSendFields will be sent to the
33158	// server regardless of whether the field is empty or not. This may be
33159	// used to include empty fields in Patch requests.
33160	ForceSendFields []string `json:"-"`
33161
33162	// NullFields is a list of field names (e.g. "AcceleratorType") to
33163	// include in API requests with the JSON null value. By default, fields
33164	// with empty values are omitted from API requests. However, any field
33165	// with an empty value appearing in NullFields will be sent to the
33166	// server as null. It is an error if a field in this list has a
33167	// non-empty value. This may be used to include null fields in Patch
33168	// requests.
33169	NullFields []string `json:"-"`
33170}
33171
33172func (s *ResourceCommitment) MarshalJSON() ([]byte, error) {
33173	type NoMethod ResourceCommitment
33174	raw := NoMethod(*s)
33175	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33176}
33177
33178type ResourceGroupReference struct {
33179	// Group: A URI referencing one of the instance groups or network
33180	// endpoint groups listed in the backend service.
33181	Group string `json:"group,omitempty"`
33182
33183	// ForceSendFields is a list of field names (e.g. "Group") to
33184	// unconditionally include in API requests. By default, fields with
33185	// empty values are omitted from API requests. However, any non-pointer,
33186	// non-interface field appearing in ForceSendFields will be sent to the
33187	// server regardless of whether the field is empty or not. This may be
33188	// used to include empty fields in Patch requests.
33189	ForceSendFields []string `json:"-"`
33190
33191	// NullFields is a list of field names (e.g. "Group") to include in API
33192	// requests with the JSON null value. By default, fields with empty
33193	// values are omitted from API requests. However, any field with an
33194	// empty value appearing in NullFields will be sent to the server as
33195	// null. It is an error if a field in this list has a non-empty value.
33196	// This may be used to include null fields in Patch requests.
33197	NullFields []string `json:"-"`
33198}
33199
33200func (s *ResourceGroupReference) MarshalJSON() ([]byte, error) {
33201	type NoMethod ResourceGroupReference
33202	raw := NoMethod(*s)
33203	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33204}
33205
33206type ResourcePoliciesScopedList struct {
33207	// ResourcePolicies: A list of resourcePolicies contained in this scope.
33208	ResourcePolicies []*ResourcePolicy `json:"resourcePolicies,omitempty"`
33209
33210	// Warning: Informational warning which replaces the list of
33211	// resourcePolicies when the list is empty.
33212	Warning *ResourcePoliciesScopedListWarning `json:"warning,omitempty"`
33213
33214	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
33215	// unconditionally include in API requests. By default, fields with
33216	// empty values are omitted from API requests. However, any non-pointer,
33217	// non-interface field appearing in ForceSendFields will be sent to the
33218	// server regardless of whether the field is empty or not. This may be
33219	// used to include empty fields in Patch requests.
33220	ForceSendFields []string `json:"-"`
33221
33222	// NullFields is a list of field names (e.g. "ResourcePolicies") to
33223	// include in API requests with the JSON null value. By default, fields
33224	// with empty values are omitted from API requests. However, any field
33225	// with an empty value appearing in NullFields will be sent to the
33226	// server as null. It is an error if a field in this list has a
33227	// non-empty value. This may be used to include null fields in Patch
33228	// requests.
33229	NullFields []string `json:"-"`
33230}
33231
33232func (s *ResourcePoliciesScopedList) MarshalJSON() ([]byte, error) {
33233	type NoMethod ResourcePoliciesScopedList
33234	raw := NoMethod(*s)
33235	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33236}
33237
33238// ResourcePoliciesScopedListWarning: Informational warning which
33239// replaces the list of resourcePolicies when the list is empty.
33240type ResourcePoliciesScopedListWarning struct {
33241	// Code: [Output Only] A warning code, if applicable. For example,
33242	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
33243	// the response.
33244	//
33245	// Possible values:
33246	//   "CLEANUP_FAILED"
33247	//   "DEPRECATED_RESOURCE_USED"
33248	//   "DEPRECATED_TYPE_USED"
33249	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
33250	//   "EXPERIMENTAL_TYPE_USED"
33251	//   "EXTERNAL_API_WARNING"
33252	//   "FIELD_VALUE_OVERRIDEN"
33253	//   "INJECTED_KERNELS_DEPRECATED"
33254	//   "LARGE_DEPLOYMENT_WARNING"
33255	//   "MISSING_TYPE_DEPENDENCY"
33256	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
33257	//   "NEXT_HOP_CANNOT_IP_FORWARD"
33258	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
33259	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
33260	//   "NEXT_HOP_NOT_RUNNING"
33261	//   "NOT_CRITICAL_ERROR"
33262	//   "NO_RESULTS_ON_PAGE"
33263	//   "PARTIAL_SUCCESS"
33264	//   "REQUIRED_TOS_AGREEMENT"
33265	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
33266	//   "RESOURCE_NOT_DELETED"
33267	//   "SCHEMA_VALIDATION_IGNORED"
33268	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
33269	//   "UNDECLARED_PROPERTIES"
33270	//   "UNREACHABLE"
33271	Code string `json:"code,omitempty"`
33272
33273	// Data: [Output Only] Metadata about this warning in key: value format.
33274	// For example:
33275	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
33276	Data []*ResourcePoliciesScopedListWarningData `json:"data,omitempty"`
33277
33278	// Message: [Output Only] A human-readable description of the warning
33279	// code.
33280	Message string `json:"message,omitempty"`
33281
33282	// ForceSendFields is a list of field names (e.g. "Code") to
33283	// unconditionally include in API requests. By default, fields with
33284	// empty values are omitted from API requests. However, any non-pointer,
33285	// non-interface field appearing in ForceSendFields will be sent to the
33286	// server regardless of whether the field is empty or not. This may be
33287	// used to include empty fields in Patch requests.
33288	ForceSendFields []string `json:"-"`
33289
33290	// NullFields is a list of field names (e.g. "Code") to include in API
33291	// requests with the JSON null value. By default, fields with empty
33292	// values are omitted from API requests. However, any field with an
33293	// empty value appearing in NullFields will be sent to the server as
33294	// null. It is an error if a field in this list has a non-empty value.
33295	// This may be used to include null fields in Patch requests.
33296	NullFields []string `json:"-"`
33297}
33298
33299func (s *ResourcePoliciesScopedListWarning) MarshalJSON() ([]byte, error) {
33300	type NoMethod ResourcePoliciesScopedListWarning
33301	raw := NoMethod(*s)
33302	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33303}
33304
33305type ResourcePoliciesScopedListWarningData struct {
33306	// Key: [Output Only] A key that provides more detail on the warning
33307	// being returned. For example, for warnings where there are no results
33308	// in a list request for a particular zone, this key might be scope and
33309	// the key value might be the zone name. Other examples might be a key
33310	// indicating a deprecated resource and a suggested replacement, or a
33311	// warning about invalid network settings (for example, if an instance
33312	// attempts to perform IP forwarding but is not enabled for IP
33313	// forwarding).
33314	Key string `json:"key,omitempty"`
33315
33316	// Value: [Output Only] A warning data value corresponding to the key.
33317	Value string `json:"value,omitempty"`
33318
33319	// ForceSendFields is a list of field names (e.g. "Key") to
33320	// unconditionally include in API requests. By default, fields with
33321	// empty values are omitted from API requests. However, any non-pointer,
33322	// non-interface field appearing in ForceSendFields will be sent to the
33323	// server regardless of whether the field is empty or not. This may be
33324	// used to include empty fields in Patch requests.
33325	ForceSendFields []string `json:"-"`
33326
33327	// NullFields is a list of field names (e.g. "Key") to include in API
33328	// requests with the JSON null value. By default, fields with empty
33329	// values are omitted from API requests. However, any field with an
33330	// empty value appearing in NullFields will be sent to the server as
33331	// null. It is an error if a field in this list has a non-empty value.
33332	// This may be used to include null fields in Patch requests.
33333	NullFields []string `json:"-"`
33334}
33335
33336func (s *ResourcePoliciesScopedListWarningData) MarshalJSON() ([]byte, error) {
33337	type NoMethod ResourcePoliciesScopedListWarningData
33338	raw := NoMethod(*s)
33339	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33340}
33341
33342// ResourcePolicy: Represents a Resource Policy resource. You can use
33343// resource policies to schedule actions for some Compute Engine
33344// resources. For example, you can use them to schedule persistent disk
33345// snapshots.
33346//
33347// (== resource_for {$api_version}.resourcePolicies ==)
33348type ResourcePolicy struct {
33349	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
33350	// format.
33351	CreationTimestamp string `json:"creationTimestamp,omitempty"`
33352
33353	Description string `json:"description,omitempty"`
33354
33355	// GroupPlacementPolicy: Resource policy for instances for placement
33356	// configuration.
33357	GroupPlacementPolicy *ResourcePolicyGroupPlacementPolicy `json:"groupPlacementPolicy,omitempty"`
33358
33359	// Id: [Output Only] The unique identifier for the resource. This
33360	// identifier is defined by the server.
33361	Id uint64 `json:"id,omitempty,string"`
33362
33363	// InstanceSchedulePolicy: Resource policy for scheduling instance
33364	// operations.
33365	InstanceSchedulePolicy *ResourcePolicyInstanceSchedulePolicy `json:"instanceSchedulePolicy,omitempty"`
33366
33367	// Kind: [Output Only] Type of the resource. Always
33368	// compute#resource_policies for resource policies.
33369	Kind string `json:"kind,omitempty"`
33370
33371	// Name: The name of the resource, provided by the client when initially
33372	// creating the resource. The resource name must be 1-63 characters
33373	// long, and comply with RFC1035. Specifically, the name must be 1-63
33374	// characters long and match the regular expression
33375	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
33376	// a lowercase letter, and all following characters must be a dash,
33377	// lowercase letter, or digit, except the last character, which cannot
33378	// be a dash.
33379	Name string `json:"name,omitempty"`
33380
33381	Region string `json:"region,omitempty"`
33382
33383	// ResourceStatus: [Output Only] The system status of the resource
33384	// policy.
33385	ResourceStatus *ResourcePolicyResourceStatus `json:"resourceStatus,omitempty"`
33386
33387	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
33388	// resource.
33389	SelfLink string `json:"selfLink,omitempty"`
33390
33391	// SnapshotSchedulePolicy: Resource policy for persistent disks for
33392	// creating snapshots.
33393	SnapshotSchedulePolicy *ResourcePolicySnapshotSchedulePolicy `json:"snapshotSchedulePolicy,omitempty"`
33394
33395	// Status: [Output Only] The status of resource policy creation.
33396	//
33397	// Possible values:
33398	//   "CREATING"
33399	//   "DELETING"
33400	//   "EXPIRED"
33401	//   "INVALID"
33402	//   "READY"
33403	Status string `json:"status,omitempty"`
33404
33405	// ServerResponse contains the HTTP response code and headers from the
33406	// server.
33407	googleapi.ServerResponse `json:"-"`
33408
33409	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
33410	// to unconditionally include in API requests. By default, fields with
33411	// empty values are omitted from API requests. However, any non-pointer,
33412	// non-interface field appearing in ForceSendFields will be sent to the
33413	// server regardless of whether the field is empty or not. This may be
33414	// used to include empty fields in Patch requests.
33415	ForceSendFields []string `json:"-"`
33416
33417	// NullFields is a list of field names (e.g. "CreationTimestamp") to
33418	// include in API requests with the JSON null value. By default, fields
33419	// with empty values are omitted from API requests. However, any field
33420	// with an empty value appearing in NullFields will be sent to the
33421	// server as null. It is an error if a field in this list has a
33422	// non-empty value. This may be used to include null fields in Patch
33423	// requests.
33424	NullFields []string `json:"-"`
33425}
33426
33427func (s *ResourcePolicy) MarshalJSON() ([]byte, error) {
33428	type NoMethod ResourcePolicy
33429	raw := NoMethod(*s)
33430	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33431}
33432
33433// ResourcePolicyAggregatedList: Contains a list of resourcePolicies.
33434type ResourcePolicyAggregatedList struct {
33435	Etag string `json:"etag,omitempty"`
33436
33437	// Id: [Output Only] Unique identifier for the resource; defined by the
33438	// server.
33439	Id string `json:"id,omitempty"`
33440
33441	// Items: A list of ResourcePolicy resources.
33442	Items map[string]ResourcePoliciesScopedList `json:"items,omitempty"`
33443
33444	// Kind: Type of resource.
33445	Kind string `json:"kind,omitempty"`
33446
33447	// NextPageToken: [Output Only] This token allows you to get the next
33448	// page of results for list requests. If the number of results is larger
33449	// than maxResults, use the nextPageToken as a value for the query
33450	// parameter pageToken in the next list request. Subsequent list
33451	// requests will have their own nextPageToken to continue paging through
33452	// the results.
33453	NextPageToken string `json:"nextPageToken,omitempty"`
33454
33455	// SelfLink: [Output Only] Server-defined URL for this resource.
33456	SelfLink string `json:"selfLink,omitempty"`
33457
33458	// Unreachables: [Output Only] Unreachable resources.
33459	Unreachables []string `json:"unreachables,omitempty"`
33460
33461	// Warning: [Output Only] Informational warning message.
33462	Warning *ResourcePolicyAggregatedListWarning `json:"warning,omitempty"`
33463
33464	// ServerResponse contains the HTTP response code and headers from the
33465	// server.
33466	googleapi.ServerResponse `json:"-"`
33467
33468	// ForceSendFields is a list of field names (e.g. "Etag") to
33469	// unconditionally include in API requests. By default, fields with
33470	// empty values are omitted from API requests. However, any non-pointer,
33471	// non-interface field appearing in ForceSendFields will be sent to the
33472	// server regardless of whether the field is empty or not. This may be
33473	// used to include empty fields in Patch requests.
33474	ForceSendFields []string `json:"-"`
33475
33476	// NullFields is a list of field names (e.g. "Etag") to include in API
33477	// requests with the JSON null value. By default, fields with empty
33478	// values are omitted from API requests. However, any field with an
33479	// empty value appearing in NullFields will be sent to the server as
33480	// null. It is an error if a field in this list has a non-empty value.
33481	// This may be used to include null fields in Patch requests.
33482	NullFields []string `json:"-"`
33483}
33484
33485func (s *ResourcePolicyAggregatedList) MarshalJSON() ([]byte, error) {
33486	type NoMethod ResourcePolicyAggregatedList
33487	raw := NoMethod(*s)
33488	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33489}
33490
33491// ResourcePolicyAggregatedListWarning: [Output Only] Informational
33492// warning message.
33493type ResourcePolicyAggregatedListWarning struct {
33494	// Code: [Output Only] A warning code, if applicable. For example,
33495	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
33496	// the response.
33497	//
33498	// Possible values:
33499	//   "CLEANUP_FAILED"
33500	//   "DEPRECATED_RESOURCE_USED"
33501	//   "DEPRECATED_TYPE_USED"
33502	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
33503	//   "EXPERIMENTAL_TYPE_USED"
33504	//   "EXTERNAL_API_WARNING"
33505	//   "FIELD_VALUE_OVERRIDEN"
33506	//   "INJECTED_KERNELS_DEPRECATED"
33507	//   "LARGE_DEPLOYMENT_WARNING"
33508	//   "MISSING_TYPE_DEPENDENCY"
33509	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
33510	//   "NEXT_HOP_CANNOT_IP_FORWARD"
33511	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
33512	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
33513	//   "NEXT_HOP_NOT_RUNNING"
33514	//   "NOT_CRITICAL_ERROR"
33515	//   "NO_RESULTS_ON_PAGE"
33516	//   "PARTIAL_SUCCESS"
33517	//   "REQUIRED_TOS_AGREEMENT"
33518	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
33519	//   "RESOURCE_NOT_DELETED"
33520	//   "SCHEMA_VALIDATION_IGNORED"
33521	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
33522	//   "UNDECLARED_PROPERTIES"
33523	//   "UNREACHABLE"
33524	Code string `json:"code,omitempty"`
33525
33526	// Data: [Output Only] Metadata about this warning in key: value format.
33527	// For example:
33528	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
33529	Data []*ResourcePolicyAggregatedListWarningData `json:"data,omitempty"`
33530
33531	// Message: [Output Only] A human-readable description of the warning
33532	// code.
33533	Message string `json:"message,omitempty"`
33534
33535	// ForceSendFields is a list of field names (e.g. "Code") to
33536	// unconditionally include in API requests. By default, fields with
33537	// empty values are omitted from API requests. However, any non-pointer,
33538	// non-interface field appearing in ForceSendFields will be sent to the
33539	// server regardless of whether the field is empty or not. This may be
33540	// used to include empty fields in Patch requests.
33541	ForceSendFields []string `json:"-"`
33542
33543	// NullFields is a list of field names (e.g. "Code") to include in API
33544	// requests with the JSON null value. By default, fields with empty
33545	// values are omitted from API requests. However, any field with an
33546	// empty value appearing in NullFields will be sent to the server as
33547	// null. It is an error if a field in this list has a non-empty value.
33548	// This may be used to include null fields in Patch requests.
33549	NullFields []string `json:"-"`
33550}
33551
33552func (s *ResourcePolicyAggregatedListWarning) MarshalJSON() ([]byte, error) {
33553	type NoMethod ResourcePolicyAggregatedListWarning
33554	raw := NoMethod(*s)
33555	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33556}
33557
33558type ResourcePolicyAggregatedListWarningData struct {
33559	// Key: [Output Only] A key that provides more detail on the warning
33560	// being returned. For example, for warnings where there are no results
33561	// in a list request for a particular zone, this key might be scope and
33562	// the key value might be the zone name. Other examples might be a key
33563	// indicating a deprecated resource and a suggested replacement, or a
33564	// warning about invalid network settings (for example, if an instance
33565	// attempts to perform IP forwarding but is not enabled for IP
33566	// forwarding).
33567	Key string `json:"key,omitempty"`
33568
33569	// Value: [Output Only] A warning data value corresponding to the key.
33570	Value string `json:"value,omitempty"`
33571
33572	// ForceSendFields is a list of field names (e.g. "Key") to
33573	// unconditionally include in API requests. By default, fields with
33574	// empty values are omitted from API requests. However, any non-pointer,
33575	// non-interface field appearing in ForceSendFields will be sent to the
33576	// server regardless of whether the field is empty or not. This may be
33577	// used to include empty fields in Patch requests.
33578	ForceSendFields []string `json:"-"`
33579
33580	// NullFields is a list of field names (e.g. "Key") to include in API
33581	// requests with the JSON null value. By default, fields with empty
33582	// values are omitted from API requests. However, any field with an
33583	// empty value appearing in NullFields will be sent to the server as
33584	// null. It is an error if a field in this list has a non-empty value.
33585	// This may be used to include null fields in Patch requests.
33586	NullFields []string `json:"-"`
33587}
33588
33589func (s *ResourcePolicyAggregatedListWarningData) MarshalJSON() ([]byte, error) {
33590	type NoMethod ResourcePolicyAggregatedListWarningData
33591	raw := NoMethod(*s)
33592	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33593}
33594
33595// ResourcePolicyDailyCycle: Time window specified for daily operations.
33596type ResourcePolicyDailyCycle struct {
33597	// DaysInCycle: Defines a schedule with units measured in months. The
33598	// value determines how many months pass between the start of each
33599	// cycle.
33600	DaysInCycle int64 `json:"daysInCycle,omitempty"`
33601
33602	// Duration: [Output only] A predetermined duration for the window,
33603	// automatically chosen to be the smallest possible in the given
33604	// scenario.
33605	Duration string `json:"duration,omitempty"`
33606
33607	// StartTime: Start time of the window. This must be in UTC format that
33608	// resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For
33609	// example, both 13:00-5 and 08:00 are valid.
33610	StartTime string `json:"startTime,omitempty"`
33611
33612	// ForceSendFields is a list of field names (e.g. "DaysInCycle") to
33613	// unconditionally include in API requests. By default, fields with
33614	// empty values are omitted from API requests. However, any non-pointer,
33615	// non-interface field appearing in ForceSendFields will be sent to the
33616	// server regardless of whether the field is empty or not. This may be
33617	// used to include empty fields in Patch requests.
33618	ForceSendFields []string `json:"-"`
33619
33620	// NullFields is a list of field names (e.g. "DaysInCycle") to include
33621	// in API requests with the JSON null value. By default, fields with
33622	// empty values are omitted from API requests. However, any field with
33623	// an empty value appearing in NullFields will be sent to the server as
33624	// null. It is an error if a field in this list has a non-empty value.
33625	// This may be used to include null fields in Patch requests.
33626	NullFields []string `json:"-"`
33627}
33628
33629func (s *ResourcePolicyDailyCycle) MarshalJSON() ([]byte, error) {
33630	type NoMethod ResourcePolicyDailyCycle
33631	raw := NoMethod(*s)
33632	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33633}
33634
33635// ResourcePolicyGroupPlacementPolicy: A GroupPlacementPolicy specifies
33636// resource placement configuration. It specifies the failure bucket
33637// separation as well as network locality
33638type ResourcePolicyGroupPlacementPolicy struct {
33639	// AvailabilityDomainCount: The number of availability domains instances
33640	// will be spread across. If two instances are in different availability
33641	// domain, they will not be put in the same low latency network
33642	AvailabilityDomainCount int64 `json:"availabilityDomainCount,omitempty"`
33643
33644	// Collocation: Specifies network collocation
33645	//
33646	// Possible values:
33647	//   "COLLOCATED"
33648	//   "UNSPECIFIED_COLLOCATION"
33649	Collocation string `json:"collocation,omitempty"`
33650
33651	// VmCount: Number of vms in this placement group
33652	VmCount int64 `json:"vmCount,omitempty"`
33653
33654	// ForceSendFields is a list of field names (e.g.
33655	// "AvailabilityDomainCount") to unconditionally include in API
33656	// requests. By default, fields with empty values are omitted from API
33657	// requests. However, any non-pointer, non-interface field appearing in
33658	// ForceSendFields will be sent to the server regardless of whether the
33659	// field is empty or not. This may be used to include empty fields in
33660	// Patch requests.
33661	ForceSendFields []string `json:"-"`
33662
33663	// NullFields is a list of field names (e.g. "AvailabilityDomainCount")
33664	// to include in API requests with the JSON null value. By default,
33665	// fields with empty values are omitted from API requests. However, any
33666	// field with an empty value appearing in NullFields will be sent to the
33667	// server as null. It is an error if a field in this list has a
33668	// non-empty value. This may be used to include null fields in Patch
33669	// requests.
33670	NullFields []string `json:"-"`
33671}
33672
33673func (s *ResourcePolicyGroupPlacementPolicy) MarshalJSON() ([]byte, error) {
33674	type NoMethod ResourcePolicyGroupPlacementPolicy
33675	raw := NoMethod(*s)
33676	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33677}
33678
33679// ResourcePolicyHourlyCycle: Time window specified for hourly
33680// operations.
33681type ResourcePolicyHourlyCycle struct {
33682	// Duration: [Output only] Duration of the time window, automatically
33683	// chosen to be smallest possible in the given scenario.
33684	Duration string `json:"duration,omitempty"`
33685
33686	// HoursInCycle: Defines a schedule with units measured in hours. The
33687	// value determines how many hours pass between the start of each cycle.
33688	HoursInCycle int64 `json:"hoursInCycle,omitempty"`
33689
33690	// StartTime: Time within the window to start the operations. It must be
33691	// in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT.
33692	StartTime string `json:"startTime,omitempty"`
33693
33694	// ForceSendFields is a list of field names (e.g. "Duration") to
33695	// unconditionally include in API requests. By default, fields with
33696	// empty values are omitted from API requests. However, any non-pointer,
33697	// non-interface field appearing in ForceSendFields will be sent to the
33698	// server regardless of whether the field is empty or not. This may be
33699	// used to include empty fields in Patch requests.
33700	ForceSendFields []string `json:"-"`
33701
33702	// NullFields is a list of field names (e.g. "Duration") to include in
33703	// API requests with the JSON null value. By default, fields with empty
33704	// values are omitted from API requests. However, any field with an
33705	// empty value appearing in NullFields will be sent to the server as
33706	// null. It is an error if a field in this list has a non-empty value.
33707	// This may be used to include null fields in Patch requests.
33708	NullFields []string `json:"-"`
33709}
33710
33711func (s *ResourcePolicyHourlyCycle) MarshalJSON() ([]byte, error) {
33712	type NoMethod ResourcePolicyHourlyCycle
33713	raw := NoMethod(*s)
33714	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33715}
33716
33717// ResourcePolicyInstanceSchedulePolicy: An InstanceSchedulePolicy
33718// specifies when and how frequent certain operations are performed on
33719// the instance.
33720type ResourcePolicyInstanceSchedulePolicy struct {
33721	// ExpirationTime: The expiration time of the schedule. The timestamp is
33722	// an RFC3339 string.
33723	ExpirationTime string `json:"expirationTime,omitempty"`
33724
33725	// StartTime: The start time of the schedule. The timestamp is an
33726	// RFC3339 string.
33727	StartTime string `json:"startTime,omitempty"`
33728
33729	// TimeZone: Specifies the time zone to be used in interpreting
33730	// Schedule.schedule. The value of this field must be a time zone name
33731	// from the tz database: http://en.wikipedia.org/wiki/Tz_database.
33732	TimeZone string `json:"timeZone,omitempty"`
33733
33734	// VmStartSchedule: Specifies the schedule for starting instances.
33735	VmStartSchedule *ResourcePolicyInstanceSchedulePolicySchedule `json:"vmStartSchedule,omitempty"`
33736
33737	// VmStopSchedule: Specifies the schedule for stopping instances.
33738	VmStopSchedule *ResourcePolicyInstanceSchedulePolicySchedule `json:"vmStopSchedule,omitempty"`
33739
33740	// ForceSendFields is a list of field names (e.g. "ExpirationTime") to
33741	// unconditionally include in API requests. By default, fields with
33742	// empty values are omitted from API requests. However, any non-pointer,
33743	// non-interface field appearing in ForceSendFields will be sent to the
33744	// server regardless of whether the field is empty or not. This may be
33745	// used to include empty fields in Patch requests.
33746	ForceSendFields []string `json:"-"`
33747
33748	// NullFields is a list of field names (e.g. "ExpirationTime") to
33749	// include in API requests with the JSON null value. By default, fields
33750	// with empty values are omitted from API requests. However, any field
33751	// with an empty value appearing in NullFields will be sent to the
33752	// server as null. It is an error if a field in this list has a
33753	// non-empty value. This may be used to include null fields in Patch
33754	// requests.
33755	NullFields []string `json:"-"`
33756}
33757
33758func (s *ResourcePolicyInstanceSchedulePolicy) MarshalJSON() ([]byte, error) {
33759	type NoMethod ResourcePolicyInstanceSchedulePolicy
33760	raw := NoMethod(*s)
33761	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33762}
33763
33764// ResourcePolicyInstanceSchedulePolicySchedule: Schedule for an
33765// instance operation.
33766type ResourcePolicyInstanceSchedulePolicySchedule struct {
33767	// Schedule: Specifies the frequency for the operation, using the
33768	// unix-cron format.
33769	Schedule string `json:"schedule,omitempty"`
33770
33771	// ForceSendFields is a list of field names (e.g. "Schedule") to
33772	// unconditionally include in API requests. By default, fields with
33773	// empty values are omitted from API requests. However, any non-pointer,
33774	// non-interface field appearing in ForceSendFields will be sent to the
33775	// server regardless of whether the field is empty or not. This may be
33776	// used to include empty fields in Patch requests.
33777	ForceSendFields []string `json:"-"`
33778
33779	// NullFields is a list of field names (e.g. "Schedule") to include in
33780	// API requests with the JSON null value. By default, fields with empty
33781	// values are omitted from API requests. However, any field with an
33782	// empty value appearing in NullFields will be sent to the server as
33783	// null. It is an error if a field in this list has a non-empty value.
33784	// This may be used to include null fields in Patch requests.
33785	NullFields []string `json:"-"`
33786}
33787
33788func (s *ResourcePolicyInstanceSchedulePolicySchedule) MarshalJSON() ([]byte, error) {
33789	type NoMethod ResourcePolicyInstanceSchedulePolicySchedule
33790	raw := NoMethod(*s)
33791	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33792}
33793
33794type ResourcePolicyList struct {
33795	Etag string `json:"etag,omitempty"`
33796
33797	// Id: [Output Only] The unique identifier for the resource. This
33798	// identifier is defined by the server.
33799	Id string `json:"id,omitempty"`
33800
33801	// Items: [Output Only] A list of ResourcePolicy resources.
33802	Items []*ResourcePolicy `json:"items,omitempty"`
33803
33804	// Kind: [Output Only] Type of resource.Always
33805	// compute#resourcePoliciesList for listsof resourcePolicies
33806	Kind string `json:"kind,omitempty"`
33807
33808	// NextPageToken: [Output Only] This token allows you to get the next
33809	// page of results for list requests. If the number of results is larger
33810	// than maxResults, use the nextPageToken as a value for the query
33811	// parameter pageToken in the next list request. Subsequent list
33812	// requests will have their own nextPageToken to continue paging through
33813	// the results.
33814	NextPageToken string `json:"nextPageToken,omitempty"`
33815
33816	// SelfLink: [Output Only] Server-defined URL for this resource.
33817	SelfLink string `json:"selfLink,omitempty"`
33818
33819	// Warning: [Output Only] Informational warning message.
33820	Warning *ResourcePolicyListWarning `json:"warning,omitempty"`
33821
33822	// ServerResponse contains the HTTP response code and headers from the
33823	// server.
33824	googleapi.ServerResponse `json:"-"`
33825
33826	// ForceSendFields is a list of field names (e.g. "Etag") to
33827	// unconditionally include in API requests. By default, fields with
33828	// empty values are omitted from API requests. However, any non-pointer,
33829	// non-interface field appearing in ForceSendFields will be sent to the
33830	// server regardless of whether the field is empty or not. This may be
33831	// used to include empty fields in Patch requests.
33832	ForceSendFields []string `json:"-"`
33833
33834	// NullFields is a list of field names (e.g. "Etag") to include in API
33835	// requests with the JSON null value. By default, fields with empty
33836	// values are omitted from API requests. However, any field with an
33837	// empty value appearing in NullFields will be sent to the server as
33838	// null. It is an error if a field in this list has a non-empty value.
33839	// This may be used to include null fields in Patch requests.
33840	NullFields []string `json:"-"`
33841}
33842
33843func (s *ResourcePolicyList) MarshalJSON() ([]byte, error) {
33844	type NoMethod ResourcePolicyList
33845	raw := NoMethod(*s)
33846	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33847}
33848
33849// ResourcePolicyListWarning: [Output Only] Informational warning
33850// message.
33851type ResourcePolicyListWarning struct {
33852	// Code: [Output Only] A warning code, if applicable. For example,
33853	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
33854	// the response.
33855	//
33856	// Possible values:
33857	//   "CLEANUP_FAILED"
33858	//   "DEPRECATED_RESOURCE_USED"
33859	//   "DEPRECATED_TYPE_USED"
33860	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
33861	//   "EXPERIMENTAL_TYPE_USED"
33862	//   "EXTERNAL_API_WARNING"
33863	//   "FIELD_VALUE_OVERRIDEN"
33864	//   "INJECTED_KERNELS_DEPRECATED"
33865	//   "LARGE_DEPLOYMENT_WARNING"
33866	//   "MISSING_TYPE_DEPENDENCY"
33867	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
33868	//   "NEXT_HOP_CANNOT_IP_FORWARD"
33869	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
33870	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
33871	//   "NEXT_HOP_NOT_RUNNING"
33872	//   "NOT_CRITICAL_ERROR"
33873	//   "NO_RESULTS_ON_PAGE"
33874	//   "PARTIAL_SUCCESS"
33875	//   "REQUIRED_TOS_AGREEMENT"
33876	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
33877	//   "RESOURCE_NOT_DELETED"
33878	//   "SCHEMA_VALIDATION_IGNORED"
33879	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
33880	//   "UNDECLARED_PROPERTIES"
33881	//   "UNREACHABLE"
33882	Code string `json:"code,omitempty"`
33883
33884	// Data: [Output Only] Metadata about this warning in key: value format.
33885	// For example:
33886	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
33887	Data []*ResourcePolicyListWarningData `json:"data,omitempty"`
33888
33889	// Message: [Output Only] A human-readable description of the warning
33890	// code.
33891	Message string `json:"message,omitempty"`
33892
33893	// ForceSendFields is a list of field names (e.g. "Code") to
33894	// unconditionally include in API requests. By default, fields with
33895	// empty values are omitted from API requests. However, any non-pointer,
33896	// non-interface field appearing in ForceSendFields will be sent to the
33897	// server regardless of whether the field is empty or not. This may be
33898	// used to include empty fields in Patch requests.
33899	ForceSendFields []string `json:"-"`
33900
33901	// NullFields is a list of field names (e.g. "Code") to include in API
33902	// requests with the JSON null value. By default, fields with empty
33903	// values are omitted from API requests. However, any field with an
33904	// empty value appearing in NullFields will be sent to the server as
33905	// null. It is an error if a field in this list has a non-empty value.
33906	// This may be used to include null fields in Patch requests.
33907	NullFields []string `json:"-"`
33908}
33909
33910func (s *ResourcePolicyListWarning) MarshalJSON() ([]byte, error) {
33911	type NoMethod ResourcePolicyListWarning
33912	raw := NoMethod(*s)
33913	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33914}
33915
33916type ResourcePolicyListWarningData struct {
33917	// Key: [Output Only] A key that provides more detail on the warning
33918	// being returned. For example, for warnings where there are no results
33919	// in a list request for a particular zone, this key might be scope and
33920	// the key value might be the zone name. Other examples might be a key
33921	// indicating a deprecated resource and a suggested replacement, or a
33922	// warning about invalid network settings (for example, if an instance
33923	// attempts to perform IP forwarding but is not enabled for IP
33924	// forwarding).
33925	Key string `json:"key,omitempty"`
33926
33927	// Value: [Output Only] A warning data value corresponding to the key.
33928	Value string `json:"value,omitempty"`
33929
33930	// ForceSendFields is a list of field names (e.g. "Key") to
33931	// unconditionally include in API requests. By default, fields with
33932	// empty values are omitted from API requests. However, any non-pointer,
33933	// non-interface field appearing in ForceSendFields will be sent to the
33934	// server regardless of whether the field is empty or not. This may be
33935	// used to include empty fields in Patch requests.
33936	ForceSendFields []string `json:"-"`
33937
33938	// NullFields is a list of field names (e.g. "Key") to include in API
33939	// requests with the JSON null value. By default, fields with empty
33940	// values are omitted from API requests. However, any field with an
33941	// empty value appearing in NullFields will be sent to the server as
33942	// null. It is an error if a field in this list has a non-empty value.
33943	// This may be used to include null fields in Patch requests.
33944	NullFields []string `json:"-"`
33945}
33946
33947func (s *ResourcePolicyListWarningData) MarshalJSON() ([]byte, error) {
33948	type NoMethod ResourcePolicyListWarningData
33949	raw := NoMethod(*s)
33950	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33951}
33952
33953// ResourcePolicyResourceStatus: Contains output only fields. Use this
33954// sub-message for all output fields set on ResourcePolicy. The internal
33955// structure of this "status" field should mimic the structure of
33956// ResourcePolicy proto specification.
33957type ResourcePolicyResourceStatus struct {
33958	// InstanceSchedulePolicy: [Output Only] Specifies a set of output
33959	// values reffering to the instance_schedule_policy system status. This
33960	// field should have the same name as corresponding policy field.
33961	InstanceSchedulePolicy *ResourcePolicyResourceStatusInstanceSchedulePolicyStatus `json:"instanceSchedulePolicy,omitempty"`
33962
33963	// ForceSendFields is a list of field names (e.g.
33964	// "InstanceSchedulePolicy") to unconditionally include in API requests.
33965	// By default, fields with empty values are omitted from API requests.
33966	// However, any non-pointer, non-interface field appearing in
33967	// ForceSendFields will be sent to the server regardless of whether the
33968	// field is empty or not. This may be used to include empty fields in
33969	// Patch requests.
33970	ForceSendFields []string `json:"-"`
33971
33972	// NullFields is a list of field names (e.g. "InstanceSchedulePolicy")
33973	// to include in API requests with the JSON null value. By default,
33974	// fields with empty values are omitted from API requests. However, any
33975	// field with an empty value appearing in NullFields will be sent to the
33976	// server as null. It is an error if a field in this list has a
33977	// non-empty value. This may be used to include null fields in Patch
33978	// requests.
33979	NullFields []string `json:"-"`
33980}
33981
33982func (s *ResourcePolicyResourceStatus) MarshalJSON() ([]byte, error) {
33983	type NoMethod ResourcePolicyResourceStatus
33984	raw := NoMethod(*s)
33985	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33986}
33987
33988type ResourcePolicyResourceStatusInstanceSchedulePolicyStatus struct {
33989	// LastRunStartTime: [Output Only] The last time the schedule
33990	// successfully ran. The timestamp is an RFC3339 string.
33991	LastRunStartTime string `json:"lastRunStartTime,omitempty"`
33992
33993	// NextRunStartTime: [Output Only] The next time the schedule is planned
33994	// to run. The actual time might be slightly different. The timestamp is
33995	// an RFC3339 string.
33996	NextRunStartTime string `json:"nextRunStartTime,omitempty"`
33997
33998	// ForceSendFields is a list of field names (e.g. "LastRunStartTime") to
33999	// unconditionally include in API requests. By default, fields with
34000	// empty values are omitted from API requests. However, any non-pointer,
34001	// non-interface field appearing in ForceSendFields will be sent to the
34002	// server regardless of whether the field is empty or not. This may be
34003	// used to include empty fields in Patch requests.
34004	ForceSendFields []string `json:"-"`
34005
34006	// NullFields is a list of field names (e.g. "LastRunStartTime") to
34007	// include in API requests with the JSON null value. By default, fields
34008	// with empty values are omitted from API requests. However, any field
34009	// with an empty value appearing in NullFields will be sent to the
34010	// server as null. It is an error if a field in this list has a
34011	// non-empty value. This may be used to include null fields in Patch
34012	// requests.
34013	NullFields []string `json:"-"`
34014}
34015
34016func (s *ResourcePolicyResourceStatusInstanceSchedulePolicyStatus) MarshalJSON() ([]byte, error) {
34017	type NoMethod ResourcePolicyResourceStatusInstanceSchedulePolicyStatus
34018	raw := NoMethod(*s)
34019	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34020}
34021
34022// ResourcePolicySnapshotSchedulePolicy: A snapshot schedule policy
34023// specifies when and how frequently snapshots are to be created for the
34024// target disk. Also specifies how many and how long these scheduled
34025// snapshots should be retained.
34026type ResourcePolicySnapshotSchedulePolicy struct {
34027	// RetentionPolicy: Retention policy applied to snapshots created by
34028	// this resource policy.
34029	RetentionPolicy *ResourcePolicySnapshotSchedulePolicyRetentionPolicy `json:"retentionPolicy,omitempty"`
34030
34031	// Schedule: A Vm Maintenance Policy specifies what kind of
34032	// infrastructure maintenance we are allowed to perform on this VM and
34033	// when. Schedule that is applied to disks covered by this policy.
34034	Schedule *ResourcePolicySnapshotSchedulePolicySchedule `json:"schedule,omitempty"`
34035
34036	// SnapshotProperties: Properties with which snapshots are created such
34037	// as labels, encryption keys.
34038	SnapshotProperties *ResourcePolicySnapshotSchedulePolicySnapshotProperties `json:"snapshotProperties,omitempty"`
34039
34040	// ForceSendFields is a list of field names (e.g. "RetentionPolicy") to
34041	// unconditionally include in API requests. By default, fields with
34042	// empty values are omitted from API requests. However, any non-pointer,
34043	// non-interface field appearing in ForceSendFields will be sent to the
34044	// server regardless of whether the field is empty or not. This may be
34045	// used to include empty fields in Patch requests.
34046	ForceSendFields []string `json:"-"`
34047
34048	// NullFields is a list of field names (e.g. "RetentionPolicy") to
34049	// include in API requests with the JSON null value. By default, fields
34050	// with empty values are omitted from API requests. However, any field
34051	// with an empty value appearing in NullFields will be sent to the
34052	// server as null. It is an error if a field in this list has a
34053	// non-empty value. This may be used to include null fields in Patch
34054	// requests.
34055	NullFields []string `json:"-"`
34056}
34057
34058func (s *ResourcePolicySnapshotSchedulePolicy) MarshalJSON() ([]byte, error) {
34059	type NoMethod ResourcePolicySnapshotSchedulePolicy
34060	raw := NoMethod(*s)
34061	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34062}
34063
34064// ResourcePolicySnapshotSchedulePolicyRetentionPolicy: Policy for
34065// retention of scheduled snapshots.
34066type ResourcePolicySnapshotSchedulePolicyRetentionPolicy struct {
34067	// MaxRetentionDays: Maximum age of the snapshot that is allowed to be
34068	// kept.
34069	MaxRetentionDays int64 `json:"maxRetentionDays,omitempty"`
34070
34071	// OnSourceDiskDelete: Specifies the behavior to apply to scheduled
34072	// snapshots when the source disk is deleted.
34073	//
34074	// Possible values:
34075	//   "APPLY_RETENTION_POLICY"
34076	//   "KEEP_AUTO_SNAPSHOTS"
34077	//   "UNSPECIFIED_ON_SOURCE_DISK_DELETE"
34078	OnSourceDiskDelete string `json:"onSourceDiskDelete,omitempty"`
34079
34080	// ForceSendFields is a list of field names (e.g. "MaxRetentionDays") 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. "MaxRetentionDays") 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 *ResourcePolicySnapshotSchedulePolicyRetentionPolicy) MarshalJSON() ([]byte, error) {
34099	type NoMethod ResourcePolicySnapshotSchedulePolicyRetentionPolicy
34100	raw := NoMethod(*s)
34101	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34102}
34103
34104// ResourcePolicySnapshotSchedulePolicySchedule: A schedule for disks
34105// where the schedueled operations are performed.
34106type ResourcePolicySnapshotSchedulePolicySchedule struct {
34107	DailySchedule *ResourcePolicyDailyCycle `json:"dailySchedule,omitempty"`
34108
34109	HourlySchedule *ResourcePolicyHourlyCycle `json:"hourlySchedule,omitempty"`
34110
34111	WeeklySchedule *ResourcePolicyWeeklyCycle `json:"weeklySchedule,omitempty"`
34112
34113	// ForceSendFields is a list of field names (e.g. "DailySchedule") to
34114	// unconditionally include in API requests. By default, fields with
34115	// empty values are omitted from API requests. However, any non-pointer,
34116	// non-interface field appearing in ForceSendFields will be sent to the
34117	// server regardless of whether the field is empty or not. This may be
34118	// used to include empty fields in Patch requests.
34119	ForceSendFields []string `json:"-"`
34120
34121	// NullFields is a list of field names (e.g. "DailySchedule") to include
34122	// in API requests with the JSON null value. By default, fields with
34123	// empty values are omitted from API requests. However, any field with
34124	// an empty value appearing in NullFields will be sent to the server as
34125	// null. It is an error if a field in this list has a non-empty value.
34126	// This may be used to include null fields in Patch requests.
34127	NullFields []string `json:"-"`
34128}
34129
34130func (s *ResourcePolicySnapshotSchedulePolicySchedule) MarshalJSON() ([]byte, error) {
34131	type NoMethod ResourcePolicySnapshotSchedulePolicySchedule
34132	raw := NoMethod(*s)
34133	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34134}
34135
34136// ResourcePolicySnapshotSchedulePolicySnapshotProperties: Specified
34137// snapshot properties for scheduled snapshots created by this policy.
34138type ResourcePolicySnapshotSchedulePolicySnapshotProperties struct {
34139	// ChainName: Chain name that the snapshot is created in.
34140	ChainName string `json:"chainName,omitempty"`
34141
34142	// GuestFlush: Indication to perform a 'guest aware' snapshot.
34143	GuestFlush bool `json:"guestFlush,omitempty"`
34144
34145	// Labels: Labels to apply to scheduled snapshots. These can be later
34146	// modified by the setLabels method. Label values may be empty.
34147	Labels map[string]string `json:"labels,omitempty"`
34148
34149	// StorageLocations: Cloud Storage bucket storage location of the auto
34150	// snapshot (regional or multi-regional).
34151	StorageLocations []string `json:"storageLocations,omitempty"`
34152
34153	// ForceSendFields is a list of field names (e.g. "ChainName") to
34154	// unconditionally include in API requests. By default, fields with
34155	// empty values are omitted from API requests. However, any non-pointer,
34156	// non-interface field appearing in ForceSendFields will be sent to the
34157	// server regardless of whether the field is empty or not. This may be
34158	// used to include empty fields in Patch requests.
34159	ForceSendFields []string `json:"-"`
34160
34161	// NullFields is a list of field names (e.g. "ChainName") to include in
34162	// API requests with the JSON null value. By default, fields with empty
34163	// values are omitted from API requests. However, any field with an
34164	// empty value appearing in NullFields will be sent to the server as
34165	// null. It is an error if a field in this list has a non-empty value.
34166	// This may be used to include null fields in Patch requests.
34167	NullFields []string `json:"-"`
34168}
34169
34170func (s *ResourcePolicySnapshotSchedulePolicySnapshotProperties) MarshalJSON() ([]byte, error) {
34171	type NoMethod ResourcePolicySnapshotSchedulePolicySnapshotProperties
34172	raw := NoMethod(*s)
34173	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34174}
34175
34176// ResourcePolicyWeeklyCycle: Time window specified for weekly
34177// operations.
34178type ResourcePolicyWeeklyCycle struct {
34179	// DayOfWeeks: Up to 7 intervals/windows, one for each day of the week.
34180	DayOfWeeks []*ResourcePolicyWeeklyCycleDayOfWeek `json:"dayOfWeeks,omitempty"`
34181
34182	// ForceSendFields is a list of field names (e.g. "DayOfWeeks") to
34183	// unconditionally include in API requests. By default, fields with
34184	// empty values are omitted from API requests. However, any non-pointer,
34185	// non-interface field appearing in ForceSendFields will be sent to the
34186	// server regardless of whether the field is empty or not. This may be
34187	// used to include empty fields in Patch requests.
34188	ForceSendFields []string `json:"-"`
34189
34190	// NullFields is a list of field names (e.g. "DayOfWeeks") to include in
34191	// API requests with the JSON null value. By default, fields with empty
34192	// values are omitted from API requests. However, any field with an
34193	// empty value appearing in NullFields will be sent to the server as
34194	// null. It is an error if a field in this list has a non-empty value.
34195	// This may be used to include null fields in Patch requests.
34196	NullFields []string `json:"-"`
34197}
34198
34199func (s *ResourcePolicyWeeklyCycle) MarshalJSON() ([]byte, error) {
34200	type NoMethod ResourcePolicyWeeklyCycle
34201	raw := NoMethod(*s)
34202	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34203}
34204
34205type ResourcePolicyWeeklyCycleDayOfWeek struct {
34206	// Day: Defines a schedule that runs on specific days of the week.
34207	// Specify one or more days. The following options are available:
34208	// MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY.
34209	//
34210	// Possible values:
34211	//   "FRIDAY"
34212	//   "INVALID"
34213	//   "MONDAY"
34214	//   "SATURDAY"
34215	//   "SUNDAY"
34216	//   "THURSDAY"
34217	//   "TUESDAY"
34218	//   "WEDNESDAY"
34219	Day string `json:"day,omitempty"`
34220
34221	// Duration: [Output only] Duration of the time window, automatically
34222	// chosen to be smallest possible in the given scenario.
34223	Duration string `json:"duration,omitempty"`
34224
34225	// StartTime: Time within the window to start the operations. It must be
34226	// in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT.
34227	StartTime string `json:"startTime,omitempty"`
34228
34229	// ForceSendFields is a list of field names (e.g. "Day") to
34230	// unconditionally include in API requests. By default, fields with
34231	// empty values are omitted from API requests. However, any non-pointer,
34232	// non-interface field appearing in ForceSendFields will be sent to the
34233	// server regardless of whether the field is empty or not. This may be
34234	// used to include empty fields in Patch requests.
34235	ForceSendFields []string `json:"-"`
34236
34237	// NullFields is a list of field names (e.g. "Day") to include in API
34238	// requests with the JSON null value. By default, fields with empty
34239	// values are omitted from API requests. However, any field with an
34240	// empty value appearing in NullFields will be sent to the server as
34241	// null. It is an error if a field in this list has a non-empty value.
34242	// This may be used to include null fields in Patch requests.
34243	NullFields []string `json:"-"`
34244}
34245
34246func (s *ResourcePolicyWeeklyCycleDayOfWeek) MarshalJSON() ([]byte, error) {
34247	type NoMethod ResourcePolicyWeeklyCycleDayOfWeek
34248	raw := NoMethod(*s)
34249	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34250}
34251
34252// Route: Represents a Route resource.
34253//
34254// A route defines a path from VM instances in the VPC network to a
34255// specific destination. This destination can be inside or outside the
34256// VPC network. For more information, read the Routes overview. (==
34257// resource_for {$api_version}.routes ==)
34258type Route struct {
34259	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
34260	// format.
34261	CreationTimestamp string `json:"creationTimestamp,omitempty"`
34262
34263	// Description: An optional description of this resource. Provide this
34264	// field when you create the resource.
34265	Description string `json:"description,omitempty"`
34266
34267	// DestRange: The destination range of outgoing packets that this route
34268	// applies to. Both IPv4 and IPv6 are supported.
34269	DestRange string `json:"destRange,omitempty"`
34270
34271	// Id: [Output Only] The unique identifier for the resource. This
34272	// identifier is defined by the server.
34273	Id uint64 `json:"id,omitempty,string"`
34274
34275	// Kind: [Output Only] Type of this resource. Always compute#routes for
34276	// Route resources.
34277	Kind string `json:"kind,omitempty"`
34278
34279	// Name: Name of the resource. Provided by the client when the resource
34280	// is created. The name must be 1-63 characters long, and comply with
34281	// RFC1035. Specifically, the name must be 1-63 characters long and
34282	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first
34283	// character must be a lowercase letter, and all following characters
34284	// (except for the last character) must be a dash, lowercase letter, or
34285	// digit. The last character must be a lowercase letter or digit.
34286	Name string `json:"name,omitempty"`
34287
34288	// Network: Fully-qualified URL of the network that this route applies
34289	// to.
34290	Network string `json:"network,omitempty"`
34291
34292	// NextHopGateway: The URL to a gateway that should handle matching
34293	// packets. You can only specify the internet gateway using a full or
34294	// partial valid URL:
34295	// projects/project/global/gateways/default-internet-gateway
34296	NextHopGateway string `json:"nextHopGateway,omitempty"`
34297
34298	// NextHopIlb: The URL to a forwarding rule of type
34299	// loadBalancingScheme=INTERNAL that should handle matching packets or
34300	// the IP address of the forwarding Rule. For example, the following are
34301	// all valid URLs:
34302	// - 10.128.0.56
34303	// -
34304	// https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule
34305	//
34306	// - regions/region/forwardingRules/forwardingRule
34307	NextHopIlb string `json:"nextHopIlb,omitempty"`
34308
34309	// NextHopInstance: The URL to an instance that should handle matching
34310	// packets. You can specify this as a full or partial URL. For
34311	// example:
34312	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/
34313	NextHopInstance string `json:"nextHopInstance,omitempty"`
34314
34315	// NextHopIp: The network IP address of an instance that should handle
34316	// matching packets. Only IPv4 is supported.
34317	NextHopIp string `json:"nextHopIp,omitempty"`
34318
34319	// NextHopNetwork: The URL of the local network if it should handle
34320	// matching packets.
34321	NextHopNetwork string `json:"nextHopNetwork,omitempty"`
34322
34323	// NextHopPeering: [Output Only] The network peering name that should
34324	// handle matching packets, which should conform to RFC1035.
34325	NextHopPeering string `json:"nextHopPeering,omitempty"`
34326
34327	// NextHopVpnTunnel: The URL to a VpnTunnel that should handle matching
34328	// packets.
34329	NextHopVpnTunnel string `json:"nextHopVpnTunnel,omitempty"`
34330
34331	// Priority: The priority of this route. Priority is used to break ties
34332	// in cases where there is more than one matching route of equal prefix
34333	// length. In cases where multiple routes have equal prefix length, the
34334	// one with the lowest-numbered priority value wins. The default value
34335	// is `1000`. The priority value must be from `0` to `65535`, inclusive.
34336	Priority int64 `json:"priority,omitempty"`
34337
34338	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
34339	// resource.
34340	SelfLink string `json:"selfLink,omitempty"`
34341
34342	// Tags: A list of instance tags to which this route applies.
34343	Tags []string `json:"tags,omitempty"`
34344
34345	// Warnings: [Output Only] If potential misconfigurations are detected
34346	// for this route, this field will be populated with warning messages.
34347	Warnings []*RouteWarnings `json:"warnings,omitempty"`
34348
34349	// ServerResponse contains the HTTP response code and headers from the
34350	// server.
34351	googleapi.ServerResponse `json:"-"`
34352
34353	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
34354	// to unconditionally include in API requests. By default, fields with
34355	// empty values are omitted from API requests. However, any non-pointer,
34356	// non-interface field appearing in ForceSendFields will be sent to the
34357	// server regardless of whether the field is empty or not. This may be
34358	// used to include empty fields in Patch requests.
34359	ForceSendFields []string `json:"-"`
34360
34361	// NullFields is a list of field names (e.g. "CreationTimestamp") to
34362	// include in API requests with the JSON null value. By default, fields
34363	// with empty values are omitted from API requests. However, any field
34364	// with an empty value appearing in NullFields will be sent to the
34365	// server as null. It is an error if a field in this list has a
34366	// non-empty value. This may be used to include null fields in Patch
34367	// requests.
34368	NullFields []string `json:"-"`
34369}
34370
34371func (s *Route) MarshalJSON() ([]byte, error) {
34372	type NoMethod Route
34373	raw := NoMethod(*s)
34374	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34375}
34376
34377type RouteWarnings struct {
34378	// Code: [Output Only] A warning code, if applicable. For example,
34379	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
34380	// the response.
34381	//
34382	// Possible values:
34383	//   "CLEANUP_FAILED"
34384	//   "DEPRECATED_RESOURCE_USED"
34385	//   "DEPRECATED_TYPE_USED"
34386	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
34387	//   "EXPERIMENTAL_TYPE_USED"
34388	//   "EXTERNAL_API_WARNING"
34389	//   "FIELD_VALUE_OVERRIDEN"
34390	//   "INJECTED_KERNELS_DEPRECATED"
34391	//   "LARGE_DEPLOYMENT_WARNING"
34392	//   "MISSING_TYPE_DEPENDENCY"
34393	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
34394	//   "NEXT_HOP_CANNOT_IP_FORWARD"
34395	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
34396	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
34397	//   "NEXT_HOP_NOT_RUNNING"
34398	//   "NOT_CRITICAL_ERROR"
34399	//   "NO_RESULTS_ON_PAGE"
34400	//   "PARTIAL_SUCCESS"
34401	//   "REQUIRED_TOS_AGREEMENT"
34402	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
34403	//   "RESOURCE_NOT_DELETED"
34404	//   "SCHEMA_VALIDATION_IGNORED"
34405	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
34406	//   "UNDECLARED_PROPERTIES"
34407	//   "UNREACHABLE"
34408	Code string `json:"code,omitempty"`
34409
34410	// Data: [Output Only] Metadata about this warning in key: value format.
34411	// For example:
34412	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
34413	Data []*RouteWarningsData `json:"data,omitempty"`
34414
34415	// Message: [Output Only] A human-readable description of the warning
34416	// code.
34417	Message string `json:"message,omitempty"`
34418
34419	// ForceSendFields is a list of field names (e.g. "Code") to
34420	// unconditionally include in API requests. By default, fields with
34421	// empty values are omitted from API requests. However, any non-pointer,
34422	// non-interface field appearing in ForceSendFields will be sent to the
34423	// server regardless of whether the field is empty or not. This may be
34424	// used to include empty fields in Patch requests.
34425	ForceSendFields []string `json:"-"`
34426
34427	// NullFields is a list of field names (e.g. "Code") to include in API
34428	// requests with the JSON null value. By default, fields with empty
34429	// values are omitted from API requests. However, any field with an
34430	// empty value appearing in NullFields will be sent to the server as
34431	// null. It is an error if a field in this list has a non-empty value.
34432	// This may be used to include null fields in Patch requests.
34433	NullFields []string `json:"-"`
34434}
34435
34436func (s *RouteWarnings) MarshalJSON() ([]byte, error) {
34437	type NoMethod RouteWarnings
34438	raw := NoMethod(*s)
34439	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34440}
34441
34442type RouteWarningsData struct {
34443	// Key: [Output Only] A key that provides more detail on the warning
34444	// being returned. For example, for warnings where there are no results
34445	// in a list request for a particular zone, this key might be scope and
34446	// the key value might be the zone name. Other examples might be a key
34447	// indicating a deprecated resource and a suggested replacement, or a
34448	// warning about invalid network settings (for example, if an instance
34449	// attempts to perform IP forwarding but is not enabled for IP
34450	// forwarding).
34451	Key string `json:"key,omitempty"`
34452
34453	// Value: [Output Only] A warning data value corresponding to the key.
34454	Value string `json:"value,omitempty"`
34455
34456	// ForceSendFields is a list of field names (e.g. "Key") to
34457	// unconditionally include in API requests. By default, fields with
34458	// empty values are omitted from API requests. However, any non-pointer,
34459	// non-interface field appearing in ForceSendFields will be sent to the
34460	// server regardless of whether the field is empty or not. This may be
34461	// used to include empty fields in Patch requests.
34462	ForceSendFields []string `json:"-"`
34463
34464	// NullFields is a list of field names (e.g. "Key") to include in API
34465	// requests with the JSON null value. By default, fields with empty
34466	// values are omitted from API requests. However, any field with an
34467	// empty value appearing in NullFields will be sent to the server as
34468	// null. It is an error if a field in this list has a non-empty value.
34469	// This may be used to include null fields in Patch requests.
34470	NullFields []string `json:"-"`
34471}
34472
34473func (s *RouteWarningsData) MarshalJSON() ([]byte, error) {
34474	type NoMethod RouteWarningsData
34475	raw := NoMethod(*s)
34476	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34477}
34478
34479// RouteList: Contains a list of Route resources.
34480type RouteList struct {
34481	// Id: [Output Only] Unique identifier for the resource; defined by the
34482	// server.
34483	Id string `json:"id,omitempty"`
34484
34485	// Items: A list of Route resources.
34486	Items []*Route `json:"items,omitempty"`
34487
34488	// Kind: Type of resource.
34489	Kind string `json:"kind,omitempty"`
34490
34491	// NextPageToken: [Output Only] This token allows you to get the next
34492	// page of results for list requests. If the number of results is larger
34493	// than maxResults, use the nextPageToken as a value for the query
34494	// parameter pageToken in the next list request. Subsequent list
34495	// requests will have their own nextPageToken to continue paging through
34496	// the results.
34497	NextPageToken string `json:"nextPageToken,omitempty"`
34498
34499	// SelfLink: [Output Only] Server-defined URL for this resource.
34500	SelfLink string `json:"selfLink,omitempty"`
34501
34502	// Warning: [Output Only] Informational warning message.
34503	Warning *RouteListWarning `json:"warning,omitempty"`
34504
34505	// ServerResponse contains the HTTP response code and headers from the
34506	// server.
34507	googleapi.ServerResponse `json:"-"`
34508
34509	// ForceSendFields is a list of field names (e.g. "Id") to
34510	// unconditionally include in API requests. By default, fields with
34511	// empty values are omitted from API requests. However, any non-pointer,
34512	// non-interface field appearing in ForceSendFields will be sent to the
34513	// server regardless of whether the field is empty or not. This may be
34514	// used to include empty fields in Patch requests.
34515	ForceSendFields []string `json:"-"`
34516
34517	// NullFields is a list of field names (e.g. "Id") to include in API
34518	// requests with the JSON null value. By default, fields with empty
34519	// values are omitted from API requests. However, any field with an
34520	// empty value appearing in NullFields will be sent to the server as
34521	// null. It is an error if a field in this list has a non-empty value.
34522	// This may be used to include null fields in Patch requests.
34523	NullFields []string `json:"-"`
34524}
34525
34526func (s *RouteList) MarshalJSON() ([]byte, error) {
34527	type NoMethod RouteList
34528	raw := NoMethod(*s)
34529	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34530}
34531
34532// RouteListWarning: [Output Only] Informational warning message.
34533type RouteListWarning struct {
34534	// Code: [Output Only] A warning code, if applicable. For example,
34535	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
34536	// the response.
34537	//
34538	// Possible values:
34539	//   "CLEANUP_FAILED"
34540	//   "DEPRECATED_RESOURCE_USED"
34541	//   "DEPRECATED_TYPE_USED"
34542	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
34543	//   "EXPERIMENTAL_TYPE_USED"
34544	//   "EXTERNAL_API_WARNING"
34545	//   "FIELD_VALUE_OVERRIDEN"
34546	//   "INJECTED_KERNELS_DEPRECATED"
34547	//   "LARGE_DEPLOYMENT_WARNING"
34548	//   "MISSING_TYPE_DEPENDENCY"
34549	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
34550	//   "NEXT_HOP_CANNOT_IP_FORWARD"
34551	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
34552	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
34553	//   "NEXT_HOP_NOT_RUNNING"
34554	//   "NOT_CRITICAL_ERROR"
34555	//   "NO_RESULTS_ON_PAGE"
34556	//   "PARTIAL_SUCCESS"
34557	//   "REQUIRED_TOS_AGREEMENT"
34558	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
34559	//   "RESOURCE_NOT_DELETED"
34560	//   "SCHEMA_VALIDATION_IGNORED"
34561	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
34562	//   "UNDECLARED_PROPERTIES"
34563	//   "UNREACHABLE"
34564	Code string `json:"code,omitempty"`
34565
34566	// Data: [Output Only] Metadata about this warning in key: value format.
34567	// For example:
34568	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
34569	Data []*RouteListWarningData `json:"data,omitempty"`
34570
34571	// Message: [Output Only] A human-readable description of the warning
34572	// code.
34573	Message string `json:"message,omitempty"`
34574
34575	// ForceSendFields is a list of field names (e.g. "Code") to
34576	// unconditionally include in API requests. By default, fields with
34577	// empty values are omitted from API requests. However, any non-pointer,
34578	// non-interface field appearing in ForceSendFields will be sent to the
34579	// server regardless of whether the field is empty or not. This may be
34580	// used to include empty fields in Patch requests.
34581	ForceSendFields []string `json:"-"`
34582
34583	// NullFields is a list of field names (e.g. "Code") to include in API
34584	// requests with the JSON null value. By default, fields with empty
34585	// values are omitted from API requests. However, any field with an
34586	// empty value appearing in NullFields will be sent to the server as
34587	// null. It is an error if a field in this list has a non-empty value.
34588	// This may be used to include null fields in Patch requests.
34589	NullFields []string `json:"-"`
34590}
34591
34592func (s *RouteListWarning) MarshalJSON() ([]byte, error) {
34593	type NoMethod RouteListWarning
34594	raw := NoMethod(*s)
34595	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34596}
34597
34598type RouteListWarningData struct {
34599	// Key: [Output Only] A key that provides more detail on the warning
34600	// being returned. For example, for warnings where there are no results
34601	// in a list request for a particular zone, this key might be scope and
34602	// the key value might be the zone name. Other examples might be a key
34603	// indicating a deprecated resource and a suggested replacement, or a
34604	// warning about invalid network settings (for example, if an instance
34605	// attempts to perform IP forwarding but is not enabled for IP
34606	// forwarding).
34607	Key string `json:"key,omitempty"`
34608
34609	// Value: [Output Only] A warning data value corresponding to the key.
34610	Value string `json:"value,omitempty"`
34611
34612	// ForceSendFields is a list of field names (e.g. "Key") to
34613	// unconditionally include in API requests. By default, fields with
34614	// empty values are omitted from API requests. However, any non-pointer,
34615	// non-interface field appearing in ForceSendFields will be sent to the
34616	// server regardless of whether the field is empty or not. This may be
34617	// used to include empty fields in Patch requests.
34618	ForceSendFields []string `json:"-"`
34619
34620	// NullFields is a list of field names (e.g. "Key") to include in API
34621	// requests with the JSON null value. By default, fields with empty
34622	// values are omitted from API requests. However, any field with an
34623	// empty value appearing in NullFields will be sent to the server as
34624	// null. It is an error if a field in this list has a non-empty value.
34625	// This may be used to include null fields in Patch requests.
34626	NullFields []string `json:"-"`
34627}
34628
34629func (s *RouteListWarningData) MarshalJSON() ([]byte, error) {
34630	type NoMethod RouteListWarningData
34631	raw := NoMethod(*s)
34632	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34633}
34634
34635// Router: Represents a Cloud Router resource.
34636//
34637// For more information about Cloud Router, read the Cloud Router
34638// overview.
34639type Router struct {
34640	// Bgp: BGP information specific to this router.
34641	Bgp *RouterBgp `json:"bgp,omitempty"`
34642
34643	// BgpPeers: BGP information that must be configured into the routing
34644	// stack to establish BGP peering. This information must specify the
34645	// peer ASN and either the interface name, IP address, or peer IP
34646	// address. Please refer to RFC4273.
34647	BgpPeers []*RouterBgpPeer `json:"bgpPeers,omitempty"`
34648
34649	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
34650	// format.
34651	CreationTimestamp string `json:"creationTimestamp,omitempty"`
34652
34653	// Description: An optional description of this resource. Provide this
34654	// property when you create the resource.
34655	Description string `json:"description,omitempty"`
34656
34657	// EncryptedInterconnectRouter: Indicates if a router is dedicated for
34658	// use with encrypted VLAN attachments (interconnectAttachments).
34659	// Not currently available publicly.
34660	EncryptedInterconnectRouter bool `json:"encryptedInterconnectRouter,omitempty"`
34661
34662	// Id: [Output Only] The unique identifier for the resource. This
34663	// identifier is defined by the server.
34664	Id uint64 `json:"id,omitempty,string"`
34665
34666	// Interfaces: Router interfaces. Each interface requires either one
34667	// linked resource, (for example, linkedVpnTunnel), or IP address and IP
34668	// address range (for example, ipRange), or both.
34669	Interfaces []*RouterInterface `json:"interfaces,omitempty"`
34670
34671	// Kind: [Output Only] Type of resource. Always compute#router for
34672	// routers.
34673	Kind string `json:"kind,omitempty"`
34674
34675	// Name: Name of the resource. Provided by the client when the resource
34676	// is created. The name must be 1-63 characters long, and comply with
34677	// RFC1035. Specifically, the name must be 1-63 characters long and
34678	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
34679	// the first character must be a lowercase letter, and all following
34680	// characters must be a dash, lowercase letter, or digit, except the
34681	// last character, which cannot be a dash.
34682	Name string `json:"name,omitempty"`
34683
34684	// Nats: A list of NAT services created in this router.
34685	Nats []*RouterNat `json:"nats,omitempty"`
34686
34687	// Network: URI of the network to which this router belongs.
34688	Network string `json:"network,omitempty"`
34689
34690	// Region: [Output Only] URI of the region where the router resides. You
34691	// must specify this field as part of the HTTP request URL. It is not
34692	// settable as a field in the request body.
34693	Region string `json:"region,omitempty"`
34694
34695	// SelfLink: [Output Only] Server-defined URL for the resource.
34696	SelfLink string `json:"selfLink,omitempty"`
34697
34698	// ServerResponse contains the HTTP response code and headers from the
34699	// server.
34700	googleapi.ServerResponse `json:"-"`
34701
34702	// ForceSendFields is a list of field names (e.g. "Bgp") to
34703	// unconditionally include in API requests. By default, fields with
34704	// empty values are omitted from API requests. However, any non-pointer,
34705	// non-interface field appearing in ForceSendFields will be sent to the
34706	// server regardless of whether the field is empty or not. This may be
34707	// used to include empty fields in Patch requests.
34708	ForceSendFields []string `json:"-"`
34709
34710	// NullFields is a list of field names (e.g. "Bgp") to include in API
34711	// requests with the JSON null value. By default, fields with empty
34712	// values are omitted from API requests. However, any field with an
34713	// empty value appearing in NullFields will be sent to the server as
34714	// null. It is an error if a field in this list has a non-empty value.
34715	// This may be used to include null fields in Patch requests.
34716	NullFields []string `json:"-"`
34717}
34718
34719func (s *Router) MarshalJSON() ([]byte, error) {
34720	type NoMethod Router
34721	raw := NoMethod(*s)
34722	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34723}
34724
34725// RouterAdvertisedIpRange: Description-tagged IP ranges for the router
34726// to advertise.
34727type RouterAdvertisedIpRange struct {
34728	// Description: User-specified description for the IP range.
34729	Description string `json:"description,omitempty"`
34730
34731	// Range: The IP range to advertise. The value must be a CIDR-formatted
34732	// string.
34733	Range string `json:"range,omitempty"`
34734
34735	// ForceSendFields is a list of field names (e.g. "Description") to
34736	// unconditionally include in API requests. By default, fields with
34737	// empty values are omitted from API requests. However, any non-pointer,
34738	// non-interface field appearing in ForceSendFields will be sent to the
34739	// server regardless of whether the field is empty or not. This may be
34740	// used to include empty fields in Patch requests.
34741	ForceSendFields []string `json:"-"`
34742
34743	// NullFields is a list of field names (e.g. "Description") to include
34744	// in API requests with the JSON null value. By default, fields with
34745	// empty values are omitted from API requests. However, any field with
34746	// an empty value appearing in NullFields will be sent to the server as
34747	// null. It is an error if a field in this list has a non-empty value.
34748	// This may be used to include null fields in Patch requests.
34749	NullFields []string `json:"-"`
34750}
34751
34752func (s *RouterAdvertisedIpRange) MarshalJSON() ([]byte, error) {
34753	type NoMethod RouterAdvertisedIpRange
34754	raw := NoMethod(*s)
34755	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34756}
34757
34758// RouterAggregatedList: Contains a list of routers.
34759type RouterAggregatedList struct {
34760	// Id: [Output Only] Unique identifier for the resource; defined by the
34761	// server.
34762	Id string `json:"id,omitempty"`
34763
34764	// Items: A list of Router resources.
34765	Items map[string]RoutersScopedList `json:"items,omitempty"`
34766
34767	// Kind: Type of resource.
34768	Kind string `json:"kind,omitempty"`
34769
34770	// NextPageToken: [Output Only] This token allows you to get the next
34771	// page of results for list requests. If the number of results is larger
34772	// than maxResults, use the nextPageToken as a value for the query
34773	// parameter pageToken in the next list request. Subsequent list
34774	// requests will have their own nextPageToken to continue paging through
34775	// the results.
34776	NextPageToken string `json:"nextPageToken,omitempty"`
34777
34778	// SelfLink: [Output Only] Server-defined URL for this resource.
34779	SelfLink string `json:"selfLink,omitempty"`
34780
34781	// Unreachables: [Output Only] Unreachable resources.
34782	Unreachables []string `json:"unreachables,omitempty"`
34783
34784	// Warning: [Output Only] Informational warning message.
34785	Warning *RouterAggregatedListWarning `json:"warning,omitempty"`
34786
34787	// ServerResponse contains the HTTP response code and headers from the
34788	// server.
34789	googleapi.ServerResponse `json:"-"`
34790
34791	// ForceSendFields is a list of field names (e.g. "Id") to
34792	// unconditionally include in API requests. By default, fields with
34793	// empty values are omitted from API requests. However, any non-pointer,
34794	// non-interface field appearing in ForceSendFields will be sent to the
34795	// server regardless of whether the field is empty or not. This may be
34796	// used to include empty fields in Patch requests.
34797	ForceSendFields []string `json:"-"`
34798
34799	// NullFields is a list of field names (e.g. "Id") to include in API
34800	// requests with the JSON null value. By default, fields with empty
34801	// values are omitted from API requests. However, any field with an
34802	// empty value appearing in NullFields will be sent to the server as
34803	// null. It is an error if a field in this list has a non-empty value.
34804	// This may be used to include null fields in Patch requests.
34805	NullFields []string `json:"-"`
34806}
34807
34808func (s *RouterAggregatedList) MarshalJSON() ([]byte, error) {
34809	type NoMethod RouterAggregatedList
34810	raw := NoMethod(*s)
34811	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34812}
34813
34814// RouterAggregatedListWarning: [Output Only] Informational warning
34815// message.
34816type RouterAggregatedListWarning struct {
34817	// Code: [Output Only] A warning code, if applicable. For example,
34818	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
34819	// the response.
34820	//
34821	// Possible values:
34822	//   "CLEANUP_FAILED"
34823	//   "DEPRECATED_RESOURCE_USED"
34824	//   "DEPRECATED_TYPE_USED"
34825	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
34826	//   "EXPERIMENTAL_TYPE_USED"
34827	//   "EXTERNAL_API_WARNING"
34828	//   "FIELD_VALUE_OVERRIDEN"
34829	//   "INJECTED_KERNELS_DEPRECATED"
34830	//   "LARGE_DEPLOYMENT_WARNING"
34831	//   "MISSING_TYPE_DEPENDENCY"
34832	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
34833	//   "NEXT_HOP_CANNOT_IP_FORWARD"
34834	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
34835	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
34836	//   "NEXT_HOP_NOT_RUNNING"
34837	//   "NOT_CRITICAL_ERROR"
34838	//   "NO_RESULTS_ON_PAGE"
34839	//   "PARTIAL_SUCCESS"
34840	//   "REQUIRED_TOS_AGREEMENT"
34841	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
34842	//   "RESOURCE_NOT_DELETED"
34843	//   "SCHEMA_VALIDATION_IGNORED"
34844	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
34845	//   "UNDECLARED_PROPERTIES"
34846	//   "UNREACHABLE"
34847	Code string `json:"code,omitempty"`
34848
34849	// Data: [Output Only] Metadata about this warning in key: value format.
34850	// For example:
34851	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
34852	Data []*RouterAggregatedListWarningData `json:"data,omitempty"`
34853
34854	// Message: [Output Only] A human-readable description of the warning
34855	// code.
34856	Message string `json:"message,omitempty"`
34857
34858	// ForceSendFields is a list of field names (e.g. "Code") to
34859	// unconditionally include in API requests. By default, fields with
34860	// empty values are omitted from API requests. However, any non-pointer,
34861	// non-interface field appearing in ForceSendFields will be sent to the
34862	// server regardless of whether the field is empty or not. This may be
34863	// used to include empty fields in Patch requests.
34864	ForceSendFields []string `json:"-"`
34865
34866	// NullFields is a list of field names (e.g. "Code") to include in API
34867	// requests with the JSON null value. By default, fields with empty
34868	// values are omitted from API requests. However, any field with an
34869	// empty value appearing in NullFields will be sent to the server as
34870	// null. It is an error if a field in this list has a non-empty value.
34871	// This may be used to include null fields in Patch requests.
34872	NullFields []string `json:"-"`
34873}
34874
34875func (s *RouterAggregatedListWarning) MarshalJSON() ([]byte, error) {
34876	type NoMethod RouterAggregatedListWarning
34877	raw := NoMethod(*s)
34878	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34879}
34880
34881type RouterAggregatedListWarningData struct {
34882	// Key: [Output Only] A key that provides more detail on the warning
34883	// being returned. For example, for warnings where there are no results
34884	// in a list request for a particular zone, this key might be scope and
34885	// the key value might be the zone name. Other examples might be a key
34886	// indicating a deprecated resource and a suggested replacement, or a
34887	// warning about invalid network settings (for example, if an instance
34888	// attempts to perform IP forwarding but is not enabled for IP
34889	// forwarding).
34890	Key string `json:"key,omitempty"`
34891
34892	// Value: [Output Only] A warning data value corresponding to the key.
34893	Value string `json:"value,omitempty"`
34894
34895	// ForceSendFields is a list of field names (e.g. "Key") to
34896	// unconditionally include in API requests. By default, fields with
34897	// empty values are omitted from API requests. However, any non-pointer,
34898	// non-interface field appearing in ForceSendFields will be sent to the
34899	// server regardless of whether the field is empty or not. This may be
34900	// used to include empty fields in Patch requests.
34901	ForceSendFields []string `json:"-"`
34902
34903	// NullFields is a list of field names (e.g. "Key") to include in API
34904	// requests with the JSON null value. By default, fields with empty
34905	// values are omitted from API requests. However, any field with an
34906	// empty value appearing in NullFields will be sent to the server as
34907	// null. It is an error if a field in this list has a non-empty value.
34908	// This may be used to include null fields in Patch requests.
34909	NullFields []string `json:"-"`
34910}
34911
34912func (s *RouterAggregatedListWarningData) MarshalJSON() ([]byte, error) {
34913	type NoMethod RouterAggregatedListWarningData
34914	raw := NoMethod(*s)
34915	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34916}
34917
34918type RouterBgp struct {
34919	// AdvertiseMode: User-specified flag to indicate which mode to use for
34920	// advertisement. The options are DEFAULT or CUSTOM.
34921	//
34922	// Possible values:
34923	//   "CUSTOM"
34924	//   "DEFAULT"
34925	AdvertiseMode string `json:"advertiseMode,omitempty"`
34926
34927	// AdvertisedGroups: User-specified list of prefix groups to advertise
34928	// in custom mode. This field can only be populated if advertise_mode is
34929	// CUSTOM and is advertised to all peers of the router. These groups
34930	// will be advertised in addition to any specified prefixes. Leave this
34931	// field blank to advertise no custom groups.
34932	//
34933	// Possible values:
34934	//   "ALL_SUBNETS"
34935	AdvertisedGroups []string `json:"advertisedGroups,omitempty"`
34936
34937	// AdvertisedIpRanges: User-specified list of individual IP ranges to
34938	// advertise in custom mode. This field can only be populated if
34939	// advertise_mode is CUSTOM and is advertised to all peers of the
34940	// router. These IP ranges will be advertised in addition to any
34941	// specified groups. Leave this field blank to advertise no custom IP
34942	// ranges.
34943	AdvertisedIpRanges []*RouterAdvertisedIpRange `json:"advertisedIpRanges,omitempty"`
34944
34945	// Asn: Local BGP Autonomous System Number (ASN). Must be an RFC6996
34946	// private ASN, either 16-bit or 32-bit. The value will be fixed for
34947	// this router resource. All VPN tunnels that link to this router will
34948	// have the same local ASN.
34949	Asn int64 `json:"asn,omitempty"`
34950
34951	// KeepaliveInterval: The interval in seconds between BGP keepalive
34952	// messages that are sent to the peer.
34953	// Hold time is three times the interval at which keepalive messages are
34954	// sent, and the hold time is the maximum number of seconds allowed to
34955	// elapse between successive keepalive messages that BGP receives from a
34956	// peer.
34957	// BGP will use the smaller of either the local hold time value or the
34958	// peer's hold time value as the hold time for the BGP connection
34959	// between the two peers.
34960	// If set, this value must be between 20 and 60. The default is 20.
34961	KeepaliveInterval int64 `json:"keepaliveInterval,omitempty"`
34962
34963	// ForceSendFields is a list of field names (e.g. "AdvertiseMode") to
34964	// unconditionally include in API requests. By default, fields with
34965	// empty values are omitted from API requests. However, any non-pointer,
34966	// non-interface field appearing in ForceSendFields will be sent to the
34967	// server regardless of whether the field is empty or not. This may be
34968	// used to include empty fields in Patch requests.
34969	ForceSendFields []string `json:"-"`
34970
34971	// NullFields is a list of field names (e.g. "AdvertiseMode") to include
34972	// in API requests with the JSON null value. By default, fields with
34973	// empty values are omitted from API requests. However, any field with
34974	// an empty value appearing in NullFields will be sent to the server as
34975	// null. It is an error if a field in this list has a non-empty value.
34976	// This may be used to include null fields in Patch requests.
34977	NullFields []string `json:"-"`
34978}
34979
34980func (s *RouterBgp) MarshalJSON() ([]byte, error) {
34981	type NoMethod RouterBgp
34982	raw := NoMethod(*s)
34983	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34984}
34985
34986type RouterBgpPeer struct {
34987	// AdvertiseMode: User-specified flag to indicate which mode to use for
34988	// advertisement.
34989	//
34990	// Possible values:
34991	//   "CUSTOM"
34992	//   "DEFAULT"
34993	AdvertiseMode string `json:"advertiseMode,omitempty"`
34994
34995	// AdvertisedGroups: User-specified list of prefix groups to advertise
34996	// in custom mode, which can take one of the following options:
34997	// - ALL_SUBNETS: Advertises all available subnets, including peer VPC
34998	// subnets.
34999	// - ALL_VPC_SUBNETS: Advertises the router's own VPC subnets. Note that
35000	// this field can only be populated if advertise_mode is CUSTOM and
35001	// overrides the list defined for the router (in the "bgp" message).
35002	// These groups are advertised in addition to any specified prefixes.
35003	// Leave this field blank to advertise no custom groups.
35004	//
35005	// Possible values:
35006	//   "ALL_SUBNETS"
35007	AdvertisedGroups []string `json:"advertisedGroups,omitempty"`
35008
35009	// AdvertisedIpRanges: User-specified list of individual IP ranges to
35010	// advertise in custom mode. This field can only be populated if
35011	// advertise_mode is CUSTOM and overrides the list defined for the
35012	// router (in the "bgp" message). These IP ranges are advertised in
35013	// addition to any specified groups. Leave this field blank to advertise
35014	// no custom IP ranges.
35015	AdvertisedIpRanges []*RouterAdvertisedIpRange `json:"advertisedIpRanges,omitempty"`
35016
35017	// AdvertisedRoutePriority: The priority of routes advertised to this
35018	// BGP peer. Where there is more than one matching route of maximum
35019	// length, the routes with the lowest priority value win.
35020	AdvertisedRoutePriority int64 `json:"advertisedRoutePriority,omitempty"`
35021
35022	// Enable: The status of the BGP peer connection.
35023	// If set to FALSE, any active session with the peer is terminated and
35024	// all associated routing information is removed. If set to TRUE, the
35025	// peer connection can be established with routing information. The
35026	// default is TRUE.
35027	//
35028	// Possible values:
35029	//   "FALSE"
35030	//   "TRUE"
35031	Enable string `json:"enable,omitempty"`
35032
35033	// InterfaceName: Name of the interface the BGP peer is associated with.
35034	InterfaceName string `json:"interfaceName,omitempty"`
35035
35036	// IpAddress: IP address of the interface inside Google Cloud Platform.
35037	// Only IPv4 is supported.
35038	IpAddress string `json:"ipAddress,omitempty"`
35039
35040	// ManagementType: [Output Only] The resource that configures and
35041	// manages this BGP peer.
35042	// - MANAGED_BY_USER is the default value and can be managed by you or
35043	// other users
35044	// - MANAGED_BY_ATTACHMENT is a BGP peer that is configured and managed
35045	// by Cloud Interconnect, specifically by an InterconnectAttachment of
35046	// type PARTNER. Google automatically creates, updates, and deletes this
35047	// type of BGP peer when the PARTNER InterconnectAttachment is created,
35048	// updated, or deleted.
35049	//
35050	// Possible values:
35051	//   "MANAGED_BY_ATTACHMENT"
35052	//   "MANAGED_BY_USER"
35053	ManagementType string `json:"managementType,omitempty"`
35054
35055	// Name: Name of this BGP peer. The name must be 1-63 characters long,
35056	// and comply with RFC1035. Specifically, the name must be 1-63
35057	// characters long and match the regular expression
35058	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
35059	// a lowercase letter, and all following characters must be a dash,
35060	// lowercase letter, or digit, except the last character, which cannot
35061	// be a dash.
35062	Name string `json:"name,omitempty"`
35063
35064	// PeerAsn: Peer BGP Autonomous System Number (ASN). Each BGP interface
35065	// may use a different value.
35066	PeerAsn int64 `json:"peerAsn,omitempty"`
35067
35068	// PeerIpAddress: IP address of the BGP interface outside Google Cloud
35069	// Platform. Only IPv4 is supported.
35070	PeerIpAddress string `json:"peerIpAddress,omitempty"`
35071
35072	// ForceSendFields is a list of field names (e.g. "AdvertiseMode") to
35073	// unconditionally include in API requests. By default, fields with
35074	// empty values are omitted from API requests. However, any non-pointer,
35075	// non-interface field appearing in ForceSendFields will be sent to the
35076	// server regardless of whether the field is empty or not. This may be
35077	// used to include empty fields in Patch requests.
35078	ForceSendFields []string `json:"-"`
35079
35080	// NullFields is a list of field names (e.g. "AdvertiseMode") to include
35081	// in API requests with the JSON null value. By default, fields with
35082	// empty values are omitted from API requests. However, any field with
35083	// an empty value appearing in NullFields will be sent to the server as
35084	// null. It is an error if a field in this list has a non-empty value.
35085	// This may be used to include null fields in Patch requests.
35086	NullFields []string `json:"-"`
35087}
35088
35089func (s *RouterBgpPeer) MarshalJSON() ([]byte, error) {
35090	type NoMethod RouterBgpPeer
35091	raw := NoMethod(*s)
35092	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35093}
35094
35095type RouterInterface struct {
35096	// IpRange: IP address and range of the interface. The IP range must be
35097	// in the RFC3927 link-local IP address space. The value must be a
35098	// CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not
35099	// truncate the address as it represents the IP address of the
35100	// interface.
35101	IpRange string `json:"ipRange,omitempty"`
35102
35103	// LinkedInterconnectAttachment: URI of the linked Interconnect
35104	// attachment. It must be in the same region as the router. Each
35105	// interface can have one linked resource, which can be a VPN tunnel, an
35106	// Interconnect attachment, or a virtual machine instance.
35107	LinkedInterconnectAttachment string `json:"linkedInterconnectAttachment,omitempty"`
35108
35109	// LinkedVpnTunnel: URI of the linked VPN tunnel, which must be in the
35110	// same region as the router. Each interface can have one linked
35111	// resource, which can be a VPN tunnel, an Interconnect attachment, or a
35112	// virtual machine instance.
35113	LinkedVpnTunnel string `json:"linkedVpnTunnel,omitempty"`
35114
35115	// ManagementType: [Output Only] The resource that configures and
35116	// manages this interface.
35117	// - MANAGED_BY_USER is the default value and can be managed directly by
35118	// users.
35119	// - MANAGED_BY_ATTACHMENT is an interface that is configured and
35120	// managed by Cloud Interconnect, specifically, by an
35121	// InterconnectAttachment of type PARTNER. Google automatically creates,
35122	// updates, and deletes this type of interface when the PARTNER
35123	// InterconnectAttachment is created, updated, or deleted.
35124	//
35125	// Possible values:
35126	//   "MANAGED_BY_ATTACHMENT"
35127	//   "MANAGED_BY_USER"
35128	ManagementType string `json:"managementType,omitempty"`
35129
35130	// Name: Name of this interface entry. The name must be 1-63 characters
35131	// long, and comply with RFC1035. Specifically, the name must be 1-63
35132	// characters long and match the regular expression
35133	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
35134	// a lowercase letter, and all following characters must be a dash,
35135	// lowercase letter, or digit, except the last character, which cannot
35136	// be a dash.
35137	Name string `json:"name,omitempty"`
35138
35139	// ForceSendFields is a list of field names (e.g. "IpRange") to
35140	// unconditionally include in API requests. By default, fields with
35141	// empty values are omitted from API requests. However, any non-pointer,
35142	// non-interface field appearing in ForceSendFields will be sent to the
35143	// server regardless of whether the field is empty or not. This may be
35144	// used to include empty fields in Patch requests.
35145	ForceSendFields []string `json:"-"`
35146
35147	// NullFields is a list of field names (e.g. "IpRange") to include in
35148	// API requests with the JSON null value. By default, fields with empty
35149	// values are omitted from API requests. However, any field with an
35150	// empty value appearing in NullFields will be sent to the server as
35151	// null. It is an error if a field in this list has a non-empty value.
35152	// This may be used to include null fields in Patch requests.
35153	NullFields []string `json:"-"`
35154}
35155
35156func (s *RouterInterface) MarshalJSON() ([]byte, error) {
35157	type NoMethod RouterInterface
35158	raw := NoMethod(*s)
35159	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35160}
35161
35162// RouterList: Contains a list of Router resources.
35163type RouterList struct {
35164	// Id: [Output Only] Unique identifier for the resource; defined by the
35165	// server.
35166	Id string `json:"id,omitempty"`
35167
35168	// Items: A list of Router resources.
35169	Items []*Router `json:"items,omitempty"`
35170
35171	// Kind: [Output Only] Type of resource. Always compute#router for
35172	// routers.
35173	Kind string `json:"kind,omitempty"`
35174
35175	// NextPageToken: [Output Only] This token allows you to get the next
35176	// page of results for list requests. If the number of results is larger
35177	// than maxResults, use the nextPageToken as a value for the query
35178	// parameter pageToken in the next list request. Subsequent list
35179	// requests will have their own nextPageToken to continue paging through
35180	// the results.
35181	NextPageToken string `json:"nextPageToken,omitempty"`
35182
35183	// SelfLink: [Output Only] Server-defined URL for this resource.
35184	SelfLink string `json:"selfLink,omitempty"`
35185
35186	// Warning: [Output Only] Informational warning message.
35187	Warning *RouterListWarning `json:"warning,omitempty"`
35188
35189	// ServerResponse contains the HTTP response code and headers from the
35190	// server.
35191	googleapi.ServerResponse `json:"-"`
35192
35193	// ForceSendFields is a list of field names (e.g. "Id") to
35194	// unconditionally include in API requests. By default, fields with
35195	// empty values are omitted from API requests. However, any non-pointer,
35196	// non-interface field appearing in ForceSendFields will be sent to the
35197	// server regardless of whether the field is empty or not. This may be
35198	// used to include empty fields in Patch requests.
35199	ForceSendFields []string `json:"-"`
35200
35201	// NullFields is a list of field names (e.g. "Id") to include in API
35202	// requests with the JSON null value. By default, fields with empty
35203	// values are omitted from API requests. However, any field with an
35204	// empty value appearing in NullFields will be sent to the server as
35205	// null. It is an error if a field in this list has a non-empty value.
35206	// This may be used to include null fields in Patch requests.
35207	NullFields []string `json:"-"`
35208}
35209
35210func (s *RouterList) MarshalJSON() ([]byte, error) {
35211	type NoMethod RouterList
35212	raw := NoMethod(*s)
35213	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35214}
35215
35216// RouterListWarning: [Output Only] Informational warning message.
35217type RouterListWarning struct {
35218	// Code: [Output Only] A warning code, if applicable. For example,
35219	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
35220	// the response.
35221	//
35222	// Possible values:
35223	//   "CLEANUP_FAILED"
35224	//   "DEPRECATED_RESOURCE_USED"
35225	//   "DEPRECATED_TYPE_USED"
35226	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
35227	//   "EXPERIMENTAL_TYPE_USED"
35228	//   "EXTERNAL_API_WARNING"
35229	//   "FIELD_VALUE_OVERRIDEN"
35230	//   "INJECTED_KERNELS_DEPRECATED"
35231	//   "LARGE_DEPLOYMENT_WARNING"
35232	//   "MISSING_TYPE_DEPENDENCY"
35233	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
35234	//   "NEXT_HOP_CANNOT_IP_FORWARD"
35235	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
35236	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
35237	//   "NEXT_HOP_NOT_RUNNING"
35238	//   "NOT_CRITICAL_ERROR"
35239	//   "NO_RESULTS_ON_PAGE"
35240	//   "PARTIAL_SUCCESS"
35241	//   "REQUIRED_TOS_AGREEMENT"
35242	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
35243	//   "RESOURCE_NOT_DELETED"
35244	//   "SCHEMA_VALIDATION_IGNORED"
35245	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
35246	//   "UNDECLARED_PROPERTIES"
35247	//   "UNREACHABLE"
35248	Code string `json:"code,omitempty"`
35249
35250	// Data: [Output Only] Metadata about this warning in key: value format.
35251	// For example:
35252	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
35253	Data []*RouterListWarningData `json:"data,omitempty"`
35254
35255	// Message: [Output Only] A human-readable description of the warning
35256	// code.
35257	Message string `json:"message,omitempty"`
35258
35259	// ForceSendFields is a list of field names (e.g. "Code") to
35260	// unconditionally include in API requests. By default, fields with
35261	// empty values are omitted from API requests. However, any non-pointer,
35262	// non-interface field appearing in ForceSendFields will be sent to the
35263	// server regardless of whether the field is empty or not. This may be
35264	// used to include empty fields in Patch requests.
35265	ForceSendFields []string `json:"-"`
35266
35267	// NullFields is a list of field names (e.g. "Code") to include in API
35268	// requests with the JSON null value. By default, fields with empty
35269	// values are omitted from API requests. However, any field with an
35270	// empty value appearing in NullFields will be sent to the server as
35271	// null. It is an error if a field in this list has a non-empty value.
35272	// This may be used to include null fields in Patch requests.
35273	NullFields []string `json:"-"`
35274}
35275
35276func (s *RouterListWarning) MarshalJSON() ([]byte, error) {
35277	type NoMethod RouterListWarning
35278	raw := NoMethod(*s)
35279	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35280}
35281
35282type RouterListWarningData struct {
35283	// Key: [Output Only] A key that provides more detail on the warning
35284	// being returned. For example, for warnings where there are no results
35285	// in a list request for a particular zone, this key might be scope and
35286	// the key value might be the zone name. Other examples might be a key
35287	// indicating a deprecated resource and a suggested replacement, or a
35288	// warning about invalid network settings (for example, if an instance
35289	// attempts to perform IP forwarding but is not enabled for IP
35290	// forwarding).
35291	Key string `json:"key,omitempty"`
35292
35293	// Value: [Output Only] A warning data value corresponding to the key.
35294	Value string `json:"value,omitempty"`
35295
35296	// ForceSendFields is a list of field names (e.g. "Key") to
35297	// unconditionally include in API requests. By default, fields with
35298	// empty values are omitted from API requests. However, any non-pointer,
35299	// non-interface field appearing in ForceSendFields will be sent to the
35300	// server regardless of whether the field is empty or not. This may be
35301	// used to include empty fields in Patch requests.
35302	ForceSendFields []string `json:"-"`
35303
35304	// NullFields is a list of field names (e.g. "Key") to include in API
35305	// requests with the JSON null value. By default, fields with empty
35306	// values are omitted from API requests. However, any field with an
35307	// empty value appearing in NullFields will be sent to the server as
35308	// null. It is an error if a field in this list has a non-empty value.
35309	// This may be used to include null fields in Patch requests.
35310	NullFields []string `json:"-"`
35311}
35312
35313func (s *RouterListWarningData) MarshalJSON() ([]byte, error) {
35314	type NoMethod RouterListWarningData
35315	raw := NoMethod(*s)
35316	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35317}
35318
35319// RouterNat: Represents a Nat resource. It enables the VMs within the
35320// specified subnetworks to access Internet without external IP
35321// addresses. It specifies a list of subnetworks (and the ranges within)
35322// that want to use NAT. Customers can also provide the external IPs
35323// that would be used for NAT. GCP would auto-allocate ephemeral IPs if
35324// no external IPs are provided.
35325type RouterNat struct {
35326	// DrainNatIps: A list of URLs of the IP resources to be drained. These
35327	// IPs must be valid static external IPs that have been assigned to the
35328	// NAT. These IPs should be used for updating/patching a NAT only.
35329	DrainNatIps []string `json:"drainNatIps,omitempty"`
35330
35331	EnableEndpointIndependentMapping bool `json:"enableEndpointIndependentMapping,omitempty"`
35332
35333	// IcmpIdleTimeoutSec: Timeout (in seconds) for ICMP connections.
35334	// Defaults to 30s if not set.
35335	IcmpIdleTimeoutSec int64 `json:"icmpIdleTimeoutSec,omitempty"`
35336
35337	// LogConfig: Configure logging on this NAT.
35338	LogConfig *RouterNatLogConfig `json:"logConfig,omitempty"`
35339
35340	// MinPortsPerVm: Minimum number of ports allocated to a VM from this
35341	// NAT config. If not set, a default number of ports is allocated to a
35342	// VM. This is rounded up to the nearest power of 2. For example, if the
35343	// value of this field is 50, at least 64 ports are allocated to a VM.
35344	MinPortsPerVm int64 `json:"minPortsPerVm,omitempty"`
35345
35346	// Name: Unique name of this Nat service. The name must be 1-63
35347	// characters long and comply with RFC1035.
35348	Name string `json:"name,omitempty"`
35349
35350	// NatIpAllocateOption: Specify the NatIpAllocateOption, which can take
35351	// one of the following values:
35352	// - MANUAL_ONLY: Uses only Nat IP addresses provided by customers. When
35353	// there are not enough specified Nat IPs, the Nat service fails for new
35354	// VMs.
35355	// - AUTO_ONLY: Nat IPs are allocated by Google Cloud Platform;
35356	// customers can't specify any Nat IPs. When choosing AUTO_ONLY, then
35357	// nat_ip should be empty.
35358	//
35359	// Possible values:
35360	//   "AUTO_ONLY"
35361	//   "MANUAL_ONLY"
35362	NatIpAllocateOption string `json:"natIpAllocateOption,omitempty"`
35363
35364	// NatIps: A list of URLs of the IP resources used for this Nat service.
35365	// These IP addresses must be valid static external IP addresses
35366	// assigned to the project.
35367	NatIps []string `json:"natIps,omitempty"`
35368
35369	// SourceSubnetworkIpRangesToNat: Specify the Nat option, which can take
35370	// one of the following values:
35371	// - ALL_SUBNETWORKS_ALL_IP_RANGES: All of the IP ranges in every
35372	// Subnetwork are allowed to Nat.
35373	// - ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES: All of the primary IP ranges
35374	// in every Subnetwork are allowed to Nat.
35375	// - LIST_OF_SUBNETWORKS: A list of Subnetworks are allowed to Nat
35376	// (specified in the field subnetwork below) The default is
35377	// SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED. Note that if this
35378	// field contains ALL_SUBNETWORKS_ALL_IP_RANGES or
35379	// ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, then there should not be any
35380	// other Router.Nat section in any Router for this network in this
35381	// region.
35382	//
35383	// Possible values:
35384	//   "ALL_SUBNETWORKS_ALL_IP_RANGES"
35385	//   "ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES"
35386	//   "LIST_OF_SUBNETWORKS"
35387	SourceSubnetworkIpRangesToNat string `json:"sourceSubnetworkIpRangesToNat,omitempty"`
35388
35389	// Subnetworks: A list of Subnetwork resources whose traffic should be
35390	// translated by NAT Gateway. It is used only when LIST_OF_SUBNETWORKS
35391	// is selected for the SubnetworkIpRangeToNatOption above.
35392	Subnetworks []*RouterNatSubnetworkToNat `json:"subnetworks,omitempty"`
35393
35394	// TcpEstablishedIdleTimeoutSec: Timeout (in seconds) for TCP
35395	// established connections. Defaults to 1200s if not set.
35396	TcpEstablishedIdleTimeoutSec int64 `json:"tcpEstablishedIdleTimeoutSec,omitempty"`
35397
35398	// TcpTransitoryIdleTimeoutSec: Timeout (in seconds) for TCP transitory
35399	// connections. Defaults to 30s if not set.
35400	TcpTransitoryIdleTimeoutSec int64 `json:"tcpTransitoryIdleTimeoutSec,omitempty"`
35401
35402	// UdpIdleTimeoutSec: Timeout (in seconds) for UDP connections. Defaults
35403	// to 30s if not set.
35404	UdpIdleTimeoutSec int64 `json:"udpIdleTimeoutSec,omitempty"`
35405
35406	// ForceSendFields is a list of field names (e.g. "DrainNatIps") to
35407	// unconditionally include in API requests. By default, fields with
35408	// empty values are omitted from API requests. However, any non-pointer,
35409	// non-interface field appearing in ForceSendFields will be sent to the
35410	// server regardless of whether the field is empty or not. This may be
35411	// used to include empty fields in Patch requests.
35412	ForceSendFields []string `json:"-"`
35413
35414	// NullFields is a list of field names (e.g. "DrainNatIps") to include
35415	// in API requests with the JSON null value. By default, fields with
35416	// empty values are omitted from API requests. However, any field with
35417	// an empty value appearing in NullFields will be sent to the server as
35418	// null. It is an error if a field in this list has a non-empty value.
35419	// This may be used to include null fields in Patch requests.
35420	NullFields []string `json:"-"`
35421}
35422
35423func (s *RouterNat) MarshalJSON() ([]byte, error) {
35424	type NoMethod RouterNat
35425	raw := NoMethod(*s)
35426	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35427}
35428
35429// RouterNatLogConfig: Configuration of logging on a NAT.
35430type RouterNatLogConfig struct {
35431	// Enable: Indicates whether or not to export logs. This is false by
35432	// default.
35433	Enable bool `json:"enable,omitempty"`
35434
35435	// Filter: Specify the desired filtering of logs on this NAT. If
35436	// unspecified, logs are exported for all connections handled by this
35437	// NAT. This option can take one of the following values:
35438	// - ERRORS_ONLY: Export logs only for connection failures.
35439	// - TRANSLATIONS_ONLY: Export logs only for successful connections.
35440	// - ALL: Export logs for all connections, successful and unsuccessful.
35441	//
35442	// Possible values:
35443	//   "ALL"
35444	//   "ERRORS_ONLY"
35445	//   "TRANSLATIONS_ONLY"
35446	Filter string `json:"filter,omitempty"`
35447
35448	// ForceSendFields is a list of field names (e.g. "Enable") to
35449	// unconditionally include in API requests. By default, fields with
35450	// empty values are omitted from API requests. However, any non-pointer,
35451	// non-interface field appearing in ForceSendFields will be sent to the
35452	// server regardless of whether the field is empty or not. This may be
35453	// used to include empty fields in Patch requests.
35454	ForceSendFields []string `json:"-"`
35455
35456	// NullFields is a list of field names (e.g. "Enable") to include in API
35457	// requests with the JSON null value. By default, fields with empty
35458	// values are omitted from API requests. However, any field with an
35459	// empty value appearing in NullFields will be sent to the server as
35460	// null. It is an error if a field in this list has a non-empty value.
35461	// This may be used to include null fields in Patch requests.
35462	NullFields []string `json:"-"`
35463}
35464
35465func (s *RouterNatLogConfig) MarshalJSON() ([]byte, error) {
35466	type NoMethod RouterNatLogConfig
35467	raw := NoMethod(*s)
35468	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35469}
35470
35471// RouterNatSubnetworkToNat: Defines the IP ranges that want to use NAT
35472// for a subnetwork.
35473type RouterNatSubnetworkToNat struct {
35474	// Name: URL for the subnetwork resource that will use NAT.
35475	Name string `json:"name,omitempty"`
35476
35477	// SecondaryIpRangeNames: A list of the secondary ranges of the
35478	// Subnetwork that are allowed to use NAT. This can be populated only if
35479	// "LIST_OF_SECONDARY_IP_RANGES" is one of the values in
35480	// source_ip_ranges_to_nat.
35481	SecondaryIpRangeNames []string `json:"secondaryIpRangeNames,omitempty"`
35482
35483	// SourceIpRangesToNat: Specify the options for NAT ranges in the
35484	// Subnetwork. All options of a single value are valid except
35485	// NAT_IP_RANGE_OPTION_UNSPECIFIED. The only valid option with multiple
35486	// values is: ["PRIMARY_IP_RANGE", "LIST_OF_SECONDARY_IP_RANGES"]
35487	// Default: [ALL_IP_RANGES]
35488	//
35489	// Possible values:
35490	//   "ALL_IP_RANGES"
35491	//   "LIST_OF_SECONDARY_IP_RANGES"
35492	//   "PRIMARY_IP_RANGE"
35493	SourceIpRangesToNat []string `json:"sourceIpRangesToNat,omitempty"`
35494
35495	// ForceSendFields is a list of field names (e.g. "Name") to
35496	// unconditionally include in API requests. By default, fields with
35497	// empty values are omitted from API requests. However, any non-pointer,
35498	// non-interface field appearing in ForceSendFields will be sent to the
35499	// server regardless of whether the field is empty or not. This may be
35500	// used to include empty fields in Patch requests.
35501	ForceSendFields []string `json:"-"`
35502
35503	// NullFields is a list of field names (e.g. "Name") to include in API
35504	// requests with the JSON null value. By default, fields with empty
35505	// values are omitted from API requests. However, any field with an
35506	// empty value appearing in NullFields will be sent to the server as
35507	// null. It is an error if a field in this list has a non-empty value.
35508	// This may be used to include null fields in Patch requests.
35509	NullFields []string `json:"-"`
35510}
35511
35512func (s *RouterNatSubnetworkToNat) MarshalJSON() ([]byte, error) {
35513	type NoMethod RouterNatSubnetworkToNat
35514	raw := NoMethod(*s)
35515	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35516}
35517
35518type RouterStatus struct {
35519	// BestRoutes: Best routes for this router's network.
35520	BestRoutes []*Route `json:"bestRoutes,omitempty"`
35521
35522	// BestRoutesForRouter: Best routes learned by this router.
35523	BestRoutesForRouter []*Route `json:"bestRoutesForRouter,omitempty"`
35524
35525	BgpPeerStatus []*RouterStatusBgpPeerStatus `json:"bgpPeerStatus,omitempty"`
35526
35527	NatStatus []*RouterStatusNatStatus `json:"natStatus,omitempty"`
35528
35529	// Network: URI of the network to which this router belongs.
35530	Network string `json:"network,omitempty"`
35531
35532	// ForceSendFields is a list of field names (e.g. "BestRoutes") to
35533	// unconditionally include in API requests. By default, fields with
35534	// empty values are omitted from API requests. However, any non-pointer,
35535	// non-interface field appearing in ForceSendFields will be sent to the
35536	// server regardless of whether the field is empty or not. This may be
35537	// used to include empty fields in Patch requests.
35538	ForceSendFields []string `json:"-"`
35539
35540	// NullFields is a list of field names (e.g. "BestRoutes") to include in
35541	// API requests with the JSON null value. By default, fields with empty
35542	// values are omitted from API requests. However, any field with an
35543	// empty value appearing in NullFields will be sent to the server as
35544	// null. It is an error if a field in this list has a non-empty value.
35545	// This may be used to include null fields in Patch requests.
35546	NullFields []string `json:"-"`
35547}
35548
35549func (s *RouterStatus) MarshalJSON() ([]byte, error) {
35550	type NoMethod RouterStatus
35551	raw := NoMethod(*s)
35552	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35553}
35554
35555type RouterStatusBgpPeerStatus struct {
35556	// AdvertisedRoutes: Routes that were advertised to the remote BGP peer
35557	AdvertisedRoutes []*Route `json:"advertisedRoutes,omitempty"`
35558
35559	// IpAddress: IP address of the local BGP interface.
35560	IpAddress string `json:"ipAddress,omitempty"`
35561
35562	// LinkedVpnTunnel: URL of the VPN tunnel that this BGP peer controls.
35563	LinkedVpnTunnel string `json:"linkedVpnTunnel,omitempty"`
35564
35565	// Name: Name of this BGP peer. Unique within the Routers resource.
35566	Name string `json:"name,omitempty"`
35567
35568	// NumLearnedRoutes: Number of routes learned from the remote BGP Peer.
35569	NumLearnedRoutes int64 `json:"numLearnedRoutes,omitempty"`
35570
35571	// PeerIpAddress: IP address of the remote BGP interface.
35572	PeerIpAddress string `json:"peerIpAddress,omitempty"`
35573
35574	// State: BGP state as specified in RFC1771.
35575	State string `json:"state,omitempty"`
35576
35577	// Status: Status of the BGP peer: {UP, DOWN}
35578	//
35579	// Possible values:
35580	//   "DOWN"
35581	//   "UNKNOWN"
35582	//   "UP"
35583	Status string `json:"status,omitempty"`
35584
35585	// Uptime: Time this session has been up. Format: 14 years, 51 weeks, 6
35586	// days, 23 hours, 59 minutes, 59 seconds
35587	Uptime string `json:"uptime,omitempty"`
35588
35589	// UptimeSeconds: Time this session has been up, in seconds. Format: 145
35590	UptimeSeconds string `json:"uptimeSeconds,omitempty"`
35591
35592	// ForceSendFields is a list of field names (e.g. "AdvertisedRoutes") to
35593	// unconditionally include in API requests. By default, fields with
35594	// empty values are omitted from API requests. However, any non-pointer,
35595	// non-interface field appearing in ForceSendFields will be sent to the
35596	// server regardless of whether the field is empty or not. This may be
35597	// used to include empty fields in Patch requests.
35598	ForceSendFields []string `json:"-"`
35599
35600	// NullFields is a list of field names (e.g. "AdvertisedRoutes") to
35601	// include in API requests with the JSON null value. By default, fields
35602	// with empty values are omitted from API requests. However, any field
35603	// with an empty value appearing in NullFields will be sent to the
35604	// server as null. It is an error if a field in this list has a
35605	// non-empty value. This may be used to include null fields in Patch
35606	// requests.
35607	NullFields []string `json:"-"`
35608}
35609
35610func (s *RouterStatusBgpPeerStatus) MarshalJSON() ([]byte, error) {
35611	type NoMethod RouterStatusBgpPeerStatus
35612	raw := NoMethod(*s)
35613	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35614}
35615
35616// RouterStatusNatStatus: Status of a NAT contained in this router.
35617type RouterStatusNatStatus struct {
35618	// AutoAllocatedNatIps: A list of IPs auto-allocated for NAT. Example:
35619	// ["1.1.1.1", "129.2.16.89"]
35620	AutoAllocatedNatIps []string `json:"autoAllocatedNatIps,omitempty"`
35621
35622	// DrainAutoAllocatedNatIps: A list of IPs auto-allocated for NAT that
35623	// are in drain mode. Example: ["1.1.1.1", "179.12.26.133"].
35624	DrainAutoAllocatedNatIps []string `json:"drainAutoAllocatedNatIps,omitempty"`
35625
35626	// DrainUserAllocatedNatIps: A list of IPs user-allocated for NAT that
35627	// are in drain mode. Example: ["1.1.1.1", "179.12.26.133"].
35628	DrainUserAllocatedNatIps []string `json:"drainUserAllocatedNatIps,omitempty"`
35629
35630	// MinExtraNatIpsNeeded: The number of extra IPs to allocate. This will
35631	// be greater than 0 only if user-specified IPs are NOT enough to allow
35632	// all configured VMs to use NAT. This value is meaningful only when
35633	// auto-allocation of NAT IPs is *not* used.
35634	MinExtraNatIpsNeeded int64 `json:"minExtraNatIpsNeeded,omitempty"`
35635
35636	// Name: Unique name of this NAT.
35637	Name string `json:"name,omitempty"`
35638
35639	// NumVmEndpointsWithNatMappings: Number of VM endpoints (i.e., Nics)
35640	// that can use NAT.
35641	NumVmEndpointsWithNatMappings int64 `json:"numVmEndpointsWithNatMappings,omitempty"`
35642
35643	// UserAllocatedNatIpResources: A list of fully qualified URLs of
35644	// reserved IP address resources.
35645	UserAllocatedNatIpResources []string `json:"userAllocatedNatIpResources,omitempty"`
35646
35647	// UserAllocatedNatIps: A list of IPs user-allocated for NAT. They will
35648	// be raw IP strings like "179.12.26.133".
35649	UserAllocatedNatIps []string `json:"userAllocatedNatIps,omitempty"`
35650
35651	// ForceSendFields is a list of field names (e.g. "AutoAllocatedNatIps")
35652	// to unconditionally include in API requests. By default, fields with
35653	// empty values are omitted from API requests. However, any non-pointer,
35654	// non-interface field appearing in ForceSendFields will be sent to the
35655	// server regardless of whether the field is empty or not. This may be
35656	// used to include empty fields in Patch requests.
35657	ForceSendFields []string `json:"-"`
35658
35659	// NullFields is a list of field names (e.g. "AutoAllocatedNatIps") to
35660	// include in API requests with the JSON null value. By default, fields
35661	// with empty values are omitted from API requests. However, any field
35662	// with an empty value appearing in NullFields will be sent to the
35663	// server as null. It is an error if a field in this list has a
35664	// non-empty value. This may be used to include null fields in Patch
35665	// requests.
35666	NullFields []string `json:"-"`
35667}
35668
35669func (s *RouterStatusNatStatus) MarshalJSON() ([]byte, error) {
35670	type NoMethod RouterStatusNatStatus
35671	raw := NoMethod(*s)
35672	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35673}
35674
35675type RouterStatusResponse struct {
35676	// Kind: Type of resource.
35677	Kind string `json:"kind,omitempty"`
35678
35679	Result *RouterStatus `json:"result,omitempty"`
35680
35681	// ServerResponse contains the HTTP response code and headers from the
35682	// server.
35683	googleapi.ServerResponse `json:"-"`
35684
35685	// ForceSendFields is a list of field names (e.g. "Kind") to
35686	// unconditionally include in API requests. By default, fields with
35687	// empty values are omitted from API requests. However, any non-pointer,
35688	// non-interface field appearing in ForceSendFields will be sent to the
35689	// server regardless of whether the field is empty or not. This may be
35690	// used to include empty fields in Patch requests.
35691	ForceSendFields []string `json:"-"`
35692
35693	// NullFields is a list of field names (e.g. "Kind") to include in API
35694	// requests with the JSON null value. By default, fields with empty
35695	// values are omitted from API requests. However, any field with an
35696	// empty value appearing in NullFields will be sent to the server as
35697	// null. It is an error if a field in this list has a non-empty value.
35698	// This may be used to include null fields in Patch requests.
35699	NullFields []string `json:"-"`
35700}
35701
35702func (s *RouterStatusResponse) MarshalJSON() ([]byte, error) {
35703	type NoMethod RouterStatusResponse
35704	raw := NoMethod(*s)
35705	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35706}
35707
35708type RoutersPreviewResponse struct {
35709	// Resource: Preview of given router.
35710	Resource *Router `json:"resource,omitempty"`
35711
35712	// ServerResponse contains the HTTP response code and headers from the
35713	// server.
35714	googleapi.ServerResponse `json:"-"`
35715
35716	// ForceSendFields is a list of field names (e.g. "Resource") to
35717	// unconditionally include in API requests. By default, fields with
35718	// empty values are omitted from API requests. However, any non-pointer,
35719	// non-interface field appearing in ForceSendFields will be sent to the
35720	// server regardless of whether the field is empty or not. This may be
35721	// used to include empty fields in Patch requests.
35722	ForceSendFields []string `json:"-"`
35723
35724	// NullFields is a list of field names (e.g. "Resource") to include in
35725	// API requests with the JSON null value. By default, fields with empty
35726	// values are omitted from API requests. However, any field with an
35727	// empty value appearing in NullFields will be sent to the server as
35728	// null. It is an error if a field in this list has a non-empty value.
35729	// This may be used to include null fields in Patch requests.
35730	NullFields []string `json:"-"`
35731}
35732
35733func (s *RoutersPreviewResponse) MarshalJSON() ([]byte, error) {
35734	type NoMethod RoutersPreviewResponse
35735	raw := NoMethod(*s)
35736	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35737}
35738
35739type RoutersScopedList struct {
35740	// Routers: A list of routers contained in this scope.
35741	Routers []*Router `json:"routers,omitempty"`
35742
35743	// Warning: Informational warning which replaces the list of routers
35744	// when the list is empty.
35745	Warning *RoutersScopedListWarning `json:"warning,omitempty"`
35746
35747	// ForceSendFields is a list of field names (e.g. "Routers") to
35748	// unconditionally include in API requests. By default, fields with
35749	// empty values are omitted from API requests. However, any non-pointer,
35750	// non-interface field appearing in ForceSendFields will be sent to the
35751	// server regardless of whether the field is empty or not. This may be
35752	// used to include empty fields in Patch requests.
35753	ForceSendFields []string `json:"-"`
35754
35755	// NullFields is a list of field names (e.g. "Routers") to include in
35756	// API requests with the JSON null value. By default, fields with empty
35757	// values are omitted from API requests. However, any field with an
35758	// empty value appearing in NullFields will be sent to the server as
35759	// null. It is an error if a field in this list has a non-empty value.
35760	// This may be used to include null fields in Patch requests.
35761	NullFields []string `json:"-"`
35762}
35763
35764func (s *RoutersScopedList) MarshalJSON() ([]byte, error) {
35765	type NoMethod RoutersScopedList
35766	raw := NoMethod(*s)
35767	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35768}
35769
35770// RoutersScopedListWarning: Informational warning which replaces the
35771// list of routers when the list is empty.
35772type RoutersScopedListWarning struct {
35773	// Code: [Output Only] A warning code, if applicable. For example,
35774	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
35775	// the response.
35776	//
35777	// Possible values:
35778	//   "CLEANUP_FAILED"
35779	//   "DEPRECATED_RESOURCE_USED"
35780	//   "DEPRECATED_TYPE_USED"
35781	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
35782	//   "EXPERIMENTAL_TYPE_USED"
35783	//   "EXTERNAL_API_WARNING"
35784	//   "FIELD_VALUE_OVERRIDEN"
35785	//   "INJECTED_KERNELS_DEPRECATED"
35786	//   "LARGE_DEPLOYMENT_WARNING"
35787	//   "MISSING_TYPE_DEPENDENCY"
35788	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
35789	//   "NEXT_HOP_CANNOT_IP_FORWARD"
35790	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
35791	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
35792	//   "NEXT_HOP_NOT_RUNNING"
35793	//   "NOT_CRITICAL_ERROR"
35794	//   "NO_RESULTS_ON_PAGE"
35795	//   "PARTIAL_SUCCESS"
35796	//   "REQUIRED_TOS_AGREEMENT"
35797	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
35798	//   "RESOURCE_NOT_DELETED"
35799	//   "SCHEMA_VALIDATION_IGNORED"
35800	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
35801	//   "UNDECLARED_PROPERTIES"
35802	//   "UNREACHABLE"
35803	Code string `json:"code,omitempty"`
35804
35805	// Data: [Output Only] Metadata about this warning in key: value format.
35806	// For example:
35807	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
35808	Data []*RoutersScopedListWarningData `json:"data,omitempty"`
35809
35810	// Message: [Output Only] A human-readable description of the warning
35811	// code.
35812	Message string `json:"message,omitempty"`
35813
35814	// ForceSendFields is a list of field names (e.g. "Code") to
35815	// unconditionally include in API requests. By default, fields with
35816	// empty values are omitted from API requests. However, any non-pointer,
35817	// non-interface field appearing in ForceSendFields will be sent to the
35818	// server regardless of whether the field is empty or not. This may be
35819	// used to include empty fields in Patch requests.
35820	ForceSendFields []string `json:"-"`
35821
35822	// NullFields is a list of field names (e.g. "Code") to include in API
35823	// requests with the JSON null value. By default, fields with empty
35824	// values are omitted from API requests. However, any field with an
35825	// empty value appearing in NullFields will be sent to the server as
35826	// null. It is an error if a field in this list has a non-empty value.
35827	// This may be used to include null fields in Patch requests.
35828	NullFields []string `json:"-"`
35829}
35830
35831func (s *RoutersScopedListWarning) MarshalJSON() ([]byte, error) {
35832	type NoMethod RoutersScopedListWarning
35833	raw := NoMethod(*s)
35834	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35835}
35836
35837type RoutersScopedListWarningData struct {
35838	// Key: [Output Only] A key that provides more detail on the warning
35839	// being returned. For example, for warnings where there are no results
35840	// in a list request for a particular zone, this key might be scope and
35841	// the key value might be the zone name. Other examples might be a key
35842	// indicating a deprecated resource and a suggested replacement, or a
35843	// warning about invalid network settings (for example, if an instance
35844	// attempts to perform IP forwarding but is not enabled for IP
35845	// forwarding).
35846	Key string `json:"key,omitempty"`
35847
35848	// Value: [Output Only] A warning data value corresponding to the key.
35849	Value string `json:"value,omitempty"`
35850
35851	// ForceSendFields is a list of field names (e.g. "Key") to
35852	// unconditionally include in API requests. By default, fields with
35853	// empty values are omitted from API requests. However, any non-pointer,
35854	// non-interface field appearing in ForceSendFields will be sent to the
35855	// server regardless of whether the field is empty or not. This may be
35856	// used to include empty fields in Patch requests.
35857	ForceSendFields []string `json:"-"`
35858
35859	// NullFields is a list of field names (e.g. "Key") to include in API
35860	// requests with the JSON null value. By default, fields with empty
35861	// values are omitted from API requests. However, any field with an
35862	// empty value appearing in NullFields will be sent to the server as
35863	// null. It is an error if a field in this list has a non-empty value.
35864	// This may be used to include null fields in Patch requests.
35865	NullFields []string `json:"-"`
35866}
35867
35868func (s *RoutersScopedListWarningData) MarshalJSON() ([]byte, error) {
35869	type NoMethod RoutersScopedListWarningData
35870	raw := NoMethod(*s)
35871	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35872}
35873
35874// Rule: A rule to be applied in a Policy.
35875type Rule struct {
35876	// Action: Required
35877	//
35878	// Possible values:
35879	//   "ALLOW"
35880	//   "ALLOW_WITH_LOG"
35881	//   "DENY"
35882	//   "DENY_WITH_LOG"
35883	//   "LOG"
35884	//   "NO_ACTION"
35885	Action string `json:"action,omitempty"`
35886
35887	// Conditions: Additional restrictions that must be met. All conditions
35888	// must pass for the rule to match.
35889	Conditions []*Condition `json:"conditions,omitempty"`
35890
35891	// Description: Human-readable description of the rule.
35892	Description string `json:"description,omitempty"`
35893
35894	// Ins: If one or more 'in' clauses are specified, the rule matches if
35895	// the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
35896	Ins []string `json:"ins,omitempty"`
35897
35898	// LogConfigs: The config returned to callers of
35899	// tech.iam.IAM.CheckPolicy for any entries that match the LOG action.
35900	LogConfigs []*LogConfig `json:"logConfigs,omitempty"`
35901
35902	// NotIns: If one or more 'not_in' clauses are specified, the rule
35903	// matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the
35904	// entries.
35905	NotIns []string `json:"notIns,omitempty"`
35906
35907	// Permissions: A permission is a string of form '..' (e.g.,
35908	// 'storage.buckets.list'). A value of '*' matches all permissions, and
35909	// a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
35910	Permissions []string `json:"permissions,omitempty"`
35911
35912	// ForceSendFields is a list of field names (e.g. "Action") to
35913	// unconditionally include in API requests. By default, fields with
35914	// empty values are omitted from API requests. However, any non-pointer,
35915	// non-interface field appearing in ForceSendFields will be sent to the
35916	// server regardless of whether the field is empty or not. This may be
35917	// used to include empty fields in Patch requests.
35918	ForceSendFields []string `json:"-"`
35919
35920	// NullFields is a list of field names (e.g. "Action") to include in API
35921	// requests with the JSON null value. By default, fields with empty
35922	// values are omitted from API requests. However, any field with an
35923	// empty value appearing in NullFields will be sent to the server as
35924	// null. It is an error if a field in this list has a non-empty value.
35925	// This may be used to include null fields in Patch requests.
35926	NullFields []string `json:"-"`
35927}
35928
35929func (s *Rule) MarshalJSON() ([]byte, error) {
35930	type NoMethod Rule
35931	raw := NoMethod(*s)
35932	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35933}
35934
35935type SSLHealthCheck struct {
35936	// Port: The TCP port number for the health check request. The default
35937	// value is 443. Valid values are 1 through 65535.
35938	Port int64 `json:"port,omitempty"`
35939
35940	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
35941	// both port and port_name are defined, port takes precedence.
35942	PortName string `json:"portName,omitempty"`
35943
35944	// PortSpecification: Specifies how port is selected for health
35945	// checking, can be one of following values:
35946	// USE_FIXED_PORT: The port number in port is used for health
35947	// checking.
35948	// USE_NAMED_PORT: The portName is used for health
35949	// checking.
35950	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
35951	// each network endpoint is used for health checking. For other
35952	// backends, the port or named port specified in the Backend Service is
35953	// used for health checking.
35954	//
35955	//
35956	// If not specified, SSL health check follows behavior specified in port
35957	// and portName fields.
35958	//
35959	// Possible values:
35960	//   "USE_FIXED_PORT"
35961	//   "USE_NAMED_PORT"
35962	//   "USE_SERVING_PORT"
35963	PortSpecification string `json:"portSpecification,omitempty"`
35964
35965	// ProxyHeader: Specifies the type of proxy header to append before
35966	// sending data to the backend, either NONE or PROXY_V1. The default is
35967	// NONE.
35968	//
35969	// Possible values:
35970	//   "NONE"
35971	//   "PROXY_V1"
35972	ProxyHeader string `json:"proxyHeader,omitempty"`
35973
35974	// Request: The application data to send once the SSL connection has
35975	// been established (default value is empty). If both request and
35976	// response are empty, the connection establishment alone will indicate
35977	// health. The request data can only be ASCII.
35978	Request string `json:"request,omitempty"`
35979
35980	// Response: The bytes to match against the beginning of the response
35981	// data. If left empty (the default value), any response will indicate
35982	// health. The response data can only be ASCII.
35983	Response string `json:"response,omitempty"`
35984
35985	// ForceSendFields is a list of field names (e.g. "Port") to
35986	// unconditionally include in API requests. By default, fields with
35987	// empty values are omitted from API requests. However, any non-pointer,
35988	// non-interface field appearing in ForceSendFields will be sent to the
35989	// server regardless of whether the field is empty or not. This may be
35990	// used to include empty fields in Patch requests.
35991	ForceSendFields []string `json:"-"`
35992
35993	// NullFields is a list of field names (e.g. "Port") to include in API
35994	// requests with the JSON null value. By default, fields with empty
35995	// values are omitted from API requests. However, any field with an
35996	// empty value appearing in NullFields will be sent to the server as
35997	// null. It is an error if a field in this list has a non-empty value.
35998	// This may be used to include null fields in Patch requests.
35999	NullFields []string `json:"-"`
36000}
36001
36002func (s *SSLHealthCheck) MarshalJSON() ([]byte, error) {
36003	type NoMethod SSLHealthCheck
36004	raw := NoMethod(*s)
36005	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36006}
36007
36008type ScalingScheduleStatus struct {
36009	// LastStartTime: [Output Only] The last time the scaling schedule
36010	// became active. Note: this is a timestamp when a schedule actually
36011	// became active, not when it was planned to do so. The timestamp is in
36012	// RFC3339 text format.
36013	LastStartTime string `json:"lastStartTime,omitempty"`
36014
36015	// NextStartTime: [Output Only] The next time the scaling schedule is to
36016	// become active. Note: this is a timestamp when a schedule is planned
36017	// to run, but the actual time might be slightly different. The
36018	// timestamp is in RFC3339 text format.
36019	NextStartTime string `json:"nextStartTime,omitempty"`
36020
36021	// State: [Output Only] The current state of a scaling schedule.
36022	//
36023	// Possible values:
36024	//   "ACTIVE"
36025	//   "DISABLED"
36026	//   "OBSOLETE"
36027	//   "READY"
36028	State string `json:"state,omitempty"`
36029
36030	// ForceSendFields is a list of field names (e.g. "LastStartTime") to
36031	// unconditionally include in API requests. By default, fields with
36032	// empty values are omitted from API requests. However, any non-pointer,
36033	// non-interface field appearing in ForceSendFields will be sent to the
36034	// server regardless of whether the field is empty or not. This may be
36035	// used to include empty fields in Patch requests.
36036	ForceSendFields []string `json:"-"`
36037
36038	// NullFields is a list of field names (e.g. "LastStartTime") to include
36039	// in API requests with the JSON null value. By default, fields with
36040	// empty values are omitted from API requests. However, any field with
36041	// an empty value appearing in NullFields will be sent to the server as
36042	// null. It is an error if a field in this list has a non-empty value.
36043	// This may be used to include null fields in Patch requests.
36044	NullFields []string `json:"-"`
36045}
36046
36047func (s *ScalingScheduleStatus) MarshalJSON() ([]byte, error) {
36048	type NoMethod ScalingScheduleStatus
36049	raw := NoMethod(*s)
36050	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36051}
36052
36053// Scheduling: Sets the scheduling options for an Instance. NextID: 21
36054type Scheduling struct {
36055	// AutomaticRestart: Specifies whether the instance should be
36056	// automatically restarted if it is terminated by Compute Engine (not
36057	// terminated by a user). You can only set the automatic restart option
36058	// for standard instances. Preemptible instances cannot be automatically
36059	// restarted.
36060	//
36061	// By default, this is set to true so an instance is automatically
36062	// restarted if it is terminated by Compute Engine.
36063	AutomaticRestart *bool `json:"automaticRestart,omitempty"`
36064
36065	// LocationHint: An opaque location hint used to place the instance
36066	// close to other resources. This field is for use by internal tools
36067	// that use the public API.
36068	LocationHint string `json:"locationHint,omitempty"`
36069
36070	// MinNodeCpus: The minimum number of virtual CPUs this instance will
36071	// consume when running on a sole-tenant node.
36072	MinNodeCpus int64 `json:"minNodeCpus,omitempty"`
36073
36074	// NodeAffinities: A set of node affinity and anti-affinity
36075	// configurations. Refer to Configuring node affinity for more
36076	// information. Overrides reservationAffinity.
36077	NodeAffinities []*SchedulingNodeAffinity `json:"nodeAffinities,omitempty"`
36078
36079	// OnHostMaintenance: Defines the maintenance behavior for this
36080	// instance. For standard instances, the default behavior is MIGRATE.
36081	// For preemptible instances, the default and only possible behavior is
36082	// TERMINATE. For more information, see Setting Instance Scheduling
36083	// Options.
36084	//
36085	// Possible values:
36086	//   "MIGRATE"
36087	//   "TERMINATE"
36088	OnHostMaintenance string `json:"onHostMaintenance,omitempty"`
36089
36090	// Preemptible: Defines whether the instance is preemptible. This can
36091	// only be set during instance creation or while the instance is stopped
36092	// and therefore, in a `TERMINATED` state. See Instance Life Cycle for
36093	// more information on the possible instance states.
36094	Preemptible bool `json:"preemptible,omitempty"`
36095
36096	// ForceSendFields is a list of field names (e.g. "AutomaticRestart") to
36097	// unconditionally include in API requests. By default, fields with
36098	// empty values are omitted from API requests. However, any non-pointer,
36099	// non-interface field appearing in ForceSendFields will be sent to the
36100	// server regardless of whether the field is empty or not. This may be
36101	// used to include empty fields in Patch requests.
36102	ForceSendFields []string `json:"-"`
36103
36104	// NullFields is a list of field names (e.g. "AutomaticRestart") to
36105	// include in API requests with the JSON null value. By default, fields
36106	// with empty values are omitted from API requests. However, any field
36107	// with an empty value appearing in NullFields will be sent to the
36108	// server as null. It is an error if a field in this list has a
36109	// non-empty value. This may be used to include null fields in Patch
36110	// requests.
36111	NullFields []string `json:"-"`
36112}
36113
36114func (s *Scheduling) MarshalJSON() ([]byte, error) {
36115	type NoMethod Scheduling
36116	raw := NoMethod(*s)
36117	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36118}
36119
36120// SchedulingNodeAffinity: Node Affinity: the configuration of desired
36121// nodes onto which this Instance could be scheduled.
36122type SchedulingNodeAffinity struct {
36123	// Key: Corresponds to the label key of Node resource.
36124	Key string `json:"key,omitempty"`
36125
36126	// Operator: Defines the operation of node selection. Valid operators
36127	// are IN for affinity and NOT_IN for anti-affinity.
36128	//
36129	// Possible values:
36130	//   "IN"
36131	//   "NOT_IN"
36132	//   "OPERATOR_UNSPECIFIED"
36133	Operator string `json:"operator,omitempty"`
36134
36135	// Values: Corresponds to the label values of Node resource.
36136	Values []string `json:"values,omitempty"`
36137
36138	// ForceSendFields is a list of field names (e.g. "Key") to
36139	// unconditionally include in API requests. By default, fields with
36140	// empty values are omitted from API requests. However, any non-pointer,
36141	// non-interface field appearing in ForceSendFields will be sent to the
36142	// server regardless of whether the field is empty or not. This may be
36143	// used to include empty fields in Patch requests.
36144	ForceSendFields []string `json:"-"`
36145
36146	// NullFields is a list of field names (e.g. "Key") to include in API
36147	// requests with the JSON null value. By default, fields with empty
36148	// values are omitted from API requests. However, any field with an
36149	// empty value appearing in NullFields will be sent to the server as
36150	// null. It is an error if a field in this list has a non-empty value.
36151	// This may be used to include null fields in Patch requests.
36152	NullFields []string `json:"-"`
36153}
36154
36155func (s *SchedulingNodeAffinity) MarshalJSON() ([]byte, error) {
36156	type NoMethod SchedulingNodeAffinity
36157	raw := NoMethod(*s)
36158	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36159}
36160
36161// Screenshot: An instance's screenshot.
36162type Screenshot struct {
36163	// Contents: [Output Only] The Base64-encoded screenshot data.
36164	Contents string `json:"contents,omitempty"`
36165
36166	// Kind: [Output Only] Type of the resource. Always compute#screenshot
36167	// for the screenshots.
36168	Kind string `json:"kind,omitempty"`
36169
36170	// ServerResponse contains the HTTP response code and headers from the
36171	// server.
36172	googleapi.ServerResponse `json:"-"`
36173
36174	// ForceSendFields is a list of field names (e.g. "Contents") to
36175	// unconditionally include in API requests. By default, fields with
36176	// empty values are omitted from API requests. However, any non-pointer,
36177	// non-interface field appearing in ForceSendFields will be sent to the
36178	// server regardless of whether the field is empty or not. This may be
36179	// used to include empty fields in Patch requests.
36180	ForceSendFields []string `json:"-"`
36181
36182	// NullFields is a list of field names (e.g. "Contents") to include in
36183	// API requests with the JSON null value. By default, fields with empty
36184	// values are omitted from API requests. However, any field with an
36185	// empty value appearing in NullFields will be sent to the server as
36186	// null. It is an error if a field in this list has a non-empty value.
36187	// This may be used to include null fields in Patch requests.
36188	NullFields []string `json:"-"`
36189}
36190
36191func (s *Screenshot) MarshalJSON() ([]byte, error) {
36192	type NoMethod Screenshot
36193	raw := NoMethod(*s)
36194	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36195}
36196
36197type SecurityPoliciesListPreconfiguredExpressionSetsResponse struct {
36198	PreconfiguredExpressionSets *SecurityPoliciesWafConfig `json:"preconfiguredExpressionSets,omitempty"`
36199
36200	// ServerResponse contains the HTTP response code and headers from the
36201	// server.
36202	googleapi.ServerResponse `json:"-"`
36203
36204	// ForceSendFields is a list of field names (e.g.
36205	// "PreconfiguredExpressionSets") to unconditionally include in API
36206	// requests. By default, fields with empty values are omitted from API
36207	// requests. However, any non-pointer, non-interface field appearing in
36208	// ForceSendFields will be sent to the server regardless of whether the
36209	// field is empty or not. This may be used to include empty fields in
36210	// Patch requests.
36211	ForceSendFields []string `json:"-"`
36212
36213	// NullFields is a list of field names (e.g.
36214	// "PreconfiguredExpressionSets") to include in API requests with the
36215	// JSON null value. By default, fields with empty values are omitted
36216	// from API requests. However, any field with an empty value appearing
36217	// in NullFields will be sent to the server as null. It is an error if a
36218	// field in this list has a non-empty value. This may be used to include
36219	// null fields in Patch requests.
36220	NullFields []string `json:"-"`
36221}
36222
36223func (s *SecurityPoliciesListPreconfiguredExpressionSetsResponse) MarshalJSON() ([]byte, error) {
36224	type NoMethod SecurityPoliciesListPreconfiguredExpressionSetsResponse
36225	raw := NoMethod(*s)
36226	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36227}
36228
36229type SecurityPoliciesWafConfig struct {
36230	WafRules *PreconfiguredWafSet `json:"wafRules,omitempty"`
36231
36232	// ForceSendFields is a list of field names (e.g. "WafRules") to
36233	// unconditionally include in API requests. By default, fields with
36234	// empty values are omitted from API requests. However, any non-pointer,
36235	// non-interface field appearing in ForceSendFields will be sent to the
36236	// server regardless of whether the field is empty or not. This may be
36237	// used to include empty fields in Patch requests.
36238	ForceSendFields []string `json:"-"`
36239
36240	// NullFields is a list of field names (e.g. "WafRules") to include in
36241	// API requests with the JSON null value. By default, fields with empty
36242	// values are omitted from API requests. However, any field with an
36243	// empty value appearing in NullFields will be sent to the server as
36244	// null. It is an error if a field in this list has a non-empty value.
36245	// This may be used to include null fields in Patch requests.
36246	NullFields []string `json:"-"`
36247}
36248
36249func (s *SecurityPoliciesWafConfig) MarshalJSON() ([]byte, error) {
36250	type NoMethod SecurityPoliciesWafConfig
36251	raw := NoMethod(*s)
36252	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36253}
36254
36255// SecurityPolicy: Represents a Google Cloud Armor security policy
36256// resource.
36257//
36258// Only external backend services that use load balancers can reference
36259// a security policy. For more information, see  Google Cloud Armor
36260// security policy overview. (== resource_for
36261// {$api_version}.securityPolicies ==)
36262type SecurityPolicy struct {
36263	AdvancedOptionsConfig *SecurityPolicyAdvancedOptionsConfig `json:"advancedOptionsConfig,omitempty"`
36264
36265	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
36266	// format.
36267	CreationTimestamp string `json:"creationTimestamp,omitempty"`
36268
36269	// Description: An optional description of this resource. Provide this
36270	// property when you create the resource.
36271	Description string `json:"description,omitempty"`
36272
36273	// Fingerprint: Specifies a fingerprint for this resource, which is
36274	// essentially a hash of the metadata's contents and used for optimistic
36275	// locking. The fingerprint is initially generated by Compute Engine and
36276	// changes after every request to modify or update metadata. You must
36277	// always provide an up-to-date fingerprint hash in order to update or
36278	// change metadata, otherwise the request will fail with error 412
36279	// conditionNotMet.
36280	//
36281	// To see the latest fingerprint, make get() request to the security
36282	// policy.
36283	Fingerprint string `json:"fingerprint,omitempty"`
36284
36285	// Id: [Output Only] The unique identifier for the resource. This
36286	// identifier is defined by the server.
36287	Id uint64 `json:"id,omitempty,string"`
36288
36289	// Kind: [Output only] Type of the resource. Always
36290	// compute#securityPolicyfor security policies
36291	Kind string `json:"kind,omitempty"`
36292
36293	// Name: Name of the resource. Provided by the client when the resource
36294	// is created. The name must be 1-63 characters long, and comply with
36295	// RFC1035. Specifically, the name must be 1-63 characters long and
36296	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
36297	// the first character must be a lowercase letter, and all following
36298	// characters must be a dash, lowercase letter, or digit, except the
36299	// last character, which cannot be a dash.
36300	Name string `json:"name,omitempty"`
36301
36302	// Rules: A list of rules that belong to this policy. There must always
36303	// be a default rule (rule with priority 2147483647 and match "*"). If
36304	// no rules are provided when creating a security policy, a default rule
36305	// with action "allow" will be added.
36306	Rules []*SecurityPolicyRule `json:"rules,omitempty"`
36307
36308	// SelfLink: [Output Only] Server-defined URL for the resource.
36309	SelfLink string `json:"selfLink,omitempty"`
36310
36311	// ServerResponse contains the HTTP response code and headers from the
36312	// server.
36313	googleapi.ServerResponse `json:"-"`
36314
36315	// ForceSendFields is a list of field names (e.g.
36316	// "AdvancedOptionsConfig") to unconditionally include in API requests.
36317	// By default, fields with empty values are omitted from API requests.
36318	// However, any non-pointer, non-interface field appearing in
36319	// ForceSendFields will be sent to the server regardless of whether the
36320	// field is empty or not. This may be used to include empty fields in
36321	// Patch requests.
36322	ForceSendFields []string `json:"-"`
36323
36324	// NullFields is a list of field names (e.g. "AdvancedOptionsConfig") to
36325	// include in API requests with the JSON null value. By default, fields
36326	// with empty values are omitted from API requests. However, any field
36327	// with an empty value appearing in NullFields will be sent to the
36328	// server as null. It is an error if a field in this list has a
36329	// non-empty value. This may be used to include null fields in Patch
36330	// requests.
36331	NullFields []string `json:"-"`
36332}
36333
36334func (s *SecurityPolicy) MarshalJSON() ([]byte, error) {
36335	type NoMethod SecurityPolicy
36336	raw := NoMethod(*s)
36337	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36338}
36339
36340type SecurityPolicyAdvancedOptionsConfig struct {
36341	// Possible values:
36342	//   "DISABLED"
36343	//   "STANDARD"
36344	JsonParsing string `json:"jsonParsing,omitempty"`
36345
36346	// Possible values:
36347	//   "NORMAL"
36348	//   "VERBOSE"
36349	LogLevel string `json:"logLevel,omitempty"`
36350
36351	// ForceSendFields is a list of field names (e.g. "JsonParsing") to
36352	// unconditionally include in API requests. By default, fields with
36353	// empty values are omitted from API requests. However, any non-pointer,
36354	// non-interface field appearing in ForceSendFields will be sent to the
36355	// server regardless of whether the field is empty or not. This may be
36356	// used to include empty fields in Patch requests.
36357	ForceSendFields []string `json:"-"`
36358
36359	// NullFields is a list of field names (e.g. "JsonParsing") to include
36360	// in API requests with the JSON null value. By default, fields with
36361	// empty values are omitted from API requests. However, any field with
36362	// an empty value appearing in NullFields will be sent to the server as
36363	// null. It is an error if a field in this list has a non-empty value.
36364	// This may be used to include null fields in Patch requests.
36365	NullFields []string `json:"-"`
36366}
36367
36368func (s *SecurityPolicyAdvancedOptionsConfig) MarshalJSON() ([]byte, error) {
36369	type NoMethod SecurityPolicyAdvancedOptionsConfig
36370	raw := NoMethod(*s)
36371	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36372}
36373
36374type SecurityPolicyList struct {
36375	// Id: [Output Only] Unique identifier for the resource; defined by the
36376	// server.
36377	Id string `json:"id,omitempty"`
36378
36379	// Items: A list of SecurityPolicy resources.
36380	Items []*SecurityPolicy `json:"items,omitempty"`
36381
36382	// Kind: [Output Only] Type of resource. Always
36383	// compute#securityPolicyList for listsof securityPolicies
36384	Kind string `json:"kind,omitempty"`
36385
36386	// NextPageToken: [Output Only] This token allows you to get the next
36387	// page of results for list requests. If the number of results is larger
36388	// than maxResults, use the nextPageToken as a value for the query
36389	// parameter pageToken in the next list request. Subsequent list
36390	// requests will have their own nextPageToken to continue paging through
36391	// the results.
36392	NextPageToken string `json:"nextPageToken,omitempty"`
36393
36394	// Warning: [Output Only] Informational warning message.
36395	Warning *SecurityPolicyListWarning `json:"warning,omitempty"`
36396
36397	// ServerResponse contains the HTTP response code and headers from the
36398	// server.
36399	googleapi.ServerResponse `json:"-"`
36400
36401	// ForceSendFields is a list of field names (e.g. "Id") to
36402	// unconditionally include in API requests. By default, fields with
36403	// empty values are omitted from API requests. However, any non-pointer,
36404	// non-interface field appearing in ForceSendFields will be sent to the
36405	// server regardless of whether the field is empty or not. This may be
36406	// used to include empty fields in Patch requests.
36407	ForceSendFields []string `json:"-"`
36408
36409	// NullFields is a list of field names (e.g. "Id") to include in API
36410	// requests with the JSON null value. By default, fields with empty
36411	// values are omitted from API requests. However, any field with an
36412	// empty value appearing in NullFields will be sent to the server as
36413	// null. It is an error if a field in this list has a non-empty value.
36414	// This may be used to include null fields in Patch requests.
36415	NullFields []string `json:"-"`
36416}
36417
36418func (s *SecurityPolicyList) MarshalJSON() ([]byte, error) {
36419	type NoMethod SecurityPolicyList
36420	raw := NoMethod(*s)
36421	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36422}
36423
36424// SecurityPolicyListWarning: [Output Only] Informational warning
36425// message.
36426type SecurityPolicyListWarning struct {
36427	// Code: [Output Only] A warning code, if applicable. For example,
36428	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
36429	// the response.
36430	//
36431	// Possible values:
36432	//   "CLEANUP_FAILED"
36433	//   "DEPRECATED_RESOURCE_USED"
36434	//   "DEPRECATED_TYPE_USED"
36435	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
36436	//   "EXPERIMENTAL_TYPE_USED"
36437	//   "EXTERNAL_API_WARNING"
36438	//   "FIELD_VALUE_OVERRIDEN"
36439	//   "INJECTED_KERNELS_DEPRECATED"
36440	//   "LARGE_DEPLOYMENT_WARNING"
36441	//   "MISSING_TYPE_DEPENDENCY"
36442	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
36443	//   "NEXT_HOP_CANNOT_IP_FORWARD"
36444	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
36445	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
36446	//   "NEXT_HOP_NOT_RUNNING"
36447	//   "NOT_CRITICAL_ERROR"
36448	//   "NO_RESULTS_ON_PAGE"
36449	//   "PARTIAL_SUCCESS"
36450	//   "REQUIRED_TOS_AGREEMENT"
36451	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
36452	//   "RESOURCE_NOT_DELETED"
36453	//   "SCHEMA_VALIDATION_IGNORED"
36454	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
36455	//   "UNDECLARED_PROPERTIES"
36456	//   "UNREACHABLE"
36457	Code string `json:"code,omitempty"`
36458
36459	// Data: [Output Only] Metadata about this warning in key: value format.
36460	// For example:
36461	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
36462	Data []*SecurityPolicyListWarningData `json:"data,omitempty"`
36463
36464	// Message: [Output Only] A human-readable description of the warning
36465	// code.
36466	Message string `json:"message,omitempty"`
36467
36468	// ForceSendFields is a list of field names (e.g. "Code") to
36469	// unconditionally include in API requests. By default, fields with
36470	// empty values are omitted from API requests. However, any non-pointer,
36471	// non-interface field appearing in ForceSendFields will be sent to the
36472	// server regardless of whether the field is empty or not. This may be
36473	// used to include empty fields in Patch requests.
36474	ForceSendFields []string `json:"-"`
36475
36476	// NullFields is a list of field names (e.g. "Code") to include in API
36477	// requests with the JSON null value. By default, fields with empty
36478	// values are omitted from API requests. However, any field with an
36479	// empty value appearing in NullFields will be sent to the server as
36480	// null. It is an error if a field in this list has a non-empty value.
36481	// This may be used to include null fields in Patch requests.
36482	NullFields []string `json:"-"`
36483}
36484
36485func (s *SecurityPolicyListWarning) MarshalJSON() ([]byte, error) {
36486	type NoMethod SecurityPolicyListWarning
36487	raw := NoMethod(*s)
36488	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36489}
36490
36491type SecurityPolicyListWarningData struct {
36492	// Key: [Output Only] A key that provides more detail on the warning
36493	// being returned. For example, for warnings where there are no results
36494	// in a list request for a particular zone, this key might be scope and
36495	// the key value might be the zone name. Other examples might be a key
36496	// indicating a deprecated resource and a suggested replacement, or a
36497	// warning about invalid network settings (for example, if an instance
36498	// attempts to perform IP forwarding but is not enabled for IP
36499	// forwarding).
36500	Key string `json:"key,omitempty"`
36501
36502	// Value: [Output Only] A warning data value corresponding to the key.
36503	Value string `json:"value,omitempty"`
36504
36505	// ForceSendFields is a list of field names (e.g. "Key") to
36506	// unconditionally include in API requests. By default, fields with
36507	// empty values are omitted from API requests. However, any non-pointer,
36508	// non-interface field appearing in ForceSendFields will be sent to the
36509	// server regardless of whether the field is empty or not. This may be
36510	// used to include empty fields in Patch requests.
36511	ForceSendFields []string `json:"-"`
36512
36513	// NullFields is a list of field names (e.g. "Key") to include in API
36514	// requests with the JSON null value. By default, fields with empty
36515	// values are omitted from API requests. However, any field with an
36516	// empty value appearing in NullFields will be sent to the server as
36517	// null. It is an error if a field in this list has a non-empty value.
36518	// This may be used to include null fields in Patch requests.
36519	NullFields []string `json:"-"`
36520}
36521
36522func (s *SecurityPolicyListWarningData) MarshalJSON() ([]byte, error) {
36523	type NoMethod SecurityPolicyListWarningData
36524	raw := NoMethod(*s)
36525	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36526}
36527
36528type SecurityPolicyReference struct {
36529	SecurityPolicy string `json:"securityPolicy,omitempty"`
36530
36531	// ForceSendFields is a list of field names (e.g. "SecurityPolicy") to
36532	// unconditionally include in API requests. By default, fields with
36533	// empty values are omitted from API requests. However, any non-pointer,
36534	// non-interface field appearing in ForceSendFields will be sent to the
36535	// server regardless of whether the field is empty or not. This may be
36536	// used to include empty fields in Patch requests.
36537	ForceSendFields []string `json:"-"`
36538
36539	// NullFields is a list of field names (e.g. "SecurityPolicy") to
36540	// include in API requests with the JSON null value. By default, fields
36541	// with empty values are omitted from API requests. However, any field
36542	// with an empty value appearing in NullFields will be sent to the
36543	// server as null. It is an error if a field in this list has a
36544	// non-empty value. This may be used to include null fields in Patch
36545	// requests.
36546	NullFields []string `json:"-"`
36547}
36548
36549func (s *SecurityPolicyReference) MarshalJSON() ([]byte, error) {
36550	type NoMethod SecurityPolicyReference
36551	raw := NoMethod(*s)
36552	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36553}
36554
36555// SecurityPolicyRule: Represents a rule that describes one or more
36556// match conditions along with the action to be taken when traffic
36557// matches this condition (allow or deny).
36558type SecurityPolicyRule struct {
36559	// Action: The Action to perform when the client connection triggers the
36560	// rule. Can currently be either "allow" or "deny()" where valid values
36561	// for status are 403, 404, and 502.
36562	Action string `json:"action,omitempty"`
36563
36564	// Description: An optional description of this resource. Provide this
36565	// property when you create the resource.
36566	Description string `json:"description,omitempty"`
36567
36568	// Kind: [Output only] Type of the resource. Always
36569	// compute#securityPolicyRule for security policy rules
36570	Kind string `json:"kind,omitempty"`
36571
36572	// Match: A match condition that incoming traffic is evaluated against.
36573	// If it evaluates to true, the corresponding 'action' is enforced.
36574	Match *SecurityPolicyRuleMatcher `json:"match,omitempty"`
36575
36576	// Preview: If set to true, the specified action is not enforced.
36577	Preview bool `json:"preview,omitempty"`
36578
36579	// Priority: An integer indicating the priority of a rule in the list.
36580	// The priority must be a positive value between 0 and 2147483647. Rules
36581	// are evaluated from highest to lowest priority where 0 is the highest
36582	// priority and 2147483647 is the lowest priority.
36583	Priority int64 `json:"priority,omitempty"`
36584
36585	// ServerResponse contains the HTTP response code and headers from the
36586	// server.
36587	googleapi.ServerResponse `json:"-"`
36588
36589	// ForceSendFields is a list of field names (e.g. "Action") to
36590	// unconditionally include in API requests. By default, fields with
36591	// empty values are omitted from API requests. However, any non-pointer,
36592	// non-interface field appearing in ForceSendFields will be sent to the
36593	// server regardless of whether the field is empty or not. This may be
36594	// used to include empty fields in Patch requests.
36595	ForceSendFields []string `json:"-"`
36596
36597	// NullFields is a list of field names (e.g. "Action") to include in API
36598	// requests with the JSON null value. By default, fields with empty
36599	// values are omitted from API requests. However, any field with an
36600	// empty value appearing in NullFields will be sent to the server as
36601	// null. It is an error if a field in this list has a non-empty value.
36602	// This may be used to include null fields in Patch requests.
36603	NullFields []string `json:"-"`
36604}
36605
36606func (s *SecurityPolicyRule) MarshalJSON() ([]byte, error) {
36607	type NoMethod SecurityPolicyRule
36608	raw := NoMethod(*s)
36609	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36610}
36611
36612// SecurityPolicyRuleMatcher: Represents a match condition that incoming
36613// traffic is evaluated against. Exactly one field must be specified.
36614type SecurityPolicyRuleMatcher struct {
36615	// Config: The configuration options available when specifying
36616	// versioned_expr. This field must be specified if versioned_expr is
36617	// specified and cannot be specified if versioned_expr is not specified.
36618	Config *SecurityPolicyRuleMatcherConfig `json:"config,omitempty"`
36619
36620	// Expr: User defined CEVAL expression. A CEVAL expression is used to
36621	// specify match criteria such as origin.ip, source.region_code and
36622	// contents in the request header.
36623	Expr *Expr `json:"expr,omitempty"`
36624
36625	// VersionedExpr: Preconfigured versioned expression. If this field is
36626	// specified, config must also be specified. Available preconfigured
36627	// expressions along with their requirements are: SRC_IPS_V1 - must
36628	// specify the corresponding src_ip_range field in config.
36629	//
36630	// Possible values:
36631	//   "SRC_IPS_V1"
36632	VersionedExpr string `json:"versionedExpr,omitempty"`
36633
36634	// ForceSendFields is a list of field names (e.g. "Config") to
36635	// unconditionally include in API requests. By default, fields with
36636	// empty values are omitted from API requests. However, any non-pointer,
36637	// non-interface field appearing in ForceSendFields will be sent to the
36638	// server regardless of whether the field is empty or not. This may be
36639	// used to include empty fields in Patch requests.
36640	ForceSendFields []string `json:"-"`
36641
36642	// NullFields is a list of field names (e.g. "Config") to include in API
36643	// requests with the JSON null value. By default, fields with empty
36644	// values are omitted from API requests. However, any field with an
36645	// empty value appearing in NullFields will be sent to the server as
36646	// null. It is an error if a field in this list has a non-empty value.
36647	// This may be used to include null fields in Patch requests.
36648	NullFields []string `json:"-"`
36649}
36650
36651func (s *SecurityPolicyRuleMatcher) MarshalJSON() ([]byte, error) {
36652	type NoMethod SecurityPolicyRuleMatcher
36653	raw := NoMethod(*s)
36654	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36655}
36656
36657type SecurityPolicyRuleMatcherConfig struct {
36658	// SrcIpRanges: CIDR IP address range. Maximum number of src_ip_ranges
36659	// allowed is 10.
36660	SrcIpRanges []string `json:"srcIpRanges,omitempty"`
36661
36662	// ForceSendFields is a list of field names (e.g. "SrcIpRanges") to
36663	// unconditionally include in API requests. By default, fields with
36664	// empty values are omitted from API requests. However, any non-pointer,
36665	// non-interface field appearing in ForceSendFields will be sent to the
36666	// server regardless of whether the field is empty or not. This may be
36667	// used to include empty fields in Patch requests.
36668	ForceSendFields []string `json:"-"`
36669
36670	// NullFields is a list of field names (e.g. "SrcIpRanges") to include
36671	// in API requests with the JSON null value. By default, fields with
36672	// empty values are omitted from API requests. However, any field with
36673	// an empty value appearing in NullFields will be sent to the server as
36674	// null. It is an error if a field in this list has a non-empty value.
36675	// This may be used to include null fields in Patch requests.
36676	NullFields []string `json:"-"`
36677}
36678
36679func (s *SecurityPolicyRuleMatcherConfig) MarshalJSON() ([]byte, error) {
36680	type NoMethod SecurityPolicyRuleMatcherConfig
36681	raw := NoMethod(*s)
36682	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36683}
36684
36685// SecuritySettings: The authentication and authorization settings for a
36686// BackendService.
36687type SecuritySettings struct {
36688	// ClientTlsPolicy: Optional. A URL referring to a
36689	// networksecurity.ClientTlsPolicy resource that describes how clients
36690	// should authenticate with this service's backends.
36691	// clientTlsPolicy only applies to a global BackendService with the
36692	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
36693	// If left blank, communications are not encrypted.
36694	// Note: This field currently has no impact.
36695	ClientTlsPolicy string `json:"clientTlsPolicy,omitempty"`
36696
36697	// SubjectAltNames: Optional. A list of Subject Alternative Names (SANs)
36698	// that the client verifies during a mutual TLS handshake with an
36699	// server/endpoint for this BackendService. When the server presents its
36700	// X.509 certificate to the client, the client inspects the
36701	// certificate's subjectAltName field. If the field contains one of the
36702	// specified values, the communication continues. Otherwise, it fails.
36703	// This additional check enables the client to verify that the server is
36704	// authorized to run the requested service.
36705	// Note that the contents of the server certificate's subjectAltName
36706	// field are configured by the Public Key Infrastructure which
36707	// provisions server identities.
36708	// Only applies to a global BackendService with loadBalancingScheme set
36709	// to INTERNAL_SELF_MANAGED. Only applies when BackendService has an
36710	// attached clientTlsPolicy with clientCertificate (mTLS mode).
36711	// Note: This field currently has no impact.
36712	SubjectAltNames []string `json:"subjectAltNames,omitempty"`
36713
36714	// ForceSendFields is a list of field names (e.g. "ClientTlsPolicy") to
36715	// unconditionally include in API requests. By default, fields with
36716	// empty values are omitted from API requests. However, any non-pointer,
36717	// non-interface field appearing in ForceSendFields will be sent to the
36718	// server regardless of whether the field is empty or not. This may be
36719	// used to include empty fields in Patch requests.
36720	ForceSendFields []string `json:"-"`
36721
36722	// NullFields is a list of field names (e.g. "ClientTlsPolicy") to
36723	// include in API requests with the JSON null value. By default, fields
36724	// with empty values are omitted from API requests. However, any field
36725	// with an empty value appearing in NullFields will be sent to the
36726	// server as null. It is an error if a field in this list has a
36727	// non-empty value. This may be used to include null fields in Patch
36728	// requests.
36729	NullFields []string `json:"-"`
36730}
36731
36732func (s *SecuritySettings) MarshalJSON() ([]byte, error) {
36733	type NoMethod SecuritySettings
36734	raw := NoMethod(*s)
36735	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36736}
36737
36738// SerialPortOutput: An instance's serial console output.
36739type SerialPortOutput struct {
36740	// Contents: [Output Only] The contents of the console output.
36741	Contents string `json:"contents,omitempty"`
36742
36743	// Kind: [Output Only] Type of the resource. Always
36744	// compute#serialPortOutput for serial port output.
36745	Kind string `json:"kind,omitempty"`
36746
36747	// Next: [Output Only] The position of the next byte of content,
36748	// regardless of whether the content exists, following the output
36749	// returned in the `contents` property. Use this value in the next
36750	// request as the start parameter.
36751	Next int64 `json:"next,omitempty,string"`
36752
36753	// SelfLink: [Output Only] Server-defined URL for this resource.
36754	SelfLink string `json:"selfLink,omitempty"`
36755
36756	// Start: The starting byte position of the output that was returned.
36757	// This should match the start parameter sent with the request. If the
36758	// serial console output exceeds the size of the buffer (1 MB), older
36759	// output is overwritten by newer content. The output start value will
36760	// indicate the byte position of the output that was returned, which
36761	// might be different than the `start` value that was specified in the
36762	// request.
36763	Start int64 `json:"start,omitempty,string"`
36764
36765	// ServerResponse contains the HTTP response code and headers from the
36766	// server.
36767	googleapi.ServerResponse `json:"-"`
36768
36769	// ForceSendFields is a list of field names (e.g. "Contents") to
36770	// unconditionally include in API requests. By default, fields with
36771	// empty values are omitted from API requests. However, any non-pointer,
36772	// non-interface field appearing in ForceSendFields will be sent to the
36773	// server regardless of whether the field is empty or not. This may be
36774	// used to include empty fields in Patch requests.
36775	ForceSendFields []string `json:"-"`
36776
36777	// NullFields is a list of field names (e.g. "Contents") to include in
36778	// API requests with the JSON null value. By default, fields with empty
36779	// values are omitted from API requests. However, any field with an
36780	// empty value appearing in NullFields will be sent to the server as
36781	// null. It is an error if a field in this list has a non-empty value.
36782	// This may be used to include null fields in Patch requests.
36783	NullFields []string `json:"-"`
36784}
36785
36786func (s *SerialPortOutput) MarshalJSON() ([]byte, error) {
36787	type NoMethod SerialPortOutput
36788	raw := NoMethod(*s)
36789	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36790}
36791
36792type ServerBinding struct {
36793	// Possible values:
36794	//   "RESTART_NODE_ON_ANY_SERVER"
36795	//   "RESTART_NODE_ON_MINIMAL_SERVERS"
36796	//   "SERVER_BINDING_TYPE_UNSPECIFIED"
36797	Type string `json:"type,omitempty"`
36798
36799	// ForceSendFields is a list of field names (e.g. "Type") to
36800	// unconditionally include in API requests. By default, fields with
36801	// empty values are omitted from API requests. However, any non-pointer,
36802	// non-interface field appearing in ForceSendFields will be sent to the
36803	// server regardless of whether the field is empty or not. This may be
36804	// used to include empty fields in Patch requests.
36805	ForceSendFields []string `json:"-"`
36806
36807	// NullFields is a list of field names (e.g. "Type") to include in API
36808	// requests with the JSON null value. By default, fields with empty
36809	// values are omitted from API requests. However, any field with an
36810	// empty value appearing in NullFields will be sent to the server as
36811	// null. It is an error if a field in this list has a non-empty value.
36812	// This may be used to include null fields in Patch requests.
36813	NullFields []string `json:"-"`
36814}
36815
36816func (s *ServerBinding) MarshalJSON() ([]byte, error) {
36817	type NoMethod ServerBinding
36818	raw := NoMethod(*s)
36819	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36820}
36821
36822// ServiceAccount: A service account.
36823type ServiceAccount struct {
36824	// Email: Email address of the service account.
36825	Email string `json:"email,omitempty"`
36826
36827	// Scopes: The list of scopes to be made available for this service
36828	// account.
36829	Scopes []string `json:"scopes,omitempty"`
36830
36831	// ForceSendFields is a list of field names (e.g. "Email") to
36832	// unconditionally include in API requests. By default, fields with
36833	// empty values are omitted from API requests. However, any non-pointer,
36834	// non-interface field appearing in ForceSendFields will be sent to the
36835	// server regardless of whether the field is empty or not. This may be
36836	// used to include empty fields in Patch requests.
36837	ForceSendFields []string `json:"-"`
36838
36839	// NullFields is a list of field names (e.g. "Email") to include in API
36840	// requests with the JSON null value. By default, fields with empty
36841	// values are omitted from API requests. However, any field with an
36842	// empty value appearing in NullFields will be sent to the server as
36843	// null. It is an error if a field in this list has a non-empty value.
36844	// This may be used to include null fields in Patch requests.
36845	NullFields []string `json:"-"`
36846}
36847
36848func (s *ServiceAccount) MarshalJSON() ([]byte, error) {
36849	type NoMethod ServiceAccount
36850	raw := NoMethod(*s)
36851	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36852}
36853
36854// ShieldedInstanceConfig: A set of Shielded Instance options.
36855type ShieldedInstanceConfig struct {
36856	// EnableIntegrityMonitoring: Defines whether the instance has integrity
36857	// monitoring enabled. Enabled by default.
36858	EnableIntegrityMonitoring bool `json:"enableIntegrityMonitoring,omitempty"`
36859
36860	// EnableSecureBoot: Defines whether the instance has Secure Boot
36861	// enabled. Disabled by default.
36862	EnableSecureBoot bool `json:"enableSecureBoot,omitempty"`
36863
36864	// EnableVtpm: Defines whether the instance has the vTPM enabled.
36865	// Enabled by default.
36866	EnableVtpm bool `json:"enableVtpm,omitempty"`
36867
36868	// ForceSendFields is a list of field names (e.g.
36869	// "EnableIntegrityMonitoring") to unconditionally include in API
36870	// requests. By default, fields with empty values are omitted from API
36871	// requests. However, any non-pointer, non-interface field appearing in
36872	// ForceSendFields will be sent to the server regardless of whether the
36873	// field is empty or not. This may be used to include empty fields in
36874	// Patch requests.
36875	ForceSendFields []string `json:"-"`
36876
36877	// NullFields is a list of field names (e.g.
36878	// "EnableIntegrityMonitoring") to include in API requests with the JSON
36879	// null value. By default, fields with empty values are omitted from API
36880	// requests. However, any field with an empty value appearing in
36881	// NullFields will be sent to the server as null. It is an error if a
36882	// field in this list has a non-empty value. This may be used to include
36883	// null fields in Patch requests.
36884	NullFields []string `json:"-"`
36885}
36886
36887func (s *ShieldedInstanceConfig) MarshalJSON() ([]byte, error) {
36888	type NoMethod ShieldedInstanceConfig
36889	raw := NoMethod(*s)
36890	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36891}
36892
36893// ShieldedInstanceIdentity: A shielded Instance identity entry.
36894type ShieldedInstanceIdentity struct {
36895	// EncryptionKey: An Endorsement Key (EK) made by the RSA 2048 algorithm
36896	// issued to the Shielded Instance's vTPM.
36897	EncryptionKey *ShieldedInstanceIdentityEntry `json:"encryptionKey,omitempty"`
36898
36899	// Kind: [Output Only] Type of the resource. Always
36900	// compute#shieldedInstanceIdentity for shielded Instance identity
36901	// entry.
36902	Kind string `json:"kind,omitempty"`
36903
36904	// SigningKey: An Attestation Key (AK) made by the RSA 2048 algorithm
36905	// issued to the Shielded Instance's vTPM.
36906	SigningKey *ShieldedInstanceIdentityEntry `json:"signingKey,omitempty"`
36907
36908	// ServerResponse contains the HTTP response code and headers from the
36909	// server.
36910	googleapi.ServerResponse `json:"-"`
36911
36912	// ForceSendFields is a list of field names (e.g. "EncryptionKey") to
36913	// unconditionally include in API requests. By default, fields with
36914	// empty values are omitted from API requests. However, any non-pointer,
36915	// non-interface field appearing in ForceSendFields will be sent to the
36916	// server regardless of whether the field is empty or not. This may be
36917	// used to include empty fields in Patch requests.
36918	ForceSendFields []string `json:"-"`
36919
36920	// NullFields is a list of field names (e.g. "EncryptionKey") to include
36921	// in API requests with the JSON null value. By default, fields with
36922	// empty values are omitted from API requests. However, any field with
36923	// an empty value appearing in NullFields will be sent to the server as
36924	// null. It is an error if a field in this list has a non-empty value.
36925	// This may be used to include null fields in Patch requests.
36926	NullFields []string `json:"-"`
36927}
36928
36929func (s *ShieldedInstanceIdentity) MarshalJSON() ([]byte, error) {
36930	type NoMethod ShieldedInstanceIdentity
36931	raw := NoMethod(*s)
36932	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36933}
36934
36935// ShieldedInstanceIdentityEntry: A Shielded Instance Identity Entry.
36936type ShieldedInstanceIdentityEntry struct {
36937	// EkCert: A PEM-encoded X.509 certificate. This field can be empty.
36938	EkCert string `json:"ekCert,omitempty"`
36939
36940	// EkPub: A PEM-encoded public key.
36941	EkPub string `json:"ekPub,omitempty"`
36942
36943	// ForceSendFields is a list of field names (e.g. "EkCert") to
36944	// unconditionally include in API requests. By default, fields with
36945	// empty values are omitted from API requests. However, any non-pointer,
36946	// non-interface field appearing in ForceSendFields will be sent to the
36947	// server regardless of whether the field is empty or not. This may be
36948	// used to include empty fields in Patch requests.
36949	ForceSendFields []string `json:"-"`
36950
36951	// NullFields is a list of field names (e.g. "EkCert") to include in API
36952	// requests with the JSON null value. By default, fields with empty
36953	// values are omitted from API requests. However, any field with an
36954	// empty value appearing in NullFields will be sent to the server as
36955	// null. It is an error if a field in this list has a non-empty value.
36956	// This may be used to include null fields in Patch requests.
36957	NullFields []string `json:"-"`
36958}
36959
36960func (s *ShieldedInstanceIdentityEntry) MarshalJSON() ([]byte, error) {
36961	type NoMethod ShieldedInstanceIdentityEntry
36962	raw := NoMethod(*s)
36963	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36964}
36965
36966// ShieldedInstanceIntegrityPolicy: The policy describes the baseline
36967// against which Instance boot integrity is measured.
36968type ShieldedInstanceIntegrityPolicy struct {
36969	// UpdateAutoLearnPolicy: Updates the integrity policy baseline using
36970	// the measurements from the VM instance's most recent boot.
36971	UpdateAutoLearnPolicy bool `json:"updateAutoLearnPolicy,omitempty"`
36972
36973	// ForceSendFields is a list of field names (e.g.
36974	// "UpdateAutoLearnPolicy") to unconditionally include in API requests.
36975	// By default, fields with empty values are omitted from API requests.
36976	// However, any non-pointer, non-interface field appearing in
36977	// ForceSendFields will be sent to the server regardless of whether the
36978	// field is empty or not. This may be used to include empty fields in
36979	// Patch requests.
36980	ForceSendFields []string `json:"-"`
36981
36982	// NullFields is a list of field names (e.g. "UpdateAutoLearnPolicy") to
36983	// include in API requests with the JSON null value. By default, fields
36984	// with empty values are omitted from API requests. However, any field
36985	// with an empty value appearing in NullFields will be sent to the
36986	// server as null. It is an error if a field in this list has a
36987	// non-empty value. This may be used to include null fields in Patch
36988	// requests.
36989	NullFields []string `json:"-"`
36990}
36991
36992func (s *ShieldedInstanceIntegrityPolicy) MarshalJSON() ([]byte, error) {
36993	type NoMethod ShieldedInstanceIntegrityPolicy
36994	raw := NoMethod(*s)
36995	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36996}
36997
36998// SignedUrlKey: Represents a customer-supplied Signing Key used by
36999// Cloud CDN Signed URLs
37000type SignedUrlKey struct {
37001	// KeyName: Name of the key. The name must be 1-63 characters long, and
37002	// comply with RFC1035. Specifically, the name must be 1-63 characters
37003	// long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`
37004	// which means the first character must be a lowercase letter, and all
37005	// following characters must be a dash, lowercase letter, or digit,
37006	// except the last character, which cannot be a dash.
37007	KeyName string `json:"keyName,omitempty"`
37008
37009	// KeyValue: 128-bit key value used for signing the URL. The key value
37010	// must be a valid RFC 4648 Section 5 base64url encoded string.
37011	KeyValue string `json:"keyValue,omitempty"`
37012
37013	// ForceSendFields is a list of field names (e.g. "KeyName") to
37014	// unconditionally include in API requests. By default, fields with
37015	// empty values are omitted from API requests. However, any non-pointer,
37016	// non-interface field appearing in ForceSendFields will be sent to the
37017	// server regardless of whether the field is empty or not. This may be
37018	// used to include empty fields in Patch requests.
37019	ForceSendFields []string `json:"-"`
37020
37021	// NullFields is a list of field names (e.g. "KeyName") to include in
37022	// API requests with the JSON null value. By default, fields with empty
37023	// values are omitted from API requests. However, any field with an
37024	// empty value appearing in NullFields will be sent to the server as
37025	// null. It is an error if a field in this list has a non-empty value.
37026	// This may be used to include null fields in Patch requests.
37027	NullFields []string `json:"-"`
37028}
37029
37030func (s *SignedUrlKey) MarshalJSON() ([]byte, error) {
37031	type NoMethod SignedUrlKey
37032	raw := NoMethod(*s)
37033	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37034}
37035
37036// Snapshot: Represents a Persistent Disk Snapshot resource.
37037//
37038// You can use snapshots to back up data on a regular interval. For more
37039// information, read  Creating persistent disk snapshots. (==
37040// resource_for {$api_version}.snapshots ==)
37041type Snapshot struct {
37042	// AutoCreated: [Output Only] Set to true if snapshots are automatically
37043	// created by applying resource policy on the target disk.
37044	AutoCreated bool `json:"autoCreated,omitempty"`
37045
37046	// ChainName: Creates the new snapshot in the snapshot chain labeled
37047	// with the specified name. The chain name must be 1-63 characters long
37048	// and comply with RFC1035. This is an uncommon option only for advanced
37049	// service owners who needs to create separate snapshot chains, for
37050	// example, for chargeback tracking. When you describe your snapshot
37051	// resource, this field is visible only if it has a non-empty value.
37052	ChainName string `json:"chainName,omitempty"`
37053
37054	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
37055	// format.
37056	CreationTimestamp string `json:"creationTimestamp,omitempty"`
37057
37058	// Description: An optional description of this resource. Provide this
37059	// property when you create the resource.
37060	Description string `json:"description,omitempty"`
37061
37062	// DiskSizeGb: [Output Only] Size of the source disk, specified in GB.
37063	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
37064
37065	// DownloadBytes: [Output Only] Number of bytes downloaded to restore a
37066	// snapshot to a disk.
37067	DownloadBytes int64 `json:"downloadBytes,omitempty,string"`
37068
37069	// Id: [Output Only] The unique identifier for the resource. This
37070	// identifier is defined by the server.
37071	Id uint64 `json:"id,omitempty,string"`
37072
37073	// Kind: [Output Only] Type of the resource. Always compute#snapshot for
37074	// Snapshot resources.
37075	Kind string `json:"kind,omitempty"`
37076
37077	// LabelFingerprint: A fingerprint for the labels being applied to this
37078	// snapshot, which is essentially a hash of the labels set used for
37079	// optimistic locking. The fingerprint is initially generated by Compute
37080	// Engine and changes after every request to modify or update labels.
37081	// You must always provide an up-to-date fingerprint hash in order to
37082	// update or change labels, otherwise the request will fail with error
37083	// 412 conditionNotMet.
37084	//
37085	// To see the latest fingerprint, make a get() request to retrieve a
37086	// snapshot.
37087	LabelFingerprint string `json:"labelFingerprint,omitempty"`
37088
37089	// Labels: Labels to apply to this snapshot. These can be later modified
37090	// by the setLabels method. Label values may be empty.
37091	Labels map[string]string `json:"labels,omitempty"`
37092
37093	// LicenseCodes: [Output Only] Integer license codes indicating which
37094	// licenses are attached to this snapshot.
37095	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
37096
37097	// Licenses: [Output Only] A list of public visible licenses that apply
37098	// to this snapshot. This can be because the original image had licenses
37099	// attached (such as a Windows image).
37100	Licenses []string `json:"licenses,omitempty"`
37101
37102	// LocationHint: An opaque location hint used to place the snapshot
37103	// close to other resources. This field is for use by internal tools
37104	// that use the public API.
37105	LocationHint string `json:"locationHint,omitempty"`
37106
37107	// Name: Name of the resource; provided by the client when the resource
37108	// is created. The name must be 1-63 characters long, and comply with
37109	// RFC1035. Specifically, the name must be 1-63 characters long and
37110	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
37111	// the first character must be a lowercase letter, and all following
37112	// characters must be a dash, lowercase letter, or digit, except the
37113	// last character, which cannot be a dash.
37114	Name string `json:"name,omitempty"`
37115
37116	// SatisfiesPzs: [Output Only] Reserved for future use.
37117	SatisfiesPzs bool `json:"satisfiesPzs,omitempty"`
37118
37119	// SelfLink: [Output Only] Server-defined URL for the resource.
37120	SelfLink string `json:"selfLink,omitempty"`
37121
37122	// SnapshotEncryptionKey: Encrypts the snapshot using a
37123	// customer-supplied encryption key.
37124	//
37125	// After you encrypt a snapshot using a customer-supplied key, you must
37126	// provide the same key if you use the snapshot later. For example, you
37127	// must provide the encryption key when you create a disk from the
37128	// encrypted snapshot in a future request.
37129	//
37130	// Customer-supplied encryption keys do not protect access to metadata
37131	// of the snapshot.
37132	//
37133	// If you do not provide an encryption key when creating the snapshot,
37134	// then the snapshot will be encrypted using an automatically generated
37135	// key and you do not need to provide a key to use the snapshot later.
37136	SnapshotEncryptionKey *CustomerEncryptionKey `json:"snapshotEncryptionKey,omitempty"`
37137
37138	// SourceDisk: The source disk used to create this snapshot.
37139	SourceDisk string `json:"sourceDisk,omitempty"`
37140
37141	// SourceDiskEncryptionKey: The customer-supplied encryption key of the
37142	// source disk. Required if the source disk is protected by a
37143	// customer-supplied encryption key.
37144	SourceDiskEncryptionKey *CustomerEncryptionKey `json:"sourceDiskEncryptionKey,omitempty"`
37145
37146	// SourceDiskId: [Output Only] The ID value of the disk used to create
37147	// this snapshot. This value may be used to determine whether the
37148	// snapshot was taken from the current or a previous instance of a given
37149	// disk name.
37150	SourceDiskId string `json:"sourceDiskId,omitempty"`
37151
37152	// Status: [Output Only] The status of the snapshot. This can be
37153	// CREATING, DELETING, FAILED, READY, or UPLOADING.
37154	//
37155	// Possible values:
37156	//   "CREATING"
37157	//   "DELETING"
37158	//   "FAILED"
37159	//   "READY"
37160	//   "UPLOADING"
37161	Status string `json:"status,omitempty"`
37162
37163	// StorageBytes: [Output Only] A size of the storage used by the
37164	// snapshot. As snapshots share storage, this number is expected to
37165	// change with snapshot creation/deletion.
37166	StorageBytes int64 `json:"storageBytes,omitempty,string"`
37167
37168	// StorageBytesStatus: [Output Only] An indicator whether storageBytes
37169	// is in a stable state or it is being adjusted as a result of shared
37170	// storage reallocation. This status can either be UPDATING, meaning the
37171	// size of the snapshot is being updated, or UP_TO_DATE, meaning the
37172	// size of the snapshot is up-to-date.
37173	//
37174	// Possible values:
37175	//   "UPDATING"
37176	//   "UP_TO_DATE"
37177	StorageBytesStatus string `json:"storageBytesStatus,omitempty"`
37178
37179	// StorageLocations: Cloud Storage bucket storage location of the
37180	// snapshot (regional or multi-regional).
37181	StorageLocations []string `json:"storageLocations,omitempty"`
37182
37183	// ServerResponse contains the HTTP response code and headers from the
37184	// server.
37185	googleapi.ServerResponse `json:"-"`
37186
37187	// ForceSendFields is a list of field names (e.g. "AutoCreated") to
37188	// unconditionally include in API requests. By default, fields with
37189	// empty values are omitted from API requests. However, any non-pointer,
37190	// non-interface field appearing in ForceSendFields will be sent to the
37191	// server regardless of whether the field is empty or not. This may be
37192	// used to include empty fields in Patch requests.
37193	ForceSendFields []string `json:"-"`
37194
37195	// NullFields is a list of field names (e.g. "AutoCreated") to include
37196	// in API requests with the JSON null value. By default, fields with
37197	// empty values are omitted from API requests. However, any field with
37198	// an empty value appearing in NullFields will be sent to the server as
37199	// null. It is an error if a field in this list has a non-empty value.
37200	// This may be used to include null fields in Patch requests.
37201	NullFields []string `json:"-"`
37202}
37203
37204func (s *Snapshot) MarshalJSON() ([]byte, error) {
37205	type NoMethod Snapshot
37206	raw := NoMethod(*s)
37207	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37208}
37209
37210// SnapshotList: Contains a list of Snapshot resources.
37211type SnapshotList struct {
37212	// Id: [Output Only] Unique identifier for the resource; defined by the
37213	// server.
37214	Id string `json:"id,omitempty"`
37215
37216	// Items: A list of Snapshot resources.
37217	Items []*Snapshot `json:"items,omitempty"`
37218
37219	// Kind: Type of resource.
37220	Kind string `json:"kind,omitempty"`
37221
37222	// NextPageToken: [Output Only] This token allows you to get the next
37223	// page of results for list requests. If the number of results is larger
37224	// than maxResults, use the nextPageToken as a value for the query
37225	// parameter pageToken in the next list request. Subsequent list
37226	// requests will have their own nextPageToken to continue paging through
37227	// the results.
37228	NextPageToken string `json:"nextPageToken,omitempty"`
37229
37230	// SelfLink: [Output Only] Server-defined URL for this resource.
37231	SelfLink string `json:"selfLink,omitempty"`
37232
37233	// Warning: [Output Only] Informational warning message.
37234	Warning *SnapshotListWarning `json:"warning,omitempty"`
37235
37236	// ServerResponse contains the HTTP response code and headers from the
37237	// server.
37238	googleapi.ServerResponse `json:"-"`
37239
37240	// ForceSendFields is a list of field names (e.g. "Id") to
37241	// unconditionally include in API requests. By default, fields with
37242	// empty values are omitted from API requests. However, any non-pointer,
37243	// non-interface field appearing in ForceSendFields will be sent to the
37244	// server regardless of whether the field is empty or not. This may be
37245	// used to include empty fields in Patch requests.
37246	ForceSendFields []string `json:"-"`
37247
37248	// NullFields is a list of field names (e.g. "Id") to include in API
37249	// requests with the JSON null value. By default, fields with empty
37250	// values are omitted from API requests. However, any field with an
37251	// empty value appearing in NullFields will be sent to the server as
37252	// null. It is an error if a field in this list has a non-empty value.
37253	// This may be used to include null fields in Patch requests.
37254	NullFields []string `json:"-"`
37255}
37256
37257func (s *SnapshotList) MarshalJSON() ([]byte, error) {
37258	type NoMethod SnapshotList
37259	raw := NoMethod(*s)
37260	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37261}
37262
37263// SnapshotListWarning: [Output Only] Informational warning message.
37264type SnapshotListWarning struct {
37265	// Code: [Output Only] A warning code, if applicable. For example,
37266	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
37267	// the response.
37268	//
37269	// Possible values:
37270	//   "CLEANUP_FAILED"
37271	//   "DEPRECATED_RESOURCE_USED"
37272	//   "DEPRECATED_TYPE_USED"
37273	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
37274	//   "EXPERIMENTAL_TYPE_USED"
37275	//   "EXTERNAL_API_WARNING"
37276	//   "FIELD_VALUE_OVERRIDEN"
37277	//   "INJECTED_KERNELS_DEPRECATED"
37278	//   "LARGE_DEPLOYMENT_WARNING"
37279	//   "MISSING_TYPE_DEPENDENCY"
37280	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
37281	//   "NEXT_HOP_CANNOT_IP_FORWARD"
37282	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
37283	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
37284	//   "NEXT_HOP_NOT_RUNNING"
37285	//   "NOT_CRITICAL_ERROR"
37286	//   "NO_RESULTS_ON_PAGE"
37287	//   "PARTIAL_SUCCESS"
37288	//   "REQUIRED_TOS_AGREEMENT"
37289	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
37290	//   "RESOURCE_NOT_DELETED"
37291	//   "SCHEMA_VALIDATION_IGNORED"
37292	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
37293	//   "UNDECLARED_PROPERTIES"
37294	//   "UNREACHABLE"
37295	Code string `json:"code,omitempty"`
37296
37297	// Data: [Output Only] Metadata about this warning in key: value format.
37298	// For example:
37299	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
37300	Data []*SnapshotListWarningData `json:"data,omitempty"`
37301
37302	// Message: [Output Only] A human-readable description of the warning
37303	// code.
37304	Message string `json:"message,omitempty"`
37305
37306	// ForceSendFields is a list of field names (e.g. "Code") to
37307	// unconditionally include in API requests. By default, fields with
37308	// empty values are omitted from API requests. However, any non-pointer,
37309	// non-interface field appearing in ForceSendFields will be sent to the
37310	// server regardless of whether the field is empty or not. This may be
37311	// used to include empty fields in Patch requests.
37312	ForceSendFields []string `json:"-"`
37313
37314	// NullFields is a list of field names (e.g. "Code") to include in API
37315	// requests with the JSON null value. By default, fields with empty
37316	// values are omitted from API requests. However, any field with an
37317	// empty value appearing in NullFields will be sent to the server as
37318	// null. It is an error if a field in this list has a non-empty value.
37319	// This may be used to include null fields in Patch requests.
37320	NullFields []string `json:"-"`
37321}
37322
37323func (s *SnapshotListWarning) MarshalJSON() ([]byte, error) {
37324	type NoMethod SnapshotListWarning
37325	raw := NoMethod(*s)
37326	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37327}
37328
37329type SnapshotListWarningData struct {
37330	// Key: [Output Only] A key that provides more detail on the warning
37331	// being returned. For example, for warnings where there are no results
37332	// in a list request for a particular zone, this key might be scope and
37333	// the key value might be the zone name. Other examples might be a key
37334	// indicating a deprecated resource and a suggested replacement, or a
37335	// warning about invalid network settings (for example, if an instance
37336	// attempts to perform IP forwarding but is not enabled for IP
37337	// forwarding).
37338	Key string `json:"key,omitempty"`
37339
37340	// Value: [Output Only] A warning data value corresponding to the key.
37341	Value string `json:"value,omitempty"`
37342
37343	// ForceSendFields is a list of field names (e.g. "Key") to
37344	// unconditionally include in API requests. By default, fields with
37345	// empty values are omitted from API requests. However, any non-pointer,
37346	// non-interface field appearing in ForceSendFields will be sent to the
37347	// server regardless of whether the field is empty or not. This may be
37348	// used to include empty fields in Patch requests.
37349	ForceSendFields []string `json:"-"`
37350
37351	// NullFields is a list of field names (e.g. "Key") to include in API
37352	// requests with the JSON null value. By default, fields with empty
37353	// values are omitted from API requests. However, any field with an
37354	// empty value appearing in NullFields will be sent to the server as
37355	// null. It is an error if a field in this list has a non-empty value.
37356	// This may be used to include null fields in Patch requests.
37357	NullFields []string `json:"-"`
37358}
37359
37360func (s *SnapshotListWarningData) MarshalJSON() ([]byte, error) {
37361	type NoMethod SnapshotListWarningData
37362	raw := NoMethod(*s)
37363	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37364}
37365
37366// SourceInstanceParams: A specification of the parameters to use when
37367// creating the instance template from a source instance.
37368type SourceInstanceParams struct {
37369	// DiskConfigs: Attached disks configuration. If not provided, defaults
37370	// are applied: For boot disk and any other R/W disks, new custom images
37371	// will be created from each disk. For read-only disks, they will be
37372	// attached in read-only mode. Local SSD disks will be created as blank
37373	// volumes.
37374	DiskConfigs []*DiskInstantiationConfig `json:"diskConfigs,omitempty"`
37375
37376	// ForceSendFields is a list of field names (e.g. "DiskConfigs") to
37377	// unconditionally include in API requests. By default, fields with
37378	// empty values are omitted from API requests. However, any non-pointer,
37379	// non-interface field appearing in ForceSendFields will be sent to the
37380	// server regardless of whether the field is empty or not. This may be
37381	// used to include empty fields in Patch requests.
37382	ForceSendFields []string `json:"-"`
37383
37384	// NullFields is a list of field names (e.g. "DiskConfigs") to include
37385	// in API requests with the JSON null value. By default, fields with
37386	// empty values are omitted from API requests. However, any field with
37387	// an empty value appearing in NullFields will be sent to the server as
37388	// null. It is an error if a field in this list has a non-empty value.
37389	// This may be used to include null fields in Patch requests.
37390	NullFields []string `json:"-"`
37391}
37392
37393func (s *SourceInstanceParams) MarshalJSON() ([]byte, error) {
37394	type NoMethod SourceInstanceParams
37395	raw := NoMethod(*s)
37396	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37397}
37398
37399// SslCertificate: Represents an SSL Certificate resource.
37400//
37401// Google Compute Engine has two SSL Certificate resources:
37402//
37403// * Global
37404// (/compute/docs/reference/rest/{$api_version}/sslCertificates) *
37405// Regional
37406// (/compute/docs/reference/rest/{$api_version}/regionSslCertificates)
37407//
37408//
37409//
37410// The sslCertificates are used by:
37411// - external HTTPS load balancers
37412// - SSL proxy load balancers
37413//
37414// The regionSslCertificates are used by internal HTTPS load
37415// balancers.
37416//
37417// Optionally, certificate file contents that you upload can contain a
37418// set of up to five PEM-encoded certificates. The API call creates an
37419// object (sslCertificate) that holds this data. You can use SSL keys
37420// and certificates to secure connections to a load balancer. For more
37421// information, read  Creating and using SSL certificates, SSL
37422// certificates quotas and limits, and  Troubleshooting SSL
37423// certificates. (== resource_for {$api_version}.sslCertificates ==) (==
37424// resource_for {$api_version}.regionSslCertificates ==)
37425type SslCertificate struct {
37426	// Certificate: A value read into memory from a certificate file. The
37427	// certificate file must be in PEM format. The certificate chain must be
37428	// no greater than 5 certs long. The chain must include at least one
37429	// intermediate cert.
37430	Certificate string `json:"certificate,omitempty"`
37431
37432	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
37433	// format.
37434	CreationTimestamp string `json:"creationTimestamp,omitempty"`
37435
37436	// Description: An optional description of this resource. Provide this
37437	// property when you create the resource.
37438	Description string `json:"description,omitempty"`
37439
37440	// ExpireTime: [Output Only] Expire time of the certificate. RFC3339
37441	ExpireTime string `json:"expireTime,omitempty"`
37442
37443	// Id: [Output Only] The unique identifier for the resource. This
37444	// identifier is defined by the server.
37445	Id uint64 `json:"id,omitempty,string"`
37446
37447	// Kind: [Output Only] Type of the resource. Always
37448	// compute#sslCertificate for SSL certificates.
37449	Kind string `json:"kind,omitempty"`
37450
37451	// Managed: Configuration and status of a managed SSL certificate.
37452	Managed *SslCertificateManagedSslCertificate `json:"managed,omitempty"`
37453
37454	// Name: Name of the resource. Provided by the client when the resource
37455	// is created. The name must be 1-63 characters long, and comply with
37456	// RFC1035. Specifically, the name must be 1-63 characters long and
37457	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
37458	// the first character must be a lowercase letter, and all following
37459	// characters must be a dash, lowercase letter, or digit, except the
37460	// last character, which cannot be a dash.
37461	Name string `json:"name,omitempty"`
37462
37463	// PrivateKey: A value read into memory from a write-only private key
37464	// file. The private key file must be in PEM format. For security, only
37465	// insert requests include this field.
37466	PrivateKey string `json:"privateKey,omitempty"`
37467
37468	// Region: [Output Only] URL of the region where the regional SSL
37469	// Certificate resides. This field is not applicable to global SSL
37470	// Certificate.
37471	Region string `json:"region,omitempty"`
37472
37473	// SelfLink: [Output only] Server-defined URL for the resource.
37474	SelfLink string `json:"selfLink,omitempty"`
37475
37476	// SelfManaged: Configuration and status of a self-managed SSL
37477	// certificate.
37478	SelfManaged *SslCertificateSelfManagedSslCertificate `json:"selfManaged,omitempty"`
37479
37480	// SubjectAlternativeNames: [Output Only] Domains associated with the
37481	// certificate via Subject Alternative Name.
37482	SubjectAlternativeNames []string `json:"subjectAlternativeNames,omitempty"`
37483
37484	// Type: (Optional) Specifies the type of SSL certificate, either
37485	// "SELF_MANAGED" or "MANAGED". If not specified, the certificate is
37486	// self-managed and the fields certificate and private_key are used.
37487	//
37488	// Possible values:
37489	//   "MANAGED"
37490	//   "SELF_MANAGED"
37491	//   "TYPE_UNSPECIFIED"
37492	Type string `json:"type,omitempty"`
37493
37494	// ServerResponse contains the HTTP response code and headers from the
37495	// server.
37496	googleapi.ServerResponse `json:"-"`
37497
37498	// ForceSendFields is a list of field names (e.g. "Certificate") to
37499	// unconditionally include in API requests. By default, fields with
37500	// empty values are omitted from API requests. However, any non-pointer,
37501	// non-interface field appearing in ForceSendFields will be sent to the
37502	// server regardless of whether the field is empty or not. This may be
37503	// used to include empty fields in Patch requests.
37504	ForceSendFields []string `json:"-"`
37505
37506	// NullFields is a list of field names (e.g. "Certificate") to include
37507	// in API requests with the JSON null value. By default, fields with
37508	// empty values are omitted from API requests. However, any field with
37509	// an empty value appearing in NullFields will be sent to the server as
37510	// null. It is an error if a field in this list has a non-empty value.
37511	// This may be used to include null fields in Patch requests.
37512	NullFields []string `json:"-"`
37513}
37514
37515func (s *SslCertificate) MarshalJSON() ([]byte, error) {
37516	type NoMethod SslCertificate
37517	raw := NoMethod(*s)
37518	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37519}
37520
37521type SslCertificateAggregatedList struct {
37522	// Id: [Output Only] Unique identifier for the resource; defined by the
37523	// server.
37524	Id string `json:"id,omitempty"`
37525
37526	// Items: A list of SslCertificatesScopedList resources.
37527	Items map[string]SslCertificatesScopedList `json:"items,omitempty"`
37528
37529	// Kind: [Output Only] Type of resource. Always
37530	// compute#sslCertificateAggregatedList for lists of SSL Certificates.
37531	Kind string `json:"kind,omitempty"`
37532
37533	// NextPageToken: [Output Only] This token allows you to get the next
37534	// page of results for list requests. If the number of results is larger
37535	// than maxResults, use the nextPageToken as a value for the query
37536	// parameter pageToken in the next list request. Subsequent list
37537	// requests will have their own nextPageToken to continue paging through
37538	// the results.
37539	NextPageToken string `json:"nextPageToken,omitempty"`
37540
37541	// SelfLink: [Output Only] Server-defined URL for this resource.
37542	SelfLink string `json:"selfLink,omitempty"`
37543
37544	// Unreachables: [Output Only] Unreachable resources.
37545	Unreachables []string `json:"unreachables,omitempty"`
37546
37547	// Warning: [Output Only] Informational warning message.
37548	Warning *SslCertificateAggregatedListWarning `json:"warning,omitempty"`
37549
37550	// ServerResponse contains the HTTP response code and headers from the
37551	// server.
37552	googleapi.ServerResponse `json:"-"`
37553
37554	// ForceSendFields is a list of field names (e.g. "Id") to
37555	// unconditionally include in API requests. By default, fields with
37556	// empty values are omitted from API requests. However, any non-pointer,
37557	// non-interface field appearing in ForceSendFields will be sent to the
37558	// server regardless of whether the field is empty or not. This may be
37559	// used to include empty fields in Patch requests.
37560	ForceSendFields []string `json:"-"`
37561
37562	// NullFields is a list of field names (e.g. "Id") to include in API
37563	// requests with the JSON null value. By default, fields with empty
37564	// values are omitted from API requests. However, any field with an
37565	// empty value appearing in NullFields will be sent to the server as
37566	// null. It is an error if a field in this list has a non-empty value.
37567	// This may be used to include null fields in Patch requests.
37568	NullFields []string `json:"-"`
37569}
37570
37571func (s *SslCertificateAggregatedList) MarshalJSON() ([]byte, error) {
37572	type NoMethod SslCertificateAggregatedList
37573	raw := NoMethod(*s)
37574	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37575}
37576
37577// SslCertificateAggregatedListWarning: [Output Only] Informational
37578// warning message.
37579type SslCertificateAggregatedListWarning struct {
37580	// Code: [Output Only] A warning code, if applicable. For example,
37581	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
37582	// the response.
37583	//
37584	// Possible values:
37585	//   "CLEANUP_FAILED"
37586	//   "DEPRECATED_RESOURCE_USED"
37587	//   "DEPRECATED_TYPE_USED"
37588	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
37589	//   "EXPERIMENTAL_TYPE_USED"
37590	//   "EXTERNAL_API_WARNING"
37591	//   "FIELD_VALUE_OVERRIDEN"
37592	//   "INJECTED_KERNELS_DEPRECATED"
37593	//   "LARGE_DEPLOYMENT_WARNING"
37594	//   "MISSING_TYPE_DEPENDENCY"
37595	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
37596	//   "NEXT_HOP_CANNOT_IP_FORWARD"
37597	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
37598	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
37599	//   "NEXT_HOP_NOT_RUNNING"
37600	//   "NOT_CRITICAL_ERROR"
37601	//   "NO_RESULTS_ON_PAGE"
37602	//   "PARTIAL_SUCCESS"
37603	//   "REQUIRED_TOS_AGREEMENT"
37604	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
37605	//   "RESOURCE_NOT_DELETED"
37606	//   "SCHEMA_VALIDATION_IGNORED"
37607	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
37608	//   "UNDECLARED_PROPERTIES"
37609	//   "UNREACHABLE"
37610	Code string `json:"code,omitempty"`
37611
37612	// Data: [Output Only] Metadata about this warning in key: value format.
37613	// For example:
37614	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
37615	Data []*SslCertificateAggregatedListWarningData `json:"data,omitempty"`
37616
37617	// Message: [Output Only] A human-readable description of the warning
37618	// code.
37619	Message string `json:"message,omitempty"`
37620
37621	// ForceSendFields is a list of field names (e.g. "Code") to
37622	// unconditionally include in API requests. By default, fields with
37623	// empty values are omitted from API requests. However, any non-pointer,
37624	// non-interface field appearing in ForceSendFields will be sent to the
37625	// server regardless of whether the field is empty or not. This may be
37626	// used to include empty fields in Patch requests.
37627	ForceSendFields []string `json:"-"`
37628
37629	// NullFields is a list of field names (e.g. "Code") to include in API
37630	// requests with the JSON null value. By default, fields with empty
37631	// values are omitted from API requests. However, any field with an
37632	// empty value appearing in NullFields will be sent to the server as
37633	// null. It is an error if a field in this list has a non-empty value.
37634	// This may be used to include null fields in Patch requests.
37635	NullFields []string `json:"-"`
37636}
37637
37638func (s *SslCertificateAggregatedListWarning) MarshalJSON() ([]byte, error) {
37639	type NoMethod SslCertificateAggregatedListWarning
37640	raw := NoMethod(*s)
37641	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37642}
37643
37644type SslCertificateAggregatedListWarningData struct {
37645	// Key: [Output Only] A key that provides more detail on the warning
37646	// being returned. For example, for warnings where there are no results
37647	// in a list request for a particular zone, this key might be scope and
37648	// the key value might be the zone name. Other examples might be a key
37649	// indicating a deprecated resource and a suggested replacement, or a
37650	// warning about invalid network settings (for example, if an instance
37651	// attempts to perform IP forwarding but is not enabled for IP
37652	// forwarding).
37653	Key string `json:"key,omitempty"`
37654
37655	// Value: [Output Only] A warning data value corresponding to the key.
37656	Value string `json:"value,omitempty"`
37657
37658	// ForceSendFields is a list of field names (e.g. "Key") to
37659	// unconditionally include in API requests. By default, fields with
37660	// empty values are omitted from API requests. However, any non-pointer,
37661	// non-interface field appearing in ForceSendFields will be sent to the
37662	// server regardless of whether the field is empty or not. This may be
37663	// used to include empty fields in Patch requests.
37664	ForceSendFields []string `json:"-"`
37665
37666	// NullFields is a list of field names (e.g. "Key") to include in API
37667	// requests with the JSON null value. By default, fields with empty
37668	// values are omitted from API requests. However, any field with an
37669	// empty value appearing in NullFields will be sent to the server as
37670	// null. It is an error if a field in this list has a non-empty value.
37671	// This may be used to include null fields in Patch requests.
37672	NullFields []string `json:"-"`
37673}
37674
37675func (s *SslCertificateAggregatedListWarningData) MarshalJSON() ([]byte, error) {
37676	type NoMethod SslCertificateAggregatedListWarningData
37677	raw := NoMethod(*s)
37678	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37679}
37680
37681// SslCertificateList: Contains a list of SslCertificate resources.
37682type SslCertificateList struct {
37683	// Id: [Output Only] Unique identifier for the resource; defined by the
37684	// server.
37685	Id string `json:"id,omitempty"`
37686
37687	// Items: A list of SslCertificate resources.
37688	Items []*SslCertificate `json:"items,omitempty"`
37689
37690	// Kind: Type of resource.
37691	Kind string `json:"kind,omitempty"`
37692
37693	// NextPageToken: [Output Only] This token allows you to get the next
37694	// page of results for list requests. If the number of results is larger
37695	// than maxResults, use the nextPageToken as a value for the query
37696	// parameter pageToken in the next list request. Subsequent list
37697	// requests will have their own nextPageToken to continue paging through
37698	// the results.
37699	NextPageToken string `json:"nextPageToken,omitempty"`
37700
37701	// SelfLink: [Output Only] Server-defined URL for this resource.
37702	SelfLink string `json:"selfLink,omitempty"`
37703
37704	// Warning: [Output Only] Informational warning message.
37705	Warning *SslCertificateListWarning `json:"warning,omitempty"`
37706
37707	// ServerResponse contains the HTTP response code and headers from the
37708	// server.
37709	googleapi.ServerResponse `json:"-"`
37710
37711	// ForceSendFields is a list of field names (e.g. "Id") to
37712	// unconditionally include in API requests. By default, fields with
37713	// empty values are omitted from API requests. However, any non-pointer,
37714	// non-interface field appearing in ForceSendFields will be sent to the
37715	// server regardless of whether the field is empty or not. This may be
37716	// used to include empty fields in Patch requests.
37717	ForceSendFields []string `json:"-"`
37718
37719	// NullFields is a list of field names (e.g. "Id") to include in API
37720	// requests with the JSON null value. By default, fields with empty
37721	// values are omitted from API requests. However, any field with an
37722	// empty value appearing in NullFields will be sent to the server as
37723	// null. It is an error if a field in this list has a non-empty value.
37724	// This may be used to include null fields in Patch requests.
37725	NullFields []string `json:"-"`
37726}
37727
37728func (s *SslCertificateList) MarshalJSON() ([]byte, error) {
37729	type NoMethod SslCertificateList
37730	raw := NoMethod(*s)
37731	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37732}
37733
37734// SslCertificateListWarning: [Output Only] Informational warning
37735// message.
37736type SslCertificateListWarning struct {
37737	// Code: [Output Only] A warning code, if applicable. For example,
37738	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
37739	// the response.
37740	//
37741	// Possible values:
37742	//   "CLEANUP_FAILED"
37743	//   "DEPRECATED_RESOURCE_USED"
37744	//   "DEPRECATED_TYPE_USED"
37745	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
37746	//   "EXPERIMENTAL_TYPE_USED"
37747	//   "EXTERNAL_API_WARNING"
37748	//   "FIELD_VALUE_OVERRIDEN"
37749	//   "INJECTED_KERNELS_DEPRECATED"
37750	//   "LARGE_DEPLOYMENT_WARNING"
37751	//   "MISSING_TYPE_DEPENDENCY"
37752	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
37753	//   "NEXT_HOP_CANNOT_IP_FORWARD"
37754	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
37755	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
37756	//   "NEXT_HOP_NOT_RUNNING"
37757	//   "NOT_CRITICAL_ERROR"
37758	//   "NO_RESULTS_ON_PAGE"
37759	//   "PARTIAL_SUCCESS"
37760	//   "REQUIRED_TOS_AGREEMENT"
37761	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
37762	//   "RESOURCE_NOT_DELETED"
37763	//   "SCHEMA_VALIDATION_IGNORED"
37764	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
37765	//   "UNDECLARED_PROPERTIES"
37766	//   "UNREACHABLE"
37767	Code string `json:"code,omitempty"`
37768
37769	// Data: [Output Only] Metadata about this warning in key: value format.
37770	// For example:
37771	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
37772	Data []*SslCertificateListWarningData `json:"data,omitempty"`
37773
37774	// Message: [Output Only] A human-readable description of the warning
37775	// code.
37776	Message string `json:"message,omitempty"`
37777
37778	// ForceSendFields is a list of field names (e.g. "Code") to
37779	// unconditionally include in API requests. By default, fields with
37780	// empty values are omitted from API requests. However, any non-pointer,
37781	// non-interface field appearing in ForceSendFields will be sent to the
37782	// server regardless of whether the field is empty or not. This may be
37783	// used to include empty fields in Patch requests.
37784	ForceSendFields []string `json:"-"`
37785
37786	// NullFields is a list of field names (e.g. "Code") to include in API
37787	// requests with the JSON null value. By default, fields with empty
37788	// values are omitted from API requests. However, any field with an
37789	// empty value appearing in NullFields will be sent to the server as
37790	// null. It is an error if a field in this list has a non-empty value.
37791	// This may be used to include null fields in Patch requests.
37792	NullFields []string `json:"-"`
37793}
37794
37795func (s *SslCertificateListWarning) MarshalJSON() ([]byte, error) {
37796	type NoMethod SslCertificateListWarning
37797	raw := NoMethod(*s)
37798	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37799}
37800
37801type SslCertificateListWarningData struct {
37802	// Key: [Output Only] A key that provides more detail on the warning
37803	// being returned. For example, for warnings where there are no results
37804	// in a list request for a particular zone, this key might be scope and
37805	// the key value might be the zone name. Other examples might be a key
37806	// indicating a deprecated resource and a suggested replacement, or a
37807	// warning about invalid network settings (for example, if an instance
37808	// attempts to perform IP forwarding but is not enabled for IP
37809	// forwarding).
37810	Key string `json:"key,omitempty"`
37811
37812	// Value: [Output Only] A warning data value corresponding to the key.
37813	Value string `json:"value,omitempty"`
37814
37815	// ForceSendFields is a list of field names (e.g. "Key") to
37816	// unconditionally include in API requests. By default, fields with
37817	// empty values are omitted from API requests. However, any non-pointer,
37818	// non-interface field appearing in ForceSendFields will be sent to the
37819	// server regardless of whether the field is empty or not. This may be
37820	// used to include empty fields in Patch requests.
37821	ForceSendFields []string `json:"-"`
37822
37823	// NullFields is a list of field names (e.g. "Key") to include in API
37824	// requests with the JSON null value. By default, fields with empty
37825	// values are omitted from API requests. However, any field with an
37826	// empty value appearing in NullFields will be sent to the server as
37827	// null. It is an error if a field in this list has a non-empty value.
37828	// This may be used to include null fields in Patch requests.
37829	NullFields []string `json:"-"`
37830}
37831
37832func (s *SslCertificateListWarningData) MarshalJSON() ([]byte, error) {
37833	type NoMethod SslCertificateListWarningData
37834	raw := NoMethod(*s)
37835	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37836}
37837
37838// SslCertificateManagedSslCertificate: Configuration and status of a
37839// managed SSL certificate.
37840type SslCertificateManagedSslCertificate struct {
37841	// DomainStatus: [Output only] Detailed statuses of the domains
37842	// specified for managed certificate resource.
37843	DomainStatus map[string]string `json:"domainStatus,omitempty"`
37844
37845	// Domains: The domains for which a managed SSL certificate will be
37846	// generated. Each Google-managed SSL certificate supports up to the
37847	// maximum number of domains per Google-managed SSL certificate
37848	// (/load-balancing/docs/quotas#ssl_certificates).
37849	Domains []string `json:"domains,omitempty"`
37850
37851	// Status: [Output only] Status of the managed certificate resource.
37852	//
37853	// Possible values:
37854	//   "ACTIVE"
37855	//   "MANAGED_CERTIFICATE_STATUS_UNSPECIFIED"
37856	//   "PROVISIONING"
37857	//   "PROVISIONING_FAILED"
37858	//   "PROVISIONING_FAILED_PERMANENTLY"
37859	//   "RENEWAL_FAILED"
37860	Status string `json:"status,omitempty"`
37861
37862	// ForceSendFields is a list of field names (e.g. "DomainStatus") to
37863	// unconditionally include in API requests. By default, fields with
37864	// empty values are omitted from API requests. However, any non-pointer,
37865	// non-interface field appearing in ForceSendFields will be sent to the
37866	// server regardless of whether the field is empty or not. This may be
37867	// used to include empty fields in Patch requests.
37868	ForceSendFields []string `json:"-"`
37869
37870	// NullFields is a list of field names (e.g. "DomainStatus") to include
37871	// in API requests with the JSON null value. By default, fields with
37872	// empty values are omitted from API requests. However, any field with
37873	// an empty value appearing in NullFields will be sent to the server as
37874	// null. It is an error if a field in this list has a non-empty value.
37875	// This may be used to include null fields in Patch requests.
37876	NullFields []string `json:"-"`
37877}
37878
37879func (s *SslCertificateManagedSslCertificate) MarshalJSON() ([]byte, error) {
37880	type NoMethod SslCertificateManagedSslCertificate
37881	raw := NoMethod(*s)
37882	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37883}
37884
37885// SslCertificateSelfManagedSslCertificate: Configuration and status of
37886// a self-managed SSL certificate.
37887type SslCertificateSelfManagedSslCertificate struct {
37888	// Certificate: A local certificate file. The certificate must be in PEM
37889	// format. The certificate chain must be no greater than 5 certs long.
37890	// The chain must include at least one intermediate cert.
37891	Certificate string `json:"certificate,omitempty"`
37892
37893	// PrivateKey: A write-only private key in PEM format. Only insert
37894	// requests will include this field.
37895	PrivateKey string `json:"privateKey,omitempty"`
37896
37897	// ForceSendFields is a list of field names (e.g. "Certificate") to
37898	// unconditionally include in API requests. By default, fields with
37899	// empty values are omitted from API requests. However, any non-pointer,
37900	// non-interface field appearing in ForceSendFields will be sent to the
37901	// server regardless of whether the field is empty or not. This may be
37902	// used to include empty fields in Patch requests.
37903	ForceSendFields []string `json:"-"`
37904
37905	// NullFields is a list of field names (e.g. "Certificate") to include
37906	// in API requests with the JSON null value. By default, fields with
37907	// empty values are omitted from API requests. However, any field with
37908	// an empty value appearing in NullFields will be sent to the server as
37909	// null. It is an error if a field in this list has a non-empty value.
37910	// This may be used to include null fields in Patch requests.
37911	NullFields []string `json:"-"`
37912}
37913
37914func (s *SslCertificateSelfManagedSslCertificate) MarshalJSON() ([]byte, error) {
37915	type NoMethod SslCertificateSelfManagedSslCertificate
37916	raw := NoMethod(*s)
37917	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37918}
37919
37920type SslCertificatesScopedList struct {
37921	// SslCertificates: List of SslCertificates contained in this scope.
37922	SslCertificates []*SslCertificate `json:"sslCertificates,omitempty"`
37923
37924	// Warning: Informational warning which replaces the list of backend
37925	// services when the list is empty.
37926	Warning *SslCertificatesScopedListWarning `json:"warning,omitempty"`
37927
37928	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
37929	// unconditionally include in API requests. By default, fields with
37930	// empty values are omitted from API requests. However, any non-pointer,
37931	// non-interface field appearing in ForceSendFields will be sent to the
37932	// server regardless of whether the field is empty or not. This may be
37933	// used to include empty fields in Patch requests.
37934	ForceSendFields []string `json:"-"`
37935
37936	// NullFields is a list of field names (e.g. "SslCertificates") to
37937	// include in API requests with the JSON null value. By default, fields
37938	// with empty values are omitted from API requests. However, any field
37939	// with an empty value appearing in NullFields will be sent to the
37940	// server as null. It is an error if a field in this list has a
37941	// non-empty value. This may be used to include null fields in Patch
37942	// requests.
37943	NullFields []string `json:"-"`
37944}
37945
37946func (s *SslCertificatesScopedList) MarshalJSON() ([]byte, error) {
37947	type NoMethod SslCertificatesScopedList
37948	raw := NoMethod(*s)
37949	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37950}
37951
37952// SslCertificatesScopedListWarning: Informational warning which
37953// replaces the list of backend services when the list is empty.
37954type SslCertificatesScopedListWarning struct {
37955	// Code: [Output Only] A warning code, if applicable. For example,
37956	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
37957	// the response.
37958	//
37959	// Possible values:
37960	//   "CLEANUP_FAILED"
37961	//   "DEPRECATED_RESOURCE_USED"
37962	//   "DEPRECATED_TYPE_USED"
37963	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
37964	//   "EXPERIMENTAL_TYPE_USED"
37965	//   "EXTERNAL_API_WARNING"
37966	//   "FIELD_VALUE_OVERRIDEN"
37967	//   "INJECTED_KERNELS_DEPRECATED"
37968	//   "LARGE_DEPLOYMENT_WARNING"
37969	//   "MISSING_TYPE_DEPENDENCY"
37970	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
37971	//   "NEXT_HOP_CANNOT_IP_FORWARD"
37972	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
37973	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
37974	//   "NEXT_HOP_NOT_RUNNING"
37975	//   "NOT_CRITICAL_ERROR"
37976	//   "NO_RESULTS_ON_PAGE"
37977	//   "PARTIAL_SUCCESS"
37978	//   "REQUIRED_TOS_AGREEMENT"
37979	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
37980	//   "RESOURCE_NOT_DELETED"
37981	//   "SCHEMA_VALIDATION_IGNORED"
37982	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
37983	//   "UNDECLARED_PROPERTIES"
37984	//   "UNREACHABLE"
37985	Code string `json:"code,omitempty"`
37986
37987	// Data: [Output Only] Metadata about this warning in key: value format.
37988	// For example:
37989	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
37990	Data []*SslCertificatesScopedListWarningData `json:"data,omitempty"`
37991
37992	// Message: [Output Only] A human-readable description of the warning
37993	// code.
37994	Message string `json:"message,omitempty"`
37995
37996	// ForceSendFields is a list of field names (e.g. "Code") to
37997	// unconditionally include in API requests. By default, fields with
37998	// empty values are omitted from API requests. However, any non-pointer,
37999	// non-interface field appearing in ForceSendFields will be sent to the
38000	// server regardless of whether the field is empty or not. This may be
38001	// used to include empty fields in Patch requests.
38002	ForceSendFields []string `json:"-"`
38003
38004	// NullFields is a list of field names (e.g. "Code") to include in API
38005	// requests with the JSON null value. By default, fields with empty
38006	// values are omitted from API requests. However, any field with an
38007	// empty value appearing in NullFields will be sent to the server as
38008	// null. It is an error if a field in this list has a non-empty value.
38009	// This may be used to include null fields in Patch requests.
38010	NullFields []string `json:"-"`
38011}
38012
38013func (s *SslCertificatesScopedListWarning) MarshalJSON() ([]byte, error) {
38014	type NoMethod SslCertificatesScopedListWarning
38015	raw := NoMethod(*s)
38016	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38017}
38018
38019type SslCertificatesScopedListWarningData struct {
38020	// Key: [Output Only] A key that provides more detail on the warning
38021	// being returned. For example, for warnings where there are no results
38022	// in a list request for a particular zone, this key might be scope and
38023	// the key value might be the zone name. Other examples might be a key
38024	// indicating a deprecated resource and a suggested replacement, or a
38025	// warning about invalid network settings (for example, if an instance
38026	// attempts to perform IP forwarding but is not enabled for IP
38027	// forwarding).
38028	Key string `json:"key,omitempty"`
38029
38030	// Value: [Output Only] A warning data value corresponding to the key.
38031	Value string `json:"value,omitempty"`
38032
38033	// ForceSendFields is a list of field names (e.g. "Key") to
38034	// unconditionally include in API requests. By default, fields with
38035	// empty values are omitted from API requests. However, any non-pointer,
38036	// non-interface field appearing in ForceSendFields will be sent to the
38037	// server regardless of whether the field is empty or not. This may be
38038	// used to include empty fields in Patch requests.
38039	ForceSendFields []string `json:"-"`
38040
38041	// NullFields is a list of field names (e.g. "Key") to include in API
38042	// requests with the JSON null value. By default, fields with empty
38043	// values are omitted from API requests. However, any field with an
38044	// empty value appearing in NullFields will be sent to the server as
38045	// null. It is an error if a field in this list has a non-empty value.
38046	// This may be used to include null fields in Patch requests.
38047	NullFields []string `json:"-"`
38048}
38049
38050func (s *SslCertificatesScopedListWarningData) MarshalJSON() ([]byte, error) {
38051	type NoMethod SslCertificatesScopedListWarningData
38052	raw := NoMethod(*s)
38053	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38054}
38055
38056type SslPoliciesList struct {
38057	// Id: [Output Only] Unique identifier for the resource; defined by the
38058	// server.
38059	Id string `json:"id,omitempty"`
38060
38061	// Items: A list of SslPolicy resources.
38062	Items []*SslPolicy `json:"items,omitempty"`
38063
38064	// Kind: [Output Only] Type of the resource. Always
38065	// compute#sslPoliciesList for lists of sslPolicies.
38066	Kind string `json:"kind,omitempty"`
38067
38068	// NextPageToken: [Output Only] This token allows you to get the next
38069	// page of results for list requests. If the number of results is larger
38070	// than maxResults, use the nextPageToken as a value for the query
38071	// parameter pageToken in the next list request. Subsequent list
38072	// requests will have their own nextPageToken to continue paging through
38073	// the results.
38074	NextPageToken string `json:"nextPageToken,omitempty"`
38075
38076	// SelfLink: [Output Only] Server-defined URL for this resource.
38077	SelfLink string `json:"selfLink,omitempty"`
38078
38079	// Warning: [Output Only] Informational warning message.
38080	Warning *SslPoliciesListWarning `json:"warning,omitempty"`
38081
38082	// ServerResponse contains the HTTP response code and headers from the
38083	// server.
38084	googleapi.ServerResponse `json:"-"`
38085
38086	// ForceSendFields is a list of field names (e.g. "Id") to
38087	// unconditionally include in API requests. By default, fields with
38088	// empty values are omitted from API requests. However, any non-pointer,
38089	// non-interface field appearing in ForceSendFields will be sent to the
38090	// server regardless of whether the field is empty or not. This may be
38091	// used to include empty fields in Patch requests.
38092	ForceSendFields []string `json:"-"`
38093
38094	// NullFields is a list of field names (e.g. "Id") to include in API
38095	// requests with the JSON null value. By default, fields with empty
38096	// values are omitted from API requests. However, any field with an
38097	// empty value appearing in NullFields will be sent to the server as
38098	// null. It is an error if a field in this list has a non-empty value.
38099	// This may be used to include null fields in Patch requests.
38100	NullFields []string `json:"-"`
38101}
38102
38103func (s *SslPoliciesList) MarshalJSON() ([]byte, error) {
38104	type NoMethod SslPoliciesList
38105	raw := NoMethod(*s)
38106	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38107}
38108
38109// SslPoliciesListWarning: [Output Only] Informational warning message.
38110type SslPoliciesListWarning struct {
38111	// Code: [Output Only] A warning code, if applicable. For example,
38112	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
38113	// the response.
38114	//
38115	// Possible values:
38116	//   "CLEANUP_FAILED"
38117	//   "DEPRECATED_RESOURCE_USED"
38118	//   "DEPRECATED_TYPE_USED"
38119	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
38120	//   "EXPERIMENTAL_TYPE_USED"
38121	//   "EXTERNAL_API_WARNING"
38122	//   "FIELD_VALUE_OVERRIDEN"
38123	//   "INJECTED_KERNELS_DEPRECATED"
38124	//   "LARGE_DEPLOYMENT_WARNING"
38125	//   "MISSING_TYPE_DEPENDENCY"
38126	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
38127	//   "NEXT_HOP_CANNOT_IP_FORWARD"
38128	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
38129	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
38130	//   "NEXT_HOP_NOT_RUNNING"
38131	//   "NOT_CRITICAL_ERROR"
38132	//   "NO_RESULTS_ON_PAGE"
38133	//   "PARTIAL_SUCCESS"
38134	//   "REQUIRED_TOS_AGREEMENT"
38135	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
38136	//   "RESOURCE_NOT_DELETED"
38137	//   "SCHEMA_VALIDATION_IGNORED"
38138	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
38139	//   "UNDECLARED_PROPERTIES"
38140	//   "UNREACHABLE"
38141	Code string `json:"code,omitempty"`
38142
38143	// Data: [Output Only] Metadata about this warning in key: value format.
38144	// For example:
38145	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
38146	Data []*SslPoliciesListWarningData `json:"data,omitempty"`
38147
38148	// Message: [Output Only] A human-readable description of the warning
38149	// code.
38150	Message string `json:"message,omitempty"`
38151
38152	// ForceSendFields is a list of field names (e.g. "Code") to
38153	// unconditionally include in API requests. By default, fields with
38154	// empty values are omitted from API requests. However, any non-pointer,
38155	// non-interface field appearing in ForceSendFields will be sent to the
38156	// server regardless of whether the field is empty or not. This may be
38157	// used to include empty fields in Patch requests.
38158	ForceSendFields []string `json:"-"`
38159
38160	// NullFields is a list of field names (e.g. "Code") to include in API
38161	// requests with the JSON null value. By default, fields with empty
38162	// values are omitted from API requests. However, any field with an
38163	// empty value appearing in NullFields will be sent to the server as
38164	// null. It is an error if a field in this list has a non-empty value.
38165	// This may be used to include null fields in Patch requests.
38166	NullFields []string `json:"-"`
38167}
38168
38169func (s *SslPoliciesListWarning) MarshalJSON() ([]byte, error) {
38170	type NoMethod SslPoliciesListWarning
38171	raw := NoMethod(*s)
38172	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38173}
38174
38175type SslPoliciesListWarningData struct {
38176	// Key: [Output Only] A key that provides more detail on the warning
38177	// being returned. For example, for warnings where there are no results
38178	// in a list request for a particular zone, this key might be scope and
38179	// the key value might be the zone name. Other examples might be a key
38180	// indicating a deprecated resource and a suggested replacement, or a
38181	// warning about invalid network settings (for example, if an instance
38182	// attempts to perform IP forwarding but is not enabled for IP
38183	// forwarding).
38184	Key string `json:"key,omitempty"`
38185
38186	// Value: [Output Only] A warning data value corresponding to the key.
38187	Value string `json:"value,omitempty"`
38188
38189	// ForceSendFields is a list of field names (e.g. "Key") to
38190	// unconditionally include in API requests. By default, fields with
38191	// empty values are omitted from API requests. However, any non-pointer,
38192	// non-interface field appearing in ForceSendFields will be sent to the
38193	// server regardless of whether the field is empty or not. This may be
38194	// used to include empty fields in Patch requests.
38195	ForceSendFields []string `json:"-"`
38196
38197	// NullFields is a list of field names (e.g. "Key") to include in API
38198	// requests with the JSON null value. By default, fields with empty
38199	// values are omitted from API requests. However, any field with an
38200	// empty value appearing in NullFields will be sent to the server as
38201	// null. It is an error if a field in this list has a non-empty value.
38202	// This may be used to include null fields in Patch requests.
38203	NullFields []string `json:"-"`
38204}
38205
38206func (s *SslPoliciesListWarningData) MarshalJSON() ([]byte, error) {
38207	type NoMethod SslPoliciesListWarningData
38208	raw := NoMethod(*s)
38209	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38210}
38211
38212type SslPoliciesListAvailableFeaturesResponse struct {
38213	Features []string `json:"features,omitempty"`
38214
38215	// ServerResponse contains the HTTP response code and headers from the
38216	// server.
38217	googleapi.ServerResponse `json:"-"`
38218
38219	// ForceSendFields is a list of field names (e.g. "Features") to
38220	// unconditionally include in API requests. By default, fields with
38221	// empty values are omitted from API requests. However, any non-pointer,
38222	// non-interface field appearing in ForceSendFields will be sent to the
38223	// server regardless of whether the field is empty or not. This may be
38224	// used to include empty fields in Patch requests.
38225	ForceSendFields []string `json:"-"`
38226
38227	// NullFields is a list of field names (e.g. "Features") to include in
38228	// API requests with the JSON null value. By default, fields with empty
38229	// values are omitted from API requests. However, any field with an
38230	// empty value appearing in NullFields will be sent to the server as
38231	// null. It is an error if a field in this list has a non-empty value.
38232	// This may be used to include null fields in Patch requests.
38233	NullFields []string `json:"-"`
38234}
38235
38236func (s *SslPoliciesListAvailableFeaturesResponse) MarshalJSON() ([]byte, error) {
38237	type NoMethod SslPoliciesListAvailableFeaturesResponse
38238	raw := NoMethod(*s)
38239	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38240}
38241
38242// SslPolicy: Represents an SSL Policy resource.
38243//
38244// Use SSL policies to control the SSL features, such as versions and
38245// cipher suites, offered by an HTTPS or SSL Proxy load balancer. For
38246// more information, read  SSL Policy Concepts. (== resource_for
38247// {$api_version}.sslPolicies ==)
38248type SslPolicy struct {
38249	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
38250	// format.
38251	CreationTimestamp string `json:"creationTimestamp,omitempty"`
38252
38253	// CustomFeatures: A list of features enabled when the selected profile
38254	// is CUSTOM. The
38255	// - method returns the set of features that can be specified in this
38256	// list. This field must be empty if the profile is not CUSTOM.
38257	CustomFeatures []string `json:"customFeatures,omitempty"`
38258
38259	// Description: An optional description of this resource. Provide this
38260	// property when you create the resource.
38261	Description string `json:"description,omitempty"`
38262
38263	// EnabledFeatures: [Output Only] The list of features enabled in the
38264	// SSL policy.
38265	EnabledFeatures []string `json:"enabledFeatures,omitempty"`
38266
38267	// Fingerprint: Fingerprint of this resource. A hash of the contents
38268	// stored in this object. This field is used in optimistic locking. This
38269	// field will be ignored when inserting a SslPolicy. An up-to-date
38270	// fingerprint must be provided in order to update the SslPolicy,
38271	// otherwise the request will fail with error 412 conditionNotMet.
38272	//
38273	// To see the latest fingerprint, make a get() request to retrieve an
38274	// SslPolicy.
38275	Fingerprint string `json:"fingerprint,omitempty"`
38276
38277	// Id: [Output Only] The unique identifier for the resource. This
38278	// identifier is defined by the server.
38279	Id uint64 `json:"id,omitempty,string"`
38280
38281	// Kind: [Output only] Type of the resource. Always compute#sslPolicyfor
38282	// SSL policies.
38283	Kind string `json:"kind,omitempty"`
38284
38285	// MinTlsVersion: The minimum version of SSL protocol that can be used
38286	// by the clients to establish a connection with the load balancer. This
38287	// can be one of TLS_1_0, TLS_1_1, TLS_1_2.
38288	//
38289	// Possible values:
38290	//   "TLS_1_0"
38291	//   "TLS_1_1"
38292	//   "TLS_1_2"
38293	MinTlsVersion string `json:"minTlsVersion,omitempty"`
38294
38295	// Name: Name of the resource. The name must be 1-63 characters long,
38296	// and comply with RFC1035. Specifically, the name must be 1-63
38297	// characters long and match the regular expression
38298	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
38299	// a lowercase letter, and all following characters must be a dash,
38300	// lowercase letter, or digit, except the last character, which cannot
38301	// be a dash.
38302	Name string `json:"name,omitempty"`
38303
38304	// Profile: Profile specifies the set of SSL features that can be used
38305	// by the load balancer when negotiating SSL with clients. This can be
38306	// one of COMPATIBLE, MODERN, RESTRICTED, or CUSTOM. If using CUSTOM,
38307	// the set of SSL features to enable must be specified in the
38308	// customFeatures field.
38309	//
38310	// Possible values:
38311	//   "COMPATIBLE"
38312	//   "CUSTOM"
38313	//   "MODERN"
38314	//   "RESTRICTED"
38315	Profile string `json:"profile,omitempty"`
38316
38317	// SelfLink: [Output Only] Server-defined URL for the resource.
38318	SelfLink string `json:"selfLink,omitempty"`
38319
38320	// Warnings: [Output Only] If potential misconfigurations are detected
38321	// for this SSL policy, this field will be populated with warning
38322	// messages.
38323	Warnings []*SslPolicyWarnings `json:"warnings,omitempty"`
38324
38325	// ServerResponse contains the HTTP response code and headers from the
38326	// server.
38327	googleapi.ServerResponse `json:"-"`
38328
38329	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
38330	// to unconditionally include in API requests. By default, fields with
38331	// empty values are omitted from API requests. However, any non-pointer,
38332	// non-interface field appearing in ForceSendFields will be sent to the
38333	// server regardless of whether the field is empty or not. This may be
38334	// used to include empty fields in Patch requests.
38335	ForceSendFields []string `json:"-"`
38336
38337	// NullFields is a list of field names (e.g. "CreationTimestamp") to
38338	// include in API requests with the JSON null value. By default, fields
38339	// with empty values are omitted from API requests. However, any field
38340	// with an empty value appearing in NullFields will be sent to the
38341	// server as null. It is an error if a field in this list has a
38342	// non-empty value. This may be used to include null fields in Patch
38343	// requests.
38344	NullFields []string `json:"-"`
38345}
38346
38347func (s *SslPolicy) MarshalJSON() ([]byte, error) {
38348	type NoMethod SslPolicy
38349	raw := NoMethod(*s)
38350	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38351}
38352
38353type SslPolicyWarnings struct {
38354	// Code: [Output Only] A warning code, if applicable. For example,
38355	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
38356	// the response.
38357	//
38358	// Possible values:
38359	//   "CLEANUP_FAILED"
38360	//   "DEPRECATED_RESOURCE_USED"
38361	//   "DEPRECATED_TYPE_USED"
38362	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
38363	//   "EXPERIMENTAL_TYPE_USED"
38364	//   "EXTERNAL_API_WARNING"
38365	//   "FIELD_VALUE_OVERRIDEN"
38366	//   "INJECTED_KERNELS_DEPRECATED"
38367	//   "LARGE_DEPLOYMENT_WARNING"
38368	//   "MISSING_TYPE_DEPENDENCY"
38369	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
38370	//   "NEXT_HOP_CANNOT_IP_FORWARD"
38371	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
38372	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
38373	//   "NEXT_HOP_NOT_RUNNING"
38374	//   "NOT_CRITICAL_ERROR"
38375	//   "NO_RESULTS_ON_PAGE"
38376	//   "PARTIAL_SUCCESS"
38377	//   "REQUIRED_TOS_AGREEMENT"
38378	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
38379	//   "RESOURCE_NOT_DELETED"
38380	//   "SCHEMA_VALIDATION_IGNORED"
38381	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
38382	//   "UNDECLARED_PROPERTIES"
38383	//   "UNREACHABLE"
38384	Code string `json:"code,omitempty"`
38385
38386	// Data: [Output Only] Metadata about this warning in key: value format.
38387	// For example:
38388	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
38389	Data []*SslPolicyWarningsData `json:"data,omitempty"`
38390
38391	// Message: [Output Only] A human-readable description of the warning
38392	// code.
38393	Message string `json:"message,omitempty"`
38394
38395	// ForceSendFields is a list of field names (e.g. "Code") to
38396	// unconditionally include in API requests. By default, fields with
38397	// empty values are omitted from API requests. However, any non-pointer,
38398	// non-interface field appearing in ForceSendFields will be sent to the
38399	// server regardless of whether the field is empty or not. This may be
38400	// used to include empty fields in Patch requests.
38401	ForceSendFields []string `json:"-"`
38402
38403	// NullFields is a list of field names (e.g. "Code") to include in API
38404	// requests with the JSON null value. By default, fields with empty
38405	// values are omitted from API requests. However, any field with an
38406	// empty value appearing in NullFields will be sent to the server as
38407	// null. It is an error if a field in this list has a non-empty value.
38408	// This may be used to include null fields in Patch requests.
38409	NullFields []string `json:"-"`
38410}
38411
38412func (s *SslPolicyWarnings) MarshalJSON() ([]byte, error) {
38413	type NoMethod SslPolicyWarnings
38414	raw := NoMethod(*s)
38415	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38416}
38417
38418type SslPolicyWarningsData struct {
38419	// Key: [Output Only] A key that provides more detail on the warning
38420	// being returned. For example, for warnings where there are no results
38421	// in a list request for a particular zone, this key might be scope and
38422	// the key value might be the zone name. Other examples might be a key
38423	// indicating a deprecated resource and a suggested replacement, or a
38424	// warning about invalid network settings (for example, if an instance
38425	// attempts to perform IP forwarding but is not enabled for IP
38426	// forwarding).
38427	Key string `json:"key,omitempty"`
38428
38429	// Value: [Output Only] A warning data value corresponding to the key.
38430	Value string `json:"value,omitempty"`
38431
38432	// ForceSendFields is a list of field names (e.g. "Key") to
38433	// unconditionally include in API requests. By default, fields with
38434	// empty values are omitted from API requests. However, any non-pointer,
38435	// non-interface field appearing in ForceSendFields will be sent to the
38436	// server regardless of whether the field is empty or not. This may be
38437	// used to include empty fields in Patch requests.
38438	ForceSendFields []string `json:"-"`
38439
38440	// NullFields is a list of field names (e.g. "Key") to include in API
38441	// requests with the JSON null value. By default, fields with empty
38442	// values are omitted from API requests. However, any field with an
38443	// empty value appearing in NullFields will be sent to the server as
38444	// null. It is an error if a field in this list has a non-empty value.
38445	// This may be used to include null fields in Patch requests.
38446	NullFields []string `json:"-"`
38447}
38448
38449func (s *SslPolicyWarningsData) MarshalJSON() ([]byte, error) {
38450	type NoMethod SslPolicyWarningsData
38451	raw := NoMethod(*s)
38452	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38453}
38454
38455type SslPolicyReference struct {
38456	// SslPolicy: URL of the SSL policy resource. Set this to empty string
38457	// to clear any existing SSL policy associated with the target proxy
38458	// resource.
38459	SslPolicy string `json:"sslPolicy,omitempty"`
38460
38461	// ForceSendFields is a list of field names (e.g. "SslPolicy") to
38462	// unconditionally include in API requests. By default, fields with
38463	// empty values are omitted from API requests. However, any non-pointer,
38464	// non-interface field appearing in ForceSendFields will be sent to the
38465	// server regardless of whether the field is empty or not. This may be
38466	// used to include empty fields in Patch requests.
38467	ForceSendFields []string `json:"-"`
38468
38469	// NullFields is a list of field names (e.g. "SslPolicy") to include in
38470	// API requests with the JSON null value. By default, fields with empty
38471	// values are omitted from API requests. However, any field with an
38472	// empty value appearing in NullFields will be sent to the server as
38473	// null. It is an error if a field in this list has a non-empty value.
38474	// This may be used to include null fields in Patch requests.
38475	NullFields []string `json:"-"`
38476}
38477
38478func (s *SslPolicyReference) MarshalJSON() ([]byte, error) {
38479	type NoMethod SslPolicyReference
38480	raw := NoMethod(*s)
38481	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38482}
38483
38484type StatefulPolicy struct {
38485	PreservedState *StatefulPolicyPreservedState `json:"preservedState,omitempty"`
38486
38487	// ForceSendFields is a list of field names (e.g. "PreservedState") to
38488	// unconditionally include in API requests. By default, fields with
38489	// empty values are omitted from API requests. However, any non-pointer,
38490	// non-interface field appearing in ForceSendFields will be sent to the
38491	// server regardless of whether the field is empty or not. This may be
38492	// used to include empty fields in Patch requests.
38493	ForceSendFields []string `json:"-"`
38494
38495	// NullFields is a list of field names (e.g. "PreservedState") to
38496	// include in API requests with the JSON null value. By default, fields
38497	// with empty values are omitted from API requests. However, any field
38498	// with an empty value appearing in NullFields will be sent to the
38499	// server as null. It is an error if a field in this list has a
38500	// non-empty value. This may be used to include null fields in Patch
38501	// requests.
38502	NullFields []string `json:"-"`
38503}
38504
38505func (s *StatefulPolicy) MarshalJSON() ([]byte, error) {
38506	type NoMethod StatefulPolicy
38507	raw := NoMethod(*s)
38508	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38509}
38510
38511// StatefulPolicyPreservedState: Configuration of preserved resources.
38512type StatefulPolicyPreservedState struct {
38513	// Disks: Disks created on the instances that will be preserved on
38514	// instance delete, update, etc. This map is keyed with the device names
38515	// of the disks.
38516	Disks map[string]StatefulPolicyPreservedStateDiskDevice `json:"disks,omitempty"`
38517
38518	// ForceSendFields is a list of field names (e.g. "Disks") to
38519	// unconditionally include in API requests. By default, fields with
38520	// empty values are omitted from API requests. However, any non-pointer,
38521	// non-interface field appearing in ForceSendFields will be sent to the
38522	// server regardless of whether the field is empty or not. This may be
38523	// used to include empty fields in Patch requests.
38524	ForceSendFields []string `json:"-"`
38525
38526	// NullFields is a list of field names (e.g. "Disks") to include in API
38527	// requests with the JSON null value. By default, fields with empty
38528	// values are omitted from API requests. However, any field with an
38529	// empty value appearing in NullFields will be sent to the server as
38530	// null. It is an error if a field in this list has a non-empty value.
38531	// This may be used to include null fields in Patch requests.
38532	NullFields []string `json:"-"`
38533}
38534
38535func (s *StatefulPolicyPreservedState) MarshalJSON() ([]byte, error) {
38536	type NoMethod StatefulPolicyPreservedState
38537	raw := NoMethod(*s)
38538	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38539}
38540
38541type StatefulPolicyPreservedStateDiskDevice struct {
38542	// AutoDelete: These stateful disks will never be deleted during
38543	// autohealing, update or VM instance recreate operations. This flag is
38544	// used to configure if the disk should be deleted after it is no longer
38545	// used by the group, e.g. when the given instance or the whole group is
38546	// deleted. Note: disks attached in READ_ONLY mode cannot be
38547	// auto-deleted.
38548	//
38549	// Possible values:
38550	//   "NEVER"
38551	//   "ON_PERMANENT_INSTANCE_DELETION"
38552	AutoDelete string `json:"autoDelete,omitempty"`
38553
38554	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
38555	// unconditionally include in API requests. By default, fields with
38556	// empty values are omitted from API requests. However, any non-pointer,
38557	// non-interface field appearing in ForceSendFields will be sent to the
38558	// server regardless of whether the field is empty or not. This may be
38559	// used to include empty fields in Patch requests.
38560	ForceSendFields []string `json:"-"`
38561
38562	// NullFields is a list of field names (e.g. "AutoDelete") to include in
38563	// API requests with the JSON null value. By default, fields with empty
38564	// values are omitted from API requests. However, any field with an
38565	// empty value appearing in NullFields will be sent to the server as
38566	// null. It is an error if a field in this list has a non-empty value.
38567	// This may be used to include null fields in Patch requests.
38568	NullFields []string `json:"-"`
38569}
38570
38571func (s *StatefulPolicyPreservedStateDiskDevice) MarshalJSON() ([]byte, error) {
38572	type NoMethod StatefulPolicyPreservedStateDiskDevice
38573	raw := NoMethod(*s)
38574	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38575}
38576
38577// Subnetwork: Represents a Subnetwork resource.
38578//
38579// A subnetwork (also known as a subnet) is a logical partition of a
38580// Virtual Private Cloud network with one primary IP range and zero or
38581// more secondary IP ranges. For more information, read  Virtual Private
38582// Cloud (VPC) Network. (== resource_for {$api_version}.subnetworks ==)
38583type Subnetwork struct {
38584	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
38585	// format.
38586	CreationTimestamp string `json:"creationTimestamp,omitempty"`
38587
38588	// Description: An optional description of this resource. Provide this
38589	// property when you create the resource. This field can be set only at
38590	// resource creation time.
38591	Description string `json:"description,omitempty"`
38592
38593	// EnableFlowLogs: Whether to enable flow logging for this subnetwork.
38594	// If this field is not explicitly set, it will not appear in get
38595	// listings. If not set the default behavior is to disable flow logging.
38596	// This field isn't supported with the purpose field set to
38597	// INTERNAL_HTTPS_LOAD_BALANCER.
38598	EnableFlowLogs bool `json:"enableFlowLogs,omitempty"`
38599
38600	// ExternalIpv6Prefix: [Output Only] The range of external IPv6
38601	// addresses that are owned by this subnetwork.
38602	ExternalIpv6Prefix string `json:"externalIpv6Prefix,omitempty"`
38603
38604	// Fingerprint: Fingerprint of this resource. A hash of the contents
38605	// stored in this object. This field is used in optimistic locking. This
38606	// field will be ignored when inserting a Subnetwork. An up-to-date
38607	// fingerprint must be provided in order to update the Subnetwork,
38608	// otherwise the request will fail with error 412 conditionNotMet.
38609	//
38610	// To see the latest fingerprint, make a get() request to retrieve a
38611	// Subnetwork.
38612	Fingerprint string `json:"fingerprint,omitempty"`
38613
38614	// GatewayAddress: [Output Only] The gateway address for default routes
38615	// to reach destination addresses outside this subnetwork.
38616	GatewayAddress string `json:"gatewayAddress,omitempty"`
38617
38618	// Id: [Output Only] The unique identifier for the resource. This
38619	// identifier is defined by the server.
38620	Id uint64 `json:"id,omitempty,string"`
38621
38622	// IpCidrRange: The range of internal addresses that are owned by this
38623	// subnetwork. Provide this property when you create the subnetwork. For
38624	// example, 10.0.0.0/8 or 100.64.0.0/10. Ranges must be unique and
38625	// non-overlapping within a network. Only IPv4 is supported. This field
38626	// is set at resource creation time. The range can be any range listed
38627	// in the Valid ranges list. The range can be expanded after creation
38628	// using expandIpCidrRange.
38629	IpCidrRange string `json:"ipCidrRange,omitempty"`
38630
38631	// Ipv6AccessType: The access type of IPv6 address this subnet holds.
38632	// It's immutable and can only be specified during creation or the first
38633	// time the subnet is updated into IPV4_IPV6 dual stack. If the
38634	// ipv6_type is EXTERNAL then this subnet cannot enable direct path.
38635	//
38636	// Possible values:
38637	//   "EXTERNAL"
38638	//   "UNSPECIFIED_IPV6_ACCESS_TYPE"
38639	Ipv6AccessType string `json:"ipv6AccessType,omitempty"`
38640
38641	// Ipv6CidrRange: [Output Only] The range of internal IPv6 addresses
38642	// that are owned by this subnetwork.
38643	Ipv6CidrRange string `json:"ipv6CidrRange,omitempty"`
38644
38645	// Kind: [Output Only] Type of the resource. Always compute#subnetwork
38646	// for Subnetwork resources.
38647	Kind string `json:"kind,omitempty"`
38648
38649	// LogConfig: This field denotes the VPC flow logging options for this
38650	// subnetwork. If logging is enabled, logs are exported to Cloud
38651	// Logging.
38652	LogConfig *SubnetworkLogConfig `json:"logConfig,omitempty"`
38653
38654	// Name: The name of the resource, provided by the client when initially
38655	// creating the resource. The name must be 1-63 characters long, and
38656	// comply with RFC1035. Specifically, the name must be 1-63 characters
38657	// long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`
38658	// which means the first character must be a lowercase letter, and all
38659	// following characters must be a dash, lowercase letter, or digit,
38660	// except the last character, which cannot be a dash.
38661	Name string `json:"name,omitempty"`
38662
38663	// Network: The URL of the network to which this subnetwork belongs,
38664	// provided by the client when initially creating the subnetwork. Only
38665	// networks that are in the distributed mode can have subnetworks. This
38666	// field can be set only at resource creation time.
38667	Network string `json:"network,omitempty"`
38668
38669	// PrivateIpGoogleAccess: Whether the VMs in this subnet can access
38670	// Google services without assigned external IP addresses. This field
38671	// can be both set at resource creation time and updated using
38672	// setPrivateIpGoogleAccess.
38673	PrivateIpGoogleAccess bool `json:"privateIpGoogleAccess,omitempty"`
38674
38675	// PrivateIpv6GoogleAccess: The private IPv6 google access type for the
38676	// VMs in this subnet. This is an expanded field of
38677	// enablePrivateV6Access. If both fields are set,
38678	// privateIpv6GoogleAccess will take priority.
38679	//
38680	// This field can be both set at resource creation time and updated
38681	// using patch.
38682	//
38683	// Possible values:
38684	//   "DISABLE_GOOGLE_ACCESS"
38685	//   "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE"
38686	//   "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE"
38687	PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"`
38688
38689	// Purpose: The purpose of the resource. This field can be either
38690	// PRIVATE_RFC_1918 or INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with
38691	// purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a user-created
38692	// subnetwork that is reserved for Internal HTTP(S) Load Balancing. If
38693	// unspecified, the purpose defaults to PRIVATE_RFC_1918. The
38694	// enableFlowLogs field isn't supported with the purpose field set to
38695	// INTERNAL_HTTPS_LOAD_BALANCER.
38696	//
38697	// Possible values:
38698	//   "INTERNAL_HTTPS_LOAD_BALANCER"
38699	//   "PRIVATE"
38700	//   "PRIVATE_RFC_1918"
38701	Purpose string `json:"purpose,omitempty"`
38702
38703	// Region: URL of the region where the Subnetwork resides. This field
38704	// can be set only at resource creation time.
38705	Region string `json:"region,omitempty"`
38706
38707	// Role: The role of subnetwork. Currently, this field is only used when
38708	// purpose = INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to
38709	// ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being
38710	// used for Internal HTTP(S) Load Balancing. A BACKUP subnetwork is one
38711	// that is ready to be promoted to ACTIVE or is currently draining. This
38712	// field can be updated with a patch request.
38713	//
38714	// Possible values:
38715	//   "ACTIVE"
38716	//   "BACKUP"
38717	Role string `json:"role,omitempty"`
38718
38719	// SecondaryIpRanges: An array of configurations for secondary IP ranges
38720	// for VM instances contained in this subnetwork. The primary IP of such
38721	// VM must belong to the primary ipCidrRange of the subnetwork. The
38722	// alias IPs may belong to either primary or secondary ranges. This
38723	// field can be updated with a patch request.
38724	SecondaryIpRanges []*SubnetworkSecondaryRange `json:"secondaryIpRanges,omitempty"`
38725
38726	// SelfLink: [Output Only] Server-defined URL for the resource.
38727	SelfLink string `json:"selfLink,omitempty"`
38728
38729	// StackType: The stack type for this subnet to identify whether the
38730	// IPv6 feature is enabled or not. If not specified IPV4_ONLY will be
38731	// used.
38732	//
38733	// This field can be both set at resource creation time and updated
38734	// using patch.
38735	//
38736	// Possible values:
38737	//   "IPV4_IPV6"
38738	//   "IPV4_ONLY"
38739	//   "UNSPECIFIED_STACK_TYPE"
38740	StackType string `json:"stackType,omitempty"`
38741
38742	// State: [Output Only] The state of the subnetwork, which can be one of
38743	// the following values: READY: Subnetwork is created and ready to use
38744	// DRAINING: only applicable to subnetworks that have the purpose set to
38745	// INTERNAL_HTTPS_LOAD_BALANCER and indicates that connections to the
38746	// load balancer are being drained. A subnetwork that is draining cannot
38747	// be used or modified until it reaches a status of READY
38748	//
38749	// Possible values:
38750	//   "DRAINING"
38751	//   "READY"
38752	State string `json:"state,omitempty"`
38753
38754	// ServerResponse contains the HTTP response code and headers from the
38755	// server.
38756	googleapi.ServerResponse `json:"-"`
38757
38758	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
38759	// to unconditionally include in API requests. By default, fields with
38760	// empty values are omitted from API requests. However, any non-pointer,
38761	// non-interface field appearing in ForceSendFields will be sent to the
38762	// server regardless of whether the field is empty or not. This may be
38763	// used to include empty fields in Patch requests.
38764	ForceSendFields []string `json:"-"`
38765
38766	// NullFields is a list of field names (e.g. "CreationTimestamp") to
38767	// include in API requests with the JSON null value. By default, fields
38768	// with empty values are omitted from API requests. However, any field
38769	// with an empty value appearing in NullFields will be sent to the
38770	// server as null. It is an error if a field in this list has a
38771	// non-empty value. This may be used to include null fields in Patch
38772	// requests.
38773	NullFields []string `json:"-"`
38774}
38775
38776func (s *Subnetwork) MarshalJSON() ([]byte, error) {
38777	type NoMethod Subnetwork
38778	raw := NoMethod(*s)
38779	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38780}
38781
38782type SubnetworkAggregatedList struct {
38783	// Id: [Output Only] Unique identifier for the resource; defined by the
38784	// server.
38785	Id string `json:"id,omitempty"`
38786
38787	// Items: A list of SubnetworksScopedList resources.
38788	Items map[string]SubnetworksScopedList `json:"items,omitempty"`
38789
38790	// Kind: [Output Only] Type of resource. Always
38791	// compute#subnetworkAggregatedList for aggregated lists of subnetworks.
38792	Kind string `json:"kind,omitempty"`
38793
38794	// NextPageToken: [Output Only] This token allows you to get the next
38795	// page of results for list requests. If the number of results is larger
38796	// than maxResults, use the nextPageToken as a value for the query
38797	// parameter pageToken in the next list request. Subsequent list
38798	// requests will have their own nextPageToken to continue paging through
38799	// the results.
38800	NextPageToken string `json:"nextPageToken,omitempty"`
38801
38802	// SelfLink: [Output Only] Server-defined URL for this resource.
38803	SelfLink string `json:"selfLink,omitempty"`
38804
38805	// Unreachables: [Output Only] Unreachable resources.
38806	Unreachables []string `json:"unreachables,omitempty"`
38807
38808	// Warning: [Output Only] Informational warning message.
38809	Warning *SubnetworkAggregatedListWarning `json:"warning,omitempty"`
38810
38811	// ServerResponse contains the HTTP response code and headers from the
38812	// server.
38813	googleapi.ServerResponse `json:"-"`
38814
38815	// ForceSendFields is a list of field names (e.g. "Id") to
38816	// unconditionally include in API requests. By default, fields with
38817	// empty values are omitted from API requests. However, any non-pointer,
38818	// non-interface field appearing in ForceSendFields will be sent to the
38819	// server regardless of whether the field is empty or not. This may be
38820	// used to include empty fields in Patch requests.
38821	ForceSendFields []string `json:"-"`
38822
38823	// NullFields is a list of field names (e.g. "Id") to include in API
38824	// requests with the JSON null value. By default, fields with empty
38825	// values are omitted from API requests. However, any field with an
38826	// empty value appearing in NullFields will be sent to the server as
38827	// null. It is an error if a field in this list has a non-empty value.
38828	// This may be used to include null fields in Patch requests.
38829	NullFields []string `json:"-"`
38830}
38831
38832func (s *SubnetworkAggregatedList) MarshalJSON() ([]byte, error) {
38833	type NoMethod SubnetworkAggregatedList
38834	raw := NoMethod(*s)
38835	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38836}
38837
38838// SubnetworkAggregatedListWarning: [Output Only] Informational warning
38839// message.
38840type SubnetworkAggregatedListWarning struct {
38841	// Code: [Output Only] A warning code, if applicable. For example,
38842	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
38843	// the response.
38844	//
38845	// Possible values:
38846	//   "CLEANUP_FAILED"
38847	//   "DEPRECATED_RESOURCE_USED"
38848	//   "DEPRECATED_TYPE_USED"
38849	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
38850	//   "EXPERIMENTAL_TYPE_USED"
38851	//   "EXTERNAL_API_WARNING"
38852	//   "FIELD_VALUE_OVERRIDEN"
38853	//   "INJECTED_KERNELS_DEPRECATED"
38854	//   "LARGE_DEPLOYMENT_WARNING"
38855	//   "MISSING_TYPE_DEPENDENCY"
38856	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
38857	//   "NEXT_HOP_CANNOT_IP_FORWARD"
38858	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
38859	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
38860	//   "NEXT_HOP_NOT_RUNNING"
38861	//   "NOT_CRITICAL_ERROR"
38862	//   "NO_RESULTS_ON_PAGE"
38863	//   "PARTIAL_SUCCESS"
38864	//   "REQUIRED_TOS_AGREEMENT"
38865	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
38866	//   "RESOURCE_NOT_DELETED"
38867	//   "SCHEMA_VALIDATION_IGNORED"
38868	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
38869	//   "UNDECLARED_PROPERTIES"
38870	//   "UNREACHABLE"
38871	Code string `json:"code,omitempty"`
38872
38873	// Data: [Output Only] Metadata about this warning in key: value format.
38874	// For example:
38875	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
38876	Data []*SubnetworkAggregatedListWarningData `json:"data,omitempty"`
38877
38878	// Message: [Output Only] A human-readable description of the warning
38879	// code.
38880	Message string `json:"message,omitempty"`
38881
38882	// ForceSendFields is a list of field names (e.g. "Code") to
38883	// unconditionally include in API requests. By default, fields with
38884	// empty values are omitted from API requests. However, any non-pointer,
38885	// non-interface field appearing in ForceSendFields will be sent to the
38886	// server regardless of whether the field is empty or not. This may be
38887	// used to include empty fields in Patch requests.
38888	ForceSendFields []string `json:"-"`
38889
38890	// NullFields is a list of field names (e.g. "Code") to include in API
38891	// requests with the JSON null value. By default, fields with empty
38892	// values are omitted from API requests. However, any field with an
38893	// empty value appearing in NullFields will be sent to the server as
38894	// null. It is an error if a field in this list has a non-empty value.
38895	// This may be used to include null fields in Patch requests.
38896	NullFields []string `json:"-"`
38897}
38898
38899func (s *SubnetworkAggregatedListWarning) MarshalJSON() ([]byte, error) {
38900	type NoMethod SubnetworkAggregatedListWarning
38901	raw := NoMethod(*s)
38902	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38903}
38904
38905type SubnetworkAggregatedListWarningData struct {
38906	// Key: [Output Only] A key that provides more detail on the warning
38907	// being returned. For example, for warnings where there are no results
38908	// in a list request for a particular zone, this key might be scope and
38909	// the key value might be the zone name. Other examples might be a key
38910	// indicating a deprecated resource and a suggested replacement, or a
38911	// warning about invalid network settings (for example, if an instance
38912	// attempts to perform IP forwarding but is not enabled for IP
38913	// forwarding).
38914	Key string `json:"key,omitempty"`
38915
38916	// Value: [Output Only] A warning data value corresponding to the key.
38917	Value string `json:"value,omitempty"`
38918
38919	// ForceSendFields is a list of field names (e.g. "Key") to
38920	// unconditionally include in API requests. By default, fields with
38921	// empty values are omitted from API requests. However, any non-pointer,
38922	// non-interface field appearing in ForceSendFields will be sent to the
38923	// server regardless of whether the field is empty or not. This may be
38924	// used to include empty fields in Patch requests.
38925	ForceSendFields []string `json:"-"`
38926
38927	// NullFields is a list of field names (e.g. "Key") to include in API
38928	// requests with the JSON null value. By default, fields with empty
38929	// values are omitted from API requests. However, any field with an
38930	// empty value appearing in NullFields will be sent to the server as
38931	// null. It is an error if a field in this list has a non-empty value.
38932	// This may be used to include null fields in Patch requests.
38933	NullFields []string `json:"-"`
38934}
38935
38936func (s *SubnetworkAggregatedListWarningData) MarshalJSON() ([]byte, error) {
38937	type NoMethod SubnetworkAggregatedListWarningData
38938	raw := NoMethod(*s)
38939	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38940}
38941
38942// SubnetworkList: Contains a list of Subnetwork resources.
38943type SubnetworkList struct {
38944	// Id: [Output Only] Unique identifier for the resource; defined by the
38945	// server.
38946	Id string `json:"id,omitempty"`
38947
38948	// Items: A list of Subnetwork resources.
38949	Items []*Subnetwork `json:"items,omitempty"`
38950
38951	// Kind: [Output Only] Type of resource. Always compute#subnetworkList
38952	// for lists of subnetworks.
38953	Kind string `json:"kind,omitempty"`
38954
38955	// NextPageToken: [Output Only] This token allows you to get the next
38956	// page of results for list requests. If the number of results is larger
38957	// than maxResults, use the nextPageToken as a value for the query
38958	// parameter pageToken in the next list request. Subsequent list
38959	// requests will have their own nextPageToken to continue paging through
38960	// the results.
38961	NextPageToken string `json:"nextPageToken,omitempty"`
38962
38963	// SelfLink: [Output Only] Server-defined URL for this resource.
38964	SelfLink string `json:"selfLink,omitempty"`
38965
38966	// Warning: [Output Only] Informational warning message.
38967	Warning *SubnetworkListWarning `json:"warning,omitempty"`
38968
38969	// ServerResponse contains the HTTP response code and headers from the
38970	// server.
38971	googleapi.ServerResponse `json:"-"`
38972
38973	// ForceSendFields is a list of field names (e.g. "Id") to
38974	// unconditionally include in API requests. By default, fields with
38975	// empty values are omitted from API requests. However, any non-pointer,
38976	// non-interface field appearing in ForceSendFields will be sent to the
38977	// server regardless of whether the field is empty or not. This may be
38978	// used to include empty fields in Patch requests.
38979	ForceSendFields []string `json:"-"`
38980
38981	// NullFields is a list of field names (e.g. "Id") to include in API
38982	// requests with the JSON null value. By default, fields with empty
38983	// values are omitted from API requests. However, any field with an
38984	// empty value appearing in NullFields will be sent to the server as
38985	// null. It is an error if a field in this list has a non-empty value.
38986	// This may be used to include null fields in Patch requests.
38987	NullFields []string `json:"-"`
38988}
38989
38990func (s *SubnetworkList) MarshalJSON() ([]byte, error) {
38991	type NoMethod SubnetworkList
38992	raw := NoMethod(*s)
38993	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38994}
38995
38996// SubnetworkListWarning: [Output Only] Informational warning message.
38997type SubnetworkListWarning struct {
38998	// Code: [Output Only] A warning code, if applicable. For example,
38999	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
39000	// the response.
39001	//
39002	// Possible values:
39003	//   "CLEANUP_FAILED"
39004	//   "DEPRECATED_RESOURCE_USED"
39005	//   "DEPRECATED_TYPE_USED"
39006	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
39007	//   "EXPERIMENTAL_TYPE_USED"
39008	//   "EXTERNAL_API_WARNING"
39009	//   "FIELD_VALUE_OVERRIDEN"
39010	//   "INJECTED_KERNELS_DEPRECATED"
39011	//   "LARGE_DEPLOYMENT_WARNING"
39012	//   "MISSING_TYPE_DEPENDENCY"
39013	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
39014	//   "NEXT_HOP_CANNOT_IP_FORWARD"
39015	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
39016	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
39017	//   "NEXT_HOP_NOT_RUNNING"
39018	//   "NOT_CRITICAL_ERROR"
39019	//   "NO_RESULTS_ON_PAGE"
39020	//   "PARTIAL_SUCCESS"
39021	//   "REQUIRED_TOS_AGREEMENT"
39022	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
39023	//   "RESOURCE_NOT_DELETED"
39024	//   "SCHEMA_VALIDATION_IGNORED"
39025	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
39026	//   "UNDECLARED_PROPERTIES"
39027	//   "UNREACHABLE"
39028	Code string `json:"code,omitempty"`
39029
39030	// Data: [Output Only] Metadata about this warning in key: value format.
39031	// For example:
39032	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
39033	Data []*SubnetworkListWarningData `json:"data,omitempty"`
39034
39035	// Message: [Output Only] A human-readable description of the warning
39036	// code.
39037	Message string `json:"message,omitempty"`
39038
39039	// ForceSendFields is a list of field names (e.g. "Code") to
39040	// unconditionally include in API requests. By default, fields with
39041	// empty values are omitted from API requests. However, any non-pointer,
39042	// non-interface field appearing in ForceSendFields will be sent to the
39043	// server regardless of whether the field is empty or not. This may be
39044	// used to include empty fields in Patch requests.
39045	ForceSendFields []string `json:"-"`
39046
39047	// NullFields is a list of field names (e.g. "Code") to include in API
39048	// requests with the JSON null value. By default, fields with empty
39049	// values are omitted from API requests. However, any field with an
39050	// empty value appearing in NullFields will be sent to the server as
39051	// null. It is an error if a field in this list has a non-empty value.
39052	// This may be used to include null fields in Patch requests.
39053	NullFields []string `json:"-"`
39054}
39055
39056func (s *SubnetworkListWarning) MarshalJSON() ([]byte, error) {
39057	type NoMethod SubnetworkListWarning
39058	raw := NoMethod(*s)
39059	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39060}
39061
39062type SubnetworkListWarningData struct {
39063	// Key: [Output Only] A key that provides more detail on the warning
39064	// being returned. For example, for warnings where there are no results
39065	// in a list request for a particular zone, this key might be scope and
39066	// the key value might be the zone name. Other examples might be a key
39067	// indicating a deprecated resource and a suggested replacement, or a
39068	// warning about invalid network settings (for example, if an instance
39069	// attempts to perform IP forwarding but is not enabled for IP
39070	// forwarding).
39071	Key string `json:"key,omitempty"`
39072
39073	// Value: [Output Only] A warning data value corresponding to the key.
39074	Value string `json:"value,omitempty"`
39075
39076	// ForceSendFields is a list of field names (e.g. "Key") to
39077	// unconditionally include in API requests. By default, fields with
39078	// empty values are omitted from API requests. However, any non-pointer,
39079	// non-interface field appearing in ForceSendFields will be sent to the
39080	// server regardless of whether the field is empty or not. This may be
39081	// used to include empty fields in Patch requests.
39082	ForceSendFields []string `json:"-"`
39083
39084	// NullFields is a list of field names (e.g. "Key") to include in API
39085	// requests with the JSON null value. By default, fields with empty
39086	// values are omitted from API requests. However, any field with an
39087	// empty value appearing in NullFields will be sent to the server as
39088	// null. It is an error if a field in this list has a non-empty value.
39089	// This may be used to include null fields in Patch requests.
39090	NullFields []string `json:"-"`
39091}
39092
39093func (s *SubnetworkListWarningData) MarshalJSON() ([]byte, error) {
39094	type NoMethod SubnetworkListWarningData
39095	raw := NoMethod(*s)
39096	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39097}
39098
39099// SubnetworkLogConfig: The available logging options for this
39100// subnetwork.
39101type SubnetworkLogConfig struct {
39102	// AggregationInterval: Can only be specified if VPC flow logging for
39103	// this subnetwork is enabled. Toggles the aggregation interval for
39104	// collecting flow logs. Increasing the interval time will reduce the
39105	// amount of generated flow logs for long lasting connections. Default
39106	// is an interval of 5 seconds per connection.
39107	//
39108	// Possible values:
39109	//   "INTERVAL_10_MIN"
39110	//   "INTERVAL_15_MIN"
39111	//   "INTERVAL_1_MIN"
39112	//   "INTERVAL_30_SEC"
39113	//   "INTERVAL_5_MIN"
39114	//   "INTERVAL_5_SEC"
39115	AggregationInterval string `json:"aggregationInterval,omitempty"`
39116
39117	// Enable: Whether to enable flow logging for this subnetwork. If this
39118	// field is not explicitly set, it will not appear in get listings. If
39119	// not set the default behavior is to disable flow logging.
39120	Enable bool `json:"enable,omitempty"`
39121
39122	// FilterExpr: Can only be specified if VPC flow logs for this
39123	// subnetwork is enabled. Export filter used to define which VPC flow
39124	// logs should be logged.
39125	FilterExpr string `json:"filterExpr,omitempty"`
39126
39127	// FlowSampling: Can only be specified if VPC flow logging for this
39128	// subnetwork is enabled. The value of the field must be in [0, 1]. Set
39129	// the sampling rate of VPC flow logs within the subnetwork where 1.0
39130	// means all collected logs are reported and 0.0 means no logs are
39131	// reported. Default is 0.5, which means half of all collected logs are
39132	// reported.
39133	FlowSampling float64 `json:"flowSampling,omitempty"`
39134
39135	// Metadata: Can only be specified if VPC flow logs for this subnetwork
39136	// is enabled. Configures whether all, none or a subset of metadata
39137	// fields should be added to the reported VPC flow logs. Default is
39138	// EXCLUDE_ALL_METADATA.
39139	//
39140	// Possible values:
39141	//   "CUSTOM_METADATA"
39142	//   "EXCLUDE_ALL_METADATA"
39143	//   "INCLUDE_ALL_METADATA"
39144	Metadata string `json:"metadata,omitempty"`
39145
39146	// MetadataFields: Can only be specified if VPC flow logs for this
39147	// subnetwork is enabled and "metadata" was set to CUSTOM_METADATA.
39148	MetadataFields []string `json:"metadataFields,omitempty"`
39149
39150	// ForceSendFields is a list of field names (e.g. "AggregationInterval")
39151	// to unconditionally include in API requests. By default, fields with
39152	// empty values are omitted from API requests. However, any non-pointer,
39153	// non-interface field appearing in ForceSendFields will be sent to the
39154	// server regardless of whether the field is empty or not. This may be
39155	// used to include empty fields in Patch requests.
39156	ForceSendFields []string `json:"-"`
39157
39158	// NullFields is a list of field names (e.g. "AggregationInterval") to
39159	// include in API requests with the JSON null value. By default, fields
39160	// with empty values are omitted from API requests. However, any field
39161	// with an empty value appearing in NullFields will be sent to the
39162	// server as null. It is an error if a field in this list has a
39163	// non-empty value. This may be used to include null fields in Patch
39164	// requests.
39165	NullFields []string `json:"-"`
39166}
39167
39168func (s *SubnetworkLogConfig) MarshalJSON() ([]byte, error) {
39169	type NoMethod SubnetworkLogConfig
39170	raw := NoMethod(*s)
39171	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39172}
39173
39174func (s *SubnetworkLogConfig) UnmarshalJSON(data []byte) error {
39175	type NoMethod SubnetworkLogConfig
39176	var s1 struct {
39177		FlowSampling gensupport.JSONFloat64 `json:"flowSampling"`
39178		*NoMethod
39179	}
39180	s1.NoMethod = (*NoMethod)(s)
39181	if err := json.Unmarshal(data, &s1); err != nil {
39182		return err
39183	}
39184	s.FlowSampling = float64(s1.FlowSampling)
39185	return nil
39186}
39187
39188// SubnetworkSecondaryRange: Represents a secondary IP range of a
39189// subnetwork.
39190type SubnetworkSecondaryRange struct {
39191	// IpCidrRange: The range of IP addresses belonging to this subnetwork
39192	// secondary range. Provide this property when you create the
39193	// subnetwork. Ranges must be unique and non-overlapping with all
39194	// primary and secondary IP ranges within a network. Only IPv4 is
39195	// supported. The range can be any range listed in the Valid ranges
39196	// list.
39197	IpCidrRange string `json:"ipCidrRange,omitempty"`
39198
39199	// RangeName: The name associated with this subnetwork secondary range,
39200	// used when adding an alias IP range to a VM instance. The name must be
39201	// 1-63 characters long, and comply with RFC1035. The name must be
39202	// unique within the subnetwork.
39203	RangeName string `json:"rangeName,omitempty"`
39204
39205	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
39206	// unconditionally include in API requests. By default, fields with
39207	// empty values are omitted from API requests. However, any non-pointer,
39208	// non-interface field appearing in ForceSendFields will be sent to the
39209	// server regardless of whether the field is empty or not. This may be
39210	// used to include empty fields in Patch requests.
39211	ForceSendFields []string `json:"-"`
39212
39213	// NullFields is a list of field names (e.g. "IpCidrRange") to include
39214	// in API requests with the JSON null value. By default, fields with
39215	// empty values are omitted from API requests. However, any field with
39216	// an empty value appearing in NullFields will be sent to the server as
39217	// null. It is an error if a field in this list has a non-empty value.
39218	// This may be used to include null fields in Patch requests.
39219	NullFields []string `json:"-"`
39220}
39221
39222func (s *SubnetworkSecondaryRange) MarshalJSON() ([]byte, error) {
39223	type NoMethod SubnetworkSecondaryRange
39224	raw := NoMethod(*s)
39225	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39226}
39227
39228type SubnetworksExpandIpCidrRangeRequest struct {
39229	// IpCidrRange: The IP (in CIDR format or netmask) of internal addresses
39230	// that are legal on this Subnetwork. This range should be disjoint from
39231	// other subnetworks within this network. This range can only be larger
39232	// than (i.e. a superset of) the range previously defined before the
39233	// update.
39234	IpCidrRange string `json:"ipCidrRange,omitempty"`
39235
39236	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
39237	// unconditionally include in API requests. By default, fields with
39238	// empty values are omitted from API requests. However, any non-pointer,
39239	// non-interface field appearing in ForceSendFields will be sent to the
39240	// server regardless of whether the field is empty or not. This may be
39241	// used to include empty fields in Patch requests.
39242	ForceSendFields []string `json:"-"`
39243
39244	// NullFields is a list of field names (e.g. "IpCidrRange") to include
39245	// in API requests with the JSON null value. By default, fields with
39246	// empty values are omitted from API requests. However, any field with
39247	// an empty value appearing in NullFields will be sent to the server as
39248	// null. It is an error if a field in this list has a non-empty value.
39249	// This may be used to include null fields in Patch requests.
39250	NullFields []string `json:"-"`
39251}
39252
39253func (s *SubnetworksExpandIpCidrRangeRequest) MarshalJSON() ([]byte, error) {
39254	type NoMethod SubnetworksExpandIpCidrRangeRequest
39255	raw := NoMethod(*s)
39256	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39257}
39258
39259type SubnetworksScopedList struct {
39260	// Subnetworks: A list of subnetworks contained in this scope.
39261	Subnetworks []*Subnetwork `json:"subnetworks,omitempty"`
39262
39263	// Warning: An informational warning that appears when the list of
39264	// addresses is empty.
39265	Warning *SubnetworksScopedListWarning `json:"warning,omitempty"`
39266
39267	// ForceSendFields is a list of field names (e.g. "Subnetworks") to
39268	// unconditionally include in API requests. By default, fields with
39269	// empty values are omitted from API requests. However, any non-pointer,
39270	// non-interface field appearing in ForceSendFields will be sent to the
39271	// server regardless of whether the field is empty or not. This may be
39272	// used to include empty fields in Patch requests.
39273	ForceSendFields []string `json:"-"`
39274
39275	// NullFields is a list of field names (e.g. "Subnetworks") to include
39276	// in API requests with the JSON null value. By default, fields with
39277	// empty values are omitted from API requests. However, any field with
39278	// an empty value appearing in NullFields will be sent to the server as
39279	// null. It is an error if a field in this list has a non-empty value.
39280	// This may be used to include null fields in Patch requests.
39281	NullFields []string `json:"-"`
39282}
39283
39284func (s *SubnetworksScopedList) MarshalJSON() ([]byte, error) {
39285	type NoMethod SubnetworksScopedList
39286	raw := NoMethod(*s)
39287	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39288}
39289
39290// SubnetworksScopedListWarning: An informational warning that appears
39291// when the list of addresses is empty.
39292type SubnetworksScopedListWarning struct {
39293	// Code: [Output Only] A warning code, if applicable. For example,
39294	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
39295	// the response.
39296	//
39297	// Possible values:
39298	//   "CLEANUP_FAILED"
39299	//   "DEPRECATED_RESOURCE_USED"
39300	//   "DEPRECATED_TYPE_USED"
39301	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
39302	//   "EXPERIMENTAL_TYPE_USED"
39303	//   "EXTERNAL_API_WARNING"
39304	//   "FIELD_VALUE_OVERRIDEN"
39305	//   "INJECTED_KERNELS_DEPRECATED"
39306	//   "LARGE_DEPLOYMENT_WARNING"
39307	//   "MISSING_TYPE_DEPENDENCY"
39308	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
39309	//   "NEXT_HOP_CANNOT_IP_FORWARD"
39310	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
39311	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
39312	//   "NEXT_HOP_NOT_RUNNING"
39313	//   "NOT_CRITICAL_ERROR"
39314	//   "NO_RESULTS_ON_PAGE"
39315	//   "PARTIAL_SUCCESS"
39316	//   "REQUIRED_TOS_AGREEMENT"
39317	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
39318	//   "RESOURCE_NOT_DELETED"
39319	//   "SCHEMA_VALIDATION_IGNORED"
39320	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
39321	//   "UNDECLARED_PROPERTIES"
39322	//   "UNREACHABLE"
39323	Code string `json:"code,omitempty"`
39324
39325	// Data: [Output Only] Metadata about this warning in key: value format.
39326	// For example:
39327	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
39328	Data []*SubnetworksScopedListWarningData `json:"data,omitempty"`
39329
39330	// Message: [Output Only] A human-readable description of the warning
39331	// code.
39332	Message string `json:"message,omitempty"`
39333
39334	// ForceSendFields is a list of field names (e.g. "Code") to
39335	// unconditionally include in API requests. By default, fields with
39336	// empty values are omitted from API requests. However, any non-pointer,
39337	// non-interface field appearing in ForceSendFields will be sent to the
39338	// server regardless of whether the field is empty or not. This may be
39339	// used to include empty fields in Patch requests.
39340	ForceSendFields []string `json:"-"`
39341
39342	// NullFields is a list of field names (e.g. "Code") to include in API
39343	// requests with the JSON null value. By default, fields with empty
39344	// values are omitted from API requests. However, any field with an
39345	// empty value appearing in NullFields will be sent to the server as
39346	// null. It is an error if a field in this list has a non-empty value.
39347	// This may be used to include null fields in Patch requests.
39348	NullFields []string `json:"-"`
39349}
39350
39351func (s *SubnetworksScopedListWarning) MarshalJSON() ([]byte, error) {
39352	type NoMethod SubnetworksScopedListWarning
39353	raw := NoMethod(*s)
39354	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39355}
39356
39357type SubnetworksScopedListWarningData struct {
39358	// Key: [Output Only] A key that provides more detail on the warning
39359	// being returned. For example, for warnings where there are no results
39360	// in a list request for a particular zone, this key might be scope and
39361	// the key value might be the zone name. Other examples might be a key
39362	// indicating a deprecated resource and a suggested replacement, or a
39363	// warning about invalid network settings (for example, if an instance
39364	// attempts to perform IP forwarding but is not enabled for IP
39365	// forwarding).
39366	Key string `json:"key,omitempty"`
39367
39368	// Value: [Output Only] A warning data value corresponding to the key.
39369	Value string `json:"value,omitempty"`
39370
39371	// ForceSendFields is a list of field names (e.g. "Key") to
39372	// unconditionally include in API requests. By default, fields with
39373	// empty values are omitted from API requests. However, any non-pointer,
39374	// non-interface field appearing in ForceSendFields will be sent to the
39375	// server regardless of whether the field is empty or not. This may be
39376	// used to include empty fields in Patch requests.
39377	ForceSendFields []string `json:"-"`
39378
39379	// NullFields is a list of field names (e.g. "Key") to include in API
39380	// requests with the JSON null value. By default, fields with empty
39381	// values are omitted from API requests. However, any field with an
39382	// empty value appearing in NullFields will be sent to the server as
39383	// null. It is an error if a field in this list has a non-empty value.
39384	// This may be used to include null fields in Patch requests.
39385	NullFields []string `json:"-"`
39386}
39387
39388func (s *SubnetworksScopedListWarningData) MarshalJSON() ([]byte, error) {
39389	type NoMethod SubnetworksScopedListWarningData
39390	raw := NoMethod(*s)
39391	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39392}
39393
39394type SubnetworksSetPrivateIpGoogleAccessRequest struct {
39395	PrivateIpGoogleAccess bool `json:"privateIpGoogleAccess,omitempty"`
39396
39397	// ForceSendFields is a list of field names (e.g.
39398	// "PrivateIpGoogleAccess") to unconditionally include in API requests.
39399	// By default, fields with empty values are omitted from API requests.
39400	// However, any non-pointer, non-interface field appearing in
39401	// ForceSendFields will be sent to the server regardless of whether the
39402	// field is empty or not. This may be used to include empty fields in
39403	// Patch requests.
39404	ForceSendFields []string `json:"-"`
39405
39406	// NullFields is a list of field names (e.g. "PrivateIpGoogleAccess") to
39407	// include in API requests with the JSON null value. By default, fields
39408	// with empty values are omitted from API requests. However, any field
39409	// with an empty value appearing in NullFields will be sent to the
39410	// server as null. It is an error if a field in this list has a
39411	// non-empty value. This may be used to include null fields in Patch
39412	// requests.
39413	NullFields []string `json:"-"`
39414}
39415
39416func (s *SubnetworksSetPrivateIpGoogleAccessRequest) MarshalJSON() ([]byte, error) {
39417	type NoMethod SubnetworksSetPrivateIpGoogleAccessRequest
39418	raw := NoMethod(*s)
39419	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39420}
39421
39422type TCPHealthCheck struct {
39423	// Port: The TCP port number for the health check request. The default
39424	// value is 80. Valid values are 1 through 65535.
39425	Port int64 `json:"port,omitempty"`
39426
39427	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
39428	// both port and port_name are defined, port takes precedence.
39429	PortName string `json:"portName,omitempty"`
39430
39431	// PortSpecification: Specifies how port is selected for health
39432	// checking, can be one of following values:
39433	// USE_FIXED_PORT: The port number in port is used for health
39434	// checking.
39435	// USE_NAMED_PORT: The portName is used for health
39436	// checking.
39437	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
39438	// each network endpoint is used for health checking. For other
39439	// backends, the port or named port specified in the Backend Service is
39440	// used for health checking.
39441	//
39442	//
39443	// If not specified, TCP health check follows behavior specified in port
39444	// and portName fields.
39445	//
39446	// Possible values:
39447	//   "USE_FIXED_PORT"
39448	//   "USE_NAMED_PORT"
39449	//   "USE_SERVING_PORT"
39450	PortSpecification string `json:"portSpecification,omitempty"`
39451
39452	// ProxyHeader: Specifies the type of proxy header to append before
39453	// sending data to the backend, either NONE or PROXY_V1. The default is
39454	// NONE.
39455	//
39456	// Possible values:
39457	//   "NONE"
39458	//   "PROXY_V1"
39459	ProxyHeader string `json:"proxyHeader,omitempty"`
39460
39461	// Request: The application data to send once the TCP connection has
39462	// been established (default value is empty). If both request and
39463	// response are empty, the connection establishment alone will indicate
39464	// health. The request data can only be ASCII.
39465	Request string `json:"request,omitempty"`
39466
39467	// Response: The bytes to match against the beginning of the response
39468	// data. If left empty (the default value), any response will indicate
39469	// health. The response data can only be ASCII.
39470	Response string `json:"response,omitempty"`
39471
39472	// ForceSendFields is a list of field names (e.g. "Port") to
39473	// unconditionally include in API requests. By default, fields with
39474	// empty values are omitted from API requests. However, any non-pointer,
39475	// non-interface field appearing in ForceSendFields will be sent to the
39476	// server regardless of whether the field is empty or not. This may be
39477	// used to include empty fields in Patch requests.
39478	ForceSendFields []string `json:"-"`
39479
39480	// NullFields is a list of field names (e.g. "Port") to include in API
39481	// requests with the JSON null value. By default, fields with empty
39482	// values are omitted from API requests. However, any field with an
39483	// empty value appearing in NullFields will be sent to the server as
39484	// null. It is an error if a field in this list has a non-empty value.
39485	// This may be used to include null fields in Patch requests.
39486	NullFields []string `json:"-"`
39487}
39488
39489func (s *TCPHealthCheck) MarshalJSON() ([]byte, error) {
39490	type NoMethod TCPHealthCheck
39491	raw := NoMethod(*s)
39492	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39493}
39494
39495// Tags: A set of instance tags.
39496type Tags struct {
39497	// Fingerprint: Specifies a fingerprint for this request, which is
39498	// essentially a hash of the tags' contents and used for optimistic
39499	// locking. The fingerprint is initially generated by Compute Engine and
39500	// changes after every request to modify or update tags. You must always
39501	// provide an up-to-date fingerprint hash in order to update or change
39502	// tags.
39503	//
39504	// To see the latest fingerprint, make get() request to the instance.
39505	Fingerprint string `json:"fingerprint,omitempty"`
39506
39507	// Items: An array of tags. Each tag must be 1-63 characters long, and
39508	// comply with RFC1035.
39509	Items []string `json:"items,omitempty"`
39510
39511	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
39512	// unconditionally include in API requests. By default, fields with
39513	// empty values are omitted from API requests. However, any non-pointer,
39514	// non-interface field appearing in ForceSendFields will be sent to the
39515	// server regardless of whether the field is empty or not. This may be
39516	// used to include empty fields in Patch requests.
39517	ForceSendFields []string `json:"-"`
39518
39519	// NullFields is a list of field names (e.g. "Fingerprint") to include
39520	// in API requests with the JSON null value. By default, fields with
39521	// empty values are omitted from API requests. However, any field with
39522	// an empty value appearing in NullFields will be sent to the server as
39523	// null. It is an error if a field in this list has a non-empty value.
39524	// This may be used to include null fields in Patch requests.
39525	NullFields []string `json:"-"`
39526}
39527
39528func (s *Tags) MarshalJSON() ([]byte, error) {
39529	type NoMethod Tags
39530	raw := NoMethod(*s)
39531	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39532}
39533
39534// TargetGrpcProxy: Represents a Target gRPC Proxy resource.
39535//
39536// A target gRPC proxy is a component of load balancers intended for
39537// load balancing gRPC traffic. Only global forwarding rules with load
39538// balancing scheme INTERNAL_SELF_MANAGED can reference a target gRPC
39539// proxy. The target gRPC Proxy references a URL map that specifies how
39540// traffic is routed to gRPC backend services. (== resource_for
39541// {$api_version}.targetGrpcProxies ==)
39542type TargetGrpcProxy struct {
39543	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
39544	// format.
39545	CreationTimestamp string `json:"creationTimestamp,omitempty"`
39546
39547	// Description: An optional description of this resource. Provide this
39548	// property when you create the resource.
39549	Description string `json:"description,omitempty"`
39550
39551	// Fingerprint: Fingerprint of this resource. A hash of the contents
39552	// stored in this object. This field is used in optimistic locking. This
39553	// field will be ignored when inserting a TargetGrpcProxy. An up-to-date
39554	// fingerprint must be provided in order to patch/update the
39555	// TargetGrpcProxy; otherwise, the request will fail with error 412
39556	// conditionNotMet. To see the latest fingerprint, make a get() request
39557	// to retrieve the TargetGrpcProxy.
39558	Fingerprint string `json:"fingerprint,omitempty"`
39559
39560	// Id: [Output Only] The unique identifier for the resource type. The
39561	// server generates this identifier.
39562	Id uint64 `json:"id,omitempty,string"`
39563
39564	// Kind: [Output Only] Type of the resource. Always
39565	// compute#targetGrpcProxy for target grpc proxies.
39566	Kind string `json:"kind,omitempty"`
39567
39568	// Name: Name of the resource. Provided by the client when the resource
39569	// is created. The name must be 1-63 characters long, and comply with
39570	// RFC1035. Specifically, the name must be 1-63 characters long and
39571	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
39572	// the first character must be a lowercase letter, and all following
39573	// characters must be a dash, lowercase letter, or digit, except the
39574	// last character, which cannot be a dash.
39575	Name string `json:"name,omitempty"`
39576
39577	// SelfLink: [Output Only] Server-defined URL for the resource.
39578	SelfLink string `json:"selfLink,omitempty"`
39579
39580	// SelfLinkWithId: [Output Only] Server-defined URL with id for the
39581	// resource.
39582	SelfLinkWithId string `json:"selfLinkWithId,omitempty"`
39583
39584	// UrlMap: URL to the UrlMap resource that defines the mapping from URL
39585	// to the BackendService. The protocol field in the BackendService must
39586	// be set to GRPC.
39587	UrlMap string `json:"urlMap,omitempty"`
39588
39589	// ValidateForProxyless: If true, indicates that the BackendServices
39590	// referenced by the urlMap may be accessed by gRPC applications without
39591	// using a sidecar proxy. This will enable configuration checks on
39592	// urlMap and its referenced BackendServices to not allow unsupported
39593	// features. A gRPC application must use "xds:///" scheme in the target
39594	// URI of the service it is connecting to. If false, indicates that the
39595	// BackendServices referenced by the urlMap will be accessed by gRPC
39596	// applications via a sidecar proxy. In this case, a gRPC application
39597	// must not use "xds:///" scheme in the target URI of the service it is
39598	// connecting to
39599	ValidateForProxyless bool `json:"validateForProxyless,omitempty"`
39600
39601	// ServerResponse contains the HTTP response code and headers from the
39602	// server.
39603	googleapi.ServerResponse `json:"-"`
39604
39605	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
39606	// to unconditionally include in API requests. By default, fields with
39607	// empty values are omitted from API requests. However, any non-pointer,
39608	// non-interface field appearing in ForceSendFields will be sent to the
39609	// server regardless of whether the field is empty or not. This may be
39610	// used to include empty fields in Patch requests.
39611	ForceSendFields []string `json:"-"`
39612
39613	// NullFields is a list of field names (e.g. "CreationTimestamp") to
39614	// include in API requests with the JSON null value. By default, fields
39615	// with empty values are omitted from API requests. However, any field
39616	// with an empty value appearing in NullFields will be sent to the
39617	// server as null. It is an error if a field in this list has a
39618	// non-empty value. This may be used to include null fields in Patch
39619	// requests.
39620	NullFields []string `json:"-"`
39621}
39622
39623func (s *TargetGrpcProxy) MarshalJSON() ([]byte, error) {
39624	type NoMethod TargetGrpcProxy
39625	raw := NoMethod(*s)
39626	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39627}
39628
39629type TargetGrpcProxyList struct {
39630	// Id: [Output Only] Unique identifier for the resource; defined by the
39631	// server.
39632	Id string `json:"id,omitempty"`
39633
39634	// Items: A list of TargetGrpcProxy resources.
39635	Items []*TargetGrpcProxy `json:"items,omitempty"`
39636
39637	// Kind: [Output Only] Type of the resource. Always
39638	// compute#targetGrpcProxy for target grpc proxies.
39639	Kind string `json:"kind,omitempty"`
39640
39641	// NextPageToken: [Output Only] This token allows you to get the next
39642	// page of results for list requests. If the number of results is larger
39643	// than maxResults, use the nextPageToken as a value for the query
39644	// parameter pageToken in the next list request. Subsequent list
39645	// requests will have their own nextPageToken to continue paging through
39646	// the results.
39647	NextPageToken string `json:"nextPageToken,omitempty"`
39648
39649	// SelfLink: [Output Only] Server-defined URL for this resource.
39650	SelfLink string `json:"selfLink,omitempty"`
39651
39652	// Warning: [Output Only] Informational warning message.
39653	Warning *TargetGrpcProxyListWarning `json:"warning,omitempty"`
39654
39655	// ServerResponse contains the HTTP response code and headers from the
39656	// server.
39657	googleapi.ServerResponse `json:"-"`
39658
39659	// ForceSendFields is a list of field names (e.g. "Id") to
39660	// unconditionally include in API requests. By default, fields with
39661	// empty values are omitted from API requests. However, any non-pointer,
39662	// non-interface field appearing in ForceSendFields will be sent to the
39663	// server regardless of whether the field is empty or not. This may be
39664	// used to include empty fields in Patch requests.
39665	ForceSendFields []string `json:"-"`
39666
39667	// NullFields is a list of field names (e.g. "Id") to include in API
39668	// requests with the JSON null value. By default, fields with empty
39669	// values are omitted from API requests. However, any field with an
39670	// empty value appearing in NullFields will be sent to the server as
39671	// null. It is an error if a field in this list has a non-empty value.
39672	// This may be used to include null fields in Patch requests.
39673	NullFields []string `json:"-"`
39674}
39675
39676func (s *TargetGrpcProxyList) MarshalJSON() ([]byte, error) {
39677	type NoMethod TargetGrpcProxyList
39678	raw := NoMethod(*s)
39679	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39680}
39681
39682// TargetGrpcProxyListWarning: [Output Only] Informational warning
39683// message.
39684type TargetGrpcProxyListWarning struct {
39685	// Code: [Output Only] A warning code, if applicable. For example,
39686	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
39687	// the response.
39688	//
39689	// Possible values:
39690	//   "CLEANUP_FAILED"
39691	//   "DEPRECATED_RESOURCE_USED"
39692	//   "DEPRECATED_TYPE_USED"
39693	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
39694	//   "EXPERIMENTAL_TYPE_USED"
39695	//   "EXTERNAL_API_WARNING"
39696	//   "FIELD_VALUE_OVERRIDEN"
39697	//   "INJECTED_KERNELS_DEPRECATED"
39698	//   "LARGE_DEPLOYMENT_WARNING"
39699	//   "MISSING_TYPE_DEPENDENCY"
39700	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
39701	//   "NEXT_HOP_CANNOT_IP_FORWARD"
39702	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
39703	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
39704	//   "NEXT_HOP_NOT_RUNNING"
39705	//   "NOT_CRITICAL_ERROR"
39706	//   "NO_RESULTS_ON_PAGE"
39707	//   "PARTIAL_SUCCESS"
39708	//   "REQUIRED_TOS_AGREEMENT"
39709	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
39710	//   "RESOURCE_NOT_DELETED"
39711	//   "SCHEMA_VALIDATION_IGNORED"
39712	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
39713	//   "UNDECLARED_PROPERTIES"
39714	//   "UNREACHABLE"
39715	Code string `json:"code,omitempty"`
39716
39717	// Data: [Output Only] Metadata about this warning in key: value format.
39718	// For example:
39719	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
39720	Data []*TargetGrpcProxyListWarningData `json:"data,omitempty"`
39721
39722	// Message: [Output Only] A human-readable description of the warning
39723	// code.
39724	Message string `json:"message,omitempty"`
39725
39726	// ForceSendFields is a list of field names (e.g. "Code") to
39727	// unconditionally include in API requests. By default, fields with
39728	// empty values are omitted from API requests. However, any non-pointer,
39729	// non-interface field appearing in ForceSendFields will be sent to the
39730	// server regardless of whether the field is empty or not. This may be
39731	// used to include empty fields in Patch requests.
39732	ForceSendFields []string `json:"-"`
39733
39734	// NullFields is a list of field names (e.g. "Code") to include in API
39735	// requests with the JSON null value. By default, fields with empty
39736	// values are omitted from API requests. However, any field with an
39737	// empty value appearing in NullFields will be sent to the server as
39738	// null. It is an error if a field in this list has a non-empty value.
39739	// This may be used to include null fields in Patch requests.
39740	NullFields []string `json:"-"`
39741}
39742
39743func (s *TargetGrpcProxyListWarning) MarshalJSON() ([]byte, error) {
39744	type NoMethod TargetGrpcProxyListWarning
39745	raw := NoMethod(*s)
39746	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39747}
39748
39749type TargetGrpcProxyListWarningData struct {
39750	// Key: [Output Only] A key that provides more detail on the warning
39751	// being returned. For example, for warnings where there are no results
39752	// in a list request for a particular zone, this key might be scope and
39753	// the key value might be the zone name. Other examples might be a key
39754	// indicating a deprecated resource and a suggested replacement, or a
39755	// warning about invalid network settings (for example, if an instance
39756	// attempts to perform IP forwarding but is not enabled for IP
39757	// forwarding).
39758	Key string `json:"key,omitempty"`
39759
39760	// Value: [Output Only] A warning data value corresponding to the key.
39761	Value string `json:"value,omitempty"`
39762
39763	// ForceSendFields is a list of field names (e.g. "Key") to
39764	// unconditionally include in API requests. By default, fields with
39765	// empty values are omitted from API requests. However, any non-pointer,
39766	// non-interface field appearing in ForceSendFields will be sent to the
39767	// server regardless of whether the field is empty or not. This may be
39768	// used to include empty fields in Patch requests.
39769	ForceSendFields []string `json:"-"`
39770
39771	// NullFields is a list of field names (e.g. "Key") to include in API
39772	// requests with the JSON null value. By default, fields with empty
39773	// values are omitted from API requests. However, any field with an
39774	// empty value appearing in NullFields will be sent to the server as
39775	// null. It is an error if a field in this list has a non-empty value.
39776	// This may be used to include null fields in Patch requests.
39777	NullFields []string `json:"-"`
39778}
39779
39780func (s *TargetGrpcProxyListWarningData) MarshalJSON() ([]byte, error) {
39781	type NoMethod TargetGrpcProxyListWarningData
39782	raw := NoMethod(*s)
39783	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39784}
39785
39786type TargetHttpProxiesScopedList struct {
39787	// TargetHttpProxies: A list of TargetHttpProxies contained in this
39788	// scope.
39789	TargetHttpProxies []*TargetHttpProxy `json:"targetHttpProxies,omitempty"`
39790
39791	// Warning: Informational warning which replaces the list of backend
39792	// services when the list is empty.
39793	Warning *TargetHttpProxiesScopedListWarning `json:"warning,omitempty"`
39794
39795	// ForceSendFields is a list of field names (e.g. "TargetHttpProxies")
39796	// to unconditionally include in API requests. By default, fields with
39797	// empty values are omitted from API requests. However, any non-pointer,
39798	// non-interface field appearing in ForceSendFields will be sent to the
39799	// server regardless of whether the field is empty or not. This may be
39800	// used to include empty fields in Patch requests.
39801	ForceSendFields []string `json:"-"`
39802
39803	// NullFields is a list of field names (e.g. "TargetHttpProxies") to
39804	// include in API requests with the JSON null value. By default, fields
39805	// with empty values are omitted from API requests. However, any field
39806	// with an empty value appearing in NullFields will be sent to the
39807	// server as null. It is an error if a field in this list has a
39808	// non-empty value. This may be used to include null fields in Patch
39809	// requests.
39810	NullFields []string `json:"-"`
39811}
39812
39813func (s *TargetHttpProxiesScopedList) MarshalJSON() ([]byte, error) {
39814	type NoMethod TargetHttpProxiesScopedList
39815	raw := NoMethod(*s)
39816	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39817}
39818
39819// TargetHttpProxiesScopedListWarning: Informational warning which
39820// replaces the list of backend services when the list is empty.
39821type TargetHttpProxiesScopedListWarning struct {
39822	// Code: [Output Only] A warning code, if applicable. For example,
39823	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
39824	// the response.
39825	//
39826	// Possible values:
39827	//   "CLEANUP_FAILED"
39828	//   "DEPRECATED_RESOURCE_USED"
39829	//   "DEPRECATED_TYPE_USED"
39830	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
39831	//   "EXPERIMENTAL_TYPE_USED"
39832	//   "EXTERNAL_API_WARNING"
39833	//   "FIELD_VALUE_OVERRIDEN"
39834	//   "INJECTED_KERNELS_DEPRECATED"
39835	//   "LARGE_DEPLOYMENT_WARNING"
39836	//   "MISSING_TYPE_DEPENDENCY"
39837	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
39838	//   "NEXT_HOP_CANNOT_IP_FORWARD"
39839	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
39840	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
39841	//   "NEXT_HOP_NOT_RUNNING"
39842	//   "NOT_CRITICAL_ERROR"
39843	//   "NO_RESULTS_ON_PAGE"
39844	//   "PARTIAL_SUCCESS"
39845	//   "REQUIRED_TOS_AGREEMENT"
39846	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
39847	//   "RESOURCE_NOT_DELETED"
39848	//   "SCHEMA_VALIDATION_IGNORED"
39849	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
39850	//   "UNDECLARED_PROPERTIES"
39851	//   "UNREACHABLE"
39852	Code string `json:"code,omitempty"`
39853
39854	// Data: [Output Only] Metadata about this warning in key: value format.
39855	// For example:
39856	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
39857	Data []*TargetHttpProxiesScopedListWarningData `json:"data,omitempty"`
39858
39859	// Message: [Output Only] A human-readable description of the warning
39860	// code.
39861	Message string `json:"message,omitempty"`
39862
39863	// ForceSendFields is a list of field names (e.g. "Code") to
39864	// unconditionally include in API requests. By default, fields with
39865	// empty values are omitted from API requests. However, any non-pointer,
39866	// non-interface field appearing in ForceSendFields will be sent to the
39867	// server regardless of whether the field is empty or not. This may be
39868	// used to include empty fields in Patch requests.
39869	ForceSendFields []string `json:"-"`
39870
39871	// NullFields is a list of field names (e.g. "Code") to include in API
39872	// requests with the JSON null value. By default, fields with empty
39873	// values are omitted from API requests. However, any field with an
39874	// empty value appearing in NullFields will be sent to the server as
39875	// null. It is an error if a field in this list has a non-empty value.
39876	// This may be used to include null fields in Patch requests.
39877	NullFields []string `json:"-"`
39878}
39879
39880func (s *TargetHttpProxiesScopedListWarning) MarshalJSON() ([]byte, error) {
39881	type NoMethod TargetHttpProxiesScopedListWarning
39882	raw := NoMethod(*s)
39883	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39884}
39885
39886type TargetHttpProxiesScopedListWarningData struct {
39887	// Key: [Output Only] A key that provides more detail on the warning
39888	// being returned. For example, for warnings where there are no results
39889	// in a list request for a particular zone, this key might be scope and
39890	// the key value might be the zone name. Other examples might be a key
39891	// indicating a deprecated resource and a suggested replacement, or a
39892	// warning about invalid network settings (for example, if an instance
39893	// attempts to perform IP forwarding but is not enabled for IP
39894	// forwarding).
39895	Key string `json:"key,omitempty"`
39896
39897	// Value: [Output Only] A warning data value corresponding to the key.
39898	Value string `json:"value,omitempty"`
39899
39900	// ForceSendFields is a list of field names (e.g. "Key") to
39901	// unconditionally include in API requests. By default, fields with
39902	// empty values are omitted from API requests. However, any non-pointer,
39903	// non-interface field appearing in ForceSendFields will be sent to the
39904	// server regardless of whether the field is empty or not. This may be
39905	// used to include empty fields in Patch requests.
39906	ForceSendFields []string `json:"-"`
39907
39908	// NullFields is a list of field names (e.g. "Key") to include in API
39909	// requests with the JSON null value. By default, fields with empty
39910	// values are omitted from API requests. However, any field with an
39911	// empty value appearing in NullFields will be sent to the server as
39912	// null. It is an error if a field in this list has a non-empty value.
39913	// This may be used to include null fields in Patch requests.
39914	NullFields []string `json:"-"`
39915}
39916
39917func (s *TargetHttpProxiesScopedListWarningData) MarshalJSON() ([]byte, error) {
39918	type NoMethod TargetHttpProxiesScopedListWarningData
39919	raw := NoMethod(*s)
39920	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39921}
39922
39923// TargetHttpProxy: Represents a Target HTTP Proxy resource.
39924//
39925// Google Compute Engine has two Target HTTP Proxy resources:
39926//
39927// * Global
39928// (/compute/docs/reference/rest/{$api_version}/targetHttpProxies) *
39929// Regional
39930// (/compute/docs/reference/rest/{$api_version}/regionTargetHttpProxies)
39931//
39932// A target HTTP proxy is a component of GCP HTTP load balancers.
39933//
39934// * targetHttpProxies are used by external HTTP load balancers and
39935// Traffic Director. * regionTargetHttpProxies are used by internal HTTP
39936// load balancers.
39937//
39938// Forwarding rules reference a target HTTP proxy, and the target proxy
39939// then references a URL map. For more information, read Using Target
39940// Proxies and  Forwarding rule concepts. (== resource_for
39941// {$api_version}.targetHttpProxies ==) (== resource_for
39942// {$api_version}.regionTargetHttpProxies ==)
39943type TargetHttpProxy struct {
39944	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
39945	// format.
39946	CreationTimestamp string `json:"creationTimestamp,omitempty"`
39947
39948	// Description: An optional description of this resource. Provide this
39949	// property when you create the resource.
39950	Description string `json:"description,omitempty"`
39951
39952	// Fingerprint: Fingerprint of this resource. A hash of the contents
39953	// stored in this object. This field is used in optimistic locking. This
39954	// field will be ignored when inserting a TargetHttpProxy. An up-to-date
39955	// fingerprint must be provided in order to patch/update the
39956	// TargetHttpProxy; otherwise, the request will fail with error 412
39957	// conditionNotMet. To see the latest fingerprint, make a get() request
39958	// to retrieve the TargetHttpProxy.
39959	Fingerprint string `json:"fingerprint,omitempty"`
39960
39961	// Id: [Output Only] The unique identifier for the resource. This
39962	// identifier is defined by the server.
39963	Id uint64 `json:"id,omitempty,string"`
39964
39965	// Kind: [Output Only] Type of resource. Always compute#targetHttpProxy
39966	// for target HTTP proxies.
39967	Kind string `json:"kind,omitempty"`
39968
39969	// Name: Name of the resource. Provided by the client when the resource
39970	// is created. The name must be 1-63 characters long, and comply with
39971	// RFC1035. Specifically, the name must be 1-63 characters long and
39972	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
39973	// the first character must be a lowercase letter, and all following
39974	// characters must be a dash, lowercase letter, or digit, except the
39975	// last character, which cannot be a dash.
39976	Name string `json:"name,omitempty"`
39977
39978	// ProxyBind: This field only applies when the forwarding rule that
39979	// references this target proxy has a loadBalancingScheme set to
39980	// INTERNAL_SELF_MANAGED.
39981	//
39982	// When this field is set to true, Envoy proxies set up inbound traffic
39983	// interception and bind to the IP address and port specified in the
39984	// forwarding rule. This is generally useful when using Traffic Director
39985	// to configure Envoy as a gateway or middle proxy (in other words, not
39986	// a sidecar proxy). The Envoy proxy listens for inbound requests and
39987	// handles requests when it receives them.
39988	//
39989	// The default is false.
39990	ProxyBind bool `json:"proxyBind,omitempty"`
39991
39992	// Region: [Output Only] URL of the region where the regional Target
39993	// HTTP Proxy resides. This field is not applicable to global Target
39994	// HTTP Proxies.
39995	Region string `json:"region,omitempty"`
39996
39997	// SelfLink: [Output Only] Server-defined URL for the resource.
39998	SelfLink string `json:"selfLink,omitempty"`
39999
40000	// UrlMap: URL to the UrlMap resource that defines the mapping from URL
40001	// to the BackendService.
40002	UrlMap string `json:"urlMap,omitempty"`
40003
40004	// ServerResponse contains the HTTP response code and headers from the
40005	// server.
40006	googleapi.ServerResponse `json:"-"`
40007
40008	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
40009	// to unconditionally include in API requests. By default, fields with
40010	// empty values are omitted from API requests. However, any non-pointer,
40011	// non-interface field appearing in ForceSendFields will be sent to the
40012	// server regardless of whether the field is empty or not. This may be
40013	// used to include empty fields in Patch requests.
40014	ForceSendFields []string `json:"-"`
40015
40016	// NullFields is a list of field names (e.g. "CreationTimestamp") to
40017	// include in API requests with the JSON null value. By default, fields
40018	// with empty values are omitted from API requests. However, any field
40019	// with an empty value appearing in NullFields will be sent to the
40020	// server as null. It is an error if a field in this list has a
40021	// non-empty value. This may be used to include null fields in Patch
40022	// requests.
40023	NullFields []string `json:"-"`
40024}
40025
40026func (s *TargetHttpProxy) MarshalJSON() ([]byte, error) {
40027	type NoMethod TargetHttpProxy
40028	raw := NoMethod(*s)
40029	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40030}
40031
40032type TargetHttpProxyAggregatedList struct {
40033	// Id: [Output Only] Unique identifier for the resource; defined by the
40034	// server.
40035	Id string `json:"id,omitempty"`
40036
40037	// Items: A list of TargetHttpProxiesScopedList resources.
40038	Items map[string]TargetHttpProxiesScopedList `json:"items,omitempty"`
40039
40040	// Kind: [Output Only] Type of resource. Always
40041	// compute#targetHttpProxyAggregatedList for lists of Target HTTP
40042	// Proxies.
40043	Kind string `json:"kind,omitempty"`
40044
40045	// NextPageToken: [Output Only] This token allows you to get the next
40046	// page of results for list requests. If the number of results is larger
40047	// than maxResults, use the nextPageToken as a value for the query
40048	// parameter pageToken in the next list request. Subsequent list
40049	// requests will have their own nextPageToken to continue paging through
40050	// the results.
40051	NextPageToken string `json:"nextPageToken,omitempty"`
40052
40053	// SelfLink: [Output Only] Server-defined URL for this resource.
40054	SelfLink string `json:"selfLink,omitempty"`
40055
40056	// Unreachables: [Output Only] Unreachable resources.
40057	Unreachables []string `json:"unreachables,omitempty"`
40058
40059	// ServerResponse contains the HTTP response code and headers from the
40060	// server.
40061	googleapi.ServerResponse `json:"-"`
40062
40063	// ForceSendFields is a list of field names (e.g. "Id") to
40064	// unconditionally include in API requests. By default, fields with
40065	// empty values are omitted from API requests. However, any non-pointer,
40066	// non-interface field appearing in ForceSendFields will be sent to the
40067	// server regardless of whether the field is empty or not. This may be
40068	// used to include empty fields in Patch requests.
40069	ForceSendFields []string `json:"-"`
40070
40071	// NullFields is a list of field names (e.g. "Id") to include in API
40072	// requests with the JSON null value. By default, fields with empty
40073	// values are omitted from API requests. However, any field with an
40074	// empty value appearing in NullFields will be sent to the server as
40075	// null. It is an error if a field in this list has a non-empty value.
40076	// This may be used to include null fields in Patch requests.
40077	NullFields []string `json:"-"`
40078}
40079
40080func (s *TargetHttpProxyAggregatedList) MarshalJSON() ([]byte, error) {
40081	type NoMethod TargetHttpProxyAggregatedList
40082	raw := NoMethod(*s)
40083	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40084}
40085
40086// TargetHttpProxyList: A list of TargetHttpProxy resources.
40087type TargetHttpProxyList struct {
40088	// Id: [Output Only] Unique identifier for the resource; defined by the
40089	// server.
40090	Id string `json:"id,omitempty"`
40091
40092	// Items: A list of TargetHttpProxy resources.
40093	Items []*TargetHttpProxy `json:"items,omitempty"`
40094
40095	// Kind: Type of resource. Always compute#targetHttpProxyList for lists
40096	// of target HTTP proxies.
40097	Kind string `json:"kind,omitempty"`
40098
40099	// NextPageToken: [Output Only] This token allows you to get the next
40100	// page of results for list requests. If the number of results is larger
40101	// than maxResults, use the nextPageToken as a value for the query
40102	// parameter pageToken in the next list request. Subsequent list
40103	// requests will have their own nextPageToken to continue paging through
40104	// the results.
40105	NextPageToken string `json:"nextPageToken,omitempty"`
40106
40107	// SelfLink: [Output Only] Server-defined URL for this resource.
40108	SelfLink string `json:"selfLink,omitempty"`
40109
40110	// Warning: [Output Only] Informational warning message.
40111	Warning *TargetHttpProxyListWarning `json:"warning,omitempty"`
40112
40113	// ServerResponse contains the HTTP response code and headers from the
40114	// server.
40115	googleapi.ServerResponse `json:"-"`
40116
40117	// ForceSendFields is a list of field names (e.g. "Id") to
40118	// unconditionally include in API requests. By default, fields with
40119	// empty values are omitted from API requests. However, any non-pointer,
40120	// non-interface field appearing in ForceSendFields will be sent to the
40121	// server regardless of whether the field is empty or not. This may be
40122	// used to include empty fields in Patch requests.
40123	ForceSendFields []string `json:"-"`
40124
40125	// NullFields is a list of field names (e.g. "Id") to include in API
40126	// requests with the JSON null value. By default, fields with empty
40127	// values are omitted from API requests. However, any field with an
40128	// empty value appearing in NullFields will be sent to the server as
40129	// null. It is an error if a field in this list has a non-empty value.
40130	// This may be used to include null fields in Patch requests.
40131	NullFields []string `json:"-"`
40132}
40133
40134func (s *TargetHttpProxyList) MarshalJSON() ([]byte, error) {
40135	type NoMethod TargetHttpProxyList
40136	raw := NoMethod(*s)
40137	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40138}
40139
40140// TargetHttpProxyListWarning: [Output Only] Informational warning
40141// message.
40142type TargetHttpProxyListWarning struct {
40143	// Code: [Output Only] A warning code, if applicable. For example,
40144	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40145	// the response.
40146	//
40147	// Possible values:
40148	//   "CLEANUP_FAILED"
40149	//   "DEPRECATED_RESOURCE_USED"
40150	//   "DEPRECATED_TYPE_USED"
40151	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
40152	//   "EXPERIMENTAL_TYPE_USED"
40153	//   "EXTERNAL_API_WARNING"
40154	//   "FIELD_VALUE_OVERRIDEN"
40155	//   "INJECTED_KERNELS_DEPRECATED"
40156	//   "LARGE_DEPLOYMENT_WARNING"
40157	//   "MISSING_TYPE_DEPENDENCY"
40158	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
40159	//   "NEXT_HOP_CANNOT_IP_FORWARD"
40160	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
40161	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
40162	//   "NEXT_HOP_NOT_RUNNING"
40163	//   "NOT_CRITICAL_ERROR"
40164	//   "NO_RESULTS_ON_PAGE"
40165	//   "PARTIAL_SUCCESS"
40166	//   "REQUIRED_TOS_AGREEMENT"
40167	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
40168	//   "RESOURCE_NOT_DELETED"
40169	//   "SCHEMA_VALIDATION_IGNORED"
40170	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
40171	//   "UNDECLARED_PROPERTIES"
40172	//   "UNREACHABLE"
40173	Code string `json:"code,omitempty"`
40174
40175	// Data: [Output Only] Metadata about this warning in key: value format.
40176	// For example:
40177	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40178	Data []*TargetHttpProxyListWarningData `json:"data,omitempty"`
40179
40180	// Message: [Output Only] A human-readable description of the warning
40181	// code.
40182	Message string `json:"message,omitempty"`
40183
40184	// ForceSendFields is a list of field names (e.g. "Code") to
40185	// unconditionally include in API requests. By default, fields with
40186	// empty values are omitted from API requests. However, any non-pointer,
40187	// non-interface field appearing in ForceSendFields will be sent to the
40188	// server regardless of whether the field is empty or not. This may be
40189	// used to include empty fields in Patch requests.
40190	ForceSendFields []string `json:"-"`
40191
40192	// NullFields is a list of field names (e.g. "Code") to include in API
40193	// requests with the JSON null value. By default, fields with empty
40194	// values are omitted from API requests. However, any field with an
40195	// empty value appearing in NullFields will be sent to the server as
40196	// null. It is an error if a field in this list has a non-empty value.
40197	// This may be used to include null fields in Patch requests.
40198	NullFields []string `json:"-"`
40199}
40200
40201func (s *TargetHttpProxyListWarning) MarshalJSON() ([]byte, error) {
40202	type NoMethod TargetHttpProxyListWarning
40203	raw := NoMethod(*s)
40204	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40205}
40206
40207type TargetHttpProxyListWarningData struct {
40208	// Key: [Output Only] A key that provides more detail on the warning
40209	// being returned. For example, for warnings where there are no results
40210	// in a list request for a particular zone, this key might be scope and
40211	// the key value might be the zone name. Other examples might be a key
40212	// indicating a deprecated resource and a suggested replacement, or a
40213	// warning about invalid network settings (for example, if an instance
40214	// attempts to perform IP forwarding but is not enabled for IP
40215	// forwarding).
40216	Key string `json:"key,omitempty"`
40217
40218	// Value: [Output Only] A warning data value corresponding to the key.
40219	Value string `json:"value,omitempty"`
40220
40221	// ForceSendFields is a list of field names (e.g. "Key") to
40222	// unconditionally include in API requests. By default, fields with
40223	// empty values are omitted from API requests. However, any non-pointer,
40224	// non-interface field appearing in ForceSendFields will be sent to the
40225	// server regardless of whether the field is empty or not. This may be
40226	// used to include empty fields in Patch requests.
40227	ForceSendFields []string `json:"-"`
40228
40229	// NullFields is a list of field names (e.g. "Key") to include in API
40230	// requests with the JSON null value. By default, fields with empty
40231	// values are omitted from API requests. However, any field with an
40232	// empty value appearing in NullFields will be sent to the server as
40233	// null. It is an error if a field in this list has a non-empty value.
40234	// This may be used to include null fields in Patch requests.
40235	NullFields []string `json:"-"`
40236}
40237
40238func (s *TargetHttpProxyListWarningData) MarshalJSON() ([]byte, error) {
40239	type NoMethod TargetHttpProxyListWarningData
40240	raw := NoMethod(*s)
40241	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40242}
40243
40244type TargetHttpsProxiesScopedList struct {
40245	// TargetHttpsProxies: A list of TargetHttpsProxies contained in this
40246	// scope.
40247	TargetHttpsProxies []*TargetHttpsProxy `json:"targetHttpsProxies,omitempty"`
40248
40249	// Warning: Informational warning which replaces the list of backend
40250	// services when the list is empty.
40251	Warning *TargetHttpsProxiesScopedListWarning `json:"warning,omitempty"`
40252
40253	// ForceSendFields is a list of field names (e.g. "TargetHttpsProxies")
40254	// to unconditionally include in API requests. By default, fields with
40255	// empty values are omitted from API requests. However, any non-pointer,
40256	// non-interface field appearing in ForceSendFields will be sent to the
40257	// server regardless of whether the field is empty or not. This may be
40258	// used to include empty fields in Patch requests.
40259	ForceSendFields []string `json:"-"`
40260
40261	// NullFields is a list of field names (e.g. "TargetHttpsProxies") to
40262	// include in API requests with the JSON null value. By default, fields
40263	// with empty values are omitted from API requests. However, any field
40264	// with an empty value appearing in NullFields will be sent to the
40265	// server as null. It is an error if a field in this list has a
40266	// non-empty value. This may be used to include null fields in Patch
40267	// requests.
40268	NullFields []string `json:"-"`
40269}
40270
40271func (s *TargetHttpsProxiesScopedList) MarshalJSON() ([]byte, error) {
40272	type NoMethod TargetHttpsProxiesScopedList
40273	raw := NoMethod(*s)
40274	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40275}
40276
40277// TargetHttpsProxiesScopedListWarning: Informational warning which
40278// replaces the list of backend services when the list is empty.
40279type TargetHttpsProxiesScopedListWarning struct {
40280	// Code: [Output Only] A warning code, if applicable. For example,
40281	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40282	// the response.
40283	//
40284	// Possible values:
40285	//   "CLEANUP_FAILED"
40286	//   "DEPRECATED_RESOURCE_USED"
40287	//   "DEPRECATED_TYPE_USED"
40288	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
40289	//   "EXPERIMENTAL_TYPE_USED"
40290	//   "EXTERNAL_API_WARNING"
40291	//   "FIELD_VALUE_OVERRIDEN"
40292	//   "INJECTED_KERNELS_DEPRECATED"
40293	//   "LARGE_DEPLOYMENT_WARNING"
40294	//   "MISSING_TYPE_DEPENDENCY"
40295	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
40296	//   "NEXT_HOP_CANNOT_IP_FORWARD"
40297	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
40298	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
40299	//   "NEXT_HOP_NOT_RUNNING"
40300	//   "NOT_CRITICAL_ERROR"
40301	//   "NO_RESULTS_ON_PAGE"
40302	//   "PARTIAL_SUCCESS"
40303	//   "REQUIRED_TOS_AGREEMENT"
40304	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
40305	//   "RESOURCE_NOT_DELETED"
40306	//   "SCHEMA_VALIDATION_IGNORED"
40307	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
40308	//   "UNDECLARED_PROPERTIES"
40309	//   "UNREACHABLE"
40310	Code string `json:"code,omitempty"`
40311
40312	// Data: [Output Only] Metadata about this warning in key: value format.
40313	// For example:
40314	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40315	Data []*TargetHttpsProxiesScopedListWarningData `json:"data,omitempty"`
40316
40317	// Message: [Output Only] A human-readable description of the warning
40318	// code.
40319	Message string `json:"message,omitempty"`
40320
40321	// ForceSendFields is a list of field names (e.g. "Code") to
40322	// unconditionally include in API requests. By default, fields with
40323	// empty values are omitted from API requests. However, any non-pointer,
40324	// non-interface field appearing in ForceSendFields will be sent to the
40325	// server regardless of whether the field is empty or not. This may be
40326	// used to include empty fields in Patch requests.
40327	ForceSendFields []string `json:"-"`
40328
40329	// NullFields is a list of field names (e.g. "Code") to include in API
40330	// requests with the JSON null value. By default, fields with empty
40331	// values are omitted from API requests. However, any field with an
40332	// empty value appearing in NullFields will be sent to the server as
40333	// null. It is an error if a field in this list has a non-empty value.
40334	// This may be used to include null fields in Patch requests.
40335	NullFields []string `json:"-"`
40336}
40337
40338func (s *TargetHttpsProxiesScopedListWarning) MarshalJSON() ([]byte, error) {
40339	type NoMethod TargetHttpsProxiesScopedListWarning
40340	raw := NoMethod(*s)
40341	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40342}
40343
40344type TargetHttpsProxiesScopedListWarningData struct {
40345	// Key: [Output Only] A key that provides more detail on the warning
40346	// being returned. For example, for warnings where there are no results
40347	// in a list request for a particular zone, this key might be scope and
40348	// the key value might be the zone name. Other examples might be a key
40349	// indicating a deprecated resource and a suggested replacement, or a
40350	// warning about invalid network settings (for example, if an instance
40351	// attempts to perform IP forwarding but is not enabled for IP
40352	// forwarding).
40353	Key string `json:"key,omitempty"`
40354
40355	// Value: [Output Only] A warning data value corresponding to the key.
40356	Value string `json:"value,omitempty"`
40357
40358	// ForceSendFields is a list of field names (e.g. "Key") to
40359	// unconditionally include in API requests. By default, fields with
40360	// empty values are omitted from API requests. However, any non-pointer,
40361	// non-interface field appearing in ForceSendFields will be sent to the
40362	// server regardless of whether the field is empty or not. This may be
40363	// used to include empty fields in Patch requests.
40364	ForceSendFields []string `json:"-"`
40365
40366	// NullFields is a list of field names (e.g. "Key") to include in API
40367	// requests with the JSON null value. By default, fields with empty
40368	// values are omitted from API requests. However, any field with an
40369	// empty value appearing in NullFields will be sent to the server as
40370	// null. It is an error if a field in this list has a non-empty value.
40371	// This may be used to include null fields in Patch requests.
40372	NullFields []string `json:"-"`
40373}
40374
40375func (s *TargetHttpsProxiesScopedListWarningData) MarshalJSON() ([]byte, error) {
40376	type NoMethod TargetHttpsProxiesScopedListWarningData
40377	raw := NoMethod(*s)
40378	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40379}
40380
40381type TargetHttpsProxiesSetQuicOverrideRequest struct {
40382	// QuicOverride: QUIC policy for the TargetHttpsProxy resource.
40383	//
40384	// Possible values:
40385	//   "DISABLE"
40386	//   "ENABLE"
40387	//   "NONE"
40388	QuicOverride string `json:"quicOverride,omitempty"`
40389
40390	// ForceSendFields is a list of field names (e.g. "QuicOverride") to
40391	// unconditionally include in API requests. By default, fields with
40392	// empty values are omitted from API requests. However, any non-pointer,
40393	// non-interface field appearing in ForceSendFields will be sent to the
40394	// server regardless of whether the field is empty or not. This may be
40395	// used to include empty fields in Patch requests.
40396	ForceSendFields []string `json:"-"`
40397
40398	// NullFields is a list of field names (e.g. "QuicOverride") to include
40399	// in API requests with the JSON null value. By default, fields with
40400	// empty values are omitted from API requests. However, any field with
40401	// an empty value appearing in NullFields will be sent to the server as
40402	// null. It is an error if a field in this list has a non-empty value.
40403	// This may be used to include null fields in Patch requests.
40404	NullFields []string `json:"-"`
40405}
40406
40407func (s *TargetHttpsProxiesSetQuicOverrideRequest) MarshalJSON() ([]byte, error) {
40408	type NoMethod TargetHttpsProxiesSetQuicOverrideRequest
40409	raw := NoMethod(*s)
40410	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40411}
40412
40413type TargetHttpsProxiesSetSslCertificatesRequest struct {
40414	// SslCertificates: New set of SslCertificate resources to associate
40415	// with this TargetHttpsProxy resource. At least one SSL certificate
40416	// must be specified. Currently, you may specify up to 15 SSL
40417	// certificates.
40418	SslCertificates []string `json:"sslCertificates,omitempty"`
40419
40420	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
40421	// unconditionally include in API requests. By default, fields with
40422	// empty values are omitted from API requests. However, any non-pointer,
40423	// non-interface field appearing in ForceSendFields will be sent to the
40424	// server regardless of whether the field is empty or not. This may be
40425	// used to include empty fields in Patch requests.
40426	ForceSendFields []string `json:"-"`
40427
40428	// NullFields is a list of field names (e.g. "SslCertificates") to
40429	// include in API requests with the JSON null value. By default, fields
40430	// with empty values are omitted from API requests. However, any field
40431	// with an empty value appearing in NullFields will be sent to the
40432	// server as null. It is an error if a field in this list has a
40433	// non-empty value. This may be used to include null fields in Patch
40434	// requests.
40435	NullFields []string `json:"-"`
40436}
40437
40438func (s *TargetHttpsProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
40439	type NoMethod TargetHttpsProxiesSetSslCertificatesRequest
40440	raw := NoMethod(*s)
40441	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40442}
40443
40444// TargetHttpsProxy: Represents a Target HTTPS Proxy resource.
40445//
40446// Google Compute Engine has two Target HTTPS Proxy resources:
40447//
40448// * Global
40449// (/compute/docs/reference/rest/{$api_version}/targetHttpsProxies) *
40450// Regional
40451// (/compute/docs/reference/rest/{$api_version}/regionTargetHttpsProxies)
40452//
40453//
40454// A target HTTPS proxy is a component of GCP HTTPS load balancers.
40455//
40456// * targetHttpsProxies are used by external HTTPS load balancers. *
40457// regionTargetHttpsProxies are used by internal HTTPS load
40458// balancers.
40459//
40460// Forwarding rules reference a target HTTPS proxy, and the target proxy
40461// then references a URL map. For more information, read Using Target
40462// Proxies and  Forwarding rule concepts. (== resource_for
40463// {$api_version}.targetHttpsProxies ==) (== resource_for
40464// {$api_version}.regionTargetHttpsProxies ==)
40465type TargetHttpsProxy struct {
40466	// AuthorizationPolicy: Optional. A URL referring to a
40467	// networksecurity.AuthorizationPolicy resource that describes how the
40468	// proxy should authorize inbound traffic. If left blank, access will
40469	// not be restricted by an authorization policy.
40470	// Refer to the AuthorizationPolicy resource for additional
40471	// details.
40472	// authorizationPolicy only applies to a global TargetHttpsProxy
40473	// attached to globalForwardingRules with the loadBalancingScheme set to
40474	// INTERNAL_SELF_MANAGED.
40475	// Note: This field currently has no impact.
40476	AuthorizationPolicy string `json:"authorizationPolicy,omitempty"`
40477
40478	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
40479	// format.
40480	CreationTimestamp string `json:"creationTimestamp,omitempty"`
40481
40482	// Description: An optional description of this resource. Provide this
40483	// property when you create the resource.
40484	Description string `json:"description,omitempty"`
40485
40486	// Fingerprint: Fingerprint of this resource. A hash of the contents
40487	// stored in this object. This field is used in optimistic locking. This
40488	// field will be ignored when inserting a TargetHttpsProxy. An
40489	// up-to-date fingerprint must be provided in order to patch the
40490	// TargetHttpsProxy; otherwise, the request will fail with error 412
40491	// conditionNotMet. To see the latest fingerprint, make a get() request
40492	// to retrieve the TargetHttpsProxy.
40493	Fingerprint string `json:"fingerprint,omitempty"`
40494
40495	// Id: [Output Only] The unique identifier for the resource. This
40496	// identifier is defined by the server.
40497	Id uint64 `json:"id,omitempty,string"`
40498
40499	// Kind: [Output Only] Type of resource. Always compute#targetHttpsProxy
40500	// for target HTTPS proxies.
40501	Kind string `json:"kind,omitempty"`
40502
40503	// Name: Name of the resource. Provided by the client when the resource
40504	// is created. The name must be 1-63 characters long, and comply with
40505	// RFC1035. Specifically, the name must be 1-63 characters long and
40506	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
40507	// the first character must be a lowercase letter, and all following
40508	// characters must be a dash, lowercase letter, or digit, except the
40509	// last character, which cannot be a dash.
40510	Name string `json:"name,omitempty"`
40511
40512	// ProxyBind: This field only applies when the forwarding rule that
40513	// references this target proxy has a loadBalancingScheme set to
40514	// INTERNAL_SELF_MANAGED.
40515	//
40516	// When this field is set to true, Envoy proxies set up inbound traffic
40517	// interception and bind to the IP address and port specified in the
40518	// forwarding rule. This is generally useful when using Traffic Director
40519	// to configure Envoy as a gateway or middle proxy (in other words, not
40520	// a sidecar proxy). The Envoy proxy listens for inbound requests and
40521	// handles requests when it receives them.
40522	//
40523	// The default is false.
40524	ProxyBind bool `json:"proxyBind,omitempty"`
40525
40526	// QuicOverride: Specifies the QUIC override policy for this
40527	// TargetHttpsProxy resource. This setting determines whether the load
40528	// balancer attempts to negotiate QUIC with clients. You can specify
40529	// NONE, ENABLE, or DISABLE.
40530	// - When quic-override is set to NONE, Google manages whether QUIC is
40531	// used.
40532	// - When quic-override is set to ENABLE, the load balancer uses QUIC
40533	// when possible.
40534	// - When quic-override is set to DISABLE, the load balancer doesn't use
40535	// QUIC.
40536	// - If the quic-override flag is not specified, NONE is implied.
40537	//
40538	// Possible values:
40539	//   "DISABLE"
40540	//   "ENABLE"
40541	//   "NONE"
40542	QuicOverride string `json:"quicOverride,omitempty"`
40543
40544	// Region: [Output Only] URL of the region where the regional
40545	// TargetHttpsProxy resides. This field is not applicable to global
40546	// TargetHttpsProxies.
40547	Region string `json:"region,omitempty"`
40548
40549	// SelfLink: [Output Only] Server-defined URL for the resource.
40550	SelfLink string `json:"selfLink,omitempty"`
40551
40552	// ServerTlsPolicy: Optional. A URL referring to a
40553	// networksecurity.ServerTlsPolicy resource that describes how the proxy
40554	// should authenticate inbound traffic.
40555	// serverTlsPolicy only applies to a global TargetHttpsProxy attached to
40556	// globalForwardingRules with the loadBalancingScheme set to
40557	// INTERNAL_SELF_MANAGED.
40558	// If left blank, communications are not encrypted.
40559	// Note: This field currently has no impact.
40560	ServerTlsPolicy string `json:"serverTlsPolicy,omitempty"`
40561
40562	// SslCertificates: URLs to SslCertificate resources that are used to
40563	// authenticate connections between users and the load balancer. At
40564	// least one SSL certificate must be specified. Currently, you may
40565	// specify up to 15 SSL certificates. sslCertificates do not apply when
40566	// the load balancing scheme is set to INTERNAL_SELF_MANAGED.
40567	SslCertificates []string `json:"sslCertificates,omitempty"`
40568
40569	// SslPolicy: URL of SslPolicy resource that will be associated with the
40570	// TargetHttpsProxy resource. If not set, the TargetHttpsProxy resource
40571	// has no SSL policy configured.
40572	SslPolicy string `json:"sslPolicy,omitempty"`
40573
40574	// UrlMap: A fully-qualified or valid partial URL to the UrlMap resource
40575	// that defines the mapping from URL to the BackendService. For example,
40576	// the following are all valid URLs for specifying a URL map:
40577	// -
40578	// https://www.googleapis.compute/v1/projects/project/global/urlMaps/url-map
40579	//
40580	// - projects/project/global/urlMaps/url-map
40581	// - global/urlMaps/url-map
40582	UrlMap string `json:"urlMap,omitempty"`
40583
40584	// ServerResponse contains the HTTP response code and headers from the
40585	// server.
40586	googleapi.ServerResponse `json:"-"`
40587
40588	// ForceSendFields is a list of field names (e.g. "AuthorizationPolicy")
40589	// to unconditionally include in API requests. By default, fields with
40590	// empty values are omitted from API requests. However, any non-pointer,
40591	// non-interface field appearing in ForceSendFields will be sent to the
40592	// server regardless of whether the field is empty or not. This may be
40593	// used to include empty fields in Patch requests.
40594	ForceSendFields []string `json:"-"`
40595
40596	// NullFields is a list of field names (e.g. "AuthorizationPolicy") to
40597	// include in API requests with the JSON null value. By default, fields
40598	// with empty values are omitted from API requests. However, any field
40599	// with an empty value appearing in NullFields will be sent to the
40600	// server as null. It is an error if a field in this list has a
40601	// non-empty value. This may be used to include null fields in Patch
40602	// requests.
40603	NullFields []string `json:"-"`
40604}
40605
40606func (s *TargetHttpsProxy) MarshalJSON() ([]byte, error) {
40607	type NoMethod TargetHttpsProxy
40608	raw := NoMethod(*s)
40609	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40610}
40611
40612type TargetHttpsProxyAggregatedList struct {
40613	// Id: [Output Only] Unique identifier for the resource; defined by the
40614	// server.
40615	Id string `json:"id,omitempty"`
40616
40617	// Items: A list of TargetHttpsProxiesScopedList resources.
40618	Items map[string]TargetHttpsProxiesScopedList `json:"items,omitempty"`
40619
40620	// Kind: [Output Only] Type of resource. Always
40621	// compute#targetHttpsProxyAggregatedList for lists of Target HTTP
40622	// Proxies.
40623	Kind string `json:"kind,omitempty"`
40624
40625	// NextPageToken: [Output Only] This token allows you to get the next
40626	// page of results for list requests. If the number of results is larger
40627	// than maxResults, use the nextPageToken as a value for the query
40628	// parameter pageToken in the next list request. Subsequent list
40629	// requests will have their own nextPageToken to continue paging through
40630	// the results.
40631	NextPageToken string `json:"nextPageToken,omitempty"`
40632
40633	// SelfLink: [Output Only] Server-defined URL for this resource.
40634	SelfLink string `json:"selfLink,omitempty"`
40635
40636	// Unreachables: [Output Only] Unreachable resources.
40637	Unreachables []string `json:"unreachables,omitempty"`
40638
40639	// Warning: [Output Only] Informational warning message.
40640	Warning *TargetHttpsProxyAggregatedListWarning `json:"warning,omitempty"`
40641
40642	// ServerResponse contains the HTTP response code and headers from the
40643	// server.
40644	googleapi.ServerResponse `json:"-"`
40645
40646	// ForceSendFields is a list of field names (e.g. "Id") to
40647	// unconditionally include in API requests. By default, fields with
40648	// empty values are omitted from API requests. However, any non-pointer,
40649	// non-interface field appearing in ForceSendFields will be sent to the
40650	// server regardless of whether the field is empty or not. This may be
40651	// used to include empty fields in Patch requests.
40652	ForceSendFields []string `json:"-"`
40653
40654	// NullFields is a list of field names (e.g. "Id") to include in API
40655	// requests with the JSON null value. By default, fields with empty
40656	// values are omitted from API requests. However, any field with an
40657	// empty value appearing in NullFields will be sent to the server as
40658	// null. It is an error if a field in this list has a non-empty value.
40659	// This may be used to include null fields in Patch requests.
40660	NullFields []string `json:"-"`
40661}
40662
40663func (s *TargetHttpsProxyAggregatedList) MarshalJSON() ([]byte, error) {
40664	type NoMethod TargetHttpsProxyAggregatedList
40665	raw := NoMethod(*s)
40666	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40667}
40668
40669// TargetHttpsProxyAggregatedListWarning: [Output Only] Informational
40670// warning message.
40671type TargetHttpsProxyAggregatedListWarning struct {
40672	// Code: [Output Only] A warning code, if applicable. For example,
40673	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40674	// the response.
40675	//
40676	// Possible values:
40677	//   "CLEANUP_FAILED"
40678	//   "DEPRECATED_RESOURCE_USED"
40679	//   "DEPRECATED_TYPE_USED"
40680	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
40681	//   "EXPERIMENTAL_TYPE_USED"
40682	//   "EXTERNAL_API_WARNING"
40683	//   "FIELD_VALUE_OVERRIDEN"
40684	//   "INJECTED_KERNELS_DEPRECATED"
40685	//   "LARGE_DEPLOYMENT_WARNING"
40686	//   "MISSING_TYPE_DEPENDENCY"
40687	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
40688	//   "NEXT_HOP_CANNOT_IP_FORWARD"
40689	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
40690	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
40691	//   "NEXT_HOP_NOT_RUNNING"
40692	//   "NOT_CRITICAL_ERROR"
40693	//   "NO_RESULTS_ON_PAGE"
40694	//   "PARTIAL_SUCCESS"
40695	//   "REQUIRED_TOS_AGREEMENT"
40696	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
40697	//   "RESOURCE_NOT_DELETED"
40698	//   "SCHEMA_VALIDATION_IGNORED"
40699	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
40700	//   "UNDECLARED_PROPERTIES"
40701	//   "UNREACHABLE"
40702	Code string `json:"code,omitempty"`
40703
40704	// Data: [Output Only] Metadata about this warning in key: value format.
40705	// For example:
40706	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40707	Data []*TargetHttpsProxyAggregatedListWarningData `json:"data,omitempty"`
40708
40709	// Message: [Output Only] A human-readable description of the warning
40710	// code.
40711	Message string `json:"message,omitempty"`
40712
40713	// ForceSendFields is a list of field names (e.g. "Code") to
40714	// unconditionally include in API requests. By default, fields with
40715	// empty values are omitted from API requests. However, any non-pointer,
40716	// non-interface field appearing in ForceSendFields will be sent to the
40717	// server regardless of whether the field is empty or not. This may be
40718	// used to include empty fields in Patch requests.
40719	ForceSendFields []string `json:"-"`
40720
40721	// NullFields is a list of field names (e.g. "Code") to include in API
40722	// requests with the JSON null value. By default, fields with empty
40723	// values are omitted from API requests. However, any field with an
40724	// empty value appearing in NullFields will be sent to the server as
40725	// null. It is an error if a field in this list has a non-empty value.
40726	// This may be used to include null fields in Patch requests.
40727	NullFields []string `json:"-"`
40728}
40729
40730func (s *TargetHttpsProxyAggregatedListWarning) MarshalJSON() ([]byte, error) {
40731	type NoMethod TargetHttpsProxyAggregatedListWarning
40732	raw := NoMethod(*s)
40733	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40734}
40735
40736type TargetHttpsProxyAggregatedListWarningData struct {
40737	// Key: [Output Only] A key that provides more detail on the warning
40738	// being returned. For example, for warnings where there are no results
40739	// in a list request for a particular zone, this key might be scope and
40740	// the key value might be the zone name. Other examples might be a key
40741	// indicating a deprecated resource and a suggested replacement, or a
40742	// warning about invalid network settings (for example, if an instance
40743	// attempts to perform IP forwarding but is not enabled for IP
40744	// forwarding).
40745	Key string `json:"key,omitempty"`
40746
40747	// Value: [Output Only] A warning data value corresponding to the key.
40748	Value string `json:"value,omitempty"`
40749
40750	// ForceSendFields is a list of field names (e.g. "Key") to
40751	// unconditionally include in API requests. By default, fields with
40752	// empty values are omitted from API requests. However, any non-pointer,
40753	// non-interface field appearing in ForceSendFields will be sent to the
40754	// server regardless of whether the field is empty or not. This may be
40755	// used to include empty fields in Patch requests.
40756	ForceSendFields []string `json:"-"`
40757
40758	// NullFields is a list of field names (e.g. "Key") to include in API
40759	// requests with the JSON null value. By default, fields with empty
40760	// values are omitted from API requests. However, any field with an
40761	// empty value appearing in NullFields will be sent to the server as
40762	// null. It is an error if a field in this list has a non-empty value.
40763	// This may be used to include null fields in Patch requests.
40764	NullFields []string `json:"-"`
40765}
40766
40767func (s *TargetHttpsProxyAggregatedListWarningData) MarshalJSON() ([]byte, error) {
40768	type NoMethod TargetHttpsProxyAggregatedListWarningData
40769	raw := NoMethod(*s)
40770	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40771}
40772
40773// TargetHttpsProxyList: Contains a list of TargetHttpsProxy resources.
40774type TargetHttpsProxyList struct {
40775	// Id: [Output Only] Unique identifier for the resource; defined by the
40776	// server.
40777	Id string `json:"id,omitempty"`
40778
40779	// Items: A list of TargetHttpsProxy resources.
40780	Items []*TargetHttpsProxy `json:"items,omitempty"`
40781
40782	// Kind: Type of resource. Always compute#targetHttpsProxyList for lists
40783	// of target HTTPS proxies.
40784	Kind string `json:"kind,omitempty"`
40785
40786	// NextPageToken: [Output Only] This token allows you to get the next
40787	// page of results for list requests. If the number of results is larger
40788	// than maxResults, use the nextPageToken as a value for the query
40789	// parameter pageToken in the next list request. Subsequent list
40790	// requests will have their own nextPageToken to continue paging through
40791	// the results.
40792	NextPageToken string `json:"nextPageToken,omitempty"`
40793
40794	// SelfLink: [Output Only] Server-defined URL for this resource.
40795	SelfLink string `json:"selfLink,omitempty"`
40796
40797	// Warning: [Output Only] Informational warning message.
40798	Warning *TargetHttpsProxyListWarning `json:"warning,omitempty"`
40799
40800	// ServerResponse contains the HTTP response code and headers from the
40801	// server.
40802	googleapi.ServerResponse `json:"-"`
40803
40804	// ForceSendFields is a list of field names (e.g. "Id") to
40805	// unconditionally include in API requests. By default, fields with
40806	// empty values are omitted from API requests. However, any non-pointer,
40807	// non-interface field appearing in ForceSendFields will be sent to the
40808	// server regardless of whether the field is empty or not. This may be
40809	// used to include empty fields in Patch requests.
40810	ForceSendFields []string `json:"-"`
40811
40812	// NullFields is a list of field names (e.g. "Id") to include in API
40813	// requests with the JSON null value. By default, fields with empty
40814	// values are omitted from API requests. However, any field with an
40815	// empty value appearing in NullFields will be sent to the server as
40816	// null. It is an error if a field in this list has a non-empty value.
40817	// This may be used to include null fields in Patch requests.
40818	NullFields []string `json:"-"`
40819}
40820
40821func (s *TargetHttpsProxyList) MarshalJSON() ([]byte, error) {
40822	type NoMethod TargetHttpsProxyList
40823	raw := NoMethod(*s)
40824	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40825}
40826
40827// TargetHttpsProxyListWarning: [Output Only] Informational warning
40828// message.
40829type TargetHttpsProxyListWarning struct {
40830	// Code: [Output Only] A warning code, if applicable. For example,
40831	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40832	// the response.
40833	//
40834	// Possible values:
40835	//   "CLEANUP_FAILED"
40836	//   "DEPRECATED_RESOURCE_USED"
40837	//   "DEPRECATED_TYPE_USED"
40838	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
40839	//   "EXPERIMENTAL_TYPE_USED"
40840	//   "EXTERNAL_API_WARNING"
40841	//   "FIELD_VALUE_OVERRIDEN"
40842	//   "INJECTED_KERNELS_DEPRECATED"
40843	//   "LARGE_DEPLOYMENT_WARNING"
40844	//   "MISSING_TYPE_DEPENDENCY"
40845	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
40846	//   "NEXT_HOP_CANNOT_IP_FORWARD"
40847	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
40848	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
40849	//   "NEXT_HOP_NOT_RUNNING"
40850	//   "NOT_CRITICAL_ERROR"
40851	//   "NO_RESULTS_ON_PAGE"
40852	//   "PARTIAL_SUCCESS"
40853	//   "REQUIRED_TOS_AGREEMENT"
40854	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
40855	//   "RESOURCE_NOT_DELETED"
40856	//   "SCHEMA_VALIDATION_IGNORED"
40857	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
40858	//   "UNDECLARED_PROPERTIES"
40859	//   "UNREACHABLE"
40860	Code string `json:"code,omitempty"`
40861
40862	// Data: [Output Only] Metadata about this warning in key: value format.
40863	// For example:
40864	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40865	Data []*TargetHttpsProxyListWarningData `json:"data,omitempty"`
40866
40867	// Message: [Output Only] A human-readable description of the warning
40868	// code.
40869	Message string `json:"message,omitempty"`
40870
40871	// ForceSendFields is a list of field names (e.g. "Code") to
40872	// unconditionally include in API requests. By default, fields with
40873	// empty values are omitted from API requests. However, any non-pointer,
40874	// non-interface field appearing in ForceSendFields will be sent to the
40875	// server regardless of whether the field is empty or not. This may be
40876	// used to include empty fields in Patch requests.
40877	ForceSendFields []string `json:"-"`
40878
40879	// NullFields is a list of field names (e.g. "Code") to include in API
40880	// requests with the JSON null value. By default, fields with empty
40881	// values are omitted from API requests. However, any field with an
40882	// empty value appearing in NullFields will be sent to the server as
40883	// null. It is an error if a field in this list has a non-empty value.
40884	// This may be used to include null fields in Patch requests.
40885	NullFields []string `json:"-"`
40886}
40887
40888func (s *TargetHttpsProxyListWarning) MarshalJSON() ([]byte, error) {
40889	type NoMethod TargetHttpsProxyListWarning
40890	raw := NoMethod(*s)
40891	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40892}
40893
40894type TargetHttpsProxyListWarningData struct {
40895	// Key: [Output Only] A key that provides more detail on the warning
40896	// being returned. For example, for warnings where there are no results
40897	// in a list request for a particular zone, this key might be scope and
40898	// the key value might be the zone name. Other examples might be a key
40899	// indicating a deprecated resource and a suggested replacement, or a
40900	// warning about invalid network settings (for example, if an instance
40901	// attempts to perform IP forwarding but is not enabled for IP
40902	// forwarding).
40903	Key string `json:"key,omitempty"`
40904
40905	// Value: [Output Only] A warning data value corresponding to the key.
40906	Value string `json:"value,omitempty"`
40907
40908	// ForceSendFields is a list of field names (e.g. "Key") to
40909	// unconditionally include in API requests. By default, fields with
40910	// empty values are omitted from API requests. However, any non-pointer,
40911	// non-interface field appearing in ForceSendFields will be sent to the
40912	// server regardless of whether the field is empty or not. This may be
40913	// used to include empty fields in Patch requests.
40914	ForceSendFields []string `json:"-"`
40915
40916	// NullFields is a list of field names (e.g. "Key") to include in API
40917	// requests with the JSON null value. By default, fields with empty
40918	// values are omitted from API requests. However, any field with an
40919	// empty value appearing in NullFields will be sent to the server as
40920	// null. It is an error if a field in this list has a non-empty value.
40921	// This may be used to include null fields in Patch requests.
40922	NullFields []string `json:"-"`
40923}
40924
40925func (s *TargetHttpsProxyListWarningData) MarshalJSON() ([]byte, error) {
40926	type NoMethod TargetHttpsProxyListWarningData
40927	raw := NoMethod(*s)
40928	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40929}
40930
40931// TargetInstance: Represents a Target Instance resource.
40932//
40933// You can use a target instance to handle traffic for one or more
40934// forwarding rules, which is ideal for forwarding protocol traffic that
40935// is managed by a single source. For example, ESP, AH, TCP, or UDP. For
40936// more information, read Target instances. (== resource_for
40937// {$api_version}.targetInstances ==)
40938type TargetInstance struct {
40939	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
40940	// format.
40941	CreationTimestamp string `json:"creationTimestamp,omitempty"`
40942
40943	// Description: An optional description of this resource. Provide this
40944	// property when you create the resource.
40945	Description string `json:"description,omitempty"`
40946
40947	// Id: [Output Only] The unique identifier for the resource. This
40948	// identifier is defined by the server.
40949	Id uint64 `json:"id,omitempty,string"`
40950
40951	// Instance: A URL to the virtual machine instance that handles traffic
40952	// for this target instance. When creating a target instance, you can
40953	// provide the fully-qualified URL or a valid partial URL to the desired
40954	// virtual machine. For example, the following are all valid URLs:
40955	// -
40956	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
40957	//
40958	// - projects/project/zones/zone/instances/instance
40959	// - zones/zone/instances/instance
40960	Instance string `json:"instance,omitempty"`
40961
40962	// Kind: [Output Only] The type of the resource. Always
40963	// compute#targetInstance for target instances.
40964	Kind string `json:"kind,omitempty"`
40965
40966	// Name: Name of the resource. Provided by the client when the resource
40967	// is created. The name must be 1-63 characters long, and comply with
40968	// RFC1035. Specifically, the name must be 1-63 characters long and
40969	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
40970	// the first character must be a lowercase letter, and all following
40971	// characters must be a dash, lowercase letter, or digit, except the
40972	// last character, which cannot be a dash.
40973	Name string `json:"name,omitempty"`
40974
40975	// NatPolicy: NAT option controlling how IPs are NAT'ed to the instance.
40976	// Currently only NO_NAT (default value) is supported.
40977	//
40978	// Possible values:
40979	//   "NO_NAT"
40980	NatPolicy string `json:"natPolicy,omitempty"`
40981
40982	// SelfLink: [Output Only] Server-defined URL for the resource.
40983	SelfLink string `json:"selfLink,omitempty"`
40984
40985	// Zone: [Output Only] URL of the zone where the target instance
40986	// resides. You must specify this field as part of the HTTP request URL.
40987	// It is not settable as a field in the request body.
40988	Zone string `json:"zone,omitempty"`
40989
40990	// ServerResponse contains the HTTP response code and headers from the
40991	// server.
40992	googleapi.ServerResponse `json:"-"`
40993
40994	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
40995	// to unconditionally include in API requests. By default, fields with
40996	// empty values are omitted from API requests. However, any non-pointer,
40997	// non-interface field appearing in ForceSendFields will be sent to the
40998	// server regardless of whether the field is empty or not. This may be
40999	// used to include empty fields in Patch requests.
41000	ForceSendFields []string `json:"-"`
41001
41002	// NullFields is a list of field names (e.g. "CreationTimestamp") to
41003	// include in API requests with the JSON null value. By default, fields
41004	// with empty values are omitted from API requests. However, any field
41005	// with an empty value appearing in NullFields will be sent to the
41006	// server as null. It is an error if a field in this list has a
41007	// non-empty value. This may be used to include null fields in Patch
41008	// requests.
41009	NullFields []string `json:"-"`
41010}
41011
41012func (s *TargetInstance) MarshalJSON() ([]byte, error) {
41013	type NoMethod TargetInstance
41014	raw := NoMethod(*s)
41015	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41016}
41017
41018type TargetInstanceAggregatedList struct {
41019	// Id: [Output Only] Unique identifier for the resource; defined by the
41020	// server.
41021	Id string `json:"id,omitempty"`
41022
41023	// Items: A list of TargetInstance resources.
41024	Items map[string]TargetInstancesScopedList `json:"items,omitempty"`
41025
41026	// Kind: Type of resource.
41027	Kind string `json:"kind,omitempty"`
41028
41029	// NextPageToken: [Output Only] This token allows you to get the next
41030	// page of results for list requests. If the number of results is larger
41031	// than maxResults, use the nextPageToken as a value for the query
41032	// parameter pageToken in the next list request. Subsequent list
41033	// requests will have their own nextPageToken to continue paging through
41034	// the results.
41035	NextPageToken string `json:"nextPageToken,omitempty"`
41036
41037	// SelfLink: [Output Only] Server-defined URL for this resource.
41038	SelfLink string `json:"selfLink,omitempty"`
41039
41040	// Unreachables: [Output Only] Unreachable resources.
41041	Unreachables []string `json:"unreachables,omitempty"`
41042
41043	// Warning: [Output Only] Informational warning message.
41044	Warning *TargetInstanceAggregatedListWarning `json:"warning,omitempty"`
41045
41046	// ServerResponse contains the HTTP response code and headers from the
41047	// server.
41048	googleapi.ServerResponse `json:"-"`
41049
41050	// ForceSendFields is a list of field names (e.g. "Id") to
41051	// unconditionally include in API requests. By default, fields with
41052	// empty values are omitted from API requests. However, any non-pointer,
41053	// non-interface field appearing in ForceSendFields will be sent to the
41054	// server regardless of whether the field is empty or not. This may be
41055	// used to include empty fields in Patch requests.
41056	ForceSendFields []string `json:"-"`
41057
41058	// NullFields is a list of field names (e.g. "Id") to include in API
41059	// requests with the JSON null value. By default, fields with empty
41060	// values are omitted from API requests. However, any field with an
41061	// empty value appearing in NullFields will be sent to the server as
41062	// null. It is an error if a field in this list has a non-empty value.
41063	// This may be used to include null fields in Patch requests.
41064	NullFields []string `json:"-"`
41065}
41066
41067func (s *TargetInstanceAggregatedList) MarshalJSON() ([]byte, error) {
41068	type NoMethod TargetInstanceAggregatedList
41069	raw := NoMethod(*s)
41070	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41071}
41072
41073// TargetInstanceAggregatedListWarning: [Output Only] Informational
41074// warning message.
41075type TargetInstanceAggregatedListWarning struct {
41076	// Code: [Output Only] A warning code, if applicable. For example,
41077	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41078	// the response.
41079	//
41080	// Possible values:
41081	//   "CLEANUP_FAILED"
41082	//   "DEPRECATED_RESOURCE_USED"
41083	//   "DEPRECATED_TYPE_USED"
41084	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
41085	//   "EXPERIMENTAL_TYPE_USED"
41086	//   "EXTERNAL_API_WARNING"
41087	//   "FIELD_VALUE_OVERRIDEN"
41088	//   "INJECTED_KERNELS_DEPRECATED"
41089	//   "LARGE_DEPLOYMENT_WARNING"
41090	//   "MISSING_TYPE_DEPENDENCY"
41091	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
41092	//   "NEXT_HOP_CANNOT_IP_FORWARD"
41093	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
41094	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
41095	//   "NEXT_HOP_NOT_RUNNING"
41096	//   "NOT_CRITICAL_ERROR"
41097	//   "NO_RESULTS_ON_PAGE"
41098	//   "PARTIAL_SUCCESS"
41099	//   "REQUIRED_TOS_AGREEMENT"
41100	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
41101	//   "RESOURCE_NOT_DELETED"
41102	//   "SCHEMA_VALIDATION_IGNORED"
41103	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
41104	//   "UNDECLARED_PROPERTIES"
41105	//   "UNREACHABLE"
41106	Code string `json:"code,omitempty"`
41107
41108	// Data: [Output Only] Metadata about this warning in key: value format.
41109	// For example:
41110	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
41111	Data []*TargetInstanceAggregatedListWarningData `json:"data,omitempty"`
41112
41113	// Message: [Output Only] A human-readable description of the warning
41114	// code.
41115	Message string `json:"message,omitempty"`
41116
41117	// ForceSendFields is a list of field names (e.g. "Code") to
41118	// unconditionally include in API requests. By default, fields with
41119	// empty values are omitted from API requests. However, any non-pointer,
41120	// non-interface field appearing in ForceSendFields will be sent to the
41121	// server regardless of whether the field is empty or not. This may be
41122	// used to include empty fields in Patch requests.
41123	ForceSendFields []string `json:"-"`
41124
41125	// NullFields is a list of field names (e.g. "Code") to include in API
41126	// requests with the JSON null value. By default, fields with empty
41127	// values are omitted from API requests. However, any field with an
41128	// empty value appearing in NullFields will be sent to the server as
41129	// null. It is an error if a field in this list has a non-empty value.
41130	// This may be used to include null fields in Patch requests.
41131	NullFields []string `json:"-"`
41132}
41133
41134func (s *TargetInstanceAggregatedListWarning) MarshalJSON() ([]byte, error) {
41135	type NoMethod TargetInstanceAggregatedListWarning
41136	raw := NoMethod(*s)
41137	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41138}
41139
41140type TargetInstanceAggregatedListWarningData struct {
41141	// Key: [Output Only] A key that provides more detail on the warning
41142	// being returned. For example, for warnings where there are no results
41143	// in a list request for a particular zone, this key might be scope and
41144	// the key value might be the zone name. Other examples might be a key
41145	// indicating a deprecated resource and a suggested replacement, or a
41146	// warning about invalid network settings (for example, if an instance
41147	// attempts to perform IP forwarding but is not enabled for IP
41148	// forwarding).
41149	Key string `json:"key,omitempty"`
41150
41151	// Value: [Output Only] A warning data value corresponding to the key.
41152	Value string `json:"value,omitempty"`
41153
41154	// ForceSendFields is a list of field names (e.g. "Key") to
41155	// unconditionally include in API requests. By default, fields with
41156	// empty values are omitted from API requests. However, any non-pointer,
41157	// non-interface field appearing in ForceSendFields will be sent to the
41158	// server regardless of whether the field is empty or not. This may be
41159	// used to include empty fields in Patch requests.
41160	ForceSendFields []string `json:"-"`
41161
41162	// NullFields is a list of field names (e.g. "Key") to include in API
41163	// requests with the JSON null value. By default, fields with empty
41164	// values are omitted from API requests. However, any field with an
41165	// empty value appearing in NullFields will be sent to the server as
41166	// null. It is an error if a field in this list has a non-empty value.
41167	// This may be used to include null fields in Patch requests.
41168	NullFields []string `json:"-"`
41169}
41170
41171func (s *TargetInstanceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
41172	type NoMethod TargetInstanceAggregatedListWarningData
41173	raw := NoMethod(*s)
41174	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41175}
41176
41177// TargetInstanceList: Contains a list of TargetInstance resources.
41178type TargetInstanceList struct {
41179	// Id: [Output Only] Unique identifier for the resource; defined by the
41180	// server.
41181	Id string `json:"id,omitempty"`
41182
41183	// Items: A list of TargetInstance resources.
41184	Items []*TargetInstance `json:"items,omitempty"`
41185
41186	// Kind: Type of resource.
41187	Kind string `json:"kind,omitempty"`
41188
41189	// NextPageToken: [Output Only] This token allows you to get the next
41190	// page of results for list requests. If the number of results is larger
41191	// than maxResults, use the nextPageToken as a value for the query
41192	// parameter pageToken in the next list request. Subsequent list
41193	// requests will have their own nextPageToken to continue paging through
41194	// the results.
41195	NextPageToken string `json:"nextPageToken,omitempty"`
41196
41197	// SelfLink: [Output Only] Server-defined URL for this resource.
41198	SelfLink string `json:"selfLink,omitempty"`
41199
41200	// Warning: [Output Only] Informational warning message.
41201	Warning *TargetInstanceListWarning `json:"warning,omitempty"`
41202
41203	// ServerResponse contains the HTTP response code and headers from the
41204	// server.
41205	googleapi.ServerResponse `json:"-"`
41206
41207	// ForceSendFields is a list of field names (e.g. "Id") to
41208	// unconditionally include in API requests. By default, fields with
41209	// empty values are omitted from API requests. However, any non-pointer,
41210	// non-interface field appearing in ForceSendFields will be sent to the
41211	// server regardless of whether the field is empty or not. This may be
41212	// used to include empty fields in Patch requests.
41213	ForceSendFields []string `json:"-"`
41214
41215	// NullFields is a list of field names (e.g. "Id") to include in API
41216	// requests with the JSON null value. By default, fields with empty
41217	// values are omitted from API requests. However, any field with an
41218	// empty value appearing in NullFields will be sent to the server as
41219	// null. It is an error if a field in this list has a non-empty value.
41220	// This may be used to include null fields in Patch requests.
41221	NullFields []string `json:"-"`
41222}
41223
41224func (s *TargetInstanceList) MarshalJSON() ([]byte, error) {
41225	type NoMethod TargetInstanceList
41226	raw := NoMethod(*s)
41227	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41228}
41229
41230// TargetInstanceListWarning: [Output Only] Informational warning
41231// message.
41232type TargetInstanceListWarning struct {
41233	// Code: [Output Only] A warning code, if applicable. For example,
41234	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41235	// the response.
41236	//
41237	// Possible values:
41238	//   "CLEANUP_FAILED"
41239	//   "DEPRECATED_RESOURCE_USED"
41240	//   "DEPRECATED_TYPE_USED"
41241	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
41242	//   "EXPERIMENTAL_TYPE_USED"
41243	//   "EXTERNAL_API_WARNING"
41244	//   "FIELD_VALUE_OVERRIDEN"
41245	//   "INJECTED_KERNELS_DEPRECATED"
41246	//   "LARGE_DEPLOYMENT_WARNING"
41247	//   "MISSING_TYPE_DEPENDENCY"
41248	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
41249	//   "NEXT_HOP_CANNOT_IP_FORWARD"
41250	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
41251	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
41252	//   "NEXT_HOP_NOT_RUNNING"
41253	//   "NOT_CRITICAL_ERROR"
41254	//   "NO_RESULTS_ON_PAGE"
41255	//   "PARTIAL_SUCCESS"
41256	//   "REQUIRED_TOS_AGREEMENT"
41257	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
41258	//   "RESOURCE_NOT_DELETED"
41259	//   "SCHEMA_VALIDATION_IGNORED"
41260	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
41261	//   "UNDECLARED_PROPERTIES"
41262	//   "UNREACHABLE"
41263	Code string `json:"code,omitempty"`
41264
41265	// Data: [Output Only] Metadata about this warning in key: value format.
41266	// For example:
41267	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
41268	Data []*TargetInstanceListWarningData `json:"data,omitempty"`
41269
41270	// Message: [Output Only] A human-readable description of the warning
41271	// code.
41272	Message string `json:"message,omitempty"`
41273
41274	// ForceSendFields is a list of field names (e.g. "Code") to
41275	// unconditionally include in API requests. By default, fields with
41276	// empty values are omitted from API requests. However, any non-pointer,
41277	// non-interface field appearing in ForceSendFields will be sent to the
41278	// server regardless of whether the field is empty or not. This may be
41279	// used to include empty fields in Patch requests.
41280	ForceSendFields []string `json:"-"`
41281
41282	// NullFields is a list of field names (e.g. "Code") to include in API
41283	// requests with the JSON null value. By default, fields with empty
41284	// values are omitted from API requests. However, any field with an
41285	// empty value appearing in NullFields will be sent to the server as
41286	// null. It is an error if a field in this list has a non-empty value.
41287	// This may be used to include null fields in Patch requests.
41288	NullFields []string `json:"-"`
41289}
41290
41291func (s *TargetInstanceListWarning) MarshalJSON() ([]byte, error) {
41292	type NoMethod TargetInstanceListWarning
41293	raw := NoMethod(*s)
41294	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41295}
41296
41297type TargetInstanceListWarningData struct {
41298	// Key: [Output Only] A key that provides more detail on the warning
41299	// being returned. For example, for warnings where there are no results
41300	// in a list request for a particular zone, this key might be scope and
41301	// the key value might be the zone name. Other examples might be a key
41302	// indicating a deprecated resource and a suggested replacement, or a
41303	// warning about invalid network settings (for example, if an instance
41304	// attempts to perform IP forwarding but is not enabled for IP
41305	// forwarding).
41306	Key string `json:"key,omitempty"`
41307
41308	// Value: [Output Only] A warning data value corresponding to the key.
41309	Value string `json:"value,omitempty"`
41310
41311	// ForceSendFields is a list of field names (e.g. "Key") to
41312	// unconditionally include in API requests. By default, fields with
41313	// empty values are omitted from API requests. However, any non-pointer,
41314	// non-interface field appearing in ForceSendFields will be sent to the
41315	// server regardless of whether the field is empty or not. This may be
41316	// used to include empty fields in Patch requests.
41317	ForceSendFields []string `json:"-"`
41318
41319	// NullFields is a list of field names (e.g. "Key") to include in API
41320	// requests with the JSON null value. By default, fields with empty
41321	// values are omitted from API requests. However, any field with an
41322	// empty value appearing in NullFields will be sent to the server as
41323	// null. It is an error if a field in this list has a non-empty value.
41324	// This may be used to include null fields in Patch requests.
41325	NullFields []string `json:"-"`
41326}
41327
41328func (s *TargetInstanceListWarningData) MarshalJSON() ([]byte, error) {
41329	type NoMethod TargetInstanceListWarningData
41330	raw := NoMethod(*s)
41331	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41332}
41333
41334type TargetInstancesScopedList struct {
41335	// TargetInstances: A list of target instances contained in this scope.
41336	TargetInstances []*TargetInstance `json:"targetInstances,omitempty"`
41337
41338	// Warning: Informational warning which replaces the list of addresses
41339	// when the list is empty.
41340	Warning *TargetInstancesScopedListWarning `json:"warning,omitempty"`
41341
41342	// ForceSendFields is a list of field names (e.g. "TargetInstances") to
41343	// unconditionally include in API requests. By default, fields with
41344	// empty values are omitted from API requests. However, any non-pointer,
41345	// non-interface field appearing in ForceSendFields will be sent to the
41346	// server regardless of whether the field is empty or not. This may be
41347	// used to include empty fields in Patch requests.
41348	ForceSendFields []string `json:"-"`
41349
41350	// NullFields is a list of field names (e.g. "TargetInstances") to
41351	// include in API requests with the JSON null value. By default, fields
41352	// with empty values are omitted from API requests. However, any field
41353	// with an empty value appearing in NullFields will be sent to the
41354	// server as null. It is an error if a field in this list has a
41355	// non-empty value. This may be used to include null fields in Patch
41356	// requests.
41357	NullFields []string `json:"-"`
41358}
41359
41360func (s *TargetInstancesScopedList) MarshalJSON() ([]byte, error) {
41361	type NoMethod TargetInstancesScopedList
41362	raw := NoMethod(*s)
41363	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41364}
41365
41366// TargetInstancesScopedListWarning: Informational warning which
41367// replaces the list of addresses when the list is empty.
41368type TargetInstancesScopedListWarning struct {
41369	// Code: [Output Only] A warning code, if applicable. For example,
41370	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41371	// the response.
41372	//
41373	// Possible values:
41374	//   "CLEANUP_FAILED"
41375	//   "DEPRECATED_RESOURCE_USED"
41376	//   "DEPRECATED_TYPE_USED"
41377	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
41378	//   "EXPERIMENTAL_TYPE_USED"
41379	//   "EXTERNAL_API_WARNING"
41380	//   "FIELD_VALUE_OVERRIDEN"
41381	//   "INJECTED_KERNELS_DEPRECATED"
41382	//   "LARGE_DEPLOYMENT_WARNING"
41383	//   "MISSING_TYPE_DEPENDENCY"
41384	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
41385	//   "NEXT_HOP_CANNOT_IP_FORWARD"
41386	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
41387	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
41388	//   "NEXT_HOP_NOT_RUNNING"
41389	//   "NOT_CRITICAL_ERROR"
41390	//   "NO_RESULTS_ON_PAGE"
41391	//   "PARTIAL_SUCCESS"
41392	//   "REQUIRED_TOS_AGREEMENT"
41393	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
41394	//   "RESOURCE_NOT_DELETED"
41395	//   "SCHEMA_VALIDATION_IGNORED"
41396	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
41397	//   "UNDECLARED_PROPERTIES"
41398	//   "UNREACHABLE"
41399	Code string `json:"code,omitempty"`
41400
41401	// Data: [Output Only] Metadata about this warning in key: value format.
41402	// For example:
41403	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
41404	Data []*TargetInstancesScopedListWarningData `json:"data,omitempty"`
41405
41406	// Message: [Output Only] A human-readable description of the warning
41407	// code.
41408	Message string `json:"message,omitempty"`
41409
41410	// ForceSendFields is a list of field names (e.g. "Code") to
41411	// unconditionally include in API requests. By default, fields with
41412	// empty values are omitted from API requests. However, any non-pointer,
41413	// non-interface field appearing in ForceSendFields will be sent to the
41414	// server regardless of whether the field is empty or not. This may be
41415	// used to include empty fields in Patch requests.
41416	ForceSendFields []string `json:"-"`
41417
41418	// NullFields is a list of field names (e.g. "Code") to include in API
41419	// requests with the JSON null value. By default, fields with empty
41420	// values are omitted from API requests. However, any field with an
41421	// empty value appearing in NullFields will be sent to the server as
41422	// null. It is an error if a field in this list has a non-empty value.
41423	// This may be used to include null fields in Patch requests.
41424	NullFields []string `json:"-"`
41425}
41426
41427func (s *TargetInstancesScopedListWarning) MarshalJSON() ([]byte, error) {
41428	type NoMethod TargetInstancesScopedListWarning
41429	raw := NoMethod(*s)
41430	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41431}
41432
41433type TargetInstancesScopedListWarningData struct {
41434	// Key: [Output Only] A key that provides more detail on the warning
41435	// being returned. For example, for warnings where there are no results
41436	// in a list request for a particular zone, this key might be scope and
41437	// the key value might be the zone name. Other examples might be a key
41438	// indicating a deprecated resource and a suggested replacement, or a
41439	// warning about invalid network settings (for example, if an instance
41440	// attempts to perform IP forwarding but is not enabled for IP
41441	// forwarding).
41442	Key string `json:"key,omitempty"`
41443
41444	// Value: [Output Only] A warning data value corresponding to the key.
41445	Value string `json:"value,omitempty"`
41446
41447	// ForceSendFields is a list of field names (e.g. "Key") to
41448	// unconditionally include in API requests. By default, fields with
41449	// empty values are omitted from API requests. However, any non-pointer,
41450	// non-interface field appearing in ForceSendFields will be sent to the
41451	// server regardless of whether the field is empty or not. This may be
41452	// used to include empty fields in Patch requests.
41453	ForceSendFields []string `json:"-"`
41454
41455	// NullFields is a list of field names (e.g. "Key") to include in API
41456	// requests with the JSON null value. By default, fields with empty
41457	// values are omitted from API requests. However, any field with an
41458	// empty value appearing in NullFields will be sent to the server as
41459	// null. It is an error if a field in this list has a non-empty value.
41460	// This may be used to include null fields in Patch requests.
41461	NullFields []string `json:"-"`
41462}
41463
41464func (s *TargetInstancesScopedListWarningData) MarshalJSON() ([]byte, error) {
41465	type NoMethod TargetInstancesScopedListWarningData
41466	raw := NoMethod(*s)
41467	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41468}
41469
41470// TargetPool: Represents a Target Pool resource.
41471//
41472// Target pools are used for network TCP/UDP load balancing. A target
41473// pool references member instances, an associated legacy
41474// HttpHealthCheck resource, and, optionally, a backup target pool. For
41475// more information, read Using target pools. (== resource_for
41476// {$api_version}.targetPools ==)
41477type TargetPool struct {
41478	// BackupPool: The server-defined URL for the resource. This field is
41479	// applicable only when the containing target pool is serving a
41480	// forwarding rule as the primary pool, and its failoverRatio field is
41481	// properly set to a value between [0, 1].
41482	//
41483	// backupPool and failoverRatio together define the fallback behavior of
41484	// the primary target pool: if the ratio of the healthy instances in the
41485	// primary pool is at or below failoverRatio, traffic arriving at the
41486	// load-balanced IP will be directed to the backup pool.
41487	//
41488	// In case where failoverRatio and backupPool are not set, or all the
41489	// instances in the backup pool are unhealthy, the traffic will be
41490	// directed back to the primary pool in the "force" mode, where traffic
41491	// will be spread to the healthy instances with the best effort, or to
41492	// all instances when no instance is healthy.
41493	BackupPool string `json:"backupPool,omitempty"`
41494
41495	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
41496	// format.
41497	CreationTimestamp string `json:"creationTimestamp,omitempty"`
41498
41499	// Description: An optional description of this resource. Provide this
41500	// property when you create the resource.
41501	Description string `json:"description,omitempty"`
41502
41503	// FailoverRatio: This field is applicable only when the containing
41504	// target pool is serving a forwarding rule as the primary pool (i.e.,
41505	// not as a backup pool to some other target pool). The value of the
41506	// field must be in [0, 1].
41507	//
41508	// If set, backupPool must also be set. They together define the
41509	// fallback behavior of the primary target pool: if the ratio of the
41510	// healthy instances in the primary pool is at or below this number,
41511	// traffic arriving at the load-balanced IP will be directed to the
41512	// backup pool.
41513	//
41514	// In case where failoverRatio is not set or all the instances in the
41515	// backup pool are unhealthy, the traffic will be directed back to the
41516	// primary pool in the "force" mode, where traffic will be spread to the
41517	// healthy instances with the best effort, or to all instances when no
41518	// instance is healthy.
41519	FailoverRatio float64 `json:"failoverRatio,omitempty"`
41520
41521	// HealthChecks: The URL of the HttpHealthCheck resource. A member
41522	// instance in this pool is considered healthy if and only if the health
41523	// checks pass. Only legacy HttpHealthChecks are supported. Only one
41524	// health check may be specified.
41525	HealthChecks []string `json:"healthChecks,omitempty"`
41526
41527	// Id: [Output Only] The unique identifier for the resource. This
41528	// identifier is defined by the server.
41529	Id uint64 `json:"id,omitempty,string"`
41530
41531	// Instances: A list of resource URLs to the virtual machine instances
41532	// serving this pool. They must live in zones contained in the same
41533	// region as this pool.
41534	Instances []string `json:"instances,omitempty"`
41535
41536	// Kind: [Output Only] Type of the resource. Always compute#targetPool
41537	// for target pools.
41538	Kind string `json:"kind,omitempty"`
41539
41540	// Name: Name of the resource. Provided by the client when the resource
41541	// is created. The name must be 1-63 characters long, and comply with
41542	// RFC1035. Specifically, the name must be 1-63 characters long and
41543	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
41544	// the first character must be a lowercase letter, and all following
41545	// characters must be a dash, lowercase letter, or digit, except the
41546	// last character, which cannot be a dash.
41547	Name string `json:"name,omitempty"`
41548
41549	// Region: [Output Only] URL of the region where the target pool
41550	// resides.
41551	Region string `json:"region,omitempty"`
41552
41553	// SelfLink: [Output Only] Server-defined URL for the resource.
41554	SelfLink string `json:"selfLink,omitempty"`
41555
41556	// SessionAffinity: Session affinity option, must be one of the
41557	// following values:
41558	// NONE: Connections from the same client IP may go to any instance in
41559	// the pool.
41560	// CLIENT_IP: Connections from the same client IP will go to the same
41561	// instance in the pool while that instance remains
41562	// healthy.
41563	// CLIENT_IP_PROTO: Connections from the same client IP with the same IP
41564	// protocol will go to the same instance in the pool while that instance
41565	// remains healthy.
41566	//
41567	// Possible values:
41568	//   "CLIENT_IP"
41569	//   "CLIENT_IP_NO_DESTINATION"
41570	//   "CLIENT_IP_PORT_PROTO"
41571	//   "CLIENT_IP_PROTO"
41572	//   "GENERATED_COOKIE"
41573	//   "HEADER_FIELD"
41574	//   "HTTP_COOKIE"
41575	//   "NONE"
41576	SessionAffinity string `json:"sessionAffinity,omitempty"`
41577
41578	// ServerResponse contains the HTTP response code and headers from the
41579	// server.
41580	googleapi.ServerResponse `json:"-"`
41581
41582	// ForceSendFields is a list of field names (e.g. "BackupPool") to
41583	// unconditionally include in API requests. By default, fields with
41584	// empty values are omitted from API requests. However, any non-pointer,
41585	// non-interface field appearing in ForceSendFields will be sent to the
41586	// server regardless of whether the field is empty or not. This may be
41587	// used to include empty fields in Patch requests.
41588	ForceSendFields []string `json:"-"`
41589
41590	// NullFields is a list of field names (e.g. "BackupPool") to include in
41591	// API requests with the JSON null value. By default, fields with empty
41592	// values are omitted from API requests. However, any field with an
41593	// empty value appearing in NullFields will be sent to the server as
41594	// null. It is an error if a field in this list has a non-empty value.
41595	// This may be used to include null fields in Patch requests.
41596	NullFields []string `json:"-"`
41597}
41598
41599func (s *TargetPool) MarshalJSON() ([]byte, error) {
41600	type NoMethod TargetPool
41601	raw := NoMethod(*s)
41602	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41603}
41604
41605func (s *TargetPool) UnmarshalJSON(data []byte) error {
41606	type NoMethod TargetPool
41607	var s1 struct {
41608		FailoverRatio gensupport.JSONFloat64 `json:"failoverRatio"`
41609		*NoMethod
41610	}
41611	s1.NoMethod = (*NoMethod)(s)
41612	if err := json.Unmarshal(data, &s1); err != nil {
41613		return err
41614	}
41615	s.FailoverRatio = float64(s1.FailoverRatio)
41616	return nil
41617}
41618
41619type TargetPoolAggregatedList struct {
41620	// Id: [Output Only] Unique identifier for the resource; defined by the
41621	// server.
41622	Id string `json:"id,omitempty"`
41623
41624	// Items: A list of TargetPool resources.
41625	Items map[string]TargetPoolsScopedList `json:"items,omitempty"`
41626
41627	// Kind: [Output Only] Type of resource. Always
41628	// compute#targetPoolAggregatedList for aggregated lists of target
41629	// pools.
41630	Kind string `json:"kind,omitempty"`
41631
41632	// NextPageToken: [Output Only] This token allows you to get the next
41633	// page of results for list requests. If the number of results is larger
41634	// than maxResults, use the nextPageToken as a value for the query
41635	// parameter pageToken in the next list request. Subsequent list
41636	// requests will have their own nextPageToken to continue paging through
41637	// the results.
41638	NextPageToken string `json:"nextPageToken,omitempty"`
41639
41640	// SelfLink: [Output Only] Server-defined URL for this resource.
41641	SelfLink string `json:"selfLink,omitempty"`
41642
41643	// Unreachables: [Output Only] Unreachable resources.
41644	Unreachables []string `json:"unreachables,omitempty"`
41645
41646	// Warning: [Output Only] Informational warning message.
41647	Warning *TargetPoolAggregatedListWarning `json:"warning,omitempty"`
41648
41649	// ServerResponse contains the HTTP response code and headers from the
41650	// server.
41651	googleapi.ServerResponse `json:"-"`
41652
41653	// ForceSendFields is a list of field names (e.g. "Id") 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. "Id") to include in API
41662	// 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 *TargetPoolAggregatedList) MarshalJSON() ([]byte, error) {
41671	type NoMethod TargetPoolAggregatedList
41672	raw := NoMethod(*s)
41673	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41674}
41675
41676// TargetPoolAggregatedListWarning: [Output Only] Informational warning
41677// message.
41678type TargetPoolAggregatedListWarning struct {
41679	// Code: [Output Only] A warning code, if applicable. For example,
41680	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41681	// the response.
41682	//
41683	// Possible values:
41684	//   "CLEANUP_FAILED"
41685	//   "DEPRECATED_RESOURCE_USED"
41686	//   "DEPRECATED_TYPE_USED"
41687	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
41688	//   "EXPERIMENTAL_TYPE_USED"
41689	//   "EXTERNAL_API_WARNING"
41690	//   "FIELD_VALUE_OVERRIDEN"
41691	//   "INJECTED_KERNELS_DEPRECATED"
41692	//   "LARGE_DEPLOYMENT_WARNING"
41693	//   "MISSING_TYPE_DEPENDENCY"
41694	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
41695	//   "NEXT_HOP_CANNOT_IP_FORWARD"
41696	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
41697	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
41698	//   "NEXT_HOP_NOT_RUNNING"
41699	//   "NOT_CRITICAL_ERROR"
41700	//   "NO_RESULTS_ON_PAGE"
41701	//   "PARTIAL_SUCCESS"
41702	//   "REQUIRED_TOS_AGREEMENT"
41703	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
41704	//   "RESOURCE_NOT_DELETED"
41705	//   "SCHEMA_VALIDATION_IGNORED"
41706	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
41707	//   "UNDECLARED_PROPERTIES"
41708	//   "UNREACHABLE"
41709	Code string `json:"code,omitempty"`
41710
41711	// Data: [Output Only] Metadata about this warning in key: value format.
41712	// For example:
41713	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
41714	Data []*TargetPoolAggregatedListWarningData `json:"data,omitempty"`
41715
41716	// Message: [Output Only] A human-readable description of the warning
41717	// code.
41718	Message string `json:"message,omitempty"`
41719
41720	// ForceSendFields is a list of field names (e.g. "Code") to
41721	// unconditionally include in API requests. By default, fields with
41722	// empty values are omitted from API requests. However, any non-pointer,
41723	// non-interface field appearing in ForceSendFields will be sent to the
41724	// server regardless of whether the field is empty or not. This may be
41725	// used to include empty fields in Patch requests.
41726	ForceSendFields []string `json:"-"`
41727
41728	// NullFields is a list of field names (e.g. "Code") to include in API
41729	// requests with the JSON null value. By default, fields with empty
41730	// values are omitted from API requests. However, any field with an
41731	// empty value appearing in NullFields will be sent to the server as
41732	// null. It is an error if a field in this list has a non-empty value.
41733	// This may be used to include null fields in Patch requests.
41734	NullFields []string `json:"-"`
41735}
41736
41737func (s *TargetPoolAggregatedListWarning) MarshalJSON() ([]byte, error) {
41738	type NoMethod TargetPoolAggregatedListWarning
41739	raw := NoMethod(*s)
41740	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41741}
41742
41743type TargetPoolAggregatedListWarningData struct {
41744	// Key: [Output Only] A key that provides more detail on the warning
41745	// being returned. For example, for warnings where there are no results
41746	// in a list request for a particular zone, this key might be scope and
41747	// the key value might be the zone name. Other examples might be a key
41748	// indicating a deprecated resource and a suggested replacement, or a
41749	// warning about invalid network settings (for example, if an instance
41750	// attempts to perform IP forwarding but is not enabled for IP
41751	// forwarding).
41752	Key string `json:"key,omitempty"`
41753
41754	// Value: [Output Only] A warning data value corresponding to the key.
41755	Value string `json:"value,omitempty"`
41756
41757	// ForceSendFields is a list of field names (e.g. "Key") to
41758	// unconditionally include in API requests. By default, fields with
41759	// empty values are omitted from API requests. However, any non-pointer,
41760	// non-interface field appearing in ForceSendFields will be sent to the
41761	// server regardless of whether the field is empty or not. This may be
41762	// used to include empty fields in Patch requests.
41763	ForceSendFields []string `json:"-"`
41764
41765	// NullFields is a list of field names (e.g. "Key") to include in API
41766	// requests with the JSON null value. By default, fields with empty
41767	// values are omitted from API requests. However, any field with an
41768	// empty value appearing in NullFields will be sent to the server as
41769	// null. It is an error if a field in this list has a non-empty value.
41770	// This may be used to include null fields in Patch requests.
41771	NullFields []string `json:"-"`
41772}
41773
41774func (s *TargetPoolAggregatedListWarningData) MarshalJSON() ([]byte, error) {
41775	type NoMethod TargetPoolAggregatedListWarningData
41776	raw := NoMethod(*s)
41777	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41778}
41779
41780type TargetPoolInstanceHealth struct {
41781	HealthStatus []*HealthStatus `json:"healthStatus,omitempty"`
41782
41783	// Kind: [Output Only] Type of resource. Always
41784	// compute#targetPoolInstanceHealth when checking the health of an
41785	// instance.
41786	Kind string `json:"kind,omitempty"`
41787
41788	// ServerResponse contains the HTTP response code and headers from the
41789	// server.
41790	googleapi.ServerResponse `json:"-"`
41791
41792	// ForceSendFields is a list of field names (e.g. "HealthStatus") to
41793	// unconditionally include in API requests. By default, fields with
41794	// empty values are omitted from API requests. However, any non-pointer,
41795	// non-interface field appearing in ForceSendFields will be sent to the
41796	// server regardless of whether the field is empty or not. This may be
41797	// used to include empty fields in Patch requests.
41798	ForceSendFields []string `json:"-"`
41799
41800	// NullFields is a list of field names (e.g. "HealthStatus") to include
41801	// in API requests with the JSON null value. By default, fields with
41802	// empty values are omitted from API requests. However, any field with
41803	// an empty value appearing in NullFields will be sent to the server as
41804	// null. It is an error if a field in this list has a non-empty value.
41805	// This may be used to include null fields in Patch requests.
41806	NullFields []string `json:"-"`
41807}
41808
41809func (s *TargetPoolInstanceHealth) MarshalJSON() ([]byte, error) {
41810	type NoMethod TargetPoolInstanceHealth
41811	raw := NoMethod(*s)
41812	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41813}
41814
41815// TargetPoolList: Contains a list of TargetPool resources.
41816type TargetPoolList struct {
41817	// Id: [Output Only] Unique identifier for the resource; defined by the
41818	// server.
41819	Id string `json:"id,omitempty"`
41820
41821	// Items: A list of TargetPool resources.
41822	Items []*TargetPool `json:"items,omitempty"`
41823
41824	// Kind: [Output Only] Type of resource. Always compute#targetPoolList
41825	// for lists of target pools.
41826	Kind string `json:"kind,omitempty"`
41827
41828	// NextPageToken: [Output Only] This token allows you to get the next
41829	// page of results for list requests. If the number of results is larger
41830	// than maxResults, use the nextPageToken as a value for the query
41831	// parameter pageToken in the next list request. Subsequent list
41832	// requests will have their own nextPageToken to continue paging through
41833	// the results.
41834	NextPageToken string `json:"nextPageToken,omitempty"`
41835
41836	// SelfLink: [Output Only] Server-defined URL for this resource.
41837	SelfLink string `json:"selfLink,omitempty"`
41838
41839	// Warning: [Output Only] Informational warning message.
41840	Warning *TargetPoolListWarning `json:"warning,omitempty"`
41841
41842	// ServerResponse contains the HTTP response code and headers from the
41843	// server.
41844	googleapi.ServerResponse `json:"-"`
41845
41846	// ForceSendFields is a list of field names (e.g. "Id") to
41847	// unconditionally include in API requests. By default, fields with
41848	// empty values are omitted from API requests. However, any non-pointer,
41849	// non-interface field appearing in ForceSendFields will be sent to the
41850	// server regardless of whether the field is empty or not. This may be
41851	// used to include empty fields in Patch requests.
41852	ForceSendFields []string `json:"-"`
41853
41854	// NullFields is a list of field names (e.g. "Id") to include in API
41855	// requests with the JSON null value. By default, fields with empty
41856	// values are omitted from API requests. However, any field with an
41857	// empty value appearing in NullFields will be sent to the server as
41858	// null. It is an error if a field in this list has a non-empty value.
41859	// This may be used to include null fields in Patch requests.
41860	NullFields []string `json:"-"`
41861}
41862
41863func (s *TargetPoolList) MarshalJSON() ([]byte, error) {
41864	type NoMethod TargetPoolList
41865	raw := NoMethod(*s)
41866	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41867}
41868
41869// TargetPoolListWarning: [Output Only] Informational warning message.
41870type TargetPoolListWarning struct {
41871	// Code: [Output Only] A warning code, if applicable. For example,
41872	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41873	// the response.
41874	//
41875	// Possible values:
41876	//   "CLEANUP_FAILED"
41877	//   "DEPRECATED_RESOURCE_USED"
41878	//   "DEPRECATED_TYPE_USED"
41879	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
41880	//   "EXPERIMENTAL_TYPE_USED"
41881	//   "EXTERNAL_API_WARNING"
41882	//   "FIELD_VALUE_OVERRIDEN"
41883	//   "INJECTED_KERNELS_DEPRECATED"
41884	//   "LARGE_DEPLOYMENT_WARNING"
41885	//   "MISSING_TYPE_DEPENDENCY"
41886	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
41887	//   "NEXT_HOP_CANNOT_IP_FORWARD"
41888	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
41889	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
41890	//   "NEXT_HOP_NOT_RUNNING"
41891	//   "NOT_CRITICAL_ERROR"
41892	//   "NO_RESULTS_ON_PAGE"
41893	//   "PARTIAL_SUCCESS"
41894	//   "REQUIRED_TOS_AGREEMENT"
41895	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
41896	//   "RESOURCE_NOT_DELETED"
41897	//   "SCHEMA_VALIDATION_IGNORED"
41898	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
41899	//   "UNDECLARED_PROPERTIES"
41900	//   "UNREACHABLE"
41901	Code string `json:"code,omitempty"`
41902
41903	// Data: [Output Only] Metadata about this warning in key: value format.
41904	// For example:
41905	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
41906	Data []*TargetPoolListWarningData `json:"data,omitempty"`
41907
41908	// Message: [Output Only] A human-readable description of the warning
41909	// code.
41910	Message string `json:"message,omitempty"`
41911
41912	// ForceSendFields is a list of field names (e.g. "Code") to
41913	// unconditionally include in API requests. By default, fields with
41914	// empty values are omitted from API requests. However, any non-pointer,
41915	// non-interface field appearing in ForceSendFields will be sent to the
41916	// server regardless of whether the field is empty or not. This may be
41917	// used to include empty fields in Patch requests.
41918	ForceSendFields []string `json:"-"`
41919
41920	// NullFields is a list of field names (e.g. "Code") to include in API
41921	// requests with the JSON null value. By default, fields with empty
41922	// values are omitted from API requests. However, any field with an
41923	// empty value appearing in NullFields will be sent to the server as
41924	// null. It is an error if a field in this list has a non-empty value.
41925	// This may be used to include null fields in Patch requests.
41926	NullFields []string `json:"-"`
41927}
41928
41929func (s *TargetPoolListWarning) MarshalJSON() ([]byte, error) {
41930	type NoMethod TargetPoolListWarning
41931	raw := NoMethod(*s)
41932	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41933}
41934
41935type TargetPoolListWarningData struct {
41936	// Key: [Output Only] A key that provides more detail on the warning
41937	// being returned. For example, for warnings where there are no results
41938	// in a list request for a particular zone, this key might be scope and
41939	// the key value might be the zone name. Other examples might be a key
41940	// indicating a deprecated resource and a suggested replacement, or a
41941	// warning about invalid network settings (for example, if an instance
41942	// attempts to perform IP forwarding but is not enabled for IP
41943	// forwarding).
41944	Key string `json:"key,omitempty"`
41945
41946	// Value: [Output Only] A warning data value corresponding to the key.
41947	Value string `json:"value,omitempty"`
41948
41949	// ForceSendFields is a list of field names (e.g. "Key") to
41950	// unconditionally include in API requests. By default, fields with
41951	// empty values are omitted from API requests. However, any non-pointer,
41952	// non-interface field appearing in ForceSendFields will be sent to the
41953	// server regardless of whether the field is empty or not. This may be
41954	// used to include empty fields in Patch requests.
41955	ForceSendFields []string `json:"-"`
41956
41957	// NullFields is a list of field names (e.g. "Key") to include in API
41958	// requests with the JSON null value. By default, fields with empty
41959	// values are omitted from API requests. However, any field with an
41960	// empty value appearing in NullFields will be sent to the server as
41961	// null. It is an error if a field in this list has a non-empty value.
41962	// This may be used to include null fields in Patch requests.
41963	NullFields []string `json:"-"`
41964}
41965
41966func (s *TargetPoolListWarningData) MarshalJSON() ([]byte, error) {
41967	type NoMethod TargetPoolListWarningData
41968	raw := NoMethod(*s)
41969	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41970}
41971
41972type TargetPoolsAddHealthCheckRequest struct {
41973	// HealthChecks: The HttpHealthCheck to add to the target pool.
41974	HealthChecks []*HealthCheckReference `json:"healthChecks,omitempty"`
41975
41976	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
41977	// unconditionally include in API requests. By default, fields with
41978	// empty values are omitted from API requests. However, any non-pointer,
41979	// non-interface field appearing in ForceSendFields will be sent to the
41980	// server regardless of whether the field is empty or not. This may be
41981	// used to include empty fields in Patch requests.
41982	ForceSendFields []string `json:"-"`
41983
41984	// NullFields is a list of field names (e.g. "HealthChecks") to include
41985	// in API requests with the JSON null value. By default, fields with
41986	// empty values are omitted from API requests. However, any field with
41987	// an empty value appearing in NullFields will be sent to the server as
41988	// null. It is an error if a field in this list has a non-empty value.
41989	// This may be used to include null fields in Patch requests.
41990	NullFields []string `json:"-"`
41991}
41992
41993func (s *TargetPoolsAddHealthCheckRequest) MarshalJSON() ([]byte, error) {
41994	type NoMethod TargetPoolsAddHealthCheckRequest
41995	raw := NoMethod(*s)
41996	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41997}
41998
41999type TargetPoolsAddInstanceRequest struct {
42000	// Instances: A full or partial URL to an instance to add to this target
42001	// pool. This can be a full or partial URL. For example, the following
42002	// are valid URLs:
42003	// -
42004	// https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-name
42005	//
42006	// - projects/project-id/zones/zone/instances/instance-name
42007	// - zones/zone/instances/instance-name
42008	Instances []*InstanceReference `json:"instances,omitempty"`
42009
42010	// ForceSendFields is a list of field names (e.g. "Instances") to
42011	// unconditionally include in API requests. By default, fields with
42012	// empty values are omitted from API requests. However, any non-pointer,
42013	// non-interface field appearing in ForceSendFields will be sent to the
42014	// server regardless of whether the field is empty or not. This may be
42015	// used to include empty fields in Patch requests.
42016	ForceSendFields []string `json:"-"`
42017
42018	// NullFields is a list of field names (e.g. "Instances") to include in
42019	// API requests with the JSON null value. By default, fields with empty
42020	// values are omitted from API requests. However, any field with an
42021	// empty value appearing in NullFields will be sent to the server as
42022	// null. It is an error if a field in this list has a non-empty value.
42023	// This may be used to include null fields in Patch requests.
42024	NullFields []string `json:"-"`
42025}
42026
42027func (s *TargetPoolsAddInstanceRequest) MarshalJSON() ([]byte, error) {
42028	type NoMethod TargetPoolsAddInstanceRequest
42029	raw := NoMethod(*s)
42030	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42031}
42032
42033type TargetPoolsRemoveHealthCheckRequest struct {
42034	// HealthChecks: Health check URL to be removed. This can be a full or
42035	// valid partial URL. For example, the following are valid URLs:
42036	// -
42037	// https://www.googleapis.com/compute/beta/projects/project/global/httpHealthChecks/health-check
42038	//
42039	// - projects/project/global/httpHealthChecks/health-check
42040	// - global/httpHealthChecks/health-check
42041	HealthChecks []*HealthCheckReference `json:"healthChecks,omitempty"`
42042
42043	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
42044	// unconditionally include in API requests. By default, fields with
42045	// empty values are omitted from API requests. However, any non-pointer,
42046	// non-interface field appearing in ForceSendFields will be sent to the
42047	// server regardless of whether the field is empty or not. This may be
42048	// used to include empty fields in Patch requests.
42049	ForceSendFields []string `json:"-"`
42050
42051	// NullFields is a list of field names (e.g. "HealthChecks") to include
42052	// in API requests with the JSON null value. By default, fields with
42053	// empty values are omitted from API requests. However, any field with
42054	// an empty value appearing in NullFields will be sent to the server as
42055	// null. It is an error if a field in this list has a non-empty value.
42056	// This may be used to include null fields in Patch requests.
42057	NullFields []string `json:"-"`
42058}
42059
42060func (s *TargetPoolsRemoveHealthCheckRequest) MarshalJSON() ([]byte, error) {
42061	type NoMethod TargetPoolsRemoveHealthCheckRequest
42062	raw := NoMethod(*s)
42063	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42064}
42065
42066type TargetPoolsRemoveInstanceRequest struct {
42067	// Instances: URLs of the instances to be removed from target pool.
42068	Instances []*InstanceReference `json:"instances,omitempty"`
42069
42070	// ForceSendFields is a list of field names (e.g. "Instances") to
42071	// unconditionally include in API requests. By default, fields with
42072	// empty values are omitted from API requests. However, any non-pointer,
42073	// non-interface field appearing in ForceSendFields will be sent to the
42074	// server regardless of whether the field is empty or not. This may be
42075	// used to include empty fields in Patch requests.
42076	ForceSendFields []string `json:"-"`
42077
42078	// NullFields is a list of field names (e.g. "Instances") to include in
42079	// API requests with the JSON null value. By default, fields with empty
42080	// values are omitted from API requests. However, any field with an
42081	// empty value appearing in NullFields will be sent to the server as
42082	// null. It is an error if a field in this list has a non-empty value.
42083	// This may be used to include null fields in Patch requests.
42084	NullFields []string `json:"-"`
42085}
42086
42087func (s *TargetPoolsRemoveInstanceRequest) MarshalJSON() ([]byte, error) {
42088	type NoMethod TargetPoolsRemoveInstanceRequest
42089	raw := NoMethod(*s)
42090	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42091}
42092
42093type TargetPoolsScopedList struct {
42094	// TargetPools: A list of target pools contained in this scope.
42095	TargetPools []*TargetPool `json:"targetPools,omitempty"`
42096
42097	// Warning: Informational warning which replaces the list of addresses
42098	// when the list is empty.
42099	Warning *TargetPoolsScopedListWarning `json:"warning,omitempty"`
42100
42101	// ForceSendFields is a list of field names (e.g. "TargetPools") to
42102	// unconditionally include in API requests. By default, fields with
42103	// empty values are omitted from API requests. However, any non-pointer,
42104	// non-interface field appearing in ForceSendFields will be sent to the
42105	// server regardless of whether the field is empty or not. This may be
42106	// used to include empty fields in Patch requests.
42107	ForceSendFields []string `json:"-"`
42108
42109	// NullFields is a list of field names (e.g. "TargetPools") to include
42110	// in API requests with the JSON null value. By default, fields with
42111	// empty values are omitted from API requests. However, any field with
42112	// an empty value appearing in NullFields will be sent to the server as
42113	// null. It is an error if a field in this list has a non-empty value.
42114	// This may be used to include null fields in Patch requests.
42115	NullFields []string `json:"-"`
42116}
42117
42118func (s *TargetPoolsScopedList) MarshalJSON() ([]byte, error) {
42119	type NoMethod TargetPoolsScopedList
42120	raw := NoMethod(*s)
42121	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42122}
42123
42124// TargetPoolsScopedListWarning: Informational warning which replaces
42125// the list of addresses when the list is empty.
42126type TargetPoolsScopedListWarning struct {
42127	// Code: [Output Only] A warning code, if applicable. For example,
42128	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42129	// the response.
42130	//
42131	// Possible values:
42132	//   "CLEANUP_FAILED"
42133	//   "DEPRECATED_RESOURCE_USED"
42134	//   "DEPRECATED_TYPE_USED"
42135	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
42136	//   "EXPERIMENTAL_TYPE_USED"
42137	//   "EXTERNAL_API_WARNING"
42138	//   "FIELD_VALUE_OVERRIDEN"
42139	//   "INJECTED_KERNELS_DEPRECATED"
42140	//   "LARGE_DEPLOYMENT_WARNING"
42141	//   "MISSING_TYPE_DEPENDENCY"
42142	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
42143	//   "NEXT_HOP_CANNOT_IP_FORWARD"
42144	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
42145	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
42146	//   "NEXT_HOP_NOT_RUNNING"
42147	//   "NOT_CRITICAL_ERROR"
42148	//   "NO_RESULTS_ON_PAGE"
42149	//   "PARTIAL_SUCCESS"
42150	//   "REQUIRED_TOS_AGREEMENT"
42151	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
42152	//   "RESOURCE_NOT_DELETED"
42153	//   "SCHEMA_VALIDATION_IGNORED"
42154	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
42155	//   "UNDECLARED_PROPERTIES"
42156	//   "UNREACHABLE"
42157	Code string `json:"code,omitempty"`
42158
42159	// Data: [Output Only] Metadata about this warning in key: value format.
42160	// For example:
42161	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
42162	Data []*TargetPoolsScopedListWarningData `json:"data,omitempty"`
42163
42164	// Message: [Output Only] A human-readable description of the warning
42165	// code.
42166	Message string `json:"message,omitempty"`
42167
42168	// ForceSendFields is a list of field names (e.g. "Code") to
42169	// unconditionally include in API requests. By default, fields with
42170	// empty values are omitted from API requests. However, any non-pointer,
42171	// non-interface field appearing in ForceSendFields will be sent to the
42172	// server regardless of whether the field is empty or not. This may be
42173	// used to include empty fields in Patch requests.
42174	ForceSendFields []string `json:"-"`
42175
42176	// NullFields is a list of field names (e.g. "Code") to include in API
42177	// requests with the JSON null value. By default, fields with empty
42178	// values are omitted from API requests. However, any field with an
42179	// empty value appearing in NullFields will be sent to the server as
42180	// null. It is an error if a field in this list has a non-empty value.
42181	// This may be used to include null fields in Patch requests.
42182	NullFields []string `json:"-"`
42183}
42184
42185func (s *TargetPoolsScopedListWarning) MarshalJSON() ([]byte, error) {
42186	type NoMethod TargetPoolsScopedListWarning
42187	raw := NoMethod(*s)
42188	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42189}
42190
42191type TargetPoolsScopedListWarningData struct {
42192	// Key: [Output Only] A key that provides more detail on the warning
42193	// being returned. For example, for warnings where there are no results
42194	// in a list request for a particular zone, this key might be scope and
42195	// the key value might be the zone name. Other examples might be a key
42196	// indicating a deprecated resource and a suggested replacement, or a
42197	// warning about invalid network settings (for example, if an instance
42198	// attempts to perform IP forwarding but is not enabled for IP
42199	// forwarding).
42200	Key string `json:"key,omitempty"`
42201
42202	// Value: [Output Only] A warning data value corresponding to the key.
42203	Value string `json:"value,omitempty"`
42204
42205	// ForceSendFields is a list of field names (e.g. "Key") to
42206	// unconditionally include in API requests. By default, fields with
42207	// empty values are omitted from API requests. However, any non-pointer,
42208	// non-interface field appearing in ForceSendFields will be sent to the
42209	// server regardless of whether the field is empty or not. This may be
42210	// used to include empty fields in Patch requests.
42211	ForceSendFields []string `json:"-"`
42212
42213	// NullFields is a list of field names (e.g. "Key") to include in API
42214	// requests with the JSON null value. By default, fields with empty
42215	// values are omitted from API requests. However, any field with an
42216	// empty value appearing in NullFields will be sent to the server as
42217	// null. It is an error if a field in this list has a non-empty value.
42218	// This may be used to include null fields in Patch requests.
42219	NullFields []string `json:"-"`
42220}
42221
42222func (s *TargetPoolsScopedListWarningData) MarshalJSON() ([]byte, error) {
42223	type NoMethod TargetPoolsScopedListWarningData
42224	raw := NoMethod(*s)
42225	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42226}
42227
42228type TargetReference struct {
42229	Target string `json:"target,omitempty"`
42230
42231	// ForceSendFields is a list of field names (e.g. "Target") to
42232	// unconditionally include in API requests. By default, fields with
42233	// empty values are omitted from API requests. However, any non-pointer,
42234	// non-interface field appearing in ForceSendFields will be sent to the
42235	// server regardless of whether the field is empty or not. This may be
42236	// used to include empty fields in Patch requests.
42237	ForceSendFields []string `json:"-"`
42238
42239	// NullFields is a list of field names (e.g. "Target") to include in API
42240	// requests with the JSON null value. By default, fields with empty
42241	// values are omitted from API requests. However, any field with an
42242	// empty value appearing in NullFields will be sent to the server as
42243	// null. It is an error if a field in this list has a non-empty value.
42244	// This may be used to include null fields in Patch requests.
42245	NullFields []string `json:"-"`
42246}
42247
42248func (s *TargetReference) MarshalJSON() ([]byte, error) {
42249	type NoMethod TargetReference
42250	raw := NoMethod(*s)
42251	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42252}
42253
42254type TargetSslProxiesSetBackendServiceRequest struct {
42255	// Service: The URL of the new BackendService resource for the
42256	// targetSslProxy.
42257	Service string `json:"service,omitempty"`
42258
42259	// ForceSendFields is a list of field names (e.g. "Service") to
42260	// unconditionally include in API requests. By default, fields with
42261	// empty values are omitted from API requests. However, any non-pointer,
42262	// non-interface field appearing in ForceSendFields will be sent to the
42263	// server regardless of whether the field is empty or not. This may be
42264	// used to include empty fields in Patch requests.
42265	ForceSendFields []string `json:"-"`
42266
42267	// NullFields is a list of field names (e.g. "Service") to include in
42268	// API requests with the JSON null value. By default, fields with empty
42269	// values are omitted from API requests. However, any field with an
42270	// empty value appearing in NullFields will be sent to the server as
42271	// null. It is an error if a field in this list has a non-empty value.
42272	// This may be used to include null fields in Patch requests.
42273	NullFields []string `json:"-"`
42274}
42275
42276func (s *TargetSslProxiesSetBackendServiceRequest) MarshalJSON() ([]byte, error) {
42277	type NoMethod TargetSslProxiesSetBackendServiceRequest
42278	raw := NoMethod(*s)
42279	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42280}
42281
42282type TargetSslProxiesSetProxyHeaderRequest struct {
42283	// ProxyHeader: The new type of proxy header to append before sending
42284	// data to the backend. NONE or PROXY_V1 are allowed.
42285	//
42286	// Possible values:
42287	//   "NONE"
42288	//   "PROXY_V1"
42289	ProxyHeader string `json:"proxyHeader,omitempty"`
42290
42291	// ForceSendFields is a list of field names (e.g. "ProxyHeader") to
42292	// unconditionally include in API requests. By default, fields with
42293	// empty values are omitted from API requests. However, any non-pointer,
42294	// non-interface field appearing in ForceSendFields will be sent to the
42295	// server regardless of whether the field is empty or not. This may be
42296	// used to include empty fields in Patch requests.
42297	ForceSendFields []string `json:"-"`
42298
42299	// NullFields is a list of field names (e.g. "ProxyHeader") to include
42300	// in API requests with the JSON null value. By default, fields with
42301	// empty values are omitted from API requests. However, any field with
42302	// an empty value appearing in NullFields will be sent to the server as
42303	// null. It is an error if a field in this list has a non-empty value.
42304	// This may be used to include null fields in Patch requests.
42305	NullFields []string `json:"-"`
42306}
42307
42308func (s *TargetSslProxiesSetProxyHeaderRequest) MarshalJSON() ([]byte, error) {
42309	type NoMethod TargetSslProxiesSetProxyHeaderRequest
42310	raw := NoMethod(*s)
42311	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42312}
42313
42314type TargetSslProxiesSetSslCertificatesRequest struct {
42315	// SslCertificates: New set of URLs to SslCertificate resources to
42316	// associate with this TargetSslProxy. At least one SSL certificate must
42317	// be specified. Currently, you may specify up to 15 SSL certificates.
42318	SslCertificates []string `json:"sslCertificates,omitempty"`
42319
42320	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
42321	// unconditionally include in API requests. By default, fields with
42322	// empty values are omitted from API requests. However, any non-pointer,
42323	// non-interface field appearing in ForceSendFields will be sent to the
42324	// server regardless of whether the field is empty or not. This may be
42325	// used to include empty fields in Patch requests.
42326	ForceSendFields []string `json:"-"`
42327
42328	// NullFields is a list of field names (e.g. "SslCertificates") to
42329	// include in API requests with the JSON null value. By default, fields
42330	// with empty values are omitted from API requests. However, any field
42331	// with an empty value appearing in NullFields will be sent to the
42332	// server as null. It is an error if a field in this list has a
42333	// non-empty value. This may be used to include null fields in Patch
42334	// requests.
42335	NullFields []string `json:"-"`
42336}
42337
42338func (s *TargetSslProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
42339	type NoMethod TargetSslProxiesSetSslCertificatesRequest
42340	raw := NoMethod(*s)
42341	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42342}
42343
42344// TargetSslProxy: Represents a Target SSL Proxy resource.
42345//
42346// A target SSL proxy is a component of a SSL Proxy load balancer.
42347// Global forwarding rules reference a target SSL proxy, and the target
42348// proxy then references an external backend service. For more
42349// information, read Using Target Proxies. (== resource_for
42350// {$api_version}.targetSslProxies ==)
42351type TargetSslProxy struct {
42352	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
42353	// format.
42354	CreationTimestamp string `json:"creationTimestamp,omitempty"`
42355
42356	// Description: An optional description of this resource. Provide this
42357	// property when you create the resource.
42358	Description string `json:"description,omitempty"`
42359
42360	// Id: [Output Only] The unique identifier for the resource. This
42361	// identifier is defined by the server.
42362	Id uint64 `json:"id,omitempty,string"`
42363
42364	// Kind: [Output Only] Type of the resource. Always
42365	// compute#targetSslProxy for target SSL proxies.
42366	Kind string `json:"kind,omitempty"`
42367
42368	// Name: Name of the resource. Provided by the client when the resource
42369	// is created. The name must be 1-63 characters long, and comply with
42370	// RFC1035. Specifically, the name must be 1-63 characters long and
42371	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
42372	// the first character must be a lowercase letter, and all following
42373	// characters must be a dash, lowercase letter, or digit, except the
42374	// last character, which cannot be a dash.
42375	Name string `json:"name,omitempty"`
42376
42377	// ProxyHeader: Specifies the type of proxy header to append before
42378	// sending data to the backend, either NONE or PROXY_V1. The default is
42379	// NONE.
42380	//
42381	// Possible values:
42382	//   "NONE"
42383	//   "PROXY_V1"
42384	ProxyHeader string `json:"proxyHeader,omitempty"`
42385
42386	// SelfLink: [Output Only] Server-defined URL for the resource.
42387	SelfLink string `json:"selfLink,omitempty"`
42388
42389	// Service: URL to the BackendService resource.
42390	Service string `json:"service,omitempty"`
42391
42392	// SslCertificates: URLs to SslCertificate resources that are used to
42393	// authenticate connections to Backends. At least one SSL certificate
42394	// must be specified. Currently, you may specify up to 15 SSL
42395	// certificates. sslCertificates do not apply when the load balancing
42396	// scheme is set to INTERNAL_SELF_MANAGED.
42397	SslCertificates []string `json:"sslCertificates,omitempty"`
42398
42399	// SslPolicy: URL of SslPolicy resource that will be associated with the
42400	// TargetSslProxy resource. If not set, the TargetSslProxy resource will
42401	// not have any SSL policy configured.
42402	SslPolicy string `json:"sslPolicy,omitempty"`
42403
42404	// ServerResponse contains the HTTP response code and headers from the
42405	// server.
42406	googleapi.ServerResponse `json:"-"`
42407
42408	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
42409	// to unconditionally include in API requests. By default, fields with
42410	// empty values are omitted from API requests. However, any non-pointer,
42411	// non-interface field appearing in ForceSendFields will be sent to the
42412	// server regardless of whether the field is empty or not. This may be
42413	// used to include empty fields in Patch requests.
42414	ForceSendFields []string `json:"-"`
42415
42416	// NullFields is a list of field names (e.g. "CreationTimestamp") to
42417	// include in API requests with the JSON null value. By default, fields
42418	// with empty values are omitted from API requests. However, any field
42419	// with an empty value appearing in NullFields will be sent to the
42420	// server as null. It is an error if a field in this list has a
42421	// non-empty value. This may be used to include null fields in Patch
42422	// requests.
42423	NullFields []string `json:"-"`
42424}
42425
42426func (s *TargetSslProxy) MarshalJSON() ([]byte, error) {
42427	type NoMethod TargetSslProxy
42428	raw := NoMethod(*s)
42429	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42430}
42431
42432// TargetSslProxyList: Contains a list of TargetSslProxy resources.
42433type TargetSslProxyList struct {
42434	// Id: [Output Only] Unique identifier for the resource; defined by the
42435	// server.
42436	Id string `json:"id,omitempty"`
42437
42438	// Items: A list of TargetSslProxy resources.
42439	Items []*TargetSslProxy `json:"items,omitempty"`
42440
42441	// Kind: Type of resource.
42442	Kind string `json:"kind,omitempty"`
42443
42444	// NextPageToken: [Output Only] This token allows you to get the next
42445	// page of results for list requests. If the number of results is larger
42446	// than maxResults, use the nextPageToken as a value for the query
42447	// parameter pageToken in the next list request. Subsequent list
42448	// requests will have their own nextPageToken to continue paging through
42449	// the results.
42450	NextPageToken string `json:"nextPageToken,omitempty"`
42451
42452	// SelfLink: [Output Only] Server-defined URL for this resource.
42453	SelfLink string `json:"selfLink,omitempty"`
42454
42455	// Warning: [Output Only] Informational warning message.
42456	Warning *TargetSslProxyListWarning `json:"warning,omitempty"`
42457
42458	// ServerResponse contains the HTTP response code and headers from the
42459	// server.
42460	googleapi.ServerResponse `json:"-"`
42461
42462	// ForceSendFields is a list of field names (e.g. "Id") to
42463	// unconditionally include in API requests. By default, fields with
42464	// empty values are omitted from API requests. However, any non-pointer,
42465	// non-interface field appearing in ForceSendFields will be sent to the
42466	// server regardless of whether the field is empty or not. This may be
42467	// used to include empty fields in Patch requests.
42468	ForceSendFields []string `json:"-"`
42469
42470	// NullFields is a list of field names (e.g. "Id") to include in API
42471	// requests with the JSON null value. By default, fields with empty
42472	// values are omitted from API requests. However, any field with an
42473	// empty value appearing in NullFields will be sent to the server as
42474	// null. It is an error if a field in this list has a non-empty value.
42475	// This may be used to include null fields in Patch requests.
42476	NullFields []string `json:"-"`
42477}
42478
42479func (s *TargetSslProxyList) MarshalJSON() ([]byte, error) {
42480	type NoMethod TargetSslProxyList
42481	raw := NoMethod(*s)
42482	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42483}
42484
42485// TargetSslProxyListWarning: [Output Only] Informational warning
42486// message.
42487type TargetSslProxyListWarning struct {
42488	// Code: [Output Only] A warning code, if applicable. For example,
42489	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42490	// the response.
42491	//
42492	// Possible values:
42493	//   "CLEANUP_FAILED"
42494	//   "DEPRECATED_RESOURCE_USED"
42495	//   "DEPRECATED_TYPE_USED"
42496	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
42497	//   "EXPERIMENTAL_TYPE_USED"
42498	//   "EXTERNAL_API_WARNING"
42499	//   "FIELD_VALUE_OVERRIDEN"
42500	//   "INJECTED_KERNELS_DEPRECATED"
42501	//   "LARGE_DEPLOYMENT_WARNING"
42502	//   "MISSING_TYPE_DEPENDENCY"
42503	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
42504	//   "NEXT_HOP_CANNOT_IP_FORWARD"
42505	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
42506	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
42507	//   "NEXT_HOP_NOT_RUNNING"
42508	//   "NOT_CRITICAL_ERROR"
42509	//   "NO_RESULTS_ON_PAGE"
42510	//   "PARTIAL_SUCCESS"
42511	//   "REQUIRED_TOS_AGREEMENT"
42512	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
42513	//   "RESOURCE_NOT_DELETED"
42514	//   "SCHEMA_VALIDATION_IGNORED"
42515	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
42516	//   "UNDECLARED_PROPERTIES"
42517	//   "UNREACHABLE"
42518	Code string `json:"code,omitempty"`
42519
42520	// Data: [Output Only] Metadata about this warning in key: value format.
42521	// For example:
42522	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
42523	Data []*TargetSslProxyListWarningData `json:"data,omitempty"`
42524
42525	// Message: [Output Only] A human-readable description of the warning
42526	// code.
42527	Message string `json:"message,omitempty"`
42528
42529	// ForceSendFields is a list of field names (e.g. "Code") to
42530	// unconditionally include in API requests. By default, fields with
42531	// empty values are omitted from API requests. However, any non-pointer,
42532	// non-interface field appearing in ForceSendFields will be sent to the
42533	// server regardless of whether the field is empty or not. This may be
42534	// used to include empty fields in Patch requests.
42535	ForceSendFields []string `json:"-"`
42536
42537	// NullFields is a list of field names (e.g. "Code") to include in API
42538	// requests with the JSON null value. By default, fields with empty
42539	// values are omitted from API requests. However, any field with an
42540	// empty value appearing in NullFields will be sent to the server as
42541	// null. It is an error if a field in this list has a non-empty value.
42542	// This may be used to include null fields in Patch requests.
42543	NullFields []string `json:"-"`
42544}
42545
42546func (s *TargetSslProxyListWarning) MarshalJSON() ([]byte, error) {
42547	type NoMethod TargetSslProxyListWarning
42548	raw := NoMethod(*s)
42549	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42550}
42551
42552type TargetSslProxyListWarningData struct {
42553	// Key: [Output Only] A key that provides more detail on the warning
42554	// being returned. For example, for warnings where there are no results
42555	// in a list request for a particular zone, this key might be scope and
42556	// the key value might be the zone name. Other examples might be a key
42557	// indicating a deprecated resource and a suggested replacement, or a
42558	// warning about invalid network settings (for example, if an instance
42559	// attempts to perform IP forwarding but is not enabled for IP
42560	// forwarding).
42561	Key string `json:"key,omitempty"`
42562
42563	// Value: [Output Only] A warning data value corresponding to the key.
42564	Value string `json:"value,omitempty"`
42565
42566	// ForceSendFields is a list of field names (e.g. "Key") to
42567	// unconditionally include in API requests. By default, fields with
42568	// empty values are omitted from API requests. However, any non-pointer,
42569	// non-interface field appearing in ForceSendFields will be sent to the
42570	// server regardless of whether the field is empty or not. This may be
42571	// used to include empty fields in Patch requests.
42572	ForceSendFields []string `json:"-"`
42573
42574	// NullFields is a list of field names (e.g. "Key") to include in API
42575	// requests with the JSON null value. By default, fields with empty
42576	// values are omitted from API requests. However, any field with an
42577	// empty value appearing in NullFields will be sent to the server as
42578	// null. It is an error if a field in this list has a non-empty value.
42579	// This may be used to include null fields in Patch requests.
42580	NullFields []string `json:"-"`
42581}
42582
42583func (s *TargetSslProxyListWarningData) MarshalJSON() ([]byte, error) {
42584	type NoMethod TargetSslProxyListWarningData
42585	raw := NoMethod(*s)
42586	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42587}
42588
42589type TargetTcpProxiesSetBackendServiceRequest struct {
42590	// Service: The URL of the new BackendService resource for the
42591	// targetTcpProxy.
42592	Service string `json:"service,omitempty"`
42593
42594	// ForceSendFields is a list of field names (e.g. "Service") to
42595	// unconditionally include in API requests. By default, fields with
42596	// empty values are omitted from API requests. However, any non-pointer,
42597	// non-interface field appearing in ForceSendFields will be sent to the
42598	// server regardless of whether the field is empty or not. This may be
42599	// used to include empty fields in Patch requests.
42600	ForceSendFields []string `json:"-"`
42601
42602	// NullFields is a list of field names (e.g. "Service") to include in
42603	// API requests with the JSON null value. By default, fields with empty
42604	// values are omitted from API requests. However, any field with an
42605	// empty value appearing in NullFields will be sent to the server as
42606	// null. It is an error if a field in this list has a non-empty value.
42607	// This may be used to include null fields in Patch requests.
42608	NullFields []string `json:"-"`
42609}
42610
42611func (s *TargetTcpProxiesSetBackendServiceRequest) MarshalJSON() ([]byte, error) {
42612	type NoMethod TargetTcpProxiesSetBackendServiceRequest
42613	raw := NoMethod(*s)
42614	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42615}
42616
42617type TargetTcpProxiesSetProxyHeaderRequest struct {
42618	// ProxyHeader: The new type of proxy header to append before sending
42619	// data to the backend. NONE or PROXY_V1 are allowed.
42620	//
42621	// Possible values:
42622	//   "NONE"
42623	//   "PROXY_V1"
42624	ProxyHeader string `json:"proxyHeader,omitempty"`
42625
42626	// ForceSendFields is a list of field names (e.g. "ProxyHeader") to
42627	// unconditionally include in API requests. By default, fields with
42628	// empty values are omitted from API requests. However, any non-pointer,
42629	// non-interface field appearing in ForceSendFields will be sent to the
42630	// server regardless of whether the field is empty or not. This may be
42631	// used to include empty fields in Patch requests.
42632	ForceSendFields []string `json:"-"`
42633
42634	// NullFields is a list of field names (e.g. "ProxyHeader") to include
42635	// in API requests with the JSON null value. By default, fields with
42636	// empty values are omitted from API requests. However, any field with
42637	// an empty value appearing in NullFields will be sent to the server as
42638	// null. It is an error if a field in this list has a non-empty value.
42639	// This may be used to include null fields in Patch requests.
42640	NullFields []string `json:"-"`
42641}
42642
42643func (s *TargetTcpProxiesSetProxyHeaderRequest) MarshalJSON() ([]byte, error) {
42644	type NoMethod TargetTcpProxiesSetProxyHeaderRequest
42645	raw := NoMethod(*s)
42646	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42647}
42648
42649// TargetTcpProxy: Represents a Target TCP Proxy resource.
42650//
42651// A target TCP proxy is a component of a TCP Proxy load balancer.
42652// Global forwarding rules reference target TCP proxy, and the target
42653// proxy then references an external backend service. For more
42654// information, read TCP Proxy Load Balancing overview. (== resource_for
42655// {$api_version}.targetTcpProxies ==)
42656type TargetTcpProxy struct {
42657	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
42658	// format.
42659	CreationTimestamp string `json:"creationTimestamp,omitempty"`
42660
42661	// Description: An optional description of this resource. Provide this
42662	// property when you create the resource.
42663	Description string `json:"description,omitempty"`
42664
42665	// Id: [Output Only] The unique identifier for the resource. This
42666	// identifier is defined by the server.
42667	Id uint64 `json:"id,omitempty,string"`
42668
42669	// Kind: [Output Only] Type of the resource. Always
42670	// compute#targetTcpProxy for target TCP proxies.
42671	Kind string `json:"kind,omitempty"`
42672
42673	// Name: Name of the resource. Provided by the client when the resource
42674	// is created. The name must be 1-63 characters long, and comply with
42675	// RFC1035. Specifically, the name must be 1-63 characters long and
42676	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
42677	// the first character must be a lowercase letter, and all following
42678	// characters must be a dash, lowercase letter, or digit, except the
42679	// last character, which cannot be a dash.
42680	Name string `json:"name,omitempty"`
42681
42682	// ProxyBind: This field only applies when the forwarding rule that
42683	// references this target proxy has a loadBalancingScheme set to
42684	// INTERNAL_SELF_MANAGED.
42685	//
42686	// When this field is set to true, Envoy proxies set up inbound traffic
42687	// interception and bind to the IP address and port specified in the
42688	// forwarding rule. This is generally useful when using Traffic Director
42689	// to configure Envoy as a gateway or middle proxy (in other words, not
42690	// a sidecar proxy). The Envoy proxy listens for inbound requests and
42691	// handles requests when it receives them.
42692	//
42693	// The default is false.
42694	ProxyBind bool `json:"proxyBind,omitempty"`
42695
42696	// ProxyHeader: Specifies the type of proxy header to append before
42697	// sending data to the backend, either NONE or PROXY_V1. The default is
42698	// NONE.
42699	//
42700	// Possible values:
42701	//   "NONE"
42702	//   "PROXY_V1"
42703	ProxyHeader string `json:"proxyHeader,omitempty"`
42704
42705	// SelfLink: [Output Only] Server-defined URL for the resource.
42706	SelfLink string `json:"selfLink,omitempty"`
42707
42708	// Service: URL to the BackendService resource.
42709	Service string `json:"service,omitempty"`
42710
42711	// ServerResponse contains the HTTP response code and headers from the
42712	// server.
42713	googleapi.ServerResponse `json:"-"`
42714
42715	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
42716	// to unconditionally include in API requests. By default, fields with
42717	// empty values are omitted from API requests. However, any non-pointer,
42718	// non-interface field appearing in ForceSendFields will be sent to the
42719	// server regardless of whether the field is empty or not. This may be
42720	// used to include empty fields in Patch requests.
42721	ForceSendFields []string `json:"-"`
42722
42723	// NullFields is a list of field names (e.g. "CreationTimestamp") to
42724	// include in API requests with the JSON null value. By default, fields
42725	// with empty values are omitted from API requests. However, any field
42726	// with an empty value appearing in NullFields will be sent to the
42727	// server as null. It is an error if a field in this list has a
42728	// non-empty value. This may be used to include null fields in Patch
42729	// requests.
42730	NullFields []string `json:"-"`
42731}
42732
42733func (s *TargetTcpProxy) MarshalJSON() ([]byte, error) {
42734	type NoMethod TargetTcpProxy
42735	raw := NoMethod(*s)
42736	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42737}
42738
42739// TargetTcpProxyList: Contains a list of TargetTcpProxy resources.
42740type TargetTcpProxyList struct {
42741	// Id: [Output Only] Unique identifier for the resource; defined by the
42742	// server.
42743	Id string `json:"id,omitempty"`
42744
42745	// Items: A list of TargetTcpProxy resources.
42746	Items []*TargetTcpProxy `json:"items,omitempty"`
42747
42748	// Kind: Type of resource.
42749	Kind string `json:"kind,omitempty"`
42750
42751	// NextPageToken: [Output Only] This token allows you to get the next
42752	// page of results for list requests. If the number of results is larger
42753	// than maxResults, use the nextPageToken as a value for the query
42754	// parameter pageToken in the next list request. Subsequent list
42755	// requests will have their own nextPageToken to continue paging through
42756	// the results.
42757	NextPageToken string `json:"nextPageToken,omitempty"`
42758
42759	// SelfLink: [Output Only] Server-defined URL for this resource.
42760	SelfLink string `json:"selfLink,omitempty"`
42761
42762	// Warning: [Output Only] Informational warning message.
42763	Warning *TargetTcpProxyListWarning `json:"warning,omitempty"`
42764
42765	// ServerResponse contains the HTTP response code and headers from the
42766	// server.
42767	googleapi.ServerResponse `json:"-"`
42768
42769	// ForceSendFields is a list of field names (e.g. "Id") to
42770	// unconditionally include in API requests. By default, fields with
42771	// empty values are omitted from API requests. However, any non-pointer,
42772	// non-interface field appearing in ForceSendFields will be sent to the
42773	// server regardless of whether the field is empty or not. This may be
42774	// used to include empty fields in Patch requests.
42775	ForceSendFields []string `json:"-"`
42776
42777	// NullFields is a list of field names (e.g. "Id") to include in API
42778	// requests with the JSON null value. By default, fields with empty
42779	// values are omitted from API requests. However, any field with an
42780	// empty value appearing in NullFields will be sent to the server as
42781	// null. It is an error if a field in this list has a non-empty value.
42782	// This may be used to include null fields in Patch requests.
42783	NullFields []string `json:"-"`
42784}
42785
42786func (s *TargetTcpProxyList) MarshalJSON() ([]byte, error) {
42787	type NoMethod TargetTcpProxyList
42788	raw := NoMethod(*s)
42789	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42790}
42791
42792// TargetTcpProxyListWarning: [Output Only] Informational warning
42793// message.
42794type TargetTcpProxyListWarning struct {
42795	// Code: [Output Only] A warning code, if applicable. For example,
42796	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42797	// the response.
42798	//
42799	// Possible values:
42800	//   "CLEANUP_FAILED"
42801	//   "DEPRECATED_RESOURCE_USED"
42802	//   "DEPRECATED_TYPE_USED"
42803	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
42804	//   "EXPERIMENTAL_TYPE_USED"
42805	//   "EXTERNAL_API_WARNING"
42806	//   "FIELD_VALUE_OVERRIDEN"
42807	//   "INJECTED_KERNELS_DEPRECATED"
42808	//   "LARGE_DEPLOYMENT_WARNING"
42809	//   "MISSING_TYPE_DEPENDENCY"
42810	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
42811	//   "NEXT_HOP_CANNOT_IP_FORWARD"
42812	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
42813	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
42814	//   "NEXT_HOP_NOT_RUNNING"
42815	//   "NOT_CRITICAL_ERROR"
42816	//   "NO_RESULTS_ON_PAGE"
42817	//   "PARTIAL_SUCCESS"
42818	//   "REQUIRED_TOS_AGREEMENT"
42819	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
42820	//   "RESOURCE_NOT_DELETED"
42821	//   "SCHEMA_VALIDATION_IGNORED"
42822	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
42823	//   "UNDECLARED_PROPERTIES"
42824	//   "UNREACHABLE"
42825	Code string `json:"code,omitempty"`
42826
42827	// Data: [Output Only] Metadata about this warning in key: value format.
42828	// For example:
42829	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
42830	Data []*TargetTcpProxyListWarningData `json:"data,omitempty"`
42831
42832	// Message: [Output Only] A human-readable description of the warning
42833	// code.
42834	Message string `json:"message,omitempty"`
42835
42836	// ForceSendFields is a list of field names (e.g. "Code") to
42837	// unconditionally include in API requests. By default, fields with
42838	// empty values are omitted from API requests. However, any non-pointer,
42839	// non-interface field appearing in ForceSendFields will be sent to the
42840	// server regardless of whether the field is empty or not. This may be
42841	// used to include empty fields in Patch requests.
42842	ForceSendFields []string `json:"-"`
42843
42844	// NullFields is a list of field names (e.g. "Code") to include in API
42845	// requests with the JSON null value. By default, fields with empty
42846	// values are omitted from API requests. However, any field with an
42847	// empty value appearing in NullFields will be sent to the server as
42848	// null. It is an error if a field in this list has a non-empty value.
42849	// This may be used to include null fields in Patch requests.
42850	NullFields []string `json:"-"`
42851}
42852
42853func (s *TargetTcpProxyListWarning) MarshalJSON() ([]byte, error) {
42854	type NoMethod TargetTcpProxyListWarning
42855	raw := NoMethod(*s)
42856	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42857}
42858
42859type TargetTcpProxyListWarningData struct {
42860	// Key: [Output Only] A key that provides more detail on the warning
42861	// being returned. For example, for warnings where there are no results
42862	// in a list request for a particular zone, this key might be scope and
42863	// the key value might be the zone name. Other examples might be a key
42864	// indicating a deprecated resource and a suggested replacement, or a
42865	// warning about invalid network settings (for example, if an instance
42866	// attempts to perform IP forwarding but is not enabled for IP
42867	// forwarding).
42868	Key string `json:"key,omitempty"`
42869
42870	// Value: [Output Only] A warning data value corresponding to the key.
42871	Value string `json:"value,omitempty"`
42872
42873	// ForceSendFields is a list of field names (e.g. "Key") to
42874	// unconditionally include in API requests. By default, fields with
42875	// empty values are omitted from API requests. However, any non-pointer,
42876	// non-interface field appearing in ForceSendFields will be sent to the
42877	// server regardless of whether the field is empty or not. This may be
42878	// used to include empty fields in Patch requests.
42879	ForceSendFields []string `json:"-"`
42880
42881	// NullFields is a list of field names (e.g. "Key") to include in API
42882	// requests with the JSON null value. By default, fields with empty
42883	// values are omitted from API requests. However, any field with an
42884	// empty value appearing in NullFields will be sent to the server as
42885	// null. It is an error if a field in this list has a non-empty value.
42886	// This may be used to include null fields in Patch requests.
42887	NullFields []string `json:"-"`
42888}
42889
42890func (s *TargetTcpProxyListWarningData) MarshalJSON() ([]byte, error) {
42891	type NoMethod TargetTcpProxyListWarningData
42892	raw := NoMethod(*s)
42893	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42894}
42895
42896// TargetVpnGateway: Represents a Target VPN Gateway resource.
42897//
42898// The target VPN gateway resource represents a Classic Cloud VPN
42899// gateway. For more information, read the the Cloud VPN Overview. (==
42900// resource_for {$api_version}.targetVpnGateways ==)
42901type TargetVpnGateway struct {
42902	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
42903	// format.
42904	CreationTimestamp string `json:"creationTimestamp,omitempty"`
42905
42906	// Description: An optional description of this resource. Provide this
42907	// property when you create the resource.
42908	Description string `json:"description,omitempty"`
42909
42910	// ForwardingRules: [Output Only] A list of URLs to the ForwardingRule
42911	// resources. ForwardingRules are created using
42912	// compute.forwardingRules.insert and associated with a VPN gateway.
42913	ForwardingRules []string `json:"forwardingRules,omitempty"`
42914
42915	// Id: [Output Only] The unique identifier for the resource. This
42916	// identifier is defined by the server.
42917	Id uint64 `json:"id,omitempty,string"`
42918
42919	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
42920	// for target VPN gateways.
42921	Kind string `json:"kind,omitempty"`
42922
42923	// Name: Name of the resource. Provided by the client when the resource
42924	// is created. The name must be 1-63 characters long, and comply with
42925	// RFC1035. Specifically, the name must be 1-63 characters long and
42926	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
42927	// the first character must be a lowercase letter, and all following
42928	// characters must be a dash, lowercase letter, or digit, except the
42929	// last character, which cannot be a dash.
42930	Name string `json:"name,omitempty"`
42931
42932	// Network: URL of the network to which this VPN gateway is attached.
42933	// Provided by the client when the VPN gateway is created.
42934	Network string `json:"network,omitempty"`
42935
42936	// Region: [Output Only] URL of the region where the target VPN gateway
42937	// resides. You must specify this field as part of the HTTP request URL.
42938	// It is not settable as a field in the request body.
42939	Region string `json:"region,omitempty"`
42940
42941	// SelfLink: [Output Only] Server-defined URL for the resource.
42942	SelfLink string `json:"selfLink,omitempty"`
42943
42944	// Status: [Output Only] The status of the VPN gateway, which can be one
42945	// of the following: CREATING, READY, FAILED, or DELETING.
42946	//
42947	// Possible values:
42948	//   "CREATING"
42949	//   "DELETING"
42950	//   "FAILED"
42951	//   "READY"
42952	Status string `json:"status,omitempty"`
42953
42954	// Tunnels: [Output Only] A list of URLs to VpnTunnel resources.
42955	// VpnTunnels are created using the compute.vpntunnels.insert method and
42956	// associated with a VPN gateway.
42957	Tunnels []string `json:"tunnels,omitempty"`
42958
42959	// ServerResponse contains the HTTP response code and headers from the
42960	// server.
42961	googleapi.ServerResponse `json:"-"`
42962
42963	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
42964	// to unconditionally include in API requests. By default, fields with
42965	// empty values are omitted from API requests. However, any non-pointer,
42966	// non-interface field appearing in ForceSendFields will be sent to the
42967	// server regardless of whether the field is empty or not. This may be
42968	// used to include empty fields in Patch requests.
42969	ForceSendFields []string `json:"-"`
42970
42971	// NullFields is a list of field names (e.g. "CreationTimestamp") to
42972	// include in API requests with the JSON null value. By default, fields
42973	// with empty values are omitted from API requests. However, any field
42974	// with an empty value appearing in NullFields will be sent to the
42975	// server as null. It is an error if a field in this list has a
42976	// non-empty value. This may be used to include null fields in Patch
42977	// requests.
42978	NullFields []string `json:"-"`
42979}
42980
42981func (s *TargetVpnGateway) MarshalJSON() ([]byte, error) {
42982	type NoMethod TargetVpnGateway
42983	raw := NoMethod(*s)
42984	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42985}
42986
42987type TargetVpnGatewayAggregatedList struct {
42988	// Id: [Output Only] Unique identifier for the resource; defined by the
42989	// server.
42990	Id string `json:"id,omitempty"`
42991
42992	// Items: A list of TargetVpnGateway resources.
42993	Items map[string]TargetVpnGatewaysScopedList `json:"items,omitempty"`
42994
42995	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
42996	// for target VPN gateways.
42997	Kind string `json:"kind,omitempty"`
42998
42999	// NextPageToken: [Output Only] This token allows you to get the next
43000	// page of results for list requests. If the number of results is larger
43001	// than maxResults, use the nextPageToken as a value for the query
43002	// parameter pageToken in the next list request. Subsequent list
43003	// requests will have their own nextPageToken to continue paging through
43004	// the results.
43005	NextPageToken string `json:"nextPageToken,omitempty"`
43006
43007	// SelfLink: [Output Only] Server-defined URL for this resource.
43008	SelfLink string `json:"selfLink,omitempty"`
43009
43010	// Unreachables: [Output Only] Unreachable resources.
43011	Unreachables []string `json:"unreachables,omitempty"`
43012
43013	// Warning: [Output Only] Informational warning message.
43014	Warning *TargetVpnGatewayAggregatedListWarning `json:"warning,omitempty"`
43015
43016	// ServerResponse contains the HTTP response code and headers from the
43017	// server.
43018	googleapi.ServerResponse `json:"-"`
43019
43020	// ForceSendFields is a list of field names (e.g. "Id") to
43021	// unconditionally include in API requests. By default, fields with
43022	// empty values are omitted from API requests. However, any non-pointer,
43023	// non-interface field appearing in ForceSendFields will be sent to the
43024	// server regardless of whether the field is empty or not. This may be
43025	// used to include empty fields in Patch requests.
43026	ForceSendFields []string `json:"-"`
43027
43028	// NullFields is a list of field names (e.g. "Id") to include in API
43029	// requests with the JSON null value. By default, fields with empty
43030	// values are omitted from API requests. However, any field with an
43031	// empty value appearing in NullFields will be sent to the server as
43032	// null. It is an error if a field in this list has a non-empty value.
43033	// This may be used to include null fields in Patch requests.
43034	NullFields []string `json:"-"`
43035}
43036
43037func (s *TargetVpnGatewayAggregatedList) MarshalJSON() ([]byte, error) {
43038	type NoMethod TargetVpnGatewayAggregatedList
43039	raw := NoMethod(*s)
43040	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43041}
43042
43043// TargetVpnGatewayAggregatedListWarning: [Output Only] Informational
43044// warning message.
43045type TargetVpnGatewayAggregatedListWarning struct {
43046	// Code: [Output Only] A warning code, if applicable. For example,
43047	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
43048	// the response.
43049	//
43050	// Possible values:
43051	//   "CLEANUP_FAILED"
43052	//   "DEPRECATED_RESOURCE_USED"
43053	//   "DEPRECATED_TYPE_USED"
43054	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
43055	//   "EXPERIMENTAL_TYPE_USED"
43056	//   "EXTERNAL_API_WARNING"
43057	//   "FIELD_VALUE_OVERRIDEN"
43058	//   "INJECTED_KERNELS_DEPRECATED"
43059	//   "LARGE_DEPLOYMENT_WARNING"
43060	//   "MISSING_TYPE_DEPENDENCY"
43061	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
43062	//   "NEXT_HOP_CANNOT_IP_FORWARD"
43063	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
43064	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
43065	//   "NEXT_HOP_NOT_RUNNING"
43066	//   "NOT_CRITICAL_ERROR"
43067	//   "NO_RESULTS_ON_PAGE"
43068	//   "PARTIAL_SUCCESS"
43069	//   "REQUIRED_TOS_AGREEMENT"
43070	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
43071	//   "RESOURCE_NOT_DELETED"
43072	//   "SCHEMA_VALIDATION_IGNORED"
43073	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
43074	//   "UNDECLARED_PROPERTIES"
43075	//   "UNREACHABLE"
43076	Code string `json:"code,omitempty"`
43077
43078	// Data: [Output Only] Metadata about this warning in key: value format.
43079	// For example:
43080	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
43081	Data []*TargetVpnGatewayAggregatedListWarningData `json:"data,omitempty"`
43082
43083	// Message: [Output Only] A human-readable description of the warning
43084	// code.
43085	Message string `json:"message,omitempty"`
43086
43087	// ForceSendFields is a list of field names (e.g. "Code") to
43088	// unconditionally include in API requests. By default, fields with
43089	// empty values are omitted from API requests. However, any non-pointer,
43090	// non-interface field appearing in ForceSendFields will be sent to the
43091	// server regardless of whether the field is empty or not. This may be
43092	// used to include empty fields in Patch requests.
43093	ForceSendFields []string `json:"-"`
43094
43095	// NullFields is a list of field names (e.g. "Code") to include in API
43096	// requests with the JSON null value. By default, fields with empty
43097	// values are omitted from API requests. However, any field with an
43098	// empty value appearing in NullFields will be sent to the server as
43099	// null. It is an error if a field in this list has a non-empty value.
43100	// This may be used to include null fields in Patch requests.
43101	NullFields []string `json:"-"`
43102}
43103
43104func (s *TargetVpnGatewayAggregatedListWarning) MarshalJSON() ([]byte, error) {
43105	type NoMethod TargetVpnGatewayAggregatedListWarning
43106	raw := NoMethod(*s)
43107	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43108}
43109
43110type TargetVpnGatewayAggregatedListWarningData struct {
43111	// Key: [Output Only] A key that provides more detail on the warning
43112	// being returned. For example, for warnings where there are no results
43113	// in a list request for a particular zone, this key might be scope and
43114	// the key value might be the zone name. Other examples might be a key
43115	// indicating a deprecated resource and a suggested replacement, or a
43116	// warning about invalid network settings (for example, if an instance
43117	// attempts to perform IP forwarding but is not enabled for IP
43118	// forwarding).
43119	Key string `json:"key,omitempty"`
43120
43121	// Value: [Output Only] A warning data value corresponding to the key.
43122	Value string `json:"value,omitempty"`
43123
43124	// ForceSendFields is a list of field names (e.g. "Key") to
43125	// unconditionally include in API requests. By default, fields with
43126	// empty values are omitted from API requests. However, any non-pointer,
43127	// non-interface field appearing in ForceSendFields will be sent to the
43128	// server regardless of whether the field is empty or not. This may be
43129	// used to include empty fields in Patch requests.
43130	ForceSendFields []string `json:"-"`
43131
43132	// NullFields is a list of field names (e.g. "Key") to include in API
43133	// requests with the JSON null value. By default, fields with empty
43134	// values are omitted from API requests. However, any field with an
43135	// empty value appearing in NullFields will be sent to the server as
43136	// null. It is an error if a field in this list has a non-empty value.
43137	// This may be used to include null fields in Patch requests.
43138	NullFields []string `json:"-"`
43139}
43140
43141func (s *TargetVpnGatewayAggregatedListWarningData) MarshalJSON() ([]byte, error) {
43142	type NoMethod TargetVpnGatewayAggregatedListWarningData
43143	raw := NoMethod(*s)
43144	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43145}
43146
43147// TargetVpnGatewayList: Contains a list of TargetVpnGateway resources.
43148type TargetVpnGatewayList struct {
43149	// Id: [Output Only] Unique identifier for the resource; defined by the
43150	// server.
43151	Id string `json:"id,omitempty"`
43152
43153	// Items: A list of TargetVpnGateway resources.
43154	Items []*TargetVpnGateway `json:"items,omitempty"`
43155
43156	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
43157	// for target VPN gateways.
43158	Kind string `json:"kind,omitempty"`
43159
43160	// NextPageToken: [Output Only] This token allows you to get the next
43161	// page of results for list requests. If the number of results is larger
43162	// than maxResults, use the nextPageToken as a value for the query
43163	// parameter pageToken in the next list request. Subsequent list
43164	// requests will have their own nextPageToken to continue paging through
43165	// the results.
43166	NextPageToken string `json:"nextPageToken,omitempty"`
43167
43168	// SelfLink: [Output Only] Server-defined URL for this resource.
43169	SelfLink string `json:"selfLink,omitempty"`
43170
43171	// Warning: [Output Only] Informational warning message.
43172	Warning *TargetVpnGatewayListWarning `json:"warning,omitempty"`
43173
43174	// ServerResponse contains the HTTP response code and headers from the
43175	// server.
43176	googleapi.ServerResponse `json:"-"`
43177
43178	// ForceSendFields is a list of field names (e.g. "Id") to
43179	// unconditionally include in API requests. By default, fields with
43180	// empty values are omitted from API requests. However, any non-pointer,
43181	// non-interface field appearing in ForceSendFields will be sent to the
43182	// server regardless of whether the field is empty or not. This may be
43183	// used to include empty fields in Patch requests.
43184	ForceSendFields []string `json:"-"`
43185
43186	// NullFields is a list of field names (e.g. "Id") to include in API
43187	// requests with the JSON null value. By default, fields with empty
43188	// values are omitted from API requests. However, any field with an
43189	// empty value appearing in NullFields will be sent to the server as
43190	// null. It is an error if a field in this list has a non-empty value.
43191	// This may be used to include null fields in Patch requests.
43192	NullFields []string `json:"-"`
43193}
43194
43195func (s *TargetVpnGatewayList) MarshalJSON() ([]byte, error) {
43196	type NoMethod TargetVpnGatewayList
43197	raw := NoMethod(*s)
43198	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43199}
43200
43201// TargetVpnGatewayListWarning: [Output Only] Informational warning
43202// message.
43203type TargetVpnGatewayListWarning struct {
43204	// Code: [Output Only] A warning code, if applicable. For example,
43205	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
43206	// the response.
43207	//
43208	// Possible values:
43209	//   "CLEANUP_FAILED"
43210	//   "DEPRECATED_RESOURCE_USED"
43211	//   "DEPRECATED_TYPE_USED"
43212	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
43213	//   "EXPERIMENTAL_TYPE_USED"
43214	//   "EXTERNAL_API_WARNING"
43215	//   "FIELD_VALUE_OVERRIDEN"
43216	//   "INJECTED_KERNELS_DEPRECATED"
43217	//   "LARGE_DEPLOYMENT_WARNING"
43218	//   "MISSING_TYPE_DEPENDENCY"
43219	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
43220	//   "NEXT_HOP_CANNOT_IP_FORWARD"
43221	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
43222	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
43223	//   "NEXT_HOP_NOT_RUNNING"
43224	//   "NOT_CRITICAL_ERROR"
43225	//   "NO_RESULTS_ON_PAGE"
43226	//   "PARTIAL_SUCCESS"
43227	//   "REQUIRED_TOS_AGREEMENT"
43228	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
43229	//   "RESOURCE_NOT_DELETED"
43230	//   "SCHEMA_VALIDATION_IGNORED"
43231	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
43232	//   "UNDECLARED_PROPERTIES"
43233	//   "UNREACHABLE"
43234	Code string `json:"code,omitempty"`
43235
43236	// Data: [Output Only] Metadata about this warning in key: value format.
43237	// For example:
43238	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
43239	Data []*TargetVpnGatewayListWarningData `json:"data,omitempty"`
43240
43241	// Message: [Output Only] A human-readable description of the warning
43242	// code.
43243	Message string `json:"message,omitempty"`
43244
43245	// ForceSendFields is a list of field names (e.g. "Code") to
43246	// unconditionally include in API requests. By default, fields with
43247	// empty values are omitted from API requests. However, any non-pointer,
43248	// non-interface field appearing in ForceSendFields will be sent to the
43249	// server regardless of whether the field is empty or not. This may be
43250	// used to include empty fields in Patch requests.
43251	ForceSendFields []string `json:"-"`
43252
43253	// NullFields is a list of field names (e.g. "Code") to include in API
43254	// requests with the JSON null value. By default, fields with empty
43255	// values are omitted from API requests. However, any field with an
43256	// empty value appearing in NullFields will be sent to the server as
43257	// null. It is an error if a field in this list has a non-empty value.
43258	// This may be used to include null fields in Patch requests.
43259	NullFields []string `json:"-"`
43260}
43261
43262func (s *TargetVpnGatewayListWarning) MarshalJSON() ([]byte, error) {
43263	type NoMethod TargetVpnGatewayListWarning
43264	raw := NoMethod(*s)
43265	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43266}
43267
43268type TargetVpnGatewayListWarningData struct {
43269	// Key: [Output Only] A key that provides more detail on the warning
43270	// being returned. For example, for warnings where there are no results
43271	// in a list request for a particular zone, this key might be scope and
43272	// the key value might be the zone name. Other examples might be a key
43273	// indicating a deprecated resource and a suggested replacement, or a
43274	// warning about invalid network settings (for example, if an instance
43275	// attempts to perform IP forwarding but is not enabled for IP
43276	// forwarding).
43277	Key string `json:"key,omitempty"`
43278
43279	// Value: [Output Only] A warning data value corresponding to the key.
43280	Value string `json:"value,omitempty"`
43281
43282	// ForceSendFields is a list of field names (e.g. "Key") to
43283	// unconditionally include in API requests. By default, fields with
43284	// empty values are omitted from API requests. However, any non-pointer,
43285	// non-interface field appearing in ForceSendFields will be sent to the
43286	// server regardless of whether the field is empty or not. This may be
43287	// used to include empty fields in Patch requests.
43288	ForceSendFields []string `json:"-"`
43289
43290	// NullFields is a list of field names (e.g. "Key") to include in API
43291	// requests with the JSON null value. By default, fields with empty
43292	// values are omitted from API requests. However, any field with an
43293	// empty value appearing in NullFields will be sent to the server as
43294	// null. It is an error if a field in this list has a non-empty value.
43295	// This may be used to include null fields in Patch requests.
43296	NullFields []string `json:"-"`
43297}
43298
43299func (s *TargetVpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
43300	type NoMethod TargetVpnGatewayListWarningData
43301	raw := NoMethod(*s)
43302	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43303}
43304
43305type TargetVpnGatewaysScopedList struct {
43306	// TargetVpnGateways: [Output Only] A list of target VPN gateways
43307	// contained in this scope.
43308	TargetVpnGateways []*TargetVpnGateway `json:"targetVpnGateways,omitempty"`
43309
43310	// Warning: [Output Only] Informational warning which replaces the list
43311	// of addresses when the list is empty.
43312	Warning *TargetVpnGatewaysScopedListWarning `json:"warning,omitempty"`
43313
43314	// ForceSendFields is a list of field names (e.g. "TargetVpnGateways")
43315	// to unconditionally include in API requests. By default, fields with
43316	// empty values are omitted from API requests. However, any non-pointer,
43317	// non-interface field appearing in ForceSendFields will be sent to the
43318	// server regardless of whether the field is empty or not. This may be
43319	// used to include empty fields in Patch requests.
43320	ForceSendFields []string `json:"-"`
43321
43322	// NullFields is a list of field names (e.g. "TargetVpnGateways") to
43323	// include in API requests with the JSON null value. By default, fields
43324	// with empty values are omitted from API requests. However, any field
43325	// with an empty value appearing in NullFields will be sent to the
43326	// server as null. It is an error if a field in this list has a
43327	// non-empty value. This may be used to include null fields in Patch
43328	// requests.
43329	NullFields []string `json:"-"`
43330}
43331
43332func (s *TargetVpnGatewaysScopedList) MarshalJSON() ([]byte, error) {
43333	type NoMethod TargetVpnGatewaysScopedList
43334	raw := NoMethod(*s)
43335	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43336}
43337
43338// TargetVpnGatewaysScopedListWarning: [Output Only] Informational
43339// warning which replaces the list of addresses when the list is empty.
43340type TargetVpnGatewaysScopedListWarning struct {
43341	// Code: [Output Only] A warning code, if applicable. For example,
43342	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
43343	// the response.
43344	//
43345	// Possible values:
43346	//   "CLEANUP_FAILED"
43347	//   "DEPRECATED_RESOURCE_USED"
43348	//   "DEPRECATED_TYPE_USED"
43349	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
43350	//   "EXPERIMENTAL_TYPE_USED"
43351	//   "EXTERNAL_API_WARNING"
43352	//   "FIELD_VALUE_OVERRIDEN"
43353	//   "INJECTED_KERNELS_DEPRECATED"
43354	//   "LARGE_DEPLOYMENT_WARNING"
43355	//   "MISSING_TYPE_DEPENDENCY"
43356	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
43357	//   "NEXT_HOP_CANNOT_IP_FORWARD"
43358	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
43359	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
43360	//   "NEXT_HOP_NOT_RUNNING"
43361	//   "NOT_CRITICAL_ERROR"
43362	//   "NO_RESULTS_ON_PAGE"
43363	//   "PARTIAL_SUCCESS"
43364	//   "REQUIRED_TOS_AGREEMENT"
43365	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
43366	//   "RESOURCE_NOT_DELETED"
43367	//   "SCHEMA_VALIDATION_IGNORED"
43368	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
43369	//   "UNDECLARED_PROPERTIES"
43370	//   "UNREACHABLE"
43371	Code string `json:"code,omitempty"`
43372
43373	// Data: [Output Only] Metadata about this warning in key: value format.
43374	// For example:
43375	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
43376	Data []*TargetVpnGatewaysScopedListWarningData `json:"data,omitempty"`
43377
43378	// Message: [Output Only] A human-readable description of the warning
43379	// code.
43380	Message string `json:"message,omitempty"`
43381
43382	// ForceSendFields is a list of field names (e.g. "Code") to
43383	// unconditionally include in API requests. By default, fields with
43384	// empty values are omitted from API requests. However, any non-pointer,
43385	// non-interface field appearing in ForceSendFields will be sent to the
43386	// server regardless of whether the field is empty or not. This may be
43387	// used to include empty fields in Patch requests.
43388	ForceSendFields []string `json:"-"`
43389
43390	// NullFields is a list of field names (e.g. "Code") to include in API
43391	// requests with the JSON null value. By default, fields with empty
43392	// values are omitted from API requests. However, any field with an
43393	// empty value appearing in NullFields will be sent to the server as
43394	// null. It is an error if a field in this list has a non-empty value.
43395	// This may be used to include null fields in Patch requests.
43396	NullFields []string `json:"-"`
43397}
43398
43399func (s *TargetVpnGatewaysScopedListWarning) MarshalJSON() ([]byte, error) {
43400	type NoMethod TargetVpnGatewaysScopedListWarning
43401	raw := NoMethod(*s)
43402	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43403}
43404
43405type TargetVpnGatewaysScopedListWarningData struct {
43406	// Key: [Output Only] A key that provides more detail on the warning
43407	// being returned. For example, for warnings where there are no results
43408	// in a list request for a particular zone, this key might be scope and
43409	// the key value might be the zone name. Other examples might be a key
43410	// indicating a deprecated resource and a suggested replacement, or a
43411	// warning about invalid network settings (for example, if an instance
43412	// attempts to perform IP forwarding but is not enabled for IP
43413	// forwarding).
43414	Key string `json:"key,omitempty"`
43415
43416	// Value: [Output Only] A warning data value corresponding to the key.
43417	Value string `json:"value,omitempty"`
43418
43419	// ForceSendFields is a list of field names (e.g. "Key") to
43420	// unconditionally include in API requests. By default, fields with
43421	// empty values are omitted from API requests. However, any non-pointer,
43422	// non-interface field appearing in ForceSendFields will be sent to the
43423	// server regardless of whether the field is empty or not. This may be
43424	// used to include empty fields in Patch requests.
43425	ForceSendFields []string `json:"-"`
43426
43427	// NullFields is a list of field names (e.g. "Key") to include in API
43428	// requests with the JSON null value. By default, fields with empty
43429	// values are omitted from API requests. However, any field with an
43430	// empty value appearing in NullFields will be sent to the server as
43431	// null. It is an error if a field in this list has a non-empty value.
43432	// This may be used to include null fields in Patch requests.
43433	NullFields []string `json:"-"`
43434}
43435
43436func (s *TargetVpnGatewaysScopedListWarningData) MarshalJSON() ([]byte, error) {
43437	type NoMethod TargetVpnGatewaysScopedListWarningData
43438	raw := NoMethod(*s)
43439	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43440}
43441
43442type TestFailure struct {
43443	// ActualOutputUrl: The actual output URL evaluated by load balancer
43444	// containing the scheme, host, path and query parameters.
43445	ActualOutputUrl string `json:"actualOutputUrl,omitempty"`
43446
43447	// ActualRedirectResponseCode: Actual HTTP status code for rule with
43448	// `urlRedirect` calculated by load balancer
43449	ActualRedirectResponseCode int64 `json:"actualRedirectResponseCode,omitempty"`
43450
43451	// ActualService: BackendService or BackendBucket returned by load
43452	// balancer.
43453	ActualService string `json:"actualService,omitempty"`
43454
43455	// ExpectedOutputUrl: The expected output URL evaluated by load balancer
43456	// containing the scheme, host, path and query parameters.
43457	ExpectedOutputUrl string `json:"expectedOutputUrl,omitempty"`
43458
43459	// ExpectedRedirectResponseCode: Expected HTTP status code for rule with
43460	// `urlRedirect` calculated by load balancer
43461	ExpectedRedirectResponseCode int64 `json:"expectedRedirectResponseCode,omitempty"`
43462
43463	// ExpectedService: Expected BackendService or BackendBucket resource
43464	// the given URL should be mapped to.
43465	ExpectedService string `json:"expectedService,omitempty"`
43466
43467	// Headers: HTTP headers of the request.
43468	Headers []*UrlMapTestHeader `json:"headers,omitempty"`
43469
43470	// Host: Host portion of the URL.
43471	Host string `json:"host,omitempty"`
43472
43473	// Path: Path portion including query parameters in the URL.
43474	Path string `json:"path,omitempty"`
43475
43476	// ForceSendFields is a list of field names (e.g. "ActualOutputUrl") to
43477	// unconditionally include in API requests. By default, fields with
43478	// empty values are omitted from API requests. However, any non-pointer,
43479	// non-interface field appearing in ForceSendFields will be sent to the
43480	// server regardless of whether the field is empty or not. This may be
43481	// used to include empty fields in Patch requests.
43482	ForceSendFields []string `json:"-"`
43483
43484	// NullFields is a list of field names (e.g. "ActualOutputUrl") to
43485	// include in API requests with the JSON null value. By default, fields
43486	// with empty values are omitted from API requests. However, any field
43487	// with an empty value appearing in NullFields will be sent to the
43488	// server as null. It is an error if a field in this list has a
43489	// non-empty value. This may be used to include null fields in Patch
43490	// requests.
43491	NullFields []string `json:"-"`
43492}
43493
43494func (s *TestFailure) MarshalJSON() ([]byte, error) {
43495	type NoMethod TestFailure
43496	raw := NoMethod(*s)
43497	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43498}
43499
43500type TestPermissionsRequest struct {
43501	// Permissions: The set of permissions to check for the 'resource'.
43502	// Permissions with wildcards (such as '*' or 'storage.*') are not
43503	// allowed.
43504	Permissions []string `json:"permissions,omitempty"`
43505
43506	// ForceSendFields is a list of field names (e.g. "Permissions") to
43507	// unconditionally include in API requests. By default, fields with
43508	// empty values are omitted from API requests. However, any non-pointer,
43509	// non-interface field appearing in ForceSendFields will be sent to the
43510	// server regardless of whether the field is empty or not. This may be
43511	// used to include empty fields in Patch requests.
43512	ForceSendFields []string `json:"-"`
43513
43514	// NullFields is a list of field names (e.g. "Permissions") to include
43515	// in API requests with the JSON null value. By default, fields with
43516	// empty values are omitted from API requests. However, any field with
43517	// an empty value appearing in NullFields will be sent to the server as
43518	// null. It is an error if a field in this list has a non-empty value.
43519	// This may be used to include null fields in Patch requests.
43520	NullFields []string `json:"-"`
43521}
43522
43523func (s *TestPermissionsRequest) MarshalJSON() ([]byte, error) {
43524	type NoMethod TestPermissionsRequest
43525	raw := NoMethod(*s)
43526	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43527}
43528
43529type TestPermissionsResponse struct {
43530	// Permissions: A subset of `TestPermissionsRequest.permissions` that
43531	// the caller is allowed.
43532	Permissions []string `json:"permissions,omitempty"`
43533
43534	// ServerResponse contains the HTTP response code and headers from the
43535	// server.
43536	googleapi.ServerResponse `json:"-"`
43537
43538	// ForceSendFields is a list of field names (e.g. "Permissions") to
43539	// unconditionally include in API requests. By default, fields with
43540	// empty values are omitted from API requests. However, any non-pointer,
43541	// non-interface field appearing in ForceSendFields will be sent to the
43542	// server regardless of whether the field is empty or not. This may be
43543	// used to include empty fields in Patch requests.
43544	ForceSendFields []string `json:"-"`
43545
43546	// NullFields is a list of field names (e.g. "Permissions") to include
43547	// in API requests with the JSON null value. By default, fields with
43548	// empty values are omitted from API requests. However, any field with
43549	// an empty value appearing in NullFields will be sent to the server as
43550	// null. It is an error if a field in this list has a non-empty value.
43551	// This may be used to include null fields in Patch requests.
43552	NullFields []string `json:"-"`
43553}
43554
43555func (s *TestPermissionsResponse) MarshalJSON() ([]byte, error) {
43556	type NoMethod TestPermissionsResponse
43557	raw := NoMethod(*s)
43558	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43559}
43560
43561// UrlMap: Represents a URL Map resource.
43562//
43563// Google Compute Engine has two URL Map resources:
43564//
43565// * Global (/compute/docs/reference/rest/{$api_version}/urlMaps) *
43566// Regional
43567// (/compute/docs/reference/rest/{$api_version}/regionUrlMaps)
43568//
43569// A URL map resource is a component of certain types of GCP load
43570// balancers and Traffic Director.
43571//
43572// * urlMaps are used by external HTTP(S) load balancers and Traffic
43573// Director. * regionUrlMaps are used by internal HTTP(S) load
43574// balancers.
43575//
43576// For a list of supported URL map features by load balancer type, see
43577// the  Load balancing features: Routing and traffic management
43578// table.
43579//
43580// For a list of supported URL map features for Traffic Director, see
43581// the  Traffic Director features: Routing and traffic management
43582// table.
43583//
43584// This resource defines mappings from host names and URL paths to
43585// either a backend service or a backend bucket.
43586//
43587// To use the global urlMaps resource, the backend service must have a
43588// loadBalancingScheme of either EXTERNAL or INTERNAL_SELF_MANAGED. To
43589// use the regionUrlMaps resource, the backend service must have a
43590// loadBalancingScheme of INTERNAL_MANAGED. For more information, read
43591// URL Map Concepts.
43592type UrlMap struct {
43593	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
43594	// format.
43595	CreationTimestamp string `json:"creationTimestamp,omitempty"`
43596
43597	// DefaultRouteAction: defaultRouteAction takes effect when none of the
43598	// hostRules match. The load balancer performs advanced routing actions
43599	// like URL rewrites, header transformations, etc. prior to forwarding
43600	// the request to the selected backend. If defaultRouteAction specifies
43601	// any weightedBackendServices, defaultService must not be set.
43602	// Conversely if defaultService is set, defaultRouteAction cannot
43603	// contain any  weightedBackendServices.
43604	// Only one of defaultRouteAction or defaultUrlRedirect must be
43605	// set.
43606	// UrlMaps for external HTTP(S) load balancers support only the
43607	// urlRewrite action within defaultRouteAction.
43608	// defaultRouteAction has no effect when the URL map is bound to target
43609	// gRPC proxy that has validateForProxyless field set to true.
43610	DefaultRouteAction *HttpRouteAction `json:"defaultRouteAction,omitempty"`
43611
43612	// DefaultService: The full or partial URL of the defaultService
43613	// resource to which traffic is directed if none of the hostRules match.
43614	// If defaultRouteAction is additionally specified, advanced routing
43615	// actions like URL Rewrites, etc. take effect prior to sending the
43616	// request to the backend. However, if defaultService is specified,
43617	// defaultRouteAction cannot contain any weightedBackendServices.
43618	// Conversely, if routeAction specifies any weightedBackendServices,
43619	// service must not be specified.
43620	// Only one of defaultService, defaultUrlRedirect  or
43621	// defaultRouteAction.weightedBackendService must be set.
43622	// defaultService has no effect when the URL map is bound to target gRPC
43623	// proxy that has validateForProxyless field set to true.
43624	DefaultService string `json:"defaultService,omitempty"`
43625
43626	// DefaultUrlRedirect: When none of the specified hostRules match, the
43627	// request is redirected to a URL specified by defaultUrlRedirect.
43628	// If defaultUrlRedirect is specified, defaultService or
43629	// defaultRouteAction must not be set.
43630	// Not supported when the URL map is bound to target gRPC proxy.
43631	DefaultUrlRedirect *HttpRedirectAction `json:"defaultUrlRedirect,omitempty"`
43632
43633	// Description: An optional description of this resource. Provide this
43634	// property when you create the resource.
43635	Description string `json:"description,omitempty"`
43636
43637	// Fingerprint: Fingerprint of this resource. A hash of the contents
43638	// stored in this object. This field is used in optimistic locking. This
43639	// field will be ignored when inserting a UrlMap. An up-to-date
43640	// fingerprint must be provided in order to update the UrlMap, otherwise
43641	// the request will fail with error 412 conditionNotMet.
43642	//
43643	// To see the latest fingerprint, make a get() request to retrieve a
43644	// UrlMap.
43645	Fingerprint string `json:"fingerprint,omitempty"`
43646
43647	// HeaderAction: Specifies changes to request and response headers that
43648	// need to take effect for the selected backendService.
43649	// The headerAction specified here take effect after headerAction
43650	// specified under pathMatcher.
43651	// Note that headerAction is not supported for Loadbalancers that have
43652	// their loadBalancingScheme set to EXTERNAL.
43653	// Not supported when the URL map is bound to target gRPC proxy that has
43654	// validateForProxyless field set to true.
43655	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
43656
43657	// HostRules: The list of HostRules to use against the URL.
43658	HostRules []*HostRule `json:"hostRules,omitempty"`
43659
43660	// Id: [Output Only] The unique identifier for the resource. This
43661	// identifier is defined by the server.
43662	Id uint64 `json:"id,omitempty,string"`
43663
43664	// Kind: [Output Only] Type of the resource. Always compute#urlMaps for
43665	// url maps.
43666	Kind string `json:"kind,omitempty"`
43667
43668	// Name: Name of the resource. Provided by the client when the resource
43669	// is created. The name must be 1-63 characters long, and comply with
43670	// RFC1035. Specifically, the name must be 1-63 characters long and
43671	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
43672	// the first character must be a lowercase letter, and all following
43673	// characters must be a dash, lowercase letter, or digit, except the
43674	// last character, which cannot be a dash.
43675	Name string `json:"name,omitempty"`
43676
43677	// PathMatchers: The list of named PathMatchers to use against the URL.
43678	PathMatchers []*PathMatcher `json:"pathMatchers,omitempty"`
43679
43680	// Region: [Output Only] URL of the region where the regional URL map
43681	// resides. This field is not applicable to global URL maps. You must
43682	// specify this field as part of the HTTP request URL. It is not
43683	// settable as a field in the request body.
43684	Region string `json:"region,omitempty"`
43685
43686	// SelfLink: [Output Only] Server-defined URL for the resource.
43687	SelfLink string `json:"selfLink,omitempty"`
43688
43689	// Tests: The list of expected URL mapping tests. Request to update this
43690	// UrlMap will succeed only if all of the test cases pass. You can
43691	// specify a maximum of 100 tests per UrlMap.
43692	// Not supported when the URL map is bound to target gRPC proxy that has
43693	// validateForProxyless field set to true.
43694	Tests []*UrlMapTest `json:"tests,omitempty"`
43695
43696	// ServerResponse contains the HTTP response code and headers from the
43697	// server.
43698	googleapi.ServerResponse `json:"-"`
43699
43700	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
43701	// to unconditionally include in API requests. By default, fields with
43702	// empty values are omitted from API requests. However, any non-pointer,
43703	// non-interface field appearing in ForceSendFields will be sent to the
43704	// server regardless of whether the field is empty or not. This may be
43705	// used to include empty fields in Patch requests.
43706	ForceSendFields []string `json:"-"`
43707
43708	// NullFields is a list of field names (e.g. "CreationTimestamp") to
43709	// include in API requests with the JSON null value. By default, fields
43710	// with empty values are omitted from API requests. However, any field
43711	// with an empty value appearing in NullFields will be sent to the
43712	// server as null. It is an error if a field in this list has a
43713	// non-empty value. This may be used to include null fields in Patch
43714	// requests.
43715	NullFields []string `json:"-"`
43716}
43717
43718func (s *UrlMap) MarshalJSON() ([]byte, error) {
43719	type NoMethod UrlMap
43720	raw := NoMethod(*s)
43721	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43722}
43723
43724// UrlMapList: Contains a list of UrlMap resources.
43725type UrlMapList struct {
43726	// Id: [Output Only] Unique identifier for the resource; defined by the
43727	// server.
43728	Id string `json:"id,omitempty"`
43729
43730	// Items: A list of UrlMap resources.
43731	Items []*UrlMap `json:"items,omitempty"`
43732
43733	// Kind: Type of resource.
43734	Kind string `json:"kind,omitempty"`
43735
43736	// NextPageToken: [Output Only] This token allows you to get the next
43737	// page of results for list requests. If the number of results is larger
43738	// than maxResults, use the nextPageToken as a value for the query
43739	// parameter pageToken in the next list request. Subsequent list
43740	// requests will have their own nextPageToken to continue paging through
43741	// the results.
43742	NextPageToken string `json:"nextPageToken,omitempty"`
43743
43744	// SelfLink: [Output Only] Server-defined URL for this resource.
43745	SelfLink string `json:"selfLink,omitempty"`
43746
43747	// Warning: [Output Only] Informational warning message.
43748	Warning *UrlMapListWarning `json:"warning,omitempty"`
43749
43750	// ServerResponse contains the HTTP response code and headers from the
43751	// server.
43752	googleapi.ServerResponse `json:"-"`
43753
43754	// ForceSendFields is a list of field names (e.g. "Id") to
43755	// unconditionally include in API requests. By default, fields with
43756	// empty values are omitted from API requests. However, any non-pointer,
43757	// non-interface field appearing in ForceSendFields will be sent to the
43758	// server regardless of whether the field is empty or not. This may be
43759	// used to include empty fields in Patch requests.
43760	ForceSendFields []string `json:"-"`
43761
43762	// NullFields is a list of field names (e.g. "Id") to include in API
43763	// requests with the JSON null value. By default, fields with empty
43764	// values are omitted from API requests. However, any field with an
43765	// empty value appearing in NullFields will be sent to the server as
43766	// null. It is an error if a field in this list has a non-empty value.
43767	// This may be used to include null fields in Patch requests.
43768	NullFields []string `json:"-"`
43769}
43770
43771func (s *UrlMapList) MarshalJSON() ([]byte, error) {
43772	type NoMethod UrlMapList
43773	raw := NoMethod(*s)
43774	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43775}
43776
43777// UrlMapListWarning: [Output Only] Informational warning message.
43778type UrlMapListWarning struct {
43779	// Code: [Output Only] A warning code, if applicable. For example,
43780	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
43781	// the response.
43782	//
43783	// Possible values:
43784	//   "CLEANUP_FAILED"
43785	//   "DEPRECATED_RESOURCE_USED"
43786	//   "DEPRECATED_TYPE_USED"
43787	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
43788	//   "EXPERIMENTAL_TYPE_USED"
43789	//   "EXTERNAL_API_WARNING"
43790	//   "FIELD_VALUE_OVERRIDEN"
43791	//   "INJECTED_KERNELS_DEPRECATED"
43792	//   "LARGE_DEPLOYMENT_WARNING"
43793	//   "MISSING_TYPE_DEPENDENCY"
43794	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
43795	//   "NEXT_HOP_CANNOT_IP_FORWARD"
43796	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
43797	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
43798	//   "NEXT_HOP_NOT_RUNNING"
43799	//   "NOT_CRITICAL_ERROR"
43800	//   "NO_RESULTS_ON_PAGE"
43801	//   "PARTIAL_SUCCESS"
43802	//   "REQUIRED_TOS_AGREEMENT"
43803	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
43804	//   "RESOURCE_NOT_DELETED"
43805	//   "SCHEMA_VALIDATION_IGNORED"
43806	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
43807	//   "UNDECLARED_PROPERTIES"
43808	//   "UNREACHABLE"
43809	Code string `json:"code,omitempty"`
43810
43811	// Data: [Output Only] Metadata about this warning in key: value format.
43812	// For example:
43813	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
43814	Data []*UrlMapListWarningData `json:"data,omitempty"`
43815
43816	// Message: [Output Only] A human-readable description of the warning
43817	// code.
43818	Message string `json:"message,omitempty"`
43819
43820	// ForceSendFields is a list of field names (e.g. "Code") to
43821	// unconditionally include in API requests. By default, fields with
43822	// empty values are omitted from API requests. However, any non-pointer,
43823	// non-interface field appearing in ForceSendFields will be sent to the
43824	// server regardless of whether the field is empty or not. This may be
43825	// used to include empty fields in Patch requests.
43826	ForceSendFields []string `json:"-"`
43827
43828	// NullFields is a list of field names (e.g. "Code") to include in API
43829	// requests with the JSON null value. By default, fields with empty
43830	// values are omitted from API requests. However, any field with an
43831	// empty value appearing in NullFields will be sent to the server as
43832	// null. It is an error if a field in this list has a non-empty value.
43833	// This may be used to include null fields in Patch requests.
43834	NullFields []string `json:"-"`
43835}
43836
43837func (s *UrlMapListWarning) MarshalJSON() ([]byte, error) {
43838	type NoMethod UrlMapListWarning
43839	raw := NoMethod(*s)
43840	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43841}
43842
43843type UrlMapListWarningData struct {
43844	// Key: [Output Only] A key that provides more detail on the warning
43845	// being returned. For example, for warnings where there are no results
43846	// in a list request for a particular zone, this key might be scope and
43847	// the key value might be the zone name. Other examples might be a key
43848	// indicating a deprecated resource and a suggested replacement, or a
43849	// warning about invalid network settings (for example, if an instance
43850	// attempts to perform IP forwarding but is not enabled for IP
43851	// forwarding).
43852	Key string `json:"key,omitempty"`
43853
43854	// Value: [Output Only] A warning data value corresponding to the key.
43855	Value string `json:"value,omitempty"`
43856
43857	// ForceSendFields is a list of field names (e.g. "Key") to
43858	// unconditionally include in API requests. By default, fields with
43859	// empty values are omitted from API requests. However, any non-pointer,
43860	// non-interface field appearing in ForceSendFields will be sent to the
43861	// server regardless of whether the field is empty or not. This may be
43862	// used to include empty fields in Patch requests.
43863	ForceSendFields []string `json:"-"`
43864
43865	// NullFields is a list of field names (e.g. "Key") to include in API
43866	// requests with the JSON null value. By default, fields with empty
43867	// values are omitted from API requests. However, any field with an
43868	// empty value appearing in NullFields will be sent to the server as
43869	// null. It is an error if a field in this list has a non-empty value.
43870	// This may be used to include null fields in Patch requests.
43871	NullFields []string `json:"-"`
43872}
43873
43874func (s *UrlMapListWarningData) MarshalJSON() ([]byte, error) {
43875	type NoMethod UrlMapListWarningData
43876	raw := NoMethod(*s)
43877	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43878}
43879
43880type UrlMapReference struct {
43881	UrlMap string `json:"urlMap,omitempty"`
43882
43883	// ForceSendFields is a list of field names (e.g. "UrlMap") to
43884	// unconditionally include in API requests. By default, fields with
43885	// empty values are omitted from API requests. However, any non-pointer,
43886	// non-interface field appearing in ForceSendFields will be sent to the
43887	// server regardless of whether the field is empty or not. This may be
43888	// used to include empty fields in Patch requests.
43889	ForceSendFields []string `json:"-"`
43890
43891	// NullFields is a list of field names (e.g. "UrlMap") to include in API
43892	// requests with the JSON null value. By default, fields with empty
43893	// values are omitted from API requests. However, any field with an
43894	// empty value appearing in NullFields will be sent to the server as
43895	// null. It is an error if a field in this list has a non-empty value.
43896	// This may be used to include null fields in Patch requests.
43897	NullFields []string `json:"-"`
43898}
43899
43900func (s *UrlMapReference) MarshalJSON() ([]byte, error) {
43901	type NoMethod UrlMapReference
43902	raw := NoMethod(*s)
43903	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43904}
43905
43906// UrlMapTest: Message for the expected URL mappings.
43907type UrlMapTest struct {
43908	// Description: Description of this test case.
43909	Description string `json:"description,omitempty"`
43910
43911	// ExpectedOutputUrl: The expected output URL evaluated by load balancer
43912	// containing the scheme, host, path and query parameters.
43913	// For rules that forward requests to backends, the test passes only
43914	// when expectedOutputUrl matches the request forwarded by load balancer
43915	// to backends. For rules with urlRewrite, the test verifies that the
43916	// forwarded request matches hostRewrite and pathPrefixRewrite in the
43917	// urlRewrite action. When service is specified, expectedOutputUrl`s
43918	// scheme is ignored.
43919	// For rules with urlRedirect, the test passes only if expectedOutputUrl
43920	// matches the URL in the load balancer's redirect response. If
43921	// urlRedirect specifies https_redirect, the test passes only if the
43922	// scheme in expectedOutputUrl is also set to https. If urlRedirect
43923	// specifies strip_query, the test passes only if expectedOutputUrl does
43924	// not contain any query parameters.
43925	// expectedOutputUrl is optional when service is specified.
43926	ExpectedOutputUrl string `json:"expectedOutputUrl,omitempty"`
43927
43928	// ExpectedRedirectResponseCode: For rules with urlRedirect, the test
43929	// passes only if expectedRedirectResponseCode matches the HTTP status
43930	// code in load balancer's redirect
43931	// response.
43932	// expectedRedirectResponseCode cannot be set when service is set.
43933	ExpectedRedirectResponseCode int64 `json:"expectedRedirectResponseCode,omitempty"`
43934
43935	// Headers: HTTP headers for this request. If headers contains a host
43936	// header, then host must also match the header value.
43937	Headers []*UrlMapTestHeader `json:"headers,omitempty"`
43938
43939	// Host: Host portion of the URL. If headers contains a host header,
43940	// then host must also match the header value.
43941	Host string `json:"host,omitempty"`
43942
43943	// Path: Path portion of the URL.
43944	Path string `json:"path,omitempty"`
43945
43946	// Service: Expected BackendService or BackendBucket resource the given
43947	// URL should be mapped to.
43948	// service cannot be set if expectedRedirectResponseCode is set.
43949	Service string `json:"service,omitempty"`
43950
43951	// ForceSendFields is a list of field names (e.g. "Description") to
43952	// unconditionally include in API requests. By default, fields with
43953	// empty values are omitted from API requests. However, any non-pointer,
43954	// non-interface field appearing in ForceSendFields will be sent to the
43955	// server regardless of whether the field is empty or not. This may be
43956	// used to include empty fields in Patch requests.
43957	ForceSendFields []string `json:"-"`
43958
43959	// NullFields is a list of field names (e.g. "Description") to include
43960	// in API requests with the JSON null value. By default, fields with
43961	// empty values are omitted from API requests. However, any field with
43962	// an empty value appearing in NullFields will be sent to the server as
43963	// null. It is an error if a field in this list has a non-empty value.
43964	// This may be used to include null fields in Patch requests.
43965	NullFields []string `json:"-"`
43966}
43967
43968func (s *UrlMapTest) MarshalJSON() ([]byte, error) {
43969	type NoMethod UrlMapTest
43970	raw := NoMethod(*s)
43971	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43972}
43973
43974// UrlMapTestHeader: HTTP headers used in UrlMapTests.
43975type UrlMapTestHeader struct {
43976	// Name: Header name.
43977	Name string `json:"name,omitempty"`
43978
43979	// Value: Header value.
43980	Value string `json:"value,omitempty"`
43981
43982	// ForceSendFields is a list of field names (e.g. "Name") to
43983	// unconditionally include in API requests. By default, fields with
43984	// empty values are omitted from API requests. However, any non-pointer,
43985	// non-interface field appearing in ForceSendFields will be sent to the
43986	// server regardless of whether the field is empty or not. This may be
43987	// used to include empty fields in Patch requests.
43988	ForceSendFields []string `json:"-"`
43989
43990	// NullFields is a list of field names (e.g. "Name") to include in API
43991	// requests with the JSON null value. By default, fields with empty
43992	// values are omitted from API requests. However, any field with an
43993	// empty value appearing in NullFields will be sent to the server as
43994	// null. It is an error if a field in this list has a non-empty value.
43995	// This may be used to include null fields in Patch requests.
43996	NullFields []string `json:"-"`
43997}
43998
43999func (s *UrlMapTestHeader) MarshalJSON() ([]byte, error) {
44000	type NoMethod UrlMapTestHeader
44001	raw := NoMethod(*s)
44002	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44003}
44004
44005// UrlMapValidationResult: Message representing the validation result
44006// for a UrlMap.
44007type UrlMapValidationResult struct {
44008	LoadErrors []string `json:"loadErrors,omitempty"`
44009
44010	// LoadSucceeded: Whether the given UrlMap can be successfully loaded.
44011	// If false, 'loadErrors' indicates the reasons.
44012	LoadSucceeded bool `json:"loadSucceeded,omitempty"`
44013
44014	TestFailures []*TestFailure `json:"testFailures,omitempty"`
44015
44016	// TestPassed: If successfully loaded, this field indicates whether the
44017	// test passed. If false, 'testFailures's indicate the reason of
44018	// failure.
44019	TestPassed bool `json:"testPassed,omitempty"`
44020
44021	// ForceSendFields is a list of field names (e.g. "LoadErrors") to
44022	// unconditionally include in API requests. By default, fields with
44023	// empty values are omitted from API requests. However, any non-pointer,
44024	// non-interface field appearing in ForceSendFields will be sent to the
44025	// server regardless of whether the field is empty or not. This may be
44026	// used to include empty fields in Patch requests.
44027	ForceSendFields []string `json:"-"`
44028
44029	// NullFields is a list of field names (e.g. "LoadErrors") to include in
44030	// API requests with the JSON null value. By default, fields with empty
44031	// values are omitted from API requests. However, any field with an
44032	// empty value appearing in NullFields will be sent to the server as
44033	// null. It is an error if a field in this list has a non-empty value.
44034	// This may be used to include null fields in Patch requests.
44035	NullFields []string `json:"-"`
44036}
44037
44038func (s *UrlMapValidationResult) MarshalJSON() ([]byte, error) {
44039	type NoMethod UrlMapValidationResult
44040	raw := NoMethod(*s)
44041	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44042}
44043
44044type UrlMapsAggregatedList struct {
44045	// Id: [Output Only] Unique identifier for the resource; defined by the
44046	// server.
44047	Id string `json:"id,omitempty"`
44048
44049	// Items: A list of UrlMapsScopedList resources.
44050	Items map[string]UrlMapsScopedList `json:"items,omitempty"`
44051
44052	// Kind: Type of resource.
44053	Kind string `json:"kind,omitempty"`
44054
44055	// NextPageToken: [Output Only] This token allows you to get the next
44056	// page of results for list requests. If the number of results is larger
44057	// than maxResults, use the nextPageToken as a value for the query
44058	// parameter pageToken in the next list request. Subsequent list
44059	// requests will have their own nextPageToken to continue paging through
44060	// the results.
44061	NextPageToken string `json:"nextPageToken,omitempty"`
44062
44063	// SelfLink: [Output Only] Server-defined URL for this resource.
44064	SelfLink string `json:"selfLink,omitempty"`
44065
44066	// Unreachables: [Output Only] Unreachable resources.
44067	Unreachables []string `json:"unreachables,omitempty"`
44068
44069	// Warning: [Output Only] Informational warning message.
44070	Warning *UrlMapsAggregatedListWarning `json:"warning,omitempty"`
44071
44072	// ServerResponse contains the HTTP response code and headers from the
44073	// server.
44074	googleapi.ServerResponse `json:"-"`
44075
44076	// ForceSendFields is a list of field names (e.g. "Id") to
44077	// unconditionally include in API requests. By default, fields with
44078	// empty values are omitted from API requests. However, any non-pointer,
44079	// non-interface field appearing in ForceSendFields will be sent to the
44080	// server regardless of whether the field is empty or not. This may be
44081	// used to include empty fields in Patch requests.
44082	ForceSendFields []string `json:"-"`
44083
44084	// NullFields is a list of field names (e.g. "Id") to include in API
44085	// requests with the JSON null value. By default, fields with empty
44086	// values are omitted from API requests. However, any field with an
44087	// empty value appearing in NullFields will be sent to the server as
44088	// null. It is an error if a field in this list has a non-empty value.
44089	// This may be used to include null fields in Patch requests.
44090	NullFields []string `json:"-"`
44091}
44092
44093func (s *UrlMapsAggregatedList) MarshalJSON() ([]byte, error) {
44094	type NoMethod UrlMapsAggregatedList
44095	raw := NoMethod(*s)
44096	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44097}
44098
44099// UrlMapsAggregatedListWarning: [Output Only] Informational warning
44100// message.
44101type UrlMapsAggregatedListWarning struct {
44102	// Code: [Output Only] A warning code, if applicable. For example,
44103	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
44104	// the response.
44105	//
44106	// Possible values:
44107	//   "CLEANUP_FAILED"
44108	//   "DEPRECATED_RESOURCE_USED"
44109	//   "DEPRECATED_TYPE_USED"
44110	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
44111	//   "EXPERIMENTAL_TYPE_USED"
44112	//   "EXTERNAL_API_WARNING"
44113	//   "FIELD_VALUE_OVERRIDEN"
44114	//   "INJECTED_KERNELS_DEPRECATED"
44115	//   "LARGE_DEPLOYMENT_WARNING"
44116	//   "MISSING_TYPE_DEPENDENCY"
44117	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
44118	//   "NEXT_HOP_CANNOT_IP_FORWARD"
44119	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
44120	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
44121	//   "NEXT_HOP_NOT_RUNNING"
44122	//   "NOT_CRITICAL_ERROR"
44123	//   "NO_RESULTS_ON_PAGE"
44124	//   "PARTIAL_SUCCESS"
44125	//   "REQUIRED_TOS_AGREEMENT"
44126	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
44127	//   "RESOURCE_NOT_DELETED"
44128	//   "SCHEMA_VALIDATION_IGNORED"
44129	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
44130	//   "UNDECLARED_PROPERTIES"
44131	//   "UNREACHABLE"
44132	Code string `json:"code,omitempty"`
44133
44134	// Data: [Output Only] Metadata about this warning in key: value format.
44135	// For example:
44136	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
44137	Data []*UrlMapsAggregatedListWarningData `json:"data,omitempty"`
44138
44139	// Message: [Output Only] A human-readable description of the warning
44140	// code.
44141	Message string `json:"message,omitempty"`
44142
44143	// ForceSendFields is a list of field names (e.g. "Code") to
44144	// unconditionally include in API requests. By default, fields with
44145	// empty values are omitted from API requests. However, any non-pointer,
44146	// non-interface field appearing in ForceSendFields will be sent to the
44147	// server regardless of whether the field is empty or not. This may be
44148	// used to include empty fields in Patch requests.
44149	ForceSendFields []string `json:"-"`
44150
44151	// NullFields is a list of field names (e.g. "Code") to include in API
44152	// requests with the JSON null value. By default, fields with empty
44153	// values are omitted from API requests. However, any field with an
44154	// empty value appearing in NullFields will be sent to the server as
44155	// null. It is an error if a field in this list has a non-empty value.
44156	// This may be used to include null fields in Patch requests.
44157	NullFields []string `json:"-"`
44158}
44159
44160func (s *UrlMapsAggregatedListWarning) MarshalJSON() ([]byte, error) {
44161	type NoMethod UrlMapsAggregatedListWarning
44162	raw := NoMethod(*s)
44163	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44164}
44165
44166type UrlMapsAggregatedListWarningData struct {
44167	// Key: [Output Only] A key that provides more detail on the warning
44168	// being returned. For example, for warnings where there are no results
44169	// in a list request for a particular zone, this key might be scope and
44170	// the key value might be the zone name. Other examples might be a key
44171	// indicating a deprecated resource and a suggested replacement, or a
44172	// warning about invalid network settings (for example, if an instance
44173	// attempts to perform IP forwarding but is not enabled for IP
44174	// forwarding).
44175	Key string `json:"key,omitempty"`
44176
44177	// Value: [Output Only] A warning data value corresponding to the key.
44178	Value string `json:"value,omitempty"`
44179
44180	// ForceSendFields is a list of field names (e.g. "Key") to
44181	// unconditionally include in API requests. By default, fields with
44182	// empty values are omitted from API requests. However, any non-pointer,
44183	// non-interface field appearing in ForceSendFields will be sent to the
44184	// server regardless of whether the field is empty or not. This may be
44185	// used to include empty fields in Patch requests.
44186	ForceSendFields []string `json:"-"`
44187
44188	// NullFields is a list of field names (e.g. "Key") to include in API
44189	// requests with the JSON null value. By default, fields with empty
44190	// values are omitted from API requests. However, any field with an
44191	// empty value appearing in NullFields will be sent to the server as
44192	// null. It is an error if a field in this list has a non-empty value.
44193	// This may be used to include null fields in Patch requests.
44194	NullFields []string `json:"-"`
44195}
44196
44197func (s *UrlMapsAggregatedListWarningData) MarshalJSON() ([]byte, error) {
44198	type NoMethod UrlMapsAggregatedListWarningData
44199	raw := NoMethod(*s)
44200	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44201}
44202
44203type UrlMapsScopedList struct {
44204	// UrlMaps: A list of UrlMaps contained in this scope.
44205	UrlMaps []*UrlMap `json:"urlMaps,omitempty"`
44206
44207	// Warning: Informational warning which replaces the list of backend
44208	// services when the list is empty.
44209	Warning *UrlMapsScopedListWarning `json:"warning,omitempty"`
44210
44211	// ForceSendFields is a list of field names (e.g. "UrlMaps") to
44212	// unconditionally include in API requests. By default, fields with
44213	// empty values are omitted from API requests. However, any non-pointer,
44214	// non-interface field appearing in ForceSendFields will be sent to the
44215	// server regardless of whether the field is empty or not. This may be
44216	// used to include empty fields in Patch requests.
44217	ForceSendFields []string `json:"-"`
44218
44219	// NullFields is a list of field names (e.g. "UrlMaps") to include in
44220	// API requests with the JSON null value. By default, fields with empty
44221	// values are omitted from API requests. However, any field with an
44222	// empty value appearing in NullFields will be sent to the server as
44223	// null. It is an error if a field in this list has a non-empty value.
44224	// This may be used to include null fields in Patch requests.
44225	NullFields []string `json:"-"`
44226}
44227
44228func (s *UrlMapsScopedList) MarshalJSON() ([]byte, error) {
44229	type NoMethod UrlMapsScopedList
44230	raw := NoMethod(*s)
44231	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44232}
44233
44234// UrlMapsScopedListWarning: Informational warning which replaces the
44235// list of backend services when the list is empty.
44236type UrlMapsScopedListWarning struct {
44237	// Code: [Output Only] A warning code, if applicable. For example,
44238	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
44239	// the response.
44240	//
44241	// Possible values:
44242	//   "CLEANUP_FAILED"
44243	//   "DEPRECATED_RESOURCE_USED"
44244	//   "DEPRECATED_TYPE_USED"
44245	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
44246	//   "EXPERIMENTAL_TYPE_USED"
44247	//   "EXTERNAL_API_WARNING"
44248	//   "FIELD_VALUE_OVERRIDEN"
44249	//   "INJECTED_KERNELS_DEPRECATED"
44250	//   "LARGE_DEPLOYMENT_WARNING"
44251	//   "MISSING_TYPE_DEPENDENCY"
44252	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
44253	//   "NEXT_HOP_CANNOT_IP_FORWARD"
44254	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
44255	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
44256	//   "NEXT_HOP_NOT_RUNNING"
44257	//   "NOT_CRITICAL_ERROR"
44258	//   "NO_RESULTS_ON_PAGE"
44259	//   "PARTIAL_SUCCESS"
44260	//   "REQUIRED_TOS_AGREEMENT"
44261	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
44262	//   "RESOURCE_NOT_DELETED"
44263	//   "SCHEMA_VALIDATION_IGNORED"
44264	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
44265	//   "UNDECLARED_PROPERTIES"
44266	//   "UNREACHABLE"
44267	Code string `json:"code,omitempty"`
44268
44269	// Data: [Output Only] Metadata about this warning in key: value format.
44270	// For example:
44271	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
44272	Data []*UrlMapsScopedListWarningData `json:"data,omitempty"`
44273
44274	// Message: [Output Only] A human-readable description of the warning
44275	// code.
44276	Message string `json:"message,omitempty"`
44277
44278	// ForceSendFields is a list of field names (e.g. "Code") to
44279	// unconditionally include in API requests. By default, fields with
44280	// empty values are omitted from API requests. However, any non-pointer,
44281	// non-interface field appearing in ForceSendFields will be sent to the
44282	// server regardless of whether the field is empty or not. This may be
44283	// used to include empty fields in Patch requests.
44284	ForceSendFields []string `json:"-"`
44285
44286	// NullFields is a list of field names (e.g. "Code") to include in API
44287	// requests with the JSON null value. By default, fields with empty
44288	// values are omitted from API requests. However, any field with an
44289	// empty value appearing in NullFields will be sent to the server as
44290	// null. It is an error if a field in this list has a non-empty value.
44291	// This may be used to include null fields in Patch requests.
44292	NullFields []string `json:"-"`
44293}
44294
44295func (s *UrlMapsScopedListWarning) MarshalJSON() ([]byte, error) {
44296	type NoMethod UrlMapsScopedListWarning
44297	raw := NoMethod(*s)
44298	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44299}
44300
44301type UrlMapsScopedListWarningData struct {
44302	// Key: [Output Only] A key that provides more detail on the warning
44303	// being returned. For example, for warnings where there are no results
44304	// in a list request for a particular zone, this key might be scope and
44305	// the key value might be the zone name. Other examples might be a key
44306	// indicating a deprecated resource and a suggested replacement, or a
44307	// warning about invalid network settings (for example, if an instance
44308	// attempts to perform IP forwarding but is not enabled for IP
44309	// forwarding).
44310	Key string `json:"key,omitempty"`
44311
44312	// Value: [Output Only] A warning data value corresponding to the key.
44313	Value string `json:"value,omitempty"`
44314
44315	// ForceSendFields is a list of field names (e.g. "Key") to
44316	// unconditionally include in API requests. By default, fields with
44317	// empty values are omitted from API requests. However, any non-pointer,
44318	// non-interface field appearing in ForceSendFields will be sent to the
44319	// server regardless of whether the field is empty or not. This may be
44320	// used to include empty fields in Patch requests.
44321	ForceSendFields []string `json:"-"`
44322
44323	// NullFields is a list of field names (e.g. "Key") to include in API
44324	// requests with the JSON null value. By default, fields with empty
44325	// values are omitted from API requests. However, any field with an
44326	// empty value appearing in NullFields will be sent to the server as
44327	// null. It is an error if a field in this list has a non-empty value.
44328	// This may be used to include null fields in Patch requests.
44329	NullFields []string `json:"-"`
44330}
44331
44332func (s *UrlMapsScopedListWarningData) MarshalJSON() ([]byte, error) {
44333	type NoMethod UrlMapsScopedListWarningData
44334	raw := NoMethod(*s)
44335	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44336}
44337
44338type UrlMapsValidateRequest struct {
44339	// Resource: Content of the UrlMap to be validated.
44340	Resource *UrlMap `json:"resource,omitempty"`
44341
44342	// ForceSendFields is a list of field names (e.g. "Resource") to
44343	// unconditionally include in API requests. By default, fields with
44344	// empty values are omitted from API requests. However, any non-pointer,
44345	// non-interface field appearing in ForceSendFields will be sent to the
44346	// server regardless of whether the field is empty or not. This may be
44347	// used to include empty fields in Patch requests.
44348	ForceSendFields []string `json:"-"`
44349
44350	// NullFields is a list of field names (e.g. "Resource") to include in
44351	// API requests with the JSON null value. By default, fields with empty
44352	// values are omitted from API requests. However, any field with an
44353	// empty value appearing in NullFields will be sent to the server as
44354	// null. It is an error if a field in this list has a non-empty value.
44355	// This may be used to include null fields in Patch requests.
44356	NullFields []string `json:"-"`
44357}
44358
44359func (s *UrlMapsValidateRequest) MarshalJSON() ([]byte, error) {
44360	type NoMethod UrlMapsValidateRequest
44361	raw := NoMethod(*s)
44362	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44363}
44364
44365type UrlMapsValidateResponse struct {
44366	Result *UrlMapValidationResult `json:"result,omitempty"`
44367
44368	// ServerResponse contains the HTTP response code and headers from the
44369	// server.
44370	googleapi.ServerResponse `json:"-"`
44371
44372	// ForceSendFields is a list of field names (e.g. "Result") to
44373	// unconditionally include in API requests. By default, fields with
44374	// empty values are omitted from API requests. However, any non-pointer,
44375	// non-interface field appearing in ForceSendFields will be sent to the
44376	// server regardless of whether the field is empty or not. This may be
44377	// used to include empty fields in Patch requests.
44378	ForceSendFields []string `json:"-"`
44379
44380	// NullFields is a list of field names (e.g. "Result") to include in API
44381	// requests with the JSON null value. By default, fields with empty
44382	// values are omitted from API requests. However, any field with an
44383	// empty value appearing in NullFields will be sent to the server as
44384	// null. It is an error if a field in this list has a non-empty value.
44385	// This may be used to include null fields in Patch requests.
44386	NullFields []string `json:"-"`
44387}
44388
44389func (s *UrlMapsValidateResponse) MarshalJSON() ([]byte, error) {
44390	type NoMethod UrlMapsValidateResponse
44391	raw := NoMethod(*s)
44392	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44393}
44394
44395// UrlRewrite: The spec for modifying the path before sending the
44396// request to the matched backend service.
44397type UrlRewrite struct {
44398	// HostRewrite: Prior to forwarding the request to the selected service,
44399	// the request's host header is replaced with contents of
44400	// hostRewrite.
44401	// The value must be between 1 and 255 characters.
44402	HostRewrite string `json:"hostRewrite,omitempty"`
44403
44404	// PathPrefixRewrite: Prior to forwarding the request to the selected
44405	// backend service, the matching portion of the request's path is
44406	// replaced by pathPrefixRewrite.
44407	// The value must be between 1 and 1024 characters.
44408	PathPrefixRewrite string `json:"pathPrefixRewrite,omitempty"`
44409
44410	// ForceSendFields is a list of field names (e.g. "HostRewrite") to
44411	// unconditionally include in API requests. By default, fields with
44412	// empty values are omitted from API requests. However, any non-pointer,
44413	// non-interface field appearing in ForceSendFields will be sent to the
44414	// server regardless of whether the field is empty or not. This may be
44415	// used to include empty fields in Patch requests.
44416	ForceSendFields []string `json:"-"`
44417
44418	// NullFields is a list of field names (e.g. "HostRewrite") to include
44419	// in API requests with the JSON null value. By default, fields with
44420	// empty values are omitted from API requests. However, any field with
44421	// an empty value appearing in NullFields will be sent to the server as
44422	// null. It is an error if a field in this list has a non-empty value.
44423	// This may be used to include null fields in Patch requests.
44424	NullFields []string `json:"-"`
44425}
44426
44427func (s *UrlRewrite) MarshalJSON() ([]byte, error) {
44428	type NoMethod UrlRewrite
44429	raw := NoMethod(*s)
44430	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44431}
44432
44433// UsableSubnetwork: Subnetwork which the current user has
44434// compute.subnetworks.use permission on.
44435type UsableSubnetwork struct {
44436	// IpCidrRange: The range of internal addresses that are owned by this
44437	// subnetwork.
44438	IpCidrRange string `json:"ipCidrRange,omitempty"`
44439
44440	// Network: Network URL.
44441	Network string `json:"network,omitempty"`
44442
44443	// SecondaryIpRanges: Secondary IP ranges.
44444	SecondaryIpRanges []*UsableSubnetworkSecondaryRange `json:"secondaryIpRanges,omitempty"`
44445
44446	// Subnetwork: Subnetwork URL.
44447	Subnetwork string `json:"subnetwork,omitempty"`
44448
44449	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
44450	// unconditionally include in API requests. By default, fields with
44451	// empty values are omitted from API requests. However, any non-pointer,
44452	// non-interface field appearing in ForceSendFields will be sent to the
44453	// server regardless of whether the field is empty or not. This may be
44454	// used to include empty fields in Patch requests.
44455	ForceSendFields []string `json:"-"`
44456
44457	// NullFields is a list of field names (e.g. "IpCidrRange") to include
44458	// in API requests with the JSON null value. By default, fields with
44459	// empty values are omitted from API requests. However, any field with
44460	// an empty value appearing in NullFields will be sent to the server as
44461	// null. It is an error if a field in this list has a non-empty value.
44462	// This may be used to include null fields in Patch requests.
44463	NullFields []string `json:"-"`
44464}
44465
44466func (s *UsableSubnetwork) MarshalJSON() ([]byte, error) {
44467	type NoMethod UsableSubnetwork
44468	raw := NoMethod(*s)
44469	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44470}
44471
44472// UsableSubnetworkSecondaryRange: Secondary IP range of a usable
44473// subnetwork.
44474type UsableSubnetworkSecondaryRange struct {
44475	// IpCidrRange: The range of IP addresses belonging to this subnetwork
44476	// secondary range.
44477	IpCidrRange string `json:"ipCidrRange,omitempty"`
44478
44479	// RangeName: The name associated with this subnetwork secondary range,
44480	// used when adding an alias IP range to a VM instance. The name must be
44481	// 1-63 characters long, and comply with RFC1035. The name must be
44482	// unique within the subnetwork.
44483	RangeName string `json:"rangeName,omitempty"`
44484
44485	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
44486	// unconditionally include in API requests. By default, fields with
44487	// empty values are omitted from API requests. However, any non-pointer,
44488	// non-interface field appearing in ForceSendFields will be sent to the
44489	// server regardless of whether the field is empty or not. This may be
44490	// used to include empty fields in Patch requests.
44491	ForceSendFields []string `json:"-"`
44492
44493	// NullFields is a list of field names (e.g. "IpCidrRange") to include
44494	// in API requests with the JSON null value. By default, fields with
44495	// empty values are omitted from API requests. However, any field with
44496	// an empty value appearing in NullFields will be sent to the server as
44497	// null. It is an error if a field in this list has a non-empty value.
44498	// This may be used to include null fields in Patch requests.
44499	NullFields []string `json:"-"`
44500}
44501
44502func (s *UsableSubnetworkSecondaryRange) MarshalJSON() ([]byte, error) {
44503	type NoMethod UsableSubnetworkSecondaryRange
44504	raw := NoMethod(*s)
44505	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44506}
44507
44508type UsableSubnetworksAggregatedList struct {
44509	// Id: [Output Only] The unique identifier for the resource. This
44510	// identifier is defined by the server.
44511	Id string `json:"id,omitempty"`
44512
44513	// Items: [Output] A list of usable subnetwork URLs.
44514	Items []*UsableSubnetwork `json:"items,omitempty"`
44515
44516	// Kind: [Output Only] Type of resource. Always
44517	// compute#usableSubnetworksAggregatedList for aggregated lists of
44518	// usable subnetworks.
44519	Kind string `json:"kind,omitempty"`
44520
44521	// NextPageToken: [Output Only] This token allows you to get the next
44522	// page of results for list requests. If the number of results is larger
44523	// than maxResults, use the nextPageToken as a value for the query
44524	// parameter pageToken in the next list request. Subsequent list
44525	// requests will have their own nextPageToken to continue paging through
44526	// the results. In special cases listUsable may return 0 subnetworks and
44527	// nextPageToken which still should be used to get the next page of
44528	// results.
44529	NextPageToken string `json:"nextPageToken,omitempty"`
44530
44531	// SelfLink: [Output Only] Server-defined URL for this resource.
44532	SelfLink string `json:"selfLink,omitempty"`
44533
44534	// Warning: [Output Only] Informational warning message.
44535	Warning *UsableSubnetworksAggregatedListWarning `json:"warning,omitempty"`
44536
44537	// ServerResponse contains the HTTP response code and headers from the
44538	// server.
44539	googleapi.ServerResponse `json:"-"`
44540
44541	// ForceSendFields is a list of field names (e.g. "Id") to
44542	// unconditionally include in API requests. By default, fields with
44543	// empty values are omitted from API requests. However, any non-pointer,
44544	// non-interface field appearing in ForceSendFields will be sent to the
44545	// server regardless of whether the field is empty or not. This may be
44546	// used to include empty fields in Patch requests.
44547	ForceSendFields []string `json:"-"`
44548
44549	// NullFields is a list of field names (e.g. "Id") to include in API
44550	// requests with the JSON null value. By default, fields with empty
44551	// values are omitted from API requests. However, any field with an
44552	// empty value appearing in NullFields will be sent to the server as
44553	// null. It is an error if a field in this list has a non-empty value.
44554	// This may be used to include null fields in Patch requests.
44555	NullFields []string `json:"-"`
44556}
44557
44558func (s *UsableSubnetworksAggregatedList) MarshalJSON() ([]byte, error) {
44559	type NoMethod UsableSubnetworksAggregatedList
44560	raw := NoMethod(*s)
44561	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44562}
44563
44564// UsableSubnetworksAggregatedListWarning: [Output Only] Informational
44565// warning message.
44566type UsableSubnetworksAggregatedListWarning struct {
44567	// Code: [Output Only] A warning code, if applicable. For example,
44568	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
44569	// the response.
44570	//
44571	// Possible values:
44572	//   "CLEANUP_FAILED"
44573	//   "DEPRECATED_RESOURCE_USED"
44574	//   "DEPRECATED_TYPE_USED"
44575	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
44576	//   "EXPERIMENTAL_TYPE_USED"
44577	//   "EXTERNAL_API_WARNING"
44578	//   "FIELD_VALUE_OVERRIDEN"
44579	//   "INJECTED_KERNELS_DEPRECATED"
44580	//   "LARGE_DEPLOYMENT_WARNING"
44581	//   "MISSING_TYPE_DEPENDENCY"
44582	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
44583	//   "NEXT_HOP_CANNOT_IP_FORWARD"
44584	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
44585	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
44586	//   "NEXT_HOP_NOT_RUNNING"
44587	//   "NOT_CRITICAL_ERROR"
44588	//   "NO_RESULTS_ON_PAGE"
44589	//   "PARTIAL_SUCCESS"
44590	//   "REQUIRED_TOS_AGREEMENT"
44591	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
44592	//   "RESOURCE_NOT_DELETED"
44593	//   "SCHEMA_VALIDATION_IGNORED"
44594	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
44595	//   "UNDECLARED_PROPERTIES"
44596	//   "UNREACHABLE"
44597	Code string `json:"code,omitempty"`
44598
44599	// Data: [Output Only] Metadata about this warning in key: value format.
44600	// For example:
44601	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
44602	Data []*UsableSubnetworksAggregatedListWarningData `json:"data,omitempty"`
44603
44604	// Message: [Output Only] A human-readable description of the warning
44605	// code.
44606	Message string `json:"message,omitempty"`
44607
44608	// ForceSendFields is a list of field names (e.g. "Code") to
44609	// unconditionally include in API requests. By default, fields with
44610	// empty values are omitted from API requests. However, any non-pointer,
44611	// non-interface field appearing in ForceSendFields will be sent to the
44612	// server regardless of whether the field is empty or not. This may be
44613	// used to include empty fields in Patch requests.
44614	ForceSendFields []string `json:"-"`
44615
44616	// NullFields is a list of field names (e.g. "Code") to include in API
44617	// requests with the JSON null value. By default, fields with empty
44618	// values are omitted from API requests. However, any field with an
44619	// empty value appearing in NullFields will be sent to the server as
44620	// null. It is an error if a field in this list has a non-empty value.
44621	// This may be used to include null fields in Patch requests.
44622	NullFields []string `json:"-"`
44623}
44624
44625func (s *UsableSubnetworksAggregatedListWarning) MarshalJSON() ([]byte, error) {
44626	type NoMethod UsableSubnetworksAggregatedListWarning
44627	raw := NoMethod(*s)
44628	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44629}
44630
44631type UsableSubnetworksAggregatedListWarningData struct {
44632	// Key: [Output Only] A key that provides more detail on the warning
44633	// being returned. For example, for warnings where there are no results
44634	// in a list request for a particular zone, this key might be scope and
44635	// the key value might be the zone name. Other examples might be a key
44636	// indicating a deprecated resource and a suggested replacement, or a
44637	// warning about invalid network settings (for example, if an instance
44638	// attempts to perform IP forwarding but is not enabled for IP
44639	// forwarding).
44640	Key string `json:"key,omitempty"`
44641
44642	// Value: [Output Only] A warning data value corresponding to the key.
44643	Value string `json:"value,omitempty"`
44644
44645	// ForceSendFields is a list of field names (e.g. "Key") to
44646	// unconditionally include in API requests. By default, fields with
44647	// empty values are omitted from API requests. However, any non-pointer,
44648	// non-interface field appearing in ForceSendFields will be sent to the
44649	// server regardless of whether the field is empty or not. This may be
44650	// used to include empty fields in Patch requests.
44651	ForceSendFields []string `json:"-"`
44652
44653	// NullFields is a list of field names (e.g. "Key") to include in API
44654	// requests with the JSON null value. By default, fields with empty
44655	// values are omitted from API requests. However, any field with an
44656	// empty value appearing in NullFields will be sent to the server as
44657	// null. It is an error if a field in this list has a non-empty value.
44658	// This may be used to include null fields in Patch requests.
44659	NullFields []string `json:"-"`
44660}
44661
44662func (s *UsableSubnetworksAggregatedListWarningData) MarshalJSON() ([]byte, error) {
44663	type NoMethod UsableSubnetworksAggregatedListWarningData
44664	raw := NoMethod(*s)
44665	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44666}
44667
44668// UsageExportLocation: The location in Cloud Storage and naming method
44669// of the daily usage report. Contains bucket_name and report_name
44670// prefix.
44671type UsageExportLocation struct {
44672	// BucketName: The name of an existing bucket in Cloud Storage where the
44673	// usage report object is stored. The Google Service Account is granted
44674	// write access to this bucket. This can either be the bucket name by
44675	// itself, such as example-bucket, or the bucket name with gs:// or
44676	// https://storage.googleapis.com/ in front of it, such as
44677	// gs://example-bucket.
44678	BucketName string `json:"bucketName,omitempty"`
44679
44680	// ReportNamePrefix: An optional prefix for the name of the usage report
44681	// object stored in bucketName. If not supplied, defaults to usage. The
44682	// report is stored as a CSV file named
44683	// report_name_prefix_gce_YYYYMMDD.csv where YYYYMMDD is the day of the
44684	// usage according to Pacific Time. If you supply a prefix, it should
44685	// conform to Cloud Storage object naming conventions.
44686	ReportNamePrefix string `json:"reportNamePrefix,omitempty"`
44687
44688	// ForceSendFields is a list of field names (e.g. "BucketName") to
44689	// unconditionally include in API requests. By default, fields with
44690	// empty values are omitted from API requests. However, any non-pointer,
44691	// non-interface field appearing in ForceSendFields will be sent to the
44692	// server regardless of whether the field is empty or not. This may be
44693	// used to include empty fields in Patch requests.
44694	ForceSendFields []string `json:"-"`
44695
44696	// NullFields is a list of field names (e.g. "BucketName") to include in
44697	// API requests with the JSON null value. By default, fields with empty
44698	// values are omitted from API requests. However, any field with an
44699	// empty value appearing in NullFields will be sent to the server as
44700	// null. It is an error if a field in this list has a non-empty value.
44701	// This may be used to include null fields in Patch requests.
44702	NullFields []string `json:"-"`
44703}
44704
44705func (s *UsageExportLocation) MarshalJSON() ([]byte, error) {
44706	type NoMethod UsageExportLocation
44707	raw := NoMethod(*s)
44708	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44709}
44710
44711// VmEndpointNatMappings: Contain information of Nat mapping for a VM
44712// endpoint (i.e., NIC).
44713type VmEndpointNatMappings struct {
44714	// InstanceName: Name of the VM instance which the endpoint belongs to
44715	InstanceName string `json:"instanceName,omitempty"`
44716
44717	InterfaceNatMappings []*VmEndpointNatMappingsInterfaceNatMappings `json:"interfaceNatMappings,omitempty"`
44718
44719	// ForceSendFields is a list of field names (e.g. "InstanceName") to
44720	// unconditionally include in API requests. By default, fields with
44721	// empty values are omitted from API requests. However, any non-pointer,
44722	// non-interface field appearing in ForceSendFields will be sent to the
44723	// server regardless of whether the field is empty or not. This may be
44724	// used to include empty fields in Patch requests.
44725	ForceSendFields []string `json:"-"`
44726
44727	// NullFields is a list of field names (e.g. "InstanceName") to include
44728	// in API requests with the JSON null value. By default, fields with
44729	// empty values are omitted from API requests. However, any field with
44730	// an empty value appearing in NullFields will be sent to the server as
44731	// null. It is an error if a field in this list has a non-empty value.
44732	// This may be used to include null fields in Patch requests.
44733	NullFields []string `json:"-"`
44734}
44735
44736func (s *VmEndpointNatMappings) MarshalJSON() ([]byte, error) {
44737	type NoMethod VmEndpointNatMappings
44738	raw := NoMethod(*s)
44739	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44740}
44741
44742// VmEndpointNatMappingsInterfaceNatMappings: Contain information of Nat
44743// mapping for an interface of this endpoint.
44744type VmEndpointNatMappingsInterfaceNatMappings struct {
44745	// DrainNatIpPortRanges: List of all drain IP:port-range mappings
44746	// assigned to this interface. These ranges are inclusive, that is, both
44747	// the first and the last ports can be used for NAT. Example:
44748	// ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"].
44749	DrainNatIpPortRanges []string `json:"drainNatIpPortRanges,omitempty"`
44750
44751	// NatIpPortRanges: A list of all IP:port-range mappings assigned to
44752	// this interface. These ranges are inclusive, that is, both the first
44753	// and the last ports can be used for NAT. Example:
44754	// ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"].
44755	NatIpPortRanges []string `json:"natIpPortRanges,omitempty"`
44756
44757	// NumTotalDrainNatPorts: Total number of drain ports across all NAT IPs
44758	// allocated to this interface. It equals to the aggregated port number
44759	// in the field drain_nat_ip_port_ranges.
44760	NumTotalDrainNatPorts int64 `json:"numTotalDrainNatPorts,omitempty"`
44761
44762	// NumTotalNatPorts: Total number of ports across all NAT IPs allocated
44763	// to this interface. It equals to the aggregated port number in the
44764	// field nat_ip_port_ranges.
44765	NumTotalNatPorts int64 `json:"numTotalNatPorts,omitempty"`
44766
44767	// SourceAliasIpRange: Alias IP range for this interface endpoint. It
44768	// will be a private (RFC 1918) IP range. Examples: "10.33.4.55/32", or
44769	// "192.168.5.0/24".
44770	SourceAliasIpRange string `json:"sourceAliasIpRange,omitempty"`
44771
44772	// SourceVirtualIp: Primary IP of the VM for this NIC.
44773	SourceVirtualIp string `json:"sourceVirtualIp,omitempty"`
44774
44775	// ForceSendFields is a list of field names (e.g.
44776	// "DrainNatIpPortRanges") to unconditionally include in API requests.
44777	// By default, fields with empty values are omitted from API requests.
44778	// However, any non-pointer, non-interface field appearing in
44779	// ForceSendFields will be sent to the server regardless of whether the
44780	// field is empty or not. This may be used to include empty fields in
44781	// Patch requests.
44782	ForceSendFields []string `json:"-"`
44783
44784	// NullFields is a list of field names (e.g. "DrainNatIpPortRanges") to
44785	// include in API requests with the JSON null value. By default, fields
44786	// with empty values are omitted from API requests. However, any field
44787	// with an empty value appearing in NullFields will be sent to the
44788	// server as null. It is an error if a field in this list has a
44789	// non-empty value. This may be used to include null fields in Patch
44790	// requests.
44791	NullFields []string `json:"-"`
44792}
44793
44794func (s *VmEndpointNatMappingsInterfaceNatMappings) MarshalJSON() ([]byte, error) {
44795	type NoMethod VmEndpointNatMappingsInterfaceNatMappings
44796	raw := NoMethod(*s)
44797	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44798}
44799
44800// VmEndpointNatMappingsList: Contains a list of VmEndpointNatMappings.
44801type VmEndpointNatMappingsList struct {
44802	// Id: [Output Only] The unique identifier for the resource. This
44803	// identifier is defined by the server.
44804	Id string `json:"id,omitempty"`
44805
44806	// Kind: [Output Only] Type of resource. Always
44807	// compute#vmEndpointNatMappingsList for lists of Nat mappings of VM
44808	// endpoints.
44809	Kind string `json:"kind,omitempty"`
44810
44811	// NextPageToken: [Output Only] This token allows you to get the next
44812	// page of results for list requests. If the number of results is larger
44813	// than maxResults, use the nextPageToken as a value for the query
44814	// parameter pageToken in the next list request. Subsequent list
44815	// requests will have their own nextPageToken to continue paging through
44816	// the results.
44817	NextPageToken string `json:"nextPageToken,omitempty"`
44818
44819	// Result: [Output Only] A list of Nat mapping information of VM
44820	// endpoints.
44821	Result []*VmEndpointNatMappings `json:"result,omitempty"`
44822
44823	// SelfLink: [Output Only] Server-defined URL for this resource.
44824	SelfLink string `json:"selfLink,omitempty"`
44825
44826	// Warning: [Output Only] Informational warning message.
44827	Warning *VmEndpointNatMappingsListWarning `json:"warning,omitempty"`
44828
44829	// ServerResponse contains the HTTP response code and headers from the
44830	// server.
44831	googleapi.ServerResponse `json:"-"`
44832
44833	// ForceSendFields is a list of field names (e.g. "Id") to
44834	// unconditionally include in API requests. By default, fields with
44835	// empty values are omitted from API requests. However, any non-pointer,
44836	// non-interface field appearing in ForceSendFields will be sent to the
44837	// server regardless of whether the field is empty or not. This may be
44838	// used to include empty fields in Patch requests.
44839	ForceSendFields []string `json:"-"`
44840
44841	// NullFields is a list of field names (e.g. "Id") to include in API
44842	// requests with the JSON null value. By default, fields with empty
44843	// values are omitted from API requests. However, any field with an
44844	// empty value appearing in NullFields will be sent to the server as
44845	// null. It is an error if a field in this list has a non-empty value.
44846	// This may be used to include null fields in Patch requests.
44847	NullFields []string `json:"-"`
44848}
44849
44850func (s *VmEndpointNatMappingsList) MarshalJSON() ([]byte, error) {
44851	type NoMethod VmEndpointNatMappingsList
44852	raw := NoMethod(*s)
44853	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44854}
44855
44856// VmEndpointNatMappingsListWarning: [Output Only] Informational warning
44857// message.
44858type VmEndpointNatMappingsListWarning struct {
44859	// Code: [Output Only] A warning code, if applicable. For example,
44860	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
44861	// the response.
44862	//
44863	// Possible values:
44864	//   "CLEANUP_FAILED"
44865	//   "DEPRECATED_RESOURCE_USED"
44866	//   "DEPRECATED_TYPE_USED"
44867	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
44868	//   "EXPERIMENTAL_TYPE_USED"
44869	//   "EXTERNAL_API_WARNING"
44870	//   "FIELD_VALUE_OVERRIDEN"
44871	//   "INJECTED_KERNELS_DEPRECATED"
44872	//   "LARGE_DEPLOYMENT_WARNING"
44873	//   "MISSING_TYPE_DEPENDENCY"
44874	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
44875	//   "NEXT_HOP_CANNOT_IP_FORWARD"
44876	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
44877	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
44878	//   "NEXT_HOP_NOT_RUNNING"
44879	//   "NOT_CRITICAL_ERROR"
44880	//   "NO_RESULTS_ON_PAGE"
44881	//   "PARTIAL_SUCCESS"
44882	//   "REQUIRED_TOS_AGREEMENT"
44883	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
44884	//   "RESOURCE_NOT_DELETED"
44885	//   "SCHEMA_VALIDATION_IGNORED"
44886	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
44887	//   "UNDECLARED_PROPERTIES"
44888	//   "UNREACHABLE"
44889	Code string `json:"code,omitempty"`
44890
44891	// Data: [Output Only] Metadata about this warning in key: value format.
44892	// For example:
44893	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
44894	Data []*VmEndpointNatMappingsListWarningData `json:"data,omitempty"`
44895
44896	// Message: [Output Only] A human-readable description of the warning
44897	// code.
44898	Message string `json:"message,omitempty"`
44899
44900	// ForceSendFields is a list of field names (e.g. "Code") to
44901	// unconditionally include in API requests. By default, fields with
44902	// empty values are omitted from API requests. However, any non-pointer,
44903	// non-interface field appearing in ForceSendFields will be sent to the
44904	// server regardless of whether the field is empty or not. This may be
44905	// used to include empty fields in Patch requests.
44906	ForceSendFields []string `json:"-"`
44907
44908	// NullFields is a list of field names (e.g. "Code") to include in API
44909	// requests with the JSON null value. By default, fields with empty
44910	// values are omitted from API requests. However, any field with an
44911	// empty value appearing in NullFields will be sent to the server as
44912	// null. It is an error if a field in this list has a non-empty value.
44913	// This may be used to include null fields in Patch requests.
44914	NullFields []string `json:"-"`
44915}
44916
44917func (s *VmEndpointNatMappingsListWarning) MarshalJSON() ([]byte, error) {
44918	type NoMethod VmEndpointNatMappingsListWarning
44919	raw := NoMethod(*s)
44920	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44921}
44922
44923type VmEndpointNatMappingsListWarningData struct {
44924	// Key: [Output Only] A key that provides more detail on the warning
44925	// being returned. For example, for warnings where there are no results
44926	// in a list request for a particular zone, this key might be scope and
44927	// the key value might be the zone name. Other examples might be a key
44928	// indicating a deprecated resource and a suggested replacement, or a
44929	// warning about invalid network settings (for example, if an instance
44930	// attempts to perform IP forwarding but is not enabled for IP
44931	// forwarding).
44932	Key string `json:"key,omitempty"`
44933
44934	// Value: [Output Only] A warning data value corresponding to the key.
44935	Value string `json:"value,omitempty"`
44936
44937	// ForceSendFields is a list of field names (e.g. "Key") to
44938	// unconditionally include in API requests. By default, fields with
44939	// empty values are omitted from API requests. However, any non-pointer,
44940	// non-interface field appearing in ForceSendFields will be sent to the
44941	// server regardless of whether the field is empty or not. This may be
44942	// used to include empty fields in Patch requests.
44943	ForceSendFields []string `json:"-"`
44944
44945	// NullFields is a list of field names (e.g. "Key") to include in API
44946	// requests with the JSON null value. By default, fields with empty
44947	// values are omitted from API requests. However, any field with an
44948	// empty value appearing in NullFields will be sent to the server as
44949	// null. It is an error if a field in this list has a non-empty value.
44950	// This may be used to include null fields in Patch requests.
44951	NullFields []string `json:"-"`
44952}
44953
44954func (s *VmEndpointNatMappingsListWarningData) MarshalJSON() ([]byte, error) {
44955	type NoMethod VmEndpointNatMappingsListWarningData
44956	raw := NoMethod(*s)
44957	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
44958}
44959
44960// VpnGateway: Represents a HA VPN gateway.
44961//
44962// HA VPN is a high-availability (HA) Cloud VPN solution that lets you
44963// securely connect your on-premises network to your Google Cloud
44964// Virtual Private Cloud network through an IPsec VPN connection in a
44965// single region. For more information about Cloud HA VPN solutions, see
44966//  Cloud VPN topologies . (== resource_for {$api_version}.vpnGateways
44967// ==)
44968type VpnGateway struct {
44969	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
44970	// format.
44971	CreationTimestamp string `json:"creationTimestamp,omitempty"`
44972
44973	// Description: An optional description of this resource. Provide this
44974	// property when you create the resource.
44975	Description string `json:"description,omitempty"`
44976
44977	// Id: [Output Only] The unique identifier for the resource. This
44978	// identifier is defined by the server.
44979	Id uint64 `json:"id,omitempty,string"`
44980
44981	// Kind: [Output Only] Type of resource. Always compute#vpnGateway for
44982	// VPN gateways.
44983	Kind string `json:"kind,omitempty"`
44984
44985	// LabelFingerprint: A fingerprint for the labels being applied to this
44986	// VpnGateway, which is essentially a hash of the labels set used for
44987	// optimistic locking. The fingerprint is initially generated by Compute
44988	// Engine and changes after every request to modify or update labels.
44989	// You must always provide an up-to-date fingerprint hash in order to
44990	// update or change labels, otherwise the request will fail with error
44991	// 412 conditionNotMet.
44992	//
44993	// To see the latest fingerprint, make a get() request to retrieve an
44994	// VpnGateway.
44995	LabelFingerprint string `json:"labelFingerprint,omitempty"`
44996
44997	// Labels: Labels for this resource. These can only be added or modified
44998	// by the setLabels method. Each label key/value pair must comply with
44999	// RFC1035. Label values may be empty.
45000	Labels map[string]string `json:"labels,omitempty"`
45001
45002	// Name: Name of the resource. Provided by the client when the resource
45003	// is created. The name must be 1-63 characters long, and comply with
45004	// RFC1035. Specifically, the name must be 1-63 characters long and
45005	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
45006	// the first character must be a lowercase letter, and all following
45007	// characters must be a dash, lowercase letter, or digit, except the
45008	// last character, which cannot be a dash.
45009	Name string `json:"name,omitempty"`
45010
45011	// Network: URL of the network to which this VPN gateway is attached.
45012	// Provided by the client when the VPN gateway is created.
45013	Network string `json:"network,omitempty"`
45014
45015	// Region: [Output Only] URL of the region where the VPN gateway
45016	// resides.
45017	Region string `json:"region,omitempty"`
45018
45019	// SelfLink: [Output Only] Server-defined URL for the resource.
45020	SelfLink string `json:"selfLink,omitempty"`
45021
45022	// VpnInterfaces: The list of VPN interfaces associated with this VPN
45023	// gateway.
45024	VpnInterfaces []*VpnGatewayVpnGatewayInterface `json:"vpnInterfaces,omitempty"`
45025
45026	// ServerResponse contains the HTTP response code and headers from the
45027	// server.
45028	googleapi.ServerResponse `json:"-"`
45029
45030	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
45031	// to unconditionally include in API requests. By default, fields with
45032	// empty values are omitted from API requests. However, any non-pointer,
45033	// non-interface field appearing in ForceSendFields will be sent to the
45034	// server regardless of whether the field is empty or not. This may be
45035	// used to include empty fields in Patch requests.
45036	ForceSendFields []string `json:"-"`
45037
45038	// NullFields is a list of field names (e.g. "CreationTimestamp") to
45039	// include in API requests with the JSON null value. By default, fields
45040	// with empty values are omitted from API requests. However, any field
45041	// with an empty value appearing in NullFields will be sent to the
45042	// server as null. It is an error if a field in this list has a
45043	// non-empty value. This may be used to include null fields in Patch
45044	// requests.
45045	NullFields []string `json:"-"`
45046}
45047
45048func (s *VpnGateway) MarshalJSON() ([]byte, error) {
45049	type NoMethod VpnGateway
45050	raw := NoMethod(*s)
45051	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45052}
45053
45054type VpnGatewayAggregatedList struct {
45055	// Id: [Output Only] Unique identifier for the resource; defined by the
45056	// server.
45057	Id string `json:"id,omitempty"`
45058
45059	// Items: A list of VpnGateway resources.
45060	Items map[string]VpnGatewaysScopedList `json:"items,omitempty"`
45061
45062	// Kind: [Output Only] Type of resource. Always compute#vpnGateway for
45063	// VPN gateways.
45064	Kind string `json:"kind,omitempty"`
45065
45066	// NextPageToken: [Output Only] This token allows you to get the next
45067	// page of results for list requests. If the number of results is larger
45068	// than maxResults, use the nextPageToken as a value for the query
45069	// parameter pageToken in the next list request. Subsequent list
45070	// requests will have their own nextPageToken to continue paging through
45071	// the results.
45072	NextPageToken string `json:"nextPageToken,omitempty"`
45073
45074	// SelfLink: [Output Only] Server-defined URL for this resource.
45075	SelfLink string `json:"selfLink,omitempty"`
45076
45077	// Unreachables: [Output Only] Unreachable resources.
45078	Unreachables []string `json:"unreachables,omitempty"`
45079
45080	// Warning: [Output Only] Informational warning message.
45081	Warning *VpnGatewayAggregatedListWarning `json:"warning,omitempty"`
45082
45083	// ServerResponse contains the HTTP response code and headers from the
45084	// server.
45085	googleapi.ServerResponse `json:"-"`
45086
45087	// ForceSendFields is a list of field names (e.g. "Id") to
45088	// unconditionally include in API requests. By default, fields with
45089	// empty values are omitted from API requests. However, any non-pointer,
45090	// non-interface field appearing in ForceSendFields will be sent to the
45091	// server regardless of whether the field is empty or not. This may be
45092	// used to include empty fields in Patch requests.
45093	ForceSendFields []string `json:"-"`
45094
45095	// NullFields is a list of field names (e.g. "Id") to include in API
45096	// requests with the JSON null value. By default, fields with empty
45097	// values are omitted from API requests. However, any field with an
45098	// empty value appearing in NullFields will be sent to the server as
45099	// null. It is an error if a field in this list has a non-empty value.
45100	// This may be used to include null fields in Patch requests.
45101	NullFields []string `json:"-"`
45102}
45103
45104func (s *VpnGatewayAggregatedList) MarshalJSON() ([]byte, error) {
45105	type NoMethod VpnGatewayAggregatedList
45106	raw := NoMethod(*s)
45107	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45108}
45109
45110// VpnGatewayAggregatedListWarning: [Output Only] Informational warning
45111// message.
45112type VpnGatewayAggregatedListWarning struct {
45113	// Code: [Output Only] A warning code, if applicable. For example,
45114	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
45115	// the response.
45116	//
45117	// Possible values:
45118	//   "CLEANUP_FAILED"
45119	//   "DEPRECATED_RESOURCE_USED"
45120	//   "DEPRECATED_TYPE_USED"
45121	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
45122	//   "EXPERIMENTAL_TYPE_USED"
45123	//   "EXTERNAL_API_WARNING"
45124	//   "FIELD_VALUE_OVERRIDEN"
45125	//   "INJECTED_KERNELS_DEPRECATED"
45126	//   "LARGE_DEPLOYMENT_WARNING"
45127	//   "MISSING_TYPE_DEPENDENCY"
45128	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
45129	//   "NEXT_HOP_CANNOT_IP_FORWARD"
45130	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
45131	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
45132	//   "NEXT_HOP_NOT_RUNNING"
45133	//   "NOT_CRITICAL_ERROR"
45134	//   "NO_RESULTS_ON_PAGE"
45135	//   "PARTIAL_SUCCESS"
45136	//   "REQUIRED_TOS_AGREEMENT"
45137	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
45138	//   "RESOURCE_NOT_DELETED"
45139	//   "SCHEMA_VALIDATION_IGNORED"
45140	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
45141	//   "UNDECLARED_PROPERTIES"
45142	//   "UNREACHABLE"
45143	Code string `json:"code,omitempty"`
45144
45145	// Data: [Output Only] Metadata about this warning in key: value format.
45146	// For example:
45147	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
45148	Data []*VpnGatewayAggregatedListWarningData `json:"data,omitempty"`
45149
45150	// Message: [Output Only] A human-readable description of the warning
45151	// code.
45152	Message string `json:"message,omitempty"`
45153
45154	// ForceSendFields is a list of field names (e.g. "Code") to
45155	// unconditionally include in API requests. By default, fields with
45156	// empty values are omitted from API requests. However, any non-pointer,
45157	// non-interface field appearing in ForceSendFields will be sent to the
45158	// server regardless of whether the field is empty or not. This may be
45159	// used to include empty fields in Patch requests.
45160	ForceSendFields []string `json:"-"`
45161
45162	// NullFields is a list of field names (e.g. "Code") to include in API
45163	// requests with the JSON null value. By default, fields with empty
45164	// values are omitted from API requests. However, any field with an
45165	// empty value appearing in NullFields will be sent to the server as
45166	// null. It is an error if a field in this list has a non-empty value.
45167	// This may be used to include null fields in Patch requests.
45168	NullFields []string `json:"-"`
45169}
45170
45171func (s *VpnGatewayAggregatedListWarning) MarshalJSON() ([]byte, error) {
45172	type NoMethod VpnGatewayAggregatedListWarning
45173	raw := NoMethod(*s)
45174	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45175}
45176
45177type VpnGatewayAggregatedListWarningData struct {
45178	// Key: [Output Only] A key that provides more detail on the warning
45179	// being returned. For example, for warnings where there are no results
45180	// in a list request for a particular zone, this key might be scope and
45181	// the key value might be the zone name. Other examples might be a key
45182	// indicating a deprecated resource and a suggested replacement, or a
45183	// warning about invalid network settings (for example, if an instance
45184	// attempts to perform IP forwarding but is not enabled for IP
45185	// forwarding).
45186	Key string `json:"key,omitempty"`
45187
45188	// Value: [Output Only] A warning data value corresponding to the key.
45189	Value string `json:"value,omitempty"`
45190
45191	// ForceSendFields is a list of field names (e.g. "Key") to
45192	// unconditionally include in API requests. By default, fields with
45193	// empty values are omitted from API requests. However, any non-pointer,
45194	// non-interface field appearing in ForceSendFields will be sent to the
45195	// server regardless of whether the field is empty or not. This may be
45196	// used to include empty fields in Patch requests.
45197	ForceSendFields []string `json:"-"`
45198
45199	// NullFields is a list of field names (e.g. "Key") to include in API
45200	// requests with the JSON null value. By default, fields with empty
45201	// values are omitted from API requests. However, any field with an
45202	// empty value appearing in NullFields will be sent to the server as
45203	// null. It is an error if a field in this list has a non-empty value.
45204	// This may be used to include null fields in Patch requests.
45205	NullFields []string `json:"-"`
45206}
45207
45208func (s *VpnGatewayAggregatedListWarningData) MarshalJSON() ([]byte, error) {
45209	type NoMethod VpnGatewayAggregatedListWarningData
45210	raw := NoMethod(*s)
45211	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45212}
45213
45214// VpnGatewayList: Contains a list of VpnGateway resources.
45215type VpnGatewayList struct {
45216	// Id: [Output Only] Unique identifier for the resource; defined by the
45217	// server.
45218	Id string `json:"id,omitempty"`
45219
45220	// Items: A list of VpnGateway resources.
45221	Items []*VpnGateway `json:"items,omitempty"`
45222
45223	// Kind: [Output Only] Type of resource. Always compute#vpnGateway for
45224	// VPN gateways.
45225	Kind string `json:"kind,omitempty"`
45226
45227	// NextPageToken: [Output Only] This token allows you to get the next
45228	// page of results for list requests. If the number of results is larger
45229	// than maxResults, use the nextPageToken as a value for the query
45230	// parameter pageToken in the next list request. Subsequent list
45231	// requests will have their own nextPageToken to continue paging through
45232	// the results.
45233	NextPageToken string `json:"nextPageToken,omitempty"`
45234
45235	// SelfLink: [Output Only] Server-defined URL for this resource.
45236	SelfLink string `json:"selfLink,omitempty"`
45237
45238	// Warning: [Output Only] Informational warning message.
45239	Warning *VpnGatewayListWarning `json:"warning,omitempty"`
45240
45241	// ServerResponse contains the HTTP response code and headers from the
45242	// server.
45243	googleapi.ServerResponse `json:"-"`
45244
45245	// ForceSendFields is a list of field names (e.g. "Id") to
45246	// unconditionally include in API requests. By default, fields with
45247	// empty values are omitted from API requests. However, any non-pointer,
45248	// non-interface field appearing in ForceSendFields will be sent to the
45249	// server regardless of whether the field is empty or not. This may be
45250	// used to include empty fields in Patch requests.
45251	ForceSendFields []string `json:"-"`
45252
45253	// NullFields is a list of field names (e.g. "Id") to include in API
45254	// requests with the JSON null value. By default, fields with empty
45255	// values are omitted from API requests. However, any field with an
45256	// empty value appearing in NullFields will be sent to the server as
45257	// null. It is an error if a field in this list has a non-empty value.
45258	// This may be used to include null fields in Patch requests.
45259	NullFields []string `json:"-"`
45260}
45261
45262func (s *VpnGatewayList) MarshalJSON() ([]byte, error) {
45263	type NoMethod VpnGatewayList
45264	raw := NoMethod(*s)
45265	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45266}
45267
45268// VpnGatewayListWarning: [Output Only] Informational warning message.
45269type VpnGatewayListWarning struct {
45270	// Code: [Output Only] A warning code, if applicable. For example,
45271	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
45272	// the response.
45273	//
45274	// Possible values:
45275	//   "CLEANUP_FAILED"
45276	//   "DEPRECATED_RESOURCE_USED"
45277	//   "DEPRECATED_TYPE_USED"
45278	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
45279	//   "EXPERIMENTAL_TYPE_USED"
45280	//   "EXTERNAL_API_WARNING"
45281	//   "FIELD_VALUE_OVERRIDEN"
45282	//   "INJECTED_KERNELS_DEPRECATED"
45283	//   "LARGE_DEPLOYMENT_WARNING"
45284	//   "MISSING_TYPE_DEPENDENCY"
45285	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
45286	//   "NEXT_HOP_CANNOT_IP_FORWARD"
45287	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
45288	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
45289	//   "NEXT_HOP_NOT_RUNNING"
45290	//   "NOT_CRITICAL_ERROR"
45291	//   "NO_RESULTS_ON_PAGE"
45292	//   "PARTIAL_SUCCESS"
45293	//   "REQUIRED_TOS_AGREEMENT"
45294	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
45295	//   "RESOURCE_NOT_DELETED"
45296	//   "SCHEMA_VALIDATION_IGNORED"
45297	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
45298	//   "UNDECLARED_PROPERTIES"
45299	//   "UNREACHABLE"
45300	Code string `json:"code,omitempty"`
45301
45302	// Data: [Output Only] Metadata about this warning in key: value format.
45303	// For example:
45304	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
45305	Data []*VpnGatewayListWarningData `json:"data,omitempty"`
45306
45307	// Message: [Output Only] A human-readable description of the warning
45308	// code.
45309	Message string `json:"message,omitempty"`
45310
45311	// ForceSendFields is a list of field names (e.g. "Code") to
45312	// unconditionally include in API requests. By default, fields with
45313	// empty values are omitted from API requests. However, any non-pointer,
45314	// non-interface field appearing in ForceSendFields will be sent to the
45315	// server regardless of whether the field is empty or not. This may be
45316	// used to include empty fields in Patch requests.
45317	ForceSendFields []string `json:"-"`
45318
45319	// NullFields is a list of field names (e.g. "Code") to include in API
45320	// requests with the JSON null value. By default, fields with empty
45321	// values are omitted from API requests. However, any field with an
45322	// empty value appearing in NullFields will be sent to the server as
45323	// null. It is an error if a field in this list has a non-empty value.
45324	// This may be used to include null fields in Patch requests.
45325	NullFields []string `json:"-"`
45326}
45327
45328func (s *VpnGatewayListWarning) MarshalJSON() ([]byte, error) {
45329	type NoMethod VpnGatewayListWarning
45330	raw := NoMethod(*s)
45331	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45332}
45333
45334type VpnGatewayListWarningData struct {
45335	// Key: [Output Only] A key that provides more detail on the warning
45336	// being returned. For example, for warnings where there are no results
45337	// in a list request for a particular zone, this key might be scope and
45338	// the key value might be the zone name. Other examples might be a key
45339	// indicating a deprecated resource and a suggested replacement, or a
45340	// warning about invalid network settings (for example, if an instance
45341	// attempts to perform IP forwarding but is not enabled for IP
45342	// forwarding).
45343	Key string `json:"key,omitempty"`
45344
45345	// Value: [Output Only] A warning data value corresponding to the key.
45346	Value string `json:"value,omitempty"`
45347
45348	// ForceSendFields is a list of field names (e.g. "Key") to
45349	// unconditionally include in API requests. By default, fields with
45350	// empty values are omitted from API requests. However, any non-pointer,
45351	// non-interface field appearing in ForceSendFields will be sent to the
45352	// server regardless of whether the field is empty or not. This may be
45353	// used to include empty fields in Patch requests.
45354	ForceSendFields []string `json:"-"`
45355
45356	// NullFields is a list of field names (e.g. "Key") to include in API
45357	// requests with the JSON null value. By default, fields with empty
45358	// values are omitted from API requests. However, any field with an
45359	// empty value appearing in NullFields will be sent to the server as
45360	// null. It is an error if a field in this list has a non-empty value.
45361	// This may be used to include null fields in Patch requests.
45362	NullFields []string `json:"-"`
45363}
45364
45365func (s *VpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
45366	type NoMethod VpnGatewayListWarningData
45367	raw := NoMethod(*s)
45368	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45369}
45370
45371type VpnGatewayStatus struct {
45372	// VpnConnections: List of VPN connection for this VpnGateway.
45373	VpnConnections []*VpnGatewayStatusVpnConnection `json:"vpnConnections,omitempty"`
45374
45375	// ForceSendFields is a list of field names (e.g. "VpnConnections") to
45376	// unconditionally include in API requests. By default, fields with
45377	// empty values are omitted from API requests. However, any non-pointer,
45378	// non-interface field appearing in ForceSendFields will be sent to the
45379	// server regardless of whether the field is empty or not. This may be
45380	// used to include empty fields in Patch requests.
45381	ForceSendFields []string `json:"-"`
45382
45383	// NullFields is a list of field names (e.g. "VpnConnections") to
45384	// include in API requests with the JSON null value. By default, fields
45385	// with empty values are omitted from API requests. However, any field
45386	// with an empty value appearing in NullFields will be sent to the
45387	// server as null. It is an error if a field in this list has a
45388	// non-empty value. This may be used to include null fields in Patch
45389	// requests.
45390	NullFields []string `json:"-"`
45391}
45392
45393func (s *VpnGatewayStatus) MarshalJSON() ([]byte, error) {
45394	type NoMethod VpnGatewayStatus
45395	raw := NoMethod(*s)
45396	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45397}
45398
45399// VpnGatewayStatusHighAvailabilityRequirementState: Describes the high
45400// availability requirement state for the VPN connection between this
45401// Cloud VPN gateway and a peer gateway.
45402type VpnGatewayStatusHighAvailabilityRequirementState struct {
45403	// State: Indicates the high availability requirement state for the VPN
45404	// connection. Valid values are CONNECTION_REDUNDANCY_MET,
45405	// CONNECTION_REDUNDANCY_NOT_MET.
45406	//
45407	// Possible values:
45408	//   "CONNECTION_REDUNDANCY_MET"
45409	//   "CONNECTION_REDUNDANCY_NOT_MET"
45410	State string `json:"state,omitempty"`
45411
45412	// UnsatisfiedReason: Indicates the reason why the VPN connection does
45413	// not meet the high availability redundancy criteria/requirement. Valid
45414	// values is INCOMPLETE_TUNNELS_COVERAGE.
45415	//
45416	// Possible values:
45417	//   "INCOMPLETE_TUNNELS_COVERAGE"
45418	UnsatisfiedReason string `json:"unsatisfiedReason,omitempty"`
45419
45420	// ForceSendFields is a list of field names (e.g. "State") to
45421	// unconditionally include in API requests. By default, fields with
45422	// empty values are omitted from API requests. However, any non-pointer,
45423	// non-interface field appearing in ForceSendFields will be sent to the
45424	// server regardless of whether the field is empty or not. This may be
45425	// used to include empty fields in Patch requests.
45426	ForceSendFields []string `json:"-"`
45427
45428	// NullFields is a list of field names (e.g. "State") to include in API
45429	// requests with the JSON null value. By default, fields with empty
45430	// values are omitted from API requests. However, any field with an
45431	// empty value appearing in NullFields will be sent to the server as
45432	// null. It is an error if a field in this list has a non-empty value.
45433	// This may be used to include null fields in Patch requests.
45434	NullFields []string `json:"-"`
45435}
45436
45437func (s *VpnGatewayStatusHighAvailabilityRequirementState) MarshalJSON() ([]byte, error) {
45438	type NoMethod VpnGatewayStatusHighAvailabilityRequirementState
45439	raw := NoMethod(*s)
45440	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45441}
45442
45443// VpnGatewayStatusTunnel: Contains some information about a VPN tunnel.
45444type VpnGatewayStatusTunnel struct {
45445	// LocalGatewayInterface: The VPN gateway interface this VPN tunnel is
45446	// associated with.
45447	LocalGatewayInterface int64 `json:"localGatewayInterface,omitempty"`
45448
45449	// PeerGatewayInterface: The peer gateway interface this VPN tunnel is
45450	// connected to, the peer gateway could either be an external VPN
45451	// gateway or GCP VPN gateway.
45452	PeerGatewayInterface int64 `json:"peerGatewayInterface,omitempty"`
45453
45454	// TunnelUrl: URL reference to the VPN tunnel.
45455	TunnelUrl string `json:"tunnelUrl,omitempty"`
45456
45457	// ForceSendFields is a list of field names (e.g.
45458	// "LocalGatewayInterface") to unconditionally include in API requests.
45459	// By default, fields with empty values are omitted from API requests.
45460	// However, any non-pointer, non-interface field appearing in
45461	// ForceSendFields will be sent to the server regardless of whether the
45462	// field is empty or not. This may be used to include empty fields in
45463	// Patch requests.
45464	ForceSendFields []string `json:"-"`
45465
45466	// NullFields is a list of field names (e.g. "LocalGatewayInterface") to
45467	// include in API requests with the JSON null value. By default, fields
45468	// with empty values are omitted from API requests. However, any field
45469	// with an empty value appearing in NullFields will be sent to the
45470	// server as null. It is an error if a field in this list has a
45471	// non-empty value. This may be used to include null fields in Patch
45472	// requests.
45473	NullFields []string `json:"-"`
45474}
45475
45476func (s *VpnGatewayStatusTunnel) MarshalJSON() ([]byte, error) {
45477	type NoMethod VpnGatewayStatusTunnel
45478	raw := NoMethod(*s)
45479	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45480}
45481
45482// VpnGatewayStatusVpnConnection: A VPN connection contains all VPN
45483// tunnels connected from this VpnGateway to the same peer gateway. The
45484// peer gateway could either be a external VPN gateway or GCP VPN
45485// gateway.
45486type VpnGatewayStatusVpnConnection struct {
45487	// PeerExternalGateway: URL reference to the peer external VPN gateways
45488	// to which the VPN tunnels in this VPN connection are connected. This
45489	// field is mutually exclusive with peer_gcp_gateway.
45490	PeerExternalGateway string `json:"peerExternalGateway,omitempty"`
45491
45492	// PeerGcpGateway: URL reference to the peer side VPN gateways to which
45493	// the VPN tunnels in this VPN connection are connected. This field is
45494	// mutually exclusive with peer_gcp_gateway.
45495	PeerGcpGateway string `json:"peerGcpGateway,omitempty"`
45496
45497	// State: HighAvailabilityRequirementState for the VPN connection.
45498	State *VpnGatewayStatusHighAvailabilityRequirementState `json:"state,omitempty"`
45499
45500	// Tunnels: List of VPN tunnels that are in this VPN connection.
45501	Tunnels []*VpnGatewayStatusTunnel `json:"tunnels,omitempty"`
45502
45503	// ForceSendFields is a list of field names (e.g. "PeerExternalGateway")
45504	// to unconditionally include in API requests. By default, fields with
45505	// empty values are omitted from API requests. However, any non-pointer,
45506	// non-interface field appearing in ForceSendFields will be sent to the
45507	// server regardless of whether the field is empty or not. This may be
45508	// used to include empty fields in Patch requests.
45509	ForceSendFields []string `json:"-"`
45510
45511	// NullFields is a list of field names (e.g. "PeerExternalGateway") to
45512	// include in API requests with the JSON null value. By default, fields
45513	// with empty values are omitted from API requests. However, any field
45514	// with an empty value appearing in NullFields will be sent to the
45515	// server as null. It is an error if a field in this list has a
45516	// non-empty value. This may be used to include null fields in Patch
45517	// requests.
45518	NullFields []string `json:"-"`
45519}
45520
45521func (s *VpnGatewayStatusVpnConnection) MarshalJSON() ([]byte, error) {
45522	type NoMethod VpnGatewayStatusVpnConnection
45523	raw := NoMethod(*s)
45524	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45525}
45526
45527// VpnGatewayVpnGatewayInterface: A VPN gateway interface.
45528type VpnGatewayVpnGatewayInterface struct {
45529	// Id: [Output Only] Numeric identifier for this VPN interface
45530	// associated with the VPN gateway.
45531	Id int64 `json:"id,omitempty"`
45532
45533	// InterconnectAttachment: URL of the VLAN attachment
45534	// (interconnectAttachment) resource for this VPN gateway interface.
45535	// When the value of this field is present, the VPN gateway is used for
45536	// IPsec-encrypted Cloud Interconnect; all egress or ingress traffic for
45537	// this VPN gateway interface goes through the specified VLAN attachment
45538	// resource.
45539	// Not currently available publicly.
45540	InterconnectAttachment string `json:"interconnectAttachment,omitempty"`
45541
45542	// IpAddress: [Output Only] IP address for this VPN interface associated
45543	// with the VPN gateway. The IP address could be either a regional
45544	// external IP address or a regional internal IP address. The two IP
45545	// addresses for a VPN gateway must be all regional external or regional
45546	// internal IP addresses. There cannot be a mix of regional external IP
45547	// addresses and regional internal IP addresses. For IPsec-encrypted
45548	// Cloud Interconnect, the IP addresses for both interfaces could either
45549	// be regional internal IP addresses or regional external IP addresses.
45550	// For regular (non IPsec-encrypted Cloud Interconnect) HA VPN tunnels,
45551	// the IP address must be a regional external IP address.
45552	IpAddress string `json:"ipAddress,omitempty"`
45553
45554	// ForceSendFields is a list of field names (e.g. "Id") to
45555	// unconditionally include in API requests. By default, fields with
45556	// empty values are omitted from API requests. However, any non-pointer,
45557	// non-interface field appearing in ForceSendFields will be sent to the
45558	// server regardless of whether the field is empty or not. This may be
45559	// used to include empty fields in Patch requests.
45560	ForceSendFields []string `json:"-"`
45561
45562	// NullFields is a list of field names (e.g. "Id") to include in API
45563	// requests with the JSON null value. By default, fields with empty
45564	// values are omitted from API requests. However, any field with an
45565	// empty value appearing in NullFields will be sent to the server as
45566	// null. It is an error if a field in this list has a non-empty value.
45567	// This may be used to include null fields in Patch requests.
45568	NullFields []string `json:"-"`
45569}
45570
45571func (s *VpnGatewayVpnGatewayInterface) MarshalJSON() ([]byte, error) {
45572	type NoMethod VpnGatewayVpnGatewayInterface
45573	raw := NoMethod(*s)
45574	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45575}
45576
45577type VpnGatewaysGetStatusResponse struct {
45578	Result *VpnGatewayStatus `json:"result,omitempty"`
45579
45580	// ServerResponse contains the HTTP response code and headers from the
45581	// server.
45582	googleapi.ServerResponse `json:"-"`
45583
45584	// ForceSendFields is a list of field names (e.g. "Result") to
45585	// unconditionally include in API requests. By default, fields with
45586	// empty values are omitted from API requests. However, any non-pointer,
45587	// non-interface field appearing in ForceSendFields will be sent to the
45588	// server regardless of whether the field is empty or not. This may be
45589	// used to include empty fields in Patch requests.
45590	ForceSendFields []string `json:"-"`
45591
45592	// NullFields is a list of field names (e.g. "Result") to include in API
45593	// requests with the JSON null value. By default, fields with empty
45594	// values are omitted from API requests. However, any field with an
45595	// empty value appearing in NullFields will be sent to the server as
45596	// null. It is an error if a field in this list has a non-empty value.
45597	// This may be used to include null fields in Patch requests.
45598	NullFields []string `json:"-"`
45599}
45600
45601func (s *VpnGatewaysGetStatusResponse) MarshalJSON() ([]byte, error) {
45602	type NoMethod VpnGatewaysGetStatusResponse
45603	raw := NoMethod(*s)
45604	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45605}
45606
45607type VpnGatewaysScopedList struct {
45608	// VpnGateways: [Output Only] A list of VPN gateways contained in this
45609	// scope.
45610	VpnGateways []*VpnGateway `json:"vpnGateways,omitempty"`
45611
45612	// Warning: [Output Only] Informational warning which replaces the list
45613	// of addresses when the list is empty.
45614	Warning *VpnGatewaysScopedListWarning `json:"warning,omitempty"`
45615
45616	// ForceSendFields is a list of field names (e.g. "VpnGateways") to
45617	// unconditionally include in API requests. By default, fields with
45618	// empty values are omitted from API requests. However, any non-pointer,
45619	// non-interface field appearing in ForceSendFields will be sent to the
45620	// server regardless of whether the field is empty or not. This may be
45621	// used to include empty fields in Patch requests.
45622	ForceSendFields []string `json:"-"`
45623
45624	// NullFields is a list of field names (e.g. "VpnGateways") to include
45625	// in API requests with the JSON null value. By default, fields with
45626	// empty values are omitted from API requests. However, any field with
45627	// an empty value appearing in NullFields will be sent to the server as
45628	// null. It is an error if a field in this list has a non-empty value.
45629	// This may be used to include null fields in Patch requests.
45630	NullFields []string `json:"-"`
45631}
45632
45633func (s *VpnGatewaysScopedList) MarshalJSON() ([]byte, error) {
45634	type NoMethod VpnGatewaysScopedList
45635	raw := NoMethod(*s)
45636	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45637}
45638
45639// VpnGatewaysScopedListWarning: [Output Only] Informational warning
45640// which replaces the list of addresses when the list is empty.
45641type VpnGatewaysScopedListWarning struct {
45642	// Code: [Output Only] A warning code, if applicable. For example,
45643	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
45644	// the response.
45645	//
45646	// Possible values:
45647	//   "CLEANUP_FAILED"
45648	//   "DEPRECATED_RESOURCE_USED"
45649	//   "DEPRECATED_TYPE_USED"
45650	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
45651	//   "EXPERIMENTAL_TYPE_USED"
45652	//   "EXTERNAL_API_WARNING"
45653	//   "FIELD_VALUE_OVERRIDEN"
45654	//   "INJECTED_KERNELS_DEPRECATED"
45655	//   "LARGE_DEPLOYMENT_WARNING"
45656	//   "MISSING_TYPE_DEPENDENCY"
45657	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
45658	//   "NEXT_HOP_CANNOT_IP_FORWARD"
45659	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
45660	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
45661	//   "NEXT_HOP_NOT_RUNNING"
45662	//   "NOT_CRITICAL_ERROR"
45663	//   "NO_RESULTS_ON_PAGE"
45664	//   "PARTIAL_SUCCESS"
45665	//   "REQUIRED_TOS_AGREEMENT"
45666	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
45667	//   "RESOURCE_NOT_DELETED"
45668	//   "SCHEMA_VALIDATION_IGNORED"
45669	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
45670	//   "UNDECLARED_PROPERTIES"
45671	//   "UNREACHABLE"
45672	Code string `json:"code,omitempty"`
45673
45674	// Data: [Output Only] Metadata about this warning in key: value format.
45675	// For example:
45676	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
45677	Data []*VpnGatewaysScopedListWarningData `json:"data,omitempty"`
45678
45679	// Message: [Output Only] A human-readable description of the warning
45680	// code.
45681	Message string `json:"message,omitempty"`
45682
45683	// ForceSendFields is a list of field names (e.g. "Code") to
45684	// unconditionally include in API requests. By default, fields with
45685	// empty values are omitted from API requests. However, any non-pointer,
45686	// non-interface field appearing in ForceSendFields will be sent to the
45687	// server regardless of whether the field is empty or not. This may be
45688	// used to include empty fields in Patch requests.
45689	ForceSendFields []string `json:"-"`
45690
45691	// NullFields is a list of field names (e.g. "Code") to include in API
45692	// requests with the JSON null value. By default, fields with empty
45693	// values are omitted from API requests. However, any field with an
45694	// empty value appearing in NullFields will be sent to the server as
45695	// null. It is an error if a field in this list has a non-empty value.
45696	// This may be used to include null fields in Patch requests.
45697	NullFields []string `json:"-"`
45698}
45699
45700func (s *VpnGatewaysScopedListWarning) MarshalJSON() ([]byte, error) {
45701	type NoMethod VpnGatewaysScopedListWarning
45702	raw := NoMethod(*s)
45703	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45704}
45705
45706type VpnGatewaysScopedListWarningData struct {
45707	// Key: [Output Only] A key that provides more detail on the warning
45708	// being returned. For example, for warnings where there are no results
45709	// in a list request for a particular zone, this key might be scope and
45710	// the key value might be the zone name. Other examples might be a key
45711	// indicating a deprecated resource and a suggested replacement, or a
45712	// warning about invalid network settings (for example, if an instance
45713	// attempts to perform IP forwarding but is not enabled for IP
45714	// forwarding).
45715	Key string `json:"key,omitempty"`
45716
45717	// Value: [Output Only] A warning data value corresponding to the key.
45718	Value string `json:"value,omitempty"`
45719
45720	// ForceSendFields is a list of field names (e.g. "Key") to
45721	// unconditionally include in API requests. By default, fields with
45722	// empty values are omitted from API requests. However, any non-pointer,
45723	// non-interface field appearing in ForceSendFields will be sent to the
45724	// server regardless of whether the field is empty or not. This may be
45725	// used to include empty fields in Patch requests.
45726	ForceSendFields []string `json:"-"`
45727
45728	// NullFields is a list of field names (e.g. "Key") to include in API
45729	// requests with the JSON null value. By default, fields with empty
45730	// values are omitted from API requests. However, any field with an
45731	// empty value appearing in NullFields will be sent to the server as
45732	// null. It is an error if a field in this list has a non-empty value.
45733	// This may be used to include null fields in Patch requests.
45734	NullFields []string `json:"-"`
45735}
45736
45737func (s *VpnGatewaysScopedListWarningData) MarshalJSON() ([]byte, error) {
45738	type NoMethod VpnGatewaysScopedListWarningData
45739	raw := NoMethod(*s)
45740	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45741}
45742
45743// VpnTunnel: Represents a Cloud VPN Tunnel resource.
45744//
45745// For more information about VPN, read the  the Cloud VPN Overview. (==
45746// resource_for {$api_version}.vpnTunnels ==)
45747type VpnTunnel struct {
45748	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
45749	// format.
45750	CreationTimestamp string `json:"creationTimestamp,omitempty"`
45751
45752	// Description: An optional description of this resource. Provide this
45753	// property when you create the resource.
45754	Description string `json:"description,omitempty"`
45755
45756	// DetailedStatus: [Output Only] Detailed status message for the VPN
45757	// tunnel.
45758	DetailedStatus string `json:"detailedStatus,omitempty"`
45759
45760	// Id: [Output Only] The unique identifier for the resource. This
45761	// identifier is defined by the server.
45762	Id uint64 `json:"id,omitempty,string"`
45763
45764	// IkeVersion: IKE protocol version to use when establishing the VPN
45765	// tunnel with the peer VPN gateway. Acceptable IKE versions are 1 or 2.
45766	// The default version is 2.
45767	IkeVersion int64 `json:"ikeVersion,omitempty"`
45768
45769	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
45770	// VPN tunnels.
45771	Kind string `json:"kind,omitempty"`
45772
45773	// LocalTrafficSelector: Local traffic selector to use when establishing
45774	// the VPN tunnel with the peer VPN gateway. The value should be a CIDR
45775	// formatted string, for example: 192.168.0.0/16. The ranges must be
45776	// disjoint. Only IPv4 is supported.
45777	LocalTrafficSelector []string `json:"localTrafficSelector,omitempty"`
45778
45779	// Name: Name of the resource. Provided by the client when the resource
45780	// is created. The name must be 1-63 characters long, and comply with
45781	// RFC1035. Specifically, the name must be 1-63 characters long and
45782	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
45783	// the first character must be a lowercase letter, and all following
45784	// characters must be a dash, lowercase letter, or digit, except the
45785	// last character, which cannot be a dash.
45786	Name string `json:"name,omitempty"`
45787
45788	// PeerExternalGateway: URL of the peer side external VPN gateway to
45789	// which this VPN tunnel is connected. Provided by the client when the
45790	// VPN tunnel is created. This field is exclusive with the field
45791	// peerGcpGateway.
45792	PeerExternalGateway string `json:"peerExternalGateway,omitempty"`
45793
45794	// PeerExternalGatewayInterface: The interface ID of the external VPN
45795	// gateway to which this VPN tunnel is connected. Provided by the client
45796	// when the VPN tunnel is created.
45797	PeerExternalGatewayInterface int64 `json:"peerExternalGatewayInterface,omitempty"`
45798
45799	// PeerGcpGateway: URL of the peer side HA GCP VPN gateway to which this
45800	// VPN tunnel is connected. Provided by the client when the VPN tunnel
45801	// is created. This field can be used when creating highly available VPN
45802	// from VPC network to VPC network, the field is exclusive with the
45803	// field peerExternalGateway. If provided, the VPN tunnel will
45804	// automatically use the same vpnGatewayInterface ID in the peer GCP VPN
45805	// gateway.
45806	PeerGcpGateway string `json:"peerGcpGateway,omitempty"`
45807
45808	// PeerIp: IP address of the peer VPN gateway. Only IPv4 is supported.
45809	PeerIp string `json:"peerIp,omitempty"`
45810
45811	// Region: [Output Only] URL of the region where the VPN tunnel resides.
45812	// You must specify this field as part of the HTTP request URL. It is
45813	// not settable as a field in the request body.
45814	Region string `json:"region,omitempty"`
45815
45816	// RemoteTrafficSelector: Remote traffic selectors to use when
45817	// establishing the VPN tunnel with the peer VPN gateway. The value
45818	// should be a CIDR formatted string, for example: 192.168.0.0/16. The
45819	// ranges should be disjoint. Only IPv4 is supported.
45820	RemoteTrafficSelector []string `json:"remoteTrafficSelector,omitempty"`
45821
45822	// Router: URL of the router resource to be used for dynamic routing.
45823	Router string `json:"router,omitempty"`
45824
45825	// SelfLink: [Output Only] Server-defined URL for the resource.
45826	SelfLink string `json:"selfLink,omitempty"`
45827
45828	// SharedSecret: Shared secret used to set the secure session between
45829	// the Cloud VPN gateway and the peer VPN gateway.
45830	SharedSecret string `json:"sharedSecret,omitempty"`
45831
45832	// SharedSecretHash: Hash of the shared secret.
45833	SharedSecretHash string `json:"sharedSecretHash,omitempty"`
45834
45835	// Status: [Output Only] The status of the VPN tunnel, which can be one
45836	// of the following:
45837	// - PROVISIONING: Resource is being allocated for the VPN tunnel.
45838	// - WAITING_FOR_FULL_CONFIG: Waiting to receive all VPN-related configs
45839	// from the user. Network, TargetVpnGateway, VpnTunnel, ForwardingRule,
45840	// and Route resources are needed to setup the VPN tunnel.
45841	// - FIRST_HANDSHAKE: Successful first handshake with the peer VPN.
45842	// - ESTABLISHED: Secure session is successfully established with the
45843	// peer VPN.
45844	// - NETWORK_ERROR: Deprecated, replaced by NO_INCOMING_PACKETS
45845	// - AUTHORIZATION_ERROR: Auth error (for example, bad shared secret).
45846	//
45847	// - NEGOTIATION_FAILURE: Handshake failed.
45848	// - DEPROVISIONING: Resources are being deallocated for the VPN tunnel.
45849	//
45850	// - FAILED: Tunnel creation has failed and the tunnel is not ready to
45851	// be used.
45852	// - NO_INCOMING_PACKETS: No incoming packets from peer.
45853	// - REJECTED: Tunnel configuration was rejected, can be result of being
45854	// denied access.
45855	// - ALLOCATING_RESOURCES: Cloud VPN is in the process of allocating all
45856	// required resources.
45857	// - STOPPED: Tunnel is stopped due to its Forwarding Rules being
45858	// deleted for Classic VPN tunnels or the project is in frozen state.
45859	// - PEER_IDENTITY_MISMATCH: Peer identity does not match peer IP,
45860	// probably behind NAT.
45861	// - TS_NARROWING_NOT_ALLOWED: Traffic selector narrowing not allowed
45862	// for an HA-VPN tunnel.
45863	//
45864	// Possible values:
45865	//   "ALLOCATING_RESOURCES"
45866	//   "AUTHORIZATION_ERROR"
45867	//   "DEPROVISIONING"
45868	//   "ESTABLISHED"
45869	//   "FAILED"
45870	//   "FIRST_HANDSHAKE"
45871	//   "NEGOTIATION_FAILURE"
45872	//   "NETWORK_ERROR"
45873	//   "NO_INCOMING_PACKETS"
45874	//   "PROVISIONING"
45875	//   "REJECTED"
45876	//   "STOPPED"
45877	//   "WAITING_FOR_FULL_CONFIG"
45878	Status string `json:"status,omitempty"`
45879
45880	// TargetVpnGateway: URL of the Target VPN gateway with which this VPN
45881	// tunnel is associated. Provided by the client when the VPN tunnel is
45882	// created.
45883	TargetVpnGateway string `json:"targetVpnGateway,omitempty"`
45884
45885	// VpnGateway: URL of the VPN gateway with which this VPN tunnel is
45886	// associated. Provided by the client when the VPN tunnel is created.
45887	// This must be used (instead of target_vpn_gateway) if a High
45888	// Availability VPN gateway resource is created.
45889	VpnGateway string `json:"vpnGateway,omitempty"`
45890
45891	// VpnGatewayInterface: The interface ID of the VPN gateway with which
45892	// this VPN tunnel is associated.
45893	VpnGatewayInterface int64 `json:"vpnGatewayInterface,omitempty"`
45894
45895	// ServerResponse contains the HTTP response code and headers from the
45896	// server.
45897	googleapi.ServerResponse `json:"-"`
45898
45899	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
45900	// to unconditionally include in API requests. By default, fields with
45901	// empty values are omitted from API requests. However, any non-pointer,
45902	// non-interface field appearing in ForceSendFields will be sent to the
45903	// server regardless of whether the field is empty or not. This may be
45904	// used to include empty fields in Patch requests.
45905	ForceSendFields []string `json:"-"`
45906
45907	// NullFields is a list of field names (e.g. "CreationTimestamp") to
45908	// include in API requests with the JSON null value. By default, fields
45909	// with empty values are omitted from API requests. However, any field
45910	// with an empty value appearing in NullFields will be sent to the
45911	// server as null. It is an error if a field in this list has a
45912	// non-empty value. This may be used to include null fields in Patch
45913	// requests.
45914	NullFields []string `json:"-"`
45915}
45916
45917func (s *VpnTunnel) MarshalJSON() ([]byte, error) {
45918	type NoMethod VpnTunnel
45919	raw := NoMethod(*s)
45920	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45921}
45922
45923type VpnTunnelAggregatedList struct {
45924	// Id: [Output Only] Unique identifier for the resource; defined by the
45925	// server.
45926	Id string `json:"id,omitempty"`
45927
45928	// Items: A list of VpnTunnelsScopedList resources.
45929	Items map[string]VpnTunnelsScopedList `json:"items,omitempty"`
45930
45931	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
45932	// VPN tunnels.
45933	Kind string `json:"kind,omitempty"`
45934
45935	// NextPageToken: [Output Only] This token allows you to get the next
45936	// page of results for list requests. If the number of results is larger
45937	// than maxResults, use the nextPageToken as a value for the query
45938	// parameter pageToken in the next list request. Subsequent list
45939	// requests will have their own nextPageToken to continue paging through
45940	// the results.
45941	NextPageToken string `json:"nextPageToken,omitempty"`
45942
45943	// SelfLink: [Output Only] Server-defined URL for this resource.
45944	SelfLink string `json:"selfLink,omitempty"`
45945
45946	// Unreachables: [Output Only] Unreachable resources.
45947	Unreachables []string `json:"unreachables,omitempty"`
45948
45949	// Warning: [Output Only] Informational warning message.
45950	Warning *VpnTunnelAggregatedListWarning `json:"warning,omitempty"`
45951
45952	// ServerResponse contains the HTTP response code and headers from the
45953	// server.
45954	googleapi.ServerResponse `json:"-"`
45955
45956	// ForceSendFields is a list of field names (e.g. "Id") to
45957	// unconditionally include in API requests. By default, fields with
45958	// empty values are omitted from API requests. However, any non-pointer,
45959	// non-interface field appearing in ForceSendFields will be sent to the
45960	// server regardless of whether the field is empty or not. This may be
45961	// used to include empty fields in Patch requests.
45962	ForceSendFields []string `json:"-"`
45963
45964	// NullFields is a list of field names (e.g. "Id") to include in API
45965	// requests with the JSON null value. By default, fields with empty
45966	// values are omitted from API requests. However, any field with an
45967	// empty value appearing in NullFields will be sent to the server as
45968	// null. It is an error if a field in this list has a non-empty value.
45969	// This may be used to include null fields in Patch requests.
45970	NullFields []string `json:"-"`
45971}
45972
45973func (s *VpnTunnelAggregatedList) MarshalJSON() ([]byte, error) {
45974	type NoMethod VpnTunnelAggregatedList
45975	raw := NoMethod(*s)
45976	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
45977}
45978
45979// VpnTunnelAggregatedListWarning: [Output Only] Informational warning
45980// message.
45981type VpnTunnelAggregatedListWarning struct {
45982	// Code: [Output Only] A warning code, if applicable. For example,
45983	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
45984	// the response.
45985	//
45986	// Possible values:
45987	//   "CLEANUP_FAILED"
45988	//   "DEPRECATED_RESOURCE_USED"
45989	//   "DEPRECATED_TYPE_USED"
45990	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
45991	//   "EXPERIMENTAL_TYPE_USED"
45992	//   "EXTERNAL_API_WARNING"
45993	//   "FIELD_VALUE_OVERRIDEN"
45994	//   "INJECTED_KERNELS_DEPRECATED"
45995	//   "LARGE_DEPLOYMENT_WARNING"
45996	//   "MISSING_TYPE_DEPENDENCY"
45997	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
45998	//   "NEXT_HOP_CANNOT_IP_FORWARD"
45999	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
46000	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
46001	//   "NEXT_HOP_NOT_RUNNING"
46002	//   "NOT_CRITICAL_ERROR"
46003	//   "NO_RESULTS_ON_PAGE"
46004	//   "PARTIAL_SUCCESS"
46005	//   "REQUIRED_TOS_AGREEMENT"
46006	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
46007	//   "RESOURCE_NOT_DELETED"
46008	//   "SCHEMA_VALIDATION_IGNORED"
46009	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
46010	//   "UNDECLARED_PROPERTIES"
46011	//   "UNREACHABLE"
46012	Code string `json:"code,omitempty"`
46013
46014	// Data: [Output Only] Metadata about this warning in key: value format.
46015	// For example:
46016	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
46017	Data []*VpnTunnelAggregatedListWarningData `json:"data,omitempty"`
46018
46019	// Message: [Output Only] A human-readable description of the warning
46020	// code.
46021	Message string `json:"message,omitempty"`
46022
46023	// ForceSendFields is a list of field names (e.g. "Code") to
46024	// unconditionally include in API requests. By default, fields with
46025	// empty values are omitted from API requests. However, any non-pointer,
46026	// non-interface field appearing in ForceSendFields will be sent to the
46027	// server regardless of whether the field is empty or not. This may be
46028	// used to include empty fields in Patch requests.
46029	ForceSendFields []string `json:"-"`
46030
46031	// NullFields is a list of field names (e.g. "Code") to include in API
46032	// requests with the JSON null value. By default, fields with empty
46033	// values are omitted from API requests. However, any field with an
46034	// empty value appearing in NullFields will be sent to the server as
46035	// null. It is an error if a field in this list has a non-empty value.
46036	// This may be used to include null fields in Patch requests.
46037	NullFields []string `json:"-"`
46038}
46039
46040func (s *VpnTunnelAggregatedListWarning) MarshalJSON() ([]byte, error) {
46041	type NoMethod VpnTunnelAggregatedListWarning
46042	raw := NoMethod(*s)
46043	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46044}
46045
46046type VpnTunnelAggregatedListWarningData struct {
46047	// Key: [Output Only] A key that provides more detail on the warning
46048	// being returned. For example, for warnings where there are no results
46049	// in a list request for a particular zone, this key might be scope and
46050	// the key value might be the zone name. Other examples might be a key
46051	// indicating a deprecated resource and a suggested replacement, or a
46052	// warning about invalid network settings (for example, if an instance
46053	// attempts to perform IP forwarding but is not enabled for IP
46054	// forwarding).
46055	Key string `json:"key,omitempty"`
46056
46057	// Value: [Output Only] A warning data value corresponding to the key.
46058	Value string `json:"value,omitempty"`
46059
46060	// ForceSendFields is a list of field names (e.g. "Key") to
46061	// unconditionally include in API requests. By default, fields with
46062	// empty values are omitted from API requests. However, any non-pointer,
46063	// non-interface field appearing in ForceSendFields will be sent to the
46064	// server regardless of whether the field is empty or not. This may be
46065	// used to include empty fields in Patch requests.
46066	ForceSendFields []string `json:"-"`
46067
46068	// NullFields is a list of field names (e.g. "Key") to include in API
46069	// requests with the JSON null value. By default, fields with empty
46070	// values are omitted from API requests. However, any field with an
46071	// empty value appearing in NullFields will be sent to the server as
46072	// null. It is an error if a field in this list has a non-empty value.
46073	// This may be used to include null fields in Patch requests.
46074	NullFields []string `json:"-"`
46075}
46076
46077func (s *VpnTunnelAggregatedListWarningData) MarshalJSON() ([]byte, error) {
46078	type NoMethod VpnTunnelAggregatedListWarningData
46079	raw := NoMethod(*s)
46080	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46081}
46082
46083// VpnTunnelList: Contains a list of VpnTunnel resources.
46084type VpnTunnelList struct {
46085	// Id: [Output Only] Unique identifier for the resource; defined by the
46086	// server.
46087	Id string `json:"id,omitempty"`
46088
46089	// Items: A list of VpnTunnel resources.
46090	Items []*VpnTunnel `json:"items,omitempty"`
46091
46092	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
46093	// VPN tunnels.
46094	Kind string `json:"kind,omitempty"`
46095
46096	// NextPageToken: [Output Only] This token allows you to get the next
46097	// page of results for list requests. If the number of results is larger
46098	// than maxResults, use the nextPageToken as a value for the query
46099	// parameter pageToken in the next list request. Subsequent list
46100	// requests will have their own nextPageToken to continue paging through
46101	// the results.
46102	NextPageToken string `json:"nextPageToken,omitempty"`
46103
46104	// SelfLink: [Output Only] Server-defined URL for this resource.
46105	SelfLink string `json:"selfLink,omitempty"`
46106
46107	// Warning: [Output Only] Informational warning message.
46108	Warning *VpnTunnelListWarning `json:"warning,omitempty"`
46109
46110	// ServerResponse contains the HTTP response code and headers from the
46111	// server.
46112	googleapi.ServerResponse `json:"-"`
46113
46114	// ForceSendFields is a list of field names (e.g. "Id") to
46115	// unconditionally include in API requests. By default, fields with
46116	// empty values are omitted from API requests. However, any non-pointer,
46117	// non-interface field appearing in ForceSendFields will be sent to the
46118	// server regardless of whether the field is empty or not. This may be
46119	// used to include empty fields in Patch requests.
46120	ForceSendFields []string `json:"-"`
46121
46122	// NullFields is a list of field names (e.g. "Id") to include in API
46123	// requests with the JSON null value. By default, fields with empty
46124	// values are omitted from API requests. However, any field with an
46125	// empty value appearing in NullFields will be sent to the server as
46126	// null. It is an error if a field in this list has a non-empty value.
46127	// This may be used to include null fields in Patch requests.
46128	NullFields []string `json:"-"`
46129}
46130
46131func (s *VpnTunnelList) MarshalJSON() ([]byte, error) {
46132	type NoMethod VpnTunnelList
46133	raw := NoMethod(*s)
46134	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46135}
46136
46137// VpnTunnelListWarning: [Output Only] Informational warning message.
46138type VpnTunnelListWarning struct {
46139	// Code: [Output Only] A warning code, if applicable. For example,
46140	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
46141	// the response.
46142	//
46143	// Possible values:
46144	//   "CLEANUP_FAILED"
46145	//   "DEPRECATED_RESOURCE_USED"
46146	//   "DEPRECATED_TYPE_USED"
46147	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
46148	//   "EXPERIMENTAL_TYPE_USED"
46149	//   "EXTERNAL_API_WARNING"
46150	//   "FIELD_VALUE_OVERRIDEN"
46151	//   "INJECTED_KERNELS_DEPRECATED"
46152	//   "LARGE_DEPLOYMENT_WARNING"
46153	//   "MISSING_TYPE_DEPENDENCY"
46154	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
46155	//   "NEXT_HOP_CANNOT_IP_FORWARD"
46156	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
46157	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
46158	//   "NEXT_HOP_NOT_RUNNING"
46159	//   "NOT_CRITICAL_ERROR"
46160	//   "NO_RESULTS_ON_PAGE"
46161	//   "PARTIAL_SUCCESS"
46162	//   "REQUIRED_TOS_AGREEMENT"
46163	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
46164	//   "RESOURCE_NOT_DELETED"
46165	//   "SCHEMA_VALIDATION_IGNORED"
46166	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
46167	//   "UNDECLARED_PROPERTIES"
46168	//   "UNREACHABLE"
46169	Code string `json:"code,omitempty"`
46170
46171	// Data: [Output Only] Metadata about this warning in key: value format.
46172	// For example:
46173	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
46174	Data []*VpnTunnelListWarningData `json:"data,omitempty"`
46175
46176	// Message: [Output Only] A human-readable description of the warning
46177	// code.
46178	Message string `json:"message,omitempty"`
46179
46180	// ForceSendFields is a list of field names (e.g. "Code") to
46181	// unconditionally include in API requests. By default, fields with
46182	// empty values are omitted from API requests. However, any non-pointer,
46183	// non-interface field appearing in ForceSendFields will be sent to the
46184	// server regardless of whether the field is empty or not. This may be
46185	// used to include empty fields in Patch requests.
46186	ForceSendFields []string `json:"-"`
46187
46188	// NullFields is a list of field names (e.g. "Code") to include in API
46189	// requests with the JSON null value. By default, fields with empty
46190	// values are omitted from API requests. However, any field with an
46191	// empty value appearing in NullFields will be sent to the server as
46192	// null. It is an error if a field in this list has a non-empty value.
46193	// This may be used to include null fields in Patch requests.
46194	NullFields []string `json:"-"`
46195}
46196
46197func (s *VpnTunnelListWarning) MarshalJSON() ([]byte, error) {
46198	type NoMethod VpnTunnelListWarning
46199	raw := NoMethod(*s)
46200	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46201}
46202
46203type VpnTunnelListWarningData struct {
46204	// Key: [Output Only] A key that provides more detail on the warning
46205	// being returned. For example, for warnings where there are no results
46206	// in a list request for a particular zone, this key might be scope and
46207	// the key value might be the zone name. Other examples might be a key
46208	// indicating a deprecated resource and a suggested replacement, or a
46209	// warning about invalid network settings (for example, if an instance
46210	// attempts to perform IP forwarding but is not enabled for IP
46211	// forwarding).
46212	Key string `json:"key,omitempty"`
46213
46214	// Value: [Output Only] A warning data value corresponding to the key.
46215	Value string `json:"value,omitempty"`
46216
46217	// ForceSendFields is a list of field names (e.g. "Key") to
46218	// unconditionally include in API requests. By default, fields with
46219	// empty values are omitted from API requests. However, any non-pointer,
46220	// non-interface field appearing in ForceSendFields will be sent to the
46221	// server regardless of whether the field is empty or not. This may be
46222	// used to include empty fields in Patch requests.
46223	ForceSendFields []string `json:"-"`
46224
46225	// NullFields is a list of field names (e.g. "Key") to include in API
46226	// requests with the JSON null value. By default, fields with empty
46227	// values are omitted from API requests. However, any field with an
46228	// empty value appearing in NullFields will be sent to the server as
46229	// null. It is an error if a field in this list has a non-empty value.
46230	// This may be used to include null fields in Patch requests.
46231	NullFields []string `json:"-"`
46232}
46233
46234func (s *VpnTunnelListWarningData) MarshalJSON() ([]byte, error) {
46235	type NoMethod VpnTunnelListWarningData
46236	raw := NoMethod(*s)
46237	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46238}
46239
46240type VpnTunnelsScopedList struct {
46241	// VpnTunnels: A list of VPN tunnels contained in this scope.
46242	VpnTunnels []*VpnTunnel `json:"vpnTunnels,omitempty"`
46243
46244	// Warning: Informational warning which replaces the list of addresses
46245	// when the list is empty.
46246	Warning *VpnTunnelsScopedListWarning `json:"warning,omitempty"`
46247
46248	// ForceSendFields is a list of field names (e.g. "VpnTunnels") to
46249	// unconditionally include in API requests. By default, fields with
46250	// empty values are omitted from API requests. However, any non-pointer,
46251	// non-interface field appearing in ForceSendFields will be sent to the
46252	// server regardless of whether the field is empty or not. This may be
46253	// used to include empty fields in Patch requests.
46254	ForceSendFields []string `json:"-"`
46255
46256	// NullFields is a list of field names (e.g. "VpnTunnels") to include in
46257	// API requests with the JSON null value. By default, fields with empty
46258	// values are omitted from API requests. However, any field with an
46259	// empty value appearing in NullFields will be sent to the server as
46260	// null. It is an error if a field in this list has a non-empty value.
46261	// This may be used to include null fields in Patch requests.
46262	NullFields []string `json:"-"`
46263}
46264
46265func (s *VpnTunnelsScopedList) MarshalJSON() ([]byte, error) {
46266	type NoMethod VpnTunnelsScopedList
46267	raw := NoMethod(*s)
46268	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46269}
46270
46271// VpnTunnelsScopedListWarning: Informational warning which replaces the
46272// list of addresses when the list is empty.
46273type VpnTunnelsScopedListWarning struct {
46274	// Code: [Output Only] A warning code, if applicable. For example,
46275	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
46276	// the response.
46277	//
46278	// Possible values:
46279	//   "CLEANUP_FAILED"
46280	//   "DEPRECATED_RESOURCE_USED"
46281	//   "DEPRECATED_TYPE_USED"
46282	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
46283	//   "EXPERIMENTAL_TYPE_USED"
46284	//   "EXTERNAL_API_WARNING"
46285	//   "FIELD_VALUE_OVERRIDEN"
46286	//   "INJECTED_KERNELS_DEPRECATED"
46287	//   "LARGE_DEPLOYMENT_WARNING"
46288	//   "MISSING_TYPE_DEPENDENCY"
46289	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
46290	//   "NEXT_HOP_CANNOT_IP_FORWARD"
46291	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
46292	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
46293	//   "NEXT_HOP_NOT_RUNNING"
46294	//   "NOT_CRITICAL_ERROR"
46295	//   "NO_RESULTS_ON_PAGE"
46296	//   "PARTIAL_SUCCESS"
46297	//   "REQUIRED_TOS_AGREEMENT"
46298	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
46299	//   "RESOURCE_NOT_DELETED"
46300	//   "SCHEMA_VALIDATION_IGNORED"
46301	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
46302	//   "UNDECLARED_PROPERTIES"
46303	//   "UNREACHABLE"
46304	Code string `json:"code,omitempty"`
46305
46306	// Data: [Output Only] Metadata about this warning in key: value format.
46307	// For example:
46308	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
46309	Data []*VpnTunnelsScopedListWarningData `json:"data,omitempty"`
46310
46311	// Message: [Output Only] A human-readable description of the warning
46312	// code.
46313	Message string `json:"message,omitempty"`
46314
46315	// ForceSendFields is a list of field names (e.g. "Code") to
46316	// unconditionally include in API requests. By default, fields with
46317	// empty values are omitted from API requests. However, any non-pointer,
46318	// non-interface field appearing in ForceSendFields will be sent to the
46319	// server regardless of whether the field is empty or not. This may be
46320	// used to include empty fields in Patch requests.
46321	ForceSendFields []string `json:"-"`
46322
46323	// NullFields is a list of field names (e.g. "Code") to include in API
46324	// requests with the JSON null value. By default, fields with empty
46325	// values are omitted from API requests. However, any field with an
46326	// empty value appearing in NullFields will be sent to the server as
46327	// null. It is an error if a field in this list has a non-empty value.
46328	// This may be used to include null fields in Patch requests.
46329	NullFields []string `json:"-"`
46330}
46331
46332func (s *VpnTunnelsScopedListWarning) MarshalJSON() ([]byte, error) {
46333	type NoMethod VpnTunnelsScopedListWarning
46334	raw := NoMethod(*s)
46335	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46336}
46337
46338type VpnTunnelsScopedListWarningData struct {
46339	// Key: [Output Only] A key that provides more detail on the warning
46340	// being returned. For example, for warnings where there are no results
46341	// in a list request for a particular zone, this key might be scope and
46342	// the key value might be the zone name. Other examples might be a key
46343	// indicating a deprecated resource and a suggested replacement, or a
46344	// warning about invalid network settings (for example, if an instance
46345	// attempts to perform IP forwarding but is not enabled for IP
46346	// forwarding).
46347	Key string `json:"key,omitempty"`
46348
46349	// Value: [Output Only] A warning data value corresponding to the key.
46350	Value string `json:"value,omitempty"`
46351
46352	// ForceSendFields is a list of field names (e.g. "Key") to
46353	// unconditionally include in API requests. By default, fields with
46354	// empty values are omitted from API requests. However, any non-pointer,
46355	// non-interface field appearing in ForceSendFields will be sent to the
46356	// server regardless of whether the field is empty or not. This may be
46357	// used to include empty fields in Patch requests.
46358	ForceSendFields []string `json:"-"`
46359
46360	// NullFields is a list of field names (e.g. "Key") to include in API
46361	// requests with the JSON null value. By default, fields with empty
46362	// values are omitted from API requests. However, any field with an
46363	// empty value appearing in NullFields will be sent to the server as
46364	// null. It is an error if a field in this list has a non-empty value.
46365	// This may be used to include null fields in Patch requests.
46366	NullFields []string `json:"-"`
46367}
46368
46369func (s *VpnTunnelsScopedListWarningData) MarshalJSON() ([]byte, error) {
46370	type NoMethod VpnTunnelsScopedListWarningData
46371	raw := NoMethod(*s)
46372	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46373}
46374
46375type WafExpressionSet struct {
46376	// Aliases: A list of alternate IDs. The format should be: - E.g.
46377	// XSS-stable Generic suffix like "stable" is particularly useful if a
46378	// policy likes to avail newer set of expressions without having to
46379	// change the policy. A given alias name can't be used for more than one
46380	// entity set.
46381	Aliases []string `json:"aliases,omitempty"`
46382
46383	// Expressions: List of available expressions.
46384	Expressions []*WafExpressionSetExpression `json:"expressions,omitempty"`
46385
46386	// Id: Google specified expression set ID. The format should be: - E.g.
46387	// XSS-20170329
46388	Id string `json:"id,omitempty"`
46389
46390	// ForceSendFields is a list of field names (e.g. "Aliases") to
46391	// unconditionally include in API requests. By default, fields with
46392	// empty values are omitted from API requests. However, any non-pointer,
46393	// non-interface field appearing in ForceSendFields will be sent to the
46394	// server regardless of whether the field is empty or not. This may be
46395	// used to include empty fields in Patch requests.
46396	ForceSendFields []string `json:"-"`
46397
46398	// NullFields is a list of field names (e.g. "Aliases") to include in
46399	// API requests with the JSON null value. By default, fields with empty
46400	// values are omitted from API requests. However, any field with an
46401	// empty value appearing in NullFields will be sent to the server as
46402	// null. It is an error if a field in this list has a non-empty value.
46403	// This may be used to include null fields in Patch requests.
46404	NullFields []string `json:"-"`
46405}
46406
46407func (s *WafExpressionSet) MarshalJSON() ([]byte, error) {
46408	type NoMethod WafExpressionSet
46409	raw := NoMethod(*s)
46410	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46411}
46412
46413type WafExpressionSetExpression struct {
46414	// Id: Expression ID should uniquely identify the origin of the
46415	// expression. E.g. owasp-crs-v020901-id973337 identifies Owasp core
46416	// rule set version 2.9.1 rule id 973337. The ID could be used to
46417	// determine the individual attack definition that has been detected. It
46418	// could also be used to exclude it from the policy in case of false
46419	// positive.
46420	Id string `json:"id,omitempty"`
46421
46422	// ForceSendFields is a list of field names (e.g. "Id") to
46423	// unconditionally include in API requests. By default, fields with
46424	// empty values are omitted from API requests. However, any non-pointer,
46425	// non-interface field appearing in ForceSendFields will be sent to the
46426	// server regardless of whether the field is empty or not. This may be
46427	// used to include empty fields in Patch requests.
46428	ForceSendFields []string `json:"-"`
46429
46430	// NullFields is a list of field names (e.g. "Id") to include in API
46431	// requests with the JSON null value. By default, fields with empty
46432	// values are omitted from API requests. However, any field with an
46433	// empty value appearing in NullFields will be sent to the server as
46434	// null. It is an error if a field in this list has a non-empty value.
46435	// This may be used to include null fields in Patch requests.
46436	NullFields []string `json:"-"`
46437}
46438
46439func (s *WafExpressionSetExpression) MarshalJSON() ([]byte, error) {
46440	type NoMethod WafExpressionSetExpression
46441	raw := NoMethod(*s)
46442	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46443}
46444
46445// WeightedBackendService: In contrast to a single BackendService in
46446// HttpRouteAction to which all matching traffic is directed to,
46447// WeightedBackendService allows traffic to be split across multiple
46448// BackendServices. The volume of traffic for each BackendService is
46449// proportional to the weight specified in each WeightedBackendService
46450type WeightedBackendService struct {
46451	// BackendService: The full or partial URL to the default BackendService
46452	// resource. Before forwarding the request to backendService, the
46453	// loadbalancer applies any relevant headerActions specified as part of
46454	// this backendServiceWeight.
46455	BackendService string `json:"backendService,omitempty"`
46456
46457	// HeaderAction: Specifies changes to request and response headers that
46458	// need to take effect for the selected backendService.
46459	// headerAction specified here take effect before headerAction in the
46460	// enclosing HttpRouteRule, PathMatcher and UrlMap.
46461	// Note that headerAction is not supported for Loadbalancers that have
46462	// their loadBalancingScheme set to EXTERNAL.
46463	// Not supported when the URL map is bound to target gRPC proxy that has
46464	// validateForProxyless field set to true.
46465	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
46466
46467	// Weight: Specifies the fraction of traffic sent to backendService,
46468	// computed as weight / (sum of all weightedBackendService weights in
46469	// routeAction) .
46470	// The selection of a backend service is determined only for new
46471	// traffic. Once a user's request has been directed to a backendService,
46472	// subsequent requests will be sent to the same backendService as
46473	// determined by the BackendService's session affinity policy.
46474	// The value must be between 0 and 1000
46475	Weight int64 `json:"weight,omitempty"`
46476
46477	// ForceSendFields is a list of field names (e.g. "BackendService") to
46478	// unconditionally include in API requests. By default, fields with
46479	// empty values are omitted from API requests. However, any non-pointer,
46480	// non-interface field appearing in ForceSendFields will be sent to the
46481	// server regardless of whether the field is empty or not. This may be
46482	// used to include empty fields in Patch requests.
46483	ForceSendFields []string `json:"-"`
46484
46485	// NullFields is a list of field names (e.g. "BackendService") to
46486	// include in API requests with the JSON null value. By default, fields
46487	// with empty values are omitted from API requests. However, any field
46488	// with an empty value appearing in NullFields will be sent to the
46489	// server as null. It is an error if a field in this list has a
46490	// non-empty value. This may be used to include null fields in Patch
46491	// requests.
46492	NullFields []string `json:"-"`
46493}
46494
46495func (s *WeightedBackendService) MarshalJSON() ([]byte, error) {
46496	type NoMethod WeightedBackendService
46497	raw := NoMethod(*s)
46498	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46499}
46500
46501type XpnHostList struct {
46502	// Id: [Output Only] Unique identifier for the resource; defined by the
46503	// server.
46504	Id string `json:"id,omitempty"`
46505
46506	// Items: [Output Only] A list of shared VPC host project URLs.
46507	Items []*Project `json:"items,omitempty"`
46508
46509	// Kind: [Output Only] Type of resource. Always compute#xpnHostList for
46510	// lists of shared VPC hosts.
46511	Kind string `json:"kind,omitempty"`
46512
46513	// NextPageToken: [Output Only] This token allows you to get the next
46514	// page of results for list requests. If the number of results is larger
46515	// than maxResults, use the nextPageToken as a value for the query
46516	// parameter pageToken in the next list request. Subsequent list
46517	// requests will have their own nextPageToken to continue paging through
46518	// the results.
46519	NextPageToken string `json:"nextPageToken,omitempty"`
46520
46521	// SelfLink: [Output Only] Server-defined URL for this resource.
46522	SelfLink string `json:"selfLink,omitempty"`
46523
46524	// Warning: [Output Only] Informational warning message.
46525	Warning *XpnHostListWarning `json:"warning,omitempty"`
46526
46527	// ServerResponse contains the HTTP response code and headers from the
46528	// server.
46529	googleapi.ServerResponse `json:"-"`
46530
46531	// ForceSendFields is a list of field names (e.g. "Id") to
46532	// unconditionally include in API requests. By default, fields with
46533	// empty values are omitted from API requests. However, any non-pointer,
46534	// non-interface field appearing in ForceSendFields will be sent to the
46535	// server regardless of whether the field is empty or not. This may be
46536	// used to include empty fields in Patch requests.
46537	ForceSendFields []string `json:"-"`
46538
46539	// NullFields is a list of field names (e.g. "Id") to include in API
46540	// requests with the JSON null value. By default, fields with empty
46541	// values are omitted from API requests. However, any field with an
46542	// empty value appearing in NullFields will be sent to the server as
46543	// null. It is an error if a field in this list has a non-empty value.
46544	// This may be used to include null fields in Patch requests.
46545	NullFields []string `json:"-"`
46546}
46547
46548func (s *XpnHostList) MarshalJSON() ([]byte, error) {
46549	type NoMethod XpnHostList
46550	raw := NoMethod(*s)
46551	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46552}
46553
46554// XpnHostListWarning: [Output Only] Informational warning message.
46555type XpnHostListWarning struct {
46556	// Code: [Output Only] A warning code, if applicable. For example,
46557	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
46558	// the response.
46559	//
46560	// Possible values:
46561	//   "CLEANUP_FAILED"
46562	//   "DEPRECATED_RESOURCE_USED"
46563	//   "DEPRECATED_TYPE_USED"
46564	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
46565	//   "EXPERIMENTAL_TYPE_USED"
46566	//   "EXTERNAL_API_WARNING"
46567	//   "FIELD_VALUE_OVERRIDEN"
46568	//   "INJECTED_KERNELS_DEPRECATED"
46569	//   "LARGE_DEPLOYMENT_WARNING"
46570	//   "MISSING_TYPE_DEPENDENCY"
46571	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
46572	//   "NEXT_HOP_CANNOT_IP_FORWARD"
46573	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
46574	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
46575	//   "NEXT_HOP_NOT_RUNNING"
46576	//   "NOT_CRITICAL_ERROR"
46577	//   "NO_RESULTS_ON_PAGE"
46578	//   "PARTIAL_SUCCESS"
46579	//   "REQUIRED_TOS_AGREEMENT"
46580	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
46581	//   "RESOURCE_NOT_DELETED"
46582	//   "SCHEMA_VALIDATION_IGNORED"
46583	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
46584	//   "UNDECLARED_PROPERTIES"
46585	//   "UNREACHABLE"
46586	Code string `json:"code,omitempty"`
46587
46588	// Data: [Output Only] Metadata about this warning in key: value format.
46589	// For example:
46590	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
46591	Data []*XpnHostListWarningData `json:"data,omitempty"`
46592
46593	// Message: [Output Only] A human-readable description of the warning
46594	// code.
46595	Message string `json:"message,omitempty"`
46596
46597	// ForceSendFields is a list of field names (e.g. "Code") to
46598	// unconditionally include in API requests. By default, fields with
46599	// empty values are omitted from API requests. However, any non-pointer,
46600	// non-interface field appearing in ForceSendFields will be sent to the
46601	// server regardless of whether the field is empty or not. This may be
46602	// used to include empty fields in Patch requests.
46603	ForceSendFields []string `json:"-"`
46604
46605	// NullFields is a list of field names (e.g. "Code") to include in API
46606	// requests with the JSON null value. By default, fields with empty
46607	// values are omitted from API requests. However, any field with an
46608	// empty value appearing in NullFields will be sent to the server as
46609	// null. It is an error if a field in this list has a non-empty value.
46610	// This may be used to include null fields in Patch requests.
46611	NullFields []string `json:"-"`
46612}
46613
46614func (s *XpnHostListWarning) MarshalJSON() ([]byte, error) {
46615	type NoMethod XpnHostListWarning
46616	raw := NoMethod(*s)
46617	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46618}
46619
46620type XpnHostListWarningData struct {
46621	// Key: [Output Only] A key that provides more detail on the warning
46622	// being returned. For example, for warnings where there are no results
46623	// in a list request for a particular zone, this key might be scope and
46624	// the key value might be the zone name. Other examples might be a key
46625	// indicating a deprecated resource and a suggested replacement, or a
46626	// warning about invalid network settings (for example, if an instance
46627	// attempts to perform IP forwarding but is not enabled for IP
46628	// forwarding).
46629	Key string `json:"key,omitempty"`
46630
46631	// Value: [Output Only] A warning data value corresponding to the key.
46632	Value string `json:"value,omitempty"`
46633
46634	// ForceSendFields is a list of field names (e.g. "Key") to
46635	// unconditionally include in API requests. By default, fields with
46636	// empty values are omitted from API requests. However, any non-pointer,
46637	// non-interface field appearing in ForceSendFields will be sent to the
46638	// server regardless of whether the field is empty or not. This may be
46639	// used to include empty fields in Patch requests.
46640	ForceSendFields []string `json:"-"`
46641
46642	// NullFields is a list of field names (e.g. "Key") to include in API
46643	// requests with the JSON null value. By default, fields with empty
46644	// values are omitted from API requests. However, any field with an
46645	// empty value appearing in NullFields will be sent to the server as
46646	// null. It is an error if a field in this list has a non-empty value.
46647	// This may be used to include null fields in Patch requests.
46648	NullFields []string `json:"-"`
46649}
46650
46651func (s *XpnHostListWarningData) MarshalJSON() ([]byte, error) {
46652	type NoMethod XpnHostListWarningData
46653	raw := NoMethod(*s)
46654	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46655}
46656
46657// XpnResourceId: Service resource (a.k.a service project) ID.
46658type XpnResourceId struct {
46659	// Id: The ID of the service resource. In the case of projects, this
46660	// field supports project id (e.g., my-project-123) and project number
46661	// (e.g. 12345678).
46662	Id string `json:"id,omitempty"`
46663
46664	// Type: The type of the service resource.
46665	//
46666	// Possible values:
46667	//   "PROJECT"
46668	//   "XPN_RESOURCE_TYPE_UNSPECIFIED"
46669	Type string `json:"type,omitempty"`
46670
46671	// ForceSendFields is a list of field names (e.g. "Id") to
46672	// unconditionally include in API requests. By default, fields with
46673	// empty values are omitted from API requests. However, any non-pointer,
46674	// non-interface field appearing in ForceSendFields will be sent to the
46675	// server regardless of whether the field is empty or not. This may be
46676	// used to include empty fields in Patch requests.
46677	ForceSendFields []string `json:"-"`
46678
46679	// NullFields is a list of field names (e.g. "Id") to include in API
46680	// requests with the JSON null value. By default, fields with empty
46681	// values are omitted from API requests. However, any field with an
46682	// empty value appearing in NullFields will be sent to the server as
46683	// null. It is an error if a field in this list has a non-empty value.
46684	// This may be used to include null fields in Patch requests.
46685	NullFields []string `json:"-"`
46686}
46687
46688func (s *XpnResourceId) MarshalJSON() ([]byte, error) {
46689	type NoMethod XpnResourceId
46690	raw := NoMethod(*s)
46691	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46692}
46693
46694// Zone: Represents a Zone resource.
46695//
46696// A zone is a deployment area. These deployment areas are subsets of a
46697// region. For example the zone us-east1-a is located in the us-east1
46698// region. For more information, read Regions and Zones. (==
46699// resource_for {$api_version}.zones ==)
46700type Zone struct {
46701	// AvailableCpuPlatforms: [Output Only] Available cpu/platform
46702	// selections for the zone.
46703	AvailableCpuPlatforms []string `json:"availableCpuPlatforms,omitempty"`
46704
46705	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
46706	// format.
46707	CreationTimestamp string `json:"creationTimestamp,omitempty"`
46708
46709	// Deprecated -- [Output Only] The deprecation status associated with
46710	// this zone.
46711	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
46712
46713	// Description: [Output Only] Textual description of the resource.
46714	Description string `json:"description,omitempty"`
46715
46716	// Id: [Output Only] The unique identifier for the resource. This
46717	// identifier is defined by the server.
46718	Id uint64 `json:"id,omitempty,string"`
46719
46720	// Kind: [Output Only] Type of the resource. Always compute#zone for
46721	// zones.
46722	Kind string `json:"kind,omitempty"`
46723
46724	// Name: [Output Only] Name of the resource.
46725	Name string `json:"name,omitempty"`
46726
46727	// Region: [Output Only] Full URL reference to the region which hosts
46728	// the zone.
46729	Region string `json:"region,omitempty"`
46730
46731	// SelfLink: [Output Only] Server-defined URL for the resource.
46732	SelfLink string `json:"selfLink,omitempty"`
46733
46734	// Status: [Output Only] Status of the zone, either UP or DOWN.
46735	//
46736	// Possible values:
46737	//   "DOWN"
46738	//   "UP"
46739	Status string `json:"status,omitempty"`
46740
46741	// SupportsPzs: [Output Only] Reserved for future use.
46742	SupportsPzs bool `json:"supportsPzs,omitempty"`
46743
46744	// ServerResponse contains the HTTP response code and headers from the
46745	// server.
46746	googleapi.ServerResponse `json:"-"`
46747
46748	// ForceSendFields is a list of field names (e.g.
46749	// "AvailableCpuPlatforms") to unconditionally include in API requests.
46750	// By default, fields with empty values are omitted from API requests.
46751	// However, any non-pointer, non-interface field appearing in
46752	// ForceSendFields will be sent to the server regardless of whether the
46753	// field is empty or not. This may be used to include empty fields in
46754	// Patch requests.
46755	ForceSendFields []string `json:"-"`
46756
46757	// NullFields is a list of field names (e.g. "AvailableCpuPlatforms") to
46758	// include in API requests with the JSON null value. By default, fields
46759	// with empty values are omitted from API requests. However, any field
46760	// with an empty value appearing in NullFields will be sent to the
46761	// server as null. It is an error if a field in this list has a
46762	// non-empty value. This may be used to include null fields in Patch
46763	// requests.
46764	NullFields []string `json:"-"`
46765}
46766
46767func (s *Zone) MarshalJSON() ([]byte, error) {
46768	type NoMethod Zone
46769	raw := NoMethod(*s)
46770	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46771}
46772
46773// ZoneList: Contains a list of zone resources.
46774type ZoneList struct {
46775	// Id: [Output Only] Unique identifier for the resource; defined by the
46776	// server.
46777	Id string `json:"id,omitempty"`
46778
46779	// Items: A list of Zone resources.
46780	Items []*Zone `json:"items,omitempty"`
46781
46782	// Kind: Type of resource.
46783	Kind string `json:"kind,omitempty"`
46784
46785	// NextPageToken: [Output Only] This token allows you to get the next
46786	// page of results for list requests. If the number of results is larger
46787	// than maxResults, use the nextPageToken as a value for the query
46788	// parameter pageToken in the next list request. Subsequent list
46789	// requests will have their own nextPageToken to continue paging through
46790	// the results.
46791	NextPageToken string `json:"nextPageToken,omitempty"`
46792
46793	// SelfLink: [Output Only] Server-defined URL for this resource.
46794	SelfLink string `json:"selfLink,omitempty"`
46795
46796	// Warning: [Output Only] Informational warning message.
46797	Warning *ZoneListWarning `json:"warning,omitempty"`
46798
46799	// ServerResponse contains the HTTP response code and headers from the
46800	// server.
46801	googleapi.ServerResponse `json:"-"`
46802
46803	// ForceSendFields is a list of field names (e.g. "Id") to
46804	// unconditionally include in API requests. By default, fields with
46805	// empty values are omitted from API requests. However, any non-pointer,
46806	// non-interface field appearing in ForceSendFields will be sent to the
46807	// server regardless of whether the field is empty or not. This may be
46808	// used to include empty fields in Patch requests.
46809	ForceSendFields []string `json:"-"`
46810
46811	// NullFields is a list of field names (e.g. "Id") to include in API
46812	// requests with the JSON null value. By default, fields with empty
46813	// values are omitted from API requests. However, any field with an
46814	// empty value appearing in NullFields will be sent to the server as
46815	// null. It is an error if a field in this list has a non-empty value.
46816	// This may be used to include null fields in Patch requests.
46817	NullFields []string `json:"-"`
46818}
46819
46820func (s *ZoneList) MarshalJSON() ([]byte, error) {
46821	type NoMethod ZoneList
46822	raw := NoMethod(*s)
46823	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46824}
46825
46826// ZoneListWarning: [Output Only] Informational warning message.
46827type ZoneListWarning struct {
46828	// Code: [Output Only] A warning code, if applicable. For example,
46829	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
46830	// the response.
46831	//
46832	// Possible values:
46833	//   "CLEANUP_FAILED"
46834	//   "DEPRECATED_RESOURCE_USED"
46835	//   "DEPRECATED_TYPE_USED"
46836	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
46837	//   "EXPERIMENTAL_TYPE_USED"
46838	//   "EXTERNAL_API_WARNING"
46839	//   "FIELD_VALUE_OVERRIDEN"
46840	//   "INJECTED_KERNELS_DEPRECATED"
46841	//   "LARGE_DEPLOYMENT_WARNING"
46842	//   "MISSING_TYPE_DEPENDENCY"
46843	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
46844	//   "NEXT_HOP_CANNOT_IP_FORWARD"
46845	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
46846	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
46847	//   "NEXT_HOP_NOT_RUNNING"
46848	//   "NOT_CRITICAL_ERROR"
46849	//   "NO_RESULTS_ON_PAGE"
46850	//   "PARTIAL_SUCCESS"
46851	//   "REQUIRED_TOS_AGREEMENT"
46852	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
46853	//   "RESOURCE_NOT_DELETED"
46854	//   "SCHEMA_VALIDATION_IGNORED"
46855	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
46856	//   "UNDECLARED_PROPERTIES"
46857	//   "UNREACHABLE"
46858	Code string `json:"code,omitempty"`
46859
46860	// Data: [Output Only] Metadata about this warning in key: value format.
46861	// For example:
46862	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
46863	Data []*ZoneListWarningData `json:"data,omitempty"`
46864
46865	// Message: [Output Only] A human-readable description of the warning
46866	// code.
46867	Message string `json:"message,omitempty"`
46868
46869	// ForceSendFields is a list of field names (e.g. "Code") to
46870	// unconditionally include in API requests. By default, fields with
46871	// empty values are omitted from API requests. However, any non-pointer,
46872	// non-interface field appearing in ForceSendFields will be sent to the
46873	// server regardless of whether the field is empty or not. This may be
46874	// used to include empty fields in Patch requests.
46875	ForceSendFields []string `json:"-"`
46876
46877	// NullFields is a list of field names (e.g. "Code") to include in API
46878	// requests with the JSON null value. By default, fields with empty
46879	// values are omitted from API requests. However, any field with an
46880	// empty value appearing in NullFields will be sent to the server as
46881	// null. It is an error if a field in this list has a non-empty value.
46882	// This may be used to include null fields in Patch requests.
46883	NullFields []string `json:"-"`
46884}
46885
46886func (s *ZoneListWarning) MarshalJSON() ([]byte, error) {
46887	type NoMethod ZoneListWarning
46888	raw := NoMethod(*s)
46889	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46890}
46891
46892type ZoneListWarningData struct {
46893	// Key: [Output Only] A key that provides more detail on the warning
46894	// being returned. For example, for warnings where there are no results
46895	// in a list request for a particular zone, this key might be scope and
46896	// the key value might be the zone name. Other examples might be a key
46897	// indicating a deprecated resource and a suggested replacement, or a
46898	// warning about invalid network settings (for example, if an instance
46899	// attempts to perform IP forwarding but is not enabled for IP
46900	// forwarding).
46901	Key string `json:"key,omitempty"`
46902
46903	// Value: [Output Only] A warning data value corresponding to the key.
46904	Value string `json:"value,omitempty"`
46905
46906	// ForceSendFields is a list of field names (e.g. "Key") to
46907	// unconditionally include in API requests. By default, fields with
46908	// empty values are omitted from API requests. However, any non-pointer,
46909	// non-interface field appearing in ForceSendFields will be sent to the
46910	// server regardless of whether the field is empty or not. This may be
46911	// used to include empty fields in Patch requests.
46912	ForceSendFields []string `json:"-"`
46913
46914	// NullFields is a list of field names (e.g. "Key") to include in API
46915	// requests with the JSON null value. By default, fields with empty
46916	// values are omitted from API requests. However, any field with an
46917	// empty value appearing in NullFields will be sent to the server as
46918	// null. It is an error if a field in this list has a non-empty value.
46919	// This may be used to include null fields in Patch requests.
46920	NullFields []string `json:"-"`
46921}
46922
46923func (s *ZoneListWarningData) MarshalJSON() ([]byte, error) {
46924	type NoMethod ZoneListWarningData
46925	raw := NoMethod(*s)
46926	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46927}
46928
46929type ZoneSetLabelsRequest struct {
46930	// LabelFingerprint: The fingerprint of the previous set of labels for
46931	// this resource, used to detect conflicts. The fingerprint is initially
46932	// generated by Compute Engine and changes after every request to modify
46933	// or update labels. You must always provide an up-to-date fingerprint
46934	// hash in order to update or change labels. Make a get() request to the
46935	// resource to get the latest fingerprint.
46936	LabelFingerprint string `json:"labelFingerprint,omitempty"`
46937
46938	// Labels: The labels to set for this resource.
46939	Labels map[string]string `json:"labels,omitempty"`
46940
46941	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
46942	// unconditionally include in API requests. By default, fields with
46943	// empty values are omitted from API requests. However, any non-pointer,
46944	// non-interface field appearing in ForceSendFields will be sent to the
46945	// server regardless of whether the field is empty or not. This may be
46946	// used to include empty fields in Patch requests.
46947	ForceSendFields []string `json:"-"`
46948
46949	// NullFields is a list of field names (e.g. "LabelFingerprint") to
46950	// include in API requests with the JSON null value. By default, fields
46951	// with empty values are omitted from API requests. However, any field
46952	// with an empty value appearing in NullFields will be sent to the
46953	// server as null. It is an error if a field in this list has a
46954	// non-empty value. This may be used to include null fields in Patch
46955	// requests.
46956	NullFields []string `json:"-"`
46957}
46958
46959func (s *ZoneSetLabelsRequest) MarshalJSON() ([]byte, error) {
46960	type NoMethod ZoneSetLabelsRequest
46961	raw := NoMethod(*s)
46962	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
46963}
46964
46965type ZoneSetPolicyRequest struct {
46966	// Bindings: Flatten Policy to create a backwacd compatible wire-format.
46967	// Deprecated. Use 'policy' to specify bindings.
46968	Bindings []*Binding `json:"bindings,omitempty"`
46969
46970	// Etag: Flatten Policy to create a backward compatible wire-format.
46971	// Deprecated. Use 'policy' to specify the etag.
46972	Etag string `json:"etag,omitempty"`
46973
46974	// Policy: REQUIRED: The complete policy to be applied to the
46975	// 'resource'. The size of the policy is limited to a few 10s of KB. An
46976	// empty policy is in general a valid policy but certain services (like
46977	// Projects) might reject them.
46978	Policy *Policy `json:"policy,omitempty"`
46979
46980	// ForceSendFields is a list of field names (e.g. "Bindings") to
46981	// unconditionally include in API requests. By default, fields with
46982	// empty values are omitted from API requests. However, any non-pointer,
46983	// non-interface field appearing in ForceSendFields will be sent to the
46984	// server regardless of whether the field is empty or not. This may be
46985	// used to include empty fields in Patch requests.
46986	ForceSendFields []string `json:"-"`
46987
46988	// NullFields is a list of field names (e.g. "Bindings") to include in
46989	// API requests with the JSON null value. By default, fields with empty
46990	// values are omitted from API requests. However, any field with an
46991	// empty value appearing in NullFields will be sent to the server as
46992	// null. It is an error if a field in this list has a non-empty value.
46993	// This may be used to include null fields in Patch requests.
46994	NullFields []string `json:"-"`
46995}
46996
46997func (s *ZoneSetPolicyRequest) MarshalJSON() ([]byte, error) {
46998	type NoMethod ZoneSetPolicyRequest
46999	raw := NoMethod(*s)
47000	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
47001}
47002
47003// method id "compute.acceleratorTypes.aggregatedList":
47004
47005type AcceleratorTypesAggregatedListCall struct {
47006	s            *Service
47007	project      string
47008	urlParams_   gensupport.URLParams
47009	ifNoneMatch_ string
47010	ctx_         context.Context
47011	header_      http.Header
47012}
47013
47014// AggregatedList: Retrieves an aggregated list of accelerator types.
47015//
47016// - project: Project ID for this request.
47017func (r *AcceleratorTypesService) AggregatedList(project string) *AcceleratorTypesAggregatedListCall {
47018	c := &AcceleratorTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
47019	c.project = project
47020	return c
47021}
47022
47023// Filter sets the optional parameter "filter": A filter expression that
47024// filters resources listed in the response. The expression must specify
47025// the field name, a comparison operator, and the value that you want to
47026// use for filtering. The value must be a string, a number, or a
47027// boolean. The comparison operator must be either `=`, `!=`, `>`, or
47028// `<`.
47029//
47030// For example, if you are filtering Compute Engine instances, you can
47031// exclude instances named `example-instance` by specifying `name !=
47032// example-instance`.
47033//
47034// You can also filter nested fields. For example, you could specify
47035// `scheduling.automaticRestart = false` to include instances only if
47036// they are not scheduled for automatic restarts. You can use filtering
47037// on nested fields to filter based on resource labels.
47038//
47039// To filter on multiple expressions, provide each separate expression
47040// within parentheses. For example: ``` (scheduling.automaticRestart =
47041// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
47042// is an `AND` expression. However, you can include `AND` and `OR`
47043// expressions explicitly. For example: ``` (cpuPlatform = "Intel
47044// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
47045// (scheduling.automaticRestart = true) ```
47046func (c *AcceleratorTypesAggregatedListCall) Filter(filter string) *AcceleratorTypesAggregatedListCall {
47047	c.urlParams_.Set("filter", filter)
47048	return c
47049}
47050
47051// IncludeAllScopes sets the optional parameter "includeAllScopes":
47052// Indicates whether every visible scope for each scope type (zone,
47053// region, global) should be included in the response. For new resource
47054// types added after this field, the flag has no effect as new resource
47055// types will always include every visible scope for each scope type in
47056// response. For resource types which predate this field, if this flag
47057// is omitted or false, only scopes of the scope types where the
47058// resource type is expected to be found will be included.
47059func (c *AcceleratorTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *AcceleratorTypesAggregatedListCall {
47060	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
47061	return c
47062}
47063
47064// MaxResults sets the optional parameter "maxResults": The maximum
47065// number of results per page that should be returned. If the number of
47066// available results is larger than `maxResults`, Compute Engine returns
47067// a `nextPageToken` that can be used to get the next page of results in
47068// subsequent list requests. Acceptable values are `0` to `500`,
47069// inclusive. (Default: `500`)
47070func (c *AcceleratorTypesAggregatedListCall) MaxResults(maxResults int64) *AcceleratorTypesAggregatedListCall {
47071	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
47072	return c
47073}
47074
47075// OrderBy sets the optional parameter "orderBy": Sorts list results by
47076// a certain order. By default, results are returned in alphanumerical
47077// order based on the resource name.
47078//
47079// You can also sort results in descending order based on the creation
47080// timestamp using `orderBy="creationTimestamp desc". This sorts
47081// results based on the `creationTimestamp` field in reverse
47082// chronological order (newest result first). Use this to sort resources
47083// like operations so that the newest operation is returned
47084// first.
47085//
47086// Currently, only sorting by `name` or `creationTimestamp desc` is
47087// supported.
47088func (c *AcceleratorTypesAggregatedListCall) OrderBy(orderBy string) *AcceleratorTypesAggregatedListCall {
47089	c.urlParams_.Set("orderBy", orderBy)
47090	return c
47091}
47092
47093// PageToken sets the optional parameter "pageToken": Specifies a page
47094// token to use. Set `pageToken` to the `nextPageToken` returned by a
47095// previous list request to get the next page of results.
47096func (c *AcceleratorTypesAggregatedListCall) PageToken(pageToken string) *AcceleratorTypesAggregatedListCall {
47097	c.urlParams_.Set("pageToken", pageToken)
47098	return c
47099}
47100
47101// ReturnPartialSuccess sets the optional parameter
47102// "returnPartialSuccess": Opt-in for partial success behavior which
47103// provides partial results in case of failure. The default value is
47104// false.
47105func (c *AcceleratorTypesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AcceleratorTypesAggregatedListCall {
47106	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
47107	return c
47108}
47109
47110// Fields allows partial responses to be retrieved. See
47111// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47112// for more information.
47113func (c *AcceleratorTypesAggregatedListCall) Fields(s ...googleapi.Field) *AcceleratorTypesAggregatedListCall {
47114	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47115	return c
47116}
47117
47118// IfNoneMatch sets the optional parameter which makes the operation
47119// fail if the object's ETag matches the given value. This is useful for
47120// getting updates only after the object has changed since the last
47121// request. Use googleapi.IsNotModified to check whether the response
47122// error from Do is the result of In-None-Match.
47123func (c *AcceleratorTypesAggregatedListCall) IfNoneMatch(entityTag string) *AcceleratorTypesAggregatedListCall {
47124	c.ifNoneMatch_ = entityTag
47125	return c
47126}
47127
47128// Context sets the context to be used in this call's Do method. Any
47129// pending HTTP request will be aborted if the provided context is
47130// canceled.
47131func (c *AcceleratorTypesAggregatedListCall) Context(ctx context.Context) *AcceleratorTypesAggregatedListCall {
47132	c.ctx_ = ctx
47133	return c
47134}
47135
47136// Header returns an http.Header that can be modified by the caller to
47137// add HTTP headers to the request.
47138func (c *AcceleratorTypesAggregatedListCall) Header() http.Header {
47139	if c.header_ == nil {
47140		c.header_ = make(http.Header)
47141	}
47142	return c.header_
47143}
47144
47145func (c *AcceleratorTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
47146	reqHeaders := make(http.Header)
47147	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
47148	for k, v := range c.header_ {
47149		reqHeaders[k] = v
47150	}
47151	reqHeaders.Set("User-Agent", c.s.userAgent())
47152	if c.ifNoneMatch_ != "" {
47153		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
47154	}
47155	var body io.Reader = nil
47156	c.urlParams_.Set("alt", alt)
47157	c.urlParams_.Set("prettyPrint", "false")
47158	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/acceleratorTypes")
47159	urls += "?" + c.urlParams_.Encode()
47160	req, err := http.NewRequest("GET", urls, body)
47161	if err != nil {
47162		return nil, err
47163	}
47164	req.Header = reqHeaders
47165	googleapi.Expand(req.URL, map[string]string{
47166		"project": c.project,
47167	})
47168	return gensupport.SendRequest(c.ctx_, c.s.client, req)
47169}
47170
47171// Do executes the "compute.acceleratorTypes.aggregatedList" call.
47172// Exactly one of *AcceleratorTypeAggregatedList or error will be
47173// non-nil. Any non-2xx status code is an error. Response headers are in
47174// either *AcceleratorTypeAggregatedList.ServerResponse.Header or (if a
47175// response was returned at all) in error.(*googleapi.Error).Header. Use
47176// googleapi.IsNotModified to check whether the returned error was
47177// because http.StatusNotModified was returned.
47178func (c *AcceleratorTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*AcceleratorTypeAggregatedList, error) {
47179	gensupport.SetOptions(c.urlParams_, opts...)
47180	res, err := c.doRequest("json")
47181	if res != nil && res.StatusCode == http.StatusNotModified {
47182		if res.Body != nil {
47183			res.Body.Close()
47184		}
47185		return nil, &googleapi.Error{
47186			Code:   res.StatusCode,
47187			Header: res.Header,
47188		}
47189	}
47190	if err != nil {
47191		return nil, err
47192	}
47193	defer googleapi.CloseBody(res)
47194	if err := googleapi.CheckResponse(res); err != nil {
47195		return nil, err
47196	}
47197	ret := &AcceleratorTypeAggregatedList{
47198		ServerResponse: googleapi.ServerResponse{
47199			Header:         res.Header,
47200			HTTPStatusCode: res.StatusCode,
47201		},
47202	}
47203	target := &ret
47204	if err := gensupport.DecodeResponse(target, res); err != nil {
47205		return nil, err
47206	}
47207	return ret, nil
47208	// {
47209	//   "description": "Retrieves an aggregated list of accelerator types.",
47210	//   "httpMethod": "GET",
47211	//   "id": "compute.acceleratorTypes.aggregatedList",
47212	//   "parameterOrder": [
47213	//     "project"
47214	//   ],
47215	//   "parameters": {
47216	//     "filter": {
47217	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
47218	//       "location": "query",
47219	//       "type": "string"
47220	//     },
47221	//     "includeAllScopes": {
47222	//       "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.",
47223	//       "location": "query",
47224	//       "type": "boolean"
47225	//     },
47226	//     "maxResults": {
47227	//       "default": "500",
47228	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
47229	//       "format": "uint32",
47230	//       "location": "query",
47231	//       "minimum": "0",
47232	//       "type": "integer"
47233	//     },
47234	//     "orderBy": {
47235	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
47236	//       "location": "query",
47237	//       "type": "string"
47238	//     },
47239	//     "pageToken": {
47240	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
47241	//       "location": "query",
47242	//       "type": "string"
47243	//     },
47244	//     "project": {
47245	//       "description": "Project ID for this request.",
47246	//       "location": "path",
47247	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
47248	//       "required": true,
47249	//       "type": "string"
47250	//     },
47251	//     "returnPartialSuccess": {
47252	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
47253	//       "location": "query",
47254	//       "type": "boolean"
47255	//     }
47256	//   },
47257	//   "path": "projects/{project}/aggregated/acceleratorTypes",
47258	//   "response": {
47259	//     "$ref": "AcceleratorTypeAggregatedList"
47260	//   },
47261	//   "scopes": [
47262	//     "https://www.googleapis.com/auth/cloud-platform",
47263	//     "https://www.googleapis.com/auth/compute",
47264	//     "https://www.googleapis.com/auth/compute.readonly"
47265	//   ]
47266	// }
47267
47268}
47269
47270// Pages invokes f for each page of results.
47271// A non-nil error returned from f will halt the iteration.
47272// The provided context supersedes any context provided to the Context method.
47273func (c *AcceleratorTypesAggregatedListCall) Pages(ctx context.Context, f func(*AcceleratorTypeAggregatedList) error) error {
47274	c.ctx_ = ctx
47275	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
47276	for {
47277		x, err := c.Do()
47278		if err != nil {
47279			return err
47280		}
47281		if err := f(x); err != nil {
47282			return err
47283		}
47284		if x.NextPageToken == "" {
47285			return nil
47286		}
47287		c.PageToken(x.NextPageToken)
47288	}
47289}
47290
47291// method id "compute.acceleratorTypes.get":
47292
47293type AcceleratorTypesGetCall struct {
47294	s               *Service
47295	project         string
47296	zone            string
47297	acceleratorType string
47298	urlParams_      gensupport.URLParams
47299	ifNoneMatch_    string
47300	ctx_            context.Context
47301	header_         http.Header
47302}
47303
47304// Get: Returns the specified accelerator type.
47305//
47306// - acceleratorType: Name of the accelerator type to return.
47307// - project: Project ID for this request.
47308// - zone: The name of the zone for this request.
47309func (r *AcceleratorTypesService) Get(project string, zone string, acceleratorType string) *AcceleratorTypesGetCall {
47310	c := &AcceleratorTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
47311	c.project = project
47312	c.zone = zone
47313	c.acceleratorType = acceleratorType
47314	return c
47315}
47316
47317// Fields allows partial responses to be retrieved. See
47318// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47319// for more information.
47320func (c *AcceleratorTypesGetCall) Fields(s ...googleapi.Field) *AcceleratorTypesGetCall {
47321	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47322	return c
47323}
47324
47325// IfNoneMatch sets the optional parameter which makes the operation
47326// fail if the object's ETag matches the given value. This is useful for
47327// getting updates only after the object has changed since the last
47328// request. Use googleapi.IsNotModified to check whether the response
47329// error from Do is the result of In-None-Match.
47330func (c *AcceleratorTypesGetCall) IfNoneMatch(entityTag string) *AcceleratorTypesGetCall {
47331	c.ifNoneMatch_ = entityTag
47332	return c
47333}
47334
47335// Context sets the context to be used in this call's Do method. Any
47336// pending HTTP request will be aborted if the provided context is
47337// canceled.
47338func (c *AcceleratorTypesGetCall) Context(ctx context.Context) *AcceleratorTypesGetCall {
47339	c.ctx_ = ctx
47340	return c
47341}
47342
47343// Header returns an http.Header that can be modified by the caller to
47344// add HTTP headers to the request.
47345func (c *AcceleratorTypesGetCall) Header() http.Header {
47346	if c.header_ == nil {
47347		c.header_ = make(http.Header)
47348	}
47349	return c.header_
47350}
47351
47352func (c *AcceleratorTypesGetCall) doRequest(alt string) (*http.Response, error) {
47353	reqHeaders := make(http.Header)
47354	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
47355	for k, v := range c.header_ {
47356		reqHeaders[k] = v
47357	}
47358	reqHeaders.Set("User-Agent", c.s.userAgent())
47359	if c.ifNoneMatch_ != "" {
47360		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
47361	}
47362	var body io.Reader = nil
47363	c.urlParams_.Set("alt", alt)
47364	c.urlParams_.Set("prettyPrint", "false")
47365	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/acceleratorTypes/{acceleratorType}")
47366	urls += "?" + c.urlParams_.Encode()
47367	req, err := http.NewRequest("GET", urls, body)
47368	if err != nil {
47369		return nil, err
47370	}
47371	req.Header = reqHeaders
47372	googleapi.Expand(req.URL, map[string]string{
47373		"project":         c.project,
47374		"zone":            c.zone,
47375		"acceleratorType": c.acceleratorType,
47376	})
47377	return gensupport.SendRequest(c.ctx_, c.s.client, req)
47378}
47379
47380// Do executes the "compute.acceleratorTypes.get" call.
47381// Exactly one of *AcceleratorType or error will be non-nil. Any non-2xx
47382// status code is an error. Response headers are in either
47383// *AcceleratorType.ServerResponse.Header or (if a response was returned
47384// at all) in error.(*googleapi.Error).Header. Use
47385// googleapi.IsNotModified to check whether the returned error was
47386// because http.StatusNotModified was returned.
47387func (c *AcceleratorTypesGetCall) Do(opts ...googleapi.CallOption) (*AcceleratorType, error) {
47388	gensupport.SetOptions(c.urlParams_, opts...)
47389	res, err := c.doRequest("json")
47390	if res != nil && res.StatusCode == http.StatusNotModified {
47391		if res.Body != nil {
47392			res.Body.Close()
47393		}
47394		return nil, &googleapi.Error{
47395			Code:   res.StatusCode,
47396			Header: res.Header,
47397		}
47398	}
47399	if err != nil {
47400		return nil, err
47401	}
47402	defer googleapi.CloseBody(res)
47403	if err := googleapi.CheckResponse(res); err != nil {
47404		return nil, err
47405	}
47406	ret := &AcceleratorType{
47407		ServerResponse: googleapi.ServerResponse{
47408			Header:         res.Header,
47409			HTTPStatusCode: res.StatusCode,
47410		},
47411	}
47412	target := &ret
47413	if err := gensupport.DecodeResponse(target, res); err != nil {
47414		return nil, err
47415	}
47416	return ret, nil
47417	// {
47418	//   "description": "Returns the specified accelerator type.",
47419	//   "httpMethod": "GET",
47420	//   "id": "compute.acceleratorTypes.get",
47421	//   "parameterOrder": [
47422	//     "project",
47423	//     "zone",
47424	//     "acceleratorType"
47425	//   ],
47426	//   "parameters": {
47427	//     "acceleratorType": {
47428	//       "description": "Name of the accelerator type to return.",
47429	//       "location": "path",
47430	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
47431	//       "required": true,
47432	//       "type": "string"
47433	//     },
47434	//     "project": {
47435	//       "description": "Project ID for this request.",
47436	//       "location": "path",
47437	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
47438	//       "required": true,
47439	//       "type": "string"
47440	//     },
47441	//     "zone": {
47442	//       "description": "The name of the zone for this request.",
47443	//       "location": "path",
47444	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
47445	//       "required": true,
47446	//       "type": "string"
47447	//     }
47448	//   },
47449	//   "path": "projects/{project}/zones/{zone}/acceleratorTypes/{acceleratorType}",
47450	//   "response": {
47451	//     "$ref": "AcceleratorType"
47452	//   },
47453	//   "scopes": [
47454	//     "https://www.googleapis.com/auth/cloud-platform",
47455	//     "https://www.googleapis.com/auth/compute",
47456	//     "https://www.googleapis.com/auth/compute.readonly"
47457	//   ]
47458	// }
47459
47460}
47461
47462// method id "compute.acceleratorTypes.list":
47463
47464type AcceleratorTypesListCall struct {
47465	s            *Service
47466	project      string
47467	zone         string
47468	urlParams_   gensupport.URLParams
47469	ifNoneMatch_ string
47470	ctx_         context.Context
47471	header_      http.Header
47472}
47473
47474// List: Retrieves a list of accelerator types that are available to the
47475// specified project.
47476//
47477// - project: Project ID for this request.
47478// - zone: The name of the zone for this request.
47479func (r *AcceleratorTypesService) List(project string, zone string) *AcceleratorTypesListCall {
47480	c := &AcceleratorTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
47481	c.project = project
47482	c.zone = zone
47483	return c
47484}
47485
47486// Filter sets the optional parameter "filter": A filter expression that
47487// filters resources listed in the response. The expression must specify
47488// the field name, a comparison operator, and the value that you want to
47489// use for filtering. The value must be a string, a number, or a
47490// boolean. The comparison operator must be either `=`, `!=`, `>`, or
47491// `<`.
47492//
47493// For example, if you are filtering Compute Engine instances, you can
47494// exclude instances named `example-instance` by specifying `name !=
47495// example-instance`.
47496//
47497// You can also filter nested fields. For example, you could specify
47498// `scheduling.automaticRestart = false` to include instances only if
47499// they are not scheduled for automatic restarts. You can use filtering
47500// on nested fields to filter based on resource labels.
47501//
47502// To filter on multiple expressions, provide each separate expression
47503// within parentheses. For example: ``` (scheduling.automaticRestart =
47504// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
47505// is an `AND` expression. However, you can include `AND` and `OR`
47506// expressions explicitly. For example: ``` (cpuPlatform = "Intel
47507// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
47508// (scheduling.automaticRestart = true) ```
47509func (c *AcceleratorTypesListCall) Filter(filter string) *AcceleratorTypesListCall {
47510	c.urlParams_.Set("filter", filter)
47511	return c
47512}
47513
47514// MaxResults sets the optional parameter "maxResults": The maximum
47515// number of results per page that should be returned. If the number of
47516// available results is larger than `maxResults`, Compute Engine returns
47517// a `nextPageToken` that can be used to get the next page of results in
47518// subsequent list requests. Acceptable values are `0` to `500`,
47519// inclusive. (Default: `500`)
47520func (c *AcceleratorTypesListCall) MaxResults(maxResults int64) *AcceleratorTypesListCall {
47521	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
47522	return c
47523}
47524
47525// OrderBy sets the optional parameter "orderBy": Sorts list results by
47526// a certain order. By default, results are returned in alphanumerical
47527// order based on the resource name.
47528//
47529// You can also sort results in descending order based on the creation
47530// timestamp using `orderBy="creationTimestamp desc". This sorts
47531// results based on the `creationTimestamp` field in reverse
47532// chronological order (newest result first). Use this to sort resources
47533// like operations so that the newest operation is returned
47534// first.
47535//
47536// Currently, only sorting by `name` or `creationTimestamp desc` is
47537// supported.
47538func (c *AcceleratorTypesListCall) OrderBy(orderBy string) *AcceleratorTypesListCall {
47539	c.urlParams_.Set("orderBy", orderBy)
47540	return c
47541}
47542
47543// PageToken sets the optional parameter "pageToken": Specifies a page
47544// token to use. Set `pageToken` to the `nextPageToken` returned by a
47545// previous list request to get the next page of results.
47546func (c *AcceleratorTypesListCall) PageToken(pageToken string) *AcceleratorTypesListCall {
47547	c.urlParams_.Set("pageToken", pageToken)
47548	return c
47549}
47550
47551// ReturnPartialSuccess sets the optional parameter
47552// "returnPartialSuccess": Opt-in for partial success behavior which
47553// provides partial results in case of failure. The default value is
47554// false.
47555func (c *AcceleratorTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AcceleratorTypesListCall {
47556	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
47557	return c
47558}
47559
47560// Fields allows partial responses to be retrieved. See
47561// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47562// for more information.
47563func (c *AcceleratorTypesListCall) Fields(s ...googleapi.Field) *AcceleratorTypesListCall {
47564	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47565	return c
47566}
47567
47568// IfNoneMatch sets the optional parameter which makes the operation
47569// fail if the object's ETag matches the given value. This is useful for
47570// getting updates only after the object has changed since the last
47571// request. Use googleapi.IsNotModified to check whether the response
47572// error from Do is the result of In-None-Match.
47573func (c *AcceleratorTypesListCall) IfNoneMatch(entityTag string) *AcceleratorTypesListCall {
47574	c.ifNoneMatch_ = entityTag
47575	return c
47576}
47577
47578// Context sets the context to be used in this call's Do method. Any
47579// pending HTTP request will be aborted if the provided context is
47580// canceled.
47581func (c *AcceleratorTypesListCall) Context(ctx context.Context) *AcceleratorTypesListCall {
47582	c.ctx_ = ctx
47583	return c
47584}
47585
47586// Header returns an http.Header that can be modified by the caller to
47587// add HTTP headers to the request.
47588func (c *AcceleratorTypesListCall) Header() http.Header {
47589	if c.header_ == nil {
47590		c.header_ = make(http.Header)
47591	}
47592	return c.header_
47593}
47594
47595func (c *AcceleratorTypesListCall) doRequest(alt string) (*http.Response, error) {
47596	reqHeaders := make(http.Header)
47597	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
47598	for k, v := range c.header_ {
47599		reqHeaders[k] = v
47600	}
47601	reqHeaders.Set("User-Agent", c.s.userAgent())
47602	if c.ifNoneMatch_ != "" {
47603		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
47604	}
47605	var body io.Reader = nil
47606	c.urlParams_.Set("alt", alt)
47607	c.urlParams_.Set("prettyPrint", "false")
47608	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/acceleratorTypes")
47609	urls += "?" + c.urlParams_.Encode()
47610	req, err := http.NewRequest("GET", urls, body)
47611	if err != nil {
47612		return nil, err
47613	}
47614	req.Header = reqHeaders
47615	googleapi.Expand(req.URL, map[string]string{
47616		"project": c.project,
47617		"zone":    c.zone,
47618	})
47619	return gensupport.SendRequest(c.ctx_, c.s.client, req)
47620}
47621
47622// Do executes the "compute.acceleratorTypes.list" call.
47623// Exactly one of *AcceleratorTypeList or error will be non-nil. Any
47624// non-2xx status code is an error. Response headers are in either
47625// *AcceleratorTypeList.ServerResponse.Header or (if a response was
47626// returned at all) in error.(*googleapi.Error).Header. Use
47627// googleapi.IsNotModified to check whether the returned error was
47628// because http.StatusNotModified was returned.
47629func (c *AcceleratorTypesListCall) Do(opts ...googleapi.CallOption) (*AcceleratorTypeList, error) {
47630	gensupport.SetOptions(c.urlParams_, opts...)
47631	res, err := c.doRequest("json")
47632	if res != nil && res.StatusCode == http.StatusNotModified {
47633		if res.Body != nil {
47634			res.Body.Close()
47635		}
47636		return nil, &googleapi.Error{
47637			Code:   res.StatusCode,
47638			Header: res.Header,
47639		}
47640	}
47641	if err != nil {
47642		return nil, err
47643	}
47644	defer googleapi.CloseBody(res)
47645	if err := googleapi.CheckResponse(res); err != nil {
47646		return nil, err
47647	}
47648	ret := &AcceleratorTypeList{
47649		ServerResponse: googleapi.ServerResponse{
47650			Header:         res.Header,
47651			HTTPStatusCode: res.StatusCode,
47652		},
47653	}
47654	target := &ret
47655	if err := gensupport.DecodeResponse(target, res); err != nil {
47656		return nil, err
47657	}
47658	return ret, nil
47659	// {
47660	//   "description": "Retrieves a list of accelerator types that are available to the specified project.",
47661	//   "httpMethod": "GET",
47662	//   "id": "compute.acceleratorTypes.list",
47663	//   "parameterOrder": [
47664	//     "project",
47665	//     "zone"
47666	//   ],
47667	//   "parameters": {
47668	//     "filter": {
47669	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
47670	//       "location": "query",
47671	//       "type": "string"
47672	//     },
47673	//     "maxResults": {
47674	//       "default": "500",
47675	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
47676	//       "format": "uint32",
47677	//       "location": "query",
47678	//       "minimum": "0",
47679	//       "type": "integer"
47680	//     },
47681	//     "orderBy": {
47682	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
47683	//       "location": "query",
47684	//       "type": "string"
47685	//     },
47686	//     "pageToken": {
47687	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
47688	//       "location": "query",
47689	//       "type": "string"
47690	//     },
47691	//     "project": {
47692	//       "description": "Project ID for this request.",
47693	//       "location": "path",
47694	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
47695	//       "required": true,
47696	//       "type": "string"
47697	//     },
47698	//     "returnPartialSuccess": {
47699	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
47700	//       "location": "query",
47701	//       "type": "boolean"
47702	//     },
47703	//     "zone": {
47704	//       "description": "The name of the zone for this request.",
47705	//       "location": "path",
47706	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
47707	//       "required": true,
47708	//       "type": "string"
47709	//     }
47710	//   },
47711	//   "path": "projects/{project}/zones/{zone}/acceleratorTypes",
47712	//   "response": {
47713	//     "$ref": "AcceleratorTypeList"
47714	//   },
47715	//   "scopes": [
47716	//     "https://www.googleapis.com/auth/cloud-platform",
47717	//     "https://www.googleapis.com/auth/compute",
47718	//     "https://www.googleapis.com/auth/compute.readonly"
47719	//   ]
47720	// }
47721
47722}
47723
47724// Pages invokes f for each page of results.
47725// A non-nil error returned from f will halt the iteration.
47726// The provided context supersedes any context provided to the Context method.
47727func (c *AcceleratorTypesListCall) Pages(ctx context.Context, f func(*AcceleratorTypeList) error) error {
47728	c.ctx_ = ctx
47729	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
47730	for {
47731		x, err := c.Do()
47732		if err != nil {
47733			return err
47734		}
47735		if err := f(x); err != nil {
47736			return err
47737		}
47738		if x.NextPageToken == "" {
47739			return nil
47740		}
47741		c.PageToken(x.NextPageToken)
47742	}
47743}
47744
47745// method id "compute.addresses.aggregatedList":
47746
47747type AddressesAggregatedListCall struct {
47748	s            *Service
47749	project      string
47750	urlParams_   gensupport.URLParams
47751	ifNoneMatch_ string
47752	ctx_         context.Context
47753	header_      http.Header
47754}
47755
47756// AggregatedList: Retrieves an aggregated list of addresses.
47757//
47758// - project: Project ID for this request.
47759// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/aggregatedList
47760func (r *AddressesService) AggregatedList(project string) *AddressesAggregatedListCall {
47761	c := &AddressesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
47762	c.project = project
47763	return c
47764}
47765
47766// Filter sets the optional parameter "filter": A filter expression that
47767// filters resources listed in the response. The expression must specify
47768// the field name, a comparison operator, and the value that you want to
47769// use for filtering. The value must be a string, a number, or a
47770// boolean. The comparison operator must be either `=`, `!=`, `>`, or
47771// `<`.
47772//
47773// For example, if you are filtering Compute Engine instances, you can
47774// exclude instances named `example-instance` by specifying `name !=
47775// example-instance`.
47776//
47777// You can also filter nested fields. For example, you could specify
47778// `scheduling.automaticRestart = false` to include instances only if
47779// they are not scheduled for automatic restarts. You can use filtering
47780// on nested fields to filter based on resource labels.
47781//
47782// To filter on multiple expressions, provide each separate expression
47783// within parentheses. For example: ``` (scheduling.automaticRestart =
47784// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
47785// is an `AND` expression. However, you can include `AND` and `OR`
47786// expressions explicitly. For example: ``` (cpuPlatform = "Intel
47787// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
47788// (scheduling.automaticRestart = true) ```
47789func (c *AddressesAggregatedListCall) Filter(filter string) *AddressesAggregatedListCall {
47790	c.urlParams_.Set("filter", filter)
47791	return c
47792}
47793
47794// IncludeAllScopes sets the optional parameter "includeAllScopes":
47795// Indicates whether every visible scope for each scope type (zone,
47796// region, global) should be included in the response. For new resource
47797// types added after this field, the flag has no effect as new resource
47798// types will always include every visible scope for each scope type in
47799// response. For resource types which predate this field, if this flag
47800// is omitted or false, only scopes of the scope types where the
47801// resource type is expected to be found will be included.
47802func (c *AddressesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *AddressesAggregatedListCall {
47803	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
47804	return c
47805}
47806
47807// MaxResults sets the optional parameter "maxResults": The maximum
47808// number of results per page that should be returned. If the number of
47809// available results is larger than `maxResults`, Compute Engine returns
47810// a `nextPageToken` that can be used to get the next page of results in
47811// subsequent list requests. Acceptable values are `0` to `500`,
47812// inclusive. (Default: `500`)
47813func (c *AddressesAggregatedListCall) MaxResults(maxResults int64) *AddressesAggregatedListCall {
47814	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
47815	return c
47816}
47817
47818// OrderBy sets the optional parameter "orderBy": Sorts list results by
47819// a certain order. By default, results are returned in alphanumerical
47820// order based on the resource name.
47821//
47822// You can also sort results in descending order based on the creation
47823// timestamp using `orderBy="creationTimestamp desc". This sorts
47824// results based on the `creationTimestamp` field in reverse
47825// chronological order (newest result first). Use this to sort resources
47826// like operations so that the newest operation is returned
47827// first.
47828//
47829// Currently, only sorting by `name` or `creationTimestamp desc` is
47830// supported.
47831func (c *AddressesAggregatedListCall) OrderBy(orderBy string) *AddressesAggregatedListCall {
47832	c.urlParams_.Set("orderBy", orderBy)
47833	return c
47834}
47835
47836// PageToken sets the optional parameter "pageToken": Specifies a page
47837// token to use. Set `pageToken` to the `nextPageToken` returned by a
47838// previous list request to get the next page of results.
47839func (c *AddressesAggregatedListCall) PageToken(pageToken string) *AddressesAggregatedListCall {
47840	c.urlParams_.Set("pageToken", pageToken)
47841	return c
47842}
47843
47844// ReturnPartialSuccess sets the optional parameter
47845// "returnPartialSuccess": Opt-in for partial success behavior which
47846// provides partial results in case of failure. The default value is
47847// false.
47848func (c *AddressesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AddressesAggregatedListCall {
47849	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
47850	return c
47851}
47852
47853// Fields allows partial responses to be retrieved. See
47854// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47855// for more information.
47856func (c *AddressesAggregatedListCall) Fields(s ...googleapi.Field) *AddressesAggregatedListCall {
47857	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47858	return c
47859}
47860
47861// IfNoneMatch sets the optional parameter which makes the operation
47862// fail if the object's ETag matches the given value. This is useful for
47863// getting updates only after the object has changed since the last
47864// request. Use googleapi.IsNotModified to check whether the response
47865// error from Do is the result of In-None-Match.
47866func (c *AddressesAggregatedListCall) IfNoneMatch(entityTag string) *AddressesAggregatedListCall {
47867	c.ifNoneMatch_ = entityTag
47868	return c
47869}
47870
47871// Context sets the context to be used in this call's Do method. Any
47872// pending HTTP request will be aborted if the provided context is
47873// canceled.
47874func (c *AddressesAggregatedListCall) Context(ctx context.Context) *AddressesAggregatedListCall {
47875	c.ctx_ = ctx
47876	return c
47877}
47878
47879// Header returns an http.Header that can be modified by the caller to
47880// add HTTP headers to the request.
47881func (c *AddressesAggregatedListCall) Header() http.Header {
47882	if c.header_ == nil {
47883		c.header_ = make(http.Header)
47884	}
47885	return c.header_
47886}
47887
47888func (c *AddressesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
47889	reqHeaders := make(http.Header)
47890	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
47891	for k, v := range c.header_ {
47892		reqHeaders[k] = v
47893	}
47894	reqHeaders.Set("User-Agent", c.s.userAgent())
47895	if c.ifNoneMatch_ != "" {
47896		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
47897	}
47898	var body io.Reader = nil
47899	c.urlParams_.Set("alt", alt)
47900	c.urlParams_.Set("prettyPrint", "false")
47901	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/addresses")
47902	urls += "?" + c.urlParams_.Encode()
47903	req, err := http.NewRequest("GET", urls, body)
47904	if err != nil {
47905		return nil, err
47906	}
47907	req.Header = reqHeaders
47908	googleapi.Expand(req.URL, map[string]string{
47909		"project": c.project,
47910	})
47911	return gensupport.SendRequest(c.ctx_, c.s.client, req)
47912}
47913
47914// Do executes the "compute.addresses.aggregatedList" call.
47915// Exactly one of *AddressAggregatedList or error will be non-nil. Any
47916// non-2xx status code is an error. Response headers are in either
47917// *AddressAggregatedList.ServerResponse.Header or (if a response was
47918// returned at all) in error.(*googleapi.Error).Header. Use
47919// googleapi.IsNotModified to check whether the returned error was
47920// because http.StatusNotModified was returned.
47921func (c *AddressesAggregatedListCall) Do(opts ...googleapi.CallOption) (*AddressAggregatedList, error) {
47922	gensupport.SetOptions(c.urlParams_, opts...)
47923	res, err := c.doRequest("json")
47924	if res != nil && res.StatusCode == http.StatusNotModified {
47925		if res.Body != nil {
47926			res.Body.Close()
47927		}
47928		return nil, &googleapi.Error{
47929			Code:   res.StatusCode,
47930			Header: res.Header,
47931		}
47932	}
47933	if err != nil {
47934		return nil, err
47935	}
47936	defer googleapi.CloseBody(res)
47937	if err := googleapi.CheckResponse(res); err != nil {
47938		return nil, err
47939	}
47940	ret := &AddressAggregatedList{
47941		ServerResponse: googleapi.ServerResponse{
47942			Header:         res.Header,
47943			HTTPStatusCode: res.StatusCode,
47944		},
47945	}
47946	target := &ret
47947	if err := gensupport.DecodeResponse(target, res); err != nil {
47948		return nil, err
47949	}
47950	return ret, nil
47951	// {
47952	//   "description": "Retrieves an aggregated list of addresses.",
47953	//   "httpMethod": "GET",
47954	//   "id": "compute.addresses.aggregatedList",
47955	//   "parameterOrder": [
47956	//     "project"
47957	//   ],
47958	//   "parameters": {
47959	//     "filter": {
47960	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
47961	//       "location": "query",
47962	//       "type": "string"
47963	//     },
47964	//     "includeAllScopes": {
47965	//       "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.",
47966	//       "location": "query",
47967	//       "type": "boolean"
47968	//     },
47969	//     "maxResults": {
47970	//       "default": "500",
47971	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
47972	//       "format": "uint32",
47973	//       "location": "query",
47974	//       "minimum": "0",
47975	//       "type": "integer"
47976	//     },
47977	//     "orderBy": {
47978	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
47979	//       "location": "query",
47980	//       "type": "string"
47981	//     },
47982	//     "pageToken": {
47983	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
47984	//       "location": "query",
47985	//       "type": "string"
47986	//     },
47987	//     "project": {
47988	//       "description": "Project ID for this request.",
47989	//       "location": "path",
47990	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
47991	//       "required": true,
47992	//       "type": "string"
47993	//     },
47994	//     "returnPartialSuccess": {
47995	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
47996	//       "location": "query",
47997	//       "type": "boolean"
47998	//     }
47999	//   },
48000	//   "path": "projects/{project}/aggregated/addresses",
48001	//   "response": {
48002	//     "$ref": "AddressAggregatedList"
48003	//   },
48004	//   "scopes": [
48005	//     "https://www.googleapis.com/auth/cloud-platform",
48006	//     "https://www.googleapis.com/auth/compute",
48007	//     "https://www.googleapis.com/auth/compute.readonly"
48008	//   ]
48009	// }
48010
48011}
48012
48013// Pages invokes f for each page of results.
48014// A non-nil error returned from f will halt the iteration.
48015// The provided context supersedes any context provided to the Context method.
48016func (c *AddressesAggregatedListCall) Pages(ctx context.Context, f func(*AddressAggregatedList) error) error {
48017	c.ctx_ = ctx
48018	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
48019	for {
48020		x, err := c.Do()
48021		if err != nil {
48022			return err
48023		}
48024		if err := f(x); err != nil {
48025			return err
48026		}
48027		if x.NextPageToken == "" {
48028			return nil
48029		}
48030		c.PageToken(x.NextPageToken)
48031	}
48032}
48033
48034// method id "compute.addresses.delete":
48035
48036type AddressesDeleteCall struct {
48037	s          *Service
48038	project    string
48039	region     string
48040	address    string
48041	urlParams_ gensupport.URLParams
48042	ctx_       context.Context
48043	header_    http.Header
48044}
48045
48046// Delete: Deletes the specified address resource.
48047//
48048// - address: Name of the address resource to delete.
48049// - project: Project ID for this request.
48050// - region: Name of the region for this request.
48051// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/delete
48052func (r *AddressesService) Delete(project string, region string, address string) *AddressesDeleteCall {
48053	c := &AddressesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48054	c.project = project
48055	c.region = region
48056	c.address = address
48057	return c
48058}
48059
48060// RequestId sets the optional parameter "requestId": An optional
48061// request ID to identify requests. Specify a unique request ID so that
48062// if you must retry your request, the server will know to ignore the
48063// request if it has already been completed.
48064//
48065// For example, consider a situation where you make an initial request
48066// and the request times out. If you make the request again with the
48067// same request ID, the server can check if original operation with the
48068// same request ID was received, and if so, will ignore the second
48069// request. This prevents clients from accidentally creating duplicate
48070// commitments.
48071//
48072// The request ID must be a valid UUID with the exception that zero UUID
48073// is not supported (00000000-0000-0000-0000-000000000000).
48074func (c *AddressesDeleteCall) RequestId(requestId string) *AddressesDeleteCall {
48075	c.urlParams_.Set("requestId", requestId)
48076	return c
48077}
48078
48079// Fields allows partial responses to be retrieved. See
48080// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48081// for more information.
48082func (c *AddressesDeleteCall) Fields(s ...googleapi.Field) *AddressesDeleteCall {
48083	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48084	return c
48085}
48086
48087// Context sets the context to be used in this call's Do method. Any
48088// pending HTTP request will be aborted if the provided context is
48089// canceled.
48090func (c *AddressesDeleteCall) Context(ctx context.Context) *AddressesDeleteCall {
48091	c.ctx_ = ctx
48092	return c
48093}
48094
48095// Header returns an http.Header that can be modified by the caller to
48096// add HTTP headers to the request.
48097func (c *AddressesDeleteCall) Header() http.Header {
48098	if c.header_ == nil {
48099		c.header_ = make(http.Header)
48100	}
48101	return c.header_
48102}
48103
48104func (c *AddressesDeleteCall) doRequest(alt string) (*http.Response, error) {
48105	reqHeaders := make(http.Header)
48106	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
48107	for k, v := range c.header_ {
48108		reqHeaders[k] = v
48109	}
48110	reqHeaders.Set("User-Agent", c.s.userAgent())
48111	var body io.Reader = nil
48112	c.urlParams_.Set("alt", alt)
48113	c.urlParams_.Set("prettyPrint", "false")
48114	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/addresses/{address}")
48115	urls += "?" + c.urlParams_.Encode()
48116	req, err := http.NewRequest("DELETE", urls, body)
48117	if err != nil {
48118		return nil, err
48119	}
48120	req.Header = reqHeaders
48121	googleapi.Expand(req.URL, map[string]string{
48122		"project": c.project,
48123		"region":  c.region,
48124		"address": c.address,
48125	})
48126	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48127}
48128
48129// Do executes the "compute.addresses.delete" call.
48130// Exactly one of *Operation or error will be non-nil. Any non-2xx
48131// status code is an error. Response headers are in either
48132// *Operation.ServerResponse.Header or (if a response was returned at
48133// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
48134// to check whether the returned error was because
48135// http.StatusNotModified was returned.
48136func (c *AddressesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
48137	gensupport.SetOptions(c.urlParams_, opts...)
48138	res, err := c.doRequest("json")
48139	if res != nil && res.StatusCode == http.StatusNotModified {
48140		if res.Body != nil {
48141			res.Body.Close()
48142		}
48143		return nil, &googleapi.Error{
48144			Code:   res.StatusCode,
48145			Header: res.Header,
48146		}
48147	}
48148	if err != nil {
48149		return nil, err
48150	}
48151	defer googleapi.CloseBody(res)
48152	if err := googleapi.CheckResponse(res); err != nil {
48153		return nil, err
48154	}
48155	ret := &Operation{
48156		ServerResponse: googleapi.ServerResponse{
48157			Header:         res.Header,
48158			HTTPStatusCode: res.StatusCode,
48159		},
48160	}
48161	target := &ret
48162	if err := gensupport.DecodeResponse(target, res); err != nil {
48163		return nil, err
48164	}
48165	return ret, nil
48166	// {
48167	//   "description": "Deletes the specified address resource.",
48168	//   "httpMethod": "DELETE",
48169	//   "id": "compute.addresses.delete",
48170	//   "parameterOrder": [
48171	//     "project",
48172	//     "region",
48173	//     "address"
48174	//   ],
48175	//   "parameters": {
48176	//     "address": {
48177	//       "description": "Name of the address resource to delete.",
48178	//       "location": "path",
48179	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
48180	//       "required": true,
48181	//       "type": "string"
48182	//     },
48183	//     "project": {
48184	//       "description": "Project ID for this request.",
48185	//       "location": "path",
48186	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48187	//       "required": true,
48188	//       "type": "string"
48189	//     },
48190	//     "region": {
48191	//       "description": "Name of the region for this request.",
48192	//       "location": "path",
48193	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
48194	//       "required": true,
48195	//       "type": "string"
48196	//     },
48197	//     "requestId": {
48198	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
48199	//       "location": "query",
48200	//       "type": "string"
48201	//     }
48202	//   },
48203	//   "path": "projects/{project}/regions/{region}/addresses/{address}",
48204	//   "response": {
48205	//     "$ref": "Operation"
48206	//   },
48207	//   "scopes": [
48208	//     "https://www.googleapis.com/auth/cloud-platform",
48209	//     "https://www.googleapis.com/auth/compute"
48210	//   ]
48211	// }
48212
48213}
48214
48215// method id "compute.addresses.get":
48216
48217type AddressesGetCall struct {
48218	s            *Service
48219	project      string
48220	region       string
48221	address      string
48222	urlParams_   gensupport.URLParams
48223	ifNoneMatch_ string
48224	ctx_         context.Context
48225	header_      http.Header
48226}
48227
48228// Get: Returns the specified address resource.
48229//
48230// - address: Name of the address resource to return.
48231// - project: Project ID for this request.
48232// - region: Name of the region for this request.
48233// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/get
48234func (r *AddressesService) Get(project string, region string, address string) *AddressesGetCall {
48235	c := &AddressesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48236	c.project = project
48237	c.region = region
48238	c.address = address
48239	return c
48240}
48241
48242// Fields allows partial responses to be retrieved. See
48243// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48244// for more information.
48245func (c *AddressesGetCall) Fields(s ...googleapi.Field) *AddressesGetCall {
48246	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48247	return c
48248}
48249
48250// IfNoneMatch sets the optional parameter which makes the operation
48251// fail if the object's ETag matches the given value. This is useful for
48252// getting updates only after the object has changed since the last
48253// request. Use googleapi.IsNotModified to check whether the response
48254// error from Do is the result of In-None-Match.
48255func (c *AddressesGetCall) IfNoneMatch(entityTag string) *AddressesGetCall {
48256	c.ifNoneMatch_ = entityTag
48257	return c
48258}
48259
48260// Context sets the context to be used in this call's Do method. Any
48261// pending HTTP request will be aborted if the provided context is
48262// canceled.
48263func (c *AddressesGetCall) Context(ctx context.Context) *AddressesGetCall {
48264	c.ctx_ = ctx
48265	return c
48266}
48267
48268// Header returns an http.Header that can be modified by the caller to
48269// add HTTP headers to the request.
48270func (c *AddressesGetCall) Header() http.Header {
48271	if c.header_ == nil {
48272		c.header_ = make(http.Header)
48273	}
48274	return c.header_
48275}
48276
48277func (c *AddressesGetCall) doRequest(alt string) (*http.Response, error) {
48278	reqHeaders := make(http.Header)
48279	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
48280	for k, v := range c.header_ {
48281		reqHeaders[k] = v
48282	}
48283	reqHeaders.Set("User-Agent", c.s.userAgent())
48284	if c.ifNoneMatch_ != "" {
48285		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
48286	}
48287	var body io.Reader = nil
48288	c.urlParams_.Set("alt", alt)
48289	c.urlParams_.Set("prettyPrint", "false")
48290	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/addresses/{address}")
48291	urls += "?" + c.urlParams_.Encode()
48292	req, err := http.NewRequest("GET", urls, body)
48293	if err != nil {
48294		return nil, err
48295	}
48296	req.Header = reqHeaders
48297	googleapi.Expand(req.URL, map[string]string{
48298		"project": c.project,
48299		"region":  c.region,
48300		"address": c.address,
48301	})
48302	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48303}
48304
48305// Do executes the "compute.addresses.get" call.
48306// Exactly one of *Address or error will be non-nil. Any non-2xx status
48307// code is an error. Response headers are in either
48308// *Address.ServerResponse.Header or (if a response was returned at all)
48309// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
48310// check whether the returned error was because http.StatusNotModified
48311// was returned.
48312func (c *AddressesGetCall) Do(opts ...googleapi.CallOption) (*Address, error) {
48313	gensupport.SetOptions(c.urlParams_, opts...)
48314	res, err := c.doRequest("json")
48315	if res != nil && res.StatusCode == http.StatusNotModified {
48316		if res.Body != nil {
48317			res.Body.Close()
48318		}
48319		return nil, &googleapi.Error{
48320			Code:   res.StatusCode,
48321			Header: res.Header,
48322		}
48323	}
48324	if err != nil {
48325		return nil, err
48326	}
48327	defer googleapi.CloseBody(res)
48328	if err := googleapi.CheckResponse(res); err != nil {
48329		return nil, err
48330	}
48331	ret := &Address{
48332		ServerResponse: googleapi.ServerResponse{
48333			Header:         res.Header,
48334			HTTPStatusCode: res.StatusCode,
48335		},
48336	}
48337	target := &ret
48338	if err := gensupport.DecodeResponse(target, res); err != nil {
48339		return nil, err
48340	}
48341	return ret, nil
48342	// {
48343	//   "description": "Returns the specified address resource.",
48344	//   "httpMethod": "GET",
48345	//   "id": "compute.addresses.get",
48346	//   "parameterOrder": [
48347	//     "project",
48348	//     "region",
48349	//     "address"
48350	//   ],
48351	//   "parameters": {
48352	//     "address": {
48353	//       "description": "Name of the address resource to return.",
48354	//       "location": "path",
48355	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
48356	//       "required": true,
48357	//       "type": "string"
48358	//     },
48359	//     "project": {
48360	//       "description": "Project ID for this request.",
48361	//       "location": "path",
48362	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48363	//       "required": true,
48364	//       "type": "string"
48365	//     },
48366	//     "region": {
48367	//       "description": "Name of the region for this request.",
48368	//       "location": "path",
48369	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
48370	//       "required": true,
48371	//       "type": "string"
48372	//     }
48373	//   },
48374	//   "path": "projects/{project}/regions/{region}/addresses/{address}",
48375	//   "response": {
48376	//     "$ref": "Address"
48377	//   },
48378	//   "scopes": [
48379	//     "https://www.googleapis.com/auth/cloud-platform",
48380	//     "https://www.googleapis.com/auth/compute",
48381	//     "https://www.googleapis.com/auth/compute.readonly"
48382	//   ]
48383	// }
48384
48385}
48386
48387// method id "compute.addresses.insert":
48388
48389type AddressesInsertCall struct {
48390	s          *Service
48391	project    string
48392	region     string
48393	address    *Address
48394	urlParams_ gensupport.URLParams
48395	ctx_       context.Context
48396	header_    http.Header
48397}
48398
48399// Insert: Creates an address resource in the specified project by using
48400// the data included in the request.
48401//
48402// - project: Project ID for this request.
48403// - region: Name of the region for this request.
48404// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/insert
48405func (r *AddressesService) Insert(project string, region string, address *Address) *AddressesInsertCall {
48406	c := &AddressesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48407	c.project = project
48408	c.region = region
48409	c.address = address
48410	return c
48411}
48412
48413// RequestId sets the optional parameter "requestId": An optional
48414// request ID to identify requests. Specify a unique request ID so that
48415// if you must retry your request, the server will know to ignore the
48416// request if it has already been completed.
48417//
48418// For example, consider a situation where you make an initial request
48419// and the request times out. If you make the request again with the
48420// same request ID, the server can check if original operation with the
48421// same request ID was received, and if so, will ignore the second
48422// request. This prevents clients from accidentally creating duplicate
48423// commitments.
48424//
48425// The request ID must be a valid UUID with the exception that zero UUID
48426// is not supported (00000000-0000-0000-0000-000000000000).
48427func (c *AddressesInsertCall) RequestId(requestId string) *AddressesInsertCall {
48428	c.urlParams_.Set("requestId", requestId)
48429	return c
48430}
48431
48432// Fields allows partial responses to be retrieved. See
48433// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48434// for more information.
48435func (c *AddressesInsertCall) Fields(s ...googleapi.Field) *AddressesInsertCall {
48436	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48437	return c
48438}
48439
48440// Context sets the context to be used in this call's Do method. Any
48441// pending HTTP request will be aborted if the provided context is
48442// canceled.
48443func (c *AddressesInsertCall) Context(ctx context.Context) *AddressesInsertCall {
48444	c.ctx_ = ctx
48445	return c
48446}
48447
48448// Header returns an http.Header that can be modified by the caller to
48449// add HTTP headers to the request.
48450func (c *AddressesInsertCall) Header() http.Header {
48451	if c.header_ == nil {
48452		c.header_ = make(http.Header)
48453	}
48454	return c.header_
48455}
48456
48457func (c *AddressesInsertCall) doRequest(alt string) (*http.Response, error) {
48458	reqHeaders := make(http.Header)
48459	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
48460	for k, v := range c.header_ {
48461		reqHeaders[k] = v
48462	}
48463	reqHeaders.Set("User-Agent", c.s.userAgent())
48464	var body io.Reader = nil
48465	body, err := googleapi.WithoutDataWrapper.JSONReader(c.address)
48466	if err != nil {
48467		return nil, err
48468	}
48469	reqHeaders.Set("Content-Type", "application/json")
48470	c.urlParams_.Set("alt", alt)
48471	c.urlParams_.Set("prettyPrint", "false")
48472	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/addresses")
48473	urls += "?" + c.urlParams_.Encode()
48474	req, err := http.NewRequest("POST", urls, body)
48475	if err != nil {
48476		return nil, err
48477	}
48478	req.Header = reqHeaders
48479	googleapi.Expand(req.URL, map[string]string{
48480		"project": c.project,
48481		"region":  c.region,
48482	})
48483	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48484}
48485
48486// Do executes the "compute.addresses.insert" call.
48487// Exactly one of *Operation or error will be non-nil. Any non-2xx
48488// status code is an error. Response headers are in either
48489// *Operation.ServerResponse.Header or (if a response was returned at
48490// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
48491// to check whether the returned error was because
48492// http.StatusNotModified was returned.
48493func (c *AddressesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
48494	gensupport.SetOptions(c.urlParams_, opts...)
48495	res, err := c.doRequest("json")
48496	if res != nil && res.StatusCode == http.StatusNotModified {
48497		if res.Body != nil {
48498			res.Body.Close()
48499		}
48500		return nil, &googleapi.Error{
48501			Code:   res.StatusCode,
48502			Header: res.Header,
48503		}
48504	}
48505	if err != nil {
48506		return nil, err
48507	}
48508	defer googleapi.CloseBody(res)
48509	if err := googleapi.CheckResponse(res); err != nil {
48510		return nil, err
48511	}
48512	ret := &Operation{
48513		ServerResponse: googleapi.ServerResponse{
48514			Header:         res.Header,
48515			HTTPStatusCode: res.StatusCode,
48516		},
48517	}
48518	target := &ret
48519	if err := gensupport.DecodeResponse(target, res); err != nil {
48520		return nil, err
48521	}
48522	return ret, nil
48523	// {
48524	//   "description": "Creates an address resource in the specified project by using the data included in the request.",
48525	//   "httpMethod": "POST",
48526	//   "id": "compute.addresses.insert",
48527	//   "parameterOrder": [
48528	//     "project",
48529	//     "region"
48530	//   ],
48531	//   "parameters": {
48532	//     "project": {
48533	//       "description": "Project ID for this request.",
48534	//       "location": "path",
48535	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48536	//       "required": true,
48537	//       "type": "string"
48538	//     },
48539	//     "region": {
48540	//       "description": "Name of the region for this request.",
48541	//       "location": "path",
48542	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
48543	//       "required": true,
48544	//       "type": "string"
48545	//     },
48546	//     "requestId": {
48547	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
48548	//       "location": "query",
48549	//       "type": "string"
48550	//     }
48551	//   },
48552	//   "path": "projects/{project}/regions/{region}/addresses",
48553	//   "request": {
48554	//     "$ref": "Address"
48555	//   },
48556	//   "response": {
48557	//     "$ref": "Operation"
48558	//   },
48559	//   "scopes": [
48560	//     "https://www.googleapis.com/auth/cloud-platform",
48561	//     "https://www.googleapis.com/auth/compute"
48562	//   ]
48563	// }
48564
48565}
48566
48567// method id "compute.addresses.list":
48568
48569type AddressesListCall struct {
48570	s            *Service
48571	project      string
48572	region       string
48573	urlParams_   gensupport.URLParams
48574	ifNoneMatch_ string
48575	ctx_         context.Context
48576	header_      http.Header
48577}
48578
48579// List: Retrieves a list of addresses contained within the specified
48580// region.
48581//
48582// - project: Project ID for this request.
48583// - region: Name of the region for this request.
48584// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/list
48585func (r *AddressesService) List(project string, region string) *AddressesListCall {
48586	c := &AddressesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48587	c.project = project
48588	c.region = region
48589	return c
48590}
48591
48592// Filter sets the optional parameter "filter": A filter expression that
48593// filters resources listed in the response. The expression must specify
48594// the field name, a comparison operator, and the value that you want to
48595// use for filtering. The value must be a string, a number, or a
48596// boolean. The comparison operator must be either `=`, `!=`, `>`, or
48597// `<`.
48598//
48599// For example, if you are filtering Compute Engine instances, you can
48600// exclude instances named `example-instance` by specifying `name !=
48601// example-instance`.
48602//
48603// You can also filter nested fields. For example, you could specify
48604// `scheduling.automaticRestart = false` to include instances only if
48605// they are not scheduled for automatic restarts. You can use filtering
48606// on nested fields to filter based on resource labels.
48607//
48608// To filter on multiple expressions, provide each separate expression
48609// within parentheses. For example: ``` (scheduling.automaticRestart =
48610// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
48611// is an `AND` expression. However, you can include `AND` and `OR`
48612// expressions explicitly. For example: ``` (cpuPlatform = "Intel
48613// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
48614// (scheduling.automaticRestart = true) ```
48615func (c *AddressesListCall) Filter(filter string) *AddressesListCall {
48616	c.urlParams_.Set("filter", filter)
48617	return c
48618}
48619
48620// MaxResults sets the optional parameter "maxResults": The maximum
48621// number of results per page that should be returned. If the number of
48622// available results is larger than `maxResults`, Compute Engine returns
48623// a `nextPageToken` that can be used to get the next page of results in
48624// subsequent list requests. Acceptable values are `0` to `500`,
48625// inclusive. (Default: `500`)
48626func (c *AddressesListCall) MaxResults(maxResults int64) *AddressesListCall {
48627	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
48628	return c
48629}
48630
48631// OrderBy sets the optional parameter "orderBy": Sorts list results by
48632// a certain order. By default, results are returned in alphanumerical
48633// order based on the resource name.
48634//
48635// You can also sort results in descending order based on the creation
48636// timestamp using `orderBy="creationTimestamp desc". This sorts
48637// results based on the `creationTimestamp` field in reverse
48638// chronological order (newest result first). Use this to sort resources
48639// like operations so that the newest operation is returned
48640// first.
48641//
48642// Currently, only sorting by `name` or `creationTimestamp desc` is
48643// supported.
48644func (c *AddressesListCall) OrderBy(orderBy string) *AddressesListCall {
48645	c.urlParams_.Set("orderBy", orderBy)
48646	return c
48647}
48648
48649// PageToken sets the optional parameter "pageToken": Specifies a page
48650// token to use. Set `pageToken` to the `nextPageToken` returned by a
48651// previous list request to get the next page of results.
48652func (c *AddressesListCall) PageToken(pageToken string) *AddressesListCall {
48653	c.urlParams_.Set("pageToken", pageToken)
48654	return c
48655}
48656
48657// ReturnPartialSuccess sets the optional parameter
48658// "returnPartialSuccess": Opt-in for partial success behavior which
48659// provides partial results in case of failure. The default value is
48660// false.
48661func (c *AddressesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AddressesListCall {
48662	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
48663	return c
48664}
48665
48666// Fields allows partial responses to be retrieved. See
48667// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48668// for more information.
48669func (c *AddressesListCall) Fields(s ...googleapi.Field) *AddressesListCall {
48670	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48671	return c
48672}
48673
48674// IfNoneMatch sets the optional parameter which makes the operation
48675// fail if the object's ETag matches the given value. This is useful for
48676// getting updates only after the object has changed since the last
48677// request. Use googleapi.IsNotModified to check whether the response
48678// error from Do is the result of In-None-Match.
48679func (c *AddressesListCall) IfNoneMatch(entityTag string) *AddressesListCall {
48680	c.ifNoneMatch_ = entityTag
48681	return c
48682}
48683
48684// Context sets the context to be used in this call's Do method. Any
48685// pending HTTP request will be aborted if the provided context is
48686// canceled.
48687func (c *AddressesListCall) Context(ctx context.Context) *AddressesListCall {
48688	c.ctx_ = ctx
48689	return c
48690}
48691
48692// Header returns an http.Header that can be modified by the caller to
48693// add HTTP headers to the request.
48694func (c *AddressesListCall) Header() http.Header {
48695	if c.header_ == nil {
48696		c.header_ = make(http.Header)
48697	}
48698	return c.header_
48699}
48700
48701func (c *AddressesListCall) doRequest(alt string) (*http.Response, error) {
48702	reqHeaders := make(http.Header)
48703	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
48704	for k, v := range c.header_ {
48705		reqHeaders[k] = v
48706	}
48707	reqHeaders.Set("User-Agent", c.s.userAgent())
48708	if c.ifNoneMatch_ != "" {
48709		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
48710	}
48711	var body io.Reader = nil
48712	c.urlParams_.Set("alt", alt)
48713	c.urlParams_.Set("prettyPrint", "false")
48714	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/addresses")
48715	urls += "?" + c.urlParams_.Encode()
48716	req, err := http.NewRequest("GET", urls, body)
48717	if err != nil {
48718		return nil, err
48719	}
48720	req.Header = reqHeaders
48721	googleapi.Expand(req.URL, map[string]string{
48722		"project": c.project,
48723		"region":  c.region,
48724	})
48725	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48726}
48727
48728// Do executes the "compute.addresses.list" call.
48729// Exactly one of *AddressList or error will be non-nil. Any non-2xx
48730// status code is an error. Response headers are in either
48731// *AddressList.ServerResponse.Header or (if a response was returned at
48732// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
48733// to check whether the returned error was because
48734// http.StatusNotModified was returned.
48735func (c *AddressesListCall) Do(opts ...googleapi.CallOption) (*AddressList, error) {
48736	gensupport.SetOptions(c.urlParams_, opts...)
48737	res, err := c.doRequest("json")
48738	if res != nil && res.StatusCode == http.StatusNotModified {
48739		if res.Body != nil {
48740			res.Body.Close()
48741		}
48742		return nil, &googleapi.Error{
48743			Code:   res.StatusCode,
48744			Header: res.Header,
48745		}
48746	}
48747	if err != nil {
48748		return nil, err
48749	}
48750	defer googleapi.CloseBody(res)
48751	if err := googleapi.CheckResponse(res); err != nil {
48752		return nil, err
48753	}
48754	ret := &AddressList{
48755		ServerResponse: googleapi.ServerResponse{
48756			Header:         res.Header,
48757			HTTPStatusCode: res.StatusCode,
48758		},
48759	}
48760	target := &ret
48761	if err := gensupport.DecodeResponse(target, res); err != nil {
48762		return nil, err
48763	}
48764	return ret, nil
48765	// {
48766	//   "description": "Retrieves a list of addresses contained within the specified region.",
48767	//   "httpMethod": "GET",
48768	//   "id": "compute.addresses.list",
48769	//   "parameterOrder": [
48770	//     "project",
48771	//     "region"
48772	//   ],
48773	//   "parameters": {
48774	//     "filter": {
48775	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
48776	//       "location": "query",
48777	//       "type": "string"
48778	//     },
48779	//     "maxResults": {
48780	//       "default": "500",
48781	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
48782	//       "format": "uint32",
48783	//       "location": "query",
48784	//       "minimum": "0",
48785	//       "type": "integer"
48786	//     },
48787	//     "orderBy": {
48788	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
48789	//       "location": "query",
48790	//       "type": "string"
48791	//     },
48792	//     "pageToken": {
48793	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
48794	//       "location": "query",
48795	//       "type": "string"
48796	//     },
48797	//     "project": {
48798	//       "description": "Project ID for this request.",
48799	//       "location": "path",
48800	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48801	//       "required": true,
48802	//       "type": "string"
48803	//     },
48804	//     "region": {
48805	//       "description": "Name of the region for this request.",
48806	//       "location": "path",
48807	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
48808	//       "required": true,
48809	//       "type": "string"
48810	//     },
48811	//     "returnPartialSuccess": {
48812	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
48813	//       "location": "query",
48814	//       "type": "boolean"
48815	//     }
48816	//   },
48817	//   "path": "projects/{project}/regions/{region}/addresses",
48818	//   "response": {
48819	//     "$ref": "AddressList"
48820	//   },
48821	//   "scopes": [
48822	//     "https://www.googleapis.com/auth/cloud-platform",
48823	//     "https://www.googleapis.com/auth/compute",
48824	//     "https://www.googleapis.com/auth/compute.readonly"
48825	//   ]
48826	// }
48827
48828}
48829
48830// Pages invokes f for each page of results.
48831// A non-nil error returned from f will halt the iteration.
48832// The provided context supersedes any context provided to the Context method.
48833func (c *AddressesListCall) Pages(ctx context.Context, f func(*AddressList) error) error {
48834	c.ctx_ = ctx
48835	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
48836	for {
48837		x, err := c.Do()
48838		if err != nil {
48839			return err
48840		}
48841		if err := f(x); err != nil {
48842			return err
48843		}
48844		if x.NextPageToken == "" {
48845			return nil
48846		}
48847		c.PageToken(x.NextPageToken)
48848	}
48849}
48850
48851// method id "compute.autoscalers.aggregatedList":
48852
48853type AutoscalersAggregatedListCall struct {
48854	s            *Service
48855	project      string
48856	urlParams_   gensupport.URLParams
48857	ifNoneMatch_ string
48858	ctx_         context.Context
48859	header_      http.Header
48860}
48861
48862// AggregatedList: Retrieves an aggregated list of autoscalers.
48863//
48864// - project: Project ID for this request.
48865func (r *AutoscalersService) AggregatedList(project string) *AutoscalersAggregatedListCall {
48866	c := &AutoscalersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48867	c.project = project
48868	return c
48869}
48870
48871// Filter sets the optional parameter "filter": A filter expression that
48872// filters resources listed in the response. The expression must specify
48873// the field name, a comparison operator, and the value that you want to
48874// use for filtering. The value must be a string, a number, or a
48875// boolean. The comparison operator must be either `=`, `!=`, `>`, or
48876// `<`.
48877//
48878// For example, if you are filtering Compute Engine instances, you can
48879// exclude instances named `example-instance` by specifying `name !=
48880// example-instance`.
48881//
48882// You can also filter nested fields. For example, you could specify
48883// `scheduling.automaticRestart = false` to include instances only if
48884// they are not scheduled for automatic restarts. You can use filtering
48885// on nested fields to filter based on resource labels.
48886//
48887// To filter on multiple expressions, provide each separate expression
48888// within parentheses. For example: ``` (scheduling.automaticRestart =
48889// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
48890// is an `AND` expression. However, you can include `AND` and `OR`
48891// expressions explicitly. For example: ``` (cpuPlatform = "Intel
48892// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
48893// (scheduling.automaticRestart = true) ```
48894func (c *AutoscalersAggregatedListCall) Filter(filter string) *AutoscalersAggregatedListCall {
48895	c.urlParams_.Set("filter", filter)
48896	return c
48897}
48898
48899// IncludeAllScopes sets the optional parameter "includeAllScopes":
48900// Indicates whether every visible scope for each scope type (zone,
48901// region, global) should be included in the response. For new resource
48902// types added after this field, the flag has no effect as new resource
48903// types will always include every visible scope for each scope type in
48904// response. For resource types which predate this field, if this flag
48905// is omitted or false, only scopes of the scope types where the
48906// resource type is expected to be found will be included.
48907func (c *AutoscalersAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *AutoscalersAggregatedListCall {
48908	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
48909	return c
48910}
48911
48912// MaxResults sets the optional parameter "maxResults": The maximum
48913// number of results per page that should be returned. If the number of
48914// available results is larger than `maxResults`, Compute Engine returns
48915// a `nextPageToken` that can be used to get the next page of results in
48916// subsequent list requests. Acceptable values are `0` to `500`,
48917// inclusive. (Default: `500`)
48918func (c *AutoscalersAggregatedListCall) MaxResults(maxResults int64) *AutoscalersAggregatedListCall {
48919	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
48920	return c
48921}
48922
48923// OrderBy sets the optional parameter "orderBy": Sorts list results by
48924// a certain order. By default, results are returned in alphanumerical
48925// order based on the resource name.
48926//
48927// You can also sort results in descending order based on the creation
48928// timestamp using `orderBy="creationTimestamp desc". This sorts
48929// results based on the `creationTimestamp` field in reverse
48930// chronological order (newest result first). Use this to sort resources
48931// like operations so that the newest operation is returned
48932// first.
48933//
48934// Currently, only sorting by `name` or `creationTimestamp desc` is
48935// supported.
48936func (c *AutoscalersAggregatedListCall) OrderBy(orderBy string) *AutoscalersAggregatedListCall {
48937	c.urlParams_.Set("orderBy", orderBy)
48938	return c
48939}
48940
48941// PageToken sets the optional parameter "pageToken": Specifies a page
48942// token to use. Set `pageToken` to the `nextPageToken` returned by a
48943// previous list request to get the next page of results.
48944func (c *AutoscalersAggregatedListCall) PageToken(pageToken string) *AutoscalersAggregatedListCall {
48945	c.urlParams_.Set("pageToken", pageToken)
48946	return c
48947}
48948
48949// ReturnPartialSuccess sets the optional parameter
48950// "returnPartialSuccess": Opt-in for partial success behavior which
48951// provides partial results in case of failure. The default value is
48952// false.
48953func (c *AutoscalersAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AutoscalersAggregatedListCall {
48954	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
48955	return c
48956}
48957
48958// Fields allows partial responses to be retrieved. See
48959// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48960// for more information.
48961func (c *AutoscalersAggregatedListCall) Fields(s ...googleapi.Field) *AutoscalersAggregatedListCall {
48962	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48963	return c
48964}
48965
48966// IfNoneMatch sets the optional parameter which makes the operation
48967// fail if the object's ETag matches the given value. This is useful for
48968// getting updates only after the object has changed since the last
48969// request. Use googleapi.IsNotModified to check whether the response
48970// error from Do is the result of In-None-Match.
48971func (c *AutoscalersAggregatedListCall) IfNoneMatch(entityTag string) *AutoscalersAggregatedListCall {
48972	c.ifNoneMatch_ = entityTag
48973	return c
48974}
48975
48976// Context sets the context to be used in this call's Do method. Any
48977// pending HTTP request will be aborted if the provided context is
48978// canceled.
48979func (c *AutoscalersAggregatedListCall) Context(ctx context.Context) *AutoscalersAggregatedListCall {
48980	c.ctx_ = ctx
48981	return c
48982}
48983
48984// Header returns an http.Header that can be modified by the caller to
48985// add HTTP headers to the request.
48986func (c *AutoscalersAggregatedListCall) Header() http.Header {
48987	if c.header_ == nil {
48988		c.header_ = make(http.Header)
48989	}
48990	return c.header_
48991}
48992
48993func (c *AutoscalersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
48994	reqHeaders := make(http.Header)
48995	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
48996	for k, v := range c.header_ {
48997		reqHeaders[k] = v
48998	}
48999	reqHeaders.Set("User-Agent", c.s.userAgent())
49000	if c.ifNoneMatch_ != "" {
49001		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
49002	}
49003	var body io.Reader = nil
49004	c.urlParams_.Set("alt", alt)
49005	c.urlParams_.Set("prettyPrint", "false")
49006	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/autoscalers")
49007	urls += "?" + c.urlParams_.Encode()
49008	req, err := http.NewRequest("GET", urls, body)
49009	if err != nil {
49010		return nil, err
49011	}
49012	req.Header = reqHeaders
49013	googleapi.Expand(req.URL, map[string]string{
49014		"project": c.project,
49015	})
49016	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49017}
49018
49019// Do executes the "compute.autoscalers.aggregatedList" call.
49020// Exactly one of *AutoscalerAggregatedList or error will be non-nil.
49021// Any non-2xx status code is an error. Response headers are in either
49022// *AutoscalerAggregatedList.ServerResponse.Header or (if a response was
49023// returned at all) in error.(*googleapi.Error).Header. Use
49024// googleapi.IsNotModified to check whether the returned error was
49025// because http.StatusNotModified was returned.
49026func (c *AutoscalersAggregatedListCall) Do(opts ...googleapi.CallOption) (*AutoscalerAggregatedList, error) {
49027	gensupport.SetOptions(c.urlParams_, opts...)
49028	res, err := c.doRequest("json")
49029	if res != nil && res.StatusCode == http.StatusNotModified {
49030		if res.Body != nil {
49031			res.Body.Close()
49032		}
49033		return nil, &googleapi.Error{
49034			Code:   res.StatusCode,
49035			Header: res.Header,
49036		}
49037	}
49038	if err != nil {
49039		return nil, err
49040	}
49041	defer googleapi.CloseBody(res)
49042	if err := googleapi.CheckResponse(res); err != nil {
49043		return nil, err
49044	}
49045	ret := &AutoscalerAggregatedList{
49046		ServerResponse: googleapi.ServerResponse{
49047			Header:         res.Header,
49048			HTTPStatusCode: res.StatusCode,
49049		},
49050	}
49051	target := &ret
49052	if err := gensupport.DecodeResponse(target, res); err != nil {
49053		return nil, err
49054	}
49055	return ret, nil
49056	// {
49057	//   "description": "Retrieves an aggregated list of autoscalers.",
49058	//   "httpMethod": "GET",
49059	//   "id": "compute.autoscalers.aggregatedList",
49060	//   "parameterOrder": [
49061	//     "project"
49062	//   ],
49063	//   "parameters": {
49064	//     "filter": {
49065	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
49066	//       "location": "query",
49067	//       "type": "string"
49068	//     },
49069	//     "includeAllScopes": {
49070	//       "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.",
49071	//       "location": "query",
49072	//       "type": "boolean"
49073	//     },
49074	//     "maxResults": {
49075	//       "default": "500",
49076	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
49077	//       "format": "uint32",
49078	//       "location": "query",
49079	//       "minimum": "0",
49080	//       "type": "integer"
49081	//     },
49082	//     "orderBy": {
49083	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
49084	//       "location": "query",
49085	//       "type": "string"
49086	//     },
49087	//     "pageToken": {
49088	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
49089	//       "location": "query",
49090	//       "type": "string"
49091	//     },
49092	//     "project": {
49093	//       "description": "Project ID for this request.",
49094	//       "location": "path",
49095	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49096	//       "required": true,
49097	//       "type": "string"
49098	//     },
49099	//     "returnPartialSuccess": {
49100	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
49101	//       "location": "query",
49102	//       "type": "boolean"
49103	//     }
49104	//   },
49105	//   "path": "projects/{project}/aggregated/autoscalers",
49106	//   "response": {
49107	//     "$ref": "AutoscalerAggregatedList"
49108	//   },
49109	//   "scopes": [
49110	//     "https://www.googleapis.com/auth/cloud-platform",
49111	//     "https://www.googleapis.com/auth/compute",
49112	//     "https://www.googleapis.com/auth/compute.readonly"
49113	//   ]
49114	// }
49115
49116}
49117
49118// Pages invokes f for each page of results.
49119// A non-nil error returned from f will halt the iteration.
49120// The provided context supersedes any context provided to the Context method.
49121func (c *AutoscalersAggregatedListCall) Pages(ctx context.Context, f func(*AutoscalerAggregatedList) error) error {
49122	c.ctx_ = ctx
49123	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
49124	for {
49125		x, err := c.Do()
49126		if err != nil {
49127			return err
49128		}
49129		if err := f(x); err != nil {
49130			return err
49131		}
49132		if x.NextPageToken == "" {
49133			return nil
49134		}
49135		c.PageToken(x.NextPageToken)
49136	}
49137}
49138
49139// method id "compute.autoscalers.delete":
49140
49141type AutoscalersDeleteCall struct {
49142	s          *Service
49143	project    string
49144	zone       string
49145	autoscaler string
49146	urlParams_ gensupport.URLParams
49147	ctx_       context.Context
49148	header_    http.Header
49149}
49150
49151// Delete: Deletes the specified autoscaler.
49152//
49153// - autoscaler: Name of the autoscaler to delete.
49154// - project: Project ID for this request.
49155// - zone: Name of the zone for this request.
49156func (r *AutoscalersService) Delete(project string, zone string, autoscaler string) *AutoscalersDeleteCall {
49157	c := &AutoscalersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49158	c.project = project
49159	c.zone = zone
49160	c.autoscaler = autoscaler
49161	return c
49162}
49163
49164// RequestId sets the optional parameter "requestId": An optional
49165// request ID to identify requests. Specify a unique request ID so that
49166// if you must retry your request, the server will know to ignore the
49167// request if it has already been completed.
49168//
49169// For example, consider a situation where you make an initial request
49170// and the request times out. If you make the request again with the
49171// same request ID, the server can check if original operation with the
49172// same request ID was received, and if so, will ignore the second
49173// request. This prevents clients from accidentally creating duplicate
49174// commitments.
49175//
49176// The request ID must be a valid UUID with the exception that zero UUID
49177// is not supported (00000000-0000-0000-0000-000000000000).
49178func (c *AutoscalersDeleteCall) RequestId(requestId string) *AutoscalersDeleteCall {
49179	c.urlParams_.Set("requestId", requestId)
49180	return c
49181}
49182
49183// Fields allows partial responses to be retrieved. See
49184// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49185// for more information.
49186func (c *AutoscalersDeleteCall) Fields(s ...googleapi.Field) *AutoscalersDeleteCall {
49187	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49188	return c
49189}
49190
49191// Context sets the context to be used in this call's Do method. Any
49192// pending HTTP request will be aborted if the provided context is
49193// canceled.
49194func (c *AutoscalersDeleteCall) Context(ctx context.Context) *AutoscalersDeleteCall {
49195	c.ctx_ = ctx
49196	return c
49197}
49198
49199// Header returns an http.Header that can be modified by the caller to
49200// add HTTP headers to the request.
49201func (c *AutoscalersDeleteCall) Header() http.Header {
49202	if c.header_ == nil {
49203		c.header_ = make(http.Header)
49204	}
49205	return c.header_
49206}
49207
49208func (c *AutoscalersDeleteCall) doRequest(alt string) (*http.Response, error) {
49209	reqHeaders := make(http.Header)
49210	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
49211	for k, v := range c.header_ {
49212		reqHeaders[k] = v
49213	}
49214	reqHeaders.Set("User-Agent", c.s.userAgent())
49215	var body io.Reader = nil
49216	c.urlParams_.Set("alt", alt)
49217	c.urlParams_.Set("prettyPrint", "false")
49218	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/autoscalers/{autoscaler}")
49219	urls += "?" + c.urlParams_.Encode()
49220	req, err := http.NewRequest("DELETE", urls, body)
49221	if err != nil {
49222		return nil, err
49223	}
49224	req.Header = reqHeaders
49225	googleapi.Expand(req.URL, map[string]string{
49226		"project":    c.project,
49227		"zone":       c.zone,
49228		"autoscaler": c.autoscaler,
49229	})
49230	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49231}
49232
49233// Do executes the "compute.autoscalers.delete" call.
49234// Exactly one of *Operation or error will be non-nil. Any non-2xx
49235// status code is an error. Response headers are in either
49236// *Operation.ServerResponse.Header or (if a response was returned at
49237// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
49238// to check whether the returned error was because
49239// http.StatusNotModified was returned.
49240func (c *AutoscalersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
49241	gensupport.SetOptions(c.urlParams_, opts...)
49242	res, err := c.doRequest("json")
49243	if res != nil && res.StatusCode == http.StatusNotModified {
49244		if res.Body != nil {
49245			res.Body.Close()
49246		}
49247		return nil, &googleapi.Error{
49248			Code:   res.StatusCode,
49249			Header: res.Header,
49250		}
49251	}
49252	if err != nil {
49253		return nil, err
49254	}
49255	defer googleapi.CloseBody(res)
49256	if err := googleapi.CheckResponse(res); err != nil {
49257		return nil, err
49258	}
49259	ret := &Operation{
49260		ServerResponse: googleapi.ServerResponse{
49261			Header:         res.Header,
49262			HTTPStatusCode: res.StatusCode,
49263		},
49264	}
49265	target := &ret
49266	if err := gensupport.DecodeResponse(target, res); err != nil {
49267		return nil, err
49268	}
49269	return ret, nil
49270	// {
49271	//   "description": "Deletes the specified autoscaler.",
49272	//   "httpMethod": "DELETE",
49273	//   "id": "compute.autoscalers.delete",
49274	//   "parameterOrder": [
49275	//     "project",
49276	//     "zone",
49277	//     "autoscaler"
49278	//   ],
49279	//   "parameters": {
49280	//     "autoscaler": {
49281	//       "description": "Name of the autoscaler to delete.",
49282	//       "location": "path",
49283	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
49284	//       "required": true,
49285	//       "type": "string"
49286	//     },
49287	//     "project": {
49288	//       "description": "Project ID for this request.",
49289	//       "location": "path",
49290	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49291	//       "required": true,
49292	//       "type": "string"
49293	//     },
49294	//     "requestId": {
49295	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
49296	//       "location": "query",
49297	//       "type": "string"
49298	//     },
49299	//     "zone": {
49300	//       "description": "Name of the zone for this request.",
49301	//       "location": "path",
49302	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
49303	//       "required": true,
49304	//       "type": "string"
49305	//     }
49306	//   },
49307	//   "path": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}",
49308	//   "response": {
49309	//     "$ref": "Operation"
49310	//   },
49311	//   "scopes": [
49312	//     "https://www.googleapis.com/auth/cloud-platform",
49313	//     "https://www.googleapis.com/auth/compute"
49314	//   ]
49315	// }
49316
49317}
49318
49319// method id "compute.autoscalers.get":
49320
49321type AutoscalersGetCall struct {
49322	s            *Service
49323	project      string
49324	zone         string
49325	autoscaler   string
49326	urlParams_   gensupport.URLParams
49327	ifNoneMatch_ string
49328	ctx_         context.Context
49329	header_      http.Header
49330}
49331
49332// Get: Returns the specified autoscaler resource. Gets a list of
49333// available autoscalers by making a list() request.
49334//
49335// - autoscaler: Name of the autoscaler to return.
49336// - project: Project ID for this request.
49337// - zone: Name of the zone for this request.
49338func (r *AutoscalersService) Get(project string, zone string, autoscaler string) *AutoscalersGetCall {
49339	c := &AutoscalersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49340	c.project = project
49341	c.zone = zone
49342	c.autoscaler = autoscaler
49343	return c
49344}
49345
49346// Fields allows partial responses to be retrieved. See
49347// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49348// for more information.
49349func (c *AutoscalersGetCall) Fields(s ...googleapi.Field) *AutoscalersGetCall {
49350	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49351	return c
49352}
49353
49354// IfNoneMatch sets the optional parameter which makes the operation
49355// fail if the object's ETag matches the given value. This is useful for
49356// getting updates only after the object has changed since the last
49357// request. Use googleapi.IsNotModified to check whether the response
49358// error from Do is the result of In-None-Match.
49359func (c *AutoscalersGetCall) IfNoneMatch(entityTag string) *AutoscalersGetCall {
49360	c.ifNoneMatch_ = entityTag
49361	return c
49362}
49363
49364// Context sets the context to be used in this call's Do method. Any
49365// pending HTTP request will be aborted if the provided context is
49366// canceled.
49367func (c *AutoscalersGetCall) Context(ctx context.Context) *AutoscalersGetCall {
49368	c.ctx_ = ctx
49369	return c
49370}
49371
49372// Header returns an http.Header that can be modified by the caller to
49373// add HTTP headers to the request.
49374func (c *AutoscalersGetCall) Header() http.Header {
49375	if c.header_ == nil {
49376		c.header_ = make(http.Header)
49377	}
49378	return c.header_
49379}
49380
49381func (c *AutoscalersGetCall) doRequest(alt string) (*http.Response, error) {
49382	reqHeaders := make(http.Header)
49383	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
49384	for k, v := range c.header_ {
49385		reqHeaders[k] = v
49386	}
49387	reqHeaders.Set("User-Agent", c.s.userAgent())
49388	if c.ifNoneMatch_ != "" {
49389		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
49390	}
49391	var body io.Reader = nil
49392	c.urlParams_.Set("alt", alt)
49393	c.urlParams_.Set("prettyPrint", "false")
49394	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/autoscalers/{autoscaler}")
49395	urls += "?" + c.urlParams_.Encode()
49396	req, err := http.NewRequest("GET", urls, body)
49397	if err != nil {
49398		return nil, err
49399	}
49400	req.Header = reqHeaders
49401	googleapi.Expand(req.URL, map[string]string{
49402		"project":    c.project,
49403		"zone":       c.zone,
49404		"autoscaler": c.autoscaler,
49405	})
49406	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49407}
49408
49409// Do executes the "compute.autoscalers.get" call.
49410// Exactly one of *Autoscaler or error will be non-nil. Any non-2xx
49411// status code is an error. Response headers are in either
49412// *Autoscaler.ServerResponse.Header or (if a response was returned at
49413// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
49414// to check whether the returned error was because
49415// http.StatusNotModified was returned.
49416func (c *AutoscalersGetCall) Do(opts ...googleapi.CallOption) (*Autoscaler, error) {
49417	gensupport.SetOptions(c.urlParams_, opts...)
49418	res, err := c.doRequest("json")
49419	if res != nil && res.StatusCode == http.StatusNotModified {
49420		if res.Body != nil {
49421			res.Body.Close()
49422		}
49423		return nil, &googleapi.Error{
49424			Code:   res.StatusCode,
49425			Header: res.Header,
49426		}
49427	}
49428	if err != nil {
49429		return nil, err
49430	}
49431	defer googleapi.CloseBody(res)
49432	if err := googleapi.CheckResponse(res); err != nil {
49433		return nil, err
49434	}
49435	ret := &Autoscaler{
49436		ServerResponse: googleapi.ServerResponse{
49437			Header:         res.Header,
49438			HTTPStatusCode: res.StatusCode,
49439		},
49440	}
49441	target := &ret
49442	if err := gensupport.DecodeResponse(target, res); err != nil {
49443		return nil, err
49444	}
49445	return ret, nil
49446	// {
49447	//   "description": "Returns the specified autoscaler resource. Gets a list of available autoscalers by making a list() request.",
49448	//   "httpMethod": "GET",
49449	//   "id": "compute.autoscalers.get",
49450	//   "parameterOrder": [
49451	//     "project",
49452	//     "zone",
49453	//     "autoscaler"
49454	//   ],
49455	//   "parameters": {
49456	//     "autoscaler": {
49457	//       "description": "Name of the autoscaler to return.",
49458	//       "location": "path",
49459	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
49460	//       "required": true,
49461	//       "type": "string"
49462	//     },
49463	//     "project": {
49464	//       "description": "Project ID for this request.",
49465	//       "location": "path",
49466	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49467	//       "required": true,
49468	//       "type": "string"
49469	//     },
49470	//     "zone": {
49471	//       "description": "Name of the zone for this request.",
49472	//       "location": "path",
49473	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
49474	//       "required": true,
49475	//       "type": "string"
49476	//     }
49477	//   },
49478	//   "path": "projects/{project}/zones/{zone}/autoscalers/{autoscaler}",
49479	//   "response": {
49480	//     "$ref": "Autoscaler"
49481	//   },
49482	//   "scopes": [
49483	//     "https://www.googleapis.com/auth/cloud-platform",
49484	//     "https://www.googleapis.com/auth/compute",
49485	//     "https://www.googleapis.com/auth/compute.readonly"
49486	//   ]
49487	// }
49488
49489}
49490
49491// method id "compute.autoscalers.insert":
49492
49493type AutoscalersInsertCall struct {
49494	s          *Service
49495	project    string
49496	zone       string
49497	autoscaler *Autoscaler
49498	urlParams_ gensupport.URLParams
49499	ctx_       context.Context
49500	header_    http.Header
49501}
49502
49503// Insert: Creates an autoscaler in the specified project using the data
49504// included in the request.
49505//
49506// - project: Project ID for this request.
49507// - zone: Name of the zone for this request.
49508func (r *AutoscalersService) Insert(project string, zone string, autoscaler *Autoscaler) *AutoscalersInsertCall {
49509	c := &AutoscalersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49510	c.project = project
49511	c.zone = zone
49512	c.autoscaler = autoscaler
49513	return c
49514}
49515
49516// RequestId sets the optional parameter "requestId": An optional
49517// request ID to identify requests. Specify a unique request ID so that
49518// if you must retry your request, the server will know to ignore the
49519// request if it has already been completed.
49520//
49521// For example, consider a situation where you make an initial request
49522// and the request times out. If you make the request again with the
49523// same request ID, the server can check if original operation with the
49524// same request ID was received, and if so, will ignore the second
49525// request. This prevents clients from accidentally creating duplicate
49526// commitments.
49527//
49528// The request ID must be a valid UUID with the exception that zero UUID
49529// is not supported (00000000-0000-0000-0000-000000000000).
49530func (c *AutoscalersInsertCall) RequestId(requestId string) *AutoscalersInsertCall {
49531	c.urlParams_.Set("requestId", requestId)
49532	return c
49533}
49534
49535// Fields allows partial responses to be retrieved. See
49536// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49537// for more information.
49538func (c *AutoscalersInsertCall) Fields(s ...googleapi.Field) *AutoscalersInsertCall {
49539	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49540	return c
49541}
49542
49543// Context sets the context to be used in this call's Do method. Any
49544// pending HTTP request will be aborted if the provided context is
49545// canceled.
49546func (c *AutoscalersInsertCall) Context(ctx context.Context) *AutoscalersInsertCall {
49547	c.ctx_ = ctx
49548	return c
49549}
49550
49551// Header returns an http.Header that can be modified by the caller to
49552// add HTTP headers to the request.
49553func (c *AutoscalersInsertCall) Header() http.Header {
49554	if c.header_ == nil {
49555		c.header_ = make(http.Header)
49556	}
49557	return c.header_
49558}
49559
49560func (c *AutoscalersInsertCall) doRequest(alt string) (*http.Response, error) {
49561	reqHeaders := make(http.Header)
49562	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
49563	for k, v := range c.header_ {
49564		reqHeaders[k] = v
49565	}
49566	reqHeaders.Set("User-Agent", c.s.userAgent())
49567	var body io.Reader = nil
49568	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
49569	if err != nil {
49570		return nil, err
49571	}
49572	reqHeaders.Set("Content-Type", "application/json")
49573	c.urlParams_.Set("alt", alt)
49574	c.urlParams_.Set("prettyPrint", "false")
49575	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/autoscalers")
49576	urls += "?" + c.urlParams_.Encode()
49577	req, err := http.NewRequest("POST", urls, body)
49578	if err != nil {
49579		return nil, err
49580	}
49581	req.Header = reqHeaders
49582	googleapi.Expand(req.URL, map[string]string{
49583		"project": c.project,
49584		"zone":    c.zone,
49585	})
49586	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49587}
49588
49589// Do executes the "compute.autoscalers.insert" call.
49590// Exactly one of *Operation or error will be non-nil. Any non-2xx
49591// status code is an error. Response headers are in either
49592// *Operation.ServerResponse.Header or (if a response was returned at
49593// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
49594// to check whether the returned error was because
49595// http.StatusNotModified was returned.
49596func (c *AutoscalersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
49597	gensupport.SetOptions(c.urlParams_, opts...)
49598	res, err := c.doRequest("json")
49599	if res != nil && res.StatusCode == http.StatusNotModified {
49600		if res.Body != nil {
49601			res.Body.Close()
49602		}
49603		return nil, &googleapi.Error{
49604			Code:   res.StatusCode,
49605			Header: res.Header,
49606		}
49607	}
49608	if err != nil {
49609		return nil, err
49610	}
49611	defer googleapi.CloseBody(res)
49612	if err := googleapi.CheckResponse(res); err != nil {
49613		return nil, err
49614	}
49615	ret := &Operation{
49616		ServerResponse: googleapi.ServerResponse{
49617			Header:         res.Header,
49618			HTTPStatusCode: res.StatusCode,
49619		},
49620	}
49621	target := &ret
49622	if err := gensupport.DecodeResponse(target, res); err != nil {
49623		return nil, err
49624	}
49625	return ret, nil
49626	// {
49627	//   "description": "Creates an autoscaler in the specified project using the data included in the request.",
49628	//   "httpMethod": "POST",
49629	//   "id": "compute.autoscalers.insert",
49630	//   "parameterOrder": [
49631	//     "project",
49632	//     "zone"
49633	//   ],
49634	//   "parameters": {
49635	//     "project": {
49636	//       "description": "Project ID for this request.",
49637	//       "location": "path",
49638	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49639	//       "required": true,
49640	//       "type": "string"
49641	//     },
49642	//     "requestId": {
49643	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
49644	//       "location": "query",
49645	//       "type": "string"
49646	//     },
49647	//     "zone": {
49648	//       "description": "Name of the zone for this request.",
49649	//       "location": "path",
49650	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
49651	//       "required": true,
49652	//       "type": "string"
49653	//     }
49654	//   },
49655	//   "path": "projects/{project}/zones/{zone}/autoscalers",
49656	//   "request": {
49657	//     "$ref": "Autoscaler"
49658	//   },
49659	//   "response": {
49660	//     "$ref": "Operation"
49661	//   },
49662	//   "scopes": [
49663	//     "https://www.googleapis.com/auth/cloud-platform",
49664	//     "https://www.googleapis.com/auth/compute"
49665	//   ]
49666	// }
49667
49668}
49669
49670// method id "compute.autoscalers.list":
49671
49672type AutoscalersListCall struct {
49673	s            *Service
49674	project      string
49675	zone         string
49676	urlParams_   gensupport.URLParams
49677	ifNoneMatch_ string
49678	ctx_         context.Context
49679	header_      http.Header
49680}
49681
49682// List: Retrieves a list of autoscalers contained within the specified
49683// zone.
49684//
49685// - project: Project ID for this request.
49686// - zone: Name of the zone for this request.
49687func (r *AutoscalersService) List(project string, zone string) *AutoscalersListCall {
49688	c := &AutoscalersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49689	c.project = project
49690	c.zone = zone
49691	return c
49692}
49693
49694// Filter sets the optional parameter "filter": A filter expression that
49695// filters resources listed in the response. The expression must specify
49696// the field name, a comparison operator, and the value that you want to
49697// use for filtering. The value must be a string, a number, or a
49698// boolean. The comparison operator must be either `=`, `!=`, `>`, or
49699// `<`.
49700//
49701// For example, if you are filtering Compute Engine instances, you can
49702// exclude instances named `example-instance` by specifying `name !=
49703// example-instance`.
49704//
49705// You can also filter nested fields. For example, you could specify
49706// `scheduling.automaticRestart = false` to include instances only if
49707// they are not scheduled for automatic restarts. You can use filtering
49708// on nested fields to filter based on resource labels.
49709//
49710// To filter on multiple expressions, provide each separate expression
49711// within parentheses. For example: ``` (scheduling.automaticRestart =
49712// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
49713// is an `AND` expression. However, you can include `AND` and `OR`
49714// expressions explicitly. For example: ``` (cpuPlatform = "Intel
49715// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
49716// (scheduling.automaticRestart = true) ```
49717func (c *AutoscalersListCall) Filter(filter string) *AutoscalersListCall {
49718	c.urlParams_.Set("filter", filter)
49719	return c
49720}
49721
49722// MaxResults sets the optional parameter "maxResults": The maximum
49723// number of results per page that should be returned. If the number of
49724// available results is larger than `maxResults`, Compute Engine returns
49725// a `nextPageToken` that can be used to get the next page of results in
49726// subsequent list requests. Acceptable values are `0` to `500`,
49727// inclusive. (Default: `500`)
49728func (c *AutoscalersListCall) MaxResults(maxResults int64) *AutoscalersListCall {
49729	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
49730	return c
49731}
49732
49733// OrderBy sets the optional parameter "orderBy": Sorts list results by
49734// a certain order. By default, results are returned in alphanumerical
49735// order based on the resource name.
49736//
49737// You can also sort results in descending order based on the creation
49738// timestamp using `orderBy="creationTimestamp desc". This sorts
49739// results based on the `creationTimestamp` field in reverse
49740// chronological order (newest result first). Use this to sort resources
49741// like operations so that the newest operation is returned
49742// first.
49743//
49744// Currently, only sorting by `name` or `creationTimestamp desc` is
49745// supported.
49746func (c *AutoscalersListCall) OrderBy(orderBy string) *AutoscalersListCall {
49747	c.urlParams_.Set("orderBy", orderBy)
49748	return c
49749}
49750
49751// PageToken sets the optional parameter "pageToken": Specifies a page
49752// token to use. Set `pageToken` to the `nextPageToken` returned by a
49753// previous list request to get the next page of results.
49754func (c *AutoscalersListCall) PageToken(pageToken string) *AutoscalersListCall {
49755	c.urlParams_.Set("pageToken", pageToken)
49756	return c
49757}
49758
49759// ReturnPartialSuccess sets the optional parameter
49760// "returnPartialSuccess": Opt-in for partial success behavior which
49761// provides partial results in case of failure. The default value is
49762// false.
49763func (c *AutoscalersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *AutoscalersListCall {
49764	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
49765	return c
49766}
49767
49768// Fields allows partial responses to be retrieved. See
49769// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49770// for more information.
49771func (c *AutoscalersListCall) Fields(s ...googleapi.Field) *AutoscalersListCall {
49772	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49773	return c
49774}
49775
49776// IfNoneMatch sets the optional parameter which makes the operation
49777// fail if the object's ETag matches the given value. This is useful for
49778// getting updates only after the object has changed since the last
49779// request. Use googleapi.IsNotModified to check whether the response
49780// error from Do is the result of In-None-Match.
49781func (c *AutoscalersListCall) IfNoneMatch(entityTag string) *AutoscalersListCall {
49782	c.ifNoneMatch_ = entityTag
49783	return c
49784}
49785
49786// Context sets the context to be used in this call's Do method. Any
49787// pending HTTP request will be aborted if the provided context is
49788// canceled.
49789func (c *AutoscalersListCall) Context(ctx context.Context) *AutoscalersListCall {
49790	c.ctx_ = ctx
49791	return c
49792}
49793
49794// Header returns an http.Header that can be modified by the caller to
49795// add HTTP headers to the request.
49796func (c *AutoscalersListCall) Header() http.Header {
49797	if c.header_ == nil {
49798		c.header_ = make(http.Header)
49799	}
49800	return c.header_
49801}
49802
49803func (c *AutoscalersListCall) doRequest(alt string) (*http.Response, error) {
49804	reqHeaders := make(http.Header)
49805	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
49806	for k, v := range c.header_ {
49807		reqHeaders[k] = v
49808	}
49809	reqHeaders.Set("User-Agent", c.s.userAgent())
49810	if c.ifNoneMatch_ != "" {
49811		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
49812	}
49813	var body io.Reader = nil
49814	c.urlParams_.Set("alt", alt)
49815	c.urlParams_.Set("prettyPrint", "false")
49816	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/autoscalers")
49817	urls += "?" + c.urlParams_.Encode()
49818	req, err := http.NewRequest("GET", urls, body)
49819	if err != nil {
49820		return nil, err
49821	}
49822	req.Header = reqHeaders
49823	googleapi.Expand(req.URL, map[string]string{
49824		"project": c.project,
49825		"zone":    c.zone,
49826	})
49827	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49828}
49829
49830// Do executes the "compute.autoscalers.list" call.
49831// Exactly one of *AutoscalerList or error will be non-nil. Any non-2xx
49832// status code is an error. Response headers are in either
49833// *AutoscalerList.ServerResponse.Header or (if a response was returned
49834// at all) in error.(*googleapi.Error).Header. Use
49835// googleapi.IsNotModified to check whether the returned error was
49836// because http.StatusNotModified was returned.
49837func (c *AutoscalersListCall) Do(opts ...googleapi.CallOption) (*AutoscalerList, error) {
49838	gensupport.SetOptions(c.urlParams_, opts...)
49839	res, err := c.doRequest("json")
49840	if res != nil && res.StatusCode == http.StatusNotModified {
49841		if res.Body != nil {
49842			res.Body.Close()
49843		}
49844		return nil, &googleapi.Error{
49845			Code:   res.StatusCode,
49846			Header: res.Header,
49847		}
49848	}
49849	if err != nil {
49850		return nil, err
49851	}
49852	defer googleapi.CloseBody(res)
49853	if err := googleapi.CheckResponse(res); err != nil {
49854		return nil, err
49855	}
49856	ret := &AutoscalerList{
49857		ServerResponse: googleapi.ServerResponse{
49858			Header:         res.Header,
49859			HTTPStatusCode: res.StatusCode,
49860		},
49861	}
49862	target := &ret
49863	if err := gensupport.DecodeResponse(target, res); err != nil {
49864		return nil, err
49865	}
49866	return ret, nil
49867	// {
49868	//   "description": "Retrieves a list of autoscalers contained within the specified zone.",
49869	//   "httpMethod": "GET",
49870	//   "id": "compute.autoscalers.list",
49871	//   "parameterOrder": [
49872	//     "project",
49873	//     "zone"
49874	//   ],
49875	//   "parameters": {
49876	//     "filter": {
49877	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
49878	//       "location": "query",
49879	//       "type": "string"
49880	//     },
49881	//     "maxResults": {
49882	//       "default": "500",
49883	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
49884	//       "format": "uint32",
49885	//       "location": "query",
49886	//       "minimum": "0",
49887	//       "type": "integer"
49888	//     },
49889	//     "orderBy": {
49890	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
49891	//       "location": "query",
49892	//       "type": "string"
49893	//     },
49894	//     "pageToken": {
49895	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
49896	//       "location": "query",
49897	//       "type": "string"
49898	//     },
49899	//     "project": {
49900	//       "description": "Project ID for this request.",
49901	//       "location": "path",
49902	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49903	//       "required": true,
49904	//       "type": "string"
49905	//     },
49906	//     "returnPartialSuccess": {
49907	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
49908	//       "location": "query",
49909	//       "type": "boolean"
49910	//     },
49911	//     "zone": {
49912	//       "description": "Name of the zone for this request.",
49913	//       "location": "path",
49914	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
49915	//       "required": true,
49916	//       "type": "string"
49917	//     }
49918	//   },
49919	//   "path": "projects/{project}/zones/{zone}/autoscalers",
49920	//   "response": {
49921	//     "$ref": "AutoscalerList"
49922	//   },
49923	//   "scopes": [
49924	//     "https://www.googleapis.com/auth/cloud-platform",
49925	//     "https://www.googleapis.com/auth/compute",
49926	//     "https://www.googleapis.com/auth/compute.readonly"
49927	//   ]
49928	// }
49929
49930}
49931
49932// Pages invokes f for each page of results.
49933// A non-nil error returned from f will halt the iteration.
49934// The provided context supersedes any context provided to the Context method.
49935func (c *AutoscalersListCall) Pages(ctx context.Context, f func(*AutoscalerList) error) error {
49936	c.ctx_ = ctx
49937	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
49938	for {
49939		x, err := c.Do()
49940		if err != nil {
49941			return err
49942		}
49943		if err := f(x); err != nil {
49944			return err
49945		}
49946		if x.NextPageToken == "" {
49947			return nil
49948		}
49949		c.PageToken(x.NextPageToken)
49950	}
49951}
49952
49953// method id "compute.autoscalers.patch":
49954
49955type AutoscalersPatchCall struct {
49956	s          *Service
49957	project    string
49958	zone       string
49959	autoscaler *Autoscaler
49960	urlParams_ gensupport.URLParams
49961	ctx_       context.Context
49962	header_    http.Header
49963}
49964
49965// Patch: Updates an autoscaler in the specified project using the data
49966// included in the request. This method supports PATCH semantics and
49967// uses the JSON merge patch format and processing rules.
49968//
49969// - project: Project ID for this request.
49970// - zone: Name of the zone for this request.
49971func (r *AutoscalersService) Patch(project string, zone string, autoscaler *Autoscaler) *AutoscalersPatchCall {
49972	c := &AutoscalersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49973	c.project = project
49974	c.zone = zone
49975	c.autoscaler = autoscaler
49976	return c
49977}
49978
49979// Autoscaler sets the optional parameter "autoscaler": Name of the
49980// autoscaler to patch.
49981func (c *AutoscalersPatchCall) Autoscaler(autoscaler string) *AutoscalersPatchCall {
49982	c.urlParams_.Set("autoscaler", autoscaler)
49983	return c
49984}
49985
49986// RequestId sets the optional parameter "requestId": An optional
49987// request ID to identify requests. Specify a unique request ID so that
49988// if you must retry your request, the server will know to ignore the
49989// request if it has already been completed.
49990//
49991// For example, consider a situation where you make an initial request
49992// and the request times out. If you make the request again with the
49993// same request ID, the server can check if original operation with the
49994// same request ID was received, and if so, will ignore the second
49995// request. This prevents clients from accidentally creating duplicate
49996// commitments.
49997//
49998// The request ID must be a valid UUID with the exception that zero UUID
49999// is not supported (00000000-0000-0000-0000-000000000000).
50000func (c *AutoscalersPatchCall) RequestId(requestId string) *AutoscalersPatchCall {
50001	c.urlParams_.Set("requestId", requestId)
50002	return c
50003}
50004
50005// Fields allows partial responses to be retrieved. See
50006// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50007// for more information.
50008func (c *AutoscalersPatchCall) Fields(s ...googleapi.Field) *AutoscalersPatchCall {
50009	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50010	return c
50011}
50012
50013// Context sets the context to be used in this call's Do method. Any
50014// pending HTTP request will be aborted if the provided context is
50015// canceled.
50016func (c *AutoscalersPatchCall) Context(ctx context.Context) *AutoscalersPatchCall {
50017	c.ctx_ = ctx
50018	return c
50019}
50020
50021// Header returns an http.Header that can be modified by the caller to
50022// add HTTP headers to the request.
50023func (c *AutoscalersPatchCall) Header() http.Header {
50024	if c.header_ == nil {
50025		c.header_ = make(http.Header)
50026	}
50027	return c.header_
50028}
50029
50030func (c *AutoscalersPatchCall) doRequest(alt string) (*http.Response, error) {
50031	reqHeaders := make(http.Header)
50032	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
50033	for k, v := range c.header_ {
50034		reqHeaders[k] = v
50035	}
50036	reqHeaders.Set("User-Agent", c.s.userAgent())
50037	var body io.Reader = nil
50038	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
50039	if err != nil {
50040		return nil, err
50041	}
50042	reqHeaders.Set("Content-Type", "application/json")
50043	c.urlParams_.Set("alt", alt)
50044	c.urlParams_.Set("prettyPrint", "false")
50045	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/autoscalers")
50046	urls += "?" + c.urlParams_.Encode()
50047	req, err := http.NewRequest("PATCH", urls, body)
50048	if err != nil {
50049		return nil, err
50050	}
50051	req.Header = reqHeaders
50052	googleapi.Expand(req.URL, map[string]string{
50053		"project": c.project,
50054		"zone":    c.zone,
50055	})
50056	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50057}
50058
50059// Do executes the "compute.autoscalers.patch" call.
50060// Exactly one of *Operation or error will be non-nil. Any non-2xx
50061// status code is an error. Response headers are in either
50062// *Operation.ServerResponse.Header or (if a response was returned at
50063// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
50064// to check whether the returned error was because
50065// http.StatusNotModified was returned.
50066func (c *AutoscalersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
50067	gensupport.SetOptions(c.urlParams_, opts...)
50068	res, err := c.doRequest("json")
50069	if res != nil && res.StatusCode == http.StatusNotModified {
50070		if res.Body != nil {
50071			res.Body.Close()
50072		}
50073		return nil, &googleapi.Error{
50074			Code:   res.StatusCode,
50075			Header: res.Header,
50076		}
50077	}
50078	if err != nil {
50079		return nil, err
50080	}
50081	defer googleapi.CloseBody(res)
50082	if err := googleapi.CheckResponse(res); err != nil {
50083		return nil, err
50084	}
50085	ret := &Operation{
50086		ServerResponse: googleapi.ServerResponse{
50087			Header:         res.Header,
50088			HTTPStatusCode: res.StatusCode,
50089		},
50090	}
50091	target := &ret
50092	if err := gensupport.DecodeResponse(target, res); err != nil {
50093		return nil, err
50094	}
50095	return ret, nil
50096	// {
50097	//   "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.",
50098	//   "httpMethod": "PATCH",
50099	//   "id": "compute.autoscalers.patch",
50100	//   "parameterOrder": [
50101	//     "project",
50102	//     "zone"
50103	//   ],
50104	//   "parameters": {
50105	//     "autoscaler": {
50106	//       "description": "Name of the autoscaler to patch.",
50107	//       "location": "query",
50108	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
50109	//       "type": "string"
50110	//     },
50111	//     "project": {
50112	//       "description": "Project ID for this request.",
50113	//       "location": "path",
50114	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50115	//       "required": true,
50116	//       "type": "string"
50117	//     },
50118	//     "requestId": {
50119	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
50120	//       "location": "query",
50121	//       "type": "string"
50122	//     },
50123	//     "zone": {
50124	//       "description": "Name of the zone for this request.",
50125	//       "location": "path",
50126	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50127	//       "required": true,
50128	//       "type": "string"
50129	//     }
50130	//   },
50131	//   "path": "projects/{project}/zones/{zone}/autoscalers",
50132	//   "request": {
50133	//     "$ref": "Autoscaler"
50134	//   },
50135	//   "response": {
50136	//     "$ref": "Operation"
50137	//   },
50138	//   "scopes": [
50139	//     "https://www.googleapis.com/auth/cloud-platform",
50140	//     "https://www.googleapis.com/auth/compute"
50141	//   ]
50142	// }
50143
50144}
50145
50146// method id "compute.autoscalers.update":
50147
50148type AutoscalersUpdateCall struct {
50149	s          *Service
50150	project    string
50151	zone       string
50152	autoscaler *Autoscaler
50153	urlParams_ gensupport.URLParams
50154	ctx_       context.Context
50155	header_    http.Header
50156}
50157
50158// Update: Updates an autoscaler in the specified project using the data
50159// included in the request.
50160//
50161// - project: Project ID for this request.
50162// - zone: Name of the zone for this request.
50163func (r *AutoscalersService) Update(project string, zone string, autoscaler *Autoscaler) *AutoscalersUpdateCall {
50164	c := &AutoscalersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50165	c.project = project
50166	c.zone = zone
50167	c.autoscaler = autoscaler
50168	return c
50169}
50170
50171// Autoscaler sets the optional parameter "autoscaler": Name of the
50172// autoscaler to update.
50173func (c *AutoscalersUpdateCall) Autoscaler(autoscaler string) *AutoscalersUpdateCall {
50174	c.urlParams_.Set("autoscaler", autoscaler)
50175	return c
50176}
50177
50178// RequestId sets the optional parameter "requestId": An optional
50179// request ID to identify requests. Specify a unique request ID so that
50180// if you must retry your request, the server will know to ignore the
50181// request if it has already been completed.
50182//
50183// For example, consider a situation where you make an initial request
50184// and the request times out. If you make the request again with the
50185// same request ID, the server can check if original operation with the
50186// same request ID was received, and if so, will ignore the second
50187// request. This prevents clients from accidentally creating duplicate
50188// commitments.
50189//
50190// The request ID must be a valid UUID with the exception that zero UUID
50191// is not supported (00000000-0000-0000-0000-000000000000).
50192func (c *AutoscalersUpdateCall) RequestId(requestId string) *AutoscalersUpdateCall {
50193	c.urlParams_.Set("requestId", requestId)
50194	return c
50195}
50196
50197// Fields allows partial responses to be retrieved. See
50198// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50199// for more information.
50200func (c *AutoscalersUpdateCall) Fields(s ...googleapi.Field) *AutoscalersUpdateCall {
50201	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50202	return c
50203}
50204
50205// Context sets the context to be used in this call's Do method. Any
50206// pending HTTP request will be aborted if the provided context is
50207// canceled.
50208func (c *AutoscalersUpdateCall) Context(ctx context.Context) *AutoscalersUpdateCall {
50209	c.ctx_ = ctx
50210	return c
50211}
50212
50213// Header returns an http.Header that can be modified by the caller to
50214// add HTTP headers to the request.
50215func (c *AutoscalersUpdateCall) Header() http.Header {
50216	if c.header_ == nil {
50217		c.header_ = make(http.Header)
50218	}
50219	return c.header_
50220}
50221
50222func (c *AutoscalersUpdateCall) doRequest(alt string) (*http.Response, error) {
50223	reqHeaders := make(http.Header)
50224	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
50225	for k, v := range c.header_ {
50226		reqHeaders[k] = v
50227	}
50228	reqHeaders.Set("User-Agent", c.s.userAgent())
50229	var body io.Reader = nil
50230	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
50231	if err != nil {
50232		return nil, err
50233	}
50234	reqHeaders.Set("Content-Type", "application/json")
50235	c.urlParams_.Set("alt", alt)
50236	c.urlParams_.Set("prettyPrint", "false")
50237	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/autoscalers")
50238	urls += "?" + c.urlParams_.Encode()
50239	req, err := http.NewRequest("PUT", urls, body)
50240	if err != nil {
50241		return nil, err
50242	}
50243	req.Header = reqHeaders
50244	googleapi.Expand(req.URL, map[string]string{
50245		"project": c.project,
50246		"zone":    c.zone,
50247	})
50248	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50249}
50250
50251// Do executes the "compute.autoscalers.update" call.
50252// Exactly one of *Operation or error will be non-nil. Any non-2xx
50253// status code is an error. Response headers are in either
50254// *Operation.ServerResponse.Header or (if a response was returned at
50255// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
50256// to check whether the returned error was because
50257// http.StatusNotModified was returned.
50258func (c *AutoscalersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
50259	gensupport.SetOptions(c.urlParams_, opts...)
50260	res, err := c.doRequest("json")
50261	if res != nil && res.StatusCode == http.StatusNotModified {
50262		if res.Body != nil {
50263			res.Body.Close()
50264		}
50265		return nil, &googleapi.Error{
50266			Code:   res.StatusCode,
50267			Header: res.Header,
50268		}
50269	}
50270	if err != nil {
50271		return nil, err
50272	}
50273	defer googleapi.CloseBody(res)
50274	if err := googleapi.CheckResponse(res); err != nil {
50275		return nil, err
50276	}
50277	ret := &Operation{
50278		ServerResponse: googleapi.ServerResponse{
50279			Header:         res.Header,
50280			HTTPStatusCode: res.StatusCode,
50281		},
50282	}
50283	target := &ret
50284	if err := gensupport.DecodeResponse(target, res); err != nil {
50285		return nil, err
50286	}
50287	return ret, nil
50288	// {
50289	//   "description": "Updates an autoscaler in the specified project using the data included in the request.",
50290	//   "httpMethod": "PUT",
50291	//   "id": "compute.autoscalers.update",
50292	//   "parameterOrder": [
50293	//     "project",
50294	//     "zone"
50295	//   ],
50296	//   "parameters": {
50297	//     "autoscaler": {
50298	//       "description": "Name of the autoscaler to update.",
50299	//       "location": "query",
50300	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
50301	//       "type": "string"
50302	//     },
50303	//     "project": {
50304	//       "description": "Project ID for this request.",
50305	//       "location": "path",
50306	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50307	//       "required": true,
50308	//       "type": "string"
50309	//     },
50310	//     "requestId": {
50311	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
50312	//       "location": "query",
50313	//       "type": "string"
50314	//     },
50315	//     "zone": {
50316	//       "description": "Name of the zone for this request.",
50317	//       "location": "path",
50318	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
50319	//       "required": true,
50320	//       "type": "string"
50321	//     }
50322	//   },
50323	//   "path": "projects/{project}/zones/{zone}/autoscalers",
50324	//   "request": {
50325	//     "$ref": "Autoscaler"
50326	//   },
50327	//   "response": {
50328	//     "$ref": "Operation"
50329	//   },
50330	//   "scopes": [
50331	//     "https://www.googleapis.com/auth/cloud-platform",
50332	//     "https://www.googleapis.com/auth/compute"
50333	//   ]
50334	// }
50335
50336}
50337
50338// method id "compute.backendBuckets.addSignedUrlKey":
50339
50340type BackendBucketsAddSignedUrlKeyCall struct {
50341	s             *Service
50342	project       string
50343	backendBucket string
50344	signedurlkey  *SignedUrlKey
50345	urlParams_    gensupport.URLParams
50346	ctx_          context.Context
50347	header_       http.Header
50348}
50349
50350// AddSignedUrlKey: Adds a key for validating requests with signed URLs
50351// for this backend bucket.
50352//
50353// - backendBucket: Name of the BackendBucket resource to which the
50354//   Signed URL Key should be added. The name should conform to RFC1035.
50355// - project: Project ID for this request.
50356func (r *BackendBucketsService) AddSignedUrlKey(project string, backendBucket string, signedurlkey *SignedUrlKey) *BackendBucketsAddSignedUrlKeyCall {
50357	c := &BackendBucketsAddSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50358	c.project = project
50359	c.backendBucket = backendBucket
50360	c.signedurlkey = signedurlkey
50361	return c
50362}
50363
50364// RequestId sets the optional parameter "requestId": An optional
50365// request ID to identify requests. Specify a unique request ID so that
50366// if you must retry your request, the server will know to ignore the
50367// request if it has already been completed.
50368//
50369// For example, consider a situation where you make an initial request
50370// and the request times out. If you make the request again with the
50371// same request ID, the server can check if original operation with the
50372// same request ID was received, and if so, will ignore the second
50373// request. This prevents clients from accidentally creating duplicate
50374// commitments.
50375//
50376// The request ID must be a valid UUID with the exception that zero UUID
50377// is not supported (00000000-0000-0000-0000-000000000000).
50378func (c *BackendBucketsAddSignedUrlKeyCall) RequestId(requestId string) *BackendBucketsAddSignedUrlKeyCall {
50379	c.urlParams_.Set("requestId", requestId)
50380	return c
50381}
50382
50383// Fields allows partial responses to be retrieved. See
50384// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50385// for more information.
50386func (c *BackendBucketsAddSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendBucketsAddSignedUrlKeyCall {
50387	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50388	return c
50389}
50390
50391// Context sets the context to be used in this call's Do method. Any
50392// pending HTTP request will be aborted if the provided context is
50393// canceled.
50394func (c *BackendBucketsAddSignedUrlKeyCall) Context(ctx context.Context) *BackendBucketsAddSignedUrlKeyCall {
50395	c.ctx_ = ctx
50396	return c
50397}
50398
50399// Header returns an http.Header that can be modified by the caller to
50400// add HTTP headers to the request.
50401func (c *BackendBucketsAddSignedUrlKeyCall) Header() http.Header {
50402	if c.header_ == nil {
50403		c.header_ = make(http.Header)
50404	}
50405	return c.header_
50406}
50407
50408func (c *BackendBucketsAddSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
50409	reqHeaders := make(http.Header)
50410	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
50411	for k, v := range c.header_ {
50412		reqHeaders[k] = v
50413	}
50414	reqHeaders.Set("User-Agent", c.s.userAgent())
50415	var body io.Reader = nil
50416	body, err := googleapi.WithoutDataWrapper.JSONReader(c.signedurlkey)
50417	if err != nil {
50418		return nil, err
50419	}
50420	reqHeaders.Set("Content-Type", "application/json")
50421	c.urlParams_.Set("alt", alt)
50422	c.urlParams_.Set("prettyPrint", "false")
50423	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey")
50424	urls += "?" + c.urlParams_.Encode()
50425	req, err := http.NewRequest("POST", urls, body)
50426	if err != nil {
50427		return nil, err
50428	}
50429	req.Header = reqHeaders
50430	googleapi.Expand(req.URL, map[string]string{
50431		"project":       c.project,
50432		"backendBucket": c.backendBucket,
50433	})
50434	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50435}
50436
50437// Do executes the "compute.backendBuckets.addSignedUrlKey" call.
50438// Exactly one of *Operation or error will be non-nil. Any non-2xx
50439// status code is an error. Response headers are in either
50440// *Operation.ServerResponse.Header or (if a response was returned at
50441// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
50442// to check whether the returned error was because
50443// http.StatusNotModified was returned.
50444func (c *BackendBucketsAddSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
50445	gensupport.SetOptions(c.urlParams_, opts...)
50446	res, err := c.doRequest("json")
50447	if res != nil && res.StatusCode == http.StatusNotModified {
50448		if res.Body != nil {
50449			res.Body.Close()
50450		}
50451		return nil, &googleapi.Error{
50452			Code:   res.StatusCode,
50453			Header: res.Header,
50454		}
50455	}
50456	if err != nil {
50457		return nil, err
50458	}
50459	defer googleapi.CloseBody(res)
50460	if err := googleapi.CheckResponse(res); err != nil {
50461		return nil, err
50462	}
50463	ret := &Operation{
50464		ServerResponse: googleapi.ServerResponse{
50465			Header:         res.Header,
50466			HTTPStatusCode: res.StatusCode,
50467		},
50468	}
50469	target := &ret
50470	if err := gensupport.DecodeResponse(target, res); err != nil {
50471		return nil, err
50472	}
50473	return ret, nil
50474	// {
50475	//   "description": "Adds a key for validating requests with signed URLs for this backend bucket.",
50476	//   "httpMethod": "POST",
50477	//   "id": "compute.backendBuckets.addSignedUrlKey",
50478	//   "parameterOrder": [
50479	//     "project",
50480	//     "backendBucket"
50481	//   ],
50482	//   "parameters": {
50483	//     "backendBucket": {
50484	//       "description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
50485	//       "location": "path",
50486	//       "required": true,
50487	//       "type": "string"
50488	//     },
50489	//     "project": {
50490	//       "description": "Project ID for this request.",
50491	//       "location": "path",
50492	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50493	//       "required": true,
50494	//       "type": "string"
50495	//     },
50496	//     "requestId": {
50497	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
50498	//       "location": "query",
50499	//       "type": "string"
50500	//     }
50501	//   },
50502	//   "path": "projects/{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey",
50503	//   "request": {
50504	//     "$ref": "SignedUrlKey"
50505	//   },
50506	//   "response": {
50507	//     "$ref": "Operation"
50508	//   },
50509	//   "scopes": [
50510	//     "https://www.googleapis.com/auth/cloud-platform",
50511	//     "https://www.googleapis.com/auth/compute"
50512	//   ]
50513	// }
50514
50515}
50516
50517// method id "compute.backendBuckets.delete":
50518
50519type BackendBucketsDeleteCall struct {
50520	s             *Service
50521	project       string
50522	backendBucket string
50523	urlParams_    gensupport.URLParams
50524	ctx_          context.Context
50525	header_       http.Header
50526}
50527
50528// Delete: Deletes the specified BackendBucket resource.
50529//
50530// - backendBucket: Name of the BackendBucket resource to delete.
50531// - project: Project ID for this request.
50532func (r *BackendBucketsService) Delete(project string, backendBucket string) *BackendBucketsDeleteCall {
50533	c := &BackendBucketsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50534	c.project = project
50535	c.backendBucket = backendBucket
50536	return c
50537}
50538
50539// RequestId sets the optional parameter "requestId": An optional
50540// request ID to identify requests. Specify a unique request ID so that
50541// if you must retry your request, the server will know to ignore the
50542// request if it has already been completed.
50543//
50544// For example, consider a situation where you make an initial request
50545// and the request times out. If you make the request again with the
50546// same request ID, the server can check if original operation with the
50547// same request ID was received, and if so, will ignore the second
50548// request. This prevents clients from accidentally creating duplicate
50549// commitments.
50550//
50551// The request ID must be a valid UUID with the exception that zero UUID
50552// is not supported (00000000-0000-0000-0000-000000000000).
50553func (c *BackendBucketsDeleteCall) RequestId(requestId string) *BackendBucketsDeleteCall {
50554	c.urlParams_.Set("requestId", requestId)
50555	return c
50556}
50557
50558// Fields allows partial responses to be retrieved. See
50559// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50560// for more information.
50561func (c *BackendBucketsDeleteCall) Fields(s ...googleapi.Field) *BackendBucketsDeleteCall {
50562	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50563	return c
50564}
50565
50566// Context sets the context to be used in this call's Do method. Any
50567// pending HTTP request will be aborted if the provided context is
50568// canceled.
50569func (c *BackendBucketsDeleteCall) Context(ctx context.Context) *BackendBucketsDeleteCall {
50570	c.ctx_ = ctx
50571	return c
50572}
50573
50574// Header returns an http.Header that can be modified by the caller to
50575// add HTTP headers to the request.
50576func (c *BackendBucketsDeleteCall) Header() http.Header {
50577	if c.header_ == nil {
50578		c.header_ = make(http.Header)
50579	}
50580	return c.header_
50581}
50582
50583func (c *BackendBucketsDeleteCall) doRequest(alt string) (*http.Response, error) {
50584	reqHeaders := make(http.Header)
50585	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
50586	for k, v := range c.header_ {
50587		reqHeaders[k] = v
50588	}
50589	reqHeaders.Set("User-Agent", c.s.userAgent())
50590	var body io.Reader = nil
50591	c.urlParams_.Set("alt", alt)
50592	c.urlParams_.Set("prettyPrint", "false")
50593	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{backendBucket}")
50594	urls += "?" + c.urlParams_.Encode()
50595	req, err := http.NewRequest("DELETE", urls, body)
50596	if err != nil {
50597		return nil, err
50598	}
50599	req.Header = reqHeaders
50600	googleapi.Expand(req.URL, map[string]string{
50601		"project":       c.project,
50602		"backendBucket": c.backendBucket,
50603	})
50604	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50605}
50606
50607// Do executes the "compute.backendBuckets.delete" call.
50608// Exactly one of *Operation or error will be non-nil. Any non-2xx
50609// status code is an error. Response headers are in either
50610// *Operation.ServerResponse.Header or (if a response was returned at
50611// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
50612// to check whether the returned error was because
50613// http.StatusNotModified was returned.
50614func (c *BackendBucketsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
50615	gensupport.SetOptions(c.urlParams_, opts...)
50616	res, err := c.doRequest("json")
50617	if res != nil && res.StatusCode == http.StatusNotModified {
50618		if res.Body != nil {
50619			res.Body.Close()
50620		}
50621		return nil, &googleapi.Error{
50622			Code:   res.StatusCode,
50623			Header: res.Header,
50624		}
50625	}
50626	if err != nil {
50627		return nil, err
50628	}
50629	defer googleapi.CloseBody(res)
50630	if err := googleapi.CheckResponse(res); err != nil {
50631		return nil, err
50632	}
50633	ret := &Operation{
50634		ServerResponse: googleapi.ServerResponse{
50635			Header:         res.Header,
50636			HTTPStatusCode: res.StatusCode,
50637		},
50638	}
50639	target := &ret
50640	if err := gensupport.DecodeResponse(target, res); err != nil {
50641		return nil, err
50642	}
50643	return ret, nil
50644	// {
50645	//   "description": "Deletes the specified BackendBucket resource.",
50646	//   "httpMethod": "DELETE",
50647	//   "id": "compute.backendBuckets.delete",
50648	//   "parameterOrder": [
50649	//     "project",
50650	//     "backendBucket"
50651	//   ],
50652	//   "parameters": {
50653	//     "backendBucket": {
50654	//       "description": "Name of the BackendBucket resource to delete.",
50655	//       "location": "path",
50656	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
50657	//       "required": true,
50658	//       "type": "string"
50659	//     },
50660	//     "project": {
50661	//       "description": "Project ID for this request.",
50662	//       "location": "path",
50663	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50664	//       "required": true,
50665	//       "type": "string"
50666	//     },
50667	//     "requestId": {
50668	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
50669	//       "location": "query",
50670	//       "type": "string"
50671	//     }
50672	//   },
50673	//   "path": "projects/{project}/global/backendBuckets/{backendBucket}",
50674	//   "response": {
50675	//     "$ref": "Operation"
50676	//   },
50677	//   "scopes": [
50678	//     "https://www.googleapis.com/auth/cloud-platform",
50679	//     "https://www.googleapis.com/auth/compute"
50680	//   ]
50681	// }
50682
50683}
50684
50685// method id "compute.backendBuckets.deleteSignedUrlKey":
50686
50687type BackendBucketsDeleteSignedUrlKeyCall struct {
50688	s             *Service
50689	project       string
50690	backendBucket string
50691	urlParams_    gensupport.URLParams
50692	ctx_          context.Context
50693	header_       http.Header
50694}
50695
50696// DeleteSignedUrlKey: Deletes a key for validating requests with signed
50697// URLs for this backend bucket.
50698//
50699// - backendBucket: Name of the BackendBucket resource to which the
50700//   Signed URL Key should be added. The name should conform to RFC1035.
50701// - keyName: The name of the Signed URL Key to delete.
50702// - project: Project ID for this request.
50703func (r *BackendBucketsService) DeleteSignedUrlKey(project string, backendBucket string, keyName string) *BackendBucketsDeleteSignedUrlKeyCall {
50704	c := &BackendBucketsDeleteSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50705	c.project = project
50706	c.backendBucket = backendBucket
50707	c.urlParams_.Set("keyName", keyName)
50708	return c
50709}
50710
50711// RequestId sets the optional parameter "requestId": An optional
50712// request ID to identify requests. Specify a unique request ID so that
50713// if you must retry your request, the server will know to ignore the
50714// request if it has already been completed.
50715//
50716// For example, consider a situation where you make an initial request
50717// and the request times out. If you make the request again with the
50718// same request ID, the server can check if original operation with the
50719// same request ID was received, and if so, will ignore the second
50720// request. This prevents clients from accidentally creating duplicate
50721// commitments.
50722//
50723// The request ID must be a valid UUID with the exception that zero UUID
50724// is not supported (00000000-0000-0000-0000-000000000000).
50725func (c *BackendBucketsDeleteSignedUrlKeyCall) RequestId(requestId string) *BackendBucketsDeleteSignedUrlKeyCall {
50726	c.urlParams_.Set("requestId", requestId)
50727	return c
50728}
50729
50730// Fields allows partial responses to be retrieved. See
50731// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50732// for more information.
50733func (c *BackendBucketsDeleteSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendBucketsDeleteSignedUrlKeyCall {
50734	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50735	return c
50736}
50737
50738// Context sets the context to be used in this call's Do method. Any
50739// pending HTTP request will be aborted if the provided context is
50740// canceled.
50741func (c *BackendBucketsDeleteSignedUrlKeyCall) Context(ctx context.Context) *BackendBucketsDeleteSignedUrlKeyCall {
50742	c.ctx_ = ctx
50743	return c
50744}
50745
50746// Header returns an http.Header that can be modified by the caller to
50747// add HTTP headers to the request.
50748func (c *BackendBucketsDeleteSignedUrlKeyCall) Header() http.Header {
50749	if c.header_ == nil {
50750		c.header_ = make(http.Header)
50751	}
50752	return c.header_
50753}
50754
50755func (c *BackendBucketsDeleteSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
50756	reqHeaders := make(http.Header)
50757	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
50758	for k, v := range c.header_ {
50759		reqHeaders[k] = v
50760	}
50761	reqHeaders.Set("User-Agent", c.s.userAgent())
50762	var body io.Reader = nil
50763	c.urlParams_.Set("alt", alt)
50764	c.urlParams_.Set("prettyPrint", "false")
50765	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey")
50766	urls += "?" + c.urlParams_.Encode()
50767	req, err := http.NewRequest("POST", urls, body)
50768	if err != nil {
50769		return nil, err
50770	}
50771	req.Header = reqHeaders
50772	googleapi.Expand(req.URL, map[string]string{
50773		"project":       c.project,
50774		"backendBucket": c.backendBucket,
50775	})
50776	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50777}
50778
50779// Do executes the "compute.backendBuckets.deleteSignedUrlKey" call.
50780// Exactly one of *Operation or error will be non-nil. Any non-2xx
50781// status code is an error. Response headers are in either
50782// *Operation.ServerResponse.Header or (if a response was returned at
50783// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
50784// to check whether the returned error was because
50785// http.StatusNotModified was returned.
50786func (c *BackendBucketsDeleteSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
50787	gensupport.SetOptions(c.urlParams_, opts...)
50788	res, err := c.doRequest("json")
50789	if res != nil && res.StatusCode == http.StatusNotModified {
50790		if res.Body != nil {
50791			res.Body.Close()
50792		}
50793		return nil, &googleapi.Error{
50794			Code:   res.StatusCode,
50795			Header: res.Header,
50796		}
50797	}
50798	if err != nil {
50799		return nil, err
50800	}
50801	defer googleapi.CloseBody(res)
50802	if err := googleapi.CheckResponse(res); err != nil {
50803		return nil, err
50804	}
50805	ret := &Operation{
50806		ServerResponse: googleapi.ServerResponse{
50807			Header:         res.Header,
50808			HTTPStatusCode: res.StatusCode,
50809		},
50810	}
50811	target := &ret
50812	if err := gensupport.DecodeResponse(target, res); err != nil {
50813		return nil, err
50814	}
50815	return ret, nil
50816	// {
50817	//   "description": "Deletes a key for validating requests with signed URLs for this backend bucket.",
50818	//   "httpMethod": "POST",
50819	//   "id": "compute.backendBuckets.deleteSignedUrlKey",
50820	//   "parameterOrder": [
50821	//     "project",
50822	//     "backendBucket",
50823	//     "keyName"
50824	//   ],
50825	//   "parameters": {
50826	//     "backendBucket": {
50827	//       "description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
50828	//       "location": "path",
50829	//       "required": true,
50830	//       "type": "string"
50831	//     },
50832	//     "keyName": {
50833	//       "description": "The name of the Signed URL Key to delete.",
50834	//       "location": "query",
50835	//       "required": true,
50836	//       "type": "string"
50837	//     },
50838	//     "project": {
50839	//       "description": "Project ID for this request.",
50840	//       "location": "path",
50841	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50842	//       "required": true,
50843	//       "type": "string"
50844	//     },
50845	//     "requestId": {
50846	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
50847	//       "location": "query",
50848	//       "type": "string"
50849	//     }
50850	//   },
50851	//   "path": "projects/{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey",
50852	//   "response": {
50853	//     "$ref": "Operation"
50854	//   },
50855	//   "scopes": [
50856	//     "https://www.googleapis.com/auth/cloud-platform",
50857	//     "https://www.googleapis.com/auth/compute"
50858	//   ]
50859	// }
50860
50861}
50862
50863// method id "compute.backendBuckets.get":
50864
50865type BackendBucketsGetCall struct {
50866	s             *Service
50867	project       string
50868	backendBucket string
50869	urlParams_    gensupport.URLParams
50870	ifNoneMatch_  string
50871	ctx_          context.Context
50872	header_       http.Header
50873}
50874
50875// Get: Returns the specified BackendBucket resource. Gets a list of
50876// available backend buckets by making a list() request.
50877//
50878// - backendBucket: Name of the BackendBucket resource to return.
50879// - project: Project ID for this request.
50880func (r *BackendBucketsService) Get(project string, backendBucket string) *BackendBucketsGetCall {
50881	c := &BackendBucketsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50882	c.project = project
50883	c.backendBucket = backendBucket
50884	return c
50885}
50886
50887// Fields allows partial responses to be retrieved. See
50888// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50889// for more information.
50890func (c *BackendBucketsGetCall) Fields(s ...googleapi.Field) *BackendBucketsGetCall {
50891	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50892	return c
50893}
50894
50895// IfNoneMatch sets the optional parameter which makes the operation
50896// fail if the object's ETag matches the given value. This is useful for
50897// getting updates only after the object has changed since the last
50898// request. Use googleapi.IsNotModified to check whether the response
50899// error from Do is the result of In-None-Match.
50900func (c *BackendBucketsGetCall) IfNoneMatch(entityTag string) *BackendBucketsGetCall {
50901	c.ifNoneMatch_ = entityTag
50902	return c
50903}
50904
50905// Context sets the context to be used in this call's Do method. Any
50906// pending HTTP request will be aborted if the provided context is
50907// canceled.
50908func (c *BackendBucketsGetCall) Context(ctx context.Context) *BackendBucketsGetCall {
50909	c.ctx_ = ctx
50910	return c
50911}
50912
50913// Header returns an http.Header that can be modified by the caller to
50914// add HTTP headers to the request.
50915func (c *BackendBucketsGetCall) Header() http.Header {
50916	if c.header_ == nil {
50917		c.header_ = make(http.Header)
50918	}
50919	return c.header_
50920}
50921
50922func (c *BackendBucketsGetCall) doRequest(alt string) (*http.Response, error) {
50923	reqHeaders := make(http.Header)
50924	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
50925	for k, v := range c.header_ {
50926		reqHeaders[k] = v
50927	}
50928	reqHeaders.Set("User-Agent", c.s.userAgent())
50929	if c.ifNoneMatch_ != "" {
50930		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
50931	}
50932	var body io.Reader = nil
50933	c.urlParams_.Set("alt", alt)
50934	c.urlParams_.Set("prettyPrint", "false")
50935	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{backendBucket}")
50936	urls += "?" + c.urlParams_.Encode()
50937	req, err := http.NewRequest("GET", urls, body)
50938	if err != nil {
50939		return nil, err
50940	}
50941	req.Header = reqHeaders
50942	googleapi.Expand(req.URL, map[string]string{
50943		"project":       c.project,
50944		"backendBucket": c.backendBucket,
50945	})
50946	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50947}
50948
50949// Do executes the "compute.backendBuckets.get" call.
50950// Exactly one of *BackendBucket or error will be non-nil. Any non-2xx
50951// status code is an error. Response headers are in either
50952// *BackendBucket.ServerResponse.Header or (if a response was returned
50953// at all) in error.(*googleapi.Error).Header. Use
50954// googleapi.IsNotModified to check whether the returned error was
50955// because http.StatusNotModified was returned.
50956func (c *BackendBucketsGetCall) Do(opts ...googleapi.CallOption) (*BackendBucket, error) {
50957	gensupport.SetOptions(c.urlParams_, opts...)
50958	res, err := c.doRequest("json")
50959	if res != nil && res.StatusCode == http.StatusNotModified {
50960		if res.Body != nil {
50961			res.Body.Close()
50962		}
50963		return nil, &googleapi.Error{
50964			Code:   res.StatusCode,
50965			Header: res.Header,
50966		}
50967	}
50968	if err != nil {
50969		return nil, err
50970	}
50971	defer googleapi.CloseBody(res)
50972	if err := googleapi.CheckResponse(res); err != nil {
50973		return nil, err
50974	}
50975	ret := &BackendBucket{
50976		ServerResponse: googleapi.ServerResponse{
50977			Header:         res.Header,
50978			HTTPStatusCode: res.StatusCode,
50979		},
50980	}
50981	target := &ret
50982	if err := gensupport.DecodeResponse(target, res); err != nil {
50983		return nil, err
50984	}
50985	return ret, nil
50986	// {
50987	//   "description": "Returns the specified BackendBucket resource. Gets a list of available backend buckets by making a list() request.",
50988	//   "httpMethod": "GET",
50989	//   "id": "compute.backendBuckets.get",
50990	//   "parameterOrder": [
50991	//     "project",
50992	//     "backendBucket"
50993	//   ],
50994	//   "parameters": {
50995	//     "backendBucket": {
50996	//       "description": "Name of the BackendBucket resource to return.",
50997	//       "location": "path",
50998	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
50999	//       "required": true,
51000	//       "type": "string"
51001	//     },
51002	//     "project": {
51003	//       "description": "Project ID for this request.",
51004	//       "location": "path",
51005	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51006	//       "required": true,
51007	//       "type": "string"
51008	//     }
51009	//   },
51010	//   "path": "projects/{project}/global/backendBuckets/{backendBucket}",
51011	//   "response": {
51012	//     "$ref": "BackendBucket"
51013	//   },
51014	//   "scopes": [
51015	//     "https://www.googleapis.com/auth/cloud-platform",
51016	//     "https://www.googleapis.com/auth/compute",
51017	//     "https://www.googleapis.com/auth/compute.readonly"
51018	//   ]
51019	// }
51020
51021}
51022
51023// method id "compute.backendBuckets.insert":
51024
51025type BackendBucketsInsertCall struct {
51026	s             *Service
51027	project       string
51028	backendbucket *BackendBucket
51029	urlParams_    gensupport.URLParams
51030	ctx_          context.Context
51031	header_       http.Header
51032}
51033
51034// Insert: Creates a BackendBucket resource in the specified project
51035// using the data included in the request.
51036//
51037// - project: Project ID for this request.
51038func (r *BackendBucketsService) Insert(project string, backendbucket *BackendBucket) *BackendBucketsInsertCall {
51039	c := &BackendBucketsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51040	c.project = project
51041	c.backendbucket = backendbucket
51042	return c
51043}
51044
51045// RequestId sets the optional parameter "requestId": An optional
51046// request ID to identify requests. Specify a unique request ID so that
51047// if you must retry your request, the server will know to ignore the
51048// request if it has already been completed.
51049//
51050// For example, consider a situation where you make an initial request
51051// and the request times out. If you make the request again with the
51052// same request ID, the server can check if original operation with the
51053// same request ID was received, and if so, will ignore the second
51054// request. This prevents clients from accidentally creating duplicate
51055// commitments.
51056//
51057// The request ID must be a valid UUID with the exception that zero UUID
51058// is not supported (00000000-0000-0000-0000-000000000000).
51059func (c *BackendBucketsInsertCall) RequestId(requestId string) *BackendBucketsInsertCall {
51060	c.urlParams_.Set("requestId", requestId)
51061	return c
51062}
51063
51064// Fields allows partial responses to be retrieved. See
51065// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51066// for more information.
51067func (c *BackendBucketsInsertCall) Fields(s ...googleapi.Field) *BackendBucketsInsertCall {
51068	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51069	return c
51070}
51071
51072// Context sets the context to be used in this call's Do method. Any
51073// pending HTTP request will be aborted if the provided context is
51074// canceled.
51075func (c *BackendBucketsInsertCall) Context(ctx context.Context) *BackendBucketsInsertCall {
51076	c.ctx_ = ctx
51077	return c
51078}
51079
51080// Header returns an http.Header that can be modified by the caller to
51081// add HTTP headers to the request.
51082func (c *BackendBucketsInsertCall) Header() http.Header {
51083	if c.header_ == nil {
51084		c.header_ = make(http.Header)
51085	}
51086	return c.header_
51087}
51088
51089func (c *BackendBucketsInsertCall) doRequest(alt string) (*http.Response, error) {
51090	reqHeaders := make(http.Header)
51091	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
51092	for k, v := range c.header_ {
51093		reqHeaders[k] = v
51094	}
51095	reqHeaders.Set("User-Agent", c.s.userAgent())
51096	var body io.Reader = nil
51097	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
51098	if err != nil {
51099		return nil, err
51100	}
51101	reqHeaders.Set("Content-Type", "application/json")
51102	c.urlParams_.Set("alt", alt)
51103	c.urlParams_.Set("prettyPrint", "false")
51104	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets")
51105	urls += "?" + c.urlParams_.Encode()
51106	req, err := http.NewRequest("POST", urls, body)
51107	if err != nil {
51108		return nil, err
51109	}
51110	req.Header = reqHeaders
51111	googleapi.Expand(req.URL, map[string]string{
51112		"project": c.project,
51113	})
51114	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51115}
51116
51117// Do executes the "compute.backendBuckets.insert" call.
51118// Exactly one of *Operation or error will be non-nil. Any non-2xx
51119// status code is an error. Response headers are in either
51120// *Operation.ServerResponse.Header or (if a response was returned at
51121// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51122// to check whether the returned error was because
51123// http.StatusNotModified was returned.
51124func (c *BackendBucketsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
51125	gensupport.SetOptions(c.urlParams_, opts...)
51126	res, err := c.doRequest("json")
51127	if res != nil && res.StatusCode == http.StatusNotModified {
51128		if res.Body != nil {
51129			res.Body.Close()
51130		}
51131		return nil, &googleapi.Error{
51132			Code:   res.StatusCode,
51133			Header: res.Header,
51134		}
51135	}
51136	if err != nil {
51137		return nil, err
51138	}
51139	defer googleapi.CloseBody(res)
51140	if err := googleapi.CheckResponse(res); err != nil {
51141		return nil, err
51142	}
51143	ret := &Operation{
51144		ServerResponse: googleapi.ServerResponse{
51145			Header:         res.Header,
51146			HTTPStatusCode: res.StatusCode,
51147		},
51148	}
51149	target := &ret
51150	if err := gensupport.DecodeResponse(target, res); err != nil {
51151		return nil, err
51152	}
51153	return ret, nil
51154	// {
51155	//   "description": "Creates a BackendBucket resource in the specified project using the data included in the request.",
51156	//   "httpMethod": "POST",
51157	//   "id": "compute.backendBuckets.insert",
51158	//   "parameterOrder": [
51159	//     "project"
51160	//   ],
51161	//   "parameters": {
51162	//     "project": {
51163	//       "description": "Project ID for this request.",
51164	//       "location": "path",
51165	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51166	//       "required": true,
51167	//       "type": "string"
51168	//     },
51169	//     "requestId": {
51170	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
51171	//       "location": "query",
51172	//       "type": "string"
51173	//     }
51174	//   },
51175	//   "path": "projects/{project}/global/backendBuckets",
51176	//   "request": {
51177	//     "$ref": "BackendBucket"
51178	//   },
51179	//   "response": {
51180	//     "$ref": "Operation"
51181	//   },
51182	//   "scopes": [
51183	//     "https://www.googleapis.com/auth/cloud-platform",
51184	//     "https://www.googleapis.com/auth/compute"
51185	//   ]
51186	// }
51187
51188}
51189
51190// method id "compute.backendBuckets.list":
51191
51192type BackendBucketsListCall struct {
51193	s            *Service
51194	project      string
51195	urlParams_   gensupport.URLParams
51196	ifNoneMatch_ string
51197	ctx_         context.Context
51198	header_      http.Header
51199}
51200
51201// List: Retrieves the list of BackendBucket resources available to the
51202// specified project.
51203//
51204// - project: Project ID for this request.
51205func (r *BackendBucketsService) List(project string) *BackendBucketsListCall {
51206	c := &BackendBucketsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51207	c.project = project
51208	return c
51209}
51210
51211// Filter sets the optional parameter "filter": A filter expression that
51212// filters resources listed in the response. The expression must specify
51213// the field name, a comparison operator, and the value that you want to
51214// use for filtering. The value must be a string, a number, or a
51215// boolean. The comparison operator must be either `=`, `!=`, `>`, or
51216// `<`.
51217//
51218// For example, if you are filtering Compute Engine instances, you can
51219// exclude instances named `example-instance` by specifying `name !=
51220// example-instance`.
51221//
51222// You can also filter nested fields. For example, you could specify
51223// `scheduling.automaticRestart = false` to include instances only if
51224// they are not scheduled for automatic restarts. You can use filtering
51225// on nested fields to filter based on resource labels.
51226//
51227// To filter on multiple expressions, provide each separate expression
51228// within parentheses. For example: ``` (scheduling.automaticRestart =
51229// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
51230// is an `AND` expression. However, you can include `AND` and `OR`
51231// expressions explicitly. For example: ``` (cpuPlatform = "Intel
51232// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
51233// (scheduling.automaticRestart = true) ```
51234func (c *BackendBucketsListCall) Filter(filter string) *BackendBucketsListCall {
51235	c.urlParams_.Set("filter", filter)
51236	return c
51237}
51238
51239// MaxResults sets the optional parameter "maxResults": The maximum
51240// number of results per page that should be returned. If the number of
51241// available results is larger than `maxResults`, Compute Engine returns
51242// a `nextPageToken` that can be used to get the next page of results in
51243// subsequent list requests. Acceptable values are `0` to `500`,
51244// inclusive. (Default: `500`)
51245func (c *BackendBucketsListCall) MaxResults(maxResults int64) *BackendBucketsListCall {
51246	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
51247	return c
51248}
51249
51250// OrderBy sets the optional parameter "orderBy": Sorts list results by
51251// a certain order. By default, results are returned in alphanumerical
51252// order based on the resource name.
51253//
51254// You can also sort results in descending order based on the creation
51255// timestamp using `orderBy="creationTimestamp desc". This sorts
51256// results based on the `creationTimestamp` field in reverse
51257// chronological order (newest result first). Use this to sort resources
51258// like operations so that the newest operation is returned
51259// first.
51260//
51261// Currently, only sorting by `name` or `creationTimestamp desc` is
51262// supported.
51263func (c *BackendBucketsListCall) OrderBy(orderBy string) *BackendBucketsListCall {
51264	c.urlParams_.Set("orderBy", orderBy)
51265	return c
51266}
51267
51268// PageToken sets the optional parameter "pageToken": Specifies a page
51269// token to use. Set `pageToken` to the `nextPageToken` returned by a
51270// previous list request to get the next page of results.
51271func (c *BackendBucketsListCall) PageToken(pageToken string) *BackendBucketsListCall {
51272	c.urlParams_.Set("pageToken", pageToken)
51273	return c
51274}
51275
51276// ReturnPartialSuccess sets the optional parameter
51277// "returnPartialSuccess": Opt-in for partial success behavior which
51278// provides partial results in case of failure. The default value is
51279// false.
51280func (c *BackendBucketsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *BackendBucketsListCall {
51281	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
51282	return c
51283}
51284
51285// Fields allows partial responses to be retrieved. See
51286// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51287// for more information.
51288func (c *BackendBucketsListCall) Fields(s ...googleapi.Field) *BackendBucketsListCall {
51289	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51290	return c
51291}
51292
51293// IfNoneMatch sets the optional parameter which makes the operation
51294// fail if the object's ETag matches the given value. This is useful for
51295// getting updates only after the object has changed since the last
51296// request. Use googleapi.IsNotModified to check whether the response
51297// error from Do is the result of In-None-Match.
51298func (c *BackendBucketsListCall) IfNoneMatch(entityTag string) *BackendBucketsListCall {
51299	c.ifNoneMatch_ = entityTag
51300	return c
51301}
51302
51303// Context sets the context to be used in this call's Do method. Any
51304// pending HTTP request will be aborted if the provided context is
51305// canceled.
51306func (c *BackendBucketsListCall) Context(ctx context.Context) *BackendBucketsListCall {
51307	c.ctx_ = ctx
51308	return c
51309}
51310
51311// Header returns an http.Header that can be modified by the caller to
51312// add HTTP headers to the request.
51313func (c *BackendBucketsListCall) Header() http.Header {
51314	if c.header_ == nil {
51315		c.header_ = make(http.Header)
51316	}
51317	return c.header_
51318}
51319
51320func (c *BackendBucketsListCall) doRequest(alt string) (*http.Response, error) {
51321	reqHeaders := make(http.Header)
51322	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
51323	for k, v := range c.header_ {
51324		reqHeaders[k] = v
51325	}
51326	reqHeaders.Set("User-Agent", c.s.userAgent())
51327	if c.ifNoneMatch_ != "" {
51328		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
51329	}
51330	var body io.Reader = nil
51331	c.urlParams_.Set("alt", alt)
51332	c.urlParams_.Set("prettyPrint", "false")
51333	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets")
51334	urls += "?" + c.urlParams_.Encode()
51335	req, err := http.NewRequest("GET", urls, body)
51336	if err != nil {
51337		return nil, err
51338	}
51339	req.Header = reqHeaders
51340	googleapi.Expand(req.URL, map[string]string{
51341		"project": c.project,
51342	})
51343	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51344}
51345
51346// Do executes the "compute.backendBuckets.list" call.
51347// Exactly one of *BackendBucketList or error will be non-nil. Any
51348// non-2xx status code is an error. Response headers are in either
51349// *BackendBucketList.ServerResponse.Header or (if a response was
51350// returned at all) in error.(*googleapi.Error).Header. Use
51351// googleapi.IsNotModified to check whether the returned error was
51352// because http.StatusNotModified was returned.
51353func (c *BackendBucketsListCall) Do(opts ...googleapi.CallOption) (*BackendBucketList, error) {
51354	gensupport.SetOptions(c.urlParams_, opts...)
51355	res, err := c.doRequest("json")
51356	if res != nil && res.StatusCode == http.StatusNotModified {
51357		if res.Body != nil {
51358			res.Body.Close()
51359		}
51360		return nil, &googleapi.Error{
51361			Code:   res.StatusCode,
51362			Header: res.Header,
51363		}
51364	}
51365	if err != nil {
51366		return nil, err
51367	}
51368	defer googleapi.CloseBody(res)
51369	if err := googleapi.CheckResponse(res); err != nil {
51370		return nil, err
51371	}
51372	ret := &BackendBucketList{
51373		ServerResponse: googleapi.ServerResponse{
51374			Header:         res.Header,
51375			HTTPStatusCode: res.StatusCode,
51376		},
51377	}
51378	target := &ret
51379	if err := gensupport.DecodeResponse(target, res); err != nil {
51380		return nil, err
51381	}
51382	return ret, nil
51383	// {
51384	//   "description": "Retrieves the list of BackendBucket resources available to the specified project.",
51385	//   "httpMethod": "GET",
51386	//   "id": "compute.backendBuckets.list",
51387	//   "parameterOrder": [
51388	//     "project"
51389	//   ],
51390	//   "parameters": {
51391	//     "filter": {
51392	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
51393	//       "location": "query",
51394	//       "type": "string"
51395	//     },
51396	//     "maxResults": {
51397	//       "default": "500",
51398	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
51399	//       "format": "uint32",
51400	//       "location": "query",
51401	//       "minimum": "0",
51402	//       "type": "integer"
51403	//     },
51404	//     "orderBy": {
51405	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
51406	//       "location": "query",
51407	//       "type": "string"
51408	//     },
51409	//     "pageToken": {
51410	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
51411	//       "location": "query",
51412	//       "type": "string"
51413	//     },
51414	//     "project": {
51415	//       "description": "Project ID for this request.",
51416	//       "location": "path",
51417	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51418	//       "required": true,
51419	//       "type": "string"
51420	//     },
51421	//     "returnPartialSuccess": {
51422	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
51423	//       "location": "query",
51424	//       "type": "boolean"
51425	//     }
51426	//   },
51427	//   "path": "projects/{project}/global/backendBuckets",
51428	//   "response": {
51429	//     "$ref": "BackendBucketList"
51430	//   },
51431	//   "scopes": [
51432	//     "https://www.googleapis.com/auth/cloud-platform",
51433	//     "https://www.googleapis.com/auth/compute",
51434	//     "https://www.googleapis.com/auth/compute.readonly"
51435	//   ]
51436	// }
51437
51438}
51439
51440// Pages invokes f for each page of results.
51441// A non-nil error returned from f will halt the iteration.
51442// The provided context supersedes any context provided to the Context method.
51443func (c *BackendBucketsListCall) Pages(ctx context.Context, f func(*BackendBucketList) error) error {
51444	c.ctx_ = ctx
51445	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
51446	for {
51447		x, err := c.Do()
51448		if err != nil {
51449			return err
51450		}
51451		if err := f(x); err != nil {
51452			return err
51453		}
51454		if x.NextPageToken == "" {
51455			return nil
51456		}
51457		c.PageToken(x.NextPageToken)
51458	}
51459}
51460
51461// method id "compute.backendBuckets.patch":
51462
51463type BackendBucketsPatchCall struct {
51464	s             *Service
51465	project       string
51466	backendBucket string
51467	backendbucket *BackendBucket
51468	urlParams_    gensupport.URLParams
51469	ctx_          context.Context
51470	header_       http.Header
51471}
51472
51473// Patch: Updates the specified BackendBucket resource with the data
51474// included in the request. This method supports PATCH semantics and
51475// uses the JSON merge patch format and processing rules.
51476//
51477// - backendBucket: Name of the BackendBucket resource to patch.
51478// - project: Project ID for this request.
51479func (r *BackendBucketsService) Patch(project string, backendBucket string, backendbucket *BackendBucket) *BackendBucketsPatchCall {
51480	c := &BackendBucketsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51481	c.project = project
51482	c.backendBucket = backendBucket
51483	c.backendbucket = backendbucket
51484	return c
51485}
51486
51487// RequestId sets the optional parameter "requestId": An optional
51488// request ID to identify requests. Specify a unique request ID so that
51489// if you must retry your request, the server will know to ignore the
51490// request if it has already been completed.
51491//
51492// For example, consider a situation where you make an initial request
51493// and the request times out. If you make the request again with the
51494// same request ID, the server can check if original operation with the
51495// same request ID was received, and if so, will ignore the second
51496// request. This prevents clients from accidentally creating duplicate
51497// commitments.
51498//
51499// The request ID must be a valid UUID with the exception that zero UUID
51500// is not supported (00000000-0000-0000-0000-000000000000).
51501func (c *BackendBucketsPatchCall) RequestId(requestId string) *BackendBucketsPatchCall {
51502	c.urlParams_.Set("requestId", requestId)
51503	return c
51504}
51505
51506// Fields allows partial responses to be retrieved. See
51507// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51508// for more information.
51509func (c *BackendBucketsPatchCall) Fields(s ...googleapi.Field) *BackendBucketsPatchCall {
51510	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51511	return c
51512}
51513
51514// Context sets the context to be used in this call's Do method. Any
51515// pending HTTP request will be aborted if the provided context is
51516// canceled.
51517func (c *BackendBucketsPatchCall) Context(ctx context.Context) *BackendBucketsPatchCall {
51518	c.ctx_ = ctx
51519	return c
51520}
51521
51522// Header returns an http.Header that can be modified by the caller to
51523// add HTTP headers to the request.
51524func (c *BackendBucketsPatchCall) Header() http.Header {
51525	if c.header_ == nil {
51526		c.header_ = make(http.Header)
51527	}
51528	return c.header_
51529}
51530
51531func (c *BackendBucketsPatchCall) doRequest(alt string) (*http.Response, error) {
51532	reqHeaders := make(http.Header)
51533	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
51534	for k, v := range c.header_ {
51535		reqHeaders[k] = v
51536	}
51537	reqHeaders.Set("User-Agent", c.s.userAgent())
51538	var body io.Reader = nil
51539	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
51540	if err != nil {
51541		return nil, err
51542	}
51543	reqHeaders.Set("Content-Type", "application/json")
51544	c.urlParams_.Set("alt", alt)
51545	c.urlParams_.Set("prettyPrint", "false")
51546	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{backendBucket}")
51547	urls += "?" + c.urlParams_.Encode()
51548	req, err := http.NewRequest("PATCH", urls, body)
51549	if err != nil {
51550		return nil, err
51551	}
51552	req.Header = reqHeaders
51553	googleapi.Expand(req.URL, map[string]string{
51554		"project":       c.project,
51555		"backendBucket": c.backendBucket,
51556	})
51557	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51558}
51559
51560// Do executes the "compute.backendBuckets.patch" call.
51561// Exactly one of *Operation or error will be non-nil. Any non-2xx
51562// status code is an error. Response headers are in either
51563// *Operation.ServerResponse.Header or (if a response was returned at
51564// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51565// to check whether the returned error was because
51566// http.StatusNotModified was returned.
51567func (c *BackendBucketsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
51568	gensupport.SetOptions(c.urlParams_, opts...)
51569	res, err := c.doRequest("json")
51570	if res != nil && res.StatusCode == http.StatusNotModified {
51571		if res.Body != nil {
51572			res.Body.Close()
51573		}
51574		return nil, &googleapi.Error{
51575			Code:   res.StatusCode,
51576			Header: res.Header,
51577		}
51578	}
51579	if err != nil {
51580		return nil, err
51581	}
51582	defer googleapi.CloseBody(res)
51583	if err := googleapi.CheckResponse(res); err != nil {
51584		return nil, err
51585	}
51586	ret := &Operation{
51587		ServerResponse: googleapi.ServerResponse{
51588			Header:         res.Header,
51589			HTTPStatusCode: res.StatusCode,
51590		},
51591	}
51592	target := &ret
51593	if err := gensupport.DecodeResponse(target, res); err != nil {
51594		return nil, err
51595	}
51596	return ret, nil
51597	// {
51598	//   "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.",
51599	//   "httpMethod": "PATCH",
51600	//   "id": "compute.backendBuckets.patch",
51601	//   "parameterOrder": [
51602	//     "project",
51603	//     "backendBucket"
51604	//   ],
51605	//   "parameters": {
51606	//     "backendBucket": {
51607	//       "description": "Name of the BackendBucket resource to patch.",
51608	//       "location": "path",
51609	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
51610	//       "required": true,
51611	//       "type": "string"
51612	//     },
51613	//     "project": {
51614	//       "description": "Project ID for this request.",
51615	//       "location": "path",
51616	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51617	//       "required": true,
51618	//       "type": "string"
51619	//     },
51620	//     "requestId": {
51621	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
51622	//       "location": "query",
51623	//       "type": "string"
51624	//     }
51625	//   },
51626	//   "path": "projects/{project}/global/backendBuckets/{backendBucket}",
51627	//   "request": {
51628	//     "$ref": "BackendBucket"
51629	//   },
51630	//   "response": {
51631	//     "$ref": "Operation"
51632	//   },
51633	//   "scopes": [
51634	//     "https://www.googleapis.com/auth/cloud-platform",
51635	//     "https://www.googleapis.com/auth/compute"
51636	//   ]
51637	// }
51638
51639}
51640
51641// method id "compute.backendBuckets.update":
51642
51643type BackendBucketsUpdateCall struct {
51644	s             *Service
51645	project       string
51646	backendBucket string
51647	backendbucket *BackendBucket
51648	urlParams_    gensupport.URLParams
51649	ctx_          context.Context
51650	header_       http.Header
51651}
51652
51653// Update: Updates the specified BackendBucket resource with the data
51654// included in the request.
51655//
51656// - backendBucket: Name of the BackendBucket resource to update.
51657// - project: Project ID for this request.
51658func (r *BackendBucketsService) Update(project string, backendBucket string, backendbucket *BackendBucket) *BackendBucketsUpdateCall {
51659	c := &BackendBucketsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51660	c.project = project
51661	c.backendBucket = backendBucket
51662	c.backendbucket = backendbucket
51663	return c
51664}
51665
51666// RequestId sets the optional parameter "requestId": An optional
51667// request ID to identify requests. Specify a unique request ID so that
51668// if you must retry your request, the server will know to ignore the
51669// request if it has already been completed.
51670//
51671// For example, consider a situation where you make an initial request
51672// and the request times out. If you make the request again with the
51673// same request ID, the server can check if original operation with the
51674// same request ID was received, and if so, will ignore the second
51675// request. This prevents clients from accidentally creating duplicate
51676// commitments.
51677//
51678// The request ID must be a valid UUID with the exception that zero UUID
51679// is not supported (00000000-0000-0000-0000-000000000000).
51680func (c *BackendBucketsUpdateCall) RequestId(requestId string) *BackendBucketsUpdateCall {
51681	c.urlParams_.Set("requestId", requestId)
51682	return c
51683}
51684
51685// Fields allows partial responses to be retrieved. See
51686// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51687// for more information.
51688func (c *BackendBucketsUpdateCall) Fields(s ...googleapi.Field) *BackendBucketsUpdateCall {
51689	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51690	return c
51691}
51692
51693// Context sets the context to be used in this call's Do method. Any
51694// pending HTTP request will be aborted if the provided context is
51695// canceled.
51696func (c *BackendBucketsUpdateCall) Context(ctx context.Context) *BackendBucketsUpdateCall {
51697	c.ctx_ = ctx
51698	return c
51699}
51700
51701// Header returns an http.Header that can be modified by the caller to
51702// add HTTP headers to the request.
51703func (c *BackendBucketsUpdateCall) Header() http.Header {
51704	if c.header_ == nil {
51705		c.header_ = make(http.Header)
51706	}
51707	return c.header_
51708}
51709
51710func (c *BackendBucketsUpdateCall) doRequest(alt string) (*http.Response, error) {
51711	reqHeaders := make(http.Header)
51712	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
51713	for k, v := range c.header_ {
51714		reqHeaders[k] = v
51715	}
51716	reqHeaders.Set("User-Agent", c.s.userAgent())
51717	var body io.Reader = nil
51718	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
51719	if err != nil {
51720		return nil, err
51721	}
51722	reqHeaders.Set("Content-Type", "application/json")
51723	c.urlParams_.Set("alt", alt)
51724	c.urlParams_.Set("prettyPrint", "false")
51725	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendBuckets/{backendBucket}")
51726	urls += "?" + c.urlParams_.Encode()
51727	req, err := http.NewRequest("PUT", urls, body)
51728	if err != nil {
51729		return nil, err
51730	}
51731	req.Header = reqHeaders
51732	googleapi.Expand(req.URL, map[string]string{
51733		"project":       c.project,
51734		"backendBucket": c.backendBucket,
51735	})
51736	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51737}
51738
51739// Do executes the "compute.backendBuckets.update" call.
51740// Exactly one of *Operation or error will be non-nil. Any non-2xx
51741// status code is an error. Response headers are in either
51742// *Operation.ServerResponse.Header or (if a response was returned at
51743// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51744// to check whether the returned error was because
51745// http.StatusNotModified was returned.
51746func (c *BackendBucketsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
51747	gensupport.SetOptions(c.urlParams_, opts...)
51748	res, err := c.doRequest("json")
51749	if res != nil && res.StatusCode == http.StatusNotModified {
51750		if res.Body != nil {
51751			res.Body.Close()
51752		}
51753		return nil, &googleapi.Error{
51754			Code:   res.StatusCode,
51755			Header: res.Header,
51756		}
51757	}
51758	if err != nil {
51759		return nil, err
51760	}
51761	defer googleapi.CloseBody(res)
51762	if err := googleapi.CheckResponse(res); err != nil {
51763		return nil, err
51764	}
51765	ret := &Operation{
51766		ServerResponse: googleapi.ServerResponse{
51767			Header:         res.Header,
51768			HTTPStatusCode: res.StatusCode,
51769		},
51770	}
51771	target := &ret
51772	if err := gensupport.DecodeResponse(target, res); err != nil {
51773		return nil, err
51774	}
51775	return ret, nil
51776	// {
51777	//   "description": "Updates the specified BackendBucket resource with the data included in the request.",
51778	//   "httpMethod": "PUT",
51779	//   "id": "compute.backendBuckets.update",
51780	//   "parameterOrder": [
51781	//     "project",
51782	//     "backendBucket"
51783	//   ],
51784	//   "parameters": {
51785	//     "backendBucket": {
51786	//       "description": "Name of the BackendBucket resource to update.",
51787	//       "location": "path",
51788	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
51789	//       "required": true,
51790	//       "type": "string"
51791	//     },
51792	//     "project": {
51793	//       "description": "Project ID for this request.",
51794	//       "location": "path",
51795	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51796	//       "required": true,
51797	//       "type": "string"
51798	//     },
51799	//     "requestId": {
51800	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
51801	//       "location": "query",
51802	//       "type": "string"
51803	//     }
51804	//   },
51805	//   "path": "projects/{project}/global/backendBuckets/{backendBucket}",
51806	//   "request": {
51807	//     "$ref": "BackendBucket"
51808	//   },
51809	//   "response": {
51810	//     "$ref": "Operation"
51811	//   },
51812	//   "scopes": [
51813	//     "https://www.googleapis.com/auth/cloud-platform",
51814	//     "https://www.googleapis.com/auth/compute"
51815	//   ]
51816	// }
51817
51818}
51819
51820// method id "compute.backendServices.addSignedUrlKey":
51821
51822type BackendServicesAddSignedUrlKeyCall struct {
51823	s              *Service
51824	project        string
51825	backendService string
51826	signedurlkey   *SignedUrlKey
51827	urlParams_     gensupport.URLParams
51828	ctx_           context.Context
51829	header_        http.Header
51830}
51831
51832// AddSignedUrlKey: Adds a key for validating requests with signed URLs
51833// for this backend service.
51834//
51835// - backendService: Name of the BackendService resource to which the
51836//   Signed URL Key should be added. The name should conform to RFC1035.
51837// - project: Project ID for this request.
51838func (r *BackendServicesService) AddSignedUrlKey(project string, backendService string, signedurlkey *SignedUrlKey) *BackendServicesAddSignedUrlKeyCall {
51839	c := &BackendServicesAddSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51840	c.project = project
51841	c.backendService = backendService
51842	c.signedurlkey = signedurlkey
51843	return c
51844}
51845
51846// RequestId sets the optional parameter "requestId": An optional
51847// request ID to identify requests. Specify a unique request ID so that
51848// if you must retry your request, the server will know to ignore the
51849// request if it has already been completed.
51850//
51851// For example, consider a situation where you make an initial request
51852// and the request times out. If you make the request again with the
51853// same request ID, the server can check if original operation with the
51854// same request ID was received, and if so, will ignore the second
51855// request. This prevents clients from accidentally creating duplicate
51856// commitments.
51857//
51858// The request ID must be a valid UUID with the exception that zero UUID
51859// is not supported (00000000-0000-0000-0000-000000000000).
51860func (c *BackendServicesAddSignedUrlKeyCall) RequestId(requestId string) *BackendServicesAddSignedUrlKeyCall {
51861	c.urlParams_.Set("requestId", requestId)
51862	return c
51863}
51864
51865// Fields allows partial responses to be retrieved. See
51866// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51867// for more information.
51868func (c *BackendServicesAddSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendServicesAddSignedUrlKeyCall {
51869	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51870	return c
51871}
51872
51873// Context sets the context to be used in this call's Do method. Any
51874// pending HTTP request will be aborted if the provided context is
51875// canceled.
51876func (c *BackendServicesAddSignedUrlKeyCall) Context(ctx context.Context) *BackendServicesAddSignedUrlKeyCall {
51877	c.ctx_ = ctx
51878	return c
51879}
51880
51881// Header returns an http.Header that can be modified by the caller to
51882// add HTTP headers to the request.
51883func (c *BackendServicesAddSignedUrlKeyCall) Header() http.Header {
51884	if c.header_ == nil {
51885		c.header_ = make(http.Header)
51886	}
51887	return c.header_
51888}
51889
51890func (c *BackendServicesAddSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
51891	reqHeaders := make(http.Header)
51892	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
51893	for k, v := range c.header_ {
51894		reqHeaders[k] = v
51895	}
51896	reqHeaders.Set("User-Agent", c.s.userAgent())
51897	var body io.Reader = nil
51898	body, err := googleapi.WithoutDataWrapper.JSONReader(c.signedurlkey)
51899	if err != nil {
51900		return nil, err
51901	}
51902	reqHeaders.Set("Content-Type", "application/json")
51903	c.urlParams_.Set("alt", alt)
51904	c.urlParams_.Set("prettyPrint", "false")
51905	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}/addSignedUrlKey")
51906	urls += "?" + c.urlParams_.Encode()
51907	req, err := http.NewRequest("POST", urls, body)
51908	if err != nil {
51909		return nil, err
51910	}
51911	req.Header = reqHeaders
51912	googleapi.Expand(req.URL, map[string]string{
51913		"project":        c.project,
51914		"backendService": c.backendService,
51915	})
51916	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51917}
51918
51919// Do executes the "compute.backendServices.addSignedUrlKey" call.
51920// Exactly one of *Operation or error will be non-nil. Any non-2xx
51921// status code is an error. Response headers are in either
51922// *Operation.ServerResponse.Header or (if a response was returned at
51923// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51924// to check whether the returned error was because
51925// http.StatusNotModified was returned.
51926func (c *BackendServicesAddSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
51927	gensupport.SetOptions(c.urlParams_, opts...)
51928	res, err := c.doRequest("json")
51929	if res != nil && res.StatusCode == http.StatusNotModified {
51930		if res.Body != nil {
51931			res.Body.Close()
51932		}
51933		return nil, &googleapi.Error{
51934			Code:   res.StatusCode,
51935			Header: res.Header,
51936		}
51937	}
51938	if err != nil {
51939		return nil, err
51940	}
51941	defer googleapi.CloseBody(res)
51942	if err := googleapi.CheckResponse(res); err != nil {
51943		return nil, err
51944	}
51945	ret := &Operation{
51946		ServerResponse: googleapi.ServerResponse{
51947			Header:         res.Header,
51948			HTTPStatusCode: res.StatusCode,
51949		},
51950	}
51951	target := &ret
51952	if err := gensupport.DecodeResponse(target, res); err != nil {
51953		return nil, err
51954	}
51955	return ret, nil
51956	// {
51957	//   "description": "Adds a key for validating requests with signed URLs for this backend service.",
51958	//   "httpMethod": "POST",
51959	//   "id": "compute.backendServices.addSignedUrlKey",
51960	//   "parameterOrder": [
51961	//     "project",
51962	//     "backendService"
51963	//   ],
51964	//   "parameters": {
51965	//     "backendService": {
51966	//       "description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
51967	//       "location": "path",
51968	//       "required": true,
51969	//       "type": "string"
51970	//     },
51971	//     "project": {
51972	//       "description": "Project ID for this request.",
51973	//       "location": "path",
51974	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51975	//       "required": true,
51976	//       "type": "string"
51977	//     },
51978	//     "requestId": {
51979	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
51980	//       "location": "query",
51981	//       "type": "string"
51982	//     }
51983	//   },
51984	//   "path": "projects/{project}/global/backendServices/{backendService}/addSignedUrlKey",
51985	//   "request": {
51986	//     "$ref": "SignedUrlKey"
51987	//   },
51988	//   "response": {
51989	//     "$ref": "Operation"
51990	//   },
51991	//   "scopes": [
51992	//     "https://www.googleapis.com/auth/cloud-platform",
51993	//     "https://www.googleapis.com/auth/compute"
51994	//   ]
51995	// }
51996
51997}
51998
51999// method id "compute.backendServices.aggregatedList":
52000
52001type BackendServicesAggregatedListCall struct {
52002	s            *Service
52003	project      string
52004	urlParams_   gensupport.URLParams
52005	ifNoneMatch_ string
52006	ctx_         context.Context
52007	header_      http.Header
52008}
52009
52010// AggregatedList: Retrieves the list of all BackendService resources,
52011// regional and global, available to the specified project.
52012//
52013// - project: Name of the project scoping this request.
52014func (r *BackendServicesService) AggregatedList(project string) *BackendServicesAggregatedListCall {
52015	c := &BackendServicesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52016	c.project = project
52017	return c
52018}
52019
52020// Filter sets the optional parameter "filter": A filter expression that
52021// filters resources listed in the response. The expression must specify
52022// the field name, a comparison operator, and the value that you want to
52023// use for filtering. The value must be a string, a number, or a
52024// boolean. The comparison operator must be either `=`, `!=`, `>`, or
52025// `<`.
52026//
52027// For example, if you are filtering Compute Engine instances, you can
52028// exclude instances named `example-instance` by specifying `name !=
52029// example-instance`.
52030//
52031// You can also filter nested fields. For example, you could specify
52032// `scheduling.automaticRestart = false` to include instances only if
52033// they are not scheduled for automatic restarts. You can use filtering
52034// on nested fields to filter based on resource labels.
52035//
52036// To filter on multiple expressions, provide each separate expression
52037// within parentheses. For example: ``` (scheduling.automaticRestart =
52038// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
52039// is an `AND` expression. However, you can include `AND` and `OR`
52040// expressions explicitly. For example: ``` (cpuPlatform = "Intel
52041// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
52042// (scheduling.automaticRestart = true) ```
52043func (c *BackendServicesAggregatedListCall) Filter(filter string) *BackendServicesAggregatedListCall {
52044	c.urlParams_.Set("filter", filter)
52045	return c
52046}
52047
52048// IncludeAllScopes sets the optional parameter "includeAllScopes":
52049// Indicates whether every visible scope for each scope type (zone,
52050// region, global) should be included in the response. For new resource
52051// types added after this field, the flag has no effect as new resource
52052// types will always include every visible scope for each scope type in
52053// response. For resource types which predate this field, if this flag
52054// is omitted or false, only scopes of the scope types where the
52055// resource type is expected to be found will be included.
52056func (c *BackendServicesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *BackendServicesAggregatedListCall {
52057	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
52058	return c
52059}
52060
52061// MaxResults sets the optional parameter "maxResults": The maximum
52062// number of results per page that should be returned. If the number of
52063// available results is larger than `maxResults`, Compute Engine returns
52064// a `nextPageToken` that can be used to get the next page of results in
52065// subsequent list requests. Acceptable values are `0` to `500`,
52066// inclusive. (Default: `500`)
52067func (c *BackendServicesAggregatedListCall) MaxResults(maxResults int64) *BackendServicesAggregatedListCall {
52068	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
52069	return c
52070}
52071
52072// OrderBy sets the optional parameter "orderBy": Sorts list results by
52073// a certain order. By default, results are returned in alphanumerical
52074// order based on the resource name.
52075//
52076// You can also sort results in descending order based on the creation
52077// timestamp using `orderBy="creationTimestamp desc". This sorts
52078// results based on the `creationTimestamp` field in reverse
52079// chronological order (newest result first). Use this to sort resources
52080// like operations so that the newest operation is returned
52081// first.
52082//
52083// Currently, only sorting by `name` or `creationTimestamp desc` is
52084// supported.
52085func (c *BackendServicesAggregatedListCall) OrderBy(orderBy string) *BackendServicesAggregatedListCall {
52086	c.urlParams_.Set("orderBy", orderBy)
52087	return c
52088}
52089
52090// PageToken sets the optional parameter "pageToken": Specifies a page
52091// token to use. Set `pageToken` to the `nextPageToken` returned by a
52092// previous list request to get the next page of results.
52093func (c *BackendServicesAggregatedListCall) PageToken(pageToken string) *BackendServicesAggregatedListCall {
52094	c.urlParams_.Set("pageToken", pageToken)
52095	return c
52096}
52097
52098// ReturnPartialSuccess sets the optional parameter
52099// "returnPartialSuccess": Opt-in for partial success behavior which
52100// provides partial results in case of failure. The default value is
52101// false.
52102func (c *BackendServicesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *BackendServicesAggregatedListCall {
52103	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
52104	return c
52105}
52106
52107// Fields allows partial responses to be retrieved. See
52108// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52109// for more information.
52110func (c *BackendServicesAggregatedListCall) Fields(s ...googleapi.Field) *BackendServicesAggregatedListCall {
52111	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52112	return c
52113}
52114
52115// IfNoneMatch sets the optional parameter which makes the operation
52116// fail if the object's ETag matches the given value. This is useful for
52117// getting updates only after the object has changed since the last
52118// request. Use googleapi.IsNotModified to check whether the response
52119// error from Do is the result of In-None-Match.
52120func (c *BackendServicesAggregatedListCall) IfNoneMatch(entityTag string) *BackendServicesAggregatedListCall {
52121	c.ifNoneMatch_ = entityTag
52122	return c
52123}
52124
52125// Context sets the context to be used in this call's Do method. Any
52126// pending HTTP request will be aborted if the provided context is
52127// canceled.
52128func (c *BackendServicesAggregatedListCall) Context(ctx context.Context) *BackendServicesAggregatedListCall {
52129	c.ctx_ = ctx
52130	return c
52131}
52132
52133// Header returns an http.Header that can be modified by the caller to
52134// add HTTP headers to the request.
52135func (c *BackendServicesAggregatedListCall) Header() http.Header {
52136	if c.header_ == nil {
52137		c.header_ = make(http.Header)
52138	}
52139	return c.header_
52140}
52141
52142func (c *BackendServicesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
52143	reqHeaders := make(http.Header)
52144	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
52145	for k, v := range c.header_ {
52146		reqHeaders[k] = v
52147	}
52148	reqHeaders.Set("User-Agent", c.s.userAgent())
52149	if c.ifNoneMatch_ != "" {
52150		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
52151	}
52152	var body io.Reader = nil
52153	c.urlParams_.Set("alt", alt)
52154	c.urlParams_.Set("prettyPrint", "false")
52155	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/backendServices")
52156	urls += "?" + c.urlParams_.Encode()
52157	req, err := http.NewRequest("GET", urls, body)
52158	if err != nil {
52159		return nil, err
52160	}
52161	req.Header = reqHeaders
52162	googleapi.Expand(req.URL, map[string]string{
52163		"project": c.project,
52164	})
52165	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52166}
52167
52168// Do executes the "compute.backendServices.aggregatedList" call.
52169// Exactly one of *BackendServiceAggregatedList or error will be
52170// non-nil. Any non-2xx status code is an error. Response headers are in
52171// either *BackendServiceAggregatedList.ServerResponse.Header or (if a
52172// response was returned at all) in error.(*googleapi.Error).Header. Use
52173// googleapi.IsNotModified to check whether the returned error was
52174// because http.StatusNotModified was returned.
52175func (c *BackendServicesAggregatedListCall) Do(opts ...googleapi.CallOption) (*BackendServiceAggregatedList, error) {
52176	gensupport.SetOptions(c.urlParams_, opts...)
52177	res, err := c.doRequest("json")
52178	if res != nil && res.StatusCode == http.StatusNotModified {
52179		if res.Body != nil {
52180			res.Body.Close()
52181		}
52182		return nil, &googleapi.Error{
52183			Code:   res.StatusCode,
52184			Header: res.Header,
52185		}
52186	}
52187	if err != nil {
52188		return nil, err
52189	}
52190	defer googleapi.CloseBody(res)
52191	if err := googleapi.CheckResponse(res); err != nil {
52192		return nil, err
52193	}
52194	ret := &BackendServiceAggregatedList{
52195		ServerResponse: googleapi.ServerResponse{
52196			Header:         res.Header,
52197			HTTPStatusCode: res.StatusCode,
52198		},
52199	}
52200	target := &ret
52201	if err := gensupport.DecodeResponse(target, res); err != nil {
52202		return nil, err
52203	}
52204	return ret, nil
52205	// {
52206	//   "description": "Retrieves the list of all BackendService resources, regional and global, available to the specified project.",
52207	//   "httpMethod": "GET",
52208	//   "id": "compute.backendServices.aggregatedList",
52209	//   "parameterOrder": [
52210	//     "project"
52211	//   ],
52212	//   "parameters": {
52213	//     "filter": {
52214	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
52215	//       "location": "query",
52216	//       "type": "string"
52217	//     },
52218	//     "includeAllScopes": {
52219	//       "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.",
52220	//       "location": "query",
52221	//       "type": "boolean"
52222	//     },
52223	//     "maxResults": {
52224	//       "default": "500",
52225	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
52226	//       "format": "uint32",
52227	//       "location": "query",
52228	//       "minimum": "0",
52229	//       "type": "integer"
52230	//     },
52231	//     "orderBy": {
52232	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
52233	//       "location": "query",
52234	//       "type": "string"
52235	//     },
52236	//     "pageToken": {
52237	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
52238	//       "location": "query",
52239	//       "type": "string"
52240	//     },
52241	//     "project": {
52242	//       "description": "Name of the project scoping this request.",
52243	//       "location": "path",
52244	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52245	//       "required": true,
52246	//       "type": "string"
52247	//     },
52248	//     "returnPartialSuccess": {
52249	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
52250	//       "location": "query",
52251	//       "type": "boolean"
52252	//     }
52253	//   },
52254	//   "path": "projects/{project}/aggregated/backendServices",
52255	//   "response": {
52256	//     "$ref": "BackendServiceAggregatedList"
52257	//   },
52258	//   "scopes": [
52259	//     "https://www.googleapis.com/auth/cloud-platform",
52260	//     "https://www.googleapis.com/auth/compute",
52261	//     "https://www.googleapis.com/auth/compute.readonly"
52262	//   ]
52263	// }
52264
52265}
52266
52267// Pages invokes f for each page of results.
52268// A non-nil error returned from f will halt the iteration.
52269// The provided context supersedes any context provided to the Context method.
52270func (c *BackendServicesAggregatedListCall) Pages(ctx context.Context, f func(*BackendServiceAggregatedList) error) error {
52271	c.ctx_ = ctx
52272	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
52273	for {
52274		x, err := c.Do()
52275		if err != nil {
52276			return err
52277		}
52278		if err := f(x); err != nil {
52279			return err
52280		}
52281		if x.NextPageToken == "" {
52282			return nil
52283		}
52284		c.PageToken(x.NextPageToken)
52285	}
52286}
52287
52288// method id "compute.backendServices.delete":
52289
52290type BackendServicesDeleteCall struct {
52291	s              *Service
52292	project        string
52293	backendService string
52294	urlParams_     gensupport.URLParams
52295	ctx_           context.Context
52296	header_        http.Header
52297}
52298
52299// Delete: Deletes the specified BackendService resource.
52300//
52301// - backendService: Name of the BackendService resource to delete.
52302// - project: Project ID for this request.
52303// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/delete
52304func (r *BackendServicesService) Delete(project string, backendService string) *BackendServicesDeleteCall {
52305	c := &BackendServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52306	c.project = project
52307	c.backendService = backendService
52308	return c
52309}
52310
52311// RequestId sets the optional parameter "requestId": An optional
52312// request ID to identify requests. Specify a unique request ID so that
52313// if you must retry your request, the server will know to ignore the
52314// request if it has already been completed.
52315//
52316// For example, consider a situation where you make an initial request
52317// and the request times out. If you make the request again with the
52318// same request ID, the server can check if original operation with the
52319// same request ID was received, and if so, will ignore the second
52320// request. This prevents clients from accidentally creating duplicate
52321// commitments.
52322//
52323// The request ID must be a valid UUID with the exception that zero UUID
52324// is not supported (00000000-0000-0000-0000-000000000000).
52325func (c *BackendServicesDeleteCall) RequestId(requestId string) *BackendServicesDeleteCall {
52326	c.urlParams_.Set("requestId", requestId)
52327	return c
52328}
52329
52330// Fields allows partial responses to be retrieved. See
52331// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52332// for more information.
52333func (c *BackendServicesDeleteCall) Fields(s ...googleapi.Field) *BackendServicesDeleteCall {
52334	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52335	return c
52336}
52337
52338// Context sets the context to be used in this call's Do method. Any
52339// pending HTTP request will be aborted if the provided context is
52340// canceled.
52341func (c *BackendServicesDeleteCall) Context(ctx context.Context) *BackendServicesDeleteCall {
52342	c.ctx_ = ctx
52343	return c
52344}
52345
52346// Header returns an http.Header that can be modified by the caller to
52347// add HTTP headers to the request.
52348func (c *BackendServicesDeleteCall) Header() http.Header {
52349	if c.header_ == nil {
52350		c.header_ = make(http.Header)
52351	}
52352	return c.header_
52353}
52354
52355func (c *BackendServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
52356	reqHeaders := make(http.Header)
52357	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
52358	for k, v := range c.header_ {
52359		reqHeaders[k] = v
52360	}
52361	reqHeaders.Set("User-Agent", c.s.userAgent())
52362	var body io.Reader = nil
52363	c.urlParams_.Set("alt", alt)
52364	c.urlParams_.Set("prettyPrint", "false")
52365	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}")
52366	urls += "?" + c.urlParams_.Encode()
52367	req, err := http.NewRequest("DELETE", urls, body)
52368	if err != nil {
52369		return nil, err
52370	}
52371	req.Header = reqHeaders
52372	googleapi.Expand(req.URL, map[string]string{
52373		"project":        c.project,
52374		"backendService": c.backendService,
52375	})
52376	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52377}
52378
52379// Do executes the "compute.backendServices.delete" call.
52380// Exactly one of *Operation or error will be non-nil. Any non-2xx
52381// status code is an error. Response headers are in either
52382// *Operation.ServerResponse.Header or (if a response was returned at
52383// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
52384// to check whether the returned error was because
52385// http.StatusNotModified was returned.
52386func (c *BackendServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
52387	gensupport.SetOptions(c.urlParams_, opts...)
52388	res, err := c.doRequest("json")
52389	if res != nil && res.StatusCode == http.StatusNotModified {
52390		if res.Body != nil {
52391			res.Body.Close()
52392		}
52393		return nil, &googleapi.Error{
52394			Code:   res.StatusCode,
52395			Header: res.Header,
52396		}
52397	}
52398	if err != nil {
52399		return nil, err
52400	}
52401	defer googleapi.CloseBody(res)
52402	if err := googleapi.CheckResponse(res); err != nil {
52403		return nil, err
52404	}
52405	ret := &Operation{
52406		ServerResponse: googleapi.ServerResponse{
52407			Header:         res.Header,
52408			HTTPStatusCode: res.StatusCode,
52409		},
52410	}
52411	target := &ret
52412	if err := gensupport.DecodeResponse(target, res); err != nil {
52413		return nil, err
52414	}
52415	return ret, nil
52416	// {
52417	//   "description": "Deletes the specified BackendService resource.",
52418	//   "httpMethod": "DELETE",
52419	//   "id": "compute.backendServices.delete",
52420	//   "parameterOrder": [
52421	//     "project",
52422	//     "backendService"
52423	//   ],
52424	//   "parameters": {
52425	//     "backendService": {
52426	//       "description": "Name of the BackendService resource to delete.",
52427	//       "location": "path",
52428	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
52429	//       "required": true,
52430	//       "type": "string"
52431	//     },
52432	//     "project": {
52433	//       "description": "Project ID for this request.",
52434	//       "location": "path",
52435	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52436	//       "required": true,
52437	//       "type": "string"
52438	//     },
52439	//     "requestId": {
52440	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
52441	//       "location": "query",
52442	//       "type": "string"
52443	//     }
52444	//   },
52445	//   "path": "projects/{project}/global/backendServices/{backendService}",
52446	//   "response": {
52447	//     "$ref": "Operation"
52448	//   },
52449	//   "scopes": [
52450	//     "https://www.googleapis.com/auth/cloud-platform",
52451	//     "https://www.googleapis.com/auth/compute"
52452	//   ]
52453	// }
52454
52455}
52456
52457// method id "compute.backendServices.deleteSignedUrlKey":
52458
52459type BackendServicesDeleteSignedUrlKeyCall struct {
52460	s              *Service
52461	project        string
52462	backendService string
52463	urlParams_     gensupport.URLParams
52464	ctx_           context.Context
52465	header_        http.Header
52466}
52467
52468// DeleteSignedUrlKey: Deletes a key for validating requests with signed
52469// URLs for this backend service.
52470//
52471// - backendService: Name of the BackendService resource to which the
52472//   Signed URL Key should be added. The name should conform to RFC1035.
52473// - keyName: The name of the Signed URL Key to delete.
52474// - project: Project ID for this request.
52475func (r *BackendServicesService) DeleteSignedUrlKey(project string, backendService string, keyName string) *BackendServicesDeleteSignedUrlKeyCall {
52476	c := &BackendServicesDeleteSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52477	c.project = project
52478	c.backendService = backendService
52479	c.urlParams_.Set("keyName", keyName)
52480	return c
52481}
52482
52483// RequestId sets the optional parameter "requestId": An optional
52484// request ID to identify requests. Specify a unique request ID so that
52485// if you must retry your request, the server will know to ignore the
52486// request if it has already been completed.
52487//
52488// For example, consider a situation where you make an initial request
52489// and the request times out. If you make the request again with the
52490// same request ID, the server can check if original operation with the
52491// same request ID was received, and if so, will ignore the second
52492// request. This prevents clients from accidentally creating duplicate
52493// commitments.
52494//
52495// The request ID must be a valid UUID with the exception that zero UUID
52496// is not supported (00000000-0000-0000-0000-000000000000).
52497func (c *BackendServicesDeleteSignedUrlKeyCall) RequestId(requestId string) *BackendServicesDeleteSignedUrlKeyCall {
52498	c.urlParams_.Set("requestId", requestId)
52499	return c
52500}
52501
52502// Fields allows partial responses to be retrieved. See
52503// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52504// for more information.
52505func (c *BackendServicesDeleteSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendServicesDeleteSignedUrlKeyCall {
52506	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52507	return c
52508}
52509
52510// Context sets the context to be used in this call's Do method. Any
52511// pending HTTP request will be aborted if the provided context is
52512// canceled.
52513func (c *BackendServicesDeleteSignedUrlKeyCall) Context(ctx context.Context) *BackendServicesDeleteSignedUrlKeyCall {
52514	c.ctx_ = ctx
52515	return c
52516}
52517
52518// Header returns an http.Header that can be modified by the caller to
52519// add HTTP headers to the request.
52520func (c *BackendServicesDeleteSignedUrlKeyCall) Header() http.Header {
52521	if c.header_ == nil {
52522		c.header_ = make(http.Header)
52523	}
52524	return c.header_
52525}
52526
52527func (c *BackendServicesDeleteSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
52528	reqHeaders := make(http.Header)
52529	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
52530	for k, v := range c.header_ {
52531		reqHeaders[k] = v
52532	}
52533	reqHeaders.Set("User-Agent", c.s.userAgent())
52534	var body io.Reader = nil
52535	c.urlParams_.Set("alt", alt)
52536	c.urlParams_.Set("prettyPrint", "false")
52537	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}/deleteSignedUrlKey")
52538	urls += "?" + c.urlParams_.Encode()
52539	req, err := http.NewRequest("POST", urls, body)
52540	if err != nil {
52541		return nil, err
52542	}
52543	req.Header = reqHeaders
52544	googleapi.Expand(req.URL, map[string]string{
52545		"project":        c.project,
52546		"backendService": c.backendService,
52547	})
52548	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52549}
52550
52551// Do executes the "compute.backendServices.deleteSignedUrlKey" call.
52552// Exactly one of *Operation or error will be non-nil. Any non-2xx
52553// status code is an error. Response headers are in either
52554// *Operation.ServerResponse.Header or (if a response was returned at
52555// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
52556// to check whether the returned error was because
52557// http.StatusNotModified was returned.
52558func (c *BackendServicesDeleteSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
52559	gensupport.SetOptions(c.urlParams_, opts...)
52560	res, err := c.doRequest("json")
52561	if res != nil && res.StatusCode == http.StatusNotModified {
52562		if res.Body != nil {
52563			res.Body.Close()
52564		}
52565		return nil, &googleapi.Error{
52566			Code:   res.StatusCode,
52567			Header: res.Header,
52568		}
52569	}
52570	if err != nil {
52571		return nil, err
52572	}
52573	defer googleapi.CloseBody(res)
52574	if err := googleapi.CheckResponse(res); err != nil {
52575		return nil, err
52576	}
52577	ret := &Operation{
52578		ServerResponse: googleapi.ServerResponse{
52579			Header:         res.Header,
52580			HTTPStatusCode: res.StatusCode,
52581		},
52582	}
52583	target := &ret
52584	if err := gensupport.DecodeResponse(target, res); err != nil {
52585		return nil, err
52586	}
52587	return ret, nil
52588	// {
52589	//   "description": "Deletes a key for validating requests with signed URLs for this backend service.",
52590	//   "httpMethod": "POST",
52591	//   "id": "compute.backendServices.deleteSignedUrlKey",
52592	//   "parameterOrder": [
52593	//     "project",
52594	//     "backendService",
52595	//     "keyName"
52596	//   ],
52597	//   "parameters": {
52598	//     "backendService": {
52599	//       "description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
52600	//       "location": "path",
52601	//       "required": true,
52602	//       "type": "string"
52603	//     },
52604	//     "keyName": {
52605	//       "description": "The name of the Signed URL Key to delete.",
52606	//       "location": "query",
52607	//       "required": true,
52608	//       "type": "string"
52609	//     },
52610	//     "project": {
52611	//       "description": "Project ID for this request.",
52612	//       "location": "path",
52613	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52614	//       "required": true,
52615	//       "type": "string"
52616	//     },
52617	//     "requestId": {
52618	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
52619	//       "location": "query",
52620	//       "type": "string"
52621	//     }
52622	//   },
52623	//   "path": "projects/{project}/global/backendServices/{backendService}/deleteSignedUrlKey",
52624	//   "response": {
52625	//     "$ref": "Operation"
52626	//   },
52627	//   "scopes": [
52628	//     "https://www.googleapis.com/auth/cloud-platform",
52629	//     "https://www.googleapis.com/auth/compute"
52630	//   ]
52631	// }
52632
52633}
52634
52635// method id "compute.backendServices.get":
52636
52637type BackendServicesGetCall struct {
52638	s              *Service
52639	project        string
52640	backendService string
52641	urlParams_     gensupport.URLParams
52642	ifNoneMatch_   string
52643	ctx_           context.Context
52644	header_        http.Header
52645}
52646
52647// Get: Returns the specified BackendService resource. Gets a list of
52648// available backend services.
52649//
52650// - backendService: Name of the BackendService resource to return.
52651// - project: Project ID for this request.
52652// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/get
52653func (r *BackendServicesService) Get(project string, backendService string) *BackendServicesGetCall {
52654	c := &BackendServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52655	c.project = project
52656	c.backendService = backendService
52657	return c
52658}
52659
52660// Fields allows partial responses to be retrieved. See
52661// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52662// for more information.
52663func (c *BackendServicesGetCall) Fields(s ...googleapi.Field) *BackendServicesGetCall {
52664	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52665	return c
52666}
52667
52668// IfNoneMatch sets the optional parameter which makes the operation
52669// fail if the object's ETag matches the given value. This is useful for
52670// getting updates only after the object has changed since the last
52671// request. Use googleapi.IsNotModified to check whether the response
52672// error from Do is the result of In-None-Match.
52673func (c *BackendServicesGetCall) IfNoneMatch(entityTag string) *BackendServicesGetCall {
52674	c.ifNoneMatch_ = entityTag
52675	return c
52676}
52677
52678// Context sets the context to be used in this call's Do method. Any
52679// pending HTTP request will be aborted if the provided context is
52680// canceled.
52681func (c *BackendServicesGetCall) Context(ctx context.Context) *BackendServicesGetCall {
52682	c.ctx_ = ctx
52683	return c
52684}
52685
52686// Header returns an http.Header that can be modified by the caller to
52687// add HTTP headers to the request.
52688func (c *BackendServicesGetCall) Header() http.Header {
52689	if c.header_ == nil {
52690		c.header_ = make(http.Header)
52691	}
52692	return c.header_
52693}
52694
52695func (c *BackendServicesGetCall) doRequest(alt string) (*http.Response, error) {
52696	reqHeaders := make(http.Header)
52697	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
52698	for k, v := range c.header_ {
52699		reqHeaders[k] = v
52700	}
52701	reqHeaders.Set("User-Agent", c.s.userAgent())
52702	if c.ifNoneMatch_ != "" {
52703		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
52704	}
52705	var body io.Reader = nil
52706	c.urlParams_.Set("alt", alt)
52707	c.urlParams_.Set("prettyPrint", "false")
52708	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}")
52709	urls += "?" + c.urlParams_.Encode()
52710	req, err := http.NewRequest("GET", urls, body)
52711	if err != nil {
52712		return nil, err
52713	}
52714	req.Header = reqHeaders
52715	googleapi.Expand(req.URL, map[string]string{
52716		"project":        c.project,
52717		"backendService": c.backendService,
52718	})
52719	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52720}
52721
52722// Do executes the "compute.backendServices.get" call.
52723// Exactly one of *BackendService or error will be non-nil. Any non-2xx
52724// status code is an error. Response headers are in either
52725// *BackendService.ServerResponse.Header or (if a response was returned
52726// at all) in error.(*googleapi.Error).Header. Use
52727// googleapi.IsNotModified to check whether the returned error was
52728// because http.StatusNotModified was returned.
52729func (c *BackendServicesGetCall) Do(opts ...googleapi.CallOption) (*BackendService, error) {
52730	gensupport.SetOptions(c.urlParams_, opts...)
52731	res, err := c.doRequest("json")
52732	if res != nil && res.StatusCode == http.StatusNotModified {
52733		if res.Body != nil {
52734			res.Body.Close()
52735		}
52736		return nil, &googleapi.Error{
52737			Code:   res.StatusCode,
52738			Header: res.Header,
52739		}
52740	}
52741	if err != nil {
52742		return nil, err
52743	}
52744	defer googleapi.CloseBody(res)
52745	if err := googleapi.CheckResponse(res); err != nil {
52746		return nil, err
52747	}
52748	ret := &BackendService{
52749		ServerResponse: googleapi.ServerResponse{
52750			Header:         res.Header,
52751			HTTPStatusCode: res.StatusCode,
52752		},
52753	}
52754	target := &ret
52755	if err := gensupport.DecodeResponse(target, res); err != nil {
52756		return nil, err
52757	}
52758	return ret, nil
52759	// {
52760	//   "description": "Returns the specified BackendService resource. Gets a list of available backend services.",
52761	//   "httpMethod": "GET",
52762	//   "id": "compute.backendServices.get",
52763	//   "parameterOrder": [
52764	//     "project",
52765	//     "backendService"
52766	//   ],
52767	//   "parameters": {
52768	//     "backendService": {
52769	//       "description": "Name of the BackendService resource to return.",
52770	//       "location": "path",
52771	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
52772	//       "required": true,
52773	//       "type": "string"
52774	//     },
52775	//     "project": {
52776	//       "description": "Project ID for this request.",
52777	//       "location": "path",
52778	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52779	//       "required": true,
52780	//       "type": "string"
52781	//     }
52782	//   },
52783	//   "path": "projects/{project}/global/backendServices/{backendService}",
52784	//   "response": {
52785	//     "$ref": "BackendService"
52786	//   },
52787	//   "scopes": [
52788	//     "https://www.googleapis.com/auth/cloud-platform",
52789	//     "https://www.googleapis.com/auth/compute",
52790	//     "https://www.googleapis.com/auth/compute.readonly"
52791	//   ]
52792	// }
52793
52794}
52795
52796// method id "compute.backendServices.getHealth":
52797
52798type BackendServicesGetHealthCall struct {
52799	s                      *Service
52800	project                string
52801	backendService         string
52802	resourcegroupreference *ResourceGroupReference
52803	urlParams_             gensupport.URLParams
52804	ctx_                   context.Context
52805	header_                http.Header
52806}
52807
52808// GetHealth: Gets the most recent health check results for this
52809// BackendService.
52810//
52811// Example request body:
52812//
52813// { "group": "/zones/us-east1-b/instanceGroups/lb-backend-example" }
52814//
52815// - backendService: Name of the BackendService resource to which the
52816//   queried instance belongs.
52817// - project: .
52818// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/getHealth
52819func (r *BackendServicesService) GetHealth(project string, backendService string, resourcegroupreference *ResourceGroupReference) *BackendServicesGetHealthCall {
52820	c := &BackendServicesGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52821	c.project = project
52822	c.backendService = backendService
52823	c.resourcegroupreference = resourcegroupreference
52824	return c
52825}
52826
52827// Fields allows partial responses to be retrieved. See
52828// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52829// for more information.
52830func (c *BackendServicesGetHealthCall) Fields(s ...googleapi.Field) *BackendServicesGetHealthCall {
52831	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52832	return c
52833}
52834
52835// Context sets the context to be used in this call's Do method. Any
52836// pending HTTP request will be aborted if the provided context is
52837// canceled.
52838func (c *BackendServicesGetHealthCall) Context(ctx context.Context) *BackendServicesGetHealthCall {
52839	c.ctx_ = ctx
52840	return c
52841}
52842
52843// Header returns an http.Header that can be modified by the caller to
52844// add HTTP headers to the request.
52845func (c *BackendServicesGetHealthCall) Header() http.Header {
52846	if c.header_ == nil {
52847		c.header_ = make(http.Header)
52848	}
52849	return c.header_
52850}
52851
52852func (c *BackendServicesGetHealthCall) doRequest(alt string) (*http.Response, error) {
52853	reqHeaders := make(http.Header)
52854	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
52855	for k, v := range c.header_ {
52856		reqHeaders[k] = v
52857	}
52858	reqHeaders.Set("User-Agent", c.s.userAgent())
52859	var body io.Reader = nil
52860	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcegroupreference)
52861	if err != nil {
52862		return nil, err
52863	}
52864	reqHeaders.Set("Content-Type", "application/json")
52865	c.urlParams_.Set("alt", alt)
52866	c.urlParams_.Set("prettyPrint", "false")
52867	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}/getHealth")
52868	urls += "?" + c.urlParams_.Encode()
52869	req, err := http.NewRequest("POST", urls, body)
52870	if err != nil {
52871		return nil, err
52872	}
52873	req.Header = reqHeaders
52874	googleapi.Expand(req.URL, map[string]string{
52875		"project":        c.project,
52876		"backendService": c.backendService,
52877	})
52878	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52879}
52880
52881// Do executes the "compute.backendServices.getHealth" call.
52882// Exactly one of *BackendServiceGroupHealth or error will be non-nil.
52883// Any non-2xx status code is an error. Response headers are in either
52884// *BackendServiceGroupHealth.ServerResponse.Header or (if a response
52885// was returned at all) in error.(*googleapi.Error).Header. Use
52886// googleapi.IsNotModified to check whether the returned error was
52887// because http.StatusNotModified was returned.
52888func (c *BackendServicesGetHealthCall) Do(opts ...googleapi.CallOption) (*BackendServiceGroupHealth, error) {
52889	gensupport.SetOptions(c.urlParams_, opts...)
52890	res, err := c.doRequest("json")
52891	if res != nil && res.StatusCode == http.StatusNotModified {
52892		if res.Body != nil {
52893			res.Body.Close()
52894		}
52895		return nil, &googleapi.Error{
52896			Code:   res.StatusCode,
52897			Header: res.Header,
52898		}
52899	}
52900	if err != nil {
52901		return nil, err
52902	}
52903	defer googleapi.CloseBody(res)
52904	if err := googleapi.CheckResponse(res); err != nil {
52905		return nil, err
52906	}
52907	ret := &BackendServiceGroupHealth{
52908		ServerResponse: googleapi.ServerResponse{
52909			Header:         res.Header,
52910			HTTPStatusCode: res.StatusCode,
52911		},
52912	}
52913	target := &ret
52914	if err := gensupport.DecodeResponse(target, res); err != nil {
52915		return nil, err
52916	}
52917	return ret, nil
52918	// {
52919	//   "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\" }",
52920	//   "httpMethod": "POST",
52921	//   "id": "compute.backendServices.getHealth",
52922	//   "parameterOrder": [
52923	//     "project",
52924	//     "backendService"
52925	//   ],
52926	//   "parameters": {
52927	//     "backendService": {
52928	//       "description": "Name of the BackendService resource to which the queried instance belongs.",
52929	//       "location": "path",
52930	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
52931	//       "required": true,
52932	//       "type": "string"
52933	//     },
52934	//     "project": {
52935	//       "location": "path",
52936	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52937	//       "required": true,
52938	//       "type": "string"
52939	//     }
52940	//   },
52941	//   "path": "projects/{project}/global/backendServices/{backendService}/getHealth",
52942	//   "request": {
52943	//     "$ref": "ResourceGroupReference"
52944	//   },
52945	//   "response": {
52946	//     "$ref": "BackendServiceGroupHealth"
52947	//   },
52948	//   "scopes": [
52949	//     "https://www.googleapis.com/auth/cloud-platform",
52950	//     "https://www.googleapis.com/auth/compute",
52951	//     "https://www.googleapis.com/auth/compute.readonly"
52952	//   ]
52953	// }
52954
52955}
52956
52957// method id "compute.backendServices.insert":
52958
52959type BackendServicesInsertCall struct {
52960	s              *Service
52961	project        string
52962	backendservice *BackendService
52963	urlParams_     gensupport.URLParams
52964	ctx_           context.Context
52965	header_        http.Header
52966}
52967
52968// Insert: Creates a BackendService resource in the specified project
52969// using the data included in the request. For more information, see
52970// Backend services overview.
52971//
52972// - project: Project ID for this request.
52973// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/insert
52974func (r *BackendServicesService) Insert(project string, backendservice *BackendService) *BackendServicesInsertCall {
52975	c := &BackendServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52976	c.project = project
52977	c.backendservice = backendservice
52978	return c
52979}
52980
52981// RequestId sets the optional parameter "requestId": An optional
52982// request ID to identify requests. Specify a unique request ID so that
52983// if you must retry your request, the server will know to ignore the
52984// request if it has already been completed.
52985//
52986// For example, consider a situation where you make an initial request
52987// and the request times out. If you make the request again with the
52988// same request ID, the server can check if original operation with the
52989// same request ID was received, and if so, will ignore the second
52990// request. This prevents clients from accidentally creating duplicate
52991// commitments.
52992//
52993// The request ID must be a valid UUID with the exception that zero UUID
52994// is not supported (00000000-0000-0000-0000-000000000000).
52995func (c *BackendServicesInsertCall) RequestId(requestId string) *BackendServicesInsertCall {
52996	c.urlParams_.Set("requestId", requestId)
52997	return c
52998}
52999
53000// Fields allows partial responses to be retrieved. See
53001// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53002// for more information.
53003func (c *BackendServicesInsertCall) Fields(s ...googleapi.Field) *BackendServicesInsertCall {
53004	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53005	return c
53006}
53007
53008// Context sets the context to be used in this call's Do method. Any
53009// pending HTTP request will be aborted if the provided context is
53010// canceled.
53011func (c *BackendServicesInsertCall) Context(ctx context.Context) *BackendServicesInsertCall {
53012	c.ctx_ = ctx
53013	return c
53014}
53015
53016// Header returns an http.Header that can be modified by the caller to
53017// add HTTP headers to the request.
53018func (c *BackendServicesInsertCall) Header() http.Header {
53019	if c.header_ == nil {
53020		c.header_ = make(http.Header)
53021	}
53022	return c.header_
53023}
53024
53025func (c *BackendServicesInsertCall) doRequest(alt string) (*http.Response, error) {
53026	reqHeaders := make(http.Header)
53027	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
53028	for k, v := range c.header_ {
53029		reqHeaders[k] = v
53030	}
53031	reqHeaders.Set("User-Agent", c.s.userAgent())
53032	var body io.Reader = nil
53033	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
53034	if err != nil {
53035		return nil, err
53036	}
53037	reqHeaders.Set("Content-Type", "application/json")
53038	c.urlParams_.Set("alt", alt)
53039	c.urlParams_.Set("prettyPrint", "false")
53040	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices")
53041	urls += "?" + c.urlParams_.Encode()
53042	req, err := http.NewRequest("POST", urls, body)
53043	if err != nil {
53044		return nil, err
53045	}
53046	req.Header = reqHeaders
53047	googleapi.Expand(req.URL, map[string]string{
53048		"project": c.project,
53049	})
53050	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53051}
53052
53053// Do executes the "compute.backendServices.insert" call.
53054// Exactly one of *Operation or error will be non-nil. Any non-2xx
53055// status code is an error. Response headers are in either
53056// *Operation.ServerResponse.Header or (if a response was returned at
53057// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53058// to check whether the returned error was because
53059// http.StatusNotModified was returned.
53060func (c *BackendServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53061	gensupport.SetOptions(c.urlParams_, opts...)
53062	res, err := c.doRequest("json")
53063	if res != nil && res.StatusCode == http.StatusNotModified {
53064		if res.Body != nil {
53065			res.Body.Close()
53066		}
53067		return nil, &googleapi.Error{
53068			Code:   res.StatusCode,
53069			Header: res.Header,
53070		}
53071	}
53072	if err != nil {
53073		return nil, err
53074	}
53075	defer googleapi.CloseBody(res)
53076	if err := googleapi.CheckResponse(res); err != nil {
53077		return nil, err
53078	}
53079	ret := &Operation{
53080		ServerResponse: googleapi.ServerResponse{
53081			Header:         res.Header,
53082			HTTPStatusCode: res.StatusCode,
53083		},
53084	}
53085	target := &ret
53086	if err := gensupport.DecodeResponse(target, res); err != nil {
53087		return nil, err
53088	}
53089	return ret, nil
53090	// {
53091	//   "description": "Creates a BackendService resource in the specified project using the data included in the request. For more information, see  Backend services overview.",
53092	//   "httpMethod": "POST",
53093	//   "id": "compute.backendServices.insert",
53094	//   "parameterOrder": [
53095	//     "project"
53096	//   ],
53097	//   "parameters": {
53098	//     "project": {
53099	//       "description": "Project ID for this request.",
53100	//       "location": "path",
53101	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53102	//       "required": true,
53103	//       "type": "string"
53104	//     },
53105	//     "requestId": {
53106	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
53107	//       "location": "query",
53108	//       "type": "string"
53109	//     }
53110	//   },
53111	//   "path": "projects/{project}/global/backendServices",
53112	//   "request": {
53113	//     "$ref": "BackendService"
53114	//   },
53115	//   "response": {
53116	//     "$ref": "Operation"
53117	//   },
53118	//   "scopes": [
53119	//     "https://www.googleapis.com/auth/cloud-platform",
53120	//     "https://www.googleapis.com/auth/compute"
53121	//   ]
53122	// }
53123
53124}
53125
53126// method id "compute.backendServices.list":
53127
53128type BackendServicesListCall struct {
53129	s            *Service
53130	project      string
53131	urlParams_   gensupport.URLParams
53132	ifNoneMatch_ string
53133	ctx_         context.Context
53134	header_      http.Header
53135}
53136
53137// List: Retrieves the list of BackendService resources available to the
53138// specified project.
53139//
53140// - project: Project ID for this request.
53141// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/list
53142func (r *BackendServicesService) List(project string) *BackendServicesListCall {
53143	c := &BackendServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53144	c.project = project
53145	return c
53146}
53147
53148// Filter sets the optional parameter "filter": A filter expression that
53149// filters resources listed in the response. The expression must specify
53150// the field name, a comparison operator, and the value that you want to
53151// use for filtering. The value must be a string, a number, or a
53152// boolean. The comparison operator must be either `=`, `!=`, `>`, or
53153// `<`.
53154//
53155// For example, if you are filtering Compute Engine instances, you can
53156// exclude instances named `example-instance` by specifying `name !=
53157// example-instance`.
53158//
53159// You can also filter nested fields. For example, you could specify
53160// `scheduling.automaticRestart = false` to include instances only if
53161// they are not scheduled for automatic restarts. You can use filtering
53162// on nested fields to filter based on resource labels.
53163//
53164// To filter on multiple expressions, provide each separate expression
53165// within parentheses. For example: ``` (scheduling.automaticRestart =
53166// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
53167// is an `AND` expression. However, you can include `AND` and `OR`
53168// expressions explicitly. For example: ``` (cpuPlatform = "Intel
53169// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
53170// (scheduling.automaticRestart = true) ```
53171func (c *BackendServicesListCall) Filter(filter string) *BackendServicesListCall {
53172	c.urlParams_.Set("filter", filter)
53173	return c
53174}
53175
53176// MaxResults sets the optional parameter "maxResults": The maximum
53177// number of results per page that should be returned. If the number of
53178// available results is larger than `maxResults`, Compute Engine returns
53179// a `nextPageToken` that can be used to get the next page of results in
53180// subsequent list requests. Acceptable values are `0` to `500`,
53181// inclusive. (Default: `500`)
53182func (c *BackendServicesListCall) MaxResults(maxResults int64) *BackendServicesListCall {
53183	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
53184	return c
53185}
53186
53187// OrderBy sets the optional parameter "orderBy": Sorts list results by
53188// a certain order. By default, results are returned in alphanumerical
53189// order based on the resource name.
53190//
53191// You can also sort results in descending order based on the creation
53192// timestamp using `orderBy="creationTimestamp desc". This sorts
53193// results based on the `creationTimestamp` field in reverse
53194// chronological order (newest result first). Use this to sort resources
53195// like operations so that the newest operation is returned
53196// first.
53197//
53198// Currently, only sorting by `name` or `creationTimestamp desc` is
53199// supported.
53200func (c *BackendServicesListCall) OrderBy(orderBy string) *BackendServicesListCall {
53201	c.urlParams_.Set("orderBy", orderBy)
53202	return c
53203}
53204
53205// PageToken sets the optional parameter "pageToken": Specifies a page
53206// token to use. Set `pageToken` to the `nextPageToken` returned by a
53207// previous list request to get the next page of results.
53208func (c *BackendServicesListCall) PageToken(pageToken string) *BackendServicesListCall {
53209	c.urlParams_.Set("pageToken", pageToken)
53210	return c
53211}
53212
53213// ReturnPartialSuccess sets the optional parameter
53214// "returnPartialSuccess": Opt-in for partial success behavior which
53215// provides partial results in case of failure. The default value is
53216// false.
53217func (c *BackendServicesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *BackendServicesListCall {
53218	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
53219	return c
53220}
53221
53222// Fields allows partial responses to be retrieved. See
53223// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53224// for more information.
53225func (c *BackendServicesListCall) Fields(s ...googleapi.Field) *BackendServicesListCall {
53226	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53227	return c
53228}
53229
53230// IfNoneMatch sets the optional parameter which makes the operation
53231// fail if the object's ETag matches the given value. This is useful for
53232// getting updates only after the object has changed since the last
53233// request. Use googleapi.IsNotModified to check whether the response
53234// error from Do is the result of In-None-Match.
53235func (c *BackendServicesListCall) IfNoneMatch(entityTag string) *BackendServicesListCall {
53236	c.ifNoneMatch_ = entityTag
53237	return c
53238}
53239
53240// Context sets the context to be used in this call's Do method. Any
53241// pending HTTP request will be aborted if the provided context is
53242// canceled.
53243func (c *BackendServicesListCall) Context(ctx context.Context) *BackendServicesListCall {
53244	c.ctx_ = ctx
53245	return c
53246}
53247
53248// Header returns an http.Header that can be modified by the caller to
53249// add HTTP headers to the request.
53250func (c *BackendServicesListCall) Header() http.Header {
53251	if c.header_ == nil {
53252		c.header_ = make(http.Header)
53253	}
53254	return c.header_
53255}
53256
53257func (c *BackendServicesListCall) doRequest(alt string) (*http.Response, error) {
53258	reqHeaders := make(http.Header)
53259	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
53260	for k, v := range c.header_ {
53261		reqHeaders[k] = v
53262	}
53263	reqHeaders.Set("User-Agent", c.s.userAgent())
53264	if c.ifNoneMatch_ != "" {
53265		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
53266	}
53267	var body io.Reader = nil
53268	c.urlParams_.Set("alt", alt)
53269	c.urlParams_.Set("prettyPrint", "false")
53270	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices")
53271	urls += "?" + c.urlParams_.Encode()
53272	req, err := http.NewRequest("GET", urls, body)
53273	if err != nil {
53274		return nil, err
53275	}
53276	req.Header = reqHeaders
53277	googleapi.Expand(req.URL, map[string]string{
53278		"project": c.project,
53279	})
53280	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53281}
53282
53283// Do executes the "compute.backendServices.list" call.
53284// Exactly one of *BackendServiceList or error will be non-nil. Any
53285// non-2xx status code is an error. Response headers are in either
53286// *BackendServiceList.ServerResponse.Header or (if a response was
53287// returned at all) in error.(*googleapi.Error).Header. Use
53288// googleapi.IsNotModified to check whether the returned error was
53289// because http.StatusNotModified was returned.
53290func (c *BackendServicesListCall) Do(opts ...googleapi.CallOption) (*BackendServiceList, error) {
53291	gensupport.SetOptions(c.urlParams_, opts...)
53292	res, err := c.doRequest("json")
53293	if res != nil && res.StatusCode == http.StatusNotModified {
53294		if res.Body != nil {
53295			res.Body.Close()
53296		}
53297		return nil, &googleapi.Error{
53298			Code:   res.StatusCode,
53299			Header: res.Header,
53300		}
53301	}
53302	if err != nil {
53303		return nil, err
53304	}
53305	defer googleapi.CloseBody(res)
53306	if err := googleapi.CheckResponse(res); err != nil {
53307		return nil, err
53308	}
53309	ret := &BackendServiceList{
53310		ServerResponse: googleapi.ServerResponse{
53311			Header:         res.Header,
53312			HTTPStatusCode: res.StatusCode,
53313		},
53314	}
53315	target := &ret
53316	if err := gensupport.DecodeResponse(target, res); err != nil {
53317		return nil, err
53318	}
53319	return ret, nil
53320	// {
53321	//   "description": "Retrieves the list of BackendService resources available to the specified project.",
53322	//   "httpMethod": "GET",
53323	//   "id": "compute.backendServices.list",
53324	//   "parameterOrder": [
53325	//     "project"
53326	//   ],
53327	//   "parameters": {
53328	//     "filter": {
53329	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
53330	//       "location": "query",
53331	//       "type": "string"
53332	//     },
53333	//     "maxResults": {
53334	//       "default": "500",
53335	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
53336	//       "format": "uint32",
53337	//       "location": "query",
53338	//       "minimum": "0",
53339	//       "type": "integer"
53340	//     },
53341	//     "orderBy": {
53342	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
53343	//       "location": "query",
53344	//       "type": "string"
53345	//     },
53346	//     "pageToken": {
53347	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
53348	//       "location": "query",
53349	//       "type": "string"
53350	//     },
53351	//     "project": {
53352	//       "description": "Project ID for this request.",
53353	//       "location": "path",
53354	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53355	//       "required": true,
53356	//       "type": "string"
53357	//     },
53358	//     "returnPartialSuccess": {
53359	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
53360	//       "location": "query",
53361	//       "type": "boolean"
53362	//     }
53363	//   },
53364	//   "path": "projects/{project}/global/backendServices",
53365	//   "response": {
53366	//     "$ref": "BackendServiceList"
53367	//   },
53368	//   "scopes": [
53369	//     "https://www.googleapis.com/auth/cloud-platform",
53370	//     "https://www.googleapis.com/auth/compute",
53371	//     "https://www.googleapis.com/auth/compute.readonly"
53372	//   ]
53373	// }
53374
53375}
53376
53377// Pages invokes f for each page of results.
53378// A non-nil error returned from f will halt the iteration.
53379// The provided context supersedes any context provided to the Context method.
53380func (c *BackendServicesListCall) Pages(ctx context.Context, f func(*BackendServiceList) error) error {
53381	c.ctx_ = ctx
53382	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
53383	for {
53384		x, err := c.Do()
53385		if err != nil {
53386			return err
53387		}
53388		if err := f(x); err != nil {
53389			return err
53390		}
53391		if x.NextPageToken == "" {
53392			return nil
53393		}
53394		c.PageToken(x.NextPageToken)
53395	}
53396}
53397
53398// method id "compute.backendServices.patch":
53399
53400type BackendServicesPatchCall struct {
53401	s              *Service
53402	project        string
53403	backendService string
53404	backendservice *BackendService
53405	urlParams_     gensupport.URLParams
53406	ctx_           context.Context
53407	header_        http.Header
53408}
53409
53410// Patch: Patches the specified BackendService resource with the data
53411// included in the request. For more information, see  Backend services
53412// overview. This method supports PATCH semantics and uses the JSON
53413// merge patch format and processing rules.
53414//
53415// - backendService: Name of the BackendService resource to patch.
53416// - project: Project ID for this request.
53417// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/patch
53418func (r *BackendServicesService) Patch(project string, backendService string, backendservice *BackendService) *BackendServicesPatchCall {
53419	c := &BackendServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53420	c.project = project
53421	c.backendService = backendService
53422	c.backendservice = backendservice
53423	return c
53424}
53425
53426// RequestId sets the optional parameter "requestId": An optional
53427// request ID to identify requests. Specify a unique request ID so that
53428// if you must retry your request, the server will know to ignore the
53429// request if it has already been completed.
53430//
53431// For example, consider a situation where you make an initial request
53432// and the request times out. If you make the request again with the
53433// same request ID, the server can check if original operation with the
53434// same request ID was received, and if so, will ignore the second
53435// request. This prevents clients from accidentally creating duplicate
53436// commitments.
53437//
53438// The request ID must be a valid UUID with the exception that zero UUID
53439// is not supported (00000000-0000-0000-0000-000000000000).
53440func (c *BackendServicesPatchCall) RequestId(requestId string) *BackendServicesPatchCall {
53441	c.urlParams_.Set("requestId", requestId)
53442	return c
53443}
53444
53445// Fields allows partial responses to be retrieved. See
53446// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53447// for more information.
53448func (c *BackendServicesPatchCall) Fields(s ...googleapi.Field) *BackendServicesPatchCall {
53449	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53450	return c
53451}
53452
53453// Context sets the context to be used in this call's Do method. Any
53454// pending HTTP request will be aborted if the provided context is
53455// canceled.
53456func (c *BackendServicesPatchCall) Context(ctx context.Context) *BackendServicesPatchCall {
53457	c.ctx_ = ctx
53458	return c
53459}
53460
53461// Header returns an http.Header that can be modified by the caller to
53462// add HTTP headers to the request.
53463func (c *BackendServicesPatchCall) Header() http.Header {
53464	if c.header_ == nil {
53465		c.header_ = make(http.Header)
53466	}
53467	return c.header_
53468}
53469
53470func (c *BackendServicesPatchCall) doRequest(alt string) (*http.Response, error) {
53471	reqHeaders := make(http.Header)
53472	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
53473	for k, v := range c.header_ {
53474		reqHeaders[k] = v
53475	}
53476	reqHeaders.Set("User-Agent", c.s.userAgent())
53477	var body io.Reader = nil
53478	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
53479	if err != nil {
53480		return nil, err
53481	}
53482	reqHeaders.Set("Content-Type", "application/json")
53483	c.urlParams_.Set("alt", alt)
53484	c.urlParams_.Set("prettyPrint", "false")
53485	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}")
53486	urls += "?" + c.urlParams_.Encode()
53487	req, err := http.NewRequest("PATCH", urls, body)
53488	if err != nil {
53489		return nil, err
53490	}
53491	req.Header = reqHeaders
53492	googleapi.Expand(req.URL, map[string]string{
53493		"project":        c.project,
53494		"backendService": c.backendService,
53495	})
53496	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53497}
53498
53499// Do executes the "compute.backendServices.patch" call.
53500// Exactly one of *Operation or error will be non-nil. Any non-2xx
53501// status code is an error. Response headers are in either
53502// *Operation.ServerResponse.Header or (if a response was returned at
53503// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53504// to check whether the returned error was because
53505// http.StatusNotModified was returned.
53506func (c *BackendServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53507	gensupport.SetOptions(c.urlParams_, opts...)
53508	res, err := c.doRequest("json")
53509	if res != nil && res.StatusCode == http.StatusNotModified {
53510		if res.Body != nil {
53511			res.Body.Close()
53512		}
53513		return nil, &googleapi.Error{
53514			Code:   res.StatusCode,
53515			Header: res.Header,
53516		}
53517	}
53518	if err != nil {
53519		return nil, err
53520	}
53521	defer googleapi.CloseBody(res)
53522	if err := googleapi.CheckResponse(res); err != nil {
53523		return nil, err
53524	}
53525	ret := &Operation{
53526		ServerResponse: googleapi.ServerResponse{
53527			Header:         res.Header,
53528			HTTPStatusCode: res.StatusCode,
53529		},
53530	}
53531	target := &ret
53532	if err := gensupport.DecodeResponse(target, res); err != nil {
53533		return nil, err
53534	}
53535	return ret, nil
53536	// {
53537	//   "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.",
53538	//   "httpMethod": "PATCH",
53539	//   "id": "compute.backendServices.patch",
53540	//   "parameterOrder": [
53541	//     "project",
53542	//     "backendService"
53543	//   ],
53544	//   "parameters": {
53545	//     "backendService": {
53546	//       "description": "Name of the BackendService resource to patch.",
53547	//       "location": "path",
53548	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
53549	//       "required": true,
53550	//       "type": "string"
53551	//     },
53552	//     "project": {
53553	//       "description": "Project ID for this request.",
53554	//       "location": "path",
53555	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53556	//       "required": true,
53557	//       "type": "string"
53558	//     },
53559	//     "requestId": {
53560	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
53561	//       "location": "query",
53562	//       "type": "string"
53563	//     }
53564	//   },
53565	//   "path": "projects/{project}/global/backendServices/{backendService}",
53566	//   "request": {
53567	//     "$ref": "BackendService"
53568	//   },
53569	//   "response": {
53570	//     "$ref": "Operation"
53571	//   },
53572	//   "scopes": [
53573	//     "https://www.googleapis.com/auth/cloud-platform",
53574	//     "https://www.googleapis.com/auth/compute"
53575	//   ]
53576	// }
53577
53578}
53579
53580// method id "compute.backendServices.setSecurityPolicy":
53581
53582type BackendServicesSetSecurityPolicyCall struct {
53583	s                       *Service
53584	project                 string
53585	backendService          string
53586	securitypolicyreference *SecurityPolicyReference
53587	urlParams_              gensupport.URLParams
53588	ctx_                    context.Context
53589	header_                 http.Header
53590}
53591
53592// SetSecurityPolicy: Sets the Google Cloud Armor security policy for
53593// the specified backend service. For more information, see Google Cloud
53594// Armor Overview
53595//
53596// - backendService: Name of the BackendService resource to which the
53597//   security policy should be set. The name should conform to RFC1035.
53598// - project: Project ID for this request.
53599func (r *BackendServicesService) SetSecurityPolicy(project string, backendService string, securitypolicyreference *SecurityPolicyReference) *BackendServicesSetSecurityPolicyCall {
53600	c := &BackendServicesSetSecurityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53601	c.project = project
53602	c.backendService = backendService
53603	c.securitypolicyreference = securitypolicyreference
53604	return c
53605}
53606
53607// RequestId sets the optional parameter "requestId": An optional
53608// request ID to identify requests. Specify a unique request ID so that
53609// if you must retry your request, the server will know to ignore the
53610// request if it has already been completed.
53611//
53612// For example, consider a situation where you make an initial request
53613// and the request times out. If you make the request again with the
53614// same request ID, the server can check if original operation with the
53615// same request ID was received, and if so, will ignore the second
53616// request. This prevents clients from accidentally creating duplicate
53617// commitments.
53618//
53619// The request ID must be a valid UUID with the exception that zero UUID
53620// is not supported (00000000-0000-0000-0000-000000000000).
53621func (c *BackendServicesSetSecurityPolicyCall) RequestId(requestId string) *BackendServicesSetSecurityPolicyCall {
53622	c.urlParams_.Set("requestId", requestId)
53623	return c
53624}
53625
53626// Fields allows partial responses to be retrieved. See
53627// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53628// for more information.
53629func (c *BackendServicesSetSecurityPolicyCall) Fields(s ...googleapi.Field) *BackendServicesSetSecurityPolicyCall {
53630	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53631	return c
53632}
53633
53634// Context sets the context to be used in this call's Do method. Any
53635// pending HTTP request will be aborted if the provided context is
53636// canceled.
53637func (c *BackendServicesSetSecurityPolicyCall) Context(ctx context.Context) *BackendServicesSetSecurityPolicyCall {
53638	c.ctx_ = ctx
53639	return c
53640}
53641
53642// Header returns an http.Header that can be modified by the caller to
53643// add HTTP headers to the request.
53644func (c *BackendServicesSetSecurityPolicyCall) Header() http.Header {
53645	if c.header_ == nil {
53646		c.header_ = make(http.Header)
53647	}
53648	return c.header_
53649}
53650
53651func (c *BackendServicesSetSecurityPolicyCall) doRequest(alt string) (*http.Response, error) {
53652	reqHeaders := make(http.Header)
53653	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
53654	for k, v := range c.header_ {
53655		reqHeaders[k] = v
53656	}
53657	reqHeaders.Set("User-Agent", c.s.userAgent())
53658	var body io.Reader = nil
53659	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyreference)
53660	if err != nil {
53661		return nil, err
53662	}
53663	reqHeaders.Set("Content-Type", "application/json")
53664	c.urlParams_.Set("alt", alt)
53665	c.urlParams_.Set("prettyPrint", "false")
53666	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}/setSecurityPolicy")
53667	urls += "?" + c.urlParams_.Encode()
53668	req, err := http.NewRequest("POST", urls, body)
53669	if err != nil {
53670		return nil, err
53671	}
53672	req.Header = reqHeaders
53673	googleapi.Expand(req.URL, map[string]string{
53674		"project":        c.project,
53675		"backendService": c.backendService,
53676	})
53677	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53678}
53679
53680// Do executes the "compute.backendServices.setSecurityPolicy" call.
53681// Exactly one of *Operation or error will be non-nil. Any non-2xx
53682// status code is an error. Response headers are in either
53683// *Operation.ServerResponse.Header or (if a response was returned at
53684// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53685// to check whether the returned error was because
53686// http.StatusNotModified was returned.
53687func (c *BackendServicesSetSecurityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53688	gensupport.SetOptions(c.urlParams_, opts...)
53689	res, err := c.doRequest("json")
53690	if res != nil && res.StatusCode == http.StatusNotModified {
53691		if res.Body != nil {
53692			res.Body.Close()
53693		}
53694		return nil, &googleapi.Error{
53695			Code:   res.StatusCode,
53696			Header: res.Header,
53697		}
53698	}
53699	if err != nil {
53700		return nil, err
53701	}
53702	defer googleapi.CloseBody(res)
53703	if err := googleapi.CheckResponse(res); err != nil {
53704		return nil, err
53705	}
53706	ret := &Operation{
53707		ServerResponse: googleapi.ServerResponse{
53708			Header:         res.Header,
53709			HTTPStatusCode: res.StatusCode,
53710		},
53711	}
53712	target := &ret
53713	if err := gensupport.DecodeResponse(target, res); err != nil {
53714		return nil, err
53715	}
53716	return ret, nil
53717	// {
53718	//   "description": "Sets the Google Cloud Armor security policy for the specified backend service. For more information, see Google Cloud Armor Overview",
53719	//   "httpMethod": "POST",
53720	//   "id": "compute.backendServices.setSecurityPolicy",
53721	//   "parameterOrder": [
53722	//     "project",
53723	//     "backendService"
53724	//   ],
53725	//   "parameters": {
53726	//     "backendService": {
53727	//       "description": "Name of the BackendService resource to which the security policy should be set. The name should conform to RFC1035.",
53728	//       "location": "path",
53729	//       "required": true,
53730	//       "type": "string"
53731	//     },
53732	//     "project": {
53733	//       "description": "Project ID for this request.",
53734	//       "location": "path",
53735	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53736	//       "required": true,
53737	//       "type": "string"
53738	//     },
53739	//     "requestId": {
53740	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
53741	//       "location": "query",
53742	//       "type": "string"
53743	//     }
53744	//   },
53745	//   "path": "projects/{project}/global/backendServices/{backendService}/setSecurityPolicy",
53746	//   "request": {
53747	//     "$ref": "SecurityPolicyReference"
53748	//   },
53749	//   "response": {
53750	//     "$ref": "Operation"
53751	//   },
53752	//   "scopes": [
53753	//     "https://www.googleapis.com/auth/cloud-platform",
53754	//     "https://www.googleapis.com/auth/compute"
53755	//   ]
53756	// }
53757
53758}
53759
53760// method id "compute.backendServices.update":
53761
53762type BackendServicesUpdateCall struct {
53763	s              *Service
53764	project        string
53765	backendService string
53766	backendservice *BackendService
53767	urlParams_     gensupport.URLParams
53768	ctx_           context.Context
53769	header_        http.Header
53770}
53771
53772// Update: Updates the specified BackendService resource with the data
53773// included in the request. For more information, see Backend services
53774// overview.
53775//
53776// - backendService: Name of the BackendService resource to update.
53777// - project: Project ID for this request.
53778// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/update
53779func (r *BackendServicesService) Update(project string, backendService string, backendservice *BackendService) *BackendServicesUpdateCall {
53780	c := &BackendServicesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53781	c.project = project
53782	c.backendService = backendService
53783	c.backendservice = backendservice
53784	return c
53785}
53786
53787// RequestId sets the optional parameter "requestId": An optional
53788// request ID to identify requests. Specify a unique request ID so that
53789// if you must retry your request, the server will know to ignore the
53790// request if it has already been completed.
53791//
53792// For example, consider a situation where you make an initial request
53793// and the request times out. If you make the request again with the
53794// same request ID, the server can check if original operation with the
53795// same request ID was received, and if so, will ignore the second
53796// request. This prevents clients from accidentally creating duplicate
53797// commitments.
53798//
53799// The request ID must be a valid UUID with the exception that zero UUID
53800// is not supported (00000000-0000-0000-0000-000000000000).
53801func (c *BackendServicesUpdateCall) RequestId(requestId string) *BackendServicesUpdateCall {
53802	c.urlParams_.Set("requestId", requestId)
53803	return c
53804}
53805
53806// Fields allows partial responses to be retrieved. See
53807// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53808// for more information.
53809func (c *BackendServicesUpdateCall) Fields(s ...googleapi.Field) *BackendServicesUpdateCall {
53810	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53811	return c
53812}
53813
53814// Context sets the context to be used in this call's Do method. Any
53815// pending HTTP request will be aborted if the provided context is
53816// canceled.
53817func (c *BackendServicesUpdateCall) Context(ctx context.Context) *BackendServicesUpdateCall {
53818	c.ctx_ = ctx
53819	return c
53820}
53821
53822// Header returns an http.Header that can be modified by the caller to
53823// add HTTP headers to the request.
53824func (c *BackendServicesUpdateCall) Header() http.Header {
53825	if c.header_ == nil {
53826		c.header_ = make(http.Header)
53827	}
53828	return c.header_
53829}
53830
53831func (c *BackendServicesUpdateCall) doRequest(alt string) (*http.Response, error) {
53832	reqHeaders := make(http.Header)
53833	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
53834	for k, v := range c.header_ {
53835		reqHeaders[k] = v
53836	}
53837	reqHeaders.Set("User-Agent", c.s.userAgent())
53838	var body io.Reader = nil
53839	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
53840	if err != nil {
53841		return nil, err
53842	}
53843	reqHeaders.Set("Content-Type", "application/json")
53844	c.urlParams_.Set("alt", alt)
53845	c.urlParams_.Set("prettyPrint", "false")
53846	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/backendServices/{backendService}")
53847	urls += "?" + c.urlParams_.Encode()
53848	req, err := http.NewRequest("PUT", urls, body)
53849	if err != nil {
53850		return nil, err
53851	}
53852	req.Header = reqHeaders
53853	googleapi.Expand(req.URL, map[string]string{
53854		"project":        c.project,
53855		"backendService": c.backendService,
53856	})
53857	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53858}
53859
53860// Do executes the "compute.backendServices.update" call.
53861// Exactly one of *Operation or error will be non-nil. Any non-2xx
53862// status code is an error. Response headers are in either
53863// *Operation.ServerResponse.Header or (if a response was returned at
53864// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53865// to check whether the returned error was because
53866// http.StatusNotModified was returned.
53867func (c *BackendServicesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53868	gensupport.SetOptions(c.urlParams_, opts...)
53869	res, err := c.doRequest("json")
53870	if res != nil && res.StatusCode == http.StatusNotModified {
53871		if res.Body != nil {
53872			res.Body.Close()
53873		}
53874		return nil, &googleapi.Error{
53875			Code:   res.StatusCode,
53876			Header: res.Header,
53877		}
53878	}
53879	if err != nil {
53880		return nil, err
53881	}
53882	defer googleapi.CloseBody(res)
53883	if err := googleapi.CheckResponse(res); err != nil {
53884		return nil, err
53885	}
53886	ret := &Operation{
53887		ServerResponse: googleapi.ServerResponse{
53888			Header:         res.Header,
53889			HTTPStatusCode: res.StatusCode,
53890		},
53891	}
53892	target := &ret
53893	if err := gensupport.DecodeResponse(target, res); err != nil {
53894		return nil, err
53895	}
53896	return ret, nil
53897	// {
53898	//   "description": "Updates the specified BackendService resource with the data included in the request. For more information, see Backend services overview.",
53899	//   "httpMethod": "PUT",
53900	//   "id": "compute.backendServices.update",
53901	//   "parameterOrder": [
53902	//     "project",
53903	//     "backendService"
53904	//   ],
53905	//   "parameters": {
53906	//     "backendService": {
53907	//       "description": "Name of the BackendService resource to update.",
53908	//       "location": "path",
53909	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
53910	//       "required": true,
53911	//       "type": "string"
53912	//     },
53913	//     "project": {
53914	//       "description": "Project ID for this request.",
53915	//       "location": "path",
53916	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53917	//       "required": true,
53918	//       "type": "string"
53919	//     },
53920	//     "requestId": {
53921	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
53922	//       "location": "query",
53923	//       "type": "string"
53924	//     }
53925	//   },
53926	//   "path": "projects/{project}/global/backendServices/{backendService}",
53927	//   "request": {
53928	//     "$ref": "BackendService"
53929	//   },
53930	//   "response": {
53931	//     "$ref": "Operation"
53932	//   },
53933	//   "scopes": [
53934	//     "https://www.googleapis.com/auth/cloud-platform",
53935	//     "https://www.googleapis.com/auth/compute"
53936	//   ]
53937	// }
53938
53939}
53940
53941// method id "compute.diskTypes.aggregatedList":
53942
53943type DiskTypesAggregatedListCall struct {
53944	s            *Service
53945	project      string
53946	urlParams_   gensupport.URLParams
53947	ifNoneMatch_ string
53948	ctx_         context.Context
53949	header_      http.Header
53950}
53951
53952// AggregatedList: Retrieves an aggregated list of disk types.
53953//
53954// - project: Project ID for this request.
53955// For details, see https://cloud.google.com/compute/docs/reference/latest/diskTypes/aggregatedList
53956func (r *DiskTypesService) AggregatedList(project string) *DiskTypesAggregatedListCall {
53957	c := &DiskTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53958	c.project = project
53959	return c
53960}
53961
53962// Filter sets the optional parameter "filter": A filter expression that
53963// filters resources listed in the response. The expression must specify
53964// the field name, a comparison operator, and the value that you want to
53965// use for filtering. The value must be a string, a number, or a
53966// boolean. The comparison operator must be either `=`, `!=`, `>`, or
53967// `<`.
53968//
53969// For example, if you are filtering Compute Engine instances, you can
53970// exclude instances named `example-instance` by specifying `name !=
53971// example-instance`.
53972//
53973// You can also filter nested fields. For example, you could specify
53974// `scheduling.automaticRestart = false` to include instances only if
53975// they are not scheduled for automatic restarts. You can use filtering
53976// on nested fields to filter based on resource labels.
53977//
53978// To filter on multiple expressions, provide each separate expression
53979// within parentheses. For example: ``` (scheduling.automaticRestart =
53980// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
53981// is an `AND` expression. However, you can include `AND` and `OR`
53982// expressions explicitly. For example: ``` (cpuPlatform = "Intel
53983// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
53984// (scheduling.automaticRestart = true) ```
53985func (c *DiskTypesAggregatedListCall) Filter(filter string) *DiskTypesAggregatedListCall {
53986	c.urlParams_.Set("filter", filter)
53987	return c
53988}
53989
53990// IncludeAllScopes sets the optional parameter "includeAllScopes":
53991// Indicates whether every visible scope for each scope type (zone,
53992// region, global) should be included in the response. For new resource
53993// types added after this field, the flag has no effect as new resource
53994// types will always include every visible scope for each scope type in
53995// response. For resource types which predate this field, if this flag
53996// is omitted or false, only scopes of the scope types where the
53997// resource type is expected to be found will be included.
53998func (c *DiskTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *DiskTypesAggregatedListCall {
53999	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
54000	return c
54001}
54002
54003// MaxResults sets the optional parameter "maxResults": The maximum
54004// number of results per page that should be returned. If the number of
54005// available results is larger than `maxResults`, Compute Engine returns
54006// a `nextPageToken` that can be used to get the next page of results in
54007// subsequent list requests. Acceptable values are `0` to `500`,
54008// inclusive. (Default: `500`)
54009func (c *DiskTypesAggregatedListCall) MaxResults(maxResults int64) *DiskTypesAggregatedListCall {
54010	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
54011	return c
54012}
54013
54014// OrderBy sets the optional parameter "orderBy": Sorts list results by
54015// a certain order. By default, results are returned in alphanumerical
54016// order based on the resource name.
54017//
54018// You can also sort results in descending order based on the creation
54019// timestamp using `orderBy="creationTimestamp desc". This sorts
54020// results based on the `creationTimestamp` field in reverse
54021// chronological order (newest result first). Use this to sort resources
54022// like operations so that the newest operation is returned
54023// first.
54024//
54025// Currently, only sorting by `name` or `creationTimestamp desc` is
54026// supported.
54027func (c *DiskTypesAggregatedListCall) OrderBy(orderBy string) *DiskTypesAggregatedListCall {
54028	c.urlParams_.Set("orderBy", orderBy)
54029	return c
54030}
54031
54032// PageToken sets the optional parameter "pageToken": Specifies a page
54033// token to use. Set `pageToken` to the `nextPageToken` returned by a
54034// previous list request to get the next page of results.
54035func (c *DiskTypesAggregatedListCall) PageToken(pageToken string) *DiskTypesAggregatedListCall {
54036	c.urlParams_.Set("pageToken", pageToken)
54037	return c
54038}
54039
54040// ReturnPartialSuccess sets the optional parameter
54041// "returnPartialSuccess": Opt-in for partial success behavior which
54042// provides partial results in case of failure. The default value is
54043// false.
54044func (c *DiskTypesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *DiskTypesAggregatedListCall {
54045	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
54046	return c
54047}
54048
54049// Fields allows partial responses to be retrieved. See
54050// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54051// for more information.
54052func (c *DiskTypesAggregatedListCall) Fields(s ...googleapi.Field) *DiskTypesAggregatedListCall {
54053	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54054	return c
54055}
54056
54057// IfNoneMatch sets the optional parameter which makes the operation
54058// fail if the object's ETag matches the given value. This is useful for
54059// getting updates only after the object has changed since the last
54060// request. Use googleapi.IsNotModified to check whether the response
54061// error from Do is the result of In-None-Match.
54062func (c *DiskTypesAggregatedListCall) IfNoneMatch(entityTag string) *DiskTypesAggregatedListCall {
54063	c.ifNoneMatch_ = entityTag
54064	return c
54065}
54066
54067// Context sets the context to be used in this call's Do method. Any
54068// pending HTTP request will be aborted if the provided context is
54069// canceled.
54070func (c *DiskTypesAggregatedListCall) Context(ctx context.Context) *DiskTypesAggregatedListCall {
54071	c.ctx_ = ctx
54072	return c
54073}
54074
54075// Header returns an http.Header that can be modified by the caller to
54076// add HTTP headers to the request.
54077func (c *DiskTypesAggregatedListCall) Header() http.Header {
54078	if c.header_ == nil {
54079		c.header_ = make(http.Header)
54080	}
54081	return c.header_
54082}
54083
54084func (c *DiskTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
54085	reqHeaders := make(http.Header)
54086	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
54087	for k, v := range c.header_ {
54088		reqHeaders[k] = v
54089	}
54090	reqHeaders.Set("User-Agent", c.s.userAgent())
54091	if c.ifNoneMatch_ != "" {
54092		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
54093	}
54094	var body io.Reader = nil
54095	c.urlParams_.Set("alt", alt)
54096	c.urlParams_.Set("prettyPrint", "false")
54097	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/diskTypes")
54098	urls += "?" + c.urlParams_.Encode()
54099	req, err := http.NewRequest("GET", urls, body)
54100	if err != nil {
54101		return nil, err
54102	}
54103	req.Header = reqHeaders
54104	googleapi.Expand(req.URL, map[string]string{
54105		"project": c.project,
54106	})
54107	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54108}
54109
54110// Do executes the "compute.diskTypes.aggregatedList" call.
54111// Exactly one of *DiskTypeAggregatedList or error will be non-nil. Any
54112// non-2xx status code is an error. Response headers are in either
54113// *DiskTypeAggregatedList.ServerResponse.Header or (if a response was
54114// returned at all) in error.(*googleapi.Error).Header. Use
54115// googleapi.IsNotModified to check whether the returned error was
54116// because http.StatusNotModified was returned.
54117func (c *DiskTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*DiskTypeAggregatedList, error) {
54118	gensupport.SetOptions(c.urlParams_, opts...)
54119	res, err := c.doRequest("json")
54120	if res != nil && res.StatusCode == http.StatusNotModified {
54121		if res.Body != nil {
54122			res.Body.Close()
54123		}
54124		return nil, &googleapi.Error{
54125			Code:   res.StatusCode,
54126			Header: res.Header,
54127		}
54128	}
54129	if err != nil {
54130		return nil, err
54131	}
54132	defer googleapi.CloseBody(res)
54133	if err := googleapi.CheckResponse(res); err != nil {
54134		return nil, err
54135	}
54136	ret := &DiskTypeAggregatedList{
54137		ServerResponse: googleapi.ServerResponse{
54138			Header:         res.Header,
54139			HTTPStatusCode: res.StatusCode,
54140		},
54141	}
54142	target := &ret
54143	if err := gensupport.DecodeResponse(target, res); err != nil {
54144		return nil, err
54145	}
54146	return ret, nil
54147	// {
54148	//   "description": "Retrieves an aggregated list of disk types.",
54149	//   "httpMethod": "GET",
54150	//   "id": "compute.diskTypes.aggregatedList",
54151	//   "parameterOrder": [
54152	//     "project"
54153	//   ],
54154	//   "parameters": {
54155	//     "filter": {
54156	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
54157	//       "location": "query",
54158	//       "type": "string"
54159	//     },
54160	//     "includeAllScopes": {
54161	//       "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.",
54162	//       "location": "query",
54163	//       "type": "boolean"
54164	//     },
54165	//     "maxResults": {
54166	//       "default": "500",
54167	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
54168	//       "format": "uint32",
54169	//       "location": "query",
54170	//       "minimum": "0",
54171	//       "type": "integer"
54172	//     },
54173	//     "orderBy": {
54174	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
54175	//       "location": "query",
54176	//       "type": "string"
54177	//     },
54178	//     "pageToken": {
54179	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
54180	//       "location": "query",
54181	//       "type": "string"
54182	//     },
54183	//     "project": {
54184	//       "description": "Project ID for this request.",
54185	//       "location": "path",
54186	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54187	//       "required": true,
54188	//       "type": "string"
54189	//     },
54190	//     "returnPartialSuccess": {
54191	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
54192	//       "location": "query",
54193	//       "type": "boolean"
54194	//     }
54195	//   },
54196	//   "path": "projects/{project}/aggregated/diskTypes",
54197	//   "response": {
54198	//     "$ref": "DiskTypeAggregatedList"
54199	//   },
54200	//   "scopes": [
54201	//     "https://www.googleapis.com/auth/cloud-platform",
54202	//     "https://www.googleapis.com/auth/compute",
54203	//     "https://www.googleapis.com/auth/compute.readonly"
54204	//   ]
54205	// }
54206
54207}
54208
54209// Pages invokes f for each page of results.
54210// A non-nil error returned from f will halt the iteration.
54211// The provided context supersedes any context provided to the Context method.
54212func (c *DiskTypesAggregatedListCall) Pages(ctx context.Context, f func(*DiskTypeAggregatedList) error) error {
54213	c.ctx_ = ctx
54214	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
54215	for {
54216		x, err := c.Do()
54217		if err != nil {
54218			return err
54219		}
54220		if err := f(x); err != nil {
54221			return err
54222		}
54223		if x.NextPageToken == "" {
54224			return nil
54225		}
54226		c.PageToken(x.NextPageToken)
54227	}
54228}
54229
54230// method id "compute.diskTypes.get":
54231
54232type DiskTypesGetCall struct {
54233	s            *Service
54234	project      string
54235	zone         string
54236	diskType     string
54237	urlParams_   gensupport.URLParams
54238	ifNoneMatch_ string
54239	ctx_         context.Context
54240	header_      http.Header
54241}
54242
54243// Get: Returns the specified disk type. Gets a list of available disk
54244// types by making a list() request.
54245//
54246// - diskType: Name of the disk type to return.
54247// - project: Project ID for this request.
54248// - zone: The name of the zone for this request.
54249// For details, see https://cloud.google.com/compute/docs/reference/latest/diskTypes/get
54250func (r *DiskTypesService) Get(project string, zone string, diskType string) *DiskTypesGetCall {
54251	c := &DiskTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54252	c.project = project
54253	c.zone = zone
54254	c.diskType = diskType
54255	return c
54256}
54257
54258// Fields allows partial responses to be retrieved. See
54259// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54260// for more information.
54261func (c *DiskTypesGetCall) Fields(s ...googleapi.Field) *DiskTypesGetCall {
54262	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54263	return c
54264}
54265
54266// IfNoneMatch sets the optional parameter which makes the operation
54267// fail if the object's ETag matches the given value. This is useful for
54268// getting updates only after the object has changed since the last
54269// request. Use googleapi.IsNotModified to check whether the response
54270// error from Do is the result of In-None-Match.
54271func (c *DiskTypesGetCall) IfNoneMatch(entityTag string) *DiskTypesGetCall {
54272	c.ifNoneMatch_ = entityTag
54273	return c
54274}
54275
54276// Context sets the context to be used in this call's Do method. Any
54277// pending HTTP request will be aborted if the provided context is
54278// canceled.
54279func (c *DiskTypesGetCall) Context(ctx context.Context) *DiskTypesGetCall {
54280	c.ctx_ = ctx
54281	return c
54282}
54283
54284// Header returns an http.Header that can be modified by the caller to
54285// add HTTP headers to the request.
54286func (c *DiskTypesGetCall) Header() http.Header {
54287	if c.header_ == nil {
54288		c.header_ = make(http.Header)
54289	}
54290	return c.header_
54291}
54292
54293func (c *DiskTypesGetCall) doRequest(alt string) (*http.Response, error) {
54294	reqHeaders := make(http.Header)
54295	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
54296	for k, v := range c.header_ {
54297		reqHeaders[k] = v
54298	}
54299	reqHeaders.Set("User-Agent", c.s.userAgent())
54300	if c.ifNoneMatch_ != "" {
54301		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
54302	}
54303	var body io.Reader = nil
54304	c.urlParams_.Set("alt", alt)
54305	c.urlParams_.Set("prettyPrint", "false")
54306	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/diskTypes/{diskType}")
54307	urls += "?" + c.urlParams_.Encode()
54308	req, err := http.NewRequest("GET", urls, body)
54309	if err != nil {
54310		return nil, err
54311	}
54312	req.Header = reqHeaders
54313	googleapi.Expand(req.URL, map[string]string{
54314		"project":  c.project,
54315		"zone":     c.zone,
54316		"diskType": c.diskType,
54317	})
54318	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54319}
54320
54321// Do executes the "compute.diskTypes.get" call.
54322// Exactly one of *DiskType or error will be non-nil. Any non-2xx status
54323// code is an error. Response headers are in either
54324// *DiskType.ServerResponse.Header or (if a response was returned at
54325// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54326// to check whether the returned error was because
54327// http.StatusNotModified was returned.
54328func (c *DiskTypesGetCall) Do(opts ...googleapi.CallOption) (*DiskType, error) {
54329	gensupport.SetOptions(c.urlParams_, opts...)
54330	res, err := c.doRequest("json")
54331	if res != nil && res.StatusCode == http.StatusNotModified {
54332		if res.Body != nil {
54333			res.Body.Close()
54334		}
54335		return nil, &googleapi.Error{
54336			Code:   res.StatusCode,
54337			Header: res.Header,
54338		}
54339	}
54340	if err != nil {
54341		return nil, err
54342	}
54343	defer googleapi.CloseBody(res)
54344	if err := googleapi.CheckResponse(res); err != nil {
54345		return nil, err
54346	}
54347	ret := &DiskType{
54348		ServerResponse: googleapi.ServerResponse{
54349			Header:         res.Header,
54350			HTTPStatusCode: res.StatusCode,
54351		},
54352	}
54353	target := &ret
54354	if err := gensupport.DecodeResponse(target, res); err != nil {
54355		return nil, err
54356	}
54357	return ret, nil
54358	// {
54359	//   "description": "Returns the specified disk type. Gets a list of available disk types by making a list() request.",
54360	//   "httpMethod": "GET",
54361	//   "id": "compute.diskTypes.get",
54362	//   "parameterOrder": [
54363	//     "project",
54364	//     "zone",
54365	//     "diskType"
54366	//   ],
54367	//   "parameters": {
54368	//     "diskType": {
54369	//       "description": "Name of the disk type to return.",
54370	//       "location": "path",
54371	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
54372	//       "required": true,
54373	//       "type": "string"
54374	//     },
54375	//     "project": {
54376	//       "description": "Project ID for this request.",
54377	//       "location": "path",
54378	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54379	//       "required": true,
54380	//       "type": "string"
54381	//     },
54382	//     "zone": {
54383	//       "description": "The name of the zone for this request.",
54384	//       "location": "path",
54385	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
54386	//       "required": true,
54387	//       "type": "string"
54388	//     }
54389	//   },
54390	//   "path": "projects/{project}/zones/{zone}/diskTypes/{diskType}",
54391	//   "response": {
54392	//     "$ref": "DiskType"
54393	//   },
54394	//   "scopes": [
54395	//     "https://www.googleapis.com/auth/cloud-platform",
54396	//     "https://www.googleapis.com/auth/compute",
54397	//     "https://www.googleapis.com/auth/compute.readonly"
54398	//   ]
54399	// }
54400
54401}
54402
54403// method id "compute.diskTypes.list":
54404
54405type DiskTypesListCall struct {
54406	s            *Service
54407	project      string
54408	zone         string
54409	urlParams_   gensupport.URLParams
54410	ifNoneMatch_ string
54411	ctx_         context.Context
54412	header_      http.Header
54413}
54414
54415// List: Retrieves a list of disk types available to the specified
54416// project.
54417//
54418// - project: Project ID for this request.
54419// - zone: The name of the zone for this request.
54420// For details, see https://cloud.google.com/compute/docs/reference/latest/diskTypes/list
54421func (r *DiskTypesService) List(project string, zone string) *DiskTypesListCall {
54422	c := &DiskTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54423	c.project = project
54424	c.zone = zone
54425	return c
54426}
54427
54428// Filter sets the optional parameter "filter": A filter expression that
54429// filters resources listed in the response. The expression must specify
54430// the field name, a comparison operator, and the value that you want to
54431// use for filtering. The value must be a string, a number, or a
54432// boolean. The comparison operator must be either `=`, `!=`, `>`, or
54433// `<`.
54434//
54435// For example, if you are filtering Compute Engine instances, you can
54436// exclude instances named `example-instance` by specifying `name !=
54437// example-instance`.
54438//
54439// You can also filter nested fields. For example, you could specify
54440// `scheduling.automaticRestart = false` to include instances only if
54441// they are not scheduled for automatic restarts. You can use filtering
54442// on nested fields to filter based on resource labels.
54443//
54444// To filter on multiple expressions, provide each separate expression
54445// within parentheses. For example: ``` (scheduling.automaticRestart =
54446// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
54447// is an `AND` expression. However, you can include `AND` and `OR`
54448// expressions explicitly. For example: ``` (cpuPlatform = "Intel
54449// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
54450// (scheduling.automaticRestart = true) ```
54451func (c *DiskTypesListCall) Filter(filter string) *DiskTypesListCall {
54452	c.urlParams_.Set("filter", filter)
54453	return c
54454}
54455
54456// MaxResults sets the optional parameter "maxResults": The maximum
54457// number of results per page that should be returned. If the number of
54458// available results is larger than `maxResults`, Compute Engine returns
54459// a `nextPageToken` that can be used to get the next page of results in
54460// subsequent list requests. Acceptable values are `0` to `500`,
54461// inclusive. (Default: `500`)
54462func (c *DiskTypesListCall) MaxResults(maxResults int64) *DiskTypesListCall {
54463	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
54464	return c
54465}
54466
54467// OrderBy sets the optional parameter "orderBy": Sorts list results by
54468// a certain order. By default, results are returned in alphanumerical
54469// order based on the resource name.
54470//
54471// You can also sort results in descending order based on the creation
54472// timestamp using `orderBy="creationTimestamp desc". This sorts
54473// results based on the `creationTimestamp` field in reverse
54474// chronological order (newest result first). Use this to sort resources
54475// like operations so that the newest operation is returned
54476// first.
54477//
54478// Currently, only sorting by `name` or `creationTimestamp desc` is
54479// supported.
54480func (c *DiskTypesListCall) OrderBy(orderBy string) *DiskTypesListCall {
54481	c.urlParams_.Set("orderBy", orderBy)
54482	return c
54483}
54484
54485// PageToken sets the optional parameter "pageToken": Specifies a page
54486// token to use. Set `pageToken` to the `nextPageToken` returned by a
54487// previous list request to get the next page of results.
54488func (c *DiskTypesListCall) PageToken(pageToken string) *DiskTypesListCall {
54489	c.urlParams_.Set("pageToken", pageToken)
54490	return c
54491}
54492
54493// ReturnPartialSuccess sets the optional parameter
54494// "returnPartialSuccess": Opt-in for partial success behavior which
54495// provides partial results in case of failure. The default value is
54496// false.
54497func (c *DiskTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *DiskTypesListCall {
54498	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
54499	return c
54500}
54501
54502// Fields allows partial responses to be retrieved. See
54503// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54504// for more information.
54505func (c *DiskTypesListCall) Fields(s ...googleapi.Field) *DiskTypesListCall {
54506	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54507	return c
54508}
54509
54510// IfNoneMatch sets the optional parameter which makes the operation
54511// fail if the object's ETag matches the given value. This is useful for
54512// getting updates only after the object has changed since the last
54513// request. Use googleapi.IsNotModified to check whether the response
54514// error from Do is the result of In-None-Match.
54515func (c *DiskTypesListCall) IfNoneMatch(entityTag string) *DiskTypesListCall {
54516	c.ifNoneMatch_ = entityTag
54517	return c
54518}
54519
54520// Context sets the context to be used in this call's Do method. Any
54521// pending HTTP request will be aborted if the provided context is
54522// canceled.
54523func (c *DiskTypesListCall) Context(ctx context.Context) *DiskTypesListCall {
54524	c.ctx_ = ctx
54525	return c
54526}
54527
54528// Header returns an http.Header that can be modified by the caller to
54529// add HTTP headers to the request.
54530func (c *DiskTypesListCall) Header() http.Header {
54531	if c.header_ == nil {
54532		c.header_ = make(http.Header)
54533	}
54534	return c.header_
54535}
54536
54537func (c *DiskTypesListCall) doRequest(alt string) (*http.Response, error) {
54538	reqHeaders := make(http.Header)
54539	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
54540	for k, v := range c.header_ {
54541		reqHeaders[k] = v
54542	}
54543	reqHeaders.Set("User-Agent", c.s.userAgent())
54544	if c.ifNoneMatch_ != "" {
54545		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
54546	}
54547	var body io.Reader = nil
54548	c.urlParams_.Set("alt", alt)
54549	c.urlParams_.Set("prettyPrint", "false")
54550	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/diskTypes")
54551	urls += "?" + c.urlParams_.Encode()
54552	req, err := http.NewRequest("GET", urls, body)
54553	if err != nil {
54554		return nil, err
54555	}
54556	req.Header = reqHeaders
54557	googleapi.Expand(req.URL, map[string]string{
54558		"project": c.project,
54559		"zone":    c.zone,
54560	})
54561	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54562}
54563
54564// Do executes the "compute.diskTypes.list" call.
54565// Exactly one of *DiskTypeList or error will be non-nil. Any non-2xx
54566// status code is an error. Response headers are in either
54567// *DiskTypeList.ServerResponse.Header or (if a response was returned at
54568// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54569// to check whether the returned error was because
54570// http.StatusNotModified was returned.
54571func (c *DiskTypesListCall) Do(opts ...googleapi.CallOption) (*DiskTypeList, error) {
54572	gensupport.SetOptions(c.urlParams_, opts...)
54573	res, err := c.doRequest("json")
54574	if res != nil && res.StatusCode == http.StatusNotModified {
54575		if res.Body != nil {
54576			res.Body.Close()
54577		}
54578		return nil, &googleapi.Error{
54579			Code:   res.StatusCode,
54580			Header: res.Header,
54581		}
54582	}
54583	if err != nil {
54584		return nil, err
54585	}
54586	defer googleapi.CloseBody(res)
54587	if err := googleapi.CheckResponse(res); err != nil {
54588		return nil, err
54589	}
54590	ret := &DiskTypeList{
54591		ServerResponse: googleapi.ServerResponse{
54592			Header:         res.Header,
54593			HTTPStatusCode: res.StatusCode,
54594		},
54595	}
54596	target := &ret
54597	if err := gensupport.DecodeResponse(target, res); err != nil {
54598		return nil, err
54599	}
54600	return ret, nil
54601	// {
54602	//   "description": "Retrieves a list of disk types available to the specified project.",
54603	//   "httpMethod": "GET",
54604	//   "id": "compute.diskTypes.list",
54605	//   "parameterOrder": [
54606	//     "project",
54607	//     "zone"
54608	//   ],
54609	//   "parameters": {
54610	//     "filter": {
54611	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
54612	//       "location": "query",
54613	//       "type": "string"
54614	//     },
54615	//     "maxResults": {
54616	//       "default": "500",
54617	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
54618	//       "format": "uint32",
54619	//       "location": "query",
54620	//       "minimum": "0",
54621	//       "type": "integer"
54622	//     },
54623	//     "orderBy": {
54624	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
54625	//       "location": "query",
54626	//       "type": "string"
54627	//     },
54628	//     "pageToken": {
54629	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
54630	//       "location": "query",
54631	//       "type": "string"
54632	//     },
54633	//     "project": {
54634	//       "description": "Project ID for this request.",
54635	//       "location": "path",
54636	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54637	//       "required": true,
54638	//       "type": "string"
54639	//     },
54640	//     "returnPartialSuccess": {
54641	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
54642	//       "location": "query",
54643	//       "type": "boolean"
54644	//     },
54645	//     "zone": {
54646	//       "description": "The name of the zone for this request.",
54647	//       "location": "path",
54648	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
54649	//       "required": true,
54650	//       "type": "string"
54651	//     }
54652	//   },
54653	//   "path": "projects/{project}/zones/{zone}/diskTypes",
54654	//   "response": {
54655	//     "$ref": "DiskTypeList"
54656	//   },
54657	//   "scopes": [
54658	//     "https://www.googleapis.com/auth/cloud-platform",
54659	//     "https://www.googleapis.com/auth/compute",
54660	//     "https://www.googleapis.com/auth/compute.readonly"
54661	//   ]
54662	// }
54663
54664}
54665
54666// Pages invokes f for each page of results.
54667// A non-nil error returned from f will halt the iteration.
54668// The provided context supersedes any context provided to the Context method.
54669func (c *DiskTypesListCall) Pages(ctx context.Context, f func(*DiskTypeList) error) error {
54670	c.ctx_ = ctx
54671	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
54672	for {
54673		x, err := c.Do()
54674		if err != nil {
54675			return err
54676		}
54677		if err := f(x); err != nil {
54678			return err
54679		}
54680		if x.NextPageToken == "" {
54681			return nil
54682		}
54683		c.PageToken(x.NextPageToken)
54684	}
54685}
54686
54687// method id "compute.disks.addResourcePolicies":
54688
54689type DisksAddResourcePoliciesCall struct {
54690	s                               *Service
54691	project                         string
54692	zone                            string
54693	disk                            string
54694	disksaddresourcepoliciesrequest *DisksAddResourcePoliciesRequest
54695	urlParams_                      gensupport.URLParams
54696	ctx_                            context.Context
54697	header_                         http.Header
54698}
54699
54700// AddResourcePolicies: Adds existing resource policies to a disk. You
54701// can only add one policy which will be applied to this disk for
54702// scheduling snapshot creation.
54703//
54704// - disk: The disk name for this request.
54705// - project: Project ID for this request.
54706// - zone: The name of the zone for this request.
54707func (r *DisksService) AddResourcePolicies(project string, zone string, disk string, disksaddresourcepoliciesrequest *DisksAddResourcePoliciesRequest) *DisksAddResourcePoliciesCall {
54708	c := &DisksAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54709	c.project = project
54710	c.zone = zone
54711	c.disk = disk
54712	c.disksaddresourcepoliciesrequest = disksaddresourcepoliciesrequest
54713	return c
54714}
54715
54716// RequestId sets the optional parameter "requestId": An optional
54717// request ID to identify requests. Specify a unique request ID so that
54718// if you must retry your request, the server will know to ignore the
54719// request if it has already been completed.
54720//
54721// For example, consider a situation where you make an initial request
54722// and the request times out. If you make the request again with the
54723// same request ID, the server can check if original operation with the
54724// same request ID was received, and if so, will ignore the second
54725// request. This prevents clients from accidentally creating duplicate
54726// commitments.
54727//
54728// The request ID must be a valid UUID with the exception that zero UUID
54729// is not supported (00000000-0000-0000-0000-000000000000).
54730func (c *DisksAddResourcePoliciesCall) RequestId(requestId string) *DisksAddResourcePoliciesCall {
54731	c.urlParams_.Set("requestId", requestId)
54732	return c
54733}
54734
54735// Fields allows partial responses to be retrieved. See
54736// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54737// for more information.
54738func (c *DisksAddResourcePoliciesCall) Fields(s ...googleapi.Field) *DisksAddResourcePoliciesCall {
54739	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54740	return c
54741}
54742
54743// Context sets the context to be used in this call's Do method. Any
54744// pending HTTP request will be aborted if the provided context is
54745// canceled.
54746func (c *DisksAddResourcePoliciesCall) Context(ctx context.Context) *DisksAddResourcePoliciesCall {
54747	c.ctx_ = ctx
54748	return c
54749}
54750
54751// Header returns an http.Header that can be modified by the caller to
54752// add HTTP headers to the request.
54753func (c *DisksAddResourcePoliciesCall) Header() http.Header {
54754	if c.header_ == nil {
54755		c.header_ = make(http.Header)
54756	}
54757	return c.header_
54758}
54759
54760func (c *DisksAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
54761	reqHeaders := make(http.Header)
54762	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
54763	for k, v := range c.header_ {
54764		reqHeaders[k] = v
54765	}
54766	reqHeaders.Set("User-Agent", c.s.userAgent())
54767	var body io.Reader = nil
54768	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksaddresourcepoliciesrequest)
54769	if err != nil {
54770		return nil, err
54771	}
54772	reqHeaders.Set("Content-Type", "application/json")
54773	c.urlParams_.Set("alt", alt)
54774	c.urlParams_.Set("prettyPrint", "false")
54775	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}/addResourcePolicies")
54776	urls += "?" + c.urlParams_.Encode()
54777	req, err := http.NewRequest("POST", urls, body)
54778	if err != nil {
54779		return nil, err
54780	}
54781	req.Header = reqHeaders
54782	googleapi.Expand(req.URL, map[string]string{
54783		"project": c.project,
54784		"zone":    c.zone,
54785		"disk":    c.disk,
54786	})
54787	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54788}
54789
54790// Do executes the "compute.disks.addResourcePolicies" call.
54791// Exactly one of *Operation or error will be non-nil. Any non-2xx
54792// status code is an error. Response headers are in either
54793// *Operation.ServerResponse.Header or (if a response was returned at
54794// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54795// to check whether the returned error was because
54796// http.StatusNotModified was returned.
54797func (c *DisksAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54798	gensupport.SetOptions(c.urlParams_, opts...)
54799	res, err := c.doRequest("json")
54800	if res != nil && res.StatusCode == http.StatusNotModified {
54801		if res.Body != nil {
54802			res.Body.Close()
54803		}
54804		return nil, &googleapi.Error{
54805			Code:   res.StatusCode,
54806			Header: res.Header,
54807		}
54808	}
54809	if err != nil {
54810		return nil, err
54811	}
54812	defer googleapi.CloseBody(res)
54813	if err := googleapi.CheckResponse(res); err != nil {
54814		return nil, err
54815	}
54816	ret := &Operation{
54817		ServerResponse: googleapi.ServerResponse{
54818			Header:         res.Header,
54819			HTTPStatusCode: res.StatusCode,
54820		},
54821	}
54822	target := &ret
54823	if err := gensupport.DecodeResponse(target, res); err != nil {
54824		return nil, err
54825	}
54826	return ret, nil
54827	// {
54828	//   "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.",
54829	//   "httpMethod": "POST",
54830	//   "id": "compute.disks.addResourcePolicies",
54831	//   "parameterOrder": [
54832	//     "project",
54833	//     "zone",
54834	//     "disk"
54835	//   ],
54836	//   "parameters": {
54837	//     "disk": {
54838	//       "description": "The disk name for this request.",
54839	//       "location": "path",
54840	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
54841	//       "required": true,
54842	//       "type": "string"
54843	//     },
54844	//     "project": {
54845	//       "description": "Project ID for this request.",
54846	//       "location": "path",
54847	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54848	//       "required": true,
54849	//       "type": "string"
54850	//     },
54851	//     "requestId": {
54852	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
54853	//       "location": "query",
54854	//       "type": "string"
54855	//     },
54856	//     "zone": {
54857	//       "description": "The name of the zone for this request.",
54858	//       "location": "path",
54859	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
54860	//       "required": true,
54861	//       "type": "string"
54862	//     }
54863	//   },
54864	//   "path": "projects/{project}/zones/{zone}/disks/{disk}/addResourcePolicies",
54865	//   "request": {
54866	//     "$ref": "DisksAddResourcePoliciesRequest"
54867	//   },
54868	//   "response": {
54869	//     "$ref": "Operation"
54870	//   },
54871	//   "scopes": [
54872	//     "https://www.googleapis.com/auth/cloud-platform",
54873	//     "https://www.googleapis.com/auth/compute"
54874	//   ]
54875	// }
54876
54877}
54878
54879// method id "compute.disks.aggregatedList":
54880
54881type DisksAggregatedListCall struct {
54882	s            *Service
54883	project      string
54884	urlParams_   gensupport.URLParams
54885	ifNoneMatch_ string
54886	ctx_         context.Context
54887	header_      http.Header
54888}
54889
54890// AggregatedList: Retrieves an aggregated list of persistent disks.
54891//
54892// - project: Project ID for this request.
54893// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/aggregatedList
54894func (r *DisksService) AggregatedList(project string) *DisksAggregatedListCall {
54895	c := &DisksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54896	c.project = project
54897	return c
54898}
54899
54900// Filter sets the optional parameter "filter": A filter expression that
54901// filters resources listed in the response. The expression must specify
54902// the field name, a comparison operator, and the value that you want to
54903// use for filtering. The value must be a string, a number, or a
54904// boolean. The comparison operator must be either `=`, `!=`, `>`, or
54905// `<`.
54906//
54907// For example, if you are filtering Compute Engine instances, you can
54908// exclude instances named `example-instance` by specifying `name !=
54909// example-instance`.
54910//
54911// You can also filter nested fields. For example, you could specify
54912// `scheduling.automaticRestart = false` to include instances only if
54913// they are not scheduled for automatic restarts. You can use filtering
54914// on nested fields to filter based on resource labels.
54915//
54916// To filter on multiple expressions, provide each separate expression
54917// within parentheses. For example: ``` (scheduling.automaticRestart =
54918// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
54919// is an `AND` expression. However, you can include `AND` and `OR`
54920// expressions explicitly. For example: ``` (cpuPlatform = "Intel
54921// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
54922// (scheduling.automaticRestart = true) ```
54923func (c *DisksAggregatedListCall) Filter(filter string) *DisksAggregatedListCall {
54924	c.urlParams_.Set("filter", filter)
54925	return c
54926}
54927
54928// IncludeAllScopes sets the optional parameter "includeAllScopes":
54929// Indicates whether every visible scope for each scope type (zone,
54930// region, global) should be included in the response. For new resource
54931// types added after this field, the flag has no effect as new resource
54932// types will always include every visible scope for each scope type in
54933// response. For resource types which predate this field, if this flag
54934// is omitted or false, only scopes of the scope types where the
54935// resource type is expected to be found will be included.
54936func (c *DisksAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *DisksAggregatedListCall {
54937	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
54938	return c
54939}
54940
54941// MaxResults sets the optional parameter "maxResults": The maximum
54942// number of results per page that should be returned. If the number of
54943// available results is larger than `maxResults`, Compute Engine returns
54944// a `nextPageToken` that can be used to get the next page of results in
54945// subsequent list requests. Acceptable values are `0` to `500`,
54946// inclusive. (Default: `500`)
54947func (c *DisksAggregatedListCall) MaxResults(maxResults int64) *DisksAggregatedListCall {
54948	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
54949	return c
54950}
54951
54952// OrderBy sets the optional parameter "orderBy": Sorts list results by
54953// a certain order. By default, results are returned in alphanumerical
54954// order based on the resource name.
54955//
54956// You can also sort results in descending order based on the creation
54957// timestamp using `orderBy="creationTimestamp desc". This sorts
54958// results based on the `creationTimestamp` field in reverse
54959// chronological order (newest result first). Use this to sort resources
54960// like operations so that the newest operation is returned
54961// first.
54962//
54963// Currently, only sorting by `name` or `creationTimestamp desc` is
54964// supported.
54965func (c *DisksAggregatedListCall) OrderBy(orderBy string) *DisksAggregatedListCall {
54966	c.urlParams_.Set("orderBy", orderBy)
54967	return c
54968}
54969
54970// PageToken sets the optional parameter "pageToken": Specifies a page
54971// token to use. Set `pageToken` to the `nextPageToken` returned by a
54972// previous list request to get the next page of results.
54973func (c *DisksAggregatedListCall) PageToken(pageToken string) *DisksAggregatedListCall {
54974	c.urlParams_.Set("pageToken", pageToken)
54975	return c
54976}
54977
54978// ReturnPartialSuccess sets the optional parameter
54979// "returnPartialSuccess": Opt-in for partial success behavior which
54980// provides partial results in case of failure. The default value is
54981// false.
54982func (c *DisksAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *DisksAggregatedListCall {
54983	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
54984	return c
54985}
54986
54987// Fields allows partial responses to be retrieved. See
54988// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54989// for more information.
54990func (c *DisksAggregatedListCall) Fields(s ...googleapi.Field) *DisksAggregatedListCall {
54991	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54992	return c
54993}
54994
54995// IfNoneMatch sets the optional parameter which makes the operation
54996// fail if the object's ETag matches the given value. This is useful for
54997// getting updates only after the object has changed since the last
54998// request. Use googleapi.IsNotModified to check whether the response
54999// error from Do is the result of In-None-Match.
55000func (c *DisksAggregatedListCall) IfNoneMatch(entityTag string) *DisksAggregatedListCall {
55001	c.ifNoneMatch_ = entityTag
55002	return c
55003}
55004
55005// Context sets the context to be used in this call's Do method. Any
55006// pending HTTP request will be aborted if the provided context is
55007// canceled.
55008func (c *DisksAggregatedListCall) Context(ctx context.Context) *DisksAggregatedListCall {
55009	c.ctx_ = ctx
55010	return c
55011}
55012
55013// Header returns an http.Header that can be modified by the caller to
55014// add HTTP headers to the request.
55015func (c *DisksAggregatedListCall) Header() http.Header {
55016	if c.header_ == nil {
55017		c.header_ = make(http.Header)
55018	}
55019	return c.header_
55020}
55021
55022func (c *DisksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
55023	reqHeaders := make(http.Header)
55024	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
55025	for k, v := range c.header_ {
55026		reqHeaders[k] = v
55027	}
55028	reqHeaders.Set("User-Agent", c.s.userAgent())
55029	if c.ifNoneMatch_ != "" {
55030		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
55031	}
55032	var body io.Reader = nil
55033	c.urlParams_.Set("alt", alt)
55034	c.urlParams_.Set("prettyPrint", "false")
55035	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/disks")
55036	urls += "?" + c.urlParams_.Encode()
55037	req, err := http.NewRequest("GET", urls, body)
55038	if err != nil {
55039		return nil, err
55040	}
55041	req.Header = reqHeaders
55042	googleapi.Expand(req.URL, map[string]string{
55043		"project": c.project,
55044	})
55045	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55046}
55047
55048// Do executes the "compute.disks.aggregatedList" call.
55049// Exactly one of *DiskAggregatedList or error will be non-nil. Any
55050// non-2xx status code is an error. Response headers are in either
55051// *DiskAggregatedList.ServerResponse.Header or (if a response was
55052// returned at all) in error.(*googleapi.Error).Header. Use
55053// googleapi.IsNotModified to check whether the returned error was
55054// because http.StatusNotModified was returned.
55055func (c *DisksAggregatedListCall) Do(opts ...googleapi.CallOption) (*DiskAggregatedList, error) {
55056	gensupport.SetOptions(c.urlParams_, opts...)
55057	res, err := c.doRequest("json")
55058	if res != nil && res.StatusCode == http.StatusNotModified {
55059		if res.Body != nil {
55060			res.Body.Close()
55061		}
55062		return nil, &googleapi.Error{
55063			Code:   res.StatusCode,
55064			Header: res.Header,
55065		}
55066	}
55067	if err != nil {
55068		return nil, err
55069	}
55070	defer googleapi.CloseBody(res)
55071	if err := googleapi.CheckResponse(res); err != nil {
55072		return nil, err
55073	}
55074	ret := &DiskAggregatedList{
55075		ServerResponse: googleapi.ServerResponse{
55076			Header:         res.Header,
55077			HTTPStatusCode: res.StatusCode,
55078		},
55079	}
55080	target := &ret
55081	if err := gensupport.DecodeResponse(target, res); err != nil {
55082		return nil, err
55083	}
55084	return ret, nil
55085	// {
55086	//   "description": "Retrieves an aggregated list of persistent disks.",
55087	//   "httpMethod": "GET",
55088	//   "id": "compute.disks.aggregatedList",
55089	//   "parameterOrder": [
55090	//     "project"
55091	//   ],
55092	//   "parameters": {
55093	//     "filter": {
55094	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
55095	//       "location": "query",
55096	//       "type": "string"
55097	//     },
55098	//     "includeAllScopes": {
55099	//       "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.",
55100	//       "location": "query",
55101	//       "type": "boolean"
55102	//     },
55103	//     "maxResults": {
55104	//       "default": "500",
55105	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
55106	//       "format": "uint32",
55107	//       "location": "query",
55108	//       "minimum": "0",
55109	//       "type": "integer"
55110	//     },
55111	//     "orderBy": {
55112	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
55113	//       "location": "query",
55114	//       "type": "string"
55115	//     },
55116	//     "pageToken": {
55117	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
55118	//       "location": "query",
55119	//       "type": "string"
55120	//     },
55121	//     "project": {
55122	//       "description": "Project ID for this request.",
55123	//       "location": "path",
55124	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55125	//       "required": true,
55126	//       "type": "string"
55127	//     },
55128	//     "returnPartialSuccess": {
55129	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
55130	//       "location": "query",
55131	//       "type": "boolean"
55132	//     }
55133	//   },
55134	//   "path": "projects/{project}/aggregated/disks",
55135	//   "response": {
55136	//     "$ref": "DiskAggregatedList"
55137	//   },
55138	//   "scopes": [
55139	//     "https://www.googleapis.com/auth/cloud-platform",
55140	//     "https://www.googleapis.com/auth/compute",
55141	//     "https://www.googleapis.com/auth/compute.readonly"
55142	//   ]
55143	// }
55144
55145}
55146
55147// Pages invokes f for each page of results.
55148// A non-nil error returned from f will halt the iteration.
55149// The provided context supersedes any context provided to the Context method.
55150func (c *DisksAggregatedListCall) Pages(ctx context.Context, f func(*DiskAggregatedList) error) error {
55151	c.ctx_ = ctx
55152	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
55153	for {
55154		x, err := c.Do()
55155		if err != nil {
55156			return err
55157		}
55158		if err := f(x); err != nil {
55159			return err
55160		}
55161		if x.NextPageToken == "" {
55162			return nil
55163		}
55164		c.PageToken(x.NextPageToken)
55165	}
55166}
55167
55168// method id "compute.disks.createSnapshot":
55169
55170type DisksCreateSnapshotCall struct {
55171	s          *Service
55172	project    string
55173	zone       string
55174	disk       string
55175	snapshot   *Snapshot
55176	urlParams_ gensupport.URLParams
55177	ctx_       context.Context
55178	header_    http.Header
55179}
55180
55181// CreateSnapshot: Creates a snapshot of a specified persistent disk.
55182//
55183// - disk: Name of the persistent disk to snapshot.
55184// - project: Project ID for this request.
55185// - zone: The name of the zone for this request.
55186// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/createSnapshot
55187func (r *DisksService) CreateSnapshot(project string, zone string, disk string, snapshot *Snapshot) *DisksCreateSnapshotCall {
55188	c := &DisksCreateSnapshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55189	c.project = project
55190	c.zone = zone
55191	c.disk = disk
55192	c.snapshot = snapshot
55193	return c
55194}
55195
55196// GuestFlush sets the optional parameter "guestFlush": [Input Only]
55197// Whether to attempt an application consistent snapshot by informing
55198// the OS to prepare for the snapshot process. Currently only supported
55199// on Windows instances using the Volume Shadow Copy Service (VSS).
55200func (c *DisksCreateSnapshotCall) GuestFlush(guestFlush bool) *DisksCreateSnapshotCall {
55201	c.urlParams_.Set("guestFlush", fmt.Sprint(guestFlush))
55202	return c
55203}
55204
55205// RequestId sets the optional parameter "requestId": An optional
55206// request ID to identify requests. Specify a unique request ID so that
55207// if you must retry your request, the server will know to ignore the
55208// request if it has already been completed.
55209//
55210// For example, consider a situation where you make an initial request
55211// and the request times out. If you make the request again with the
55212// same request ID, the server can check if original operation with the
55213// same request ID was received, and if so, will ignore the second
55214// request. This prevents clients from accidentally creating duplicate
55215// commitments.
55216//
55217// The request ID must be a valid UUID with the exception that zero UUID
55218// is not supported (00000000-0000-0000-0000-000000000000).
55219func (c *DisksCreateSnapshotCall) RequestId(requestId string) *DisksCreateSnapshotCall {
55220	c.urlParams_.Set("requestId", requestId)
55221	return c
55222}
55223
55224// Fields allows partial responses to be retrieved. See
55225// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55226// for more information.
55227func (c *DisksCreateSnapshotCall) Fields(s ...googleapi.Field) *DisksCreateSnapshotCall {
55228	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55229	return c
55230}
55231
55232// Context sets the context to be used in this call's Do method. Any
55233// pending HTTP request will be aborted if the provided context is
55234// canceled.
55235func (c *DisksCreateSnapshotCall) Context(ctx context.Context) *DisksCreateSnapshotCall {
55236	c.ctx_ = ctx
55237	return c
55238}
55239
55240// Header returns an http.Header that can be modified by the caller to
55241// add HTTP headers to the request.
55242func (c *DisksCreateSnapshotCall) Header() http.Header {
55243	if c.header_ == nil {
55244		c.header_ = make(http.Header)
55245	}
55246	return c.header_
55247}
55248
55249func (c *DisksCreateSnapshotCall) doRequest(alt string) (*http.Response, error) {
55250	reqHeaders := make(http.Header)
55251	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
55252	for k, v := range c.header_ {
55253		reqHeaders[k] = v
55254	}
55255	reqHeaders.Set("User-Agent", c.s.userAgent())
55256	var body io.Reader = nil
55257	body, err := googleapi.WithoutDataWrapper.JSONReader(c.snapshot)
55258	if err != nil {
55259		return nil, err
55260	}
55261	reqHeaders.Set("Content-Type", "application/json")
55262	c.urlParams_.Set("alt", alt)
55263	c.urlParams_.Set("prettyPrint", "false")
55264	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}/createSnapshot")
55265	urls += "?" + c.urlParams_.Encode()
55266	req, err := http.NewRequest("POST", urls, body)
55267	if err != nil {
55268		return nil, err
55269	}
55270	req.Header = reqHeaders
55271	googleapi.Expand(req.URL, map[string]string{
55272		"project": c.project,
55273		"zone":    c.zone,
55274		"disk":    c.disk,
55275	})
55276	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55277}
55278
55279// Do executes the "compute.disks.createSnapshot" call.
55280// Exactly one of *Operation or error will be non-nil. Any non-2xx
55281// status code is an error. Response headers are in either
55282// *Operation.ServerResponse.Header or (if a response was returned at
55283// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55284// to check whether the returned error was because
55285// http.StatusNotModified was returned.
55286func (c *DisksCreateSnapshotCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55287	gensupport.SetOptions(c.urlParams_, opts...)
55288	res, err := c.doRequest("json")
55289	if res != nil && res.StatusCode == http.StatusNotModified {
55290		if res.Body != nil {
55291			res.Body.Close()
55292		}
55293		return nil, &googleapi.Error{
55294			Code:   res.StatusCode,
55295			Header: res.Header,
55296		}
55297	}
55298	if err != nil {
55299		return nil, err
55300	}
55301	defer googleapi.CloseBody(res)
55302	if err := googleapi.CheckResponse(res); err != nil {
55303		return nil, err
55304	}
55305	ret := &Operation{
55306		ServerResponse: googleapi.ServerResponse{
55307			Header:         res.Header,
55308			HTTPStatusCode: res.StatusCode,
55309		},
55310	}
55311	target := &ret
55312	if err := gensupport.DecodeResponse(target, res); err != nil {
55313		return nil, err
55314	}
55315	return ret, nil
55316	// {
55317	//   "description": "Creates a snapshot of a specified persistent disk.",
55318	//   "httpMethod": "POST",
55319	//   "id": "compute.disks.createSnapshot",
55320	//   "parameterOrder": [
55321	//     "project",
55322	//     "zone",
55323	//     "disk"
55324	//   ],
55325	//   "parameters": {
55326	//     "disk": {
55327	//       "description": "Name of the persistent disk to snapshot.",
55328	//       "location": "path",
55329	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55330	//       "required": true,
55331	//       "type": "string"
55332	//     },
55333	//     "guestFlush": {
55334	//       "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).",
55335	//       "location": "query",
55336	//       "type": "boolean"
55337	//     },
55338	//     "project": {
55339	//       "description": "Project ID for this request.",
55340	//       "location": "path",
55341	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55342	//       "required": true,
55343	//       "type": "string"
55344	//     },
55345	//     "requestId": {
55346	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
55347	//       "location": "query",
55348	//       "type": "string"
55349	//     },
55350	//     "zone": {
55351	//       "description": "The name of the zone for this request.",
55352	//       "location": "path",
55353	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
55354	//       "required": true,
55355	//       "type": "string"
55356	//     }
55357	//   },
55358	//   "path": "projects/{project}/zones/{zone}/disks/{disk}/createSnapshot",
55359	//   "request": {
55360	//     "$ref": "Snapshot"
55361	//   },
55362	//   "response": {
55363	//     "$ref": "Operation"
55364	//   },
55365	//   "scopes": [
55366	//     "https://www.googleapis.com/auth/cloud-platform",
55367	//     "https://www.googleapis.com/auth/compute"
55368	//   ]
55369	// }
55370
55371}
55372
55373// method id "compute.disks.delete":
55374
55375type DisksDeleteCall struct {
55376	s          *Service
55377	project    string
55378	zone       string
55379	disk       string
55380	urlParams_ gensupport.URLParams
55381	ctx_       context.Context
55382	header_    http.Header
55383}
55384
55385// Delete: Deletes the specified persistent disk. Deleting a disk
55386// removes its data permanently and is irreversible. However, deleting a
55387// disk does not delete any snapshots previously made from the disk. You
55388// must separately delete snapshots.
55389//
55390// - disk: Name of the persistent disk to delete.
55391// - project: Project ID for this request.
55392// - zone: The name of the zone for this request.
55393// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/delete
55394func (r *DisksService) Delete(project string, zone string, disk string) *DisksDeleteCall {
55395	c := &DisksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55396	c.project = project
55397	c.zone = zone
55398	c.disk = disk
55399	return c
55400}
55401
55402// RequestId sets the optional parameter "requestId": An optional
55403// request ID to identify requests. Specify a unique request ID so that
55404// if you must retry your request, the server will know to ignore the
55405// request if it has already been completed.
55406//
55407// For example, consider a situation where you make an initial request
55408// and the request times out. If you make the request again with the
55409// same request ID, the server can check if original operation with the
55410// same request ID was received, and if so, will ignore the second
55411// request. This prevents clients from accidentally creating duplicate
55412// commitments.
55413//
55414// The request ID must be a valid UUID with the exception that zero UUID
55415// is not supported (00000000-0000-0000-0000-000000000000).
55416func (c *DisksDeleteCall) RequestId(requestId string) *DisksDeleteCall {
55417	c.urlParams_.Set("requestId", requestId)
55418	return c
55419}
55420
55421// Fields allows partial responses to be retrieved. See
55422// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55423// for more information.
55424func (c *DisksDeleteCall) Fields(s ...googleapi.Field) *DisksDeleteCall {
55425	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55426	return c
55427}
55428
55429// Context sets the context to be used in this call's Do method. Any
55430// pending HTTP request will be aborted if the provided context is
55431// canceled.
55432func (c *DisksDeleteCall) Context(ctx context.Context) *DisksDeleteCall {
55433	c.ctx_ = ctx
55434	return c
55435}
55436
55437// Header returns an http.Header that can be modified by the caller to
55438// add HTTP headers to the request.
55439func (c *DisksDeleteCall) Header() http.Header {
55440	if c.header_ == nil {
55441		c.header_ = make(http.Header)
55442	}
55443	return c.header_
55444}
55445
55446func (c *DisksDeleteCall) doRequest(alt string) (*http.Response, error) {
55447	reqHeaders := make(http.Header)
55448	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
55449	for k, v := range c.header_ {
55450		reqHeaders[k] = v
55451	}
55452	reqHeaders.Set("User-Agent", c.s.userAgent())
55453	var body io.Reader = nil
55454	c.urlParams_.Set("alt", alt)
55455	c.urlParams_.Set("prettyPrint", "false")
55456	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}")
55457	urls += "?" + c.urlParams_.Encode()
55458	req, err := http.NewRequest("DELETE", urls, body)
55459	if err != nil {
55460		return nil, err
55461	}
55462	req.Header = reqHeaders
55463	googleapi.Expand(req.URL, map[string]string{
55464		"project": c.project,
55465		"zone":    c.zone,
55466		"disk":    c.disk,
55467	})
55468	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55469}
55470
55471// Do executes the "compute.disks.delete" call.
55472// Exactly one of *Operation or error will be non-nil. Any non-2xx
55473// status code is an error. Response headers are in either
55474// *Operation.ServerResponse.Header or (if a response was returned at
55475// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55476// to check whether the returned error was because
55477// http.StatusNotModified was returned.
55478func (c *DisksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55479	gensupport.SetOptions(c.urlParams_, opts...)
55480	res, err := c.doRequest("json")
55481	if res != nil && res.StatusCode == http.StatusNotModified {
55482		if res.Body != nil {
55483			res.Body.Close()
55484		}
55485		return nil, &googleapi.Error{
55486			Code:   res.StatusCode,
55487			Header: res.Header,
55488		}
55489	}
55490	if err != nil {
55491		return nil, err
55492	}
55493	defer googleapi.CloseBody(res)
55494	if err := googleapi.CheckResponse(res); err != nil {
55495		return nil, err
55496	}
55497	ret := &Operation{
55498		ServerResponse: googleapi.ServerResponse{
55499			Header:         res.Header,
55500			HTTPStatusCode: res.StatusCode,
55501		},
55502	}
55503	target := &ret
55504	if err := gensupport.DecodeResponse(target, res); err != nil {
55505		return nil, err
55506	}
55507	return ret, nil
55508	// {
55509	//   "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.",
55510	//   "httpMethod": "DELETE",
55511	//   "id": "compute.disks.delete",
55512	//   "parameterOrder": [
55513	//     "project",
55514	//     "zone",
55515	//     "disk"
55516	//   ],
55517	//   "parameters": {
55518	//     "disk": {
55519	//       "description": "Name of the persistent disk to delete.",
55520	//       "location": "path",
55521	//       "required": true,
55522	//       "type": "string"
55523	//     },
55524	//     "project": {
55525	//       "description": "Project ID for this request.",
55526	//       "location": "path",
55527	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55528	//       "required": true,
55529	//       "type": "string"
55530	//     },
55531	//     "requestId": {
55532	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
55533	//       "location": "query",
55534	//       "type": "string"
55535	//     },
55536	//     "zone": {
55537	//       "description": "The name of the zone for this request.",
55538	//       "location": "path",
55539	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
55540	//       "required": true,
55541	//       "type": "string"
55542	//     }
55543	//   },
55544	//   "path": "projects/{project}/zones/{zone}/disks/{disk}",
55545	//   "response": {
55546	//     "$ref": "Operation"
55547	//   },
55548	//   "scopes": [
55549	//     "https://www.googleapis.com/auth/cloud-platform",
55550	//     "https://www.googleapis.com/auth/compute"
55551	//   ]
55552	// }
55553
55554}
55555
55556// method id "compute.disks.get":
55557
55558type DisksGetCall struct {
55559	s            *Service
55560	project      string
55561	zone         string
55562	disk         string
55563	urlParams_   gensupport.URLParams
55564	ifNoneMatch_ string
55565	ctx_         context.Context
55566	header_      http.Header
55567}
55568
55569// Get: Returns a specified persistent disk. Gets a list of available
55570// persistent disks by making a list() request.
55571//
55572// - disk: Name of the persistent disk to return.
55573// - project: Project ID for this request.
55574// - zone: The name of the zone for this request.
55575// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/get
55576func (r *DisksService) Get(project string, zone string, disk string) *DisksGetCall {
55577	c := &DisksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55578	c.project = project
55579	c.zone = zone
55580	c.disk = disk
55581	return c
55582}
55583
55584// Fields allows partial responses to be retrieved. See
55585// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55586// for more information.
55587func (c *DisksGetCall) Fields(s ...googleapi.Field) *DisksGetCall {
55588	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55589	return c
55590}
55591
55592// IfNoneMatch sets the optional parameter which makes the operation
55593// fail if the object's ETag matches the given value. This is useful for
55594// getting updates only after the object has changed since the last
55595// request. Use googleapi.IsNotModified to check whether the response
55596// error from Do is the result of In-None-Match.
55597func (c *DisksGetCall) IfNoneMatch(entityTag string) *DisksGetCall {
55598	c.ifNoneMatch_ = entityTag
55599	return c
55600}
55601
55602// Context sets the context to be used in this call's Do method. Any
55603// pending HTTP request will be aborted if the provided context is
55604// canceled.
55605func (c *DisksGetCall) Context(ctx context.Context) *DisksGetCall {
55606	c.ctx_ = ctx
55607	return c
55608}
55609
55610// Header returns an http.Header that can be modified by the caller to
55611// add HTTP headers to the request.
55612func (c *DisksGetCall) Header() http.Header {
55613	if c.header_ == nil {
55614		c.header_ = make(http.Header)
55615	}
55616	return c.header_
55617}
55618
55619func (c *DisksGetCall) doRequest(alt string) (*http.Response, error) {
55620	reqHeaders := make(http.Header)
55621	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
55622	for k, v := range c.header_ {
55623		reqHeaders[k] = v
55624	}
55625	reqHeaders.Set("User-Agent", c.s.userAgent())
55626	if c.ifNoneMatch_ != "" {
55627		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
55628	}
55629	var body io.Reader = nil
55630	c.urlParams_.Set("alt", alt)
55631	c.urlParams_.Set("prettyPrint", "false")
55632	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}")
55633	urls += "?" + c.urlParams_.Encode()
55634	req, err := http.NewRequest("GET", urls, body)
55635	if err != nil {
55636		return nil, err
55637	}
55638	req.Header = reqHeaders
55639	googleapi.Expand(req.URL, map[string]string{
55640		"project": c.project,
55641		"zone":    c.zone,
55642		"disk":    c.disk,
55643	})
55644	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55645}
55646
55647// Do executes the "compute.disks.get" call.
55648// Exactly one of *Disk or error will be non-nil. Any non-2xx status
55649// code is an error. Response headers are in either
55650// *Disk.ServerResponse.Header or (if a response was returned at all) in
55651// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
55652// whether the returned error was because http.StatusNotModified was
55653// returned.
55654func (c *DisksGetCall) Do(opts ...googleapi.CallOption) (*Disk, error) {
55655	gensupport.SetOptions(c.urlParams_, opts...)
55656	res, err := c.doRequest("json")
55657	if res != nil && res.StatusCode == http.StatusNotModified {
55658		if res.Body != nil {
55659			res.Body.Close()
55660		}
55661		return nil, &googleapi.Error{
55662			Code:   res.StatusCode,
55663			Header: res.Header,
55664		}
55665	}
55666	if err != nil {
55667		return nil, err
55668	}
55669	defer googleapi.CloseBody(res)
55670	if err := googleapi.CheckResponse(res); err != nil {
55671		return nil, err
55672	}
55673	ret := &Disk{
55674		ServerResponse: googleapi.ServerResponse{
55675			Header:         res.Header,
55676			HTTPStatusCode: res.StatusCode,
55677		},
55678	}
55679	target := &ret
55680	if err := gensupport.DecodeResponse(target, res); err != nil {
55681		return nil, err
55682	}
55683	return ret, nil
55684	// {
55685	//   "description": "Returns a specified persistent disk. Gets a list of available persistent disks by making a list() request.",
55686	//   "httpMethod": "GET",
55687	//   "id": "compute.disks.get",
55688	//   "parameterOrder": [
55689	//     "project",
55690	//     "zone",
55691	//     "disk"
55692	//   ],
55693	//   "parameters": {
55694	//     "disk": {
55695	//       "description": "Name of the persistent disk to return.",
55696	//       "location": "path",
55697	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55698	//       "required": true,
55699	//       "type": "string"
55700	//     },
55701	//     "project": {
55702	//       "description": "Project ID for this request.",
55703	//       "location": "path",
55704	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55705	//       "required": true,
55706	//       "type": "string"
55707	//     },
55708	//     "zone": {
55709	//       "description": "The name of the zone for this request.",
55710	//       "location": "path",
55711	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
55712	//       "required": true,
55713	//       "type": "string"
55714	//     }
55715	//   },
55716	//   "path": "projects/{project}/zones/{zone}/disks/{disk}",
55717	//   "response": {
55718	//     "$ref": "Disk"
55719	//   },
55720	//   "scopes": [
55721	//     "https://www.googleapis.com/auth/cloud-platform",
55722	//     "https://www.googleapis.com/auth/compute",
55723	//     "https://www.googleapis.com/auth/compute.readonly"
55724	//   ]
55725	// }
55726
55727}
55728
55729// method id "compute.disks.getIamPolicy":
55730
55731type DisksGetIamPolicyCall struct {
55732	s            *Service
55733	project      string
55734	zone         string
55735	resource     string
55736	urlParams_   gensupport.URLParams
55737	ifNoneMatch_ string
55738	ctx_         context.Context
55739	header_      http.Header
55740}
55741
55742// GetIamPolicy: Gets the access control policy for a resource. May be
55743// empty if no such policy or resource exists.
55744//
55745// - project: Project ID for this request.
55746// - resource: Name or id of the resource for this request.
55747// - zone: The name of the zone for this request.
55748func (r *DisksService) GetIamPolicy(project string, zone string, resource string) *DisksGetIamPolicyCall {
55749	c := &DisksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55750	c.project = project
55751	c.zone = zone
55752	c.resource = resource
55753	return c
55754}
55755
55756// OptionsRequestedPolicyVersion sets the optional parameter
55757// "optionsRequestedPolicyVersion": Requested IAM Policy version.
55758func (c *DisksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *DisksGetIamPolicyCall {
55759	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
55760	return c
55761}
55762
55763// Fields allows partial responses to be retrieved. See
55764// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55765// for more information.
55766func (c *DisksGetIamPolicyCall) Fields(s ...googleapi.Field) *DisksGetIamPolicyCall {
55767	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55768	return c
55769}
55770
55771// IfNoneMatch sets the optional parameter which makes the operation
55772// fail if the object's ETag matches the given value. This is useful for
55773// getting updates only after the object has changed since the last
55774// request. Use googleapi.IsNotModified to check whether the response
55775// error from Do is the result of In-None-Match.
55776func (c *DisksGetIamPolicyCall) IfNoneMatch(entityTag string) *DisksGetIamPolicyCall {
55777	c.ifNoneMatch_ = entityTag
55778	return c
55779}
55780
55781// Context sets the context to be used in this call's Do method. Any
55782// pending HTTP request will be aborted if the provided context is
55783// canceled.
55784func (c *DisksGetIamPolicyCall) Context(ctx context.Context) *DisksGetIamPolicyCall {
55785	c.ctx_ = ctx
55786	return c
55787}
55788
55789// Header returns an http.Header that can be modified by the caller to
55790// add HTTP headers to the request.
55791func (c *DisksGetIamPolicyCall) Header() http.Header {
55792	if c.header_ == nil {
55793		c.header_ = make(http.Header)
55794	}
55795	return c.header_
55796}
55797
55798func (c *DisksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
55799	reqHeaders := make(http.Header)
55800	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
55801	for k, v := range c.header_ {
55802		reqHeaders[k] = v
55803	}
55804	reqHeaders.Set("User-Agent", c.s.userAgent())
55805	if c.ifNoneMatch_ != "" {
55806		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
55807	}
55808	var body io.Reader = nil
55809	c.urlParams_.Set("alt", alt)
55810	c.urlParams_.Set("prettyPrint", "false")
55811	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{resource}/getIamPolicy")
55812	urls += "?" + c.urlParams_.Encode()
55813	req, err := http.NewRequest("GET", urls, body)
55814	if err != nil {
55815		return nil, err
55816	}
55817	req.Header = reqHeaders
55818	googleapi.Expand(req.URL, map[string]string{
55819		"project":  c.project,
55820		"zone":     c.zone,
55821		"resource": c.resource,
55822	})
55823	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55824}
55825
55826// Do executes the "compute.disks.getIamPolicy" call.
55827// Exactly one of *Policy or error will be non-nil. Any non-2xx status
55828// code is an error. Response headers are in either
55829// *Policy.ServerResponse.Header or (if a response was returned at all)
55830// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
55831// check whether the returned error was because http.StatusNotModified
55832// was returned.
55833func (c *DisksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
55834	gensupport.SetOptions(c.urlParams_, opts...)
55835	res, err := c.doRequest("json")
55836	if res != nil && res.StatusCode == http.StatusNotModified {
55837		if res.Body != nil {
55838			res.Body.Close()
55839		}
55840		return nil, &googleapi.Error{
55841			Code:   res.StatusCode,
55842			Header: res.Header,
55843		}
55844	}
55845	if err != nil {
55846		return nil, err
55847	}
55848	defer googleapi.CloseBody(res)
55849	if err := googleapi.CheckResponse(res); err != nil {
55850		return nil, err
55851	}
55852	ret := &Policy{
55853		ServerResponse: googleapi.ServerResponse{
55854			Header:         res.Header,
55855			HTTPStatusCode: res.StatusCode,
55856		},
55857	}
55858	target := &ret
55859	if err := gensupport.DecodeResponse(target, res); err != nil {
55860		return nil, err
55861	}
55862	return ret, nil
55863	// {
55864	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
55865	//   "httpMethod": "GET",
55866	//   "id": "compute.disks.getIamPolicy",
55867	//   "parameterOrder": [
55868	//     "project",
55869	//     "zone",
55870	//     "resource"
55871	//   ],
55872	//   "parameters": {
55873	//     "optionsRequestedPolicyVersion": {
55874	//       "description": "Requested IAM Policy version.",
55875	//       "format": "int32",
55876	//       "location": "query",
55877	//       "type": "integer"
55878	//     },
55879	//     "project": {
55880	//       "description": "Project ID for this request.",
55881	//       "location": "path",
55882	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55883	//       "required": true,
55884	//       "type": "string"
55885	//     },
55886	//     "resource": {
55887	//       "description": "Name or id of the resource for this request.",
55888	//       "location": "path",
55889	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55890	//       "required": true,
55891	//       "type": "string"
55892	//     },
55893	//     "zone": {
55894	//       "description": "The name of the zone for this request.",
55895	//       "location": "path",
55896	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
55897	//       "required": true,
55898	//       "type": "string"
55899	//     }
55900	//   },
55901	//   "path": "projects/{project}/zones/{zone}/disks/{resource}/getIamPolicy",
55902	//   "response": {
55903	//     "$ref": "Policy"
55904	//   },
55905	//   "scopes": [
55906	//     "https://www.googleapis.com/auth/cloud-platform",
55907	//     "https://www.googleapis.com/auth/compute",
55908	//     "https://www.googleapis.com/auth/compute.readonly"
55909	//   ]
55910	// }
55911
55912}
55913
55914// method id "compute.disks.insert":
55915
55916type DisksInsertCall struct {
55917	s          *Service
55918	project    string
55919	zone       string
55920	disk       *Disk
55921	urlParams_ gensupport.URLParams
55922	ctx_       context.Context
55923	header_    http.Header
55924}
55925
55926// Insert: Creates a persistent disk in the specified project using the
55927// data in the request. You can create a disk from a source
55928// (sourceImage, sourceSnapshot, or sourceDisk) or create an empty 500
55929// GB data disk by omitting all properties. You can also create a disk
55930// that is larger than the default size by specifying the sizeGb
55931// property.
55932//
55933// - project: Project ID for this request.
55934// - zone: The name of the zone for this request.
55935// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/insert
55936func (r *DisksService) Insert(project string, zone string, disk *Disk) *DisksInsertCall {
55937	c := &DisksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55938	c.project = project
55939	c.zone = zone
55940	c.disk = disk
55941	return c
55942}
55943
55944// RequestId sets the optional parameter "requestId": An optional
55945// request ID to identify requests. Specify a unique request ID so that
55946// if you must retry your request, the server will know to ignore the
55947// request if it has already been completed.
55948//
55949// For example, consider a situation where you make an initial request
55950// and the request times out. If you make the request again with the
55951// same request ID, the server can check if original operation with the
55952// same request ID was received, and if so, will ignore the second
55953// request. This prevents clients from accidentally creating duplicate
55954// commitments.
55955//
55956// The request ID must be a valid UUID with the exception that zero UUID
55957// is not supported (00000000-0000-0000-0000-000000000000).
55958func (c *DisksInsertCall) RequestId(requestId string) *DisksInsertCall {
55959	c.urlParams_.Set("requestId", requestId)
55960	return c
55961}
55962
55963// SourceImage sets the optional parameter "sourceImage": Source image
55964// to restore onto a disk. This field is optional.
55965func (c *DisksInsertCall) SourceImage(sourceImage string) *DisksInsertCall {
55966	c.urlParams_.Set("sourceImage", sourceImage)
55967	return c
55968}
55969
55970// Fields allows partial responses to be retrieved. See
55971// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55972// for more information.
55973func (c *DisksInsertCall) Fields(s ...googleapi.Field) *DisksInsertCall {
55974	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55975	return c
55976}
55977
55978// Context sets the context to be used in this call's Do method. Any
55979// pending HTTP request will be aborted if the provided context is
55980// canceled.
55981func (c *DisksInsertCall) Context(ctx context.Context) *DisksInsertCall {
55982	c.ctx_ = ctx
55983	return c
55984}
55985
55986// Header returns an http.Header that can be modified by the caller to
55987// add HTTP headers to the request.
55988func (c *DisksInsertCall) Header() http.Header {
55989	if c.header_ == nil {
55990		c.header_ = make(http.Header)
55991	}
55992	return c.header_
55993}
55994
55995func (c *DisksInsertCall) doRequest(alt string) (*http.Response, error) {
55996	reqHeaders := make(http.Header)
55997	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
55998	for k, v := range c.header_ {
55999		reqHeaders[k] = v
56000	}
56001	reqHeaders.Set("User-Agent", c.s.userAgent())
56002	var body io.Reader = nil
56003	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disk)
56004	if err != nil {
56005		return nil, err
56006	}
56007	reqHeaders.Set("Content-Type", "application/json")
56008	c.urlParams_.Set("alt", alt)
56009	c.urlParams_.Set("prettyPrint", "false")
56010	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks")
56011	urls += "?" + c.urlParams_.Encode()
56012	req, err := http.NewRequest("POST", urls, body)
56013	if err != nil {
56014		return nil, err
56015	}
56016	req.Header = reqHeaders
56017	googleapi.Expand(req.URL, map[string]string{
56018		"project": c.project,
56019		"zone":    c.zone,
56020	})
56021	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56022}
56023
56024// Do executes the "compute.disks.insert" call.
56025// Exactly one of *Operation or error will be non-nil. Any non-2xx
56026// status code is an error. Response headers are in either
56027// *Operation.ServerResponse.Header or (if a response was returned at
56028// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56029// to check whether the returned error was because
56030// http.StatusNotModified was returned.
56031func (c *DisksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56032	gensupport.SetOptions(c.urlParams_, opts...)
56033	res, err := c.doRequest("json")
56034	if res != nil && res.StatusCode == http.StatusNotModified {
56035		if res.Body != nil {
56036			res.Body.Close()
56037		}
56038		return nil, &googleapi.Error{
56039			Code:   res.StatusCode,
56040			Header: res.Header,
56041		}
56042	}
56043	if err != nil {
56044		return nil, err
56045	}
56046	defer googleapi.CloseBody(res)
56047	if err := googleapi.CheckResponse(res); err != nil {
56048		return nil, err
56049	}
56050	ret := &Operation{
56051		ServerResponse: googleapi.ServerResponse{
56052			Header:         res.Header,
56053			HTTPStatusCode: res.StatusCode,
56054		},
56055	}
56056	target := &ret
56057	if err := gensupport.DecodeResponse(target, res); err != nil {
56058		return nil, err
56059	}
56060	return ret, nil
56061	// {
56062	//   "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.",
56063	//   "httpMethod": "POST",
56064	//   "id": "compute.disks.insert",
56065	//   "parameterOrder": [
56066	//     "project",
56067	//     "zone"
56068	//   ],
56069	//   "parameters": {
56070	//     "project": {
56071	//       "description": "Project ID for this request.",
56072	//       "location": "path",
56073	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56074	//       "required": true,
56075	//       "type": "string"
56076	//     },
56077	//     "requestId": {
56078	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
56079	//       "location": "query",
56080	//       "type": "string"
56081	//     },
56082	//     "sourceImage": {
56083	//       "description": "Source image to restore onto a disk. This field is optional.",
56084	//       "location": "query",
56085	//       "type": "string"
56086	//     },
56087	//     "zone": {
56088	//       "description": "The name of the zone for this request.",
56089	//       "location": "path",
56090	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
56091	//       "required": true,
56092	//       "type": "string"
56093	//     }
56094	//   },
56095	//   "path": "projects/{project}/zones/{zone}/disks",
56096	//   "request": {
56097	//     "$ref": "Disk"
56098	//   },
56099	//   "response": {
56100	//     "$ref": "Operation"
56101	//   },
56102	//   "scopes": [
56103	//     "https://www.googleapis.com/auth/cloud-platform",
56104	//     "https://www.googleapis.com/auth/compute"
56105	//   ]
56106	// }
56107
56108}
56109
56110// method id "compute.disks.list":
56111
56112type DisksListCall struct {
56113	s            *Service
56114	project      string
56115	zone         string
56116	urlParams_   gensupport.URLParams
56117	ifNoneMatch_ string
56118	ctx_         context.Context
56119	header_      http.Header
56120}
56121
56122// List: Retrieves a list of persistent disks contained within the
56123// specified zone.
56124//
56125// - project: Project ID for this request.
56126// - zone: The name of the zone for this request.
56127// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/list
56128func (r *DisksService) List(project string, zone string) *DisksListCall {
56129	c := &DisksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56130	c.project = project
56131	c.zone = zone
56132	return c
56133}
56134
56135// Filter sets the optional parameter "filter": A filter expression that
56136// filters resources listed in the response. The expression must specify
56137// the field name, a comparison operator, and the value that you want to
56138// use for filtering. The value must be a string, a number, or a
56139// boolean. The comparison operator must be either `=`, `!=`, `>`, or
56140// `<`.
56141//
56142// For example, if you are filtering Compute Engine instances, you can
56143// exclude instances named `example-instance` by specifying `name !=
56144// example-instance`.
56145//
56146// You can also filter nested fields. For example, you could specify
56147// `scheduling.automaticRestart = false` to include instances only if
56148// they are not scheduled for automatic restarts. You can use filtering
56149// on nested fields to filter based on resource labels.
56150//
56151// To filter on multiple expressions, provide each separate expression
56152// within parentheses. For example: ``` (scheduling.automaticRestart =
56153// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
56154// is an `AND` expression. However, you can include `AND` and `OR`
56155// expressions explicitly. For example: ``` (cpuPlatform = "Intel
56156// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
56157// (scheduling.automaticRestart = true) ```
56158func (c *DisksListCall) Filter(filter string) *DisksListCall {
56159	c.urlParams_.Set("filter", filter)
56160	return c
56161}
56162
56163// MaxResults sets the optional parameter "maxResults": The maximum
56164// number of results per page that should be returned. If the number of
56165// available results is larger than `maxResults`, Compute Engine returns
56166// a `nextPageToken` that can be used to get the next page of results in
56167// subsequent list requests. Acceptable values are `0` to `500`,
56168// inclusive. (Default: `500`)
56169func (c *DisksListCall) MaxResults(maxResults int64) *DisksListCall {
56170	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
56171	return c
56172}
56173
56174// OrderBy sets the optional parameter "orderBy": Sorts list results by
56175// a certain order. By default, results are returned in alphanumerical
56176// order based on the resource name.
56177//
56178// You can also sort results in descending order based on the creation
56179// timestamp using `orderBy="creationTimestamp desc". This sorts
56180// results based on the `creationTimestamp` field in reverse
56181// chronological order (newest result first). Use this to sort resources
56182// like operations so that the newest operation is returned
56183// first.
56184//
56185// Currently, only sorting by `name` or `creationTimestamp desc` is
56186// supported.
56187func (c *DisksListCall) OrderBy(orderBy string) *DisksListCall {
56188	c.urlParams_.Set("orderBy", orderBy)
56189	return c
56190}
56191
56192// PageToken sets the optional parameter "pageToken": Specifies a page
56193// token to use. Set `pageToken` to the `nextPageToken` returned by a
56194// previous list request to get the next page of results.
56195func (c *DisksListCall) PageToken(pageToken string) *DisksListCall {
56196	c.urlParams_.Set("pageToken", pageToken)
56197	return c
56198}
56199
56200// ReturnPartialSuccess sets the optional parameter
56201// "returnPartialSuccess": Opt-in for partial success behavior which
56202// provides partial results in case of failure. The default value is
56203// false.
56204func (c *DisksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *DisksListCall {
56205	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
56206	return c
56207}
56208
56209// Fields allows partial responses to be retrieved. See
56210// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56211// for more information.
56212func (c *DisksListCall) Fields(s ...googleapi.Field) *DisksListCall {
56213	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56214	return c
56215}
56216
56217// IfNoneMatch sets the optional parameter which makes the operation
56218// fail if the object's ETag matches the given value. This is useful for
56219// getting updates only after the object has changed since the last
56220// request. Use googleapi.IsNotModified to check whether the response
56221// error from Do is the result of In-None-Match.
56222func (c *DisksListCall) IfNoneMatch(entityTag string) *DisksListCall {
56223	c.ifNoneMatch_ = entityTag
56224	return c
56225}
56226
56227// Context sets the context to be used in this call's Do method. Any
56228// pending HTTP request will be aborted if the provided context is
56229// canceled.
56230func (c *DisksListCall) Context(ctx context.Context) *DisksListCall {
56231	c.ctx_ = ctx
56232	return c
56233}
56234
56235// Header returns an http.Header that can be modified by the caller to
56236// add HTTP headers to the request.
56237func (c *DisksListCall) Header() http.Header {
56238	if c.header_ == nil {
56239		c.header_ = make(http.Header)
56240	}
56241	return c.header_
56242}
56243
56244func (c *DisksListCall) doRequest(alt string) (*http.Response, error) {
56245	reqHeaders := make(http.Header)
56246	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
56247	for k, v := range c.header_ {
56248		reqHeaders[k] = v
56249	}
56250	reqHeaders.Set("User-Agent", c.s.userAgent())
56251	if c.ifNoneMatch_ != "" {
56252		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
56253	}
56254	var body io.Reader = nil
56255	c.urlParams_.Set("alt", alt)
56256	c.urlParams_.Set("prettyPrint", "false")
56257	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks")
56258	urls += "?" + c.urlParams_.Encode()
56259	req, err := http.NewRequest("GET", urls, body)
56260	if err != nil {
56261		return nil, err
56262	}
56263	req.Header = reqHeaders
56264	googleapi.Expand(req.URL, map[string]string{
56265		"project": c.project,
56266		"zone":    c.zone,
56267	})
56268	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56269}
56270
56271// Do executes the "compute.disks.list" call.
56272// Exactly one of *DiskList or error will be non-nil. Any non-2xx status
56273// code is an error. Response headers are in either
56274// *DiskList.ServerResponse.Header or (if a response was returned at
56275// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56276// to check whether the returned error was because
56277// http.StatusNotModified was returned.
56278func (c *DisksListCall) Do(opts ...googleapi.CallOption) (*DiskList, error) {
56279	gensupport.SetOptions(c.urlParams_, opts...)
56280	res, err := c.doRequest("json")
56281	if res != nil && res.StatusCode == http.StatusNotModified {
56282		if res.Body != nil {
56283			res.Body.Close()
56284		}
56285		return nil, &googleapi.Error{
56286			Code:   res.StatusCode,
56287			Header: res.Header,
56288		}
56289	}
56290	if err != nil {
56291		return nil, err
56292	}
56293	defer googleapi.CloseBody(res)
56294	if err := googleapi.CheckResponse(res); err != nil {
56295		return nil, err
56296	}
56297	ret := &DiskList{
56298		ServerResponse: googleapi.ServerResponse{
56299			Header:         res.Header,
56300			HTTPStatusCode: res.StatusCode,
56301		},
56302	}
56303	target := &ret
56304	if err := gensupport.DecodeResponse(target, res); err != nil {
56305		return nil, err
56306	}
56307	return ret, nil
56308	// {
56309	//   "description": "Retrieves a list of persistent disks contained within the specified zone.",
56310	//   "httpMethod": "GET",
56311	//   "id": "compute.disks.list",
56312	//   "parameterOrder": [
56313	//     "project",
56314	//     "zone"
56315	//   ],
56316	//   "parameters": {
56317	//     "filter": {
56318	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
56319	//       "location": "query",
56320	//       "type": "string"
56321	//     },
56322	//     "maxResults": {
56323	//       "default": "500",
56324	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
56325	//       "format": "uint32",
56326	//       "location": "query",
56327	//       "minimum": "0",
56328	//       "type": "integer"
56329	//     },
56330	//     "orderBy": {
56331	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
56332	//       "location": "query",
56333	//       "type": "string"
56334	//     },
56335	//     "pageToken": {
56336	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
56337	//       "location": "query",
56338	//       "type": "string"
56339	//     },
56340	//     "project": {
56341	//       "description": "Project ID for this request.",
56342	//       "location": "path",
56343	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56344	//       "required": true,
56345	//       "type": "string"
56346	//     },
56347	//     "returnPartialSuccess": {
56348	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
56349	//       "location": "query",
56350	//       "type": "boolean"
56351	//     },
56352	//     "zone": {
56353	//       "description": "The name of the zone for this request.",
56354	//       "location": "path",
56355	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
56356	//       "required": true,
56357	//       "type": "string"
56358	//     }
56359	//   },
56360	//   "path": "projects/{project}/zones/{zone}/disks",
56361	//   "response": {
56362	//     "$ref": "DiskList"
56363	//   },
56364	//   "scopes": [
56365	//     "https://www.googleapis.com/auth/cloud-platform",
56366	//     "https://www.googleapis.com/auth/compute",
56367	//     "https://www.googleapis.com/auth/compute.readonly"
56368	//   ]
56369	// }
56370
56371}
56372
56373// Pages invokes f for each page of results.
56374// A non-nil error returned from f will halt the iteration.
56375// The provided context supersedes any context provided to the Context method.
56376func (c *DisksListCall) Pages(ctx context.Context, f func(*DiskList) error) error {
56377	c.ctx_ = ctx
56378	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
56379	for {
56380		x, err := c.Do()
56381		if err != nil {
56382			return err
56383		}
56384		if err := f(x); err != nil {
56385			return err
56386		}
56387		if x.NextPageToken == "" {
56388			return nil
56389		}
56390		c.PageToken(x.NextPageToken)
56391	}
56392}
56393
56394// method id "compute.disks.removeResourcePolicies":
56395
56396type DisksRemoveResourcePoliciesCall struct {
56397	s                                  *Service
56398	project                            string
56399	zone                               string
56400	disk                               string
56401	disksremoveresourcepoliciesrequest *DisksRemoveResourcePoliciesRequest
56402	urlParams_                         gensupport.URLParams
56403	ctx_                               context.Context
56404	header_                            http.Header
56405}
56406
56407// RemoveResourcePolicies: Removes resource policies from a disk.
56408//
56409// - disk: The disk name for this request.
56410// - project: Project ID for this request.
56411// - zone: The name of the zone for this request.
56412func (r *DisksService) RemoveResourcePolicies(project string, zone string, disk string, disksremoveresourcepoliciesrequest *DisksRemoveResourcePoliciesRequest) *DisksRemoveResourcePoliciesCall {
56413	c := &DisksRemoveResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56414	c.project = project
56415	c.zone = zone
56416	c.disk = disk
56417	c.disksremoveresourcepoliciesrequest = disksremoveresourcepoliciesrequest
56418	return c
56419}
56420
56421// RequestId sets the optional parameter "requestId": An optional
56422// request ID to identify requests. Specify a unique request ID so that
56423// if you must retry your request, the server will know to ignore the
56424// request if it has already been completed.
56425//
56426// For example, consider a situation where you make an initial request
56427// and the request times out. If you make the request again with the
56428// same request ID, the server can check if original operation with the
56429// same request ID was received, and if so, will ignore the second
56430// request. This prevents clients from accidentally creating duplicate
56431// commitments.
56432//
56433// The request ID must be a valid UUID with the exception that zero UUID
56434// is not supported (00000000-0000-0000-0000-000000000000).
56435func (c *DisksRemoveResourcePoliciesCall) RequestId(requestId string) *DisksRemoveResourcePoliciesCall {
56436	c.urlParams_.Set("requestId", requestId)
56437	return c
56438}
56439
56440// Fields allows partial responses to be retrieved. See
56441// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56442// for more information.
56443func (c *DisksRemoveResourcePoliciesCall) Fields(s ...googleapi.Field) *DisksRemoveResourcePoliciesCall {
56444	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56445	return c
56446}
56447
56448// Context sets the context to be used in this call's Do method. Any
56449// pending HTTP request will be aborted if the provided context is
56450// canceled.
56451func (c *DisksRemoveResourcePoliciesCall) Context(ctx context.Context) *DisksRemoveResourcePoliciesCall {
56452	c.ctx_ = ctx
56453	return c
56454}
56455
56456// Header returns an http.Header that can be modified by the caller to
56457// add HTTP headers to the request.
56458func (c *DisksRemoveResourcePoliciesCall) Header() http.Header {
56459	if c.header_ == nil {
56460		c.header_ = make(http.Header)
56461	}
56462	return c.header_
56463}
56464
56465func (c *DisksRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
56466	reqHeaders := make(http.Header)
56467	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
56468	for k, v := range c.header_ {
56469		reqHeaders[k] = v
56470	}
56471	reqHeaders.Set("User-Agent", c.s.userAgent())
56472	var body io.Reader = nil
56473	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksremoveresourcepoliciesrequest)
56474	if err != nil {
56475		return nil, err
56476	}
56477	reqHeaders.Set("Content-Type", "application/json")
56478	c.urlParams_.Set("alt", alt)
56479	c.urlParams_.Set("prettyPrint", "false")
56480	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}/removeResourcePolicies")
56481	urls += "?" + c.urlParams_.Encode()
56482	req, err := http.NewRequest("POST", urls, body)
56483	if err != nil {
56484		return nil, err
56485	}
56486	req.Header = reqHeaders
56487	googleapi.Expand(req.URL, map[string]string{
56488		"project": c.project,
56489		"zone":    c.zone,
56490		"disk":    c.disk,
56491	})
56492	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56493}
56494
56495// Do executes the "compute.disks.removeResourcePolicies" call.
56496// Exactly one of *Operation or error will be non-nil. Any non-2xx
56497// status code is an error. Response headers are in either
56498// *Operation.ServerResponse.Header or (if a response was returned at
56499// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56500// to check whether the returned error was because
56501// http.StatusNotModified was returned.
56502func (c *DisksRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56503	gensupport.SetOptions(c.urlParams_, opts...)
56504	res, err := c.doRequest("json")
56505	if res != nil && res.StatusCode == http.StatusNotModified {
56506		if res.Body != nil {
56507			res.Body.Close()
56508		}
56509		return nil, &googleapi.Error{
56510			Code:   res.StatusCode,
56511			Header: res.Header,
56512		}
56513	}
56514	if err != nil {
56515		return nil, err
56516	}
56517	defer googleapi.CloseBody(res)
56518	if err := googleapi.CheckResponse(res); err != nil {
56519		return nil, err
56520	}
56521	ret := &Operation{
56522		ServerResponse: googleapi.ServerResponse{
56523			Header:         res.Header,
56524			HTTPStatusCode: res.StatusCode,
56525		},
56526	}
56527	target := &ret
56528	if err := gensupport.DecodeResponse(target, res); err != nil {
56529		return nil, err
56530	}
56531	return ret, nil
56532	// {
56533	//   "description": "Removes resource policies from a disk.",
56534	//   "httpMethod": "POST",
56535	//   "id": "compute.disks.removeResourcePolicies",
56536	//   "parameterOrder": [
56537	//     "project",
56538	//     "zone",
56539	//     "disk"
56540	//   ],
56541	//   "parameters": {
56542	//     "disk": {
56543	//       "description": "The disk name for this request.",
56544	//       "location": "path",
56545	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
56546	//       "required": true,
56547	//       "type": "string"
56548	//     },
56549	//     "project": {
56550	//       "description": "Project ID for this request.",
56551	//       "location": "path",
56552	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56553	//       "required": true,
56554	//       "type": "string"
56555	//     },
56556	//     "requestId": {
56557	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
56558	//       "location": "query",
56559	//       "type": "string"
56560	//     },
56561	//     "zone": {
56562	//       "description": "The name of the zone for this request.",
56563	//       "location": "path",
56564	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
56565	//       "required": true,
56566	//       "type": "string"
56567	//     }
56568	//   },
56569	//   "path": "projects/{project}/zones/{zone}/disks/{disk}/removeResourcePolicies",
56570	//   "request": {
56571	//     "$ref": "DisksRemoveResourcePoliciesRequest"
56572	//   },
56573	//   "response": {
56574	//     "$ref": "Operation"
56575	//   },
56576	//   "scopes": [
56577	//     "https://www.googleapis.com/auth/cloud-platform",
56578	//     "https://www.googleapis.com/auth/compute"
56579	//   ]
56580	// }
56581
56582}
56583
56584// method id "compute.disks.resize":
56585
56586type DisksResizeCall struct {
56587	s                  *Service
56588	project            string
56589	zone               string
56590	disk               string
56591	disksresizerequest *DisksResizeRequest
56592	urlParams_         gensupport.URLParams
56593	ctx_               context.Context
56594	header_            http.Header
56595}
56596
56597// Resize: Resizes the specified persistent disk. You can only increase
56598// the size of the disk.
56599//
56600// - disk: The name of the persistent disk.
56601// - project: Project ID for this request.
56602// - zone: The name of the zone for this request.
56603func (r *DisksService) Resize(project string, zone string, disk string, disksresizerequest *DisksResizeRequest) *DisksResizeCall {
56604	c := &DisksResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56605	c.project = project
56606	c.zone = zone
56607	c.disk = disk
56608	c.disksresizerequest = disksresizerequest
56609	return c
56610}
56611
56612// RequestId sets the optional parameter "requestId": An optional
56613// request ID to identify requests. Specify a unique request ID so that
56614// if you must retry your request, the server will know to ignore the
56615// request if it has already been completed.
56616//
56617// For example, consider a situation where you make an initial request
56618// and the request times out. If you make the request again with the
56619// same request ID, the server can check if original operation with the
56620// same request ID was received, and if so, will ignore the second
56621// request. This prevents clients from accidentally creating duplicate
56622// commitments.
56623//
56624// The request ID must be a valid UUID with the exception that zero UUID
56625// is not supported (00000000-0000-0000-0000-000000000000).
56626func (c *DisksResizeCall) RequestId(requestId string) *DisksResizeCall {
56627	c.urlParams_.Set("requestId", requestId)
56628	return c
56629}
56630
56631// Fields allows partial responses to be retrieved. See
56632// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56633// for more information.
56634func (c *DisksResizeCall) Fields(s ...googleapi.Field) *DisksResizeCall {
56635	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56636	return c
56637}
56638
56639// Context sets the context to be used in this call's Do method. Any
56640// pending HTTP request will be aborted if the provided context is
56641// canceled.
56642func (c *DisksResizeCall) Context(ctx context.Context) *DisksResizeCall {
56643	c.ctx_ = ctx
56644	return c
56645}
56646
56647// Header returns an http.Header that can be modified by the caller to
56648// add HTTP headers to the request.
56649func (c *DisksResizeCall) Header() http.Header {
56650	if c.header_ == nil {
56651		c.header_ = make(http.Header)
56652	}
56653	return c.header_
56654}
56655
56656func (c *DisksResizeCall) doRequest(alt string) (*http.Response, error) {
56657	reqHeaders := make(http.Header)
56658	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
56659	for k, v := range c.header_ {
56660		reqHeaders[k] = v
56661	}
56662	reqHeaders.Set("User-Agent", c.s.userAgent())
56663	var body io.Reader = nil
56664	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksresizerequest)
56665	if err != nil {
56666		return nil, err
56667	}
56668	reqHeaders.Set("Content-Type", "application/json")
56669	c.urlParams_.Set("alt", alt)
56670	c.urlParams_.Set("prettyPrint", "false")
56671	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{disk}/resize")
56672	urls += "?" + c.urlParams_.Encode()
56673	req, err := http.NewRequest("POST", urls, body)
56674	if err != nil {
56675		return nil, err
56676	}
56677	req.Header = reqHeaders
56678	googleapi.Expand(req.URL, map[string]string{
56679		"project": c.project,
56680		"zone":    c.zone,
56681		"disk":    c.disk,
56682	})
56683	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56684}
56685
56686// Do executes the "compute.disks.resize" call.
56687// Exactly one of *Operation or error will be non-nil. Any non-2xx
56688// status code is an error. Response headers are in either
56689// *Operation.ServerResponse.Header or (if a response was returned at
56690// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56691// to check whether the returned error was because
56692// http.StatusNotModified was returned.
56693func (c *DisksResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56694	gensupport.SetOptions(c.urlParams_, opts...)
56695	res, err := c.doRequest("json")
56696	if res != nil && res.StatusCode == http.StatusNotModified {
56697		if res.Body != nil {
56698			res.Body.Close()
56699		}
56700		return nil, &googleapi.Error{
56701			Code:   res.StatusCode,
56702			Header: res.Header,
56703		}
56704	}
56705	if err != nil {
56706		return nil, err
56707	}
56708	defer googleapi.CloseBody(res)
56709	if err := googleapi.CheckResponse(res); err != nil {
56710		return nil, err
56711	}
56712	ret := &Operation{
56713		ServerResponse: googleapi.ServerResponse{
56714			Header:         res.Header,
56715			HTTPStatusCode: res.StatusCode,
56716		},
56717	}
56718	target := &ret
56719	if err := gensupport.DecodeResponse(target, res); err != nil {
56720		return nil, err
56721	}
56722	return ret, nil
56723	// {
56724	//   "description": "Resizes the specified persistent disk. You can only increase the size of the disk.",
56725	//   "httpMethod": "POST",
56726	//   "id": "compute.disks.resize",
56727	//   "parameterOrder": [
56728	//     "project",
56729	//     "zone",
56730	//     "disk"
56731	//   ],
56732	//   "parameters": {
56733	//     "disk": {
56734	//       "description": "The name of the persistent disk.",
56735	//       "location": "path",
56736	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
56737	//       "required": true,
56738	//       "type": "string"
56739	//     },
56740	//     "project": {
56741	//       "description": "Project ID for this request.",
56742	//       "location": "path",
56743	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56744	//       "required": true,
56745	//       "type": "string"
56746	//     },
56747	//     "requestId": {
56748	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
56749	//       "location": "query",
56750	//       "type": "string"
56751	//     },
56752	//     "zone": {
56753	//       "description": "The name of the zone for this request.",
56754	//       "location": "path",
56755	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
56756	//       "required": true,
56757	//       "type": "string"
56758	//     }
56759	//   },
56760	//   "path": "projects/{project}/zones/{zone}/disks/{disk}/resize",
56761	//   "request": {
56762	//     "$ref": "DisksResizeRequest"
56763	//   },
56764	//   "response": {
56765	//     "$ref": "Operation"
56766	//   },
56767	//   "scopes": [
56768	//     "https://www.googleapis.com/auth/cloud-platform",
56769	//     "https://www.googleapis.com/auth/compute"
56770	//   ]
56771	// }
56772
56773}
56774
56775// method id "compute.disks.setIamPolicy":
56776
56777type DisksSetIamPolicyCall struct {
56778	s                    *Service
56779	project              string
56780	zone                 string
56781	resource             string
56782	zonesetpolicyrequest *ZoneSetPolicyRequest
56783	urlParams_           gensupport.URLParams
56784	ctx_                 context.Context
56785	header_              http.Header
56786}
56787
56788// SetIamPolicy: Sets the access control policy on the specified
56789// resource. Replaces any existing policy.
56790//
56791// - project: Project ID for this request.
56792// - resource: Name or id of the resource for this request.
56793// - zone: The name of the zone for this request.
56794func (r *DisksService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *DisksSetIamPolicyCall {
56795	c := &DisksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56796	c.project = project
56797	c.zone = zone
56798	c.resource = resource
56799	c.zonesetpolicyrequest = zonesetpolicyrequest
56800	return c
56801}
56802
56803// Fields allows partial responses to be retrieved. See
56804// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56805// for more information.
56806func (c *DisksSetIamPolicyCall) Fields(s ...googleapi.Field) *DisksSetIamPolicyCall {
56807	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56808	return c
56809}
56810
56811// Context sets the context to be used in this call's Do method. Any
56812// pending HTTP request will be aborted if the provided context is
56813// canceled.
56814func (c *DisksSetIamPolicyCall) Context(ctx context.Context) *DisksSetIamPolicyCall {
56815	c.ctx_ = ctx
56816	return c
56817}
56818
56819// Header returns an http.Header that can be modified by the caller to
56820// add HTTP headers to the request.
56821func (c *DisksSetIamPolicyCall) Header() http.Header {
56822	if c.header_ == nil {
56823		c.header_ = make(http.Header)
56824	}
56825	return c.header_
56826}
56827
56828func (c *DisksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
56829	reqHeaders := make(http.Header)
56830	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
56831	for k, v := range c.header_ {
56832		reqHeaders[k] = v
56833	}
56834	reqHeaders.Set("User-Agent", c.s.userAgent())
56835	var body io.Reader = nil
56836	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
56837	if err != nil {
56838		return nil, err
56839	}
56840	reqHeaders.Set("Content-Type", "application/json")
56841	c.urlParams_.Set("alt", alt)
56842	c.urlParams_.Set("prettyPrint", "false")
56843	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{resource}/setIamPolicy")
56844	urls += "?" + c.urlParams_.Encode()
56845	req, err := http.NewRequest("POST", urls, body)
56846	if err != nil {
56847		return nil, err
56848	}
56849	req.Header = reqHeaders
56850	googleapi.Expand(req.URL, map[string]string{
56851		"project":  c.project,
56852		"zone":     c.zone,
56853		"resource": c.resource,
56854	})
56855	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56856}
56857
56858// Do executes the "compute.disks.setIamPolicy" call.
56859// Exactly one of *Policy or error will be non-nil. Any non-2xx status
56860// code is an error. Response headers are in either
56861// *Policy.ServerResponse.Header or (if a response was returned at all)
56862// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
56863// check whether the returned error was because http.StatusNotModified
56864// was returned.
56865func (c *DisksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
56866	gensupport.SetOptions(c.urlParams_, opts...)
56867	res, err := c.doRequest("json")
56868	if res != nil && res.StatusCode == http.StatusNotModified {
56869		if res.Body != nil {
56870			res.Body.Close()
56871		}
56872		return nil, &googleapi.Error{
56873			Code:   res.StatusCode,
56874			Header: res.Header,
56875		}
56876	}
56877	if err != nil {
56878		return nil, err
56879	}
56880	defer googleapi.CloseBody(res)
56881	if err := googleapi.CheckResponse(res); err != nil {
56882		return nil, err
56883	}
56884	ret := &Policy{
56885		ServerResponse: googleapi.ServerResponse{
56886			Header:         res.Header,
56887			HTTPStatusCode: res.StatusCode,
56888		},
56889	}
56890	target := &ret
56891	if err := gensupport.DecodeResponse(target, res); err != nil {
56892		return nil, err
56893	}
56894	return ret, nil
56895	// {
56896	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
56897	//   "httpMethod": "POST",
56898	//   "id": "compute.disks.setIamPolicy",
56899	//   "parameterOrder": [
56900	//     "project",
56901	//     "zone",
56902	//     "resource"
56903	//   ],
56904	//   "parameters": {
56905	//     "project": {
56906	//       "description": "Project ID for this request.",
56907	//       "location": "path",
56908	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56909	//       "required": true,
56910	//       "type": "string"
56911	//     },
56912	//     "resource": {
56913	//       "description": "Name or id of the resource for this request.",
56914	//       "location": "path",
56915	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
56916	//       "required": true,
56917	//       "type": "string"
56918	//     },
56919	//     "zone": {
56920	//       "description": "The name of the zone for this request.",
56921	//       "location": "path",
56922	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
56923	//       "required": true,
56924	//       "type": "string"
56925	//     }
56926	//   },
56927	//   "path": "projects/{project}/zones/{zone}/disks/{resource}/setIamPolicy",
56928	//   "request": {
56929	//     "$ref": "ZoneSetPolicyRequest"
56930	//   },
56931	//   "response": {
56932	//     "$ref": "Policy"
56933	//   },
56934	//   "scopes": [
56935	//     "https://www.googleapis.com/auth/cloud-platform",
56936	//     "https://www.googleapis.com/auth/compute"
56937	//   ]
56938	// }
56939
56940}
56941
56942// method id "compute.disks.setLabels":
56943
56944type DisksSetLabelsCall struct {
56945	s                    *Service
56946	project              string
56947	zone                 string
56948	resource             string
56949	zonesetlabelsrequest *ZoneSetLabelsRequest
56950	urlParams_           gensupport.URLParams
56951	ctx_                 context.Context
56952	header_              http.Header
56953}
56954
56955// SetLabels: Sets the labels on a disk. To learn more about labels,
56956// read the Labeling Resources documentation.
56957//
56958// - project: Project ID for this request.
56959// - resource: Name or id of the resource for this request.
56960// - zone: The name of the zone for this request.
56961func (r *DisksService) SetLabels(project string, zone string, resource string, zonesetlabelsrequest *ZoneSetLabelsRequest) *DisksSetLabelsCall {
56962	c := &DisksSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56963	c.project = project
56964	c.zone = zone
56965	c.resource = resource
56966	c.zonesetlabelsrequest = zonesetlabelsrequest
56967	return c
56968}
56969
56970// RequestId sets the optional parameter "requestId": An optional
56971// request ID to identify requests. Specify a unique request ID so that
56972// if you must retry your request, the server will know to ignore the
56973// request if it has already been completed.
56974//
56975// For example, consider a situation where you make an initial request
56976// and the request times out. If you make the request again with the
56977// same request ID, the server can check if original operation with the
56978// same request ID was received, and if so, will ignore the second
56979// request. This prevents clients from accidentally creating duplicate
56980// commitments.
56981//
56982// The request ID must be a valid UUID with the exception that zero UUID
56983// is not supported (00000000-0000-0000-0000-000000000000).
56984func (c *DisksSetLabelsCall) RequestId(requestId string) *DisksSetLabelsCall {
56985	c.urlParams_.Set("requestId", requestId)
56986	return c
56987}
56988
56989// Fields allows partial responses to be retrieved. See
56990// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56991// for more information.
56992func (c *DisksSetLabelsCall) Fields(s ...googleapi.Field) *DisksSetLabelsCall {
56993	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56994	return c
56995}
56996
56997// Context sets the context to be used in this call's Do method. Any
56998// pending HTTP request will be aborted if the provided context is
56999// canceled.
57000func (c *DisksSetLabelsCall) Context(ctx context.Context) *DisksSetLabelsCall {
57001	c.ctx_ = ctx
57002	return c
57003}
57004
57005// Header returns an http.Header that can be modified by the caller to
57006// add HTTP headers to the request.
57007func (c *DisksSetLabelsCall) Header() http.Header {
57008	if c.header_ == nil {
57009		c.header_ = make(http.Header)
57010	}
57011	return c.header_
57012}
57013
57014func (c *DisksSetLabelsCall) doRequest(alt string) (*http.Response, error) {
57015	reqHeaders := make(http.Header)
57016	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
57017	for k, v := range c.header_ {
57018		reqHeaders[k] = v
57019	}
57020	reqHeaders.Set("User-Agent", c.s.userAgent())
57021	var body io.Reader = nil
57022	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetlabelsrequest)
57023	if err != nil {
57024		return nil, err
57025	}
57026	reqHeaders.Set("Content-Type", "application/json")
57027	c.urlParams_.Set("alt", alt)
57028	c.urlParams_.Set("prettyPrint", "false")
57029	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{resource}/setLabels")
57030	urls += "?" + c.urlParams_.Encode()
57031	req, err := http.NewRequest("POST", urls, body)
57032	if err != nil {
57033		return nil, err
57034	}
57035	req.Header = reqHeaders
57036	googleapi.Expand(req.URL, map[string]string{
57037		"project":  c.project,
57038		"zone":     c.zone,
57039		"resource": c.resource,
57040	})
57041	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57042}
57043
57044// Do executes the "compute.disks.setLabels" call.
57045// Exactly one of *Operation or error will be non-nil. Any non-2xx
57046// status code is an error. Response headers are in either
57047// *Operation.ServerResponse.Header or (if a response was returned at
57048// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57049// to check whether the returned error was because
57050// http.StatusNotModified was returned.
57051func (c *DisksSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57052	gensupport.SetOptions(c.urlParams_, opts...)
57053	res, err := c.doRequest("json")
57054	if res != nil && res.StatusCode == http.StatusNotModified {
57055		if res.Body != nil {
57056			res.Body.Close()
57057		}
57058		return nil, &googleapi.Error{
57059			Code:   res.StatusCode,
57060			Header: res.Header,
57061		}
57062	}
57063	if err != nil {
57064		return nil, err
57065	}
57066	defer googleapi.CloseBody(res)
57067	if err := googleapi.CheckResponse(res); err != nil {
57068		return nil, err
57069	}
57070	ret := &Operation{
57071		ServerResponse: googleapi.ServerResponse{
57072			Header:         res.Header,
57073			HTTPStatusCode: res.StatusCode,
57074		},
57075	}
57076	target := &ret
57077	if err := gensupport.DecodeResponse(target, res); err != nil {
57078		return nil, err
57079	}
57080	return ret, nil
57081	// {
57082	//   "description": "Sets the labels on a disk. To learn more about labels, read the Labeling Resources documentation.",
57083	//   "httpMethod": "POST",
57084	//   "id": "compute.disks.setLabels",
57085	//   "parameterOrder": [
57086	//     "project",
57087	//     "zone",
57088	//     "resource"
57089	//   ],
57090	//   "parameters": {
57091	//     "project": {
57092	//       "description": "Project ID for this request.",
57093	//       "location": "path",
57094	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57095	//       "required": true,
57096	//       "type": "string"
57097	//     },
57098	//     "requestId": {
57099	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
57100	//       "location": "query",
57101	//       "type": "string"
57102	//     },
57103	//     "resource": {
57104	//       "description": "Name or id of the resource for this request.",
57105	//       "location": "path",
57106	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
57107	//       "required": true,
57108	//       "type": "string"
57109	//     },
57110	//     "zone": {
57111	//       "description": "The name of the zone for this request.",
57112	//       "location": "path",
57113	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
57114	//       "required": true,
57115	//       "type": "string"
57116	//     }
57117	//   },
57118	//   "path": "projects/{project}/zones/{zone}/disks/{resource}/setLabels",
57119	//   "request": {
57120	//     "$ref": "ZoneSetLabelsRequest"
57121	//   },
57122	//   "response": {
57123	//     "$ref": "Operation"
57124	//   },
57125	//   "scopes": [
57126	//     "https://www.googleapis.com/auth/cloud-platform",
57127	//     "https://www.googleapis.com/auth/compute"
57128	//   ]
57129	// }
57130
57131}
57132
57133// method id "compute.disks.testIamPermissions":
57134
57135type DisksTestIamPermissionsCall struct {
57136	s                      *Service
57137	project                string
57138	zone                   string
57139	resource               string
57140	testpermissionsrequest *TestPermissionsRequest
57141	urlParams_             gensupport.URLParams
57142	ctx_                   context.Context
57143	header_                http.Header
57144}
57145
57146// TestIamPermissions: Returns permissions that a caller has on the
57147// specified resource.
57148//
57149// - project: Project ID for this request.
57150// - resource: Name or id of the resource for this request.
57151// - zone: The name of the zone for this request.
57152func (r *DisksService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *DisksTestIamPermissionsCall {
57153	c := &DisksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57154	c.project = project
57155	c.zone = zone
57156	c.resource = resource
57157	c.testpermissionsrequest = testpermissionsrequest
57158	return c
57159}
57160
57161// Fields allows partial responses to be retrieved. See
57162// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57163// for more information.
57164func (c *DisksTestIamPermissionsCall) Fields(s ...googleapi.Field) *DisksTestIamPermissionsCall {
57165	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57166	return c
57167}
57168
57169// Context sets the context to be used in this call's Do method. Any
57170// pending HTTP request will be aborted if the provided context is
57171// canceled.
57172func (c *DisksTestIamPermissionsCall) Context(ctx context.Context) *DisksTestIamPermissionsCall {
57173	c.ctx_ = ctx
57174	return c
57175}
57176
57177// Header returns an http.Header that can be modified by the caller to
57178// add HTTP headers to the request.
57179func (c *DisksTestIamPermissionsCall) Header() http.Header {
57180	if c.header_ == nil {
57181		c.header_ = make(http.Header)
57182	}
57183	return c.header_
57184}
57185
57186func (c *DisksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
57187	reqHeaders := make(http.Header)
57188	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
57189	for k, v := range c.header_ {
57190		reqHeaders[k] = v
57191	}
57192	reqHeaders.Set("User-Agent", c.s.userAgent())
57193	var body io.Reader = nil
57194	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
57195	if err != nil {
57196		return nil, err
57197	}
57198	reqHeaders.Set("Content-Type", "application/json")
57199	c.urlParams_.Set("alt", alt)
57200	c.urlParams_.Set("prettyPrint", "false")
57201	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/disks/{resource}/testIamPermissions")
57202	urls += "?" + c.urlParams_.Encode()
57203	req, err := http.NewRequest("POST", urls, body)
57204	if err != nil {
57205		return nil, err
57206	}
57207	req.Header = reqHeaders
57208	googleapi.Expand(req.URL, map[string]string{
57209		"project":  c.project,
57210		"zone":     c.zone,
57211		"resource": c.resource,
57212	})
57213	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57214}
57215
57216// Do executes the "compute.disks.testIamPermissions" call.
57217// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
57218// non-2xx status code is an error. Response headers are in either
57219// *TestPermissionsResponse.ServerResponse.Header or (if a response was
57220// returned at all) in error.(*googleapi.Error).Header. Use
57221// googleapi.IsNotModified to check whether the returned error was
57222// because http.StatusNotModified was returned.
57223func (c *DisksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
57224	gensupport.SetOptions(c.urlParams_, opts...)
57225	res, err := c.doRequest("json")
57226	if res != nil && res.StatusCode == http.StatusNotModified {
57227		if res.Body != nil {
57228			res.Body.Close()
57229		}
57230		return nil, &googleapi.Error{
57231			Code:   res.StatusCode,
57232			Header: res.Header,
57233		}
57234	}
57235	if err != nil {
57236		return nil, err
57237	}
57238	defer googleapi.CloseBody(res)
57239	if err := googleapi.CheckResponse(res); err != nil {
57240		return nil, err
57241	}
57242	ret := &TestPermissionsResponse{
57243		ServerResponse: googleapi.ServerResponse{
57244			Header:         res.Header,
57245			HTTPStatusCode: res.StatusCode,
57246		},
57247	}
57248	target := &ret
57249	if err := gensupport.DecodeResponse(target, res); err != nil {
57250		return nil, err
57251	}
57252	return ret, nil
57253	// {
57254	//   "description": "Returns permissions that a caller has on the specified resource.",
57255	//   "httpMethod": "POST",
57256	//   "id": "compute.disks.testIamPermissions",
57257	//   "parameterOrder": [
57258	//     "project",
57259	//     "zone",
57260	//     "resource"
57261	//   ],
57262	//   "parameters": {
57263	//     "project": {
57264	//       "description": "Project ID for this request.",
57265	//       "location": "path",
57266	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57267	//       "required": true,
57268	//       "type": "string"
57269	//     },
57270	//     "resource": {
57271	//       "description": "Name or id of the resource for this request.",
57272	//       "location": "path",
57273	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
57274	//       "required": true,
57275	//       "type": "string"
57276	//     },
57277	//     "zone": {
57278	//       "description": "The name of the zone for this request.",
57279	//       "location": "path",
57280	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
57281	//       "required": true,
57282	//       "type": "string"
57283	//     }
57284	//   },
57285	//   "path": "projects/{project}/zones/{zone}/disks/{resource}/testIamPermissions",
57286	//   "request": {
57287	//     "$ref": "TestPermissionsRequest"
57288	//   },
57289	//   "response": {
57290	//     "$ref": "TestPermissionsResponse"
57291	//   },
57292	//   "scopes": [
57293	//     "https://www.googleapis.com/auth/cloud-platform",
57294	//     "https://www.googleapis.com/auth/compute",
57295	//     "https://www.googleapis.com/auth/compute.readonly"
57296	//   ]
57297	// }
57298
57299}
57300
57301// method id "compute.externalVpnGateways.delete":
57302
57303type ExternalVpnGatewaysDeleteCall struct {
57304	s                  *Service
57305	project            string
57306	externalVpnGateway string
57307	urlParams_         gensupport.URLParams
57308	ctx_               context.Context
57309	header_            http.Header
57310}
57311
57312// Delete: Deletes the specified externalVpnGateway.
57313//
57314// - externalVpnGateway: Name of the externalVpnGateways to delete.
57315// - project: Project ID for this request.
57316func (r *ExternalVpnGatewaysService) Delete(project string, externalVpnGateway string) *ExternalVpnGatewaysDeleteCall {
57317	c := &ExternalVpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57318	c.project = project
57319	c.externalVpnGateway = externalVpnGateway
57320	return c
57321}
57322
57323// RequestId sets the optional parameter "requestId": An optional
57324// request ID to identify requests. Specify a unique request ID so that
57325// if you must retry your request, the server will know to ignore the
57326// request if it has already been completed.
57327//
57328// For example, consider a situation where you make an initial request
57329// and the request times out. If you make the request again with the
57330// same request ID, the server can check if original operation with the
57331// same request ID was received, and if so, will ignore the second
57332// request. This prevents clients from accidentally creating duplicate
57333// commitments.
57334//
57335// The request ID must be a valid UUID with the exception that zero UUID
57336// is not supported (00000000-0000-0000-0000-000000000000).
57337func (c *ExternalVpnGatewaysDeleteCall) RequestId(requestId string) *ExternalVpnGatewaysDeleteCall {
57338	c.urlParams_.Set("requestId", requestId)
57339	return c
57340}
57341
57342// Fields allows partial responses to be retrieved. See
57343// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57344// for more information.
57345func (c *ExternalVpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysDeleteCall {
57346	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57347	return c
57348}
57349
57350// Context sets the context to be used in this call's Do method. Any
57351// pending HTTP request will be aborted if the provided context is
57352// canceled.
57353func (c *ExternalVpnGatewaysDeleteCall) Context(ctx context.Context) *ExternalVpnGatewaysDeleteCall {
57354	c.ctx_ = ctx
57355	return c
57356}
57357
57358// Header returns an http.Header that can be modified by the caller to
57359// add HTTP headers to the request.
57360func (c *ExternalVpnGatewaysDeleteCall) Header() http.Header {
57361	if c.header_ == nil {
57362		c.header_ = make(http.Header)
57363	}
57364	return c.header_
57365}
57366
57367func (c *ExternalVpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) {
57368	reqHeaders := make(http.Header)
57369	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
57370	for k, v := range c.header_ {
57371		reqHeaders[k] = v
57372	}
57373	reqHeaders.Set("User-Agent", c.s.userAgent())
57374	var body io.Reader = nil
57375	c.urlParams_.Set("alt", alt)
57376	c.urlParams_.Set("prettyPrint", "false")
57377	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways/{externalVpnGateway}")
57378	urls += "?" + c.urlParams_.Encode()
57379	req, err := http.NewRequest("DELETE", urls, body)
57380	if err != nil {
57381		return nil, err
57382	}
57383	req.Header = reqHeaders
57384	googleapi.Expand(req.URL, map[string]string{
57385		"project":            c.project,
57386		"externalVpnGateway": c.externalVpnGateway,
57387	})
57388	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57389}
57390
57391// Do executes the "compute.externalVpnGateways.delete" call.
57392// Exactly one of *Operation or error will be non-nil. Any non-2xx
57393// status code is an error. Response headers are in either
57394// *Operation.ServerResponse.Header or (if a response was returned at
57395// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57396// to check whether the returned error was because
57397// http.StatusNotModified was returned.
57398func (c *ExternalVpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57399	gensupport.SetOptions(c.urlParams_, opts...)
57400	res, err := c.doRequest("json")
57401	if res != nil && res.StatusCode == http.StatusNotModified {
57402		if res.Body != nil {
57403			res.Body.Close()
57404		}
57405		return nil, &googleapi.Error{
57406			Code:   res.StatusCode,
57407			Header: res.Header,
57408		}
57409	}
57410	if err != nil {
57411		return nil, err
57412	}
57413	defer googleapi.CloseBody(res)
57414	if err := googleapi.CheckResponse(res); err != nil {
57415		return nil, err
57416	}
57417	ret := &Operation{
57418		ServerResponse: googleapi.ServerResponse{
57419			Header:         res.Header,
57420			HTTPStatusCode: res.StatusCode,
57421		},
57422	}
57423	target := &ret
57424	if err := gensupport.DecodeResponse(target, res); err != nil {
57425		return nil, err
57426	}
57427	return ret, nil
57428	// {
57429	//   "description": "Deletes the specified externalVpnGateway.",
57430	//   "httpMethod": "DELETE",
57431	//   "id": "compute.externalVpnGateways.delete",
57432	//   "parameterOrder": [
57433	//     "project",
57434	//     "externalVpnGateway"
57435	//   ],
57436	//   "parameters": {
57437	//     "externalVpnGateway": {
57438	//       "description": "Name of the externalVpnGateways to delete.",
57439	//       "location": "path",
57440	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
57441	//       "required": true,
57442	//       "type": "string"
57443	//     },
57444	//     "project": {
57445	//       "description": "Project ID for this request.",
57446	//       "location": "path",
57447	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57448	//       "required": true,
57449	//       "type": "string"
57450	//     },
57451	//     "requestId": {
57452	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
57453	//       "location": "query",
57454	//       "type": "string"
57455	//     }
57456	//   },
57457	//   "path": "projects/{project}/global/externalVpnGateways/{externalVpnGateway}",
57458	//   "response": {
57459	//     "$ref": "Operation"
57460	//   },
57461	//   "scopes": [
57462	//     "https://www.googleapis.com/auth/cloud-platform",
57463	//     "https://www.googleapis.com/auth/compute"
57464	//   ]
57465	// }
57466
57467}
57468
57469// method id "compute.externalVpnGateways.get":
57470
57471type ExternalVpnGatewaysGetCall struct {
57472	s                  *Service
57473	project            string
57474	externalVpnGateway string
57475	urlParams_         gensupport.URLParams
57476	ifNoneMatch_       string
57477	ctx_               context.Context
57478	header_            http.Header
57479}
57480
57481// Get: Returns the specified externalVpnGateway. Get a list of
57482// available externalVpnGateways by making a list() request.
57483//
57484// - externalVpnGateway: Name of the externalVpnGateway to return.
57485// - project: Project ID for this request.
57486func (r *ExternalVpnGatewaysService) Get(project string, externalVpnGateway string) *ExternalVpnGatewaysGetCall {
57487	c := &ExternalVpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57488	c.project = project
57489	c.externalVpnGateway = externalVpnGateway
57490	return c
57491}
57492
57493// Fields allows partial responses to be retrieved. See
57494// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57495// for more information.
57496func (c *ExternalVpnGatewaysGetCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysGetCall {
57497	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57498	return c
57499}
57500
57501// IfNoneMatch sets the optional parameter which makes the operation
57502// fail if the object's ETag matches the given value. This is useful for
57503// getting updates only after the object has changed since the last
57504// request. Use googleapi.IsNotModified to check whether the response
57505// error from Do is the result of In-None-Match.
57506func (c *ExternalVpnGatewaysGetCall) IfNoneMatch(entityTag string) *ExternalVpnGatewaysGetCall {
57507	c.ifNoneMatch_ = entityTag
57508	return c
57509}
57510
57511// Context sets the context to be used in this call's Do method. Any
57512// pending HTTP request will be aborted if the provided context is
57513// canceled.
57514func (c *ExternalVpnGatewaysGetCall) Context(ctx context.Context) *ExternalVpnGatewaysGetCall {
57515	c.ctx_ = ctx
57516	return c
57517}
57518
57519// Header returns an http.Header that can be modified by the caller to
57520// add HTTP headers to the request.
57521func (c *ExternalVpnGatewaysGetCall) Header() http.Header {
57522	if c.header_ == nil {
57523		c.header_ = make(http.Header)
57524	}
57525	return c.header_
57526}
57527
57528func (c *ExternalVpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) {
57529	reqHeaders := make(http.Header)
57530	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
57531	for k, v := range c.header_ {
57532		reqHeaders[k] = v
57533	}
57534	reqHeaders.Set("User-Agent", c.s.userAgent())
57535	if c.ifNoneMatch_ != "" {
57536		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
57537	}
57538	var body io.Reader = nil
57539	c.urlParams_.Set("alt", alt)
57540	c.urlParams_.Set("prettyPrint", "false")
57541	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways/{externalVpnGateway}")
57542	urls += "?" + c.urlParams_.Encode()
57543	req, err := http.NewRequest("GET", urls, body)
57544	if err != nil {
57545		return nil, err
57546	}
57547	req.Header = reqHeaders
57548	googleapi.Expand(req.URL, map[string]string{
57549		"project":            c.project,
57550		"externalVpnGateway": c.externalVpnGateway,
57551	})
57552	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57553}
57554
57555// Do executes the "compute.externalVpnGateways.get" call.
57556// Exactly one of *ExternalVpnGateway or error will be non-nil. Any
57557// non-2xx status code is an error. Response headers are in either
57558// *ExternalVpnGateway.ServerResponse.Header or (if a response was
57559// returned at all) in error.(*googleapi.Error).Header. Use
57560// googleapi.IsNotModified to check whether the returned error was
57561// because http.StatusNotModified was returned.
57562func (c *ExternalVpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*ExternalVpnGateway, error) {
57563	gensupport.SetOptions(c.urlParams_, opts...)
57564	res, err := c.doRequest("json")
57565	if res != nil && res.StatusCode == http.StatusNotModified {
57566		if res.Body != nil {
57567			res.Body.Close()
57568		}
57569		return nil, &googleapi.Error{
57570			Code:   res.StatusCode,
57571			Header: res.Header,
57572		}
57573	}
57574	if err != nil {
57575		return nil, err
57576	}
57577	defer googleapi.CloseBody(res)
57578	if err := googleapi.CheckResponse(res); err != nil {
57579		return nil, err
57580	}
57581	ret := &ExternalVpnGateway{
57582		ServerResponse: googleapi.ServerResponse{
57583			Header:         res.Header,
57584			HTTPStatusCode: res.StatusCode,
57585		},
57586	}
57587	target := &ret
57588	if err := gensupport.DecodeResponse(target, res); err != nil {
57589		return nil, err
57590	}
57591	return ret, nil
57592	// {
57593	//   "description": "Returns the specified externalVpnGateway. Get a list of available externalVpnGateways by making a list() request.",
57594	//   "httpMethod": "GET",
57595	//   "id": "compute.externalVpnGateways.get",
57596	//   "parameterOrder": [
57597	//     "project",
57598	//     "externalVpnGateway"
57599	//   ],
57600	//   "parameters": {
57601	//     "externalVpnGateway": {
57602	//       "description": "Name of the externalVpnGateway to return.",
57603	//       "location": "path",
57604	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
57605	//       "required": true,
57606	//       "type": "string"
57607	//     },
57608	//     "project": {
57609	//       "description": "Project ID for this request.",
57610	//       "location": "path",
57611	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57612	//       "required": true,
57613	//       "type": "string"
57614	//     }
57615	//   },
57616	//   "path": "projects/{project}/global/externalVpnGateways/{externalVpnGateway}",
57617	//   "response": {
57618	//     "$ref": "ExternalVpnGateway"
57619	//   },
57620	//   "scopes": [
57621	//     "https://www.googleapis.com/auth/cloud-platform",
57622	//     "https://www.googleapis.com/auth/compute",
57623	//     "https://www.googleapis.com/auth/compute.readonly"
57624	//   ]
57625	// }
57626
57627}
57628
57629// method id "compute.externalVpnGateways.insert":
57630
57631type ExternalVpnGatewaysInsertCall struct {
57632	s                  *Service
57633	project            string
57634	externalvpngateway *ExternalVpnGateway
57635	urlParams_         gensupport.URLParams
57636	ctx_               context.Context
57637	header_            http.Header
57638}
57639
57640// Insert: Creates a ExternalVpnGateway in the specified project using
57641// the data included in the request.
57642//
57643// - project: Project ID for this request.
57644func (r *ExternalVpnGatewaysService) Insert(project string, externalvpngateway *ExternalVpnGateway) *ExternalVpnGatewaysInsertCall {
57645	c := &ExternalVpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57646	c.project = project
57647	c.externalvpngateway = externalvpngateway
57648	return c
57649}
57650
57651// RequestId sets the optional parameter "requestId": An optional
57652// request ID to identify requests. Specify a unique request ID so that
57653// if you must retry your request, the server will know to ignore the
57654// request if it has already been completed.
57655//
57656// For example, consider a situation where you make an initial request
57657// and the request times out. If you make the request again with the
57658// same request ID, the server can check if original operation with the
57659// same request ID was received, and if so, will ignore the second
57660// request. This prevents clients from accidentally creating duplicate
57661// commitments.
57662//
57663// The request ID must be a valid UUID with the exception that zero UUID
57664// is not supported (00000000-0000-0000-0000-000000000000).
57665func (c *ExternalVpnGatewaysInsertCall) RequestId(requestId string) *ExternalVpnGatewaysInsertCall {
57666	c.urlParams_.Set("requestId", requestId)
57667	return c
57668}
57669
57670// Fields allows partial responses to be retrieved. See
57671// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57672// for more information.
57673func (c *ExternalVpnGatewaysInsertCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysInsertCall {
57674	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57675	return c
57676}
57677
57678// Context sets the context to be used in this call's Do method. Any
57679// pending HTTP request will be aborted if the provided context is
57680// canceled.
57681func (c *ExternalVpnGatewaysInsertCall) Context(ctx context.Context) *ExternalVpnGatewaysInsertCall {
57682	c.ctx_ = ctx
57683	return c
57684}
57685
57686// Header returns an http.Header that can be modified by the caller to
57687// add HTTP headers to the request.
57688func (c *ExternalVpnGatewaysInsertCall) Header() http.Header {
57689	if c.header_ == nil {
57690		c.header_ = make(http.Header)
57691	}
57692	return c.header_
57693}
57694
57695func (c *ExternalVpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) {
57696	reqHeaders := make(http.Header)
57697	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
57698	for k, v := range c.header_ {
57699		reqHeaders[k] = v
57700	}
57701	reqHeaders.Set("User-Agent", c.s.userAgent())
57702	var body io.Reader = nil
57703	body, err := googleapi.WithoutDataWrapper.JSONReader(c.externalvpngateway)
57704	if err != nil {
57705		return nil, err
57706	}
57707	reqHeaders.Set("Content-Type", "application/json")
57708	c.urlParams_.Set("alt", alt)
57709	c.urlParams_.Set("prettyPrint", "false")
57710	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways")
57711	urls += "?" + c.urlParams_.Encode()
57712	req, err := http.NewRequest("POST", urls, body)
57713	if err != nil {
57714		return nil, err
57715	}
57716	req.Header = reqHeaders
57717	googleapi.Expand(req.URL, map[string]string{
57718		"project": c.project,
57719	})
57720	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57721}
57722
57723// Do executes the "compute.externalVpnGateways.insert" call.
57724// Exactly one of *Operation or error will be non-nil. Any non-2xx
57725// status code is an error. Response headers are in either
57726// *Operation.ServerResponse.Header or (if a response was returned at
57727// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57728// to check whether the returned error was because
57729// http.StatusNotModified was returned.
57730func (c *ExternalVpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57731	gensupport.SetOptions(c.urlParams_, opts...)
57732	res, err := c.doRequest("json")
57733	if res != nil && res.StatusCode == http.StatusNotModified {
57734		if res.Body != nil {
57735			res.Body.Close()
57736		}
57737		return nil, &googleapi.Error{
57738			Code:   res.StatusCode,
57739			Header: res.Header,
57740		}
57741	}
57742	if err != nil {
57743		return nil, err
57744	}
57745	defer googleapi.CloseBody(res)
57746	if err := googleapi.CheckResponse(res); err != nil {
57747		return nil, err
57748	}
57749	ret := &Operation{
57750		ServerResponse: googleapi.ServerResponse{
57751			Header:         res.Header,
57752			HTTPStatusCode: res.StatusCode,
57753		},
57754	}
57755	target := &ret
57756	if err := gensupport.DecodeResponse(target, res); err != nil {
57757		return nil, err
57758	}
57759	return ret, nil
57760	// {
57761	//   "description": "Creates a ExternalVpnGateway in the specified project using the data included in the request.",
57762	//   "httpMethod": "POST",
57763	//   "id": "compute.externalVpnGateways.insert",
57764	//   "parameterOrder": [
57765	//     "project"
57766	//   ],
57767	//   "parameters": {
57768	//     "project": {
57769	//       "description": "Project ID for this request.",
57770	//       "location": "path",
57771	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57772	//       "required": true,
57773	//       "type": "string"
57774	//     },
57775	//     "requestId": {
57776	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
57777	//       "location": "query",
57778	//       "type": "string"
57779	//     }
57780	//   },
57781	//   "path": "projects/{project}/global/externalVpnGateways",
57782	//   "request": {
57783	//     "$ref": "ExternalVpnGateway"
57784	//   },
57785	//   "response": {
57786	//     "$ref": "Operation"
57787	//   },
57788	//   "scopes": [
57789	//     "https://www.googleapis.com/auth/cloud-platform",
57790	//     "https://www.googleapis.com/auth/compute"
57791	//   ]
57792	// }
57793
57794}
57795
57796// method id "compute.externalVpnGateways.list":
57797
57798type ExternalVpnGatewaysListCall struct {
57799	s            *Service
57800	project      string
57801	urlParams_   gensupport.URLParams
57802	ifNoneMatch_ string
57803	ctx_         context.Context
57804	header_      http.Header
57805}
57806
57807// List: Retrieves the list of ExternalVpnGateway available to the
57808// specified project.
57809//
57810// - project: Project ID for this request.
57811func (r *ExternalVpnGatewaysService) List(project string) *ExternalVpnGatewaysListCall {
57812	c := &ExternalVpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57813	c.project = project
57814	return c
57815}
57816
57817// Filter sets the optional parameter "filter": A filter expression that
57818// filters resources listed in the response. The expression must specify
57819// the field name, a comparison operator, and the value that you want to
57820// use for filtering. The value must be a string, a number, or a
57821// boolean. The comparison operator must be either `=`, `!=`, `>`, or
57822// `<`.
57823//
57824// For example, if you are filtering Compute Engine instances, you can
57825// exclude instances named `example-instance` by specifying `name !=
57826// example-instance`.
57827//
57828// You can also filter nested fields. For example, you could specify
57829// `scheduling.automaticRestart = false` to include instances only if
57830// they are not scheduled for automatic restarts. You can use filtering
57831// on nested fields to filter based on resource labels.
57832//
57833// To filter on multiple expressions, provide each separate expression
57834// within parentheses. For example: ``` (scheduling.automaticRestart =
57835// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
57836// is an `AND` expression. However, you can include `AND` and `OR`
57837// expressions explicitly. For example: ``` (cpuPlatform = "Intel
57838// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
57839// (scheduling.automaticRestart = true) ```
57840func (c *ExternalVpnGatewaysListCall) Filter(filter string) *ExternalVpnGatewaysListCall {
57841	c.urlParams_.Set("filter", filter)
57842	return c
57843}
57844
57845// MaxResults sets the optional parameter "maxResults": The maximum
57846// number of results per page that should be returned. If the number of
57847// available results is larger than `maxResults`, Compute Engine returns
57848// a `nextPageToken` that can be used to get the next page of results in
57849// subsequent list requests. Acceptable values are `0` to `500`,
57850// inclusive. (Default: `500`)
57851func (c *ExternalVpnGatewaysListCall) MaxResults(maxResults int64) *ExternalVpnGatewaysListCall {
57852	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
57853	return c
57854}
57855
57856// OrderBy sets the optional parameter "orderBy": Sorts list results by
57857// a certain order. By default, results are returned in alphanumerical
57858// order based on the resource name.
57859//
57860// You can also sort results in descending order based on the creation
57861// timestamp using `orderBy="creationTimestamp desc". This sorts
57862// results based on the `creationTimestamp` field in reverse
57863// chronological order (newest result first). Use this to sort resources
57864// like operations so that the newest operation is returned
57865// first.
57866//
57867// Currently, only sorting by `name` or `creationTimestamp desc` is
57868// supported.
57869func (c *ExternalVpnGatewaysListCall) OrderBy(orderBy string) *ExternalVpnGatewaysListCall {
57870	c.urlParams_.Set("orderBy", orderBy)
57871	return c
57872}
57873
57874// PageToken sets the optional parameter "pageToken": Specifies a page
57875// token to use. Set `pageToken` to the `nextPageToken` returned by a
57876// previous list request to get the next page of results.
57877func (c *ExternalVpnGatewaysListCall) PageToken(pageToken string) *ExternalVpnGatewaysListCall {
57878	c.urlParams_.Set("pageToken", pageToken)
57879	return c
57880}
57881
57882// ReturnPartialSuccess sets the optional parameter
57883// "returnPartialSuccess": Opt-in for partial success behavior which
57884// provides partial results in case of failure. The default value is
57885// false.
57886func (c *ExternalVpnGatewaysListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ExternalVpnGatewaysListCall {
57887	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
57888	return c
57889}
57890
57891// Fields allows partial responses to be retrieved. See
57892// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57893// for more information.
57894func (c *ExternalVpnGatewaysListCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysListCall {
57895	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57896	return c
57897}
57898
57899// IfNoneMatch sets the optional parameter which makes the operation
57900// fail if the object's ETag matches the given value. This is useful for
57901// getting updates only after the object has changed since the last
57902// request. Use googleapi.IsNotModified to check whether the response
57903// error from Do is the result of In-None-Match.
57904func (c *ExternalVpnGatewaysListCall) IfNoneMatch(entityTag string) *ExternalVpnGatewaysListCall {
57905	c.ifNoneMatch_ = entityTag
57906	return c
57907}
57908
57909// Context sets the context to be used in this call's Do method. Any
57910// pending HTTP request will be aborted if the provided context is
57911// canceled.
57912func (c *ExternalVpnGatewaysListCall) Context(ctx context.Context) *ExternalVpnGatewaysListCall {
57913	c.ctx_ = ctx
57914	return c
57915}
57916
57917// Header returns an http.Header that can be modified by the caller to
57918// add HTTP headers to the request.
57919func (c *ExternalVpnGatewaysListCall) Header() http.Header {
57920	if c.header_ == nil {
57921		c.header_ = make(http.Header)
57922	}
57923	return c.header_
57924}
57925
57926func (c *ExternalVpnGatewaysListCall) doRequest(alt string) (*http.Response, error) {
57927	reqHeaders := make(http.Header)
57928	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
57929	for k, v := range c.header_ {
57930		reqHeaders[k] = v
57931	}
57932	reqHeaders.Set("User-Agent", c.s.userAgent())
57933	if c.ifNoneMatch_ != "" {
57934		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
57935	}
57936	var body io.Reader = nil
57937	c.urlParams_.Set("alt", alt)
57938	c.urlParams_.Set("prettyPrint", "false")
57939	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways")
57940	urls += "?" + c.urlParams_.Encode()
57941	req, err := http.NewRequest("GET", urls, body)
57942	if err != nil {
57943		return nil, err
57944	}
57945	req.Header = reqHeaders
57946	googleapi.Expand(req.URL, map[string]string{
57947		"project": c.project,
57948	})
57949	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57950}
57951
57952// Do executes the "compute.externalVpnGateways.list" call.
57953// Exactly one of *ExternalVpnGatewayList or error will be non-nil. Any
57954// non-2xx status code is an error. Response headers are in either
57955// *ExternalVpnGatewayList.ServerResponse.Header or (if a response was
57956// returned at all) in error.(*googleapi.Error).Header. Use
57957// googleapi.IsNotModified to check whether the returned error was
57958// because http.StatusNotModified was returned.
57959func (c *ExternalVpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*ExternalVpnGatewayList, error) {
57960	gensupport.SetOptions(c.urlParams_, opts...)
57961	res, err := c.doRequest("json")
57962	if res != nil && res.StatusCode == http.StatusNotModified {
57963		if res.Body != nil {
57964			res.Body.Close()
57965		}
57966		return nil, &googleapi.Error{
57967			Code:   res.StatusCode,
57968			Header: res.Header,
57969		}
57970	}
57971	if err != nil {
57972		return nil, err
57973	}
57974	defer googleapi.CloseBody(res)
57975	if err := googleapi.CheckResponse(res); err != nil {
57976		return nil, err
57977	}
57978	ret := &ExternalVpnGatewayList{
57979		ServerResponse: googleapi.ServerResponse{
57980			Header:         res.Header,
57981			HTTPStatusCode: res.StatusCode,
57982		},
57983	}
57984	target := &ret
57985	if err := gensupport.DecodeResponse(target, res); err != nil {
57986		return nil, err
57987	}
57988	return ret, nil
57989	// {
57990	//   "description": "Retrieves the list of ExternalVpnGateway available to the specified project.",
57991	//   "httpMethod": "GET",
57992	//   "id": "compute.externalVpnGateways.list",
57993	//   "parameterOrder": [
57994	//     "project"
57995	//   ],
57996	//   "parameters": {
57997	//     "filter": {
57998	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
57999	//       "location": "query",
58000	//       "type": "string"
58001	//     },
58002	//     "maxResults": {
58003	//       "default": "500",
58004	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
58005	//       "format": "uint32",
58006	//       "location": "query",
58007	//       "minimum": "0",
58008	//       "type": "integer"
58009	//     },
58010	//     "orderBy": {
58011	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
58012	//       "location": "query",
58013	//       "type": "string"
58014	//     },
58015	//     "pageToken": {
58016	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
58017	//       "location": "query",
58018	//       "type": "string"
58019	//     },
58020	//     "project": {
58021	//       "description": "Project ID for this request.",
58022	//       "location": "path",
58023	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58024	//       "required": true,
58025	//       "type": "string"
58026	//     },
58027	//     "returnPartialSuccess": {
58028	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
58029	//       "location": "query",
58030	//       "type": "boolean"
58031	//     }
58032	//   },
58033	//   "path": "projects/{project}/global/externalVpnGateways",
58034	//   "response": {
58035	//     "$ref": "ExternalVpnGatewayList"
58036	//   },
58037	//   "scopes": [
58038	//     "https://www.googleapis.com/auth/cloud-platform",
58039	//     "https://www.googleapis.com/auth/compute",
58040	//     "https://www.googleapis.com/auth/compute.readonly"
58041	//   ]
58042	// }
58043
58044}
58045
58046// Pages invokes f for each page of results.
58047// A non-nil error returned from f will halt the iteration.
58048// The provided context supersedes any context provided to the Context method.
58049func (c *ExternalVpnGatewaysListCall) Pages(ctx context.Context, f func(*ExternalVpnGatewayList) error) error {
58050	c.ctx_ = ctx
58051	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
58052	for {
58053		x, err := c.Do()
58054		if err != nil {
58055			return err
58056		}
58057		if err := f(x); err != nil {
58058			return err
58059		}
58060		if x.NextPageToken == "" {
58061			return nil
58062		}
58063		c.PageToken(x.NextPageToken)
58064	}
58065}
58066
58067// method id "compute.externalVpnGateways.setLabels":
58068
58069type ExternalVpnGatewaysSetLabelsCall struct {
58070	s                      *Service
58071	project                string
58072	resource               string
58073	globalsetlabelsrequest *GlobalSetLabelsRequest
58074	urlParams_             gensupport.URLParams
58075	ctx_                   context.Context
58076	header_                http.Header
58077}
58078
58079// SetLabels: Sets the labels on an ExternalVpnGateway. To learn more
58080// about labels, read the Labeling Resources documentation.
58081//
58082// - project: Project ID for this request.
58083// - resource: Name or id of the resource for this request.
58084func (r *ExternalVpnGatewaysService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *ExternalVpnGatewaysSetLabelsCall {
58085	c := &ExternalVpnGatewaysSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58086	c.project = project
58087	c.resource = resource
58088	c.globalsetlabelsrequest = globalsetlabelsrequest
58089	return c
58090}
58091
58092// Fields allows partial responses to be retrieved. See
58093// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58094// for more information.
58095func (c *ExternalVpnGatewaysSetLabelsCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysSetLabelsCall {
58096	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58097	return c
58098}
58099
58100// Context sets the context to be used in this call's Do method. Any
58101// pending HTTP request will be aborted if the provided context is
58102// canceled.
58103func (c *ExternalVpnGatewaysSetLabelsCall) Context(ctx context.Context) *ExternalVpnGatewaysSetLabelsCall {
58104	c.ctx_ = ctx
58105	return c
58106}
58107
58108// Header returns an http.Header that can be modified by the caller to
58109// add HTTP headers to the request.
58110func (c *ExternalVpnGatewaysSetLabelsCall) Header() http.Header {
58111	if c.header_ == nil {
58112		c.header_ = make(http.Header)
58113	}
58114	return c.header_
58115}
58116
58117func (c *ExternalVpnGatewaysSetLabelsCall) doRequest(alt string) (*http.Response, error) {
58118	reqHeaders := make(http.Header)
58119	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
58120	for k, v := range c.header_ {
58121		reqHeaders[k] = v
58122	}
58123	reqHeaders.Set("User-Agent", c.s.userAgent())
58124	var body io.Reader = nil
58125	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
58126	if err != nil {
58127		return nil, err
58128	}
58129	reqHeaders.Set("Content-Type", "application/json")
58130	c.urlParams_.Set("alt", alt)
58131	c.urlParams_.Set("prettyPrint", "false")
58132	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways/{resource}/setLabels")
58133	urls += "?" + c.urlParams_.Encode()
58134	req, err := http.NewRequest("POST", urls, body)
58135	if err != nil {
58136		return nil, err
58137	}
58138	req.Header = reqHeaders
58139	googleapi.Expand(req.URL, map[string]string{
58140		"project":  c.project,
58141		"resource": c.resource,
58142	})
58143	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58144}
58145
58146// Do executes the "compute.externalVpnGateways.setLabels" call.
58147// Exactly one of *Operation or error will be non-nil. Any non-2xx
58148// status code is an error. Response headers are in either
58149// *Operation.ServerResponse.Header or (if a response was returned at
58150// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58151// to check whether the returned error was because
58152// http.StatusNotModified was returned.
58153func (c *ExternalVpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58154	gensupport.SetOptions(c.urlParams_, opts...)
58155	res, err := c.doRequest("json")
58156	if res != nil && res.StatusCode == http.StatusNotModified {
58157		if res.Body != nil {
58158			res.Body.Close()
58159		}
58160		return nil, &googleapi.Error{
58161			Code:   res.StatusCode,
58162			Header: res.Header,
58163		}
58164	}
58165	if err != nil {
58166		return nil, err
58167	}
58168	defer googleapi.CloseBody(res)
58169	if err := googleapi.CheckResponse(res); err != nil {
58170		return nil, err
58171	}
58172	ret := &Operation{
58173		ServerResponse: googleapi.ServerResponse{
58174			Header:         res.Header,
58175			HTTPStatusCode: res.StatusCode,
58176		},
58177	}
58178	target := &ret
58179	if err := gensupport.DecodeResponse(target, res); err != nil {
58180		return nil, err
58181	}
58182	return ret, nil
58183	// {
58184	//   "description": "Sets the labels on an ExternalVpnGateway. To learn more about labels, read the Labeling Resources documentation.",
58185	//   "httpMethod": "POST",
58186	//   "id": "compute.externalVpnGateways.setLabels",
58187	//   "parameterOrder": [
58188	//     "project",
58189	//     "resource"
58190	//   ],
58191	//   "parameters": {
58192	//     "project": {
58193	//       "description": "Project ID for this request.",
58194	//       "location": "path",
58195	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58196	//       "required": true,
58197	//       "type": "string"
58198	//     },
58199	//     "resource": {
58200	//       "description": "Name or id of the resource for this request.",
58201	//       "location": "path",
58202	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
58203	//       "required": true,
58204	//       "type": "string"
58205	//     }
58206	//   },
58207	//   "path": "projects/{project}/global/externalVpnGateways/{resource}/setLabels",
58208	//   "request": {
58209	//     "$ref": "GlobalSetLabelsRequest"
58210	//   },
58211	//   "response": {
58212	//     "$ref": "Operation"
58213	//   },
58214	//   "scopes": [
58215	//     "https://www.googleapis.com/auth/cloud-platform",
58216	//     "https://www.googleapis.com/auth/compute"
58217	//   ]
58218	// }
58219
58220}
58221
58222// method id "compute.externalVpnGateways.testIamPermissions":
58223
58224type ExternalVpnGatewaysTestIamPermissionsCall struct {
58225	s                      *Service
58226	project                string
58227	resource               string
58228	testpermissionsrequest *TestPermissionsRequest
58229	urlParams_             gensupport.URLParams
58230	ctx_                   context.Context
58231	header_                http.Header
58232}
58233
58234// TestIamPermissions: Returns permissions that a caller has on the
58235// specified resource.
58236//
58237// - project: Project ID for this request.
58238// - resource: Name or id of the resource for this request.
58239func (r *ExternalVpnGatewaysService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *ExternalVpnGatewaysTestIamPermissionsCall {
58240	c := &ExternalVpnGatewaysTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58241	c.project = project
58242	c.resource = resource
58243	c.testpermissionsrequest = testpermissionsrequest
58244	return c
58245}
58246
58247// Fields allows partial responses to be retrieved. See
58248// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58249// for more information.
58250func (c *ExternalVpnGatewaysTestIamPermissionsCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysTestIamPermissionsCall {
58251	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58252	return c
58253}
58254
58255// Context sets the context to be used in this call's Do method. Any
58256// pending HTTP request will be aborted if the provided context is
58257// canceled.
58258func (c *ExternalVpnGatewaysTestIamPermissionsCall) Context(ctx context.Context) *ExternalVpnGatewaysTestIamPermissionsCall {
58259	c.ctx_ = ctx
58260	return c
58261}
58262
58263// Header returns an http.Header that can be modified by the caller to
58264// add HTTP headers to the request.
58265func (c *ExternalVpnGatewaysTestIamPermissionsCall) Header() http.Header {
58266	if c.header_ == nil {
58267		c.header_ = make(http.Header)
58268	}
58269	return c.header_
58270}
58271
58272func (c *ExternalVpnGatewaysTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
58273	reqHeaders := make(http.Header)
58274	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
58275	for k, v := range c.header_ {
58276		reqHeaders[k] = v
58277	}
58278	reqHeaders.Set("User-Agent", c.s.userAgent())
58279	var body io.Reader = nil
58280	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
58281	if err != nil {
58282		return nil, err
58283	}
58284	reqHeaders.Set("Content-Type", "application/json")
58285	c.urlParams_.Set("alt", alt)
58286	c.urlParams_.Set("prettyPrint", "false")
58287	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/externalVpnGateways/{resource}/testIamPermissions")
58288	urls += "?" + c.urlParams_.Encode()
58289	req, err := http.NewRequest("POST", urls, body)
58290	if err != nil {
58291		return nil, err
58292	}
58293	req.Header = reqHeaders
58294	googleapi.Expand(req.URL, map[string]string{
58295		"project":  c.project,
58296		"resource": c.resource,
58297	})
58298	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58299}
58300
58301// Do executes the "compute.externalVpnGateways.testIamPermissions" call.
58302// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
58303// non-2xx status code is an error. Response headers are in either
58304// *TestPermissionsResponse.ServerResponse.Header or (if a response was
58305// returned at all) in error.(*googleapi.Error).Header. Use
58306// googleapi.IsNotModified to check whether the returned error was
58307// because http.StatusNotModified was returned.
58308func (c *ExternalVpnGatewaysTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
58309	gensupport.SetOptions(c.urlParams_, opts...)
58310	res, err := c.doRequest("json")
58311	if res != nil && res.StatusCode == http.StatusNotModified {
58312		if res.Body != nil {
58313			res.Body.Close()
58314		}
58315		return nil, &googleapi.Error{
58316			Code:   res.StatusCode,
58317			Header: res.Header,
58318		}
58319	}
58320	if err != nil {
58321		return nil, err
58322	}
58323	defer googleapi.CloseBody(res)
58324	if err := googleapi.CheckResponse(res); err != nil {
58325		return nil, err
58326	}
58327	ret := &TestPermissionsResponse{
58328		ServerResponse: googleapi.ServerResponse{
58329			Header:         res.Header,
58330			HTTPStatusCode: res.StatusCode,
58331		},
58332	}
58333	target := &ret
58334	if err := gensupport.DecodeResponse(target, res); err != nil {
58335		return nil, err
58336	}
58337	return ret, nil
58338	// {
58339	//   "description": "Returns permissions that a caller has on the specified resource.",
58340	//   "httpMethod": "POST",
58341	//   "id": "compute.externalVpnGateways.testIamPermissions",
58342	//   "parameterOrder": [
58343	//     "project",
58344	//     "resource"
58345	//   ],
58346	//   "parameters": {
58347	//     "project": {
58348	//       "description": "Project ID for this request.",
58349	//       "location": "path",
58350	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58351	//       "required": true,
58352	//       "type": "string"
58353	//     },
58354	//     "resource": {
58355	//       "description": "Name or id of the resource for this request.",
58356	//       "location": "path",
58357	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
58358	//       "required": true,
58359	//       "type": "string"
58360	//     }
58361	//   },
58362	//   "path": "projects/{project}/global/externalVpnGateways/{resource}/testIamPermissions",
58363	//   "request": {
58364	//     "$ref": "TestPermissionsRequest"
58365	//   },
58366	//   "response": {
58367	//     "$ref": "TestPermissionsResponse"
58368	//   },
58369	//   "scopes": [
58370	//     "https://www.googleapis.com/auth/cloud-platform",
58371	//     "https://www.googleapis.com/auth/compute",
58372	//     "https://www.googleapis.com/auth/compute.readonly"
58373	//   ]
58374	// }
58375
58376}
58377
58378// method id "compute.firewallPolicies.addAssociation":
58379
58380type FirewallPoliciesAddAssociationCall struct {
58381	s                         *Service
58382	firewallPolicy            string
58383	firewallpolicyassociation *FirewallPolicyAssociation
58384	urlParams_                gensupport.URLParams
58385	ctx_                      context.Context
58386	header_                   http.Header
58387}
58388
58389// AddAssociation: Inserts an association for the specified firewall
58390// policy.
58391//
58392// - firewallPolicy: Name of the firewall policy to update.
58393func (r *FirewallPoliciesService) AddAssociation(firewallPolicy string, firewallpolicyassociation *FirewallPolicyAssociation) *FirewallPoliciesAddAssociationCall {
58394	c := &FirewallPoliciesAddAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58395	c.firewallPolicy = firewallPolicy
58396	c.firewallpolicyassociation = firewallpolicyassociation
58397	return c
58398}
58399
58400// ReplaceExistingAssociation sets the optional parameter
58401// "replaceExistingAssociation": Indicates whether or not to replace it
58402// if an association of the attachment already exists. This is false by
58403// default, in which case an error will be returned if an association
58404// already exists.
58405func (c *FirewallPoliciesAddAssociationCall) ReplaceExistingAssociation(replaceExistingAssociation bool) *FirewallPoliciesAddAssociationCall {
58406	c.urlParams_.Set("replaceExistingAssociation", fmt.Sprint(replaceExistingAssociation))
58407	return c
58408}
58409
58410// RequestId sets the optional parameter "requestId": An optional
58411// request ID to identify requests. Specify a unique request ID so that
58412// if you must retry your request, the server will know to ignore the
58413// request if it has already been completed.
58414//
58415// For example, consider a situation where you make an initial request
58416// and the request times out. If you make the request again with the
58417// same request ID, the server can check if original operation with the
58418// same request ID was received, and if so, will ignore the second
58419// request. This prevents clients from accidentally creating duplicate
58420// commitments.
58421//
58422// The request ID must be a valid UUID with the exception that zero UUID
58423// is not supported (00000000-0000-0000-0000-000000000000).
58424func (c *FirewallPoliciesAddAssociationCall) RequestId(requestId string) *FirewallPoliciesAddAssociationCall {
58425	c.urlParams_.Set("requestId", requestId)
58426	return c
58427}
58428
58429// Fields allows partial responses to be retrieved. See
58430// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58431// for more information.
58432func (c *FirewallPoliciesAddAssociationCall) Fields(s ...googleapi.Field) *FirewallPoliciesAddAssociationCall {
58433	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58434	return c
58435}
58436
58437// Context sets the context to be used in this call's Do method. Any
58438// pending HTTP request will be aborted if the provided context is
58439// canceled.
58440func (c *FirewallPoliciesAddAssociationCall) Context(ctx context.Context) *FirewallPoliciesAddAssociationCall {
58441	c.ctx_ = ctx
58442	return c
58443}
58444
58445// Header returns an http.Header that can be modified by the caller to
58446// add HTTP headers to the request.
58447func (c *FirewallPoliciesAddAssociationCall) Header() http.Header {
58448	if c.header_ == nil {
58449		c.header_ = make(http.Header)
58450	}
58451	return c.header_
58452}
58453
58454func (c *FirewallPoliciesAddAssociationCall) doRequest(alt string) (*http.Response, error) {
58455	reqHeaders := make(http.Header)
58456	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
58457	for k, v := range c.header_ {
58458		reqHeaders[k] = v
58459	}
58460	reqHeaders.Set("User-Agent", c.s.userAgent())
58461	var body io.Reader = nil
58462	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicyassociation)
58463	if err != nil {
58464		return nil, err
58465	}
58466	reqHeaders.Set("Content-Type", "application/json")
58467	c.urlParams_.Set("alt", alt)
58468	c.urlParams_.Set("prettyPrint", "false")
58469	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/addAssociation")
58470	urls += "?" + c.urlParams_.Encode()
58471	req, err := http.NewRequest("POST", urls, body)
58472	if err != nil {
58473		return nil, err
58474	}
58475	req.Header = reqHeaders
58476	googleapi.Expand(req.URL, map[string]string{
58477		"firewallPolicy": c.firewallPolicy,
58478	})
58479	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58480}
58481
58482// Do executes the "compute.firewallPolicies.addAssociation" call.
58483// Exactly one of *Operation or error will be non-nil. Any non-2xx
58484// status code is an error. Response headers are in either
58485// *Operation.ServerResponse.Header or (if a response was returned at
58486// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58487// to check whether the returned error was because
58488// http.StatusNotModified was returned.
58489func (c *FirewallPoliciesAddAssociationCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58490	gensupport.SetOptions(c.urlParams_, opts...)
58491	res, err := c.doRequest("json")
58492	if res != nil && res.StatusCode == http.StatusNotModified {
58493		if res.Body != nil {
58494			res.Body.Close()
58495		}
58496		return nil, &googleapi.Error{
58497			Code:   res.StatusCode,
58498			Header: res.Header,
58499		}
58500	}
58501	if err != nil {
58502		return nil, err
58503	}
58504	defer googleapi.CloseBody(res)
58505	if err := googleapi.CheckResponse(res); err != nil {
58506		return nil, err
58507	}
58508	ret := &Operation{
58509		ServerResponse: googleapi.ServerResponse{
58510			Header:         res.Header,
58511			HTTPStatusCode: res.StatusCode,
58512		},
58513	}
58514	target := &ret
58515	if err := gensupport.DecodeResponse(target, res); err != nil {
58516		return nil, err
58517	}
58518	return ret, nil
58519	// {
58520	//   "description": "Inserts an association for the specified firewall policy.",
58521	//   "httpMethod": "POST",
58522	//   "id": "compute.firewallPolicies.addAssociation",
58523	//   "parameterOrder": [
58524	//     "firewallPolicy"
58525	//   ],
58526	//   "parameters": {
58527	//     "firewallPolicy": {
58528	//       "description": "Name of the firewall policy to update.",
58529	//       "location": "path",
58530	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
58531	//       "required": true,
58532	//       "type": "string"
58533	//     },
58534	//     "replaceExistingAssociation": {
58535	//       "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.",
58536	//       "location": "query",
58537	//       "type": "boolean"
58538	//     },
58539	//     "requestId": {
58540	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
58541	//       "location": "query",
58542	//       "type": "string"
58543	//     }
58544	//   },
58545	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/addAssociation",
58546	//   "request": {
58547	//     "$ref": "FirewallPolicyAssociation"
58548	//   },
58549	//   "response": {
58550	//     "$ref": "Operation"
58551	//   },
58552	//   "scopes": [
58553	//     "https://www.googleapis.com/auth/cloud-platform",
58554	//     "https://www.googleapis.com/auth/compute"
58555	//   ]
58556	// }
58557
58558}
58559
58560// method id "compute.firewallPolicies.addRule":
58561
58562type FirewallPoliciesAddRuleCall struct {
58563	s                  *Service
58564	firewallPolicy     string
58565	firewallpolicyrule *FirewallPolicyRule
58566	urlParams_         gensupport.URLParams
58567	ctx_               context.Context
58568	header_            http.Header
58569}
58570
58571// AddRule: Inserts a rule into a firewall policy.
58572//
58573// - firewallPolicy: Name of the firewall policy to update.
58574func (r *FirewallPoliciesService) AddRule(firewallPolicy string, firewallpolicyrule *FirewallPolicyRule) *FirewallPoliciesAddRuleCall {
58575	c := &FirewallPoliciesAddRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58576	c.firewallPolicy = firewallPolicy
58577	c.firewallpolicyrule = firewallpolicyrule
58578	return c
58579}
58580
58581// RequestId sets the optional parameter "requestId": An optional
58582// request ID to identify requests. Specify a unique request ID so that
58583// if you must retry your request, the server will know to ignore the
58584// request if it has already been completed.
58585//
58586// For example, consider a situation where you make an initial request
58587// and the request times out. If you make the request again with the
58588// same request ID, the server can check if original operation with the
58589// same request ID was received, and if so, will ignore the second
58590// request. This prevents clients from accidentally creating duplicate
58591// commitments.
58592//
58593// The request ID must be a valid UUID with the exception that zero UUID
58594// is not supported (00000000-0000-0000-0000-000000000000).
58595func (c *FirewallPoliciesAddRuleCall) RequestId(requestId string) *FirewallPoliciesAddRuleCall {
58596	c.urlParams_.Set("requestId", requestId)
58597	return c
58598}
58599
58600// Fields allows partial responses to be retrieved. See
58601// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58602// for more information.
58603func (c *FirewallPoliciesAddRuleCall) Fields(s ...googleapi.Field) *FirewallPoliciesAddRuleCall {
58604	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58605	return c
58606}
58607
58608// Context sets the context to be used in this call's Do method. Any
58609// pending HTTP request will be aborted if the provided context is
58610// canceled.
58611func (c *FirewallPoliciesAddRuleCall) Context(ctx context.Context) *FirewallPoliciesAddRuleCall {
58612	c.ctx_ = ctx
58613	return c
58614}
58615
58616// Header returns an http.Header that can be modified by the caller to
58617// add HTTP headers to the request.
58618func (c *FirewallPoliciesAddRuleCall) Header() http.Header {
58619	if c.header_ == nil {
58620		c.header_ = make(http.Header)
58621	}
58622	return c.header_
58623}
58624
58625func (c *FirewallPoliciesAddRuleCall) doRequest(alt string) (*http.Response, error) {
58626	reqHeaders := make(http.Header)
58627	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
58628	for k, v := range c.header_ {
58629		reqHeaders[k] = v
58630	}
58631	reqHeaders.Set("User-Agent", c.s.userAgent())
58632	var body io.Reader = nil
58633	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicyrule)
58634	if err != nil {
58635		return nil, err
58636	}
58637	reqHeaders.Set("Content-Type", "application/json")
58638	c.urlParams_.Set("alt", alt)
58639	c.urlParams_.Set("prettyPrint", "false")
58640	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/addRule")
58641	urls += "?" + c.urlParams_.Encode()
58642	req, err := http.NewRequest("POST", urls, body)
58643	if err != nil {
58644		return nil, err
58645	}
58646	req.Header = reqHeaders
58647	googleapi.Expand(req.URL, map[string]string{
58648		"firewallPolicy": c.firewallPolicy,
58649	})
58650	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58651}
58652
58653// Do executes the "compute.firewallPolicies.addRule" call.
58654// Exactly one of *Operation or error will be non-nil. Any non-2xx
58655// status code is an error. Response headers are in either
58656// *Operation.ServerResponse.Header or (if a response was returned at
58657// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58658// to check whether the returned error was because
58659// http.StatusNotModified was returned.
58660func (c *FirewallPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58661	gensupport.SetOptions(c.urlParams_, opts...)
58662	res, err := c.doRequest("json")
58663	if res != nil && res.StatusCode == http.StatusNotModified {
58664		if res.Body != nil {
58665			res.Body.Close()
58666		}
58667		return nil, &googleapi.Error{
58668			Code:   res.StatusCode,
58669			Header: res.Header,
58670		}
58671	}
58672	if err != nil {
58673		return nil, err
58674	}
58675	defer googleapi.CloseBody(res)
58676	if err := googleapi.CheckResponse(res); err != nil {
58677		return nil, err
58678	}
58679	ret := &Operation{
58680		ServerResponse: googleapi.ServerResponse{
58681			Header:         res.Header,
58682			HTTPStatusCode: res.StatusCode,
58683		},
58684	}
58685	target := &ret
58686	if err := gensupport.DecodeResponse(target, res); err != nil {
58687		return nil, err
58688	}
58689	return ret, nil
58690	// {
58691	//   "description": "Inserts a rule into a firewall policy.",
58692	//   "httpMethod": "POST",
58693	//   "id": "compute.firewallPolicies.addRule",
58694	//   "parameterOrder": [
58695	//     "firewallPolicy"
58696	//   ],
58697	//   "parameters": {
58698	//     "firewallPolicy": {
58699	//       "description": "Name of the firewall policy to update.",
58700	//       "location": "path",
58701	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
58702	//       "required": true,
58703	//       "type": "string"
58704	//     },
58705	//     "requestId": {
58706	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
58707	//       "location": "query",
58708	//       "type": "string"
58709	//     }
58710	//   },
58711	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/addRule",
58712	//   "request": {
58713	//     "$ref": "FirewallPolicyRule"
58714	//   },
58715	//   "response": {
58716	//     "$ref": "Operation"
58717	//   },
58718	//   "scopes": [
58719	//     "https://www.googleapis.com/auth/cloud-platform",
58720	//     "https://www.googleapis.com/auth/compute"
58721	//   ]
58722	// }
58723
58724}
58725
58726// method id "compute.firewallPolicies.cloneRules":
58727
58728type FirewallPoliciesCloneRulesCall struct {
58729	s              *Service
58730	firewallPolicy string
58731	urlParams_     gensupport.URLParams
58732	ctx_           context.Context
58733	header_        http.Header
58734}
58735
58736// CloneRules: Copies rules to the specified firewall policy.
58737//
58738// - firewallPolicy: Name of the firewall policy to update.
58739func (r *FirewallPoliciesService) CloneRules(firewallPolicy string) *FirewallPoliciesCloneRulesCall {
58740	c := &FirewallPoliciesCloneRulesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58741	c.firewallPolicy = firewallPolicy
58742	return c
58743}
58744
58745// RequestId sets the optional parameter "requestId": An optional
58746// request ID to identify requests. Specify a unique request ID so that
58747// if you must retry your request, the server will know to ignore the
58748// request if it has already been completed.
58749//
58750// For example, consider a situation where you make an initial request
58751// and the request times out. If you make the request again with the
58752// same request ID, the server can check if original operation with the
58753// same request ID was received, and if so, will ignore the second
58754// request. This prevents clients from accidentally creating duplicate
58755// commitments.
58756//
58757// The request ID must be a valid UUID with the exception that zero UUID
58758// is not supported (00000000-0000-0000-0000-000000000000).
58759func (c *FirewallPoliciesCloneRulesCall) RequestId(requestId string) *FirewallPoliciesCloneRulesCall {
58760	c.urlParams_.Set("requestId", requestId)
58761	return c
58762}
58763
58764// SourceFirewallPolicy sets the optional parameter
58765// "sourceFirewallPolicy": The firewall policy from which to copy rules.
58766func (c *FirewallPoliciesCloneRulesCall) SourceFirewallPolicy(sourceFirewallPolicy string) *FirewallPoliciesCloneRulesCall {
58767	c.urlParams_.Set("sourceFirewallPolicy", sourceFirewallPolicy)
58768	return c
58769}
58770
58771// Fields allows partial responses to be retrieved. See
58772// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58773// for more information.
58774func (c *FirewallPoliciesCloneRulesCall) Fields(s ...googleapi.Field) *FirewallPoliciesCloneRulesCall {
58775	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58776	return c
58777}
58778
58779// Context sets the context to be used in this call's Do method. Any
58780// pending HTTP request will be aborted if the provided context is
58781// canceled.
58782func (c *FirewallPoliciesCloneRulesCall) Context(ctx context.Context) *FirewallPoliciesCloneRulesCall {
58783	c.ctx_ = ctx
58784	return c
58785}
58786
58787// Header returns an http.Header that can be modified by the caller to
58788// add HTTP headers to the request.
58789func (c *FirewallPoliciesCloneRulesCall) Header() http.Header {
58790	if c.header_ == nil {
58791		c.header_ = make(http.Header)
58792	}
58793	return c.header_
58794}
58795
58796func (c *FirewallPoliciesCloneRulesCall) doRequest(alt string) (*http.Response, error) {
58797	reqHeaders := make(http.Header)
58798	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
58799	for k, v := range c.header_ {
58800		reqHeaders[k] = v
58801	}
58802	reqHeaders.Set("User-Agent", c.s.userAgent())
58803	var body io.Reader = nil
58804	c.urlParams_.Set("alt", alt)
58805	c.urlParams_.Set("prettyPrint", "false")
58806	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/cloneRules")
58807	urls += "?" + c.urlParams_.Encode()
58808	req, err := http.NewRequest("POST", urls, body)
58809	if err != nil {
58810		return nil, err
58811	}
58812	req.Header = reqHeaders
58813	googleapi.Expand(req.URL, map[string]string{
58814		"firewallPolicy": c.firewallPolicy,
58815	})
58816	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58817}
58818
58819// Do executes the "compute.firewallPolicies.cloneRules" call.
58820// Exactly one of *Operation or error will be non-nil. Any non-2xx
58821// status code is an error. Response headers are in either
58822// *Operation.ServerResponse.Header or (if a response was returned at
58823// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58824// to check whether the returned error was because
58825// http.StatusNotModified was returned.
58826func (c *FirewallPoliciesCloneRulesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58827	gensupport.SetOptions(c.urlParams_, opts...)
58828	res, err := c.doRequest("json")
58829	if res != nil && res.StatusCode == http.StatusNotModified {
58830		if res.Body != nil {
58831			res.Body.Close()
58832		}
58833		return nil, &googleapi.Error{
58834			Code:   res.StatusCode,
58835			Header: res.Header,
58836		}
58837	}
58838	if err != nil {
58839		return nil, err
58840	}
58841	defer googleapi.CloseBody(res)
58842	if err := googleapi.CheckResponse(res); err != nil {
58843		return nil, err
58844	}
58845	ret := &Operation{
58846		ServerResponse: googleapi.ServerResponse{
58847			Header:         res.Header,
58848			HTTPStatusCode: res.StatusCode,
58849		},
58850	}
58851	target := &ret
58852	if err := gensupport.DecodeResponse(target, res); err != nil {
58853		return nil, err
58854	}
58855	return ret, nil
58856	// {
58857	//   "description": "Copies rules to the specified firewall policy.",
58858	//   "httpMethod": "POST",
58859	//   "id": "compute.firewallPolicies.cloneRules",
58860	//   "parameterOrder": [
58861	//     "firewallPolicy"
58862	//   ],
58863	//   "parameters": {
58864	//     "firewallPolicy": {
58865	//       "description": "Name of the firewall policy to update.",
58866	//       "location": "path",
58867	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
58868	//       "required": true,
58869	//       "type": "string"
58870	//     },
58871	//     "requestId": {
58872	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
58873	//       "location": "query",
58874	//       "type": "string"
58875	//     },
58876	//     "sourceFirewallPolicy": {
58877	//       "description": "The firewall policy from which to copy rules.",
58878	//       "location": "query",
58879	//       "type": "string"
58880	//     }
58881	//   },
58882	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/cloneRules",
58883	//   "response": {
58884	//     "$ref": "Operation"
58885	//   },
58886	//   "scopes": [
58887	//     "https://www.googleapis.com/auth/cloud-platform",
58888	//     "https://www.googleapis.com/auth/compute"
58889	//   ]
58890	// }
58891
58892}
58893
58894// method id "compute.firewallPolicies.delete":
58895
58896type FirewallPoliciesDeleteCall struct {
58897	s              *Service
58898	firewallPolicy string
58899	urlParams_     gensupport.URLParams
58900	ctx_           context.Context
58901	header_        http.Header
58902}
58903
58904// Delete: Deletes the specified policy.
58905//
58906// - firewallPolicy: Name of the firewall policy to delete.
58907func (r *FirewallPoliciesService) Delete(firewallPolicy string) *FirewallPoliciesDeleteCall {
58908	c := &FirewallPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58909	c.firewallPolicy = firewallPolicy
58910	return c
58911}
58912
58913// RequestId sets the optional parameter "requestId": An optional
58914// request ID to identify requests. Specify a unique request ID so that
58915// if you must retry your request, the server will know to ignore the
58916// request if it has already been completed.
58917//
58918// For example, consider a situation where you make an initial request
58919// and the request times out. If you make the request again with the
58920// same request ID, the server can check if original operation with the
58921// same request ID was received, and if so, will ignore the second
58922// request. This prevents clients from accidentally creating duplicate
58923// commitments.
58924//
58925// The request ID must be a valid UUID with the exception that zero UUID
58926// is not supported (00000000-0000-0000-0000-000000000000).
58927func (c *FirewallPoliciesDeleteCall) RequestId(requestId string) *FirewallPoliciesDeleteCall {
58928	c.urlParams_.Set("requestId", requestId)
58929	return c
58930}
58931
58932// Fields allows partial responses to be retrieved. See
58933// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58934// for more information.
58935func (c *FirewallPoliciesDeleteCall) Fields(s ...googleapi.Field) *FirewallPoliciesDeleteCall {
58936	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58937	return c
58938}
58939
58940// Context sets the context to be used in this call's Do method. Any
58941// pending HTTP request will be aborted if the provided context is
58942// canceled.
58943func (c *FirewallPoliciesDeleteCall) Context(ctx context.Context) *FirewallPoliciesDeleteCall {
58944	c.ctx_ = ctx
58945	return c
58946}
58947
58948// Header returns an http.Header that can be modified by the caller to
58949// add HTTP headers to the request.
58950func (c *FirewallPoliciesDeleteCall) Header() http.Header {
58951	if c.header_ == nil {
58952		c.header_ = make(http.Header)
58953	}
58954	return c.header_
58955}
58956
58957func (c *FirewallPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
58958	reqHeaders := make(http.Header)
58959	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
58960	for k, v := range c.header_ {
58961		reqHeaders[k] = v
58962	}
58963	reqHeaders.Set("User-Agent", c.s.userAgent())
58964	var body io.Reader = nil
58965	c.urlParams_.Set("alt", alt)
58966	c.urlParams_.Set("prettyPrint", "false")
58967	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}")
58968	urls += "?" + c.urlParams_.Encode()
58969	req, err := http.NewRequest("DELETE", urls, body)
58970	if err != nil {
58971		return nil, err
58972	}
58973	req.Header = reqHeaders
58974	googleapi.Expand(req.URL, map[string]string{
58975		"firewallPolicy": c.firewallPolicy,
58976	})
58977	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58978}
58979
58980// Do executes the "compute.firewallPolicies.delete" call.
58981// Exactly one of *Operation or error will be non-nil. Any non-2xx
58982// status code is an error. Response headers are in either
58983// *Operation.ServerResponse.Header or (if a response was returned at
58984// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58985// to check whether the returned error was because
58986// http.StatusNotModified was returned.
58987func (c *FirewallPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58988	gensupport.SetOptions(c.urlParams_, opts...)
58989	res, err := c.doRequest("json")
58990	if res != nil && res.StatusCode == http.StatusNotModified {
58991		if res.Body != nil {
58992			res.Body.Close()
58993		}
58994		return nil, &googleapi.Error{
58995			Code:   res.StatusCode,
58996			Header: res.Header,
58997		}
58998	}
58999	if err != nil {
59000		return nil, err
59001	}
59002	defer googleapi.CloseBody(res)
59003	if err := googleapi.CheckResponse(res); err != nil {
59004		return nil, err
59005	}
59006	ret := &Operation{
59007		ServerResponse: googleapi.ServerResponse{
59008			Header:         res.Header,
59009			HTTPStatusCode: res.StatusCode,
59010		},
59011	}
59012	target := &ret
59013	if err := gensupport.DecodeResponse(target, res); err != nil {
59014		return nil, err
59015	}
59016	return ret, nil
59017	// {
59018	//   "description": "Deletes the specified policy.",
59019	//   "httpMethod": "DELETE",
59020	//   "id": "compute.firewallPolicies.delete",
59021	//   "parameterOrder": [
59022	//     "firewallPolicy"
59023	//   ],
59024	//   "parameters": {
59025	//     "firewallPolicy": {
59026	//       "description": "Name of the firewall policy to delete.",
59027	//       "location": "path",
59028	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
59029	//       "required": true,
59030	//       "type": "string"
59031	//     },
59032	//     "requestId": {
59033	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
59034	//       "location": "query",
59035	//       "type": "string"
59036	//     }
59037	//   },
59038	//   "path": "locations/global/firewallPolicies/{firewallPolicy}",
59039	//   "response": {
59040	//     "$ref": "Operation"
59041	//   },
59042	//   "scopes": [
59043	//     "https://www.googleapis.com/auth/cloud-platform",
59044	//     "https://www.googleapis.com/auth/compute"
59045	//   ]
59046	// }
59047
59048}
59049
59050// method id "compute.firewallPolicies.get":
59051
59052type FirewallPoliciesGetCall struct {
59053	s              *Service
59054	firewallPolicy string
59055	urlParams_     gensupport.URLParams
59056	ifNoneMatch_   string
59057	ctx_           context.Context
59058	header_        http.Header
59059}
59060
59061// Get: Returns the specified firewall policy.
59062//
59063// - firewallPolicy: Name of the firewall policy to get.
59064func (r *FirewallPoliciesService) Get(firewallPolicy string) *FirewallPoliciesGetCall {
59065	c := &FirewallPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59066	c.firewallPolicy = firewallPolicy
59067	return c
59068}
59069
59070// Fields allows partial responses to be retrieved. See
59071// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59072// for more information.
59073func (c *FirewallPoliciesGetCall) Fields(s ...googleapi.Field) *FirewallPoliciesGetCall {
59074	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59075	return c
59076}
59077
59078// IfNoneMatch sets the optional parameter which makes the operation
59079// fail if the object's ETag matches the given value. This is useful for
59080// getting updates only after the object has changed since the last
59081// request. Use googleapi.IsNotModified to check whether the response
59082// error from Do is the result of In-None-Match.
59083func (c *FirewallPoliciesGetCall) IfNoneMatch(entityTag string) *FirewallPoliciesGetCall {
59084	c.ifNoneMatch_ = entityTag
59085	return c
59086}
59087
59088// Context sets the context to be used in this call's Do method. Any
59089// pending HTTP request will be aborted if the provided context is
59090// canceled.
59091func (c *FirewallPoliciesGetCall) Context(ctx context.Context) *FirewallPoliciesGetCall {
59092	c.ctx_ = ctx
59093	return c
59094}
59095
59096// Header returns an http.Header that can be modified by the caller to
59097// add HTTP headers to the request.
59098func (c *FirewallPoliciesGetCall) Header() http.Header {
59099	if c.header_ == nil {
59100		c.header_ = make(http.Header)
59101	}
59102	return c.header_
59103}
59104
59105func (c *FirewallPoliciesGetCall) doRequest(alt string) (*http.Response, error) {
59106	reqHeaders := make(http.Header)
59107	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
59108	for k, v := range c.header_ {
59109		reqHeaders[k] = v
59110	}
59111	reqHeaders.Set("User-Agent", c.s.userAgent())
59112	if c.ifNoneMatch_ != "" {
59113		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
59114	}
59115	var body io.Reader = nil
59116	c.urlParams_.Set("alt", alt)
59117	c.urlParams_.Set("prettyPrint", "false")
59118	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}")
59119	urls += "?" + c.urlParams_.Encode()
59120	req, err := http.NewRequest("GET", urls, body)
59121	if err != nil {
59122		return nil, err
59123	}
59124	req.Header = reqHeaders
59125	googleapi.Expand(req.URL, map[string]string{
59126		"firewallPolicy": c.firewallPolicy,
59127	})
59128	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59129}
59130
59131// Do executes the "compute.firewallPolicies.get" call.
59132// Exactly one of *FirewallPolicy or error will be non-nil. Any non-2xx
59133// status code is an error. Response headers are in either
59134// *FirewallPolicy.ServerResponse.Header or (if a response was returned
59135// at all) in error.(*googleapi.Error).Header. Use
59136// googleapi.IsNotModified to check whether the returned error was
59137// because http.StatusNotModified was returned.
59138func (c *FirewallPoliciesGetCall) Do(opts ...googleapi.CallOption) (*FirewallPolicy, error) {
59139	gensupport.SetOptions(c.urlParams_, opts...)
59140	res, err := c.doRequest("json")
59141	if res != nil && res.StatusCode == http.StatusNotModified {
59142		if res.Body != nil {
59143			res.Body.Close()
59144		}
59145		return nil, &googleapi.Error{
59146			Code:   res.StatusCode,
59147			Header: res.Header,
59148		}
59149	}
59150	if err != nil {
59151		return nil, err
59152	}
59153	defer googleapi.CloseBody(res)
59154	if err := googleapi.CheckResponse(res); err != nil {
59155		return nil, err
59156	}
59157	ret := &FirewallPolicy{
59158		ServerResponse: googleapi.ServerResponse{
59159			Header:         res.Header,
59160			HTTPStatusCode: res.StatusCode,
59161		},
59162	}
59163	target := &ret
59164	if err := gensupport.DecodeResponse(target, res); err != nil {
59165		return nil, err
59166	}
59167	return ret, nil
59168	// {
59169	//   "description": "Returns the specified firewall policy.",
59170	//   "httpMethod": "GET",
59171	//   "id": "compute.firewallPolicies.get",
59172	//   "parameterOrder": [
59173	//     "firewallPolicy"
59174	//   ],
59175	//   "parameters": {
59176	//     "firewallPolicy": {
59177	//       "description": "Name of the firewall policy to get.",
59178	//       "location": "path",
59179	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
59180	//       "required": true,
59181	//       "type": "string"
59182	//     }
59183	//   },
59184	//   "path": "locations/global/firewallPolicies/{firewallPolicy}",
59185	//   "response": {
59186	//     "$ref": "FirewallPolicy"
59187	//   },
59188	//   "scopes": [
59189	//     "https://www.googleapis.com/auth/cloud-platform",
59190	//     "https://www.googleapis.com/auth/compute",
59191	//     "https://www.googleapis.com/auth/compute.readonly"
59192	//   ]
59193	// }
59194
59195}
59196
59197// method id "compute.firewallPolicies.getAssociation":
59198
59199type FirewallPoliciesGetAssociationCall struct {
59200	s              *Service
59201	firewallPolicy string
59202	urlParams_     gensupport.URLParams
59203	ifNoneMatch_   string
59204	ctx_           context.Context
59205	header_        http.Header
59206}
59207
59208// GetAssociation: Gets an association with the specified name.
59209//
59210// - firewallPolicy: Name of the firewall policy to which the queried
59211//   rule belongs.
59212func (r *FirewallPoliciesService) GetAssociation(firewallPolicy string) *FirewallPoliciesGetAssociationCall {
59213	c := &FirewallPoliciesGetAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59214	c.firewallPolicy = firewallPolicy
59215	return c
59216}
59217
59218// Name sets the optional parameter "name": The name of the association
59219// to get from the firewall policy.
59220func (c *FirewallPoliciesGetAssociationCall) Name(name string) *FirewallPoliciesGetAssociationCall {
59221	c.urlParams_.Set("name", name)
59222	return c
59223}
59224
59225// Fields allows partial responses to be retrieved. See
59226// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59227// for more information.
59228func (c *FirewallPoliciesGetAssociationCall) Fields(s ...googleapi.Field) *FirewallPoliciesGetAssociationCall {
59229	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59230	return c
59231}
59232
59233// IfNoneMatch sets the optional parameter which makes the operation
59234// fail if the object's ETag matches the given value. This is useful for
59235// getting updates only after the object has changed since the last
59236// request. Use googleapi.IsNotModified to check whether the response
59237// error from Do is the result of In-None-Match.
59238func (c *FirewallPoliciesGetAssociationCall) IfNoneMatch(entityTag string) *FirewallPoliciesGetAssociationCall {
59239	c.ifNoneMatch_ = entityTag
59240	return c
59241}
59242
59243// Context sets the context to be used in this call's Do method. Any
59244// pending HTTP request will be aborted if the provided context is
59245// canceled.
59246func (c *FirewallPoliciesGetAssociationCall) Context(ctx context.Context) *FirewallPoliciesGetAssociationCall {
59247	c.ctx_ = ctx
59248	return c
59249}
59250
59251// Header returns an http.Header that can be modified by the caller to
59252// add HTTP headers to the request.
59253func (c *FirewallPoliciesGetAssociationCall) Header() http.Header {
59254	if c.header_ == nil {
59255		c.header_ = make(http.Header)
59256	}
59257	return c.header_
59258}
59259
59260func (c *FirewallPoliciesGetAssociationCall) doRequest(alt string) (*http.Response, error) {
59261	reqHeaders := make(http.Header)
59262	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
59263	for k, v := range c.header_ {
59264		reqHeaders[k] = v
59265	}
59266	reqHeaders.Set("User-Agent", c.s.userAgent())
59267	if c.ifNoneMatch_ != "" {
59268		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
59269	}
59270	var body io.Reader = nil
59271	c.urlParams_.Set("alt", alt)
59272	c.urlParams_.Set("prettyPrint", "false")
59273	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/getAssociation")
59274	urls += "?" + c.urlParams_.Encode()
59275	req, err := http.NewRequest("GET", urls, body)
59276	if err != nil {
59277		return nil, err
59278	}
59279	req.Header = reqHeaders
59280	googleapi.Expand(req.URL, map[string]string{
59281		"firewallPolicy": c.firewallPolicy,
59282	})
59283	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59284}
59285
59286// Do executes the "compute.firewallPolicies.getAssociation" call.
59287// Exactly one of *FirewallPolicyAssociation or error will be non-nil.
59288// Any non-2xx status code is an error. Response headers are in either
59289// *FirewallPolicyAssociation.ServerResponse.Header or (if a response
59290// was returned at all) in error.(*googleapi.Error).Header. Use
59291// googleapi.IsNotModified to check whether the returned error was
59292// because http.StatusNotModified was returned.
59293func (c *FirewallPoliciesGetAssociationCall) Do(opts ...googleapi.CallOption) (*FirewallPolicyAssociation, error) {
59294	gensupport.SetOptions(c.urlParams_, opts...)
59295	res, err := c.doRequest("json")
59296	if res != nil && res.StatusCode == http.StatusNotModified {
59297		if res.Body != nil {
59298			res.Body.Close()
59299		}
59300		return nil, &googleapi.Error{
59301			Code:   res.StatusCode,
59302			Header: res.Header,
59303		}
59304	}
59305	if err != nil {
59306		return nil, err
59307	}
59308	defer googleapi.CloseBody(res)
59309	if err := googleapi.CheckResponse(res); err != nil {
59310		return nil, err
59311	}
59312	ret := &FirewallPolicyAssociation{
59313		ServerResponse: googleapi.ServerResponse{
59314			Header:         res.Header,
59315			HTTPStatusCode: res.StatusCode,
59316		},
59317	}
59318	target := &ret
59319	if err := gensupport.DecodeResponse(target, res); err != nil {
59320		return nil, err
59321	}
59322	return ret, nil
59323	// {
59324	//   "description": "Gets an association with the specified name.",
59325	//   "httpMethod": "GET",
59326	//   "id": "compute.firewallPolicies.getAssociation",
59327	//   "parameterOrder": [
59328	//     "firewallPolicy"
59329	//   ],
59330	//   "parameters": {
59331	//     "firewallPolicy": {
59332	//       "description": "Name of the firewall policy to which the queried rule belongs.",
59333	//       "location": "path",
59334	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
59335	//       "required": true,
59336	//       "type": "string"
59337	//     },
59338	//     "name": {
59339	//       "description": "The name of the association to get from the firewall policy.",
59340	//       "location": "query",
59341	//       "type": "string"
59342	//     }
59343	//   },
59344	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/getAssociation",
59345	//   "response": {
59346	//     "$ref": "FirewallPolicyAssociation"
59347	//   },
59348	//   "scopes": [
59349	//     "https://www.googleapis.com/auth/cloud-platform",
59350	//     "https://www.googleapis.com/auth/compute",
59351	//     "https://www.googleapis.com/auth/compute.readonly"
59352	//   ]
59353	// }
59354
59355}
59356
59357// method id "compute.firewallPolicies.getIamPolicy":
59358
59359type FirewallPoliciesGetIamPolicyCall struct {
59360	s            *Service
59361	resource     string
59362	urlParams_   gensupport.URLParams
59363	ifNoneMatch_ string
59364	ctx_         context.Context
59365	header_      http.Header
59366}
59367
59368// GetIamPolicy: Gets the access control policy for a resource. May be
59369// empty if no such policy or resource exists.
59370//
59371// - resource: Name or id of the resource for this request.
59372func (r *FirewallPoliciesService) GetIamPolicy(resource string) *FirewallPoliciesGetIamPolicyCall {
59373	c := &FirewallPoliciesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59374	c.resource = resource
59375	return c
59376}
59377
59378// OptionsRequestedPolicyVersion sets the optional parameter
59379// "optionsRequestedPolicyVersion": Requested IAM Policy version.
59380func (c *FirewallPoliciesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *FirewallPoliciesGetIamPolicyCall {
59381	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
59382	return c
59383}
59384
59385// Fields allows partial responses to be retrieved. See
59386// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59387// for more information.
59388func (c *FirewallPoliciesGetIamPolicyCall) Fields(s ...googleapi.Field) *FirewallPoliciesGetIamPolicyCall {
59389	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59390	return c
59391}
59392
59393// IfNoneMatch sets the optional parameter which makes the operation
59394// fail if the object's ETag matches the given value. This is useful for
59395// getting updates only after the object has changed since the last
59396// request. Use googleapi.IsNotModified to check whether the response
59397// error from Do is the result of In-None-Match.
59398func (c *FirewallPoliciesGetIamPolicyCall) IfNoneMatch(entityTag string) *FirewallPoliciesGetIamPolicyCall {
59399	c.ifNoneMatch_ = entityTag
59400	return c
59401}
59402
59403// Context sets the context to be used in this call's Do method. Any
59404// pending HTTP request will be aborted if the provided context is
59405// canceled.
59406func (c *FirewallPoliciesGetIamPolicyCall) Context(ctx context.Context) *FirewallPoliciesGetIamPolicyCall {
59407	c.ctx_ = ctx
59408	return c
59409}
59410
59411// Header returns an http.Header that can be modified by the caller to
59412// add HTTP headers to the request.
59413func (c *FirewallPoliciesGetIamPolicyCall) Header() http.Header {
59414	if c.header_ == nil {
59415		c.header_ = make(http.Header)
59416	}
59417	return c.header_
59418}
59419
59420func (c *FirewallPoliciesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
59421	reqHeaders := make(http.Header)
59422	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
59423	for k, v := range c.header_ {
59424		reqHeaders[k] = v
59425	}
59426	reqHeaders.Set("User-Agent", c.s.userAgent())
59427	if c.ifNoneMatch_ != "" {
59428		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
59429	}
59430	var body io.Reader = nil
59431	c.urlParams_.Set("alt", alt)
59432	c.urlParams_.Set("prettyPrint", "false")
59433	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{resource}/getIamPolicy")
59434	urls += "?" + c.urlParams_.Encode()
59435	req, err := http.NewRequest("GET", urls, body)
59436	if err != nil {
59437		return nil, err
59438	}
59439	req.Header = reqHeaders
59440	googleapi.Expand(req.URL, map[string]string{
59441		"resource": c.resource,
59442	})
59443	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59444}
59445
59446// Do executes the "compute.firewallPolicies.getIamPolicy" call.
59447// Exactly one of *Policy or error will be non-nil. Any non-2xx status
59448// code is an error. Response headers are in either
59449// *Policy.ServerResponse.Header or (if a response was returned at all)
59450// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
59451// check whether the returned error was because http.StatusNotModified
59452// was returned.
59453func (c *FirewallPoliciesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
59454	gensupport.SetOptions(c.urlParams_, opts...)
59455	res, err := c.doRequest("json")
59456	if res != nil && res.StatusCode == http.StatusNotModified {
59457		if res.Body != nil {
59458			res.Body.Close()
59459		}
59460		return nil, &googleapi.Error{
59461			Code:   res.StatusCode,
59462			Header: res.Header,
59463		}
59464	}
59465	if err != nil {
59466		return nil, err
59467	}
59468	defer googleapi.CloseBody(res)
59469	if err := googleapi.CheckResponse(res); err != nil {
59470		return nil, err
59471	}
59472	ret := &Policy{
59473		ServerResponse: googleapi.ServerResponse{
59474			Header:         res.Header,
59475			HTTPStatusCode: res.StatusCode,
59476		},
59477	}
59478	target := &ret
59479	if err := gensupport.DecodeResponse(target, res); err != nil {
59480		return nil, err
59481	}
59482	return ret, nil
59483	// {
59484	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
59485	//   "httpMethod": "GET",
59486	//   "id": "compute.firewallPolicies.getIamPolicy",
59487	//   "parameterOrder": [
59488	//     "resource"
59489	//   ],
59490	//   "parameters": {
59491	//     "optionsRequestedPolicyVersion": {
59492	//       "description": "Requested IAM Policy version.",
59493	//       "format": "int32",
59494	//       "location": "query",
59495	//       "type": "integer"
59496	//     },
59497	//     "resource": {
59498	//       "description": "Name or id of the resource for this request.",
59499	//       "location": "path",
59500	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
59501	//       "required": true,
59502	//       "type": "string"
59503	//     }
59504	//   },
59505	//   "path": "locations/global/firewallPolicies/{resource}/getIamPolicy",
59506	//   "response": {
59507	//     "$ref": "Policy"
59508	//   },
59509	//   "scopes": [
59510	//     "https://www.googleapis.com/auth/cloud-platform",
59511	//     "https://www.googleapis.com/auth/compute",
59512	//     "https://www.googleapis.com/auth/compute.readonly"
59513	//   ]
59514	// }
59515
59516}
59517
59518// method id "compute.firewallPolicies.getRule":
59519
59520type FirewallPoliciesGetRuleCall struct {
59521	s              *Service
59522	firewallPolicy string
59523	urlParams_     gensupport.URLParams
59524	ifNoneMatch_   string
59525	ctx_           context.Context
59526	header_        http.Header
59527}
59528
59529// GetRule: Gets a rule of the specified priority.
59530//
59531// - firewallPolicy: Name of the firewall policy to which the queried
59532//   rule belongs.
59533func (r *FirewallPoliciesService) GetRule(firewallPolicy string) *FirewallPoliciesGetRuleCall {
59534	c := &FirewallPoliciesGetRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59535	c.firewallPolicy = firewallPolicy
59536	return c
59537}
59538
59539// Priority sets the optional parameter "priority": The priority of the
59540// rule to get from the firewall policy.
59541func (c *FirewallPoliciesGetRuleCall) Priority(priority int64) *FirewallPoliciesGetRuleCall {
59542	c.urlParams_.Set("priority", fmt.Sprint(priority))
59543	return c
59544}
59545
59546// Fields allows partial responses to be retrieved. See
59547// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59548// for more information.
59549func (c *FirewallPoliciesGetRuleCall) Fields(s ...googleapi.Field) *FirewallPoliciesGetRuleCall {
59550	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59551	return c
59552}
59553
59554// IfNoneMatch sets the optional parameter which makes the operation
59555// fail if the object's ETag matches the given value. This is useful for
59556// getting updates only after the object has changed since the last
59557// request. Use googleapi.IsNotModified to check whether the response
59558// error from Do is the result of In-None-Match.
59559func (c *FirewallPoliciesGetRuleCall) IfNoneMatch(entityTag string) *FirewallPoliciesGetRuleCall {
59560	c.ifNoneMatch_ = entityTag
59561	return c
59562}
59563
59564// Context sets the context to be used in this call's Do method. Any
59565// pending HTTP request will be aborted if the provided context is
59566// canceled.
59567func (c *FirewallPoliciesGetRuleCall) Context(ctx context.Context) *FirewallPoliciesGetRuleCall {
59568	c.ctx_ = ctx
59569	return c
59570}
59571
59572// Header returns an http.Header that can be modified by the caller to
59573// add HTTP headers to the request.
59574func (c *FirewallPoliciesGetRuleCall) Header() http.Header {
59575	if c.header_ == nil {
59576		c.header_ = make(http.Header)
59577	}
59578	return c.header_
59579}
59580
59581func (c *FirewallPoliciesGetRuleCall) doRequest(alt string) (*http.Response, error) {
59582	reqHeaders := make(http.Header)
59583	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
59584	for k, v := range c.header_ {
59585		reqHeaders[k] = v
59586	}
59587	reqHeaders.Set("User-Agent", c.s.userAgent())
59588	if c.ifNoneMatch_ != "" {
59589		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
59590	}
59591	var body io.Reader = nil
59592	c.urlParams_.Set("alt", alt)
59593	c.urlParams_.Set("prettyPrint", "false")
59594	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/getRule")
59595	urls += "?" + c.urlParams_.Encode()
59596	req, err := http.NewRequest("GET", urls, body)
59597	if err != nil {
59598		return nil, err
59599	}
59600	req.Header = reqHeaders
59601	googleapi.Expand(req.URL, map[string]string{
59602		"firewallPolicy": c.firewallPolicy,
59603	})
59604	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59605}
59606
59607// Do executes the "compute.firewallPolicies.getRule" call.
59608// Exactly one of *FirewallPolicyRule or error will be non-nil. Any
59609// non-2xx status code is an error. Response headers are in either
59610// *FirewallPolicyRule.ServerResponse.Header or (if a response was
59611// returned at all) in error.(*googleapi.Error).Header. Use
59612// googleapi.IsNotModified to check whether the returned error was
59613// because http.StatusNotModified was returned.
59614func (c *FirewallPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*FirewallPolicyRule, error) {
59615	gensupport.SetOptions(c.urlParams_, opts...)
59616	res, err := c.doRequest("json")
59617	if res != nil && res.StatusCode == http.StatusNotModified {
59618		if res.Body != nil {
59619			res.Body.Close()
59620		}
59621		return nil, &googleapi.Error{
59622			Code:   res.StatusCode,
59623			Header: res.Header,
59624		}
59625	}
59626	if err != nil {
59627		return nil, err
59628	}
59629	defer googleapi.CloseBody(res)
59630	if err := googleapi.CheckResponse(res); err != nil {
59631		return nil, err
59632	}
59633	ret := &FirewallPolicyRule{
59634		ServerResponse: googleapi.ServerResponse{
59635			Header:         res.Header,
59636			HTTPStatusCode: res.StatusCode,
59637		},
59638	}
59639	target := &ret
59640	if err := gensupport.DecodeResponse(target, res); err != nil {
59641		return nil, err
59642	}
59643	return ret, nil
59644	// {
59645	//   "description": "Gets a rule of the specified priority.",
59646	//   "httpMethod": "GET",
59647	//   "id": "compute.firewallPolicies.getRule",
59648	//   "parameterOrder": [
59649	//     "firewallPolicy"
59650	//   ],
59651	//   "parameters": {
59652	//     "firewallPolicy": {
59653	//       "description": "Name of the firewall policy to which the queried rule belongs.",
59654	//       "location": "path",
59655	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
59656	//       "required": true,
59657	//       "type": "string"
59658	//     },
59659	//     "priority": {
59660	//       "description": "The priority of the rule to get from the firewall policy.",
59661	//       "format": "int32",
59662	//       "location": "query",
59663	//       "type": "integer"
59664	//     }
59665	//   },
59666	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/getRule",
59667	//   "response": {
59668	//     "$ref": "FirewallPolicyRule"
59669	//   },
59670	//   "scopes": [
59671	//     "https://www.googleapis.com/auth/cloud-platform",
59672	//     "https://www.googleapis.com/auth/compute",
59673	//     "https://www.googleapis.com/auth/compute.readonly"
59674	//   ]
59675	// }
59676
59677}
59678
59679// method id "compute.firewallPolicies.insert":
59680
59681type FirewallPoliciesInsertCall struct {
59682	s              *Service
59683	firewallpolicy *FirewallPolicy
59684	urlParams_     gensupport.URLParams
59685	ctx_           context.Context
59686	header_        http.Header
59687}
59688
59689// Insert: Creates a new policy in the specified project using the data
59690// included in the request.
59691func (r *FirewallPoliciesService) Insert(firewallpolicy *FirewallPolicy) *FirewallPoliciesInsertCall {
59692	c := &FirewallPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59693	c.firewallpolicy = firewallpolicy
59694	return c
59695}
59696
59697// ParentId sets the optional parameter "parentId": Parent ID for this
59698// request. The ID can be either be "folders/[FOLDER_ID]" if the parent
59699// is a folder or "organizations/[ORGANIZATION_ID]" if the parent is an
59700// organization.
59701func (c *FirewallPoliciesInsertCall) ParentId(parentId string) *FirewallPoliciesInsertCall {
59702	c.urlParams_.Set("parentId", parentId)
59703	return c
59704}
59705
59706// RequestId sets the optional parameter "requestId": An optional
59707// request ID to identify requests. Specify a unique request ID so that
59708// if you must retry your request, the server will know to ignore the
59709// request if it has already been completed.
59710//
59711// For example, consider a situation where you make an initial request
59712// and the request times out. If you make the request again with the
59713// same request ID, the server can check if original operation with the
59714// same request ID was received, and if so, will ignore the second
59715// request. This prevents clients from accidentally creating duplicate
59716// commitments.
59717//
59718// The request ID must be a valid UUID with the exception that zero UUID
59719// is not supported (00000000-0000-0000-0000-000000000000).
59720func (c *FirewallPoliciesInsertCall) RequestId(requestId string) *FirewallPoliciesInsertCall {
59721	c.urlParams_.Set("requestId", requestId)
59722	return c
59723}
59724
59725// Fields allows partial responses to be retrieved. See
59726// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59727// for more information.
59728func (c *FirewallPoliciesInsertCall) Fields(s ...googleapi.Field) *FirewallPoliciesInsertCall {
59729	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59730	return c
59731}
59732
59733// Context sets the context to be used in this call's Do method. Any
59734// pending HTTP request will be aborted if the provided context is
59735// canceled.
59736func (c *FirewallPoliciesInsertCall) Context(ctx context.Context) *FirewallPoliciesInsertCall {
59737	c.ctx_ = ctx
59738	return c
59739}
59740
59741// Header returns an http.Header that can be modified by the caller to
59742// add HTTP headers to the request.
59743func (c *FirewallPoliciesInsertCall) Header() http.Header {
59744	if c.header_ == nil {
59745		c.header_ = make(http.Header)
59746	}
59747	return c.header_
59748}
59749
59750func (c *FirewallPoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
59751	reqHeaders := make(http.Header)
59752	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
59753	for k, v := range c.header_ {
59754		reqHeaders[k] = v
59755	}
59756	reqHeaders.Set("User-Agent", c.s.userAgent())
59757	var body io.Reader = nil
59758	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicy)
59759	if err != nil {
59760		return nil, err
59761	}
59762	reqHeaders.Set("Content-Type", "application/json")
59763	c.urlParams_.Set("alt", alt)
59764	c.urlParams_.Set("prettyPrint", "false")
59765	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies")
59766	urls += "?" + c.urlParams_.Encode()
59767	req, err := http.NewRequest("POST", urls, body)
59768	if err != nil {
59769		return nil, err
59770	}
59771	req.Header = reqHeaders
59772	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59773}
59774
59775// Do executes the "compute.firewallPolicies.insert" call.
59776// Exactly one of *Operation or error will be non-nil. Any non-2xx
59777// status code is an error. Response headers are in either
59778// *Operation.ServerResponse.Header or (if a response was returned at
59779// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59780// to check whether the returned error was because
59781// http.StatusNotModified was returned.
59782func (c *FirewallPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59783	gensupport.SetOptions(c.urlParams_, opts...)
59784	res, err := c.doRequest("json")
59785	if res != nil && res.StatusCode == http.StatusNotModified {
59786		if res.Body != nil {
59787			res.Body.Close()
59788		}
59789		return nil, &googleapi.Error{
59790			Code:   res.StatusCode,
59791			Header: res.Header,
59792		}
59793	}
59794	if err != nil {
59795		return nil, err
59796	}
59797	defer googleapi.CloseBody(res)
59798	if err := googleapi.CheckResponse(res); err != nil {
59799		return nil, err
59800	}
59801	ret := &Operation{
59802		ServerResponse: googleapi.ServerResponse{
59803			Header:         res.Header,
59804			HTTPStatusCode: res.StatusCode,
59805		},
59806	}
59807	target := &ret
59808	if err := gensupport.DecodeResponse(target, res); err != nil {
59809		return nil, err
59810	}
59811	return ret, nil
59812	// {
59813	//   "description": "Creates a new policy in the specified project using the data included in the request.",
59814	//   "httpMethod": "POST",
59815	//   "id": "compute.firewallPolicies.insert",
59816	//   "parameters": {
59817	//     "parentId": {
59818	//       "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.",
59819	//       "location": "query",
59820	//       "type": "string"
59821	//     },
59822	//     "requestId": {
59823	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
59824	//       "location": "query",
59825	//       "type": "string"
59826	//     }
59827	//   },
59828	//   "path": "locations/global/firewallPolicies",
59829	//   "request": {
59830	//     "$ref": "FirewallPolicy"
59831	//   },
59832	//   "response": {
59833	//     "$ref": "Operation"
59834	//   },
59835	//   "scopes": [
59836	//     "https://www.googleapis.com/auth/cloud-platform",
59837	//     "https://www.googleapis.com/auth/compute"
59838	//   ]
59839	// }
59840
59841}
59842
59843// method id "compute.firewallPolicies.list":
59844
59845type FirewallPoliciesListCall struct {
59846	s            *Service
59847	urlParams_   gensupport.URLParams
59848	ifNoneMatch_ string
59849	ctx_         context.Context
59850	header_      http.Header
59851}
59852
59853// List: Lists all the policies that have been configured for the
59854// specified folder or organization.
59855func (r *FirewallPoliciesService) List() *FirewallPoliciesListCall {
59856	c := &FirewallPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59857	return c
59858}
59859
59860// Filter sets the optional parameter "filter": A filter expression that
59861// filters resources listed in the response. The expression must specify
59862// the field name, a comparison operator, and the value that you want to
59863// use for filtering. The value must be a string, a number, or a
59864// boolean. The comparison operator must be either `=`, `!=`, `>`, or
59865// `<`.
59866//
59867// For example, if you are filtering Compute Engine instances, you can
59868// exclude instances named `example-instance` by specifying `name !=
59869// example-instance`.
59870//
59871// You can also filter nested fields. For example, you could specify
59872// `scheduling.automaticRestart = false` to include instances only if
59873// they are not scheduled for automatic restarts. You can use filtering
59874// on nested fields to filter based on resource labels.
59875//
59876// To filter on multiple expressions, provide each separate expression
59877// within parentheses. For example: ``` (scheduling.automaticRestart =
59878// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
59879// is an `AND` expression. However, you can include `AND` and `OR`
59880// expressions explicitly. For example: ``` (cpuPlatform = "Intel
59881// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
59882// (scheduling.automaticRestart = true) ```
59883func (c *FirewallPoliciesListCall) Filter(filter string) *FirewallPoliciesListCall {
59884	c.urlParams_.Set("filter", filter)
59885	return c
59886}
59887
59888// MaxResults sets the optional parameter "maxResults": The maximum
59889// number of results per page that should be returned. If the number of
59890// available results is larger than `maxResults`, Compute Engine returns
59891// a `nextPageToken` that can be used to get the next page of results in
59892// subsequent list requests. Acceptable values are `0` to `500`,
59893// inclusive. (Default: `500`)
59894func (c *FirewallPoliciesListCall) MaxResults(maxResults int64) *FirewallPoliciesListCall {
59895	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
59896	return c
59897}
59898
59899// OrderBy sets the optional parameter "orderBy": Sorts list results by
59900// a certain order. By default, results are returned in alphanumerical
59901// order based on the resource name.
59902//
59903// You can also sort results in descending order based on the creation
59904// timestamp using `orderBy="creationTimestamp desc". This sorts
59905// results based on the `creationTimestamp` field in reverse
59906// chronological order (newest result first). Use this to sort resources
59907// like operations so that the newest operation is returned
59908// first.
59909//
59910// Currently, only sorting by `name` or `creationTimestamp desc` is
59911// supported.
59912func (c *FirewallPoliciesListCall) OrderBy(orderBy string) *FirewallPoliciesListCall {
59913	c.urlParams_.Set("orderBy", orderBy)
59914	return c
59915}
59916
59917// PageToken sets the optional parameter "pageToken": Specifies a page
59918// token to use. Set `pageToken` to the `nextPageToken` returned by a
59919// previous list request to get the next page of results.
59920func (c *FirewallPoliciesListCall) PageToken(pageToken string) *FirewallPoliciesListCall {
59921	c.urlParams_.Set("pageToken", pageToken)
59922	return c
59923}
59924
59925// ParentId sets the optional parameter "parentId": Parent ID for this
59926// request.
59927func (c *FirewallPoliciesListCall) ParentId(parentId string) *FirewallPoliciesListCall {
59928	c.urlParams_.Set("parentId", parentId)
59929	return c
59930}
59931
59932// ReturnPartialSuccess sets the optional parameter
59933// "returnPartialSuccess": Opt-in for partial success behavior which
59934// provides partial results in case of failure. The default value is
59935// false.
59936func (c *FirewallPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *FirewallPoliciesListCall {
59937	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
59938	return c
59939}
59940
59941// Fields allows partial responses to be retrieved. See
59942// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59943// for more information.
59944func (c *FirewallPoliciesListCall) Fields(s ...googleapi.Field) *FirewallPoliciesListCall {
59945	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59946	return c
59947}
59948
59949// IfNoneMatch sets the optional parameter which makes the operation
59950// fail if the object's ETag matches the given value. This is useful for
59951// getting updates only after the object has changed since the last
59952// request. Use googleapi.IsNotModified to check whether the response
59953// error from Do is the result of In-None-Match.
59954func (c *FirewallPoliciesListCall) IfNoneMatch(entityTag string) *FirewallPoliciesListCall {
59955	c.ifNoneMatch_ = entityTag
59956	return c
59957}
59958
59959// Context sets the context to be used in this call's Do method. Any
59960// pending HTTP request will be aborted if the provided context is
59961// canceled.
59962func (c *FirewallPoliciesListCall) Context(ctx context.Context) *FirewallPoliciesListCall {
59963	c.ctx_ = ctx
59964	return c
59965}
59966
59967// Header returns an http.Header that can be modified by the caller to
59968// add HTTP headers to the request.
59969func (c *FirewallPoliciesListCall) Header() http.Header {
59970	if c.header_ == nil {
59971		c.header_ = make(http.Header)
59972	}
59973	return c.header_
59974}
59975
59976func (c *FirewallPoliciesListCall) doRequest(alt string) (*http.Response, error) {
59977	reqHeaders := make(http.Header)
59978	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
59979	for k, v := range c.header_ {
59980		reqHeaders[k] = v
59981	}
59982	reqHeaders.Set("User-Agent", c.s.userAgent())
59983	if c.ifNoneMatch_ != "" {
59984		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
59985	}
59986	var body io.Reader = nil
59987	c.urlParams_.Set("alt", alt)
59988	c.urlParams_.Set("prettyPrint", "false")
59989	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies")
59990	urls += "?" + c.urlParams_.Encode()
59991	req, err := http.NewRequest("GET", urls, body)
59992	if err != nil {
59993		return nil, err
59994	}
59995	req.Header = reqHeaders
59996	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59997}
59998
59999// Do executes the "compute.firewallPolicies.list" call.
60000// Exactly one of *FirewallPolicyList or error will be non-nil. Any
60001// non-2xx status code is an error. Response headers are in either
60002// *FirewallPolicyList.ServerResponse.Header or (if a response was
60003// returned at all) in error.(*googleapi.Error).Header. Use
60004// googleapi.IsNotModified to check whether the returned error was
60005// because http.StatusNotModified was returned.
60006func (c *FirewallPoliciesListCall) Do(opts ...googleapi.CallOption) (*FirewallPolicyList, error) {
60007	gensupport.SetOptions(c.urlParams_, opts...)
60008	res, err := c.doRequest("json")
60009	if res != nil && res.StatusCode == http.StatusNotModified {
60010		if res.Body != nil {
60011			res.Body.Close()
60012		}
60013		return nil, &googleapi.Error{
60014			Code:   res.StatusCode,
60015			Header: res.Header,
60016		}
60017	}
60018	if err != nil {
60019		return nil, err
60020	}
60021	defer googleapi.CloseBody(res)
60022	if err := googleapi.CheckResponse(res); err != nil {
60023		return nil, err
60024	}
60025	ret := &FirewallPolicyList{
60026		ServerResponse: googleapi.ServerResponse{
60027			Header:         res.Header,
60028			HTTPStatusCode: res.StatusCode,
60029		},
60030	}
60031	target := &ret
60032	if err := gensupport.DecodeResponse(target, res); err != nil {
60033		return nil, err
60034	}
60035	return ret, nil
60036	// {
60037	//   "description": "Lists all the policies that have been configured for the specified folder or organization.",
60038	//   "httpMethod": "GET",
60039	//   "id": "compute.firewallPolicies.list",
60040	//   "parameters": {
60041	//     "filter": {
60042	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
60043	//       "location": "query",
60044	//       "type": "string"
60045	//     },
60046	//     "maxResults": {
60047	//       "default": "500",
60048	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
60049	//       "format": "uint32",
60050	//       "location": "query",
60051	//       "minimum": "0",
60052	//       "type": "integer"
60053	//     },
60054	//     "orderBy": {
60055	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
60056	//       "location": "query",
60057	//       "type": "string"
60058	//     },
60059	//     "pageToken": {
60060	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
60061	//       "location": "query",
60062	//       "type": "string"
60063	//     },
60064	//     "parentId": {
60065	//       "description": "Parent ID for this request.",
60066	//       "location": "query",
60067	//       "type": "string"
60068	//     },
60069	//     "returnPartialSuccess": {
60070	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
60071	//       "location": "query",
60072	//       "type": "boolean"
60073	//     }
60074	//   },
60075	//   "path": "locations/global/firewallPolicies",
60076	//   "response": {
60077	//     "$ref": "FirewallPolicyList"
60078	//   },
60079	//   "scopes": [
60080	//     "https://www.googleapis.com/auth/cloud-platform",
60081	//     "https://www.googleapis.com/auth/compute",
60082	//     "https://www.googleapis.com/auth/compute.readonly"
60083	//   ]
60084	// }
60085
60086}
60087
60088// Pages invokes f for each page of results.
60089// A non-nil error returned from f will halt the iteration.
60090// The provided context supersedes any context provided to the Context method.
60091func (c *FirewallPoliciesListCall) Pages(ctx context.Context, f func(*FirewallPolicyList) error) error {
60092	c.ctx_ = ctx
60093	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
60094	for {
60095		x, err := c.Do()
60096		if err != nil {
60097			return err
60098		}
60099		if err := f(x); err != nil {
60100			return err
60101		}
60102		if x.NextPageToken == "" {
60103			return nil
60104		}
60105		c.PageToken(x.NextPageToken)
60106	}
60107}
60108
60109// method id "compute.firewallPolicies.listAssociations":
60110
60111type FirewallPoliciesListAssociationsCall struct {
60112	s            *Service
60113	urlParams_   gensupport.URLParams
60114	ifNoneMatch_ string
60115	ctx_         context.Context
60116	header_      http.Header
60117}
60118
60119// ListAssociations: Lists associations of a specified target, i.e.,
60120// organization or folder.
60121func (r *FirewallPoliciesService) ListAssociations() *FirewallPoliciesListAssociationsCall {
60122	c := &FirewallPoliciesListAssociationsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60123	return c
60124}
60125
60126// TargetResource sets the optional parameter "targetResource": The
60127// target resource to list associations. It is an organization, or a
60128// folder.
60129func (c *FirewallPoliciesListAssociationsCall) TargetResource(targetResource string) *FirewallPoliciesListAssociationsCall {
60130	c.urlParams_.Set("targetResource", targetResource)
60131	return c
60132}
60133
60134// Fields allows partial responses to be retrieved. See
60135// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60136// for more information.
60137func (c *FirewallPoliciesListAssociationsCall) Fields(s ...googleapi.Field) *FirewallPoliciesListAssociationsCall {
60138	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60139	return c
60140}
60141
60142// IfNoneMatch sets the optional parameter which makes the operation
60143// fail if the object's ETag matches the given value. This is useful for
60144// getting updates only after the object has changed since the last
60145// request. Use googleapi.IsNotModified to check whether the response
60146// error from Do is the result of In-None-Match.
60147func (c *FirewallPoliciesListAssociationsCall) IfNoneMatch(entityTag string) *FirewallPoliciesListAssociationsCall {
60148	c.ifNoneMatch_ = entityTag
60149	return c
60150}
60151
60152// Context sets the context to be used in this call's Do method. Any
60153// pending HTTP request will be aborted if the provided context is
60154// canceled.
60155func (c *FirewallPoliciesListAssociationsCall) Context(ctx context.Context) *FirewallPoliciesListAssociationsCall {
60156	c.ctx_ = ctx
60157	return c
60158}
60159
60160// Header returns an http.Header that can be modified by the caller to
60161// add HTTP headers to the request.
60162func (c *FirewallPoliciesListAssociationsCall) Header() http.Header {
60163	if c.header_ == nil {
60164		c.header_ = make(http.Header)
60165	}
60166	return c.header_
60167}
60168
60169func (c *FirewallPoliciesListAssociationsCall) doRequest(alt string) (*http.Response, error) {
60170	reqHeaders := make(http.Header)
60171	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
60172	for k, v := range c.header_ {
60173		reqHeaders[k] = v
60174	}
60175	reqHeaders.Set("User-Agent", c.s.userAgent())
60176	if c.ifNoneMatch_ != "" {
60177		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
60178	}
60179	var body io.Reader = nil
60180	c.urlParams_.Set("alt", alt)
60181	c.urlParams_.Set("prettyPrint", "false")
60182	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/listAssociations")
60183	urls += "?" + c.urlParams_.Encode()
60184	req, err := http.NewRequest("GET", urls, body)
60185	if err != nil {
60186		return nil, err
60187	}
60188	req.Header = reqHeaders
60189	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60190}
60191
60192// Do executes the "compute.firewallPolicies.listAssociations" call.
60193// Exactly one of *FirewallPoliciesListAssociationsResponse or error
60194// will be non-nil. Any non-2xx status code is an error. Response
60195// headers are in either
60196// *FirewallPoliciesListAssociationsResponse.ServerResponse.Header or
60197// (if a response was returned at all) in
60198// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
60199// whether the returned error was because http.StatusNotModified was
60200// returned.
60201func (c *FirewallPoliciesListAssociationsCall) Do(opts ...googleapi.CallOption) (*FirewallPoliciesListAssociationsResponse, error) {
60202	gensupport.SetOptions(c.urlParams_, opts...)
60203	res, err := c.doRequest("json")
60204	if res != nil && res.StatusCode == http.StatusNotModified {
60205		if res.Body != nil {
60206			res.Body.Close()
60207		}
60208		return nil, &googleapi.Error{
60209			Code:   res.StatusCode,
60210			Header: res.Header,
60211		}
60212	}
60213	if err != nil {
60214		return nil, err
60215	}
60216	defer googleapi.CloseBody(res)
60217	if err := googleapi.CheckResponse(res); err != nil {
60218		return nil, err
60219	}
60220	ret := &FirewallPoliciesListAssociationsResponse{
60221		ServerResponse: googleapi.ServerResponse{
60222			Header:         res.Header,
60223			HTTPStatusCode: res.StatusCode,
60224		},
60225	}
60226	target := &ret
60227	if err := gensupport.DecodeResponse(target, res); err != nil {
60228		return nil, err
60229	}
60230	return ret, nil
60231	// {
60232	//   "description": "Lists associations of a specified target, i.e., organization or folder.",
60233	//   "httpMethod": "GET",
60234	//   "id": "compute.firewallPolicies.listAssociations",
60235	//   "parameters": {
60236	//     "targetResource": {
60237	//       "description": "The target resource to list associations. It is an organization, or a folder.",
60238	//       "location": "query",
60239	//       "type": "string"
60240	//     }
60241	//   },
60242	//   "path": "locations/global/firewallPolicies/listAssociations",
60243	//   "response": {
60244	//     "$ref": "FirewallPoliciesListAssociationsResponse"
60245	//   },
60246	//   "scopes": [
60247	//     "https://www.googleapis.com/auth/cloud-platform",
60248	//     "https://www.googleapis.com/auth/compute"
60249	//   ]
60250	// }
60251
60252}
60253
60254// method id "compute.firewallPolicies.move":
60255
60256type FirewallPoliciesMoveCall struct {
60257	s              *Service
60258	firewallPolicy string
60259	urlParams_     gensupport.URLParams
60260	ctx_           context.Context
60261	header_        http.Header
60262}
60263
60264// Move: Moves the specified firewall policy.
60265//
60266// - firewallPolicy: Name of the firewall policy to update.
60267func (r *FirewallPoliciesService) Move(firewallPolicy string) *FirewallPoliciesMoveCall {
60268	c := &FirewallPoliciesMoveCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60269	c.firewallPolicy = firewallPolicy
60270	return c
60271}
60272
60273// ParentId sets the optional parameter "parentId": The new parent of
60274// the firewall policy.
60275func (c *FirewallPoliciesMoveCall) ParentId(parentId string) *FirewallPoliciesMoveCall {
60276	c.urlParams_.Set("parentId", parentId)
60277	return c
60278}
60279
60280// RequestId sets the optional parameter "requestId": An optional
60281// request ID to identify requests. Specify a unique request ID so that
60282// if you must retry your request, the server will know to ignore the
60283// request if it has already been completed.
60284//
60285// For example, consider a situation where you make an initial request
60286// and the request times out. If you make the request again with the
60287// same request ID, the server can check if original operation with the
60288// same request ID was received, and if so, will ignore the second
60289// request. This prevents clients from accidentally creating duplicate
60290// commitments.
60291//
60292// The request ID must be a valid UUID with the exception that zero UUID
60293// is not supported (00000000-0000-0000-0000-000000000000).
60294func (c *FirewallPoliciesMoveCall) RequestId(requestId string) *FirewallPoliciesMoveCall {
60295	c.urlParams_.Set("requestId", requestId)
60296	return c
60297}
60298
60299// Fields allows partial responses to be retrieved. See
60300// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60301// for more information.
60302func (c *FirewallPoliciesMoveCall) Fields(s ...googleapi.Field) *FirewallPoliciesMoveCall {
60303	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60304	return c
60305}
60306
60307// Context sets the context to be used in this call's Do method. Any
60308// pending HTTP request will be aborted if the provided context is
60309// canceled.
60310func (c *FirewallPoliciesMoveCall) Context(ctx context.Context) *FirewallPoliciesMoveCall {
60311	c.ctx_ = ctx
60312	return c
60313}
60314
60315// Header returns an http.Header that can be modified by the caller to
60316// add HTTP headers to the request.
60317func (c *FirewallPoliciesMoveCall) Header() http.Header {
60318	if c.header_ == nil {
60319		c.header_ = make(http.Header)
60320	}
60321	return c.header_
60322}
60323
60324func (c *FirewallPoliciesMoveCall) doRequest(alt string) (*http.Response, error) {
60325	reqHeaders := make(http.Header)
60326	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
60327	for k, v := range c.header_ {
60328		reqHeaders[k] = v
60329	}
60330	reqHeaders.Set("User-Agent", c.s.userAgent())
60331	var body io.Reader = nil
60332	c.urlParams_.Set("alt", alt)
60333	c.urlParams_.Set("prettyPrint", "false")
60334	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/move")
60335	urls += "?" + c.urlParams_.Encode()
60336	req, err := http.NewRequest("POST", urls, body)
60337	if err != nil {
60338		return nil, err
60339	}
60340	req.Header = reqHeaders
60341	googleapi.Expand(req.URL, map[string]string{
60342		"firewallPolicy": c.firewallPolicy,
60343	})
60344	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60345}
60346
60347// Do executes the "compute.firewallPolicies.move" call.
60348// Exactly one of *Operation or error will be non-nil. Any non-2xx
60349// status code is an error. Response headers are in either
60350// *Operation.ServerResponse.Header or (if a response was returned at
60351// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60352// to check whether the returned error was because
60353// http.StatusNotModified was returned.
60354func (c *FirewallPoliciesMoveCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60355	gensupport.SetOptions(c.urlParams_, opts...)
60356	res, err := c.doRequest("json")
60357	if res != nil && res.StatusCode == http.StatusNotModified {
60358		if res.Body != nil {
60359			res.Body.Close()
60360		}
60361		return nil, &googleapi.Error{
60362			Code:   res.StatusCode,
60363			Header: res.Header,
60364		}
60365	}
60366	if err != nil {
60367		return nil, err
60368	}
60369	defer googleapi.CloseBody(res)
60370	if err := googleapi.CheckResponse(res); err != nil {
60371		return nil, err
60372	}
60373	ret := &Operation{
60374		ServerResponse: googleapi.ServerResponse{
60375			Header:         res.Header,
60376			HTTPStatusCode: res.StatusCode,
60377		},
60378	}
60379	target := &ret
60380	if err := gensupport.DecodeResponse(target, res); err != nil {
60381		return nil, err
60382	}
60383	return ret, nil
60384	// {
60385	//   "description": "Moves the specified firewall policy.",
60386	//   "httpMethod": "POST",
60387	//   "id": "compute.firewallPolicies.move",
60388	//   "parameterOrder": [
60389	//     "firewallPolicy"
60390	//   ],
60391	//   "parameters": {
60392	//     "firewallPolicy": {
60393	//       "description": "Name of the firewall policy to update.",
60394	//       "location": "path",
60395	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
60396	//       "required": true,
60397	//       "type": "string"
60398	//     },
60399	//     "parentId": {
60400	//       "description": "The new parent of the firewall policy.",
60401	//       "location": "query",
60402	//       "type": "string"
60403	//     },
60404	//     "requestId": {
60405	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60406	//       "location": "query",
60407	//       "type": "string"
60408	//     }
60409	//   },
60410	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/move",
60411	//   "response": {
60412	//     "$ref": "Operation"
60413	//   },
60414	//   "scopes": [
60415	//     "https://www.googleapis.com/auth/cloud-platform",
60416	//     "https://www.googleapis.com/auth/compute"
60417	//   ]
60418	// }
60419
60420}
60421
60422// method id "compute.firewallPolicies.patch":
60423
60424type FirewallPoliciesPatchCall struct {
60425	s              *Service
60426	firewallPolicy string
60427	firewallpolicy *FirewallPolicy
60428	urlParams_     gensupport.URLParams
60429	ctx_           context.Context
60430	header_        http.Header
60431}
60432
60433// Patch: Patches the specified policy with the data included in the
60434// request.
60435//
60436// - firewallPolicy: Name of the firewall policy to update.
60437func (r *FirewallPoliciesService) Patch(firewallPolicy string, firewallpolicy *FirewallPolicy) *FirewallPoliciesPatchCall {
60438	c := &FirewallPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60439	c.firewallPolicy = firewallPolicy
60440	c.firewallpolicy = firewallpolicy
60441	return c
60442}
60443
60444// RequestId sets the optional parameter "requestId": An optional
60445// request ID to identify requests. Specify a unique request ID so that
60446// if you must retry your request, the server will know to ignore the
60447// request if it has already been completed.
60448//
60449// For example, consider a situation where you make an initial request
60450// and the request times out. If you make the request again with the
60451// same request ID, the server can check if original operation with the
60452// same request ID was received, and if so, will ignore the second
60453// request. This prevents clients from accidentally creating duplicate
60454// commitments.
60455//
60456// The request ID must be a valid UUID with the exception that zero UUID
60457// is not supported (00000000-0000-0000-0000-000000000000).
60458func (c *FirewallPoliciesPatchCall) RequestId(requestId string) *FirewallPoliciesPatchCall {
60459	c.urlParams_.Set("requestId", requestId)
60460	return c
60461}
60462
60463// Fields allows partial responses to be retrieved. See
60464// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60465// for more information.
60466func (c *FirewallPoliciesPatchCall) Fields(s ...googleapi.Field) *FirewallPoliciesPatchCall {
60467	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60468	return c
60469}
60470
60471// Context sets the context to be used in this call's Do method. Any
60472// pending HTTP request will be aborted if the provided context is
60473// canceled.
60474func (c *FirewallPoliciesPatchCall) Context(ctx context.Context) *FirewallPoliciesPatchCall {
60475	c.ctx_ = ctx
60476	return c
60477}
60478
60479// Header returns an http.Header that can be modified by the caller to
60480// add HTTP headers to the request.
60481func (c *FirewallPoliciesPatchCall) Header() http.Header {
60482	if c.header_ == nil {
60483		c.header_ = make(http.Header)
60484	}
60485	return c.header_
60486}
60487
60488func (c *FirewallPoliciesPatchCall) doRequest(alt string) (*http.Response, error) {
60489	reqHeaders := make(http.Header)
60490	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
60491	for k, v := range c.header_ {
60492		reqHeaders[k] = v
60493	}
60494	reqHeaders.Set("User-Agent", c.s.userAgent())
60495	var body io.Reader = nil
60496	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicy)
60497	if err != nil {
60498		return nil, err
60499	}
60500	reqHeaders.Set("Content-Type", "application/json")
60501	c.urlParams_.Set("alt", alt)
60502	c.urlParams_.Set("prettyPrint", "false")
60503	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}")
60504	urls += "?" + c.urlParams_.Encode()
60505	req, err := http.NewRequest("PATCH", urls, body)
60506	if err != nil {
60507		return nil, err
60508	}
60509	req.Header = reqHeaders
60510	googleapi.Expand(req.URL, map[string]string{
60511		"firewallPolicy": c.firewallPolicy,
60512	})
60513	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60514}
60515
60516// Do executes the "compute.firewallPolicies.patch" call.
60517// Exactly one of *Operation or error will be non-nil. Any non-2xx
60518// status code is an error. Response headers are in either
60519// *Operation.ServerResponse.Header or (if a response was returned at
60520// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60521// to check whether the returned error was because
60522// http.StatusNotModified was returned.
60523func (c *FirewallPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60524	gensupport.SetOptions(c.urlParams_, opts...)
60525	res, err := c.doRequest("json")
60526	if res != nil && res.StatusCode == http.StatusNotModified {
60527		if res.Body != nil {
60528			res.Body.Close()
60529		}
60530		return nil, &googleapi.Error{
60531			Code:   res.StatusCode,
60532			Header: res.Header,
60533		}
60534	}
60535	if err != nil {
60536		return nil, err
60537	}
60538	defer googleapi.CloseBody(res)
60539	if err := googleapi.CheckResponse(res); err != nil {
60540		return nil, err
60541	}
60542	ret := &Operation{
60543		ServerResponse: googleapi.ServerResponse{
60544			Header:         res.Header,
60545			HTTPStatusCode: res.StatusCode,
60546		},
60547	}
60548	target := &ret
60549	if err := gensupport.DecodeResponse(target, res); err != nil {
60550		return nil, err
60551	}
60552	return ret, nil
60553	// {
60554	//   "description": "Patches the specified policy with the data included in the request.",
60555	//   "httpMethod": "PATCH",
60556	//   "id": "compute.firewallPolicies.patch",
60557	//   "parameterOrder": [
60558	//     "firewallPolicy"
60559	//   ],
60560	//   "parameters": {
60561	//     "firewallPolicy": {
60562	//       "description": "Name of the firewall policy to update.",
60563	//       "location": "path",
60564	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
60565	//       "required": true,
60566	//       "type": "string"
60567	//     },
60568	//     "requestId": {
60569	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60570	//       "location": "query",
60571	//       "type": "string"
60572	//     }
60573	//   },
60574	//   "path": "locations/global/firewallPolicies/{firewallPolicy}",
60575	//   "request": {
60576	//     "$ref": "FirewallPolicy"
60577	//   },
60578	//   "response": {
60579	//     "$ref": "Operation"
60580	//   },
60581	//   "scopes": [
60582	//     "https://www.googleapis.com/auth/cloud-platform",
60583	//     "https://www.googleapis.com/auth/compute"
60584	//   ]
60585	// }
60586
60587}
60588
60589// method id "compute.firewallPolicies.patchRule":
60590
60591type FirewallPoliciesPatchRuleCall struct {
60592	s                  *Service
60593	firewallPolicy     string
60594	firewallpolicyrule *FirewallPolicyRule
60595	urlParams_         gensupport.URLParams
60596	ctx_               context.Context
60597	header_            http.Header
60598}
60599
60600// PatchRule: Patches a rule of the specified priority.
60601//
60602// - firewallPolicy: Name of the firewall policy to update.
60603func (r *FirewallPoliciesService) PatchRule(firewallPolicy string, firewallpolicyrule *FirewallPolicyRule) *FirewallPoliciesPatchRuleCall {
60604	c := &FirewallPoliciesPatchRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60605	c.firewallPolicy = firewallPolicy
60606	c.firewallpolicyrule = firewallpolicyrule
60607	return c
60608}
60609
60610// Priority sets the optional parameter "priority": The priority of the
60611// rule to patch.
60612func (c *FirewallPoliciesPatchRuleCall) Priority(priority int64) *FirewallPoliciesPatchRuleCall {
60613	c.urlParams_.Set("priority", fmt.Sprint(priority))
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 *FirewallPoliciesPatchRuleCall) RequestId(requestId string) *FirewallPoliciesPatchRuleCall {
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 *FirewallPoliciesPatchRuleCall) Fields(s ...googleapi.Field) *FirewallPoliciesPatchRuleCall {
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 *FirewallPoliciesPatchRuleCall) Context(ctx context.Context) *FirewallPoliciesPatchRuleCall {
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 *FirewallPoliciesPatchRuleCall) Header() http.Header {
60655	if c.header_ == nil {
60656		c.header_ = make(http.Header)
60657	}
60658	return c.header_
60659}
60660
60661func (c *FirewallPoliciesPatchRuleCall) 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	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewallpolicyrule)
60670	if err != nil {
60671		return nil, err
60672	}
60673	reqHeaders.Set("Content-Type", "application/json")
60674	c.urlParams_.Set("alt", alt)
60675	c.urlParams_.Set("prettyPrint", "false")
60676	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/patchRule")
60677	urls += "?" + c.urlParams_.Encode()
60678	req, err := http.NewRequest("POST", urls, body)
60679	if err != nil {
60680		return nil, err
60681	}
60682	req.Header = reqHeaders
60683	googleapi.Expand(req.URL, map[string]string{
60684		"firewallPolicy": c.firewallPolicy,
60685	})
60686	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60687}
60688
60689// Do executes the "compute.firewallPolicies.patchRule" call.
60690// Exactly one of *Operation or error will be non-nil. Any non-2xx
60691// status code is an error. Response headers are in either
60692// *Operation.ServerResponse.Header or (if a response was returned at
60693// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60694// to check whether the returned error was because
60695// http.StatusNotModified was returned.
60696func (c *FirewallPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60697	gensupport.SetOptions(c.urlParams_, opts...)
60698	res, err := c.doRequest("json")
60699	if res != nil && res.StatusCode == http.StatusNotModified {
60700		if res.Body != nil {
60701			res.Body.Close()
60702		}
60703		return nil, &googleapi.Error{
60704			Code:   res.StatusCode,
60705			Header: res.Header,
60706		}
60707	}
60708	if err != nil {
60709		return nil, err
60710	}
60711	defer googleapi.CloseBody(res)
60712	if err := googleapi.CheckResponse(res); err != nil {
60713		return nil, err
60714	}
60715	ret := &Operation{
60716		ServerResponse: googleapi.ServerResponse{
60717			Header:         res.Header,
60718			HTTPStatusCode: res.StatusCode,
60719		},
60720	}
60721	target := &ret
60722	if err := gensupport.DecodeResponse(target, res); err != nil {
60723		return nil, err
60724	}
60725	return ret, nil
60726	// {
60727	//   "description": "Patches a rule of the specified priority.",
60728	//   "httpMethod": "POST",
60729	//   "id": "compute.firewallPolicies.patchRule",
60730	//   "parameterOrder": [
60731	//     "firewallPolicy"
60732	//   ],
60733	//   "parameters": {
60734	//     "firewallPolicy": {
60735	//       "description": "Name of the firewall policy to update.",
60736	//       "location": "path",
60737	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
60738	//       "required": true,
60739	//       "type": "string"
60740	//     },
60741	//     "priority": {
60742	//       "description": "The priority of the rule to patch.",
60743	//       "format": "int32",
60744	//       "location": "query",
60745	//       "type": "integer"
60746	//     },
60747	//     "requestId": {
60748	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60749	//       "location": "query",
60750	//       "type": "string"
60751	//     }
60752	//   },
60753	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/patchRule",
60754	//   "request": {
60755	//     "$ref": "FirewallPolicyRule"
60756	//   },
60757	//   "response": {
60758	//     "$ref": "Operation"
60759	//   },
60760	//   "scopes": [
60761	//     "https://www.googleapis.com/auth/cloud-platform",
60762	//     "https://www.googleapis.com/auth/compute"
60763	//   ]
60764	// }
60765
60766}
60767
60768// method id "compute.firewallPolicies.removeAssociation":
60769
60770type FirewallPoliciesRemoveAssociationCall struct {
60771	s              *Service
60772	firewallPolicy string
60773	urlParams_     gensupport.URLParams
60774	ctx_           context.Context
60775	header_        http.Header
60776}
60777
60778// RemoveAssociation: Removes an association for the specified firewall
60779// policy.
60780//
60781// - firewallPolicy: Name of the firewall policy to update.
60782func (r *FirewallPoliciesService) RemoveAssociation(firewallPolicy string) *FirewallPoliciesRemoveAssociationCall {
60783	c := &FirewallPoliciesRemoveAssociationCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60784	c.firewallPolicy = firewallPolicy
60785	return c
60786}
60787
60788// Name sets the optional parameter "name": Name for the attachment that
60789// will be removed.
60790func (c *FirewallPoliciesRemoveAssociationCall) Name(name string) *FirewallPoliciesRemoveAssociationCall {
60791	c.urlParams_.Set("name", name)
60792	return c
60793}
60794
60795// RequestId sets the optional parameter "requestId": An optional
60796// request ID to identify requests. Specify a unique request ID so that
60797// if you must retry your request, the server will know to ignore the
60798// request if it has already been completed.
60799//
60800// For example, consider a situation where you make an initial request
60801// and the request times out. If you make the request again with the
60802// same request ID, the server can check if original operation with the
60803// same request ID was received, and if so, will ignore the second
60804// request. This prevents clients from accidentally creating duplicate
60805// commitments.
60806//
60807// The request ID must be a valid UUID with the exception that zero UUID
60808// is not supported (00000000-0000-0000-0000-000000000000).
60809func (c *FirewallPoliciesRemoveAssociationCall) RequestId(requestId string) *FirewallPoliciesRemoveAssociationCall {
60810	c.urlParams_.Set("requestId", requestId)
60811	return c
60812}
60813
60814// Fields allows partial responses to be retrieved. See
60815// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60816// for more information.
60817func (c *FirewallPoliciesRemoveAssociationCall) Fields(s ...googleapi.Field) *FirewallPoliciesRemoveAssociationCall {
60818	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60819	return c
60820}
60821
60822// Context sets the context to be used in this call's Do method. Any
60823// pending HTTP request will be aborted if the provided context is
60824// canceled.
60825func (c *FirewallPoliciesRemoveAssociationCall) Context(ctx context.Context) *FirewallPoliciesRemoveAssociationCall {
60826	c.ctx_ = ctx
60827	return c
60828}
60829
60830// Header returns an http.Header that can be modified by the caller to
60831// add HTTP headers to the request.
60832func (c *FirewallPoliciesRemoveAssociationCall) Header() http.Header {
60833	if c.header_ == nil {
60834		c.header_ = make(http.Header)
60835	}
60836	return c.header_
60837}
60838
60839func (c *FirewallPoliciesRemoveAssociationCall) doRequest(alt string) (*http.Response, error) {
60840	reqHeaders := make(http.Header)
60841	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
60842	for k, v := range c.header_ {
60843		reqHeaders[k] = v
60844	}
60845	reqHeaders.Set("User-Agent", c.s.userAgent())
60846	var body io.Reader = nil
60847	c.urlParams_.Set("alt", alt)
60848	c.urlParams_.Set("prettyPrint", "false")
60849	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/removeAssociation")
60850	urls += "?" + c.urlParams_.Encode()
60851	req, err := http.NewRequest("POST", urls, body)
60852	if err != nil {
60853		return nil, err
60854	}
60855	req.Header = reqHeaders
60856	googleapi.Expand(req.URL, map[string]string{
60857		"firewallPolicy": c.firewallPolicy,
60858	})
60859	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60860}
60861
60862// Do executes the "compute.firewallPolicies.removeAssociation" call.
60863// Exactly one of *Operation or error will be non-nil. Any non-2xx
60864// status code is an error. Response headers are in either
60865// *Operation.ServerResponse.Header or (if a response was returned at
60866// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60867// to check whether the returned error was because
60868// http.StatusNotModified was returned.
60869func (c *FirewallPoliciesRemoveAssociationCall) Do(opts ...googleapi.CallOption) (*Operation, 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 := &Operation{
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": "Removes an association for the specified firewall policy.",
60901	//   "httpMethod": "POST",
60902	//   "id": "compute.firewallPolicies.removeAssociation",
60903	//   "parameterOrder": [
60904	//     "firewallPolicy"
60905	//   ],
60906	//   "parameters": {
60907	//     "firewallPolicy": {
60908	//       "description": "Name of the firewall policy to update.",
60909	//       "location": "path",
60910	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
60911	//       "required": true,
60912	//       "type": "string"
60913	//     },
60914	//     "name": {
60915	//       "description": "Name for the attachment that will be removed.",
60916	//       "location": "query",
60917	//       "type": "string"
60918	//     },
60919	//     "requestId": {
60920	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60921	//       "location": "query",
60922	//       "type": "string"
60923	//     }
60924	//   },
60925	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/removeAssociation",
60926	//   "response": {
60927	//     "$ref": "Operation"
60928	//   },
60929	//   "scopes": [
60930	//     "https://www.googleapis.com/auth/cloud-platform",
60931	//     "https://www.googleapis.com/auth/compute"
60932	//   ]
60933	// }
60934
60935}
60936
60937// method id "compute.firewallPolicies.removeRule":
60938
60939type FirewallPoliciesRemoveRuleCall struct {
60940	s              *Service
60941	firewallPolicy string
60942	urlParams_     gensupport.URLParams
60943	ctx_           context.Context
60944	header_        http.Header
60945}
60946
60947// RemoveRule: Deletes a rule of the specified priority.
60948//
60949// - firewallPolicy: Name of the firewall policy to update.
60950func (r *FirewallPoliciesService) RemoveRule(firewallPolicy string) *FirewallPoliciesRemoveRuleCall {
60951	c := &FirewallPoliciesRemoveRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60952	c.firewallPolicy = firewallPolicy
60953	return c
60954}
60955
60956// Priority sets the optional parameter "priority": The priority of the
60957// rule to remove from the firewall policy.
60958func (c *FirewallPoliciesRemoveRuleCall) Priority(priority int64) *FirewallPoliciesRemoveRuleCall {
60959	c.urlParams_.Set("priority", fmt.Sprint(priority))
60960	return c
60961}
60962
60963// RequestId sets the optional parameter "requestId": An optional
60964// request ID to identify requests. Specify a unique request ID so that
60965// if you must retry your request, the server will know to ignore the
60966// request if it has already been completed.
60967//
60968// For example, consider a situation where you make an initial request
60969// and the request times out. If you make the request again with the
60970// same request ID, the server can check if original operation with the
60971// same request ID was received, and if so, will ignore the second
60972// request. This prevents clients from accidentally creating duplicate
60973// commitments.
60974//
60975// The request ID must be a valid UUID with the exception that zero UUID
60976// is not supported (00000000-0000-0000-0000-000000000000).
60977func (c *FirewallPoliciesRemoveRuleCall) RequestId(requestId string) *FirewallPoliciesRemoveRuleCall {
60978	c.urlParams_.Set("requestId", requestId)
60979	return c
60980}
60981
60982// Fields allows partial responses to be retrieved. See
60983// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60984// for more information.
60985func (c *FirewallPoliciesRemoveRuleCall) Fields(s ...googleapi.Field) *FirewallPoliciesRemoveRuleCall {
60986	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60987	return c
60988}
60989
60990// Context sets the context to be used in this call's Do method. Any
60991// pending HTTP request will be aborted if the provided context is
60992// canceled.
60993func (c *FirewallPoliciesRemoveRuleCall) Context(ctx context.Context) *FirewallPoliciesRemoveRuleCall {
60994	c.ctx_ = ctx
60995	return c
60996}
60997
60998// Header returns an http.Header that can be modified by the caller to
60999// add HTTP headers to the request.
61000func (c *FirewallPoliciesRemoveRuleCall) Header() http.Header {
61001	if c.header_ == nil {
61002		c.header_ = make(http.Header)
61003	}
61004	return c.header_
61005}
61006
61007func (c *FirewallPoliciesRemoveRuleCall) doRequest(alt string) (*http.Response, error) {
61008	reqHeaders := make(http.Header)
61009	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
61010	for k, v := range c.header_ {
61011		reqHeaders[k] = v
61012	}
61013	reqHeaders.Set("User-Agent", c.s.userAgent())
61014	var body io.Reader = nil
61015	c.urlParams_.Set("alt", alt)
61016	c.urlParams_.Set("prettyPrint", "false")
61017	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{firewallPolicy}/removeRule")
61018	urls += "?" + c.urlParams_.Encode()
61019	req, err := http.NewRequest("POST", urls, body)
61020	if err != nil {
61021		return nil, err
61022	}
61023	req.Header = reqHeaders
61024	googleapi.Expand(req.URL, map[string]string{
61025		"firewallPolicy": c.firewallPolicy,
61026	})
61027	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61028}
61029
61030// Do executes the "compute.firewallPolicies.removeRule" call.
61031// Exactly one of *Operation or error will be non-nil. Any non-2xx
61032// status code is an error. Response headers are in either
61033// *Operation.ServerResponse.Header or (if a response was returned at
61034// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61035// to check whether the returned error was because
61036// http.StatusNotModified was returned.
61037func (c *FirewallPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61038	gensupport.SetOptions(c.urlParams_, opts...)
61039	res, err := c.doRequest("json")
61040	if res != nil && res.StatusCode == http.StatusNotModified {
61041		if res.Body != nil {
61042			res.Body.Close()
61043		}
61044		return nil, &googleapi.Error{
61045			Code:   res.StatusCode,
61046			Header: res.Header,
61047		}
61048	}
61049	if err != nil {
61050		return nil, err
61051	}
61052	defer googleapi.CloseBody(res)
61053	if err := googleapi.CheckResponse(res); err != nil {
61054		return nil, err
61055	}
61056	ret := &Operation{
61057		ServerResponse: googleapi.ServerResponse{
61058			Header:         res.Header,
61059			HTTPStatusCode: res.StatusCode,
61060		},
61061	}
61062	target := &ret
61063	if err := gensupport.DecodeResponse(target, res); err != nil {
61064		return nil, err
61065	}
61066	return ret, nil
61067	// {
61068	//   "description": "Deletes a rule of the specified priority.",
61069	//   "httpMethod": "POST",
61070	//   "id": "compute.firewallPolicies.removeRule",
61071	//   "parameterOrder": [
61072	//     "firewallPolicy"
61073	//   ],
61074	//   "parameters": {
61075	//     "firewallPolicy": {
61076	//       "description": "Name of the firewall policy to update.",
61077	//       "location": "path",
61078	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
61079	//       "required": true,
61080	//       "type": "string"
61081	//     },
61082	//     "priority": {
61083	//       "description": "The priority of the rule to remove from the firewall policy.",
61084	//       "format": "int32",
61085	//       "location": "query",
61086	//       "type": "integer"
61087	//     },
61088	//     "requestId": {
61089	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
61090	//       "location": "query",
61091	//       "type": "string"
61092	//     }
61093	//   },
61094	//   "path": "locations/global/firewallPolicies/{firewallPolicy}/removeRule",
61095	//   "response": {
61096	//     "$ref": "Operation"
61097	//   },
61098	//   "scopes": [
61099	//     "https://www.googleapis.com/auth/cloud-platform",
61100	//     "https://www.googleapis.com/auth/compute"
61101	//   ]
61102	// }
61103
61104}
61105
61106// method id "compute.firewallPolicies.setIamPolicy":
61107
61108type FirewallPoliciesSetIamPolicyCall struct {
61109	s                                  *Service
61110	resource                           string
61111	globalorganizationsetpolicyrequest *GlobalOrganizationSetPolicyRequest
61112	urlParams_                         gensupport.URLParams
61113	ctx_                               context.Context
61114	header_                            http.Header
61115}
61116
61117// SetIamPolicy: Sets the access control policy on the specified
61118// resource. Replaces any existing policy.
61119//
61120// - resource: Name or id of the resource for this request.
61121func (r *FirewallPoliciesService) SetIamPolicy(resource string, globalorganizationsetpolicyrequest *GlobalOrganizationSetPolicyRequest) *FirewallPoliciesSetIamPolicyCall {
61122	c := &FirewallPoliciesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61123	c.resource = resource
61124	c.globalorganizationsetpolicyrequest = globalorganizationsetpolicyrequest
61125	return c
61126}
61127
61128// Fields allows partial responses to be retrieved. See
61129// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61130// for more information.
61131func (c *FirewallPoliciesSetIamPolicyCall) Fields(s ...googleapi.Field) *FirewallPoliciesSetIamPolicyCall {
61132	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61133	return c
61134}
61135
61136// Context sets the context to be used in this call's Do method. Any
61137// pending HTTP request will be aborted if the provided context is
61138// canceled.
61139func (c *FirewallPoliciesSetIamPolicyCall) Context(ctx context.Context) *FirewallPoliciesSetIamPolicyCall {
61140	c.ctx_ = ctx
61141	return c
61142}
61143
61144// Header returns an http.Header that can be modified by the caller to
61145// add HTTP headers to the request.
61146func (c *FirewallPoliciesSetIamPolicyCall) Header() http.Header {
61147	if c.header_ == nil {
61148		c.header_ = make(http.Header)
61149	}
61150	return c.header_
61151}
61152
61153func (c *FirewallPoliciesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
61154	reqHeaders := make(http.Header)
61155	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
61156	for k, v := range c.header_ {
61157		reqHeaders[k] = v
61158	}
61159	reqHeaders.Set("User-Agent", c.s.userAgent())
61160	var body io.Reader = nil
61161	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalorganizationsetpolicyrequest)
61162	if err != nil {
61163		return nil, err
61164	}
61165	reqHeaders.Set("Content-Type", "application/json")
61166	c.urlParams_.Set("alt", alt)
61167	c.urlParams_.Set("prettyPrint", "false")
61168	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{resource}/setIamPolicy")
61169	urls += "?" + c.urlParams_.Encode()
61170	req, err := http.NewRequest("POST", urls, body)
61171	if err != nil {
61172		return nil, err
61173	}
61174	req.Header = reqHeaders
61175	googleapi.Expand(req.URL, map[string]string{
61176		"resource": c.resource,
61177	})
61178	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61179}
61180
61181// Do executes the "compute.firewallPolicies.setIamPolicy" call.
61182// Exactly one of *Policy or error will be non-nil. Any non-2xx status
61183// code is an error. Response headers are in either
61184// *Policy.ServerResponse.Header or (if a response was returned at all)
61185// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
61186// check whether the returned error was because http.StatusNotModified
61187// was returned.
61188func (c *FirewallPoliciesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
61189	gensupport.SetOptions(c.urlParams_, opts...)
61190	res, err := c.doRequest("json")
61191	if res != nil && res.StatusCode == http.StatusNotModified {
61192		if res.Body != nil {
61193			res.Body.Close()
61194		}
61195		return nil, &googleapi.Error{
61196			Code:   res.StatusCode,
61197			Header: res.Header,
61198		}
61199	}
61200	if err != nil {
61201		return nil, err
61202	}
61203	defer googleapi.CloseBody(res)
61204	if err := googleapi.CheckResponse(res); err != nil {
61205		return nil, err
61206	}
61207	ret := &Policy{
61208		ServerResponse: googleapi.ServerResponse{
61209			Header:         res.Header,
61210			HTTPStatusCode: res.StatusCode,
61211		},
61212	}
61213	target := &ret
61214	if err := gensupport.DecodeResponse(target, res); err != nil {
61215		return nil, err
61216	}
61217	return ret, nil
61218	// {
61219	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
61220	//   "httpMethod": "POST",
61221	//   "id": "compute.firewallPolicies.setIamPolicy",
61222	//   "parameterOrder": [
61223	//     "resource"
61224	//   ],
61225	//   "parameters": {
61226	//     "resource": {
61227	//       "description": "Name or id of the resource for this request.",
61228	//       "location": "path",
61229	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
61230	//       "required": true,
61231	//       "type": "string"
61232	//     }
61233	//   },
61234	//   "path": "locations/global/firewallPolicies/{resource}/setIamPolicy",
61235	//   "request": {
61236	//     "$ref": "GlobalOrganizationSetPolicyRequest"
61237	//   },
61238	//   "response": {
61239	//     "$ref": "Policy"
61240	//   },
61241	//   "scopes": [
61242	//     "https://www.googleapis.com/auth/cloud-platform",
61243	//     "https://www.googleapis.com/auth/compute"
61244	//   ]
61245	// }
61246
61247}
61248
61249// method id "compute.firewallPolicies.testIamPermissions":
61250
61251type FirewallPoliciesTestIamPermissionsCall struct {
61252	s                      *Service
61253	resource               string
61254	testpermissionsrequest *TestPermissionsRequest
61255	urlParams_             gensupport.URLParams
61256	ctx_                   context.Context
61257	header_                http.Header
61258}
61259
61260// TestIamPermissions: Returns permissions that a caller has on the
61261// specified resource.
61262//
61263// - resource: Name or id of the resource for this request.
61264func (r *FirewallPoliciesService) TestIamPermissions(resource string, testpermissionsrequest *TestPermissionsRequest) *FirewallPoliciesTestIamPermissionsCall {
61265	c := &FirewallPoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61266	c.resource = resource
61267	c.testpermissionsrequest = testpermissionsrequest
61268	return c
61269}
61270
61271// Fields allows partial responses to be retrieved. See
61272// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61273// for more information.
61274func (c *FirewallPoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *FirewallPoliciesTestIamPermissionsCall {
61275	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61276	return c
61277}
61278
61279// Context sets the context to be used in this call's Do method. Any
61280// pending HTTP request will be aborted if the provided context is
61281// canceled.
61282func (c *FirewallPoliciesTestIamPermissionsCall) Context(ctx context.Context) *FirewallPoliciesTestIamPermissionsCall {
61283	c.ctx_ = ctx
61284	return c
61285}
61286
61287// Header returns an http.Header that can be modified by the caller to
61288// add HTTP headers to the request.
61289func (c *FirewallPoliciesTestIamPermissionsCall) Header() http.Header {
61290	if c.header_ == nil {
61291		c.header_ = make(http.Header)
61292	}
61293	return c.header_
61294}
61295
61296func (c *FirewallPoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
61297	reqHeaders := make(http.Header)
61298	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
61299	for k, v := range c.header_ {
61300		reqHeaders[k] = v
61301	}
61302	reqHeaders.Set("User-Agent", c.s.userAgent())
61303	var body io.Reader = nil
61304	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
61305	if err != nil {
61306		return nil, err
61307	}
61308	reqHeaders.Set("Content-Type", "application/json")
61309	c.urlParams_.Set("alt", alt)
61310	c.urlParams_.Set("prettyPrint", "false")
61311	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/firewallPolicies/{resource}/testIamPermissions")
61312	urls += "?" + c.urlParams_.Encode()
61313	req, err := http.NewRequest("POST", urls, body)
61314	if err != nil {
61315		return nil, err
61316	}
61317	req.Header = reqHeaders
61318	googleapi.Expand(req.URL, map[string]string{
61319		"resource": c.resource,
61320	})
61321	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61322}
61323
61324// Do executes the "compute.firewallPolicies.testIamPermissions" call.
61325// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
61326// non-2xx status code is an error. Response headers are in either
61327// *TestPermissionsResponse.ServerResponse.Header or (if a response was
61328// returned at all) in error.(*googleapi.Error).Header. Use
61329// googleapi.IsNotModified to check whether the returned error was
61330// because http.StatusNotModified was returned.
61331func (c *FirewallPoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
61332	gensupport.SetOptions(c.urlParams_, opts...)
61333	res, err := c.doRequest("json")
61334	if res != nil && res.StatusCode == http.StatusNotModified {
61335		if res.Body != nil {
61336			res.Body.Close()
61337		}
61338		return nil, &googleapi.Error{
61339			Code:   res.StatusCode,
61340			Header: res.Header,
61341		}
61342	}
61343	if err != nil {
61344		return nil, err
61345	}
61346	defer googleapi.CloseBody(res)
61347	if err := googleapi.CheckResponse(res); err != nil {
61348		return nil, err
61349	}
61350	ret := &TestPermissionsResponse{
61351		ServerResponse: googleapi.ServerResponse{
61352			Header:         res.Header,
61353			HTTPStatusCode: res.StatusCode,
61354		},
61355	}
61356	target := &ret
61357	if err := gensupport.DecodeResponse(target, res); err != nil {
61358		return nil, err
61359	}
61360	return ret, nil
61361	// {
61362	//   "description": "Returns permissions that a caller has on the specified resource.",
61363	//   "httpMethod": "POST",
61364	//   "id": "compute.firewallPolicies.testIamPermissions",
61365	//   "parameterOrder": [
61366	//     "resource"
61367	//   ],
61368	//   "parameters": {
61369	//     "resource": {
61370	//       "description": "Name or id of the resource for this request.",
61371	//       "location": "path",
61372	//       "pattern": "(firewallPolicies/)?[0-9]{0,20}",
61373	//       "required": true,
61374	//       "type": "string"
61375	//     }
61376	//   },
61377	//   "path": "locations/global/firewallPolicies/{resource}/testIamPermissions",
61378	//   "request": {
61379	//     "$ref": "TestPermissionsRequest"
61380	//   },
61381	//   "response": {
61382	//     "$ref": "TestPermissionsResponse"
61383	//   },
61384	//   "scopes": [
61385	//     "https://www.googleapis.com/auth/cloud-platform",
61386	//     "https://www.googleapis.com/auth/compute",
61387	//     "https://www.googleapis.com/auth/compute.readonly"
61388	//   ]
61389	// }
61390
61391}
61392
61393// method id "compute.firewalls.delete":
61394
61395type FirewallsDeleteCall struct {
61396	s          *Service
61397	project    string
61398	firewall   string
61399	urlParams_ gensupport.URLParams
61400	ctx_       context.Context
61401	header_    http.Header
61402}
61403
61404// Delete: Deletes the specified firewall.
61405//
61406// - firewall: Name of the firewall rule to delete.
61407// - project: Project ID for this request.
61408// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/delete
61409func (r *FirewallsService) Delete(project string, firewall string) *FirewallsDeleteCall {
61410	c := &FirewallsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61411	c.project = project
61412	c.firewall = firewall
61413	return c
61414}
61415
61416// RequestId sets the optional parameter "requestId": An optional
61417// request ID to identify requests. Specify a unique request ID so that
61418// if you must retry your request, the server will know to ignore the
61419// request if it has already been completed.
61420//
61421// For example, consider a situation where you make an initial request
61422// and the request times out. If you make the request again with the
61423// same request ID, the server can check if original operation with the
61424// same request ID was received, and if so, will ignore the second
61425// request. This prevents clients from accidentally creating duplicate
61426// commitments.
61427//
61428// The request ID must be a valid UUID with the exception that zero UUID
61429// is not supported (00000000-0000-0000-0000-000000000000).
61430func (c *FirewallsDeleteCall) RequestId(requestId string) *FirewallsDeleteCall {
61431	c.urlParams_.Set("requestId", requestId)
61432	return c
61433}
61434
61435// Fields allows partial responses to be retrieved. See
61436// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61437// for more information.
61438func (c *FirewallsDeleteCall) Fields(s ...googleapi.Field) *FirewallsDeleteCall {
61439	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61440	return c
61441}
61442
61443// Context sets the context to be used in this call's Do method. Any
61444// pending HTTP request will be aborted if the provided context is
61445// canceled.
61446func (c *FirewallsDeleteCall) Context(ctx context.Context) *FirewallsDeleteCall {
61447	c.ctx_ = ctx
61448	return c
61449}
61450
61451// Header returns an http.Header that can be modified by the caller to
61452// add HTTP headers to the request.
61453func (c *FirewallsDeleteCall) Header() http.Header {
61454	if c.header_ == nil {
61455		c.header_ = make(http.Header)
61456	}
61457	return c.header_
61458}
61459
61460func (c *FirewallsDeleteCall) doRequest(alt string) (*http.Response, error) {
61461	reqHeaders := make(http.Header)
61462	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
61463	for k, v := range c.header_ {
61464		reqHeaders[k] = v
61465	}
61466	reqHeaders.Set("User-Agent", c.s.userAgent())
61467	var body io.Reader = nil
61468	c.urlParams_.Set("alt", alt)
61469	c.urlParams_.Set("prettyPrint", "false")
61470	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls/{firewall}")
61471	urls += "?" + c.urlParams_.Encode()
61472	req, err := http.NewRequest("DELETE", urls, body)
61473	if err != nil {
61474		return nil, err
61475	}
61476	req.Header = reqHeaders
61477	googleapi.Expand(req.URL, map[string]string{
61478		"project":  c.project,
61479		"firewall": c.firewall,
61480	})
61481	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61482}
61483
61484// Do executes the "compute.firewalls.delete" call.
61485// Exactly one of *Operation or error will be non-nil. Any non-2xx
61486// status code is an error. Response headers are in either
61487// *Operation.ServerResponse.Header or (if a response was returned at
61488// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61489// to check whether the returned error was because
61490// http.StatusNotModified was returned.
61491func (c *FirewallsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61492	gensupport.SetOptions(c.urlParams_, opts...)
61493	res, err := c.doRequest("json")
61494	if res != nil && res.StatusCode == http.StatusNotModified {
61495		if res.Body != nil {
61496			res.Body.Close()
61497		}
61498		return nil, &googleapi.Error{
61499			Code:   res.StatusCode,
61500			Header: res.Header,
61501		}
61502	}
61503	if err != nil {
61504		return nil, err
61505	}
61506	defer googleapi.CloseBody(res)
61507	if err := googleapi.CheckResponse(res); err != nil {
61508		return nil, err
61509	}
61510	ret := &Operation{
61511		ServerResponse: googleapi.ServerResponse{
61512			Header:         res.Header,
61513			HTTPStatusCode: res.StatusCode,
61514		},
61515	}
61516	target := &ret
61517	if err := gensupport.DecodeResponse(target, res); err != nil {
61518		return nil, err
61519	}
61520	return ret, nil
61521	// {
61522	//   "description": "Deletes the specified firewall.",
61523	//   "httpMethod": "DELETE",
61524	//   "id": "compute.firewalls.delete",
61525	//   "parameterOrder": [
61526	//     "project",
61527	//     "firewall"
61528	//   ],
61529	//   "parameters": {
61530	//     "firewall": {
61531	//       "description": "Name of the firewall rule to delete.",
61532	//       "location": "path",
61533	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
61534	//       "required": true,
61535	//       "type": "string"
61536	//     },
61537	//     "project": {
61538	//       "description": "Project ID for this request.",
61539	//       "location": "path",
61540	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61541	//       "required": true,
61542	//       "type": "string"
61543	//     },
61544	//     "requestId": {
61545	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
61546	//       "location": "query",
61547	//       "type": "string"
61548	//     }
61549	//   },
61550	//   "path": "projects/{project}/global/firewalls/{firewall}",
61551	//   "response": {
61552	//     "$ref": "Operation"
61553	//   },
61554	//   "scopes": [
61555	//     "https://www.googleapis.com/auth/cloud-platform",
61556	//     "https://www.googleapis.com/auth/compute"
61557	//   ]
61558	// }
61559
61560}
61561
61562// method id "compute.firewalls.get":
61563
61564type FirewallsGetCall struct {
61565	s            *Service
61566	project      string
61567	firewall     string
61568	urlParams_   gensupport.URLParams
61569	ifNoneMatch_ string
61570	ctx_         context.Context
61571	header_      http.Header
61572}
61573
61574// Get: Returns the specified firewall.
61575//
61576// - firewall: Name of the firewall rule to return.
61577// - project: Project ID for this request.
61578// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/get
61579func (r *FirewallsService) Get(project string, firewall string) *FirewallsGetCall {
61580	c := &FirewallsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61581	c.project = project
61582	c.firewall = firewall
61583	return c
61584}
61585
61586// Fields allows partial responses to be retrieved. See
61587// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61588// for more information.
61589func (c *FirewallsGetCall) Fields(s ...googleapi.Field) *FirewallsGetCall {
61590	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61591	return c
61592}
61593
61594// IfNoneMatch sets the optional parameter which makes the operation
61595// fail if the object's ETag matches the given value. This is useful for
61596// getting updates only after the object has changed since the last
61597// request. Use googleapi.IsNotModified to check whether the response
61598// error from Do is the result of In-None-Match.
61599func (c *FirewallsGetCall) IfNoneMatch(entityTag string) *FirewallsGetCall {
61600	c.ifNoneMatch_ = entityTag
61601	return c
61602}
61603
61604// Context sets the context to be used in this call's Do method. Any
61605// pending HTTP request will be aborted if the provided context is
61606// canceled.
61607func (c *FirewallsGetCall) Context(ctx context.Context) *FirewallsGetCall {
61608	c.ctx_ = ctx
61609	return c
61610}
61611
61612// Header returns an http.Header that can be modified by the caller to
61613// add HTTP headers to the request.
61614func (c *FirewallsGetCall) Header() http.Header {
61615	if c.header_ == nil {
61616		c.header_ = make(http.Header)
61617	}
61618	return c.header_
61619}
61620
61621func (c *FirewallsGetCall) doRequest(alt string) (*http.Response, error) {
61622	reqHeaders := make(http.Header)
61623	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
61624	for k, v := range c.header_ {
61625		reqHeaders[k] = v
61626	}
61627	reqHeaders.Set("User-Agent", c.s.userAgent())
61628	if c.ifNoneMatch_ != "" {
61629		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
61630	}
61631	var body io.Reader = nil
61632	c.urlParams_.Set("alt", alt)
61633	c.urlParams_.Set("prettyPrint", "false")
61634	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls/{firewall}")
61635	urls += "?" + c.urlParams_.Encode()
61636	req, err := http.NewRequest("GET", urls, body)
61637	if err != nil {
61638		return nil, err
61639	}
61640	req.Header = reqHeaders
61641	googleapi.Expand(req.URL, map[string]string{
61642		"project":  c.project,
61643		"firewall": c.firewall,
61644	})
61645	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61646}
61647
61648// Do executes the "compute.firewalls.get" call.
61649// Exactly one of *Firewall or error will be non-nil. Any non-2xx status
61650// code is an error. Response headers are in either
61651// *Firewall.ServerResponse.Header or (if a response was returned at
61652// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61653// to check whether the returned error was because
61654// http.StatusNotModified was returned.
61655func (c *FirewallsGetCall) Do(opts ...googleapi.CallOption) (*Firewall, error) {
61656	gensupport.SetOptions(c.urlParams_, opts...)
61657	res, err := c.doRequest("json")
61658	if res != nil && res.StatusCode == http.StatusNotModified {
61659		if res.Body != nil {
61660			res.Body.Close()
61661		}
61662		return nil, &googleapi.Error{
61663			Code:   res.StatusCode,
61664			Header: res.Header,
61665		}
61666	}
61667	if err != nil {
61668		return nil, err
61669	}
61670	defer googleapi.CloseBody(res)
61671	if err := googleapi.CheckResponse(res); err != nil {
61672		return nil, err
61673	}
61674	ret := &Firewall{
61675		ServerResponse: googleapi.ServerResponse{
61676			Header:         res.Header,
61677			HTTPStatusCode: res.StatusCode,
61678		},
61679	}
61680	target := &ret
61681	if err := gensupport.DecodeResponse(target, res); err != nil {
61682		return nil, err
61683	}
61684	return ret, nil
61685	// {
61686	//   "description": "Returns the specified firewall.",
61687	//   "httpMethod": "GET",
61688	//   "id": "compute.firewalls.get",
61689	//   "parameterOrder": [
61690	//     "project",
61691	//     "firewall"
61692	//   ],
61693	//   "parameters": {
61694	//     "firewall": {
61695	//       "description": "Name of the firewall rule to return.",
61696	//       "location": "path",
61697	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
61698	//       "required": true,
61699	//       "type": "string"
61700	//     },
61701	//     "project": {
61702	//       "description": "Project ID for this request.",
61703	//       "location": "path",
61704	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61705	//       "required": true,
61706	//       "type": "string"
61707	//     }
61708	//   },
61709	//   "path": "projects/{project}/global/firewalls/{firewall}",
61710	//   "response": {
61711	//     "$ref": "Firewall"
61712	//   },
61713	//   "scopes": [
61714	//     "https://www.googleapis.com/auth/cloud-platform",
61715	//     "https://www.googleapis.com/auth/compute",
61716	//     "https://www.googleapis.com/auth/compute.readonly"
61717	//   ]
61718	// }
61719
61720}
61721
61722// method id "compute.firewalls.insert":
61723
61724type FirewallsInsertCall struct {
61725	s          *Service
61726	project    string
61727	firewall   *Firewall
61728	urlParams_ gensupport.URLParams
61729	ctx_       context.Context
61730	header_    http.Header
61731}
61732
61733// Insert: Creates a firewall rule in the specified project using the
61734// data included in the request.
61735//
61736// - project: Project ID for this request.
61737// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/insert
61738func (r *FirewallsService) Insert(project string, firewall *Firewall) *FirewallsInsertCall {
61739	c := &FirewallsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61740	c.project = project
61741	c.firewall = firewall
61742	return c
61743}
61744
61745// RequestId sets the optional parameter "requestId": An optional
61746// request ID to identify requests. Specify a unique request ID so that
61747// if you must retry your request, the server will know to ignore the
61748// request if it has already been completed.
61749//
61750// For example, consider a situation where you make an initial request
61751// and the request times out. If you make the request again with the
61752// same request ID, the server can check if original operation with the
61753// same request ID was received, and if so, will ignore the second
61754// request. This prevents clients from accidentally creating duplicate
61755// commitments.
61756//
61757// The request ID must be a valid UUID with the exception that zero UUID
61758// is not supported (00000000-0000-0000-0000-000000000000).
61759func (c *FirewallsInsertCall) RequestId(requestId string) *FirewallsInsertCall {
61760	c.urlParams_.Set("requestId", requestId)
61761	return c
61762}
61763
61764// Fields allows partial responses to be retrieved. See
61765// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61766// for more information.
61767func (c *FirewallsInsertCall) Fields(s ...googleapi.Field) *FirewallsInsertCall {
61768	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61769	return c
61770}
61771
61772// Context sets the context to be used in this call's Do method. Any
61773// pending HTTP request will be aborted if the provided context is
61774// canceled.
61775func (c *FirewallsInsertCall) Context(ctx context.Context) *FirewallsInsertCall {
61776	c.ctx_ = ctx
61777	return c
61778}
61779
61780// Header returns an http.Header that can be modified by the caller to
61781// add HTTP headers to the request.
61782func (c *FirewallsInsertCall) Header() http.Header {
61783	if c.header_ == nil {
61784		c.header_ = make(http.Header)
61785	}
61786	return c.header_
61787}
61788
61789func (c *FirewallsInsertCall) doRequest(alt string) (*http.Response, error) {
61790	reqHeaders := make(http.Header)
61791	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
61792	for k, v := range c.header_ {
61793		reqHeaders[k] = v
61794	}
61795	reqHeaders.Set("User-Agent", c.s.userAgent())
61796	var body io.Reader = nil
61797	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall)
61798	if err != nil {
61799		return nil, err
61800	}
61801	reqHeaders.Set("Content-Type", "application/json")
61802	c.urlParams_.Set("alt", alt)
61803	c.urlParams_.Set("prettyPrint", "false")
61804	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls")
61805	urls += "?" + c.urlParams_.Encode()
61806	req, err := http.NewRequest("POST", urls, body)
61807	if err != nil {
61808		return nil, err
61809	}
61810	req.Header = reqHeaders
61811	googleapi.Expand(req.URL, map[string]string{
61812		"project": c.project,
61813	})
61814	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61815}
61816
61817// Do executes the "compute.firewalls.insert" call.
61818// Exactly one of *Operation or error will be non-nil. Any non-2xx
61819// status code is an error. Response headers are in either
61820// *Operation.ServerResponse.Header or (if a response was returned at
61821// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61822// to check whether the returned error was because
61823// http.StatusNotModified was returned.
61824func (c *FirewallsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61825	gensupport.SetOptions(c.urlParams_, opts...)
61826	res, err := c.doRequest("json")
61827	if res != nil && res.StatusCode == http.StatusNotModified {
61828		if res.Body != nil {
61829			res.Body.Close()
61830		}
61831		return nil, &googleapi.Error{
61832			Code:   res.StatusCode,
61833			Header: res.Header,
61834		}
61835	}
61836	if err != nil {
61837		return nil, err
61838	}
61839	defer googleapi.CloseBody(res)
61840	if err := googleapi.CheckResponse(res); err != nil {
61841		return nil, err
61842	}
61843	ret := &Operation{
61844		ServerResponse: googleapi.ServerResponse{
61845			Header:         res.Header,
61846			HTTPStatusCode: res.StatusCode,
61847		},
61848	}
61849	target := &ret
61850	if err := gensupport.DecodeResponse(target, res); err != nil {
61851		return nil, err
61852	}
61853	return ret, nil
61854	// {
61855	//   "description": "Creates a firewall rule in the specified project using the data included in the request.",
61856	//   "httpMethod": "POST",
61857	//   "id": "compute.firewalls.insert",
61858	//   "parameterOrder": [
61859	//     "project"
61860	//   ],
61861	//   "parameters": {
61862	//     "project": {
61863	//       "description": "Project ID for this request.",
61864	//       "location": "path",
61865	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61866	//       "required": true,
61867	//       "type": "string"
61868	//     },
61869	//     "requestId": {
61870	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
61871	//       "location": "query",
61872	//       "type": "string"
61873	//     }
61874	//   },
61875	//   "path": "projects/{project}/global/firewalls",
61876	//   "request": {
61877	//     "$ref": "Firewall"
61878	//   },
61879	//   "response": {
61880	//     "$ref": "Operation"
61881	//   },
61882	//   "scopes": [
61883	//     "https://www.googleapis.com/auth/cloud-platform",
61884	//     "https://www.googleapis.com/auth/compute"
61885	//   ]
61886	// }
61887
61888}
61889
61890// method id "compute.firewalls.list":
61891
61892type FirewallsListCall struct {
61893	s            *Service
61894	project      string
61895	urlParams_   gensupport.URLParams
61896	ifNoneMatch_ string
61897	ctx_         context.Context
61898	header_      http.Header
61899}
61900
61901// List: Retrieves the list of firewall rules available to the specified
61902// project.
61903//
61904// - project: Project ID for this request.
61905// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/list
61906func (r *FirewallsService) List(project string) *FirewallsListCall {
61907	c := &FirewallsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61908	c.project = project
61909	return c
61910}
61911
61912// Filter sets the optional parameter "filter": A filter expression that
61913// filters resources listed in the response. The expression must specify
61914// the field name, a comparison operator, and the value that you want to
61915// use for filtering. The value must be a string, a number, or a
61916// boolean. The comparison operator must be either `=`, `!=`, `>`, or
61917// `<`.
61918//
61919// For example, if you are filtering Compute Engine instances, you can
61920// exclude instances named `example-instance` by specifying `name !=
61921// example-instance`.
61922//
61923// You can also filter nested fields. For example, you could specify
61924// `scheduling.automaticRestart = false` to include instances only if
61925// they are not scheduled for automatic restarts. You can use filtering
61926// on nested fields to filter based on resource labels.
61927//
61928// To filter on multiple expressions, provide each separate expression
61929// within parentheses. For example: ``` (scheduling.automaticRestart =
61930// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
61931// is an `AND` expression. However, you can include `AND` and `OR`
61932// expressions explicitly. For example: ``` (cpuPlatform = "Intel
61933// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
61934// (scheduling.automaticRestart = true) ```
61935func (c *FirewallsListCall) Filter(filter string) *FirewallsListCall {
61936	c.urlParams_.Set("filter", filter)
61937	return c
61938}
61939
61940// MaxResults sets the optional parameter "maxResults": The maximum
61941// number of results per page that should be returned. If the number of
61942// available results is larger than `maxResults`, Compute Engine returns
61943// a `nextPageToken` that can be used to get the next page of results in
61944// subsequent list requests. Acceptable values are `0` to `500`,
61945// inclusive. (Default: `500`)
61946func (c *FirewallsListCall) MaxResults(maxResults int64) *FirewallsListCall {
61947	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
61948	return c
61949}
61950
61951// OrderBy sets the optional parameter "orderBy": Sorts list results by
61952// a certain order. By default, results are returned in alphanumerical
61953// order based on the resource name.
61954//
61955// You can also sort results in descending order based on the creation
61956// timestamp using `orderBy="creationTimestamp desc". This sorts
61957// results based on the `creationTimestamp` field in reverse
61958// chronological order (newest result first). Use this to sort resources
61959// like operations so that the newest operation is returned
61960// first.
61961//
61962// Currently, only sorting by `name` or `creationTimestamp desc` is
61963// supported.
61964func (c *FirewallsListCall) OrderBy(orderBy string) *FirewallsListCall {
61965	c.urlParams_.Set("orderBy", orderBy)
61966	return c
61967}
61968
61969// PageToken sets the optional parameter "pageToken": Specifies a page
61970// token to use. Set `pageToken` to the `nextPageToken` returned by a
61971// previous list request to get the next page of results.
61972func (c *FirewallsListCall) PageToken(pageToken string) *FirewallsListCall {
61973	c.urlParams_.Set("pageToken", pageToken)
61974	return c
61975}
61976
61977// ReturnPartialSuccess sets the optional parameter
61978// "returnPartialSuccess": Opt-in for partial success behavior which
61979// provides partial results in case of failure. The default value is
61980// false.
61981func (c *FirewallsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *FirewallsListCall {
61982	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
61983	return c
61984}
61985
61986// Fields allows partial responses to be retrieved. See
61987// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61988// for more information.
61989func (c *FirewallsListCall) Fields(s ...googleapi.Field) *FirewallsListCall {
61990	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61991	return c
61992}
61993
61994// IfNoneMatch sets the optional parameter which makes the operation
61995// fail if the object's ETag matches the given value. This is useful for
61996// getting updates only after the object has changed since the last
61997// request. Use googleapi.IsNotModified to check whether the response
61998// error from Do is the result of In-None-Match.
61999func (c *FirewallsListCall) IfNoneMatch(entityTag string) *FirewallsListCall {
62000	c.ifNoneMatch_ = entityTag
62001	return c
62002}
62003
62004// Context sets the context to be used in this call's Do method. Any
62005// pending HTTP request will be aborted if the provided context is
62006// canceled.
62007func (c *FirewallsListCall) Context(ctx context.Context) *FirewallsListCall {
62008	c.ctx_ = ctx
62009	return c
62010}
62011
62012// Header returns an http.Header that can be modified by the caller to
62013// add HTTP headers to the request.
62014func (c *FirewallsListCall) Header() http.Header {
62015	if c.header_ == nil {
62016		c.header_ = make(http.Header)
62017	}
62018	return c.header_
62019}
62020
62021func (c *FirewallsListCall) doRequest(alt string) (*http.Response, error) {
62022	reqHeaders := make(http.Header)
62023	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
62024	for k, v := range c.header_ {
62025		reqHeaders[k] = v
62026	}
62027	reqHeaders.Set("User-Agent", c.s.userAgent())
62028	if c.ifNoneMatch_ != "" {
62029		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
62030	}
62031	var body io.Reader = nil
62032	c.urlParams_.Set("alt", alt)
62033	c.urlParams_.Set("prettyPrint", "false")
62034	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls")
62035	urls += "?" + c.urlParams_.Encode()
62036	req, err := http.NewRequest("GET", urls, body)
62037	if err != nil {
62038		return nil, err
62039	}
62040	req.Header = reqHeaders
62041	googleapi.Expand(req.URL, map[string]string{
62042		"project": c.project,
62043	})
62044	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62045}
62046
62047// Do executes the "compute.firewalls.list" call.
62048// Exactly one of *FirewallList or error will be non-nil. Any non-2xx
62049// status code is an error. Response headers are in either
62050// *FirewallList.ServerResponse.Header or (if a response was returned at
62051// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62052// to check whether the returned error was because
62053// http.StatusNotModified was returned.
62054func (c *FirewallsListCall) Do(opts ...googleapi.CallOption) (*FirewallList, error) {
62055	gensupport.SetOptions(c.urlParams_, opts...)
62056	res, err := c.doRequest("json")
62057	if res != nil && res.StatusCode == http.StatusNotModified {
62058		if res.Body != nil {
62059			res.Body.Close()
62060		}
62061		return nil, &googleapi.Error{
62062			Code:   res.StatusCode,
62063			Header: res.Header,
62064		}
62065	}
62066	if err != nil {
62067		return nil, err
62068	}
62069	defer googleapi.CloseBody(res)
62070	if err := googleapi.CheckResponse(res); err != nil {
62071		return nil, err
62072	}
62073	ret := &FirewallList{
62074		ServerResponse: googleapi.ServerResponse{
62075			Header:         res.Header,
62076			HTTPStatusCode: res.StatusCode,
62077		},
62078	}
62079	target := &ret
62080	if err := gensupport.DecodeResponse(target, res); err != nil {
62081		return nil, err
62082	}
62083	return ret, nil
62084	// {
62085	//   "description": "Retrieves the list of firewall rules available to the specified project.",
62086	//   "httpMethod": "GET",
62087	//   "id": "compute.firewalls.list",
62088	//   "parameterOrder": [
62089	//     "project"
62090	//   ],
62091	//   "parameters": {
62092	//     "filter": {
62093	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
62094	//       "location": "query",
62095	//       "type": "string"
62096	//     },
62097	//     "maxResults": {
62098	//       "default": "500",
62099	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
62100	//       "format": "uint32",
62101	//       "location": "query",
62102	//       "minimum": "0",
62103	//       "type": "integer"
62104	//     },
62105	//     "orderBy": {
62106	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
62107	//       "location": "query",
62108	//       "type": "string"
62109	//     },
62110	//     "pageToken": {
62111	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
62112	//       "location": "query",
62113	//       "type": "string"
62114	//     },
62115	//     "project": {
62116	//       "description": "Project ID for this request.",
62117	//       "location": "path",
62118	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62119	//       "required": true,
62120	//       "type": "string"
62121	//     },
62122	//     "returnPartialSuccess": {
62123	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
62124	//       "location": "query",
62125	//       "type": "boolean"
62126	//     }
62127	//   },
62128	//   "path": "projects/{project}/global/firewalls",
62129	//   "response": {
62130	//     "$ref": "FirewallList"
62131	//   },
62132	//   "scopes": [
62133	//     "https://www.googleapis.com/auth/cloud-platform",
62134	//     "https://www.googleapis.com/auth/compute",
62135	//     "https://www.googleapis.com/auth/compute.readonly"
62136	//   ]
62137	// }
62138
62139}
62140
62141// Pages invokes f for each page of results.
62142// A non-nil error returned from f will halt the iteration.
62143// The provided context supersedes any context provided to the Context method.
62144func (c *FirewallsListCall) Pages(ctx context.Context, f func(*FirewallList) error) error {
62145	c.ctx_ = ctx
62146	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
62147	for {
62148		x, err := c.Do()
62149		if err != nil {
62150			return err
62151		}
62152		if err := f(x); err != nil {
62153			return err
62154		}
62155		if x.NextPageToken == "" {
62156			return nil
62157		}
62158		c.PageToken(x.NextPageToken)
62159	}
62160}
62161
62162// method id "compute.firewalls.patch":
62163
62164type FirewallsPatchCall struct {
62165	s          *Service
62166	project    string
62167	firewall   string
62168	firewall2  *Firewall
62169	urlParams_ gensupport.URLParams
62170	ctx_       context.Context
62171	header_    http.Header
62172}
62173
62174// Patch: Updates the specified firewall rule with the data included in
62175// the request. This method supports PATCH semantics and uses the JSON
62176// merge patch format and processing rules.
62177//
62178// - firewall: Name of the firewall rule to patch.
62179// - project: Project ID for this request.
62180// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/patch
62181func (r *FirewallsService) Patch(project string, firewall string, firewall2 *Firewall) *FirewallsPatchCall {
62182	c := &FirewallsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62183	c.project = project
62184	c.firewall = firewall
62185	c.firewall2 = firewall2
62186	return c
62187}
62188
62189// RequestId sets the optional parameter "requestId": An optional
62190// request ID to identify requests. Specify a unique request ID so that
62191// if you must retry your request, the server will know to ignore the
62192// request if it has already been completed.
62193//
62194// For example, consider a situation where you make an initial request
62195// and the request times out. If you make the request again with the
62196// same request ID, the server can check if original operation with the
62197// same request ID was received, and if so, will ignore the second
62198// request. This prevents clients from accidentally creating duplicate
62199// commitments.
62200//
62201// The request ID must be a valid UUID with the exception that zero UUID
62202// is not supported (00000000-0000-0000-0000-000000000000).
62203func (c *FirewallsPatchCall) RequestId(requestId string) *FirewallsPatchCall {
62204	c.urlParams_.Set("requestId", requestId)
62205	return c
62206}
62207
62208// Fields allows partial responses to be retrieved. See
62209// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62210// for more information.
62211func (c *FirewallsPatchCall) Fields(s ...googleapi.Field) *FirewallsPatchCall {
62212	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62213	return c
62214}
62215
62216// Context sets the context to be used in this call's Do method. Any
62217// pending HTTP request will be aborted if the provided context is
62218// canceled.
62219func (c *FirewallsPatchCall) Context(ctx context.Context) *FirewallsPatchCall {
62220	c.ctx_ = ctx
62221	return c
62222}
62223
62224// Header returns an http.Header that can be modified by the caller to
62225// add HTTP headers to the request.
62226func (c *FirewallsPatchCall) Header() http.Header {
62227	if c.header_ == nil {
62228		c.header_ = make(http.Header)
62229	}
62230	return c.header_
62231}
62232
62233func (c *FirewallsPatchCall) doRequest(alt string) (*http.Response, error) {
62234	reqHeaders := make(http.Header)
62235	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
62236	for k, v := range c.header_ {
62237		reqHeaders[k] = v
62238	}
62239	reqHeaders.Set("User-Agent", c.s.userAgent())
62240	var body io.Reader = nil
62241	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall2)
62242	if err != nil {
62243		return nil, err
62244	}
62245	reqHeaders.Set("Content-Type", "application/json")
62246	c.urlParams_.Set("alt", alt)
62247	c.urlParams_.Set("prettyPrint", "false")
62248	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls/{firewall}")
62249	urls += "?" + c.urlParams_.Encode()
62250	req, err := http.NewRequest("PATCH", urls, body)
62251	if err != nil {
62252		return nil, err
62253	}
62254	req.Header = reqHeaders
62255	googleapi.Expand(req.URL, map[string]string{
62256		"project":  c.project,
62257		"firewall": c.firewall,
62258	})
62259	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62260}
62261
62262// Do executes the "compute.firewalls.patch" call.
62263// Exactly one of *Operation or error will be non-nil. Any non-2xx
62264// status code is an error. Response headers are in either
62265// *Operation.ServerResponse.Header or (if a response was returned at
62266// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62267// to check whether the returned error was because
62268// http.StatusNotModified was returned.
62269func (c *FirewallsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62270	gensupport.SetOptions(c.urlParams_, opts...)
62271	res, err := c.doRequest("json")
62272	if res != nil && res.StatusCode == http.StatusNotModified {
62273		if res.Body != nil {
62274			res.Body.Close()
62275		}
62276		return nil, &googleapi.Error{
62277			Code:   res.StatusCode,
62278			Header: res.Header,
62279		}
62280	}
62281	if err != nil {
62282		return nil, err
62283	}
62284	defer googleapi.CloseBody(res)
62285	if err := googleapi.CheckResponse(res); err != nil {
62286		return nil, err
62287	}
62288	ret := &Operation{
62289		ServerResponse: googleapi.ServerResponse{
62290			Header:         res.Header,
62291			HTTPStatusCode: res.StatusCode,
62292		},
62293	}
62294	target := &ret
62295	if err := gensupport.DecodeResponse(target, res); err != nil {
62296		return nil, err
62297	}
62298	return ret, nil
62299	// {
62300	//   "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.",
62301	//   "httpMethod": "PATCH",
62302	//   "id": "compute.firewalls.patch",
62303	//   "parameterOrder": [
62304	//     "project",
62305	//     "firewall"
62306	//   ],
62307	//   "parameters": {
62308	//     "firewall": {
62309	//       "description": "Name of the firewall rule to patch.",
62310	//       "location": "path",
62311	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
62312	//       "required": true,
62313	//       "type": "string"
62314	//     },
62315	//     "project": {
62316	//       "description": "Project ID for this request.",
62317	//       "location": "path",
62318	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62319	//       "required": true,
62320	//       "type": "string"
62321	//     },
62322	//     "requestId": {
62323	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
62324	//       "location": "query",
62325	//       "type": "string"
62326	//     }
62327	//   },
62328	//   "path": "projects/{project}/global/firewalls/{firewall}",
62329	//   "request": {
62330	//     "$ref": "Firewall"
62331	//   },
62332	//   "response": {
62333	//     "$ref": "Operation"
62334	//   },
62335	//   "scopes": [
62336	//     "https://www.googleapis.com/auth/cloud-platform",
62337	//     "https://www.googleapis.com/auth/compute"
62338	//   ]
62339	// }
62340
62341}
62342
62343// method id "compute.firewalls.update":
62344
62345type FirewallsUpdateCall struct {
62346	s          *Service
62347	project    string
62348	firewall   string
62349	firewall2  *Firewall
62350	urlParams_ gensupport.URLParams
62351	ctx_       context.Context
62352	header_    http.Header
62353}
62354
62355// Update: Updates the specified firewall rule with the data included in
62356// the request. Note that all fields will be updated if using PUT, even
62357// fields that are not specified. To update individual fields, please
62358// use PATCH instead.
62359//
62360// - firewall: Name of the firewall rule to update.
62361// - project: Project ID for this request.
62362// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/update
62363func (r *FirewallsService) Update(project string, firewall string, firewall2 *Firewall) *FirewallsUpdateCall {
62364	c := &FirewallsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62365	c.project = project
62366	c.firewall = firewall
62367	c.firewall2 = firewall2
62368	return c
62369}
62370
62371// RequestId sets the optional parameter "requestId": An optional
62372// request ID to identify requests. Specify a unique request ID so that
62373// if you must retry your request, the server will know to ignore the
62374// request if it has already been completed.
62375//
62376// For example, consider a situation where you make an initial request
62377// and the request times out. If you make the request again with the
62378// same request ID, the server can check if original operation with the
62379// same request ID was received, and if so, will ignore the second
62380// request. This prevents clients from accidentally creating duplicate
62381// commitments.
62382//
62383// The request ID must be a valid UUID with the exception that zero UUID
62384// is not supported (00000000-0000-0000-0000-000000000000).
62385func (c *FirewallsUpdateCall) RequestId(requestId string) *FirewallsUpdateCall {
62386	c.urlParams_.Set("requestId", requestId)
62387	return c
62388}
62389
62390// Fields allows partial responses to be retrieved. See
62391// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62392// for more information.
62393func (c *FirewallsUpdateCall) Fields(s ...googleapi.Field) *FirewallsUpdateCall {
62394	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62395	return c
62396}
62397
62398// Context sets the context to be used in this call's Do method. Any
62399// pending HTTP request will be aborted if the provided context is
62400// canceled.
62401func (c *FirewallsUpdateCall) Context(ctx context.Context) *FirewallsUpdateCall {
62402	c.ctx_ = ctx
62403	return c
62404}
62405
62406// Header returns an http.Header that can be modified by the caller to
62407// add HTTP headers to the request.
62408func (c *FirewallsUpdateCall) Header() http.Header {
62409	if c.header_ == nil {
62410		c.header_ = make(http.Header)
62411	}
62412	return c.header_
62413}
62414
62415func (c *FirewallsUpdateCall) doRequest(alt string) (*http.Response, error) {
62416	reqHeaders := make(http.Header)
62417	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
62418	for k, v := range c.header_ {
62419		reqHeaders[k] = v
62420	}
62421	reqHeaders.Set("User-Agent", c.s.userAgent())
62422	var body io.Reader = nil
62423	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall2)
62424	if err != nil {
62425		return nil, err
62426	}
62427	reqHeaders.Set("Content-Type", "application/json")
62428	c.urlParams_.Set("alt", alt)
62429	c.urlParams_.Set("prettyPrint", "false")
62430	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/firewalls/{firewall}")
62431	urls += "?" + c.urlParams_.Encode()
62432	req, err := http.NewRequest("PUT", urls, body)
62433	if err != nil {
62434		return nil, err
62435	}
62436	req.Header = reqHeaders
62437	googleapi.Expand(req.URL, map[string]string{
62438		"project":  c.project,
62439		"firewall": c.firewall,
62440	})
62441	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62442}
62443
62444// Do executes the "compute.firewalls.update" call.
62445// Exactly one of *Operation or error will be non-nil. Any non-2xx
62446// status code is an error. Response headers are in either
62447// *Operation.ServerResponse.Header or (if a response was returned at
62448// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62449// to check whether the returned error was because
62450// http.StatusNotModified was returned.
62451func (c *FirewallsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62452	gensupport.SetOptions(c.urlParams_, opts...)
62453	res, err := c.doRequest("json")
62454	if res != nil && res.StatusCode == http.StatusNotModified {
62455		if res.Body != nil {
62456			res.Body.Close()
62457		}
62458		return nil, &googleapi.Error{
62459			Code:   res.StatusCode,
62460			Header: res.Header,
62461		}
62462	}
62463	if err != nil {
62464		return nil, err
62465	}
62466	defer googleapi.CloseBody(res)
62467	if err := googleapi.CheckResponse(res); err != nil {
62468		return nil, err
62469	}
62470	ret := &Operation{
62471		ServerResponse: googleapi.ServerResponse{
62472			Header:         res.Header,
62473			HTTPStatusCode: res.StatusCode,
62474		},
62475	}
62476	target := &ret
62477	if err := gensupport.DecodeResponse(target, res); err != nil {
62478		return nil, err
62479	}
62480	return ret, nil
62481	// {
62482	//   "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.",
62483	//   "httpMethod": "PUT",
62484	//   "id": "compute.firewalls.update",
62485	//   "parameterOrder": [
62486	//     "project",
62487	//     "firewall"
62488	//   ],
62489	//   "parameters": {
62490	//     "firewall": {
62491	//       "description": "Name of the firewall rule to update.",
62492	//       "location": "path",
62493	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
62494	//       "required": true,
62495	//       "type": "string"
62496	//     },
62497	//     "project": {
62498	//       "description": "Project ID for this request.",
62499	//       "location": "path",
62500	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62501	//       "required": true,
62502	//       "type": "string"
62503	//     },
62504	//     "requestId": {
62505	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
62506	//       "location": "query",
62507	//       "type": "string"
62508	//     }
62509	//   },
62510	//   "path": "projects/{project}/global/firewalls/{firewall}",
62511	//   "request": {
62512	//     "$ref": "Firewall"
62513	//   },
62514	//   "response": {
62515	//     "$ref": "Operation"
62516	//   },
62517	//   "scopes": [
62518	//     "https://www.googleapis.com/auth/cloud-platform",
62519	//     "https://www.googleapis.com/auth/compute"
62520	//   ]
62521	// }
62522
62523}
62524
62525// method id "compute.forwardingRules.aggregatedList":
62526
62527type ForwardingRulesAggregatedListCall struct {
62528	s            *Service
62529	project      string
62530	urlParams_   gensupport.URLParams
62531	ifNoneMatch_ string
62532	ctx_         context.Context
62533	header_      http.Header
62534}
62535
62536// AggregatedList: Retrieves an aggregated list of forwarding rules.
62537//
62538// - project: Project ID for this request.
62539// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/aggregatedList
62540func (r *ForwardingRulesService) AggregatedList(project string) *ForwardingRulesAggregatedListCall {
62541	c := &ForwardingRulesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62542	c.project = project
62543	return c
62544}
62545
62546// Filter sets the optional parameter "filter": A filter expression that
62547// filters resources listed in the response. The expression must specify
62548// the field name, a comparison operator, and the value that you want to
62549// use for filtering. The value must be a string, a number, or a
62550// boolean. The comparison operator must be either `=`, `!=`, `>`, or
62551// `<`.
62552//
62553// For example, if you are filtering Compute Engine instances, you can
62554// exclude instances named `example-instance` by specifying `name !=
62555// example-instance`.
62556//
62557// You can also filter nested fields. For example, you could specify
62558// `scheduling.automaticRestart = false` to include instances only if
62559// they are not scheduled for automatic restarts. You can use filtering
62560// on nested fields to filter based on resource labels.
62561//
62562// To filter on multiple expressions, provide each separate expression
62563// within parentheses. For example: ``` (scheduling.automaticRestart =
62564// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
62565// is an `AND` expression. However, you can include `AND` and `OR`
62566// expressions explicitly. For example: ``` (cpuPlatform = "Intel
62567// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
62568// (scheduling.automaticRestart = true) ```
62569func (c *ForwardingRulesAggregatedListCall) Filter(filter string) *ForwardingRulesAggregatedListCall {
62570	c.urlParams_.Set("filter", filter)
62571	return c
62572}
62573
62574// IncludeAllScopes sets the optional parameter "includeAllScopes":
62575// Indicates whether every visible scope for each scope type (zone,
62576// region, global) should be included in the response. For new resource
62577// types added after this field, the flag has no effect as new resource
62578// types will always include every visible scope for each scope type in
62579// response. For resource types which predate this field, if this flag
62580// is omitted or false, only scopes of the scope types where the
62581// resource type is expected to be found will be included.
62582func (c *ForwardingRulesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ForwardingRulesAggregatedListCall {
62583	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
62584	return c
62585}
62586
62587// MaxResults sets the optional parameter "maxResults": The maximum
62588// number of results per page that should be returned. If the number of
62589// available results is larger than `maxResults`, Compute Engine returns
62590// a `nextPageToken` that can be used to get the next page of results in
62591// subsequent list requests. Acceptable values are `0` to `500`,
62592// inclusive. (Default: `500`)
62593func (c *ForwardingRulesAggregatedListCall) MaxResults(maxResults int64) *ForwardingRulesAggregatedListCall {
62594	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
62595	return c
62596}
62597
62598// OrderBy sets the optional parameter "orderBy": Sorts list results by
62599// a certain order. By default, results are returned in alphanumerical
62600// order based on the resource name.
62601//
62602// You can also sort results in descending order based on the creation
62603// timestamp using `orderBy="creationTimestamp desc". This sorts
62604// results based on the `creationTimestamp` field in reverse
62605// chronological order (newest result first). Use this to sort resources
62606// like operations so that the newest operation is returned
62607// first.
62608//
62609// Currently, only sorting by `name` or `creationTimestamp desc` is
62610// supported.
62611func (c *ForwardingRulesAggregatedListCall) OrderBy(orderBy string) *ForwardingRulesAggregatedListCall {
62612	c.urlParams_.Set("orderBy", orderBy)
62613	return c
62614}
62615
62616// PageToken sets the optional parameter "pageToken": Specifies a page
62617// token to use. Set `pageToken` to the `nextPageToken` returned by a
62618// previous list request to get the next page of results.
62619func (c *ForwardingRulesAggregatedListCall) PageToken(pageToken string) *ForwardingRulesAggregatedListCall {
62620	c.urlParams_.Set("pageToken", pageToken)
62621	return c
62622}
62623
62624// ReturnPartialSuccess sets the optional parameter
62625// "returnPartialSuccess": Opt-in for partial success behavior which
62626// provides partial results in case of failure. The default value is
62627// false.
62628func (c *ForwardingRulesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ForwardingRulesAggregatedListCall {
62629	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
62630	return c
62631}
62632
62633// Fields allows partial responses to be retrieved. See
62634// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62635// for more information.
62636func (c *ForwardingRulesAggregatedListCall) Fields(s ...googleapi.Field) *ForwardingRulesAggregatedListCall {
62637	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62638	return c
62639}
62640
62641// IfNoneMatch sets the optional parameter which makes the operation
62642// fail if the object's ETag matches the given value. This is useful for
62643// getting updates only after the object has changed since the last
62644// request. Use googleapi.IsNotModified to check whether the response
62645// error from Do is the result of In-None-Match.
62646func (c *ForwardingRulesAggregatedListCall) IfNoneMatch(entityTag string) *ForwardingRulesAggregatedListCall {
62647	c.ifNoneMatch_ = entityTag
62648	return c
62649}
62650
62651// Context sets the context to be used in this call's Do method. Any
62652// pending HTTP request will be aborted if the provided context is
62653// canceled.
62654func (c *ForwardingRulesAggregatedListCall) Context(ctx context.Context) *ForwardingRulesAggregatedListCall {
62655	c.ctx_ = ctx
62656	return c
62657}
62658
62659// Header returns an http.Header that can be modified by the caller to
62660// add HTTP headers to the request.
62661func (c *ForwardingRulesAggregatedListCall) Header() http.Header {
62662	if c.header_ == nil {
62663		c.header_ = make(http.Header)
62664	}
62665	return c.header_
62666}
62667
62668func (c *ForwardingRulesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
62669	reqHeaders := make(http.Header)
62670	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
62671	for k, v := range c.header_ {
62672		reqHeaders[k] = v
62673	}
62674	reqHeaders.Set("User-Agent", c.s.userAgent())
62675	if c.ifNoneMatch_ != "" {
62676		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
62677	}
62678	var body io.Reader = nil
62679	c.urlParams_.Set("alt", alt)
62680	c.urlParams_.Set("prettyPrint", "false")
62681	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/forwardingRules")
62682	urls += "?" + c.urlParams_.Encode()
62683	req, err := http.NewRequest("GET", urls, body)
62684	if err != nil {
62685		return nil, err
62686	}
62687	req.Header = reqHeaders
62688	googleapi.Expand(req.URL, map[string]string{
62689		"project": c.project,
62690	})
62691	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62692}
62693
62694// Do executes the "compute.forwardingRules.aggregatedList" call.
62695// Exactly one of *ForwardingRuleAggregatedList or error will be
62696// non-nil. Any non-2xx status code is an error. Response headers are in
62697// either *ForwardingRuleAggregatedList.ServerResponse.Header or (if a
62698// response was returned at all) in error.(*googleapi.Error).Header. Use
62699// googleapi.IsNotModified to check whether the returned error was
62700// because http.StatusNotModified was returned.
62701func (c *ForwardingRulesAggregatedListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleAggregatedList, error) {
62702	gensupport.SetOptions(c.urlParams_, opts...)
62703	res, err := c.doRequest("json")
62704	if res != nil && res.StatusCode == http.StatusNotModified {
62705		if res.Body != nil {
62706			res.Body.Close()
62707		}
62708		return nil, &googleapi.Error{
62709			Code:   res.StatusCode,
62710			Header: res.Header,
62711		}
62712	}
62713	if err != nil {
62714		return nil, err
62715	}
62716	defer googleapi.CloseBody(res)
62717	if err := googleapi.CheckResponse(res); err != nil {
62718		return nil, err
62719	}
62720	ret := &ForwardingRuleAggregatedList{
62721		ServerResponse: googleapi.ServerResponse{
62722			Header:         res.Header,
62723			HTTPStatusCode: res.StatusCode,
62724		},
62725	}
62726	target := &ret
62727	if err := gensupport.DecodeResponse(target, res); err != nil {
62728		return nil, err
62729	}
62730	return ret, nil
62731	// {
62732	//   "description": "Retrieves an aggregated list of forwarding rules.",
62733	//   "httpMethod": "GET",
62734	//   "id": "compute.forwardingRules.aggregatedList",
62735	//   "parameterOrder": [
62736	//     "project"
62737	//   ],
62738	//   "parameters": {
62739	//     "filter": {
62740	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
62741	//       "location": "query",
62742	//       "type": "string"
62743	//     },
62744	//     "includeAllScopes": {
62745	//       "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.",
62746	//       "location": "query",
62747	//       "type": "boolean"
62748	//     },
62749	//     "maxResults": {
62750	//       "default": "500",
62751	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
62752	//       "format": "uint32",
62753	//       "location": "query",
62754	//       "minimum": "0",
62755	//       "type": "integer"
62756	//     },
62757	//     "orderBy": {
62758	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
62759	//       "location": "query",
62760	//       "type": "string"
62761	//     },
62762	//     "pageToken": {
62763	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
62764	//       "location": "query",
62765	//       "type": "string"
62766	//     },
62767	//     "project": {
62768	//       "description": "Project ID for this request.",
62769	//       "location": "path",
62770	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62771	//       "required": true,
62772	//       "type": "string"
62773	//     },
62774	//     "returnPartialSuccess": {
62775	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
62776	//       "location": "query",
62777	//       "type": "boolean"
62778	//     }
62779	//   },
62780	//   "path": "projects/{project}/aggregated/forwardingRules",
62781	//   "response": {
62782	//     "$ref": "ForwardingRuleAggregatedList"
62783	//   },
62784	//   "scopes": [
62785	//     "https://www.googleapis.com/auth/cloud-platform",
62786	//     "https://www.googleapis.com/auth/compute",
62787	//     "https://www.googleapis.com/auth/compute.readonly"
62788	//   ]
62789	// }
62790
62791}
62792
62793// Pages invokes f for each page of results.
62794// A non-nil error returned from f will halt the iteration.
62795// The provided context supersedes any context provided to the Context method.
62796func (c *ForwardingRulesAggregatedListCall) Pages(ctx context.Context, f func(*ForwardingRuleAggregatedList) error) error {
62797	c.ctx_ = ctx
62798	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
62799	for {
62800		x, err := c.Do()
62801		if err != nil {
62802			return err
62803		}
62804		if err := f(x); err != nil {
62805			return err
62806		}
62807		if x.NextPageToken == "" {
62808			return nil
62809		}
62810		c.PageToken(x.NextPageToken)
62811	}
62812}
62813
62814// method id "compute.forwardingRules.delete":
62815
62816type ForwardingRulesDeleteCall struct {
62817	s              *Service
62818	project        string
62819	region         string
62820	forwardingRule string
62821	urlParams_     gensupport.URLParams
62822	ctx_           context.Context
62823	header_        http.Header
62824}
62825
62826// Delete: Deletes the specified ForwardingRule resource.
62827//
62828// - forwardingRule: Name of the ForwardingRule resource to delete.
62829// - project: Project ID for this request.
62830// - region: Name of the region scoping this request.
62831// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/delete
62832func (r *ForwardingRulesService) Delete(project string, region string, forwardingRule string) *ForwardingRulesDeleteCall {
62833	c := &ForwardingRulesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62834	c.project = project
62835	c.region = region
62836	c.forwardingRule = forwardingRule
62837	return c
62838}
62839
62840// RequestId sets the optional parameter "requestId": An optional
62841// request ID to identify requests. Specify a unique request ID so that
62842// if you must retry your request, the server will know to ignore the
62843// request if it has already been completed.
62844//
62845// For example, consider a situation where you make an initial request
62846// and the request times out. If you make the request again with the
62847// same request ID, the server can check if original operation with the
62848// same request ID was received, and if so, will ignore the second
62849// request. This prevents clients from accidentally creating duplicate
62850// commitments.
62851//
62852// The request ID must be a valid UUID with the exception that zero UUID
62853// is not supported (00000000-0000-0000-0000-000000000000).
62854func (c *ForwardingRulesDeleteCall) RequestId(requestId string) *ForwardingRulesDeleteCall {
62855	c.urlParams_.Set("requestId", requestId)
62856	return c
62857}
62858
62859// Fields allows partial responses to be retrieved. See
62860// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62861// for more information.
62862func (c *ForwardingRulesDeleteCall) Fields(s ...googleapi.Field) *ForwardingRulesDeleteCall {
62863	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62864	return c
62865}
62866
62867// Context sets the context to be used in this call's Do method. Any
62868// pending HTTP request will be aborted if the provided context is
62869// canceled.
62870func (c *ForwardingRulesDeleteCall) Context(ctx context.Context) *ForwardingRulesDeleteCall {
62871	c.ctx_ = ctx
62872	return c
62873}
62874
62875// Header returns an http.Header that can be modified by the caller to
62876// add HTTP headers to the request.
62877func (c *ForwardingRulesDeleteCall) Header() http.Header {
62878	if c.header_ == nil {
62879		c.header_ = make(http.Header)
62880	}
62881	return c.header_
62882}
62883
62884func (c *ForwardingRulesDeleteCall) doRequest(alt string) (*http.Response, error) {
62885	reqHeaders := make(http.Header)
62886	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
62887	for k, v := range c.header_ {
62888		reqHeaders[k] = v
62889	}
62890	reqHeaders.Set("User-Agent", c.s.userAgent())
62891	var body io.Reader = nil
62892	c.urlParams_.Set("alt", alt)
62893	c.urlParams_.Set("prettyPrint", "false")
62894	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}")
62895	urls += "?" + c.urlParams_.Encode()
62896	req, err := http.NewRequest("DELETE", urls, body)
62897	if err != nil {
62898		return nil, err
62899	}
62900	req.Header = reqHeaders
62901	googleapi.Expand(req.URL, map[string]string{
62902		"project":        c.project,
62903		"region":         c.region,
62904		"forwardingRule": c.forwardingRule,
62905	})
62906	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62907}
62908
62909// Do executes the "compute.forwardingRules.delete" call.
62910// Exactly one of *Operation or error will be non-nil. Any non-2xx
62911// status code is an error. Response headers are in either
62912// *Operation.ServerResponse.Header or (if a response was returned at
62913// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62914// to check whether the returned error was because
62915// http.StatusNotModified was returned.
62916func (c *ForwardingRulesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62917	gensupport.SetOptions(c.urlParams_, opts...)
62918	res, err := c.doRequest("json")
62919	if res != nil && res.StatusCode == http.StatusNotModified {
62920		if res.Body != nil {
62921			res.Body.Close()
62922		}
62923		return nil, &googleapi.Error{
62924			Code:   res.StatusCode,
62925			Header: res.Header,
62926		}
62927	}
62928	if err != nil {
62929		return nil, err
62930	}
62931	defer googleapi.CloseBody(res)
62932	if err := googleapi.CheckResponse(res); err != nil {
62933		return nil, err
62934	}
62935	ret := &Operation{
62936		ServerResponse: googleapi.ServerResponse{
62937			Header:         res.Header,
62938			HTTPStatusCode: res.StatusCode,
62939		},
62940	}
62941	target := &ret
62942	if err := gensupport.DecodeResponse(target, res); err != nil {
62943		return nil, err
62944	}
62945	return ret, nil
62946	// {
62947	//   "description": "Deletes the specified ForwardingRule resource.",
62948	//   "httpMethod": "DELETE",
62949	//   "id": "compute.forwardingRules.delete",
62950	//   "parameterOrder": [
62951	//     "project",
62952	//     "region",
62953	//     "forwardingRule"
62954	//   ],
62955	//   "parameters": {
62956	//     "forwardingRule": {
62957	//       "description": "Name of the ForwardingRule resource to delete.",
62958	//       "location": "path",
62959	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
62960	//       "required": true,
62961	//       "type": "string"
62962	//     },
62963	//     "project": {
62964	//       "description": "Project ID for this request.",
62965	//       "location": "path",
62966	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62967	//       "required": true,
62968	//       "type": "string"
62969	//     },
62970	//     "region": {
62971	//       "description": "Name of the region scoping this request.",
62972	//       "location": "path",
62973	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
62974	//       "required": true,
62975	//       "type": "string"
62976	//     },
62977	//     "requestId": {
62978	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
62979	//       "location": "query",
62980	//       "type": "string"
62981	//     }
62982	//   },
62983	//   "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}",
62984	//   "response": {
62985	//     "$ref": "Operation"
62986	//   },
62987	//   "scopes": [
62988	//     "https://www.googleapis.com/auth/cloud-platform",
62989	//     "https://www.googleapis.com/auth/compute"
62990	//   ]
62991	// }
62992
62993}
62994
62995// method id "compute.forwardingRules.get":
62996
62997type ForwardingRulesGetCall struct {
62998	s              *Service
62999	project        string
63000	region         string
63001	forwardingRule string
63002	urlParams_     gensupport.URLParams
63003	ifNoneMatch_   string
63004	ctx_           context.Context
63005	header_        http.Header
63006}
63007
63008// Get: Returns the specified ForwardingRule resource.
63009//
63010// - forwardingRule: Name of the ForwardingRule resource to return.
63011// - project: Project ID for this request.
63012// - region: Name of the region scoping this request.
63013// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/get
63014func (r *ForwardingRulesService) Get(project string, region string, forwardingRule string) *ForwardingRulesGetCall {
63015	c := &ForwardingRulesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63016	c.project = project
63017	c.region = region
63018	c.forwardingRule = forwardingRule
63019	return c
63020}
63021
63022// Fields allows partial responses to be retrieved. See
63023// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63024// for more information.
63025func (c *ForwardingRulesGetCall) Fields(s ...googleapi.Field) *ForwardingRulesGetCall {
63026	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63027	return c
63028}
63029
63030// IfNoneMatch sets the optional parameter which makes the operation
63031// fail if the object's ETag matches the given value. This is useful for
63032// getting updates only after the object has changed since the last
63033// request. Use googleapi.IsNotModified to check whether the response
63034// error from Do is the result of In-None-Match.
63035func (c *ForwardingRulesGetCall) IfNoneMatch(entityTag string) *ForwardingRulesGetCall {
63036	c.ifNoneMatch_ = entityTag
63037	return c
63038}
63039
63040// Context sets the context to be used in this call's Do method. Any
63041// pending HTTP request will be aborted if the provided context is
63042// canceled.
63043func (c *ForwardingRulesGetCall) Context(ctx context.Context) *ForwardingRulesGetCall {
63044	c.ctx_ = ctx
63045	return c
63046}
63047
63048// Header returns an http.Header that can be modified by the caller to
63049// add HTTP headers to the request.
63050func (c *ForwardingRulesGetCall) Header() http.Header {
63051	if c.header_ == nil {
63052		c.header_ = make(http.Header)
63053	}
63054	return c.header_
63055}
63056
63057func (c *ForwardingRulesGetCall) doRequest(alt string) (*http.Response, error) {
63058	reqHeaders := make(http.Header)
63059	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
63060	for k, v := range c.header_ {
63061		reqHeaders[k] = v
63062	}
63063	reqHeaders.Set("User-Agent", c.s.userAgent())
63064	if c.ifNoneMatch_ != "" {
63065		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
63066	}
63067	var body io.Reader = nil
63068	c.urlParams_.Set("alt", alt)
63069	c.urlParams_.Set("prettyPrint", "false")
63070	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}")
63071	urls += "?" + c.urlParams_.Encode()
63072	req, err := http.NewRequest("GET", urls, body)
63073	if err != nil {
63074		return nil, err
63075	}
63076	req.Header = reqHeaders
63077	googleapi.Expand(req.URL, map[string]string{
63078		"project":        c.project,
63079		"region":         c.region,
63080		"forwardingRule": c.forwardingRule,
63081	})
63082	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63083}
63084
63085// Do executes the "compute.forwardingRules.get" call.
63086// Exactly one of *ForwardingRule or error will be non-nil. Any non-2xx
63087// status code is an error. Response headers are in either
63088// *ForwardingRule.ServerResponse.Header or (if a response was returned
63089// at all) in error.(*googleapi.Error).Header. Use
63090// googleapi.IsNotModified to check whether the returned error was
63091// because http.StatusNotModified was returned.
63092func (c *ForwardingRulesGetCall) Do(opts ...googleapi.CallOption) (*ForwardingRule, error) {
63093	gensupport.SetOptions(c.urlParams_, opts...)
63094	res, err := c.doRequest("json")
63095	if res != nil && res.StatusCode == http.StatusNotModified {
63096		if res.Body != nil {
63097			res.Body.Close()
63098		}
63099		return nil, &googleapi.Error{
63100			Code:   res.StatusCode,
63101			Header: res.Header,
63102		}
63103	}
63104	if err != nil {
63105		return nil, err
63106	}
63107	defer googleapi.CloseBody(res)
63108	if err := googleapi.CheckResponse(res); err != nil {
63109		return nil, err
63110	}
63111	ret := &ForwardingRule{
63112		ServerResponse: googleapi.ServerResponse{
63113			Header:         res.Header,
63114			HTTPStatusCode: res.StatusCode,
63115		},
63116	}
63117	target := &ret
63118	if err := gensupport.DecodeResponse(target, res); err != nil {
63119		return nil, err
63120	}
63121	return ret, nil
63122	// {
63123	//   "description": "Returns the specified ForwardingRule resource.",
63124	//   "httpMethod": "GET",
63125	//   "id": "compute.forwardingRules.get",
63126	//   "parameterOrder": [
63127	//     "project",
63128	//     "region",
63129	//     "forwardingRule"
63130	//   ],
63131	//   "parameters": {
63132	//     "forwardingRule": {
63133	//       "description": "Name of the ForwardingRule resource to return.",
63134	//       "location": "path",
63135	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
63136	//       "required": true,
63137	//       "type": "string"
63138	//     },
63139	//     "project": {
63140	//       "description": "Project ID for this request.",
63141	//       "location": "path",
63142	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63143	//       "required": true,
63144	//       "type": "string"
63145	//     },
63146	//     "region": {
63147	//       "description": "Name of the region scoping this request.",
63148	//       "location": "path",
63149	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
63150	//       "required": true,
63151	//       "type": "string"
63152	//     }
63153	//   },
63154	//   "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}",
63155	//   "response": {
63156	//     "$ref": "ForwardingRule"
63157	//   },
63158	//   "scopes": [
63159	//     "https://www.googleapis.com/auth/cloud-platform",
63160	//     "https://www.googleapis.com/auth/compute",
63161	//     "https://www.googleapis.com/auth/compute.readonly"
63162	//   ]
63163	// }
63164
63165}
63166
63167// method id "compute.forwardingRules.insert":
63168
63169type ForwardingRulesInsertCall struct {
63170	s              *Service
63171	project        string
63172	region         string
63173	forwardingrule *ForwardingRule
63174	urlParams_     gensupport.URLParams
63175	ctx_           context.Context
63176	header_        http.Header
63177}
63178
63179// Insert: Creates a ForwardingRule resource in the specified project
63180// and region using the data included in the request.
63181//
63182// - project: Project ID for this request.
63183// - region: Name of the region scoping this request.
63184// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/insert
63185func (r *ForwardingRulesService) Insert(project string, region string, forwardingrule *ForwardingRule) *ForwardingRulesInsertCall {
63186	c := &ForwardingRulesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63187	c.project = project
63188	c.region = region
63189	c.forwardingrule = forwardingrule
63190	return c
63191}
63192
63193// RequestId sets the optional parameter "requestId": An optional
63194// request ID to identify requests. Specify a unique request ID so that
63195// if you must retry your request, the server will know to ignore the
63196// request if it has already been completed.
63197//
63198// For example, consider a situation where you make an initial request
63199// and the request times out. If you make the request again with the
63200// same request ID, the server can check if original operation with the
63201// same request ID was received, and if so, will ignore the second
63202// request. This prevents clients from accidentally creating duplicate
63203// commitments.
63204//
63205// The request ID must be a valid UUID with the exception that zero UUID
63206// is not supported (00000000-0000-0000-0000-000000000000).
63207func (c *ForwardingRulesInsertCall) RequestId(requestId string) *ForwardingRulesInsertCall {
63208	c.urlParams_.Set("requestId", requestId)
63209	return c
63210}
63211
63212// Fields allows partial responses to be retrieved. See
63213// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63214// for more information.
63215func (c *ForwardingRulesInsertCall) Fields(s ...googleapi.Field) *ForwardingRulesInsertCall {
63216	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63217	return c
63218}
63219
63220// Context sets the context to be used in this call's Do method. Any
63221// pending HTTP request will be aborted if the provided context is
63222// canceled.
63223func (c *ForwardingRulesInsertCall) Context(ctx context.Context) *ForwardingRulesInsertCall {
63224	c.ctx_ = ctx
63225	return c
63226}
63227
63228// Header returns an http.Header that can be modified by the caller to
63229// add HTTP headers to the request.
63230func (c *ForwardingRulesInsertCall) Header() http.Header {
63231	if c.header_ == nil {
63232		c.header_ = make(http.Header)
63233	}
63234	return c.header_
63235}
63236
63237func (c *ForwardingRulesInsertCall) doRequest(alt string) (*http.Response, error) {
63238	reqHeaders := make(http.Header)
63239	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
63240	for k, v := range c.header_ {
63241		reqHeaders[k] = v
63242	}
63243	reqHeaders.Set("User-Agent", c.s.userAgent())
63244	var body io.Reader = nil
63245	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
63246	if err != nil {
63247		return nil, err
63248	}
63249	reqHeaders.Set("Content-Type", "application/json")
63250	c.urlParams_.Set("alt", alt)
63251	c.urlParams_.Set("prettyPrint", "false")
63252	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules")
63253	urls += "?" + c.urlParams_.Encode()
63254	req, err := http.NewRequest("POST", urls, body)
63255	if err != nil {
63256		return nil, err
63257	}
63258	req.Header = reqHeaders
63259	googleapi.Expand(req.URL, map[string]string{
63260		"project": c.project,
63261		"region":  c.region,
63262	})
63263	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63264}
63265
63266// Do executes the "compute.forwardingRules.insert" call.
63267// Exactly one of *Operation or error will be non-nil. Any non-2xx
63268// status code is an error. Response headers are in either
63269// *Operation.ServerResponse.Header or (if a response was returned at
63270// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
63271// to check whether the returned error was because
63272// http.StatusNotModified was returned.
63273func (c *ForwardingRulesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
63274	gensupport.SetOptions(c.urlParams_, opts...)
63275	res, err := c.doRequest("json")
63276	if res != nil && res.StatusCode == http.StatusNotModified {
63277		if res.Body != nil {
63278			res.Body.Close()
63279		}
63280		return nil, &googleapi.Error{
63281			Code:   res.StatusCode,
63282			Header: res.Header,
63283		}
63284	}
63285	if err != nil {
63286		return nil, err
63287	}
63288	defer googleapi.CloseBody(res)
63289	if err := googleapi.CheckResponse(res); err != nil {
63290		return nil, err
63291	}
63292	ret := &Operation{
63293		ServerResponse: googleapi.ServerResponse{
63294			Header:         res.Header,
63295			HTTPStatusCode: res.StatusCode,
63296		},
63297	}
63298	target := &ret
63299	if err := gensupport.DecodeResponse(target, res); err != nil {
63300		return nil, err
63301	}
63302	return ret, nil
63303	// {
63304	//   "description": "Creates a ForwardingRule resource in the specified project and region using the data included in the request.",
63305	//   "httpMethod": "POST",
63306	//   "id": "compute.forwardingRules.insert",
63307	//   "parameterOrder": [
63308	//     "project",
63309	//     "region"
63310	//   ],
63311	//   "parameters": {
63312	//     "project": {
63313	//       "description": "Project ID for this request.",
63314	//       "location": "path",
63315	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63316	//       "required": true,
63317	//       "type": "string"
63318	//     },
63319	//     "region": {
63320	//       "description": "Name of the region scoping this request.",
63321	//       "location": "path",
63322	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
63323	//       "required": true,
63324	//       "type": "string"
63325	//     },
63326	//     "requestId": {
63327	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
63328	//       "location": "query",
63329	//       "type": "string"
63330	//     }
63331	//   },
63332	//   "path": "projects/{project}/regions/{region}/forwardingRules",
63333	//   "request": {
63334	//     "$ref": "ForwardingRule"
63335	//   },
63336	//   "response": {
63337	//     "$ref": "Operation"
63338	//   },
63339	//   "scopes": [
63340	//     "https://www.googleapis.com/auth/cloud-platform",
63341	//     "https://www.googleapis.com/auth/compute"
63342	//   ]
63343	// }
63344
63345}
63346
63347// method id "compute.forwardingRules.list":
63348
63349type ForwardingRulesListCall struct {
63350	s            *Service
63351	project      string
63352	region       string
63353	urlParams_   gensupport.URLParams
63354	ifNoneMatch_ string
63355	ctx_         context.Context
63356	header_      http.Header
63357}
63358
63359// List: Retrieves a list of ForwardingRule resources available to the
63360// specified project and region.
63361//
63362// - project: Project ID for this request.
63363// - region: Name of the region scoping this request.
63364// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/list
63365func (r *ForwardingRulesService) List(project string, region string) *ForwardingRulesListCall {
63366	c := &ForwardingRulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63367	c.project = project
63368	c.region = region
63369	return c
63370}
63371
63372// Filter sets the optional parameter "filter": A filter expression that
63373// filters resources listed in the response. The expression must specify
63374// the field name, a comparison operator, and the value that you want to
63375// use for filtering. The value must be a string, a number, or a
63376// boolean. The comparison operator must be either `=`, `!=`, `>`, or
63377// `<`.
63378//
63379// For example, if you are filtering Compute Engine instances, you can
63380// exclude instances named `example-instance` by specifying `name !=
63381// example-instance`.
63382//
63383// You can also filter nested fields. For example, you could specify
63384// `scheduling.automaticRestart = false` to include instances only if
63385// they are not scheduled for automatic restarts. You can use filtering
63386// on nested fields to filter based on resource labels.
63387//
63388// To filter on multiple expressions, provide each separate expression
63389// within parentheses. For example: ``` (scheduling.automaticRestart =
63390// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
63391// is an `AND` expression. However, you can include `AND` and `OR`
63392// expressions explicitly. For example: ``` (cpuPlatform = "Intel
63393// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
63394// (scheduling.automaticRestart = true) ```
63395func (c *ForwardingRulesListCall) Filter(filter string) *ForwardingRulesListCall {
63396	c.urlParams_.Set("filter", filter)
63397	return c
63398}
63399
63400// MaxResults sets the optional parameter "maxResults": The maximum
63401// number of results per page that should be returned. If the number of
63402// available results is larger than `maxResults`, Compute Engine returns
63403// a `nextPageToken` that can be used to get the next page of results in
63404// subsequent list requests. Acceptable values are `0` to `500`,
63405// inclusive. (Default: `500`)
63406func (c *ForwardingRulesListCall) MaxResults(maxResults int64) *ForwardingRulesListCall {
63407	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
63408	return c
63409}
63410
63411// OrderBy sets the optional parameter "orderBy": Sorts list results by
63412// a certain order. By default, results are returned in alphanumerical
63413// order based on the resource name.
63414//
63415// You can also sort results in descending order based on the creation
63416// timestamp using `orderBy="creationTimestamp desc". This sorts
63417// results based on the `creationTimestamp` field in reverse
63418// chronological order (newest result first). Use this to sort resources
63419// like operations so that the newest operation is returned
63420// first.
63421//
63422// Currently, only sorting by `name` or `creationTimestamp desc` is
63423// supported.
63424func (c *ForwardingRulesListCall) OrderBy(orderBy string) *ForwardingRulesListCall {
63425	c.urlParams_.Set("orderBy", orderBy)
63426	return c
63427}
63428
63429// PageToken sets the optional parameter "pageToken": Specifies a page
63430// token to use. Set `pageToken` to the `nextPageToken` returned by a
63431// previous list request to get the next page of results.
63432func (c *ForwardingRulesListCall) PageToken(pageToken string) *ForwardingRulesListCall {
63433	c.urlParams_.Set("pageToken", pageToken)
63434	return c
63435}
63436
63437// ReturnPartialSuccess sets the optional parameter
63438// "returnPartialSuccess": Opt-in for partial success behavior which
63439// provides partial results in case of failure. The default value is
63440// false.
63441func (c *ForwardingRulesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ForwardingRulesListCall {
63442	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
63443	return c
63444}
63445
63446// Fields allows partial responses to be retrieved. See
63447// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63448// for more information.
63449func (c *ForwardingRulesListCall) Fields(s ...googleapi.Field) *ForwardingRulesListCall {
63450	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63451	return c
63452}
63453
63454// IfNoneMatch sets the optional parameter which makes the operation
63455// fail if the object's ETag matches the given value. This is useful for
63456// getting updates only after the object has changed since the last
63457// request. Use googleapi.IsNotModified to check whether the response
63458// error from Do is the result of In-None-Match.
63459func (c *ForwardingRulesListCall) IfNoneMatch(entityTag string) *ForwardingRulesListCall {
63460	c.ifNoneMatch_ = entityTag
63461	return c
63462}
63463
63464// Context sets the context to be used in this call's Do method. Any
63465// pending HTTP request will be aborted if the provided context is
63466// canceled.
63467func (c *ForwardingRulesListCall) Context(ctx context.Context) *ForwardingRulesListCall {
63468	c.ctx_ = ctx
63469	return c
63470}
63471
63472// Header returns an http.Header that can be modified by the caller to
63473// add HTTP headers to the request.
63474func (c *ForwardingRulesListCall) Header() http.Header {
63475	if c.header_ == nil {
63476		c.header_ = make(http.Header)
63477	}
63478	return c.header_
63479}
63480
63481func (c *ForwardingRulesListCall) doRequest(alt string) (*http.Response, error) {
63482	reqHeaders := make(http.Header)
63483	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
63484	for k, v := range c.header_ {
63485		reqHeaders[k] = v
63486	}
63487	reqHeaders.Set("User-Agent", c.s.userAgent())
63488	if c.ifNoneMatch_ != "" {
63489		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
63490	}
63491	var body io.Reader = nil
63492	c.urlParams_.Set("alt", alt)
63493	c.urlParams_.Set("prettyPrint", "false")
63494	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules")
63495	urls += "?" + c.urlParams_.Encode()
63496	req, err := http.NewRequest("GET", urls, body)
63497	if err != nil {
63498		return nil, err
63499	}
63500	req.Header = reqHeaders
63501	googleapi.Expand(req.URL, map[string]string{
63502		"project": c.project,
63503		"region":  c.region,
63504	})
63505	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63506}
63507
63508// Do executes the "compute.forwardingRules.list" call.
63509// Exactly one of *ForwardingRuleList or error will be non-nil. Any
63510// non-2xx status code is an error. Response headers are in either
63511// *ForwardingRuleList.ServerResponse.Header or (if a response was
63512// returned at all) in error.(*googleapi.Error).Header. Use
63513// googleapi.IsNotModified to check whether the returned error was
63514// because http.StatusNotModified was returned.
63515func (c *ForwardingRulesListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleList, error) {
63516	gensupport.SetOptions(c.urlParams_, opts...)
63517	res, err := c.doRequest("json")
63518	if res != nil && res.StatusCode == http.StatusNotModified {
63519		if res.Body != nil {
63520			res.Body.Close()
63521		}
63522		return nil, &googleapi.Error{
63523			Code:   res.StatusCode,
63524			Header: res.Header,
63525		}
63526	}
63527	if err != nil {
63528		return nil, err
63529	}
63530	defer googleapi.CloseBody(res)
63531	if err := googleapi.CheckResponse(res); err != nil {
63532		return nil, err
63533	}
63534	ret := &ForwardingRuleList{
63535		ServerResponse: googleapi.ServerResponse{
63536			Header:         res.Header,
63537			HTTPStatusCode: res.StatusCode,
63538		},
63539	}
63540	target := &ret
63541	if err := gensupport.DecodeResponse(target, res); err != nil {
63542		return nil, err
63543	}
63544	return ret, nil
63545	// {
63546	//   "description": "Retrieves a list of ForwardingRule resources available to the specified project and region.",
63547	//   "httpMethod": "GET",
63548	//   "id": "compute.forwardingRules.list",
63549	//   "parameterOrder": [
63550	//     "project",
63551	//     "region"
63552	//   ],
63553	//   "parameters": {
63554	//     "filter": {
63555	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
63556	//       "location": "query",
63557	//       "type": "string"
63558	//     },
63559	//     "maxResults": {
63560	//       "default": "500",
63561	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
63562	//       "format": "uint32",
63563	//       "location": "query",
63564	//       "minimum": "0",
63565	//       "type": "integer"
63566	//     },
63567	//     "orderBy": {
63568	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
63569	//       "location": "query",
63570	//       "type": "string"
63571	//     },
63572	//     "pageToken": {
63573	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
63574	//       "location": "query",
63575	//       "type": "string"
63576	//     },
63577	//     "project": {
63578	//       "description": "Project ID for this request.",
63579	//       "location": "path",
63580	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63581	//       "required": true,
63582	//       "type": "string"
63583	//     },
63584	//     "region": {
63585	//       "description": "Name of the region scoping this request.",
63586	//       "location": "path",
63587	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
63588	//       "required": true,
63589	//       "type": "string"
63590	//     },
63591	//     "returnPartialSuccess": {
63592	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
63593	//       "location": "query",
63594	//       "type": "boolean"
63595	//     }
63596	//   },
63597	//   "path": "projects/{project}/regions/{region}/forwardingRules",
63598	//   "response": {
63599	//     "$ref": "ForwardingRuleList"
63600	//   },
63601	//   "scopes": [
63602	//     "https://www.googleapis.com/auth/cloud-platform",
63603	//     "https://www.googleapis.com/auth/compute",
63604	//     "https://www.googleapis.com/auth/compute.readonly"
63605	//   ]
63606	// }
63607
63608}
63609
63610// Pages invokes f for each page of results.
63611// A non-nil error returned from f will halt the iteration.
63612// The provided context supersedes any context provided to the Context method.
63613func (c *ForwardingRulesListCall) Pages(ctx context.Context, f func(*ForwardingRuleList) error) error {
63614	c.ctx_ = ctx
63615	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
63616	for {
63617		x, err := c.Do()
63618		if err != nil {
63619			return err
63620		}
63621		if err := f(x); err != nil {
63622			return err
63623		}
63624		if x.NextPageToken == "" {
63625			return nil
63626		}
63627		c.PageToken(x.NextPageToken)
63628	}
63629}
63630
63631// method id "compute.forwardingRules.patch":
63632
63633type ForwardingRulesPatchCall struct {
63634	s              *Service
63635	project        string
63636	region         string
63637	forwardingRule string
63638	forwardingrule *ForwardingRule
63639	urlParams_     gensupport.URLParams
63640	ctx_           context.Context
63641	header_        http.Header
63642}
63643
63644// Patch: Updates the specified forwarding rule with the data included
63645// in the request. This method supports PATCH semantics and uses the
63646// JSON merge patch format and processing rules. Currently, you can only
63647// patch the network_tier field.
63648//
63649// - forwardingRule: Name of the ForwardingRule resource to patch.
63650// - project: Project ID for this request.
63651// - region: Name of the region scoping this request.
63652func (r *ForwardingRulesService) Patch(project string, region string, forwardingRule string, forwardingrule *ForwardingRule) *ForwardingRulesPatchCall {
63653	c := &ForwardingRulesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63654	c.project = project
63655	c.region = region
63656	c.forwardingRule = forwardingRule
63657	c.forwardingrule = forwardingrule
63658	return c
63659}
63660
63661// RequestId sets the optional parameter "requestId": An optional
63662// request ID to identify requests. Specify a unique request ID so that
63663// if you must retry your request, the server will know to ignore the
63664// request if it has already been completed.
63665//
63666// For example, consider a situation where you make an initial request
63667// and the request times out. If you make the request again with the
63668// same request ID, the server can check if original operation with the
63669// same request ID was received, and if so, will ignore the second
63670// request. This prevents clients from accidentally creating duplicate
63671// commitments.
63672//
63673// The request ID must be a valid UUID with the exception that zero UUID
63674// is not supported (00000000-0000-0000-0000-000000000000).
63675func (c *ForwardingRulesPatchCall) RequestId(requestId string) *ForwardingRulesPatchCall {
63676	c.urlParams_.Set("requestId", requestId)
63677	return c
63678}
63679
63680// Fields allows partial responses to be retrieved. See
63681// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63682// for more information.
63683func (c *ForwardingRulesPatchCall) Fields(s ...googleapi.Field) *ForwardingRulesPatchCall {
63684	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63685	return c
63686}
63687
63688// Context sets the context to be used in this call's Do method. Any
63689// pending HTTP request will be aborted if the provided context is
63690// canceled.
63691func (c *ForwardingRulesPatchCall) Context(ctx context.Context) *ForwardingRulesPatchCall {
63692	c.ctx_ = ctx
63693	return c
63694}
63695
63696// Header returns an http.Header that can be modified by the caller to
63697// add HTTP headers to the request.
63698func (c *ForwardingRulesPatchCall) Header() http.Header {
63699	if c.header_ == nil {
63700		c.header_ = make(http.Header)
63701	}
63702	return c.header_
63703}
63704
63705func (c *ForwardingRulesPatchCall) doRequest(alt string) (*http.Response, error) {
63706	reqHeaders := make(http.Header)
63707	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
63708	for k, v := range c.header_ {
63709		reqHeaders[k] = v
63710	}
63711	reqHeaders.Set("User-Agent", c.s.userAgent())
63712	var body io.Reader = nil
63713	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
63714	if err != nil {
63715		return nil, err
63716	}
63717	reqHeaders.Set("Content-Type", "application/json")
63718	c.urlParams_.Set("alt", alt)
63719	c.urlParams_.Set("prettyPrint", "false")
63720	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}")
63721	urls += "?" + c.urlParams_.Encode()
63722	req, err := http.NewRequest("PATCH", urls, body)
63723	if err != nil {
63724		return nil, err
63725	}
63726	req.Header = reqHeaders
63727	googleapi.Expand(req.URL, map[string]string{
63728		"project":        c.project,
63729		"region":         c.region,
63730		"forwardingRule": c.forwardingRule,
63731	})
63732	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63733}
63734
63735// Do executes the "compute.forwardingRules.patch" call.
63736// Exactly one of *Operation or error will be non-nil. Any non-2xx
63737// status code is an error. Response headers are in either
63738// *Operation.ServerResponse.Header or (if a response was returned at
63739// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
63740// to check whether the returned error was because
63741// http.StatusNotModified was returned.
63742func (c *ForwardingRulesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
63743	gensupport.SetOptions(c.urlParams_, opts...)
63744	res, err := c.doRequest("json")
63745	if res != nil && res.StatusCode == http.StatusNotModified {
63746		if res.Body != nil {
63747			res.Body.Close()
63748		}
63749		return nil, &googleapi.Error{
63750			Code:   res.StatusCode,
63751			Header: res.Header,
63752		}
63753	}
63754	if err != nil {
63755		return nil, err
63756	}
63757	defer googleapi.CloseBody(res)
63758	if err := googleapi.CheckResponse(res); err != nil {
63759		return nil, err
63760	}
63761	ret := &Operation{
63762		ServerResponse: googleapi.ServerResponse{
63763			Header:         res.Header,
63764			HTTPStatusCode: res.StatusCode,
63765		},
63766	}
63767	target := &ret
63768	if err := gensupport.DecodeResponse(target, res); err != nil {
63769		return nil, err
63770	}
63771	return ret, nil
63772	// {
63773	//   "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.",
63774	//   "httpMethod": "PATCH",
63775	//   "id": "compute.forwardingRules.patch",
63776	//   "parameterOrder": [
63777	//     "project",
63778	//     "region",
63779	//     "forwardingRule"
63780	//   ],
63781	//   "parameters": {
63782	//     "forwardingRule": {
63783	//       "description": "Name of the ForwardingRule resource to patch.",
63784	//       "location": "path",
63785	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
63786	//       "required": true,
63787	//       "type": "string"
63788	//     },
63789	//     "project": {
63790	//       "description": "Project ID for this request.",
63791	//       "location": "path",
63792	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63793	//       "required": true,
63794	//       "type": "string"
63795	//     },
63796	//     "region": {
63797	//       "description": "Name of the region scoping this request.",
63798	//       "location": "path",
63799	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
63800	//       "required": true,
63801	//       "type": "string"
63802	//     },
63803	//     "requestId": {
63804	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
63805	//       "location": "query",
63806	//       "type": "string"
63807	//     }
63808	//   },
63809	//   "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}",
63810	//   "request": {
63811	//     "$ref": "ForwardingRule"
63812	//   },
63813	//   "response": {
63814	//     "$ref": "Operation"
63815	//   },
63816	//   "scopes": [
63817	//     "https://www.googleapis.com/auth/cloud-platform",
63818	//     "https://www.googleapis.com/auth/compute"
63819	//   ]
63820	// }
63821
63822}
63823
63824// method id "compute.forwardingRules.setLabels":
63825
63826type ForwardingRulesSetLabelsCall struct {
63827	s                      *Service
63828	project                string
63829	region                 string
63830	resource               string
63831	regionsetlabelsrequest *RegionSetLabelsRequest
63832	urlParams_             gensupport.URLParams
63833	ctx_                   context.Context
63834	header_                http.Header
63835}
63836
63837// SetLabels: Sets the labels on the specified resource. To learn more
63838// about labels, read the Labeling Resources documentation.
63839//
63840// - project: Project ID for this request.
63841// - region: The region for this request.
63842// - resource: Name or id of the resource for this request.
63843func (r *ForwardingRulesService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *ForwardingRulesSetLabelsCall {
63844	c := &ForwardingRulesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63845	c.project = project
63846	c.region = region
63847	c.resource = resource
63848	c.regionsetlabelsrequest = regionsetlabelsrequest
63849	return c
63850}
63851
63852// RequestId sets the optional parameter "requestId": An optional
63853// request ID to identify requests. Specify a unique request ID so that
63854// if you must retry your request, the server will know to ignore the
63855// request if it has already been completed.
63856//
63857// For example, consider a situation where you make an initial request
63858// and the request times out. If you make the request again with the
63859// same request ID, the server can check if original operation with the
63860// same request ID was received, and if so, will ignore the second
63861// request. This prevents clients from accidentally creating duplicate
63862// commitments.
63863//
63864// The request ID must be a valid UUID with the exception that zero UUID
63865// is not supported (00000000-0000-0000-0000-000000000000).
63866func (c *ForwardingRulesSetLabelsCall) RequestId(requestId string) *ForwardingRulesSetLabelsCall {
63867	c.urlParams_.Set("requestId", requestId)
63868	return c
63869}
63870
63871// Fields allows partial responses to be retrieved. See
63872// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63873// for more information.
63874func (c *ForwardingRulesSetLabelsCall) Fields(s ...googleapi.Field) *ForwardingRulesSetLabelsCall {
63875	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63876	return c
63877}
63878
63879// Context sets the context to be used in this call's Do method. Any
63880// pending HTTP request will be aborted if the provided context is
63881// canceled.
63882func (c *ForwardingRulesSetLabelsCall) Context(ctx context.Context) *ForwardingRulesSetLabelsCall {
63883	c.ctx_ = ctx
63884	return c
63885}
63886
63887// Header returns an http.Header that can be modified by the caller to
63888// add HTTP headers to the request.
63889func (c *ForwardingRulesSetLabelsCall) Header() http.Header {
63890	if c.header_ == nil {
63891		c.header_ = make(http.Header)
63892	}
63893	return c.header_
63894}
63895
63896func (c *ForwardingRulesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
63897	reqHeaders := make(http.Header)
63898	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
63899	for k, v := range c.header_ {
63900		reqHeaders[k] = v
63901	}
63902	reqHeaders.Set("User-Agent", c.s.userAgent())
63903	var body io.Reader = nil
63904	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
63905	if err != nil {
63906		return nil, err
63907	}
63908	reqHeaders.Set("Content-Type", "application/json")
63909	c.urlParams_.Set("alt", alt)
63910	c.urlParams_.Set("prettyPrint", "false")
63911	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules/{resource}/setLabels")
63912	urls += "?" + c.urlParams_.Encode()
63913	req, err := http.NewRequest("POST", urls, body)
63914	if err != nil {
63915		return nil, err
63916	}
63917	req.Header = reqHeaders
63918	googleapi.Expand(req.URL, map[string]string{
63919		"project":  c.project,
63920		"region":   c.region,
63921		"resource": c.resource,
63922	})
63923	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63924}
63925
63926// Do executes the "compute.forwardingRules.setLabels" call.
63927// Exactly one of *Operation or error will be non-nil. Any non-2xx
63928// status code is an error. Response headers are in either
63929// *Operation.ServerResponse.Header or (if a response was returned at
63930// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
63931// to check whether the returned error was because
63932// http.StatusNotModified was returned.
63933func (c *ForwardingRulesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
63934	gensupport.SetOptions(c.urlParams_, opts...)
63935	res, err := c.doRequest("json")
63936	if res != nil && res.StatusCode == http.StatusNotModified {
63937		if res.Body != nil {
63938			res.Body.Close()
63939		}
63940		return nil, &googleapi.Error{
63941			Code:   res.StatusCode,
63942			Header: res.Header,
63943		}
63944	}
63945	if err != nil {
63946		return nil, err
63947	}
63948	defer googleapi.CloseBody(res)
63949	if err := googleapi.CheckResponse(res); err != nil {
63950		return nil, err
63951	}
63952	ret := &Operation{
63953		ServerResponse: googleapi.ServerResponse{
63954			Header:         res.Header,
63955			HTTPStatusCode: res.StatusCode,
63956		},
63957	}
63958	target := &ret
63959	if err := gensupport.DecodeResponse(target, res); err != nil {
63960		return nil, err
63961	}
63962	return ret, nil
63963	// {
63964	//   "description": "Sets the labels on the specified resource. To learn more about labels, read the Labeling Resources documentation.",
63965	//   "httpMethod": "POST",
63966	//   "id": "compute.forwardingRules.setLabels",
63967	//   "parameterOrder": [
63968	//     "project",
63969	//     "region",
63970	//     "resource"
63971	//   ],
63972	//   "parameters": {
63973	//     "project": {
63974	//       "description": "Project ID for this request.",
63975	//       "location": "path",
63976	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63977	//       "required": true,
63978	//       "type": "string"
63979	//     },
63980	//     "region": {
63981	//       "description": "The region for this request.",
63982	//       "location": "path",
63983	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
63984	//       "required": true,
63985	//       "type": "string"
63986	//     },
63987	//     "requestId": {
63988	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
63989	//       "location": "query",
63990	//       "type": "string"
63991	//     },
63992	//     "resource": {
63993	//       "description": "Name or id of the resource for this request.",
63994	//       "location": "path",
63995	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
63996	//       "required": true,
63997	//       "type": "string"
63998	//     }
63999	//   },
64000	//   "path": "projects/{project}/regions/{region}/forwardingRules/{resource}/setLabels",
64001	//   "request": {
64002	//     "$ref": "RegionSetLabelsRequest"
64003	//   },
64004	//   "response": {
64005	//     "$ref": "Operation"
64006	//   },
64007	//   "scopes": [
64008	//     "https://www.googleapis.com/auth/cloud-platform",
64009	//     "https://www.googleapis.com/auth/compute"
64010	//   ]
64011	// }
64012
64013}
64014
64015// method id "compute.forwardingRules.setTarget":
64016
64017type ForwardingRulesSetTargetCall struct {
64018	s               *Service
64019	project         string
64020	region          string
64021	forwardingRule  string
64022	targetreference *TargetReference
64023	urlParams_      gensupport.URLParams
64024	ctx_            context.Context
64025	header_         http.Header
64026}
64027
64028// SetTarget: Changes target URL for forwarding rule. The new target
64029// should be of the same type as the old target.
64030//
64031// - forwardingRule: Name of the ForwardingRule resource in which target
64032//   is to be set.
64033// - project: Project ID for this request.
64034// - region: Name of the region scoping this request.
64035// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/setTarget
64036func (r *ForwardingRulesService) SetTarget(project string, region string, forwardingRule string, targetreference *TargetReference) *ForwardingRulesSetTargetCall {
64037	c := &ForwardingRulesSetTargetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64038	c.project = project
64039	c.region = region
64040	c.forwardingRule = forwardingRule
64041	c.targetreference = targetreference
64042	return c
64043}
64044
64045// RequestId sets the optional parameter "requestId": An optional
64046// request ID to identify requests. Specify a unique request ID so that
64047// if you must retry your request, the server will know to ignore the
64048// request if it has already been completed.
64049//
64050// For example, consider a situation where you make an initial request
64051// and the request times out. If you make the request again with the
64052// same request ID, the server can check if original operation with the
64053// same request ID was received, and if so, will ignore the second
64054// request. This prevents clients from accidentally creating duplicate
64055// commitments.
64056//
64057// The request ID must be a valid UUID with the exception that zero UUID
64058// is not supported (00000000-0000-0000-0000-000000000000).
64059func (c *ForwardingRulesSetTargetCall) RequestId(requestId string) *ForwardingRulesSetTargetCall {
64060	c.urlParams_.Set("requestId", requestId)
64061	return c
64062}
64063
64064// Fields allows partial responses to be retrieved. See
64065// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64066// for more information.
64067func (c *ForwardingRulesSetTargetCall) Fields(s ...googleapi.Field) *ForwardingRulesSetTargetCall {
64068	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64069	return c
64070}
64071
64072// Context sets the context to be used in this call's Do method. Any
64073// pending HTTP request will be aborted if the provided context is
64074// canceled.
64075func (c *ForwardingRulesSetTargetCall) Context(ctx context.Context) *ForwardingRulesSetTargetCall {
64076	c.ctx_ = ctx
64077	return c
64078}
64079
64080// Header returns an http.Header that can be modified by the caller to
64081// add HTTP headers to the request.
64082func (c *ForwardingRulesSetTargetCall) Header() http.Header {
64083	if c.header_ == nil {
64084		c.header_ = make(http.Header)
64085	}
64086	return c.header_
64087}
64088
64089func (c *ForwardingRulesSetTargetCall) doRequest(alt string) (*http.Response, error) {
64090	reqHeaders := make(http.Header)
64091	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
64092	for k, v := range c.header_ {
64093		reqHeaders[k] = v
64094	}
64095	reqHeaders.Set("User-Agent", c.s.userAgent())
64096	var body io.Reader = nil
64097	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
64098	if err != nil {
64099		return nil, err
64100	}
64101	reqHeaders.Set("Content-Type", "application/json")
64102	c.urlParams_.Set("alt", alt)
64103	c.urlParams_.Set("prettyPrint", "false")
64104	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget")
64105	urls += "?" + c.urlParams_.Encode()
64106	req, err := http.NewRequest("POST", urls, body)
64107	if err != nil {
64108		return nil, err
64109	}
64110	req.Header = reqHeaders
64111	googleapi.Expand(req.URL, map[string]string{
64112		"project":        c.project,
64113		"region":         c.region,
64114		"forwardingRule": c.forwardingRule,
64115	})
64116	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64117}
64118
64119// Do executes the "compute.forwardingRules.setTarget" call.
64120// Exactly one of *Operation or error will be non-nil. Any non-2xx
64121// status code is an error. Response headers are in either
64122// *Operation.ServerResponse.Header or (if a response was returned at
64123// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64124// to check whether the returned error was because
64125// http.StatusNotModified was returned.
64126func (c *ForwardingRulesSetTargetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64127	gensupport.SetOptions(c.urlParams_, opts...)
64128	res, err := c.doRequest("json")
64129	if res != nil && res.StatusCode == http.StatusNotModified {
64130		if res.Body != nil {
64131			res.Body.Close()
64132		}
64133		return nil, &googleapi.Error{
64134			Code:   res.StatusCode,
64135			Header: res.Header,
64136		}
64137	}
64138	if err != nil {
64139		return nil, err
64140	}
64141	defer googleapi.CloseBody(res)
64142	if err := googleapi.CheckResponse(res); err != nil {
64143		return nil, err
64144	}
64145	ret := &Operation{
64146		ServerResponse: googleapi.ServerResponse{
64147			Header:         res.Header,
64148			HTTPStatusCode: res.StatusCode,
64149		},
64150	}
64151	target := &ret
64152	if err := gensupport.DecodeResponse(target, res); err != nil {
64153		return nil, err
64154	}
64155	return ret, nil
64156	// {
64157	//   "description": "Changes target URL for forwarding rule. The new target should be of the same type as the old target.",
64158	//   "httpMethod": "POST",
64159	//   "id": "compute.forwardingRules.setTarget",
64160	//   "parameterOrder": [
64161	//     "project",
64162	//     "region",
64163	//     "forwardingRule"
64164	//   ],
64165	//   "parameters": {
64166	//     "forwardingRule": {
64167	//       "description": "Name of the ForwardingRule resource in which target is to be set.",
64168	//       "location": "path",
64169	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
64170	//       "required": true,
64171	//       "type": "string"
64172	//     },
64173	//     "project": {
64174	//       "description": "Project ID for this request.",
64175	//       "location": "path",
64176	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64177	//       "required": true,
64178	//       "type": "string"
64179	//     },
64180	//     "region": {
64181	//       "description": "Name of the region scoping this request.",
64182	//       "location": "path",
64183	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
64184	//       "required": true,
64185	//       "type": "string"
64186	//     },
64187	//     "requestId": {
64188	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
64189	//       "location": "query",
64190	//       "type": "string"
64191	//     }
64192	//   },
64193	//   "path": "projects/{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget",
64194	//   "request": {
64195	//     "$ref": "TargetReference"
64196	//   },
64197	//   "response": {
64198	//     "$ref": "Operation"
64199	//   },
64200	//   "scopes": [
64201	//     "https://www.googleapis.com/auth/cloud-platform",
64202	//     "https://www.googleapis.com/auth/compute"
64203	//   ]
64204	// }
64205
64206}
64207
64208// method id "compute.globalAddresses.delete":
64209
64210type GlobalAddressesDeleteCall struct {
64211	s          *Service
64212	project    string
64213	address    string
64214	urlParams_ gensupport.URLParams
64215	ctx_       context.Context
64216	header_    http.Header
64217}
64218
64219// Delete: Deletes the specified address resource.
64220//
64221// - address: Name of the address resource to delete.
64222// - project: Project ID for this request.
64223// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/delete
64224func (r *GlobalAddressesService) Delete(project string, address string) *GlobalAddressesDeleteCall {
64225	c := &GlobalAddressesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64226	c.project = project
64227	c.address = address
64228	return c
64229}
64230
64231// RequestId sets the optional parameter "requestId": An optional
64232// request ID to identify requests. Specify a unique request ID so that
64233// if you must retry your request, the server will know to ignore the
64234// request if it has already been completed.
64235//
64236// For example, consider a situation where you make an initial request
64237// and the request times out. If you make the request again with the
64238// same request ID, the server can check if original operation with the
64239// same request ID was received, and if so, will ignore the second
64240// request. This prevents clients from accidentally creating duplicate
64241// commitments.
64242//
64243// The request ID must be a valid UUID with the exception that zero UUID
64244// is not supported (00000000-0000-0000-0000-000000000000).
64245func (c *GlobalAddressesDeleteCall) RequestId(requestId string) *GlobalAddressesDeleteCall {
64246	c.urlParams_.Set("requestId", requestId)
64247	return c
64248}
64249
64250// Fields allows partial responses to be retrieved. See
64251// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64252// for more information.
64253func (c *GlobalAddressesDeleteCall) Fields(s ...googleapi.Field) *GlobalAddressesDeleteCall {
64254	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64255	return c
64256}
64257
64258// Context sets the context to be used in this call's Do method. Any
64259// pending HTTP request will be aborted if the provided context is
64260// canceled.
64261func (c *GlobalAddressesDeleteCall) Context(ctx context.Context) *GlobalAddressesDeleteCall {
64262	c.ctx_ = ctx
64263	return c
64264}
64265
64266// Header returns an http.Header that can be modified by the caller to
64267// add HTTP headers to the request.
64268func (c *GlobalAddressesDeleteCall) Header() http.Header {
64269	if c.header_ == nil {
64270		c.header_ = make(http.Header)
64271	}
64272	return c.header_
64273}
64274
64275func (c *GlobalAddressesDeleteCall) doRequest(alt string) (*http.Response, error) {
64276	reqHeaders := make(http.Header)
64277	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
64278	for k, v := range c.header_ {
64279		reqHeaders[k] = v
64280	}
64281	reqHeaders.Set("User-Agent", c.s.userAgent())
64282	var body io.Reader = nil
64283	c.urlParams_.Set("alt", alt)
64284	c.urlParams_.Set("prettyPrint", "false")
64285	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses/{address}")
64286	urls += "?" + c.urlParams_.Encode()
64287	req, err := http.NewRequest("DELETE", urls, body)
64288	if err != nil {
64289		return nil, err
64290	}
64291	req.Header = reqHeaders
64292	googleapi.Expand(req.URL, map[string]string{
64293		"project": c.project,
64294		"address": c.address,
64295	})
64296	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64297}
64298
64299// Do executes the "compute.globalAddresses.delete" call.
64300// Exactly one of *Operation or error will be non-nil. Any non-2xx
64301// status code is an error. Response headers are in either
64302// *Operation.ServerResponse.Header or (if a response was returned at
64303// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64304// to check whether the returned error was because
64305// http.StatusNotModified was returned.
64306func (c *GlobalAddressesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64307	gensupport.SetOptions(c.urlParams_, opts...)
64308	res, err := c.doRequest("json")
64309	if res != nil && res.StatusCode == http.StatusNotModified {
64310		if res.Body != nil {
64311			res.Body.Close()
64312		}
64313		return nil, &googleapi.Error{
64314			Code:   res.StatusCode,
64315			Header: res.Header,
64316		}
64317	}
64318	if err != nil {
64319		return nil, err
64320	}
64321	defer googleapi.CloseBody(res)
64322	if err := googleapi.CheckResponse(res); err != nil {
64323		return nil, err
64324	}
64325	ret := &Operation{
64326		ServerResponse: googleapi.ServerResponse{
64327			Header:         res.Header,
64328			HTTPStatusCode: res.StatusCode,
64329		},
64330	}
64331	target := &ret
64332	if err := gensupport.DecodeResponse(target, res); err != nil {
64333		return nil, err
64334	}
64335	return ret, nil
64336	// {
64337	//   "description": "Deletes the specified address resource.",
64338	//   "httpMethod": "DELETE",
64339	//   "id": "compute.globalAddresses.delete",
64340	//   "parameterOrder": [
64341	//     "project",
64342	//     "address"
64343	//   ],
64344	//   "parameters": {
64345	//     "address": {
64346	//       "description": "Name of the address resource to delete.",
64347	//       "location": "path",
64348	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
64349	//       "required": true,
64350	//       "type": "string"
64351	//     },
64352	//     "project": {
64353	//       "description": "Project ID for this request.",
64354	//       "location": "path",
64355	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64356	//       "required": true,
64357	//       "type": "string"
64358	//     },
64359	//     "requestId": {
64360	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
64361	//       "location": "query",
64362	//       "type": "string"
64363	//     }
64364	//   },
64365	//   "path": "projects/{project}/global/addresses/{address}",
64366	//   "response": {
64367	//     "$ref": "Operation"
64368	//   },
64369	//   "scopes": [
64370	//     "https://www.googleapis.com/auth/cloud-platform",
64371	//     "https://www.googleapis.com/auth/compute"
64372	//   ]
64373	// }
64374
64375}
64376
64377// method id "compute.globalAddresses.get":
64378
64379type GlobalAddressesGetCall struct {
64380	s            *Service
64381	project      string
64382	address      string
64383	urlParams_   gensupport.URLParams
64384	ifNoneMatch_ string
64385	ctx_         context.Context
64386	header_      http.Header
64387}
64388
64389// Get: Returns the specified address resource. Gets a list of available
64390// addresses by making a list() request.
64391//
64392// - address: Name of the address resource to return.
64393// - project: Project ID for this request.
64394// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/get
64395func (r *GlobalAddressesService) Get(project string, address string) *GlobalAddressesGetCall {
64396	c := &GlobalAddressesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64397	c.project = project
64398	c.address = address
64399	return c
64400}
64401
64402// Fields allows partial responses to be retrieved. See
64403// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64404// for more information.
64405func (c *GlobalAddressesGetCall) Fields(s ...googleapi.Field) *GlobalAddressesGetCall {
64406	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64407	return c
64408}
64409
64410// IfNoneMatch sets the optional parameter which makes the operation
64411// fail if the object's ETag matches the given value. This is useful for
64412// getting updates only after the object has changed since the last
64413// request. Use googleapi.IsNotModified to check whether the response
64414// error from Do is the result of In-None-Match.
64415func (c *GlobalAddressesGetCall) IfNoneMatch(entityTag string) *GlobalAddressesGetCall {
64416	c.ifNoneMatch_ = entityTag
64417	return c
64418}
64419
64420// Context sets the context to be used in this call's Do method. Any
64421// pending HTTP request will be aborted if the provided context is
64422// canceled.
64423func (c *GlobalAddressesGetCall) Context(ctx context.Context) *GlobalAddressesGetCall {
64424	c.ctx_ = ctx
64425	return c
64426}
64427
64428// Header returns an http.Header that can be modified by the caller to
64429// add HTTP headers to the request.
64430func (c *GlobalAddressesGetCall) Header() http.Header {
64431	if c.header_ == nil {
64432		c.header_ = make(http.Header)
64433	}
64434	return c.header_
64435}
64436
64437func (c *GlobalAddressesGetCall) doRequest(alt string) (*http.Response, error) {
64438	reqHeaders := make(http.Header)
64439	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
64440	for k, v := range c.header_ {
64441		reqHeaders[k] = v
64442	}
64443	reqHeaders.Set("User-Agent", c.s.userAgent())
64444	if c.ifNoneMatch_ != "" {
64445		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
64446	}
64447	var body io.Reader = nil
64448	c.urlParams_.Set("alt", alt)
64449	c.urlParams_.Set("prettyPrint", "false")
64450	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses/{address}")
64451	urls += "?" + c.urlParams_.Encode()
64452	req, err := http.NewRequest("GET", urls, body)
64453	if err != nil {
64454		return nil, err
64455	}
64456	req.Header = reqHeaders
64457	googleapi.Expand(req.URL, map[string]string{
64458		"project": c.project,
64459		"address": c.address,
64460	})
64461	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64462}
64463
64464// Do executes the "compute.globalAddresses.get" call.
64465// Exactly one of *Address or error will be non-nil. Any non-2xx status
64466// code is an error. Response headers are in either
64467// *Address.ServerResponse.Header or (if a response was returned at all)
64468// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
64469// check whether the returned error was because http.StatusNotModified
64470// was returned.
64471func (c *GlobalAddressesGetCall) Do(opts ...googleapi.CallOption) (*Address, error) {
64472	gensupport.SetOptions(c.urlParams_, opts...)
64473	res, err := c.doRequest("json")
64474	if res != nil && res.StatusCode == http.StatusNotModified {
64475		if res.Body != nil {
64476			res.Body.Close()
64477		}
64478		return nil, &googleapi.Error{
64479			Code:   res.StatusCode,
64480			Header: res.Header,
64481		}
64482	}
64483	if err != nil {
64484		return nil, err
64485	}
64486	defer googleapi.CloseBody(res)
64487	if err := googleapi.CheckResponse(res); err != nil {
64488		return nil, err
64489	}
64490	ret := &Address{
64491		ServerResponse: googleapi.ServerResponse{
64492			Header:         res.Header,
64493			HTTPStatusCode: res.StatusCode,
64494		},
64495	}
64496	target := &ret
64497	if err := gensupport.DecodeResponse(target, res); err != nil {
64498		return nil, err
64499	}
64500	return ret, nil
64501	// {
64502	//   "description": "Returns the specified address resource. Gets a list of available addresses by making a list() request.",
64503	//   "httpMethod": "GET",
64504	//   "id": "compute.globalAddresses.get",
64505	//   "parameterOrder": [
64506	//     "project",
64507	//     "address"
64508	//   ],
64509	//   "parameters": {
64510	//     "address": {
64511	//       "description": "Name of the address resource to return.",
64512	//       "location": "path",
64513	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
64514	//       "required": true,
64515	//       "type": "string"
64516	//     },
64517	//     "project": {
64518	//       "description": "Project ID for this request.",
64519	//       "location": "path",
64520	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64521	//       "required": true,
64522	//       "type": "string"
64523	//     }
64524	//   },
64525	//   "path": "projects/{project}/global/addresses/{address}",
64526	//   "response": {
64527	//     "$ref": "Address"
64528	//   },
64529	//   "scopes": [
64530	//     "https://www.googleapis.com/auth/cloud-platform",
64531	//     "https://www.googleapis.com/auth/compute",
64532	//     "https://www.googleapis.com/auth/compute.readonly"
64533	//   ]
64534	// }
64535
64536}
64537
64538// method id "compute.globalAddresses.insert":
64539
64540type GlobalAddressesInsertCall struct {
64541	s          *Service
64542	project    string
64543	address    *Address
64544	urlParams_ gensupport.URLParams
64545	ctx_       context.Context
64546	header_    http.Header
64547}
64548
64549// Insert: Creates an address resource in the specified project by using
64550// the data included in the request.
64551//
64552// - project: Project ID for this request.
64553// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/insert
64554func (r *GlobalAddressesService) Insert(project string, address *Address) *GlobalAddressesInsertCall {
64555	c := &GlobalAddressesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64556	c.project = project
64557	c.address = address
64558	return c
64559}
64560
64561// RequestId sets the optional parameter "requestId": An optional
64562// request ID to identify requests. Specify a unique request ID so that
64563// if you must retry your request, the server will know to ignore the
64564// request if it has already been completed.
64565//
64566// For example, consider a situation where you make an initial request
64567// and the request times out. If you make the request again with the
64568// same request ID, the server can check if original operation with the
64569// same request ID was received, and if so, will ignore the second
64570// request. This prevents clients from accidentally creating duplicate
64571// commitments.
64572//
64573// The request ID must be a valid UUID with the exception that zero UUID
64574// is not supported (00000000-0000-0000-0000-000000000000).
64575func (c *GlobalAddressesInsertCall) RequestId(requestId string) *GlobalAddressesInsertCall {
64576	c.urlParams_.Set("requestId", requestId)
64577	return c
64578}
64579
64580// Fields allows partial responses to be retrieved. See
64581// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64582// for more information.
64583func (c *GlobalAddressesInsertCall) Fields(s ...googleapi.Field) *GlobalAddressesInsertCall {
64584	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64585	return c
64586}
64587
64588// Context sets the context to be used in this call's Do method. Any
64589// pending HTTP request will be aborted if the provided context is
64590// canceled.
64591func (c *GlobalAddressesInsertCall) Context(ctx context.Context) *GlobalAddressesInsertCall {
64592	c.ctx_ = ctx
64593	return c
64594}
64595
64596// Header returns an http.Header that can be modified by the caller to
64597// add HTTP headers to the request.
64598func (c *GlobalAddressesInsertCall) Header() http.Header {
64599	if c.header_ == nil {
64600		c.header_ = make(http.Header)
64601	}
64602	return c.header_
64603}
64604
64605func (c *GlobalAddressesInsertCall) doRequest(alt string) (*http.Response, error) {
64606	reqHeaders := make(http.Header)
64607	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
64608	for k, v := range c.header_ {
64609		reqHeaders[k] = v
64610	}
64611	reqHeaders.Set("User-Agent", c.s.userAgent())
64612	var body io.Reader = nil
64613	body, err := googleapi.WithoutDataWrapper.JSONReader(c.address)
64614	if err != nil {
64615		return nil, err
64616	}
64617	reqHeaders.Set("Content-Type", "application/json")
64618	c.urlParams_.Set("alt", alt)
64619	c.urlParams_.Set("prettyPrint", "false")
64620	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses")
64621	urls += "?" + c.urlParams_.Encode()
64622	req, err := http.NewRequest("POST", urls, body)
64623	if err != nil {
64624		return nil, err
64625	}
64626	req.Header = reqHeaders
64627	googleapi.Expand(req.URL, map[string]string{
64628		"project": c.project,
64629	})
64630	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64631}
64632
64633// Do executes the "compute.globalAddresses.insert" call.
64634// Exactly one of *Operation or error will be non-nil. Any non-2xx
64635// status code is an error. Response headers are in either
64636// *Operation.ServerResponse.Header or (if a response was returned at
64637// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64638// to check whether the returned error was because
64639// http.StatusNotModified was returned.
64640func (c *GlobalAddressesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64641	gensupport.SetOptions(c.urlParams_, opts...)
64642	res, err := c.doRequest("json")
64643	if res != nil && res.StatusCode == http.StatusNotModified {
64644		if res.Body != nil {
64645			res.Body.Close()
64646		}
64647		return nil, &googleapi.Error{
64648			Code:   res.StatusCode,
64649			Header: res.Header,
64650		}
64651	}
64652	if err != nil {
64653		return nil, err
64654	}
64655	defer googleapi.CloseBody(res)
64656	if err := googleapi.CheckResponse(res); err != nil {
64657		return nil, err
64658	}
64659	ret := &Operation{
64660		ServerResponse: googleapi.ServerResponse{
64661			Header:         res.Header,
64662			HTTPStatusCode: res.StatusCode,
64663		},
64664	}
64665	target := &ret
64666	if err := gensupport.DecodeResponse(target, res); err != nil {
64667		return nil, err
64668	}
64669	return ret, nil
64670	// {
64671	//   "description": "Creates an address resource in the specified project by using the data included in the request.",
64672	//   "httpMethod": "POST",
64673	//   "id": "compute.globalAddresses.insert",
64674	//   "parameterOrder": [
64675	//     "project"
64676	//   ],
64677	//   "parameters": {
64678	//     "project": {
64679	//       "description": "Project ID for this request.",
64680	//       "location": "path",
64681	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64682	//       "required": true,
64683	//       "type": "string"
64684	//     },
64685	//     "requestId": {
64686	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
64687	//       "location": "query",
64688	//       "type": "string"
64689	//     }
64690	//   },
64691	//   "path": "projects/{project}/global/addresses",
64692	//   "request": {
64693	//     "$ref": "Address"
64694	//   },
64695	//   "response": {
64696	//     "$ref": "Operation"
64697	//   },
64698	//   "scopes": [
64699	//     "https://www.googleapis.com/auth/cloud-platform",
64700	//     "https://www.googleapis.com/auth/compute"
64701	//   ]
64702	// }
64703
64704}
64705
64706// method id "compute.globalAddresses.list":
64707
64708type GlobalAddressesListCall struct {
64709	s            *Service
64710	project      string
64711	urlParams_   gensupport.URLParams
64712	ifNoneMatch_ string
64713	ctx_         context.Context
64714	header_      http.Header
64715}
64716
64717// List: Retrieves a list of global addresses.
64718//
64719// - project: Project ID for this request.
64720// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/list
64721func (r *GlobalAddressesService) List(project string) *GlobalAddressesListCall {
64722	c := &GlobalAddressesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64723	c.project = project
64724	return c
64725}
64726
64727// Filter sets the optional parameter "filter": A filter expression that
64728// filters resources listed in the response. The expression must specify
64729// the field name, a comparison operator, and the value that you want to
64730// use for filtering. The value must be a string, a number, or a
64731// boolean. The comparison operator must be either `=`, `!=`, `>`, or
64732// `<`.
64733//
64734// For example, if you are filtering Compute Engine instances, you can
64735// exclude instances named `example-instance` by specifying `name !=
64736// example-instance`.
64737//
64738// You can also filter nested fields. For example, you could specify
64739// `scheduling.automaticRestart = false` to include instances only if
64740// they are not scheduled for automatic restarts. You can use filtering
64741// on nested fields to filter based on resource labels.
64742//
64743// To filter on multiple expressions, provide each separate expression
64744// within parentheses. For example: ``` (scheduling.automaticRestart =
64745// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
64746// is an `AND` expression. However, you can include `AND` and `OR`
64747// expressions explicitly. For example: ``` (cpuPlatform = "Intel
64748// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
64749// (scheduling.automaticRestart = true) ```
64750func (c *GlobalAddressesListCall) Filter(filter string) *GlobalAddressesListCall {
64751	c.urlParams_.Set("filter", filter)
64752	return c
64753}
64754
64755// MaxResults sets the optional parameter "maxResults": The maximum
64756// number of results per page that should be returned. If the number of
64757// available results is larger than `maxResults`, Compute Engine returns
64758// a `nextPageToken` that can be used to get the next page of results in
64759// subsequent list requests. Acceptable values are `0` to `500`,
64760// inclusive. (Default: `500`)
64761func (c *GlobalAddressesListCall) MaxResults(maxResults int64) *GlobalAddressesListCall {
64762	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
64763	return c
64764}
64765
64766// OrderBy sets the optional parameter "orderBy": Sorts list results by
64767// a certain order. By default, results are returned in alphanumerical
64768// order based on the resource name.
64769//
64770// You can also sort results in descending order based on the creation
64771// timestamp using `orderBy="creationTimestamp desc". This sorts
64772// results based on the `creationTimestamp` field in reverse
64773// chronological order (newest result first). Use this to sort resources
64774// like operations so that the newest operation is returned
64775// first.
64776//
64777// Currently, only sorting by `name` or `creationTimestamp desc` is
64778// supported.
64779func (c *GlobalAddressesListCall) OrderBy(orderBy string) *GlobalAddressesListCall {
64780	c.urlParams_.Set("orderBy", orderBy)
64781	return c
64782}
64783
64784// PageToken sets the optional parameter "pageToken": Specifies a page
64785// token to use. Set `pageToken` to the `nextPageToken` returned by a
64786// previous list request to get the next page of results.
64787func (c *GlobalAddressesListCall) PageToken(pageToken string) *GlobalAddressesListCall {
64788	c.urlParams_.Set("pageToken", pageToken)
64789	return c
64790}
64791
64792// ReturnPartialSuccess sets the optional parameter
64793// "returnPartialSuccess": Opt-in for partial success behavior which
64794// provides partial results in case of failure. The default value is
64795// false.
64796func (c *GlobalAddressesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalAddressesListCall {
64797	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
64798	return c
64799}
64800
64801// Fields allows partial responses to be retrieved. See
64802// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64803// for more information.
64804func (c *GlobalAddressesListCall) Fields(s ...googleapi.Field) *GlobalAddressesListCall {
64805	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64806	return c
64807}
64808
64809// IfNoneMatch sets the optional parameter which makes the operation
64810// fail if the object's ETag matches the given value. This is useful for
64811// getting updates only after the object has changed since the last
64812// request. Use googleapi.IsNotModified to check whether the response
64813// error from Do is the result of In-None-Match.
64814func (c *GlobalAddressesListCall) IfNoneMatch(entityTag string) *GlobalAddressesListCall {
64815	c.ifNoneMatch_ = entityTag
64816	return c
64817}
64818
64819// Context sets the context to be used in this call's Do method. Any
64820// pending HTTP request will be aborted if the provided context is
64821// canceled.
64822func (c *GlobalAddressesListCall) Context(ctx context.Context) *GlobalAddressesListCall {
64823	c.ctx_ = ctx
64824	return c
64825}
64826
64827// Header returns an http.Header that can be modified by the caller to
64828// add HTTP headers to the request.
64829func (c *GlobalAddressesListCall) Header() http.Header {
64830	if c.header_ == nil {
64831		c.header_ = make(http.Header)
64832	}
64833	return c.header_
64834}
64835
64836func (c *GlobalAddressesListCall) doRequest(alt string) (*http.Response, error) {
64837	reqHeaders := make(http.Header)
64838	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
64839	for k, v := range c.header_ {
64840		reqHeaders[k] = v
64841	}
64842	reqHeaders.Set("User-Agent", c.s.userAgent())
64843	if c.ifNoneMatch_ != "" {
64844		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
64845	}
64846	var body io.Reader = nil
64847	c.urlParams_.Set("alt", alt)
64848	c.urlParams_.Set("prettyPrint", "false")
64849	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/addresses")
64850	urls += "?" + c.urlParams_.Encode()
64851	req, err := http.NewRequest("GET", urls, body)
64852	if err != nil {
64853		return nil, err
64854	}
64855	req.Header = reqHeaders
64856	googleapi.Expand(req.URL, map[string]string{
64857		"project": c.project,
64858	})
64859	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64860}
64861
64862// Do executes the "compute.globalAddresses.list" call.
64863// Exactly one of *AddressList or error will be non-nil. Any non-2xx
64864// status code is an error. Response headers are in either
64865// *AddressList.ServerResponse.Header or (if a response was returned at
64866// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64867// to check whether the returned error was because
64868// http.StatusNotModified was returned.
64869func (c *GlobalAddressesListCall) Do(opts ...googleapi.CallOption) (*AddressList, error) {
64870	gensupport.SetOptions(c.urlParams_, opts...)
64871	res, err := c.doRequest("json")
64872	if res != nil && res.StatusCode == http.StatusNotModified {
64873		if res.Body != nil {
64874			res.Body.Close()
64875		}
64876		return nil, &googleapi.Error{
64877			Code:   res.StatusCode,
64878			Header: res.Header,
64879		}
64880	}
64881	if err != nil {
64882		return nil, err
64883	}
64884	defer googleapi.CloseBody(res)
64885	if err := googleapi.CheckResponse(res); err != nil {
64886		return nil, err
64887	}
64888	ret := &AddressList{
64889		ServerResponse: googleapi.ServerResponse{
64890			Header:         res.Header,
64891			HTTPStatusCode: res.StatusCode,
64892		},
64893	}
64894	target := &ret
64895	if err := gensupport.DecodeResponse(target, res); err != nil {
64896		return nil, err
64897	}
64898	return ret, nil
64899	// {
64900	//   "description": "Retrieves a list of global addresses.",
64901	//   "httpMethod": "GET",
64902	//   "id": "compute.globalAddresses.list",
64903	//   "parameterOrder": [
64904	//     "project"
64905	//   ],
64906	//   "parameters": {
64907	//     "filter": {
64908	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
64909	//       "location": "query",
64910	//       "type": "string"
64911	//     },
64912	//     "maxResults": {
64913	//       "default": "500",
64914	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
64915	//       "format": "uint32",
64916	//       "location": "query",
64917	//       "minimum": "0",
64918	//       "type": "integer"
64919	//     },
64920	//     "orderBy": {
64921	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
64922	//       "location": "query",
64923	//       "type": "string"
64924	//     },
64925	//     "pageToken": {
64926	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
64927	//       "location": "query",
64928	//       "type": "string"
64929	//     },
64930	//     "project": {
64931	//       "description": "Project ID for this request.",
64932	//       "location": "path",
64933	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64934	//       "required": true,
64935	//       "type": "string"
64936	//     },
64937	//     "returnPartialSuccess": {
64938	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
64939	//       "location": "query",
64940	//       "type": "boolean"
64941	//     }
64942	//   },
64943	//   "path": "projects/{project}/global/addresses",
64944	//   "response": {
64945	//     "$ref": "AddressList"
64946	//   },
64947	//   "scopes": [
64948	//     "https://www.googleapis.com/auth/cloud-platform",
64949	//     "https://www.googleapis.com/auth/compute",
64950	//     "https://www.googleapis.com/auth/compute.readonly"
64951	//   ]
64952	// }
64953
64954}
64955
64956// Pages invokes f for each page of results.
64957// A non-nil error returned from f will halt the iteration.
64958// The provided context supersedes any context provided to the Context method.
64959func (c *GlobalAddressesListCall) Pages(ctx context.Context, f func(*AddressList) error) error {
64960	c.ctx_ = ctx
64961	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
64962	for {
64963		x, err := c.Do()
64964		if err != nil {
64965			return err
64966		}
64967		if err := f(x); err != nil {
64968			return err
64969		}
64970		if x.NextPageToken == "" {
64971			return nil
64972		}
64973		c.PageToken(x.NextPageToken)
64974	}
64975}
64976
64977// method id "compute.globalForwardingRules.delete":
64978
64979type GlobalForwardingRulesDeleteCall struct {
64980	s              *Service
64981	project        string
64982	forwardingRule string
64983	urlParams_     gensupport.URLParams
64984	ctx_           context.Context
64985	header_        http.Header
64986}
64987
64988// Delete: Deletes the specified GlobalForwardingRule resource.
64989//
64990// - forwardingRule: Name of the ForwardingRule resource to delete.
64991// - project: Project ID for this request.
64992// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/delete
64993func (r *GlobalForwardingRulesService) Delete(project string, forwardingRule string) *GlobalForwardingRulesDeleteCall {
64994	c := &GlobalForwardingRulesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64995	c.project = project
64996	c.forwardingRule = forwardingRule
64997	return c
64998}
64999
65000// RequestId sets the optional parameter "requestId": An optional
65001// request ID to identify requests. Specify a unique request ID so that
65002// if you must retry your request, the server will know to ignore the
65003// request if it has already been completed.
65004//
65005// For example, consider a situation where you make an initial request
65006// and the request times out. If you make the request again with the
65007// same request ID, the server can check if original operation with the
65008// same request ID was received, and if so, will ignore the second
65009// request. This prevents clients from accidentally creating duplicate
65010// commitments.
65011//
65012// The request ID must be a valid UUID with the exception that zero UUID
65013// is not supported (00000000-0000-0000-0000-000000000000).
65014func (c *GlobalForwardingRulesDeleteCall) RequestId(requestId string) *GlobalForwardingRulesDeleteCall {
65015	c.urlParams_.Set("requestId", requestId)
65016	return c
65017}
65018
65019// Fields allows partial responses to be retrieved. See
65020// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65021// for more information.
65022func (c *GlobalForwardingRulesDeleteCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesDeleteCall {
65023	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65024	return c
65025}
65026
65027// Context sets the context to be used in this call's Do method. Any
65028// pending HTTP request will be aborted if the provided context is
65029// canceled.
65030func (c *GlobalForwardingRulesDeleteCall) Context(ctx context.Context) *GlobalForwardingRulesDeleteCall {
65031	c.ctx_ = ctx
65032	return c
65033}
65034
65035// Header returns an http.Header that can be modified by the caller to
65036// add HTTP headers to the request.
65037func (c *GlobalForwardingRulesDeleteCall) Header() http.Header {
65038	if c.header_ == nil {
65039		c.header_ = make(http.Header)
65040	}
65041	return c.header_
65042}
65043
65044func (c *GlobalForwardingRulesDeleteCall) doRequest(alt string) (*http.Response, error) {
65045	reqHeaders := make(http.Header)
65046	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
65047	for k, v := range c.header_ {
65048		reqHeaders[k] = v
65049	}
65050	reqHeaders.Set("User-Agent", c.s.userAgent())
65051	var body io.Reader = nil
65052	c.urlParams_.Set("alt", alt)
65053	c.urlParams_.Set("prettyPrint", "false")
65054	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{forwardingRule}")
65055	urls += "?" + c.urlParams_.Encode()
65056	req, err := http.NewRequest("DELETE", urls, body)
65057	if err != nil {
65058		return nil, err
65059	}
65060	req.Header = reqHeaders
65061	googleapi.Expand(req.URL, map[string]string{
65062		"project":        c.project,
65063		"forwardingRule": c.forwardingRule,
65064	})
65065	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65066}
65067
65068// Do executes the "compute.globalForwardingRules.delete" call.
65069// Exactly one of *Operation or error will be non-nil. Any non-2xx
65070// status code is an error. Response headers are in either
65071// *Operation.ServerResponse.Header or (if a response was returned at
65072// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65073// to check whether the returned error was because
65074// http.StatusNotModified was returned.
65075func (c *GlobalForwardingRulesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65076	gensupport.SetOptions(c.urlParams_, opts...)
65077	res, err := c.doRequest("json")
65078	if res != nil && res.StatusCode == http.StatusNotModified {
65079		if res.Body != nil {
65080			res.Body.Close()
65081		}
65082		return nil, &googleapi.Error{
65083			Code:   res.StatusCode,
65084			Header: res.Header,
65085		}
65086	}
65087	if err != nil {
65088		return nil, err
65089	}
65090	defer googleapi.CloseBody(res)
65091	if err := googleapi.CheckResponse(res); err != nil {
65092		return nil, err
65093	}
65094	ret := &Operation{
65095		ServerResponse: googleapi.ServerResponse{
65096			Header:         res.Header,
65097			HTTPStatusCode: res.StatusCode,
65098		},
65099	}
65100	target := &ret
65101	if err := gensupport.DecodeResponse(target, res); err != nil {
65102		return nil, err
65103	}
65104	return ret, nil
65105	// {
65106	//   "description": "Deletes the specified GlobalForwardingRule resource.",
65107	//   "httpMethod": "DELETE",
65108	//   "id": "compute.globalForwardingRules.delete",
65109	//   "parameterOrder": [
65110	//     "project",
65111	//     "forwardingRule"
65112	//   ],
65113	//   "parameters": {
65114	//     "forwardingRule": {
65115	//       "description": "Name of the ForwardingRule resource to delete.",
65116	//       "location": "path",
65117	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
65118	//       "required": true,
65119	//       "type": "string"
65120	//     },
65121	//     "project": {
65122	//       "description": "Project ID for this request.",
65123	//       "location": "path",
65124	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65125	//       "required": true,
65126	//       "type": "string"
65127	//     },
65128	//     "requestId": {
65129	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
65130	//       "location": "query",
65131	//       "type": "string"
65132	//     }
65133	//   },
65134	//   "path": "projects/{project}/global/forwardingRules/{forwardingRule}",
65135	//   "response": {
65136	//     "$ref": "Operation"
65137	//   },
65138	//   "scopes": [
65139	//     "https://www.googleapis.com/auth/cloud-platform",
65140	//     "https://www.googleapis.com/auth/compute"
65141	//   ]
65142	// }
65143
65144}
65145
65146// method id "compute.globalForwardingRules.get":
65147
65148type GlobalForwardingRulesGetCall struct {
65149	s              *Service
65150	project        string
65151	forwardingRule string
65152	urlParams_     gensupport.URLParams
65153	ifNoneMatch_   string
65154	ctx_           context.Context
65155	header_        http.Header
65156}
65157
65158// Get: Returns the specified GlobalForwardingRule resource. Gets a list
65159// of available forwarding rules by making a list() request.
65160//
65161// - forwardingRule: Name of the ForwardingRule resource to return.
65162// - project: Project ID for this request.
65163// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/get
65164func (r *GlobalForwardingRulesService) Get(project string, forwardingRule string) *GlobalForwardingRulesGetCall {
65165	c := &GlobalForwardingRulesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65166	c.project = project
65167	c.forwardingRule = forwardingRule
65168	return c
65169}
65170
65171// Fields allows partial responses to be retrieved. See
65172// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65173// for more information.
65174func (c *GlobalForwardingRulesGetCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesGetCall {
65175	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65176	return c
65177}
65178
65179// IfNoneMatch sets the optional parameter which makes the operation
65180// fail if the object's ETag matches the given value. This is useful for
65181// getting updates only after the object has changed since the last
65182// request. Use googleapi.IsNotModified to check whether the response
65183// error from Do is the result of In-None-Match.
65184func (c *GlobalForwardingRulesGetCall) IfNoneMatch(entityTag string) *GlobalForwardingRulesGetCall {
65185	c.ifNoneMatch_ = entityTag
65186	return c
65187}
65188
65189// Context sets the context to be used in this call's Do method. Any
65190// pending HTTP request will be aborted if the provided context is
65191// canceled.
65192func (c *GlobalForwardingRulesGetCall) Context(ctx context.Context) *GlobalForwardingRulesGetCall {
65193	c.ctx_ = ctx
65194	return c
65195}
65196
65197// Header returns an http.Header that can be modified by the caller to
65198// add HTTP headers to the request.
65199func (c *GlobalForwardingRulesGetCall) Header() http.Header {
65200	if c.header_ == nil {
65201		c.header_ = make(http.Header)
65202	}
65203	return c.header_
65204}
65205
65206func (c *GlobalForwardingRulesGetCall) doRequest(alt string) (*http.Response, error) {
65207	reqHeaders := make(http.Header)
65208	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
65209	for k, v := range c.header_ {
65210		reqHeaders[k] = v
65211	}
65212	reqHeaders.Set("User-Agent", c.s.userAgent())
65213	if c.ifNoneMatch_ != "" {
65214		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
65215	}
65216	var body io.Reader = nil
65217	c.urlParams_.Set("alt", alt)
65218	c.urlParams_.Set("prettyPrint", "false")
65219	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{forwardingRule}")
65220	urls += "?" + c.urlParams_.Encode()
65221	req, err := http.NewRequest("GET", urls, body)
65222	if err != nil {
65223		return nil, err
65224	}
65225	req.Header = reqHeaders
65226	googleapi.Expand(req.URL, map[string]string{
65227		"project":        c.project,
65228		"forwardingRule": c.forwardingRule,
65229	})
65230	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65231}
65232
65233// Do executes the "compute.globalForwardingRules.get" call.
65234// Exactly one of *ForwardingRule or error will be non-nil. Any non-2xx
65235// status code is an error. Response headers are in either
65236// *ForwardingRule.ServerResponse.Header or (if a response was returned
65237// at all) in error.(*googleapi.Error).Header. Use
65238// googleapi.IsNotModified to check whether the returned error was
65239// because http.StatusNotModified was returned.
65240func (c *GlobalForwardingRulesGetCall) Do(opts ...googleapi.CallOption) (*ForwardingRule, error) {
65241	gensupport.SetOptions(c.urlParams_, opts...)
65242	res, err := c.doRequest("json")
65243	if res != nil && res.StatusCode == http.StatusNotModified {
65244		if res.Body != nil {
65245			res.Body.Close()
65246		}
65247		return nil, &googleapi.Error{
65248			Code:   res.StatusCode,
65249			Header: res.Header,
65250		}
65251	}
65252	if err != nil {
65253		return nil, err
65254	}
65255	defer googleapi.CloseBody(res)
65256	if err := googleapi.CheckResponse(res); err != nil {
65257		return nil, err
65258	}
65259	ret := &ForwardingRule{
65260		ServerResponse: googleapi.ServerResponse{
65261			Header:         res.Header,
65262			HTTPStatusCode: res.StatusCode,
65263		},
65264	}
65265	target := &ret
65266	if err := gensupport.DecodeResponse(target, res); err != nil {
65267		return nil, err
65268	}
65269	return ret, nil
65270	// {
65271	//   "description": "Returns the specified GlobalForwardingRule resource. Gets a list of available forwarding rules by making a list() request.",
65272	//   "httpMethod": "GET",
65273	//   "id": "compute.globalForwardingRules.get",
65274	//   "parameterOrder": [
65275	//     "project",
65276	//     "forwardingRule"
65277	//   ],
65278	//   "parameters": {
65279	//     "forwardingRule": {
65280	//       "description": "Name of the ForwardingRule resource to return.",
65281	//       "location": "path",
65282	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
65283	//       "required": true,
65284	//       "type": "string"
65285	//     },
65286	//     "project": {
65287	//       "description": "Project ID for this request.",
65288	//       "location": "path",
65289	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65290	//       "required": true,
65291	//       "type": "string"
65292	//     }
65293	//   },
65294	//   "path": "projects/{project}/global/forwardingRules/{forwardingRule}",
65295	//   "response": {
65296	//     "$ref": "ForwardingRule"
65297	//   },
65298	//   "scopes": [
65299	//     "https://www.googleapis.com/auth/cloud-platform",
65300	//     "https://www.googleapis.com/auth/compute",
65301	//     "https://www.googleapis.com/auth/compute.readonly"
65302	//   ]
65303	// }
65304
65305}
65306
65307// method id "compute.globalForwardingRules.insert":
65308
65309type GlobalForwardingRulesInsertCall struct {
65310	s              *Service
65311	project        string
65312	forwardingrule *ForwardingRule
65313	urlParams_     gensupport.URLParams
65314	ctx_           context.Context
65315	header_        http.Header
65316}
65317
65318// Insert: Creates a GlobalForwardingRule resource in the specified
65319// project using the data included in the request.
65320//
65321// - project: Project ID for this request.
65322// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/insert
65323func (r *GlobalForwardingRulesService) Insert(project string, forwardingrule *ForwardingRule) *GlobalForwardingRulesInsertCall {
65324	c := &GlobalForwardingRulesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65325	c.project = project
65326	c.forwardingrule = forwardingrule
65327	return c
65328}
65329
65330// RequestId sets the optional parameter "requestId": An optional
65331// request ID to identify requests. Specify a unique request ID so that
65332// if you must retry your request, the server will know to ignore the
65333// request if it has already been completed.
65334//
65335// For example, consider a situation where you make an initial request
65336// and the request times out. If you make the request again with the
65337// same request ID, the server can check if original operation with the
65338// same request ID was received, and if so, will ignore the second
65339// request. This prevents clients from accidentally creating duplicate
65340// commitments.
65341//
65342// The request ID must be a valid UUID with the exception that zero UUID
65343// is not supported (00000000-0000-0000-0000-000000000000).
65344func (c *GlobalForwardingRulesInsertCall) RequestId(requestId string) *GlobalForwardingRulesInsertCall {
65345	c.urlParams_.Set("requestId", requestId)
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 *GlobalForwardingRulesInsertCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesInsertCall {
65353	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65354	return c
65355}
65356
65357// Context sets the context to be used in this call's Do method. Any
65358// pending HTTP request will be aborted if the provided context is
65359// canceled.
65360func (c *GlobalForwardingRulesInsertCall) Context(ctx context.Context) *GlobalForwardingRulesInsertCall {
65361	c.ctx_ = ctx
65362	return c
65363}
65364
65365// Header returns an http.Header that can be modified by the caller to
65366// add HTTP headers to the request.
65367func (c *GlobalForwardingRulesInsertCall) Header() http.Header {
65368	if c.header_ == nil {
65369		c.header_ = make(http.Header)
65370	}
65371	return c.header_
65372}
65373
65374func (c *GlobalForwardingRulesInsertCall) doRequest(alt string) (*http.Response, error) {
65375	reqHeaders := make(http.Header)
65376	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
65377	for k, v := range c.header_ {
65378		reqHeaders[k] = v
65379	}
65380	reqHeaders.Set("User-Agent", c.s.userAgent())
65381	var body io.Reader = nil
65382	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
65383	if err != nil {
65384		return nil, err
65385	}
65386	reqHeaders.Set("Content-Type", "application/json")
65387	c.urlParams_.Set("alt", alt)
65388	c.urlParams_.Set("prettyPrint", "false")
65389	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules")
65390	urls += "?" + c.urlParams_.Encode()
65391	req, err := http.NewRequest("POST", urls, body)
65392	if err != nil {
65393		return nil, err
65394	}
65395	req.Header = reqHeaders
65396	googleapi.Expand(req.URL, map[string]string{
65397		"project": c.project,
65398	})
65399	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65400}
65401
65402// Do executes the "compute.globalForwardingRules.insert" call.
65403// Exactly one of *Operation or error will be non-nil. Any non-2xx
65404// status code is an error. Response headers are in either
65405// *Operation.ServerResponse.Header or (if a response was returned at
65406// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65407// to check whether the returned error was because
65408// http.StatusNotModified was returned.
65409func (c *GlobalForwardingRulesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65410	gensupport.SetOptions(c.urlParams_, opts...)
65411	res, err := c.doRequest("json")
65412	if res != nil && res.StatusCode == http.StatusNotModified {
65413		if res.Body != nil {
65414			res.Body.Close()
65415		}
65416		return nil, &googleapi.Error{
65417			Code:   res.StatusCode,
65418			Header: res.Header,
65419		}
65420	}
65421	if err != nil {
65422		return nil, err
65423	}
65424	defer googleapi.CloseBody(res)
65425	if err := googleapi.CheckResponse(res); err != nil {
65426		return nil, err
65427	}
65428	ret := &Operation{
65429		ServerResponse: googleapi.ServerResponse{
65430			Header:         res.Header,
65431			HTTPStatusCode: res.StatusCode,
65432		},
65433	}
65434	target := &ret
65435	if err := gensupport.DecodeResponse(target, res); err != nil {
65436		return nil, err
65437	}
65438	return ret, nil
65439	// {
65440	//   "description": "Creates a GlobalForwardingRule resource in the specified project using the data included in the request.",
65441	//   "httpMethod": "POST",
65442	//   "id": "compute.globalForwardingRules.insert",
65443	//   "parameterOrder": [
65444	//     "project"
65445	//   ],
65446	//   "parameters": {
65447	//     "project": {
65448	//       "description": "Project ID for this request.",
65449	//       "location": "path",
65450	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65451	//       "required": true,
65452	//       "type": "string"
65453	//     },
65454	//     "requestId": {
65455	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
65456	//       "location": "query",
65457	//       "type": "string"
65458	//     }
65459	//   },
65460	//   "path": "projects/{project}/global/forwardingRules",
65461	//   "request": {
65462	//     "$ref": "ForwardingRule"
65463	//   },
65464	//   "response": {
65465	//     "$ref": "Operation"
65466	//   },
65467	//   "scopes": [
65468	//     "https://www.googleapis.com/auth/cloud-platform",
65469	//     "https://www.googleapis.com/auth/compute"
65470	//   ]
65471	// }
65472
65473}
65474
65475// method id "compute.globalForwardingRules.list":
65476
65477type GlobalForwardingRulesListCall struct {
65478	s            *Service
65479	project      string
65480	urlParams_   gensupport.URLParams
65481	ifNoneMatch_ string
65482	ctx_         context.Context
65483	header_      http.Header
65484}
65485
65486// List: Retrieves a list of GlobalForwardingRule resources available to
65487// the specified project.
65488//
65489// - project: Project ID for this request.
65490// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/list
65491func (r *GlobalForwardingRulesService) List(project string) *GlobalForwardingRulesListCall {
65492	c := &GlobalForwardingRulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65493	c.project = project
65494	return c
65495}
65496
65497// Filter sets the optional parameter "filter": A filter expression that
65498// filters resources listed in the response. The expression must specify
65499// the field name, a comparison operator, and the value that you want to
65500// use for filtering. The value must be a string, a number, or a
65501// boolean. The comparison operator must be either `=`, `!=`, `>`, or
65502// `<`.
65503//
65504// For example, if you are filtering Compute Engine instances, you can
65505// exclude instances named `example-instance` by specifying `name !=
65506// example-instance`.
65507//
65508// You can also filter nested fields. For example, you could specify
65509// `scheduling.automaticRestart = false` to include instances only if
65510// they are not scheduled for automatic restarts. You can use filtering
65511// on nested fields to filter based on resource labels.
65512//
65513// To filter on multiple expressions, provide each separate expression
65514// within parentheses. For example: ``` (scheduling.automaticRestart =
65515// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
65516// is an `AND` expression. However, you can include `AND` and `OR`
65517// expressions explicitly. For example: ``` (cpuPlatform = "Intel
65518// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
65519// (scheduling.automaticRestart = true) ```
65520func (c *GlobalForwardingRulesListCall) Filter(filter string) *GlobalForwardingRulesListCall {
65521	c.urlParams_.Set("filter", filter)
65522	return c
65523}
65524
65525// MaxResults sets the optional parameter "maxResults": The maximum
65526// number of results per page that should be returned. If the number of
65527// available results is larger than `maxResults`, Compute Engine returns
65528// a `nextPageToken` that can be used to get the next page of results in
65529// subsequent list requests. Acceptable values are `0` to `500`,
65530// inclusive. (Default: `500`)
65531func (c *GlobalForwardingRulesListCall) MaxResults(maxResults int64) *GlobalForwardingRulesListCall {
65532	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
65533	return c
65534}
65535
65536// OrderBy sets the optional parameter "orderBy": Sorts list results by
65537// a certain order. By default, results are returned in alphanumerical
65538// order based on the resource name.
65539//
65540// You can also sort results in descending order based on the creation
65541// timestamp using `orderBy="creationTimestamp desc". This sorts
65542// results based on the `creationTimestamp` field in reverse
65543// chronological order (newest result first). Use this to sort resources
65544// like operations so that the newest operation is returned
65545// first.
65546//
65547// Currently, only sorting by `name` or `creationTimestamp desc` is
65548// supported.
65549func (c *GlobalForwardingRulesListCall) OrderBy(orderBy string) *GlobalForwardingRulesListCall {
65550	c.urlParams_.Set("orderBy", orderBy)
65551	return c
65552}
65553
65554// PageToken sets the optional parameter "pageToken": Specifies a page
65555// token to use. Set `pageToken` to the `nextPageToken` returned by a
65556// previous list request to get the next page of results.
65557func (c *GlobalForwardingRulesListCall) PageToken(pageToken string) *GlobalForwardingRulesListCall {
65558	c.urlParams_.Set("pageToken", pageToken)
65559	return c
65560}
65561
65562// ReturnPartialSuccess sets the optional parameter
65563// "returnPartialSuccess": Opt-in for partial success behavior which
65564// provides partial results in case of failure. The default value is
65565// false.
65566func (c *GlobalForwardingRulesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalForwardingRulesListCall {
65567	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
65568	return c
65569}
65570
65571// Fields allows partial responses to be retrieved. See
65572// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65573// for more information.
65574func (c *GlobalForwardingRulesListCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesListCall {
65575	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65576	return c
65577}
65578
65579// IfNoneMatch sets the optional parameter which makes the operation
65580// fail if the object's ETag matches the given value. This is useful for
65581// getting updates only after the object has changed since the last
65582// request. Use googleapi.IsNotModified to check whether the response
65583// error from Do is the result of In-None-Match.
65584func (c *GlobalForwardingRulesListCall) IfNoneMatch(entityTag string) *GlobalForwardingRulesListCall {
65585	c.ifNoneMatch_ = entityTag
65586	return c
65587}
65588
65589// Context sets the context to be used in this call's Do method. Any
65590// pending HTTP request will be aborted if the provided context is
65591// canceled.
65592func (c *GlobalForwardingRulesListCall) Context(ctx context.Context) *GlobalForwardingRulesListCall {
65593	c.ctx_ = ctx
65594	return c
65595}
65596
65597// Header returns an http.Header that can be modified by the caller to
65598// add HTTP headers to the request.
65599func (c *GlobalForwardingRulesListCall) Header() http.Header {
65600	if c.header_ == nil {
65601		c.header_ = make(http.Header)
65602	}
65603	return c.header_
65604}
65605
65606func (c *GlobalForwardingRulesListCall) doRequest(alt string) (*http.Response, error) {
65607	reqHeaders := make(http.Header)
65608	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
65609	for k, v := range c.header_ {
65610		reqHeaders[k] = v
65611	}
65612	reqHeaders.Set("User-Agent", c.s.userAgent())
65613	if c.ifNoneMatch_ != "" {
65614		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
65615	}
65616	var body io.Reader = nil
65617	c.urlParams_.Set("alt", alt)
65618	c.urlParams_.Set("prettyPrint", "false")
65619	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules")
65620	urls += "?" + c.urlParams_.Encode()
65621	req, err := http.NewRequest("GET", urls, body)
65622	if err != nil {
65623		return nil, err
65624	}
65625	req.Header = reqHeaders
65626	googleapi.Expand(req.URL, map[string]string{
65627		"project": c.project,
65628	})
65629	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65630}
65631
65632// Do executes the "compute.globalForwardingRules.list" call.
65633// Exactly one of *ForwardingRuleList or error will be non-nil. Any
65634// non-2xx status code is an error. Response headers are in either
65635// *ForwardingRuleList.ServerResponse.Header or (if a response was
65636// returned at all) in error.(*googleapi.Error).Header. Use
65637// googleapi.IsNotModified to check whether the returned error was
65638// because http.StatusNotModified was returned.
65639func (c *GlobalForwardingRulesListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleList, error) {
65640	gensupport.SetOptions(c.urlParams_, opts...)
65641	res, err := c.doRequest("json")
65642	if res != nil && res.StatusCode == http.StatusNotModified {
65643		if res.Body != nil {
65644			res.Body.Close()
65645		}
65646		return nil, &googleapi.Error{
65647			Code:   res.StatusCode,
65648			Header: res.Header,
65649		}
65650	}
65651	if err != nil {
65652		return nil, err
65653	}
65654	defer googleapi.CloseBody(res)
65655	if err := googleapi.CheckResponse(res); err != nil {
65656		return nil, err
65657	}
65658	ret := &ForwardingRuleList{
65659		ServerResponse: googleapi.ServerResponse{
65660			Header:         res.Header,
65661			HTTPStatusCode: res.StatusCode,
65662		},
65663	}
65664	target := &ret
65665	if err := gensupport.DecodeResponse(target, res); err != nil {
65666		return nil, err
65667	}
65668	return ret, nil
65669	// {
65670	//   "description": "Retrieves a list of GlobalForwardingRule resources available to the specified project.",
65671	//   "httpMethod": "GET",
65672	//   "id": "compute.globalForwardingRules.list",
65673	//   "parameterOrder": [
65674	//     "project"
65675	//   ],
65676	//   "parameters": {
65677	//     "filter": {
65678	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
65679	//       "location": "query",
65680	//       "type": "string"
65681	//     },
65682	//     "maxResults": {
65683	//       "default": "500",
65684	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
65685	//       "format": "uint32",
65686	//       "location": "query",
65687	//       "minimum": "0",
65688	//       "type": "integer"
65689	//     },
65690	//     "orderBy": {
65691	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
65692	//       "location": "query",
65693	//       "type": "string"
65694	//     },
65695	//     "pageToken": {
65696	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
65697	//       "location": "query",
65698	//       "type": "string"
65699	//     },
65700	//     "project": {
65701	//       "description": "Project ID for this request.",
65702	//       "location": "path",
65703	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65704	//       "required": true,
65705	//       "type": "string"
65706	//     },
65707	//     "returnPartialSuccess": {
65708	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
65709	//       "location": "query",
65710	//       "type": "boolean"
65711	//     }
65712	//   },
65713	//   "path": "projects/{project}/global/forwardingRules",
65714	//   "response": {
65715	//     "$ref": "ForwardingRuleList"
65716	//   },
65717	//   "scopes": [
65718	//     "https://www.googleapis.com/auth/cloud-platform",
65719	//     "https://www.googleapis.com/auth/compute",
65720	//     "https://www.googleapis.com/auth/compute.readonly"
65721	//   ]
65722	// }
65723
65724}
65725
65726// Pages invokes f for each page of results.
65727// A non-nil error returned from f will halt the iteration.
65728// The provided context supersedes any context provided to the Context method.
65729func (c *GlobalForwardingRulesListCall) Pages(ctx context.Context, f func(*ForwardingRuleList) error) error {
65730	c.ctx_ = ctx
65731	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
65732	for {
65733		x, err := c.Do()
65734		if err != nil {
65735			return err
65736		}
65737		if err := f(x); err != nil {
65738			return err
65739		}
65740		if x.NextPageToken == "" {
65741			return nil
65742		}
65743		c.PageToken(x.NextPageToken)
65744	}
65745}
65746
65747// method id "compute.globalForwardingRules.patch":
65748
65749type GlobalForwardingRulesPatchCall struct {
65750	s              *Service
65751	project        string
65752	forwardingRule string
65753	forwardingrule *ForwardingRule
65754	urlParams_     gensupport.URLParams
65755	ctx_           context.Context
65756	header_        http.Header
65757}
65758
65759// Patch: Updates the specified forwarding rule with the data included
65760// in the request. This method supports PATCH semantics and uses the
65761// JSON merge patch format and processing rules. Currently, you can only
65762// patch the network_tier field.
65763//
65764// - forwardingRule: Name of the ForwardingRule resource to patch.
65765// - project: Project ID for this request.
65766func (r *GlobalForwardingRulesService) Patch(project string, forwardingRule string, forwardingrule *ForwardingRule) *GlobalForwardingRulesPatchCall {
65767	c := &GlobalForwardingRulesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65768	c.project = project
65769	c.forwardingRule = forwardingRule
65770	c.forwardingrule = forwardingrule
65771	return c
65772}
65773
65774// RequestId sets the optional parameter "requestId": An optional
65775// request ID to identify requests. Specify a unique request ID so that
65776// if you must retry your request, the server will know to ignore the
65777// request if it has already been completed.
65778//
65779// For example, consider a situation where you make an initial request
65780// and the request times out. If you make the request again with the
65781// same request ID, the server can check if original operation with the
65782// same request ID was received, and if so, will ignore the second
65783// request. This prevents clients from accidentally creating duplicate
65784// commitments.
65785//
65786// The request ID must be a valid UUID with the exception that zero UUID
65787// is not supported (00000000-0000-0000-0000-000000000000).
65788func (c *GlobalForwardingRulesPatchCall) RequestId(requestId string) *GlobalForwardingRulesPatchCall {
65789	c.urlParams_.Set("requestId", requestId)
65790	return c
65791}
65792
65793// Fields allows partial responses to be retrieved. See
65794// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65795// for more information.
65796func (c *GlobalForwardingRulesPatchCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesPatchCall {
65797	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65798	return c
65799}
65800
65801// Context sets the context to be used in this call's Do method. Any
65802// pending HTTP request will be aborted if the provided context is
65803// canceled.
65804func (c *GlobalForwardingRulesPatchCall) Context(ctx context.Context) *GlobalForwardingRulesPatchCall {
65805	c.ctx_ = ctx
65806	return c
65807}
65808
65809// Header returns an http.Header that can be modified by the caller to
65810// add HTTP headers to the request.
65811func (c *GlobalForwardingRulesPatchCall) Header() http.Header {
65812	if c.header_ == nil {
65813		c.header_ = make(http.Header)
65814	}
65815	return c.header_
65816}
65817
65818func (c *GlobalForwardingRulesPatchCall) doRequest(alt string) (*http.Response, error) {
65819	reqHeaders := make(http.Header)
65820	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
65821	for k, v := range c.header_ {
65822		reqHeaders[k] = v
65823	}
65824	reqHeaders.Set("User-Agent", c.s.userAgent())
65825	var body io.Reader = nil
65826	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
65827	if err != nil {
65828		return nil, err
65829	}
65830	reqHeaders.Set("Content-Type", "application/json")
65831	c.urlParams_.Set("alt", alt)
65832	c.urlParams_.Set("prettyPrint", "false")
65833	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{forwardingRule}")
65834	urls += "?" + c.urlParams_.Encode()
65835	req, err := http.NewRequest("PATCH", urls, body)
65836	if err != nil {
65837		return nil, err
65838	}
65839	req.Header = reqHeaders
65840	googleapi.Expand(req.URL, map[string]string{
65841		"project":        c.project,
65842		"forwardingRule": c.forwardingRule,
65843	})
65844	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65845}
65846
65847// Do executes the "compute.globalForwardingRules.patch" call.
65848// Exactly one of *Operation or error will be non-nil. Any non-2xx
65849// status code is an error. Response headers are in either
65850// *Operation.ServerResponse.Header or (if a response was returned at
65851// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65852// to check whether the returned error was because
65853// http.StatusNotModified was returned.
65854func (c *GlobalForwardingRulesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65855	gensupport.SetOptions(c.urlParams_, opts...)
65856	res, err := c.doRequest("json")
65857	if res != nil && res.StatusCode == http.StatusNotModified {
65858		if res.Body != nil {
65859			res.Body.Close()
65860		}
65861		return nil, &googleapi.Error{
65862			Code:   res.StatusCode,
65863			Header: res.Header,
65864		}
65865	}
65866	if err != nil {
65867		return nil, err
65868	}
65869	defer googleapi.CloseBody(res)
65870	if err := googleapi.CheckResponse(res); err != nil {
65871		return nil, err
65872	}
65873	ret := &Operation{
65874		ServerResponse: googleapi.ServerResponse{
65875			Header:         res.Header,
65876			HTTPStatusCode: res.StatusCode,
65877		},
65878	}
65879	target := &ret
65880	if err := gensupport.DecodeResponse(target, res); err != nil {
65881		return nil, err
65882	}
65883	return ret, nil
65884	// {
65885	//   "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.",
65886	//   "httpMethod": "PATCH",
65887	//   "id": "compute.globalForwardingRules.patch",
65888	//   "parameterOrder": [
65889	//     "project",
65890	//     "forwardingRule"
65891	//   ],
65892	//   "parameters": {
65893	//     "forwardingRule": {
65894	//       "description": "Name of the ForwardingRule resource to patch.",
65895	//       "location": "path",
65896	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
65897	//       "required": true,
65898	//       "type": "string"
65899	//     },
65900	//     "project": {
65901	//       "description": "Project ID for this request.",
65902	//       "location": "path",
65903	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65904	//       "required": true,
65905	//       "type": "string"
65906	//     },
65907	//     "requestId": {
65908	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
65909	//       "location": "query",
65910	//       "type": "string"
65911	//     }
65912	//   },
65913	//   "path": "projects/{project}/global/forwardingRules/{forwardingRule}",
65914	//   "request": {
65915	//     "$ref": "ForwardingRule"
65916	//   },
65917	//   "response": {
65918	//     "$ref": "Operation"
65919	//   },
65920	//   "scopes": [
65921	//     "https://www.googleapis.com/auth/cloud-platform",
65922	//     "https://www.googleapis.com/auth/compute"
65923	//   ]
65924	// }
65925
65926}
65927
65928// method id "compute.globalForwardingRules.setLabels":
65929
65930type GlobalForwardingRulesSetLabelsCall struct {
65931	s                      *Service
65932	project                string
65933	resource               string
65934	globalsetlabelsrequest *GlobalSetLabelsRequest
65935	urlParams_             gensupport.URLParams
65936	ctx_                   context.Context
65937	header_                http.Header
65938}
65939
65940// SetLabels: Sets the labels on the specified resource. To learn more
65941// about labels, read the Labeling Resources documentation.
65942//
65943// - project: Project ID for this request.
65944// - resource: Name or id of the resource for this request.
65945func (r *GlobalForwardingRulesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *GlobalForwardingRulesSetLabelsCall {
65946	c := &GlobalForwardingRulesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65947	c.project = project
65948	c.resource = resource
65949	c.globalsetlabelsrequest = globalsetlabelsrequest
65950	return c
65951}
65952
65953// Fields allows partial responses to be retrieved. See
65954// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65955// for more information.
65956func (c *GlobalForwardingRulesSetLabelsCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesSetLabelsCall {
65957	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65958	return c
65959}
65960
65961// Context sets the context to be used in this call's Do method. Any
65962// pending HTTP request will be aborted if the provided context is
65963// canceled.
65964func (c *GlobalForwardingRulesSetLabelsCall) Context(ctx context.Context) *GlobalForwardingRulesSetLabelsCall {
65965	c.ctx_ = ctx
65966	return c
65967}
65968
65969// Header returns an http.Header that can be modified by the caller to
65970// add HTTP headers to the request.
65971func (c *GlobalForwardingRulesSetLabelsCall) Header() http.Header {
65972	if c.header_ == nil {
65973		c.header_ = make(http.Header)
65974	}
65975	return c.header_
65976}
65977
65978func (c *GlobalForwardingRulesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
65979	reqHeaders := make(http.Header)
65980	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
65981	for k, v := range c.header_ {
65982		reqHeaders[k] = v
65983	}
65984	reqHeaders.Set("User-Agent", c.s.userAgent())
65985	var body io.Reader = nil
65986	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
65987	if err != nil {
65988		return nil, err
65989	}
65990	reqHeaders.Set("Content-Type", "application/json")
65991	c.urlParams_.Set("alt", alt)
65992	c.urlParams_.Set("prettyPrint", "false")
65993	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{resource}/setLabels")
65994	urls += "?" + c.urlParams_.Encode()
65995	req, err := http.NewRequest("POST", urls, body)
65996	if err != nil {
65997		return nil, err
65998	}
65999	req.Header = reqHeaders
66000	googleapi.Expand(req.URL, map[string]string{
66001		"project":  c.project,
66002		"resource": c.resource,
66003	})
66004	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66005}
66006
66007// Do executes the "compute.globalForwardingRules.setLabels" call.
66008// Exactly one of *Operation or error will be non-nil. Any non-2xx
66009// status code is an error. Response headers are in either
66010// *Operation.ServerResponse.Header or (if a response was returned at
66011// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66012// to check whether the returned error was because
66013// http.StatusNotModified was returned.
66014func (c *GlobalForwardingRulesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
66015	gensupport.SetOptions(c.urlParams_, opts...)
66016	res, err := c.doRequest("json")
66017	if res != nil && res.StatusCode == http.StatusNotModified {
66018		if res.Body != nil {
66019			res.Body.Close()
66020		}
66021		return nil, &googleapi.Error{
66022			Code:   res.StatusCode,
66023			Header: res.Header,
66024		}
66025	}
66026	if err != nil {
66027		return nil, err
66028	}
66029	defer googleapi.CloseBody(res)
66030	if err := googleapi.CheckResponse(res); err != nil {
66031		return nil, err
66032	}
66033	ret := &Operation{
66034		ServerResponse: googleapi.ServerResponse{
66035			Header:         res.Header,
66036			HTTPStatusCode: res.StatusCode,
66037		},
66038	}
66039	target := &ret
66040	if err := gensupport.DecodeResponse(target, res); err != nil {
66041		return nil, err
66042	}
66043	return ret, nil
66044	// {
66045	//   "description": "Sets the labels on the specified resource. To learn more about labels, read the Labeling Resources documentation.",
66046	//   "httpMethod": "POST",
66047	//   "id": "compute.globalForwardingRules.setLabels",
66048	//   "parameterOrder": [
66049	//     "project",
66050	//     "resource"
66051	//   ],
66052	//   "parameters": {
66053	//     "project": {
66054	//       "description": "Project ID for this request.",
66055	//       "location": "path",
66056	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66057	//       "required": true,
66058	//       "type": "string"
66059	//     },
66060	//     "resource": {
66061	//       "description": "Name or id of the resource for this request.",
66062	//       "location": "path",
66063	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
66064	//       "required": true,
66065	//       "type": "string"
66066	//     }
66067	//   },
66068	//   "path": "projects/{project}/global/forwardingRules/{resource}/setLabels",
66069	//   "request": {
66070	//     "$ref": "GlobalSetLabelsRequest"
66071	//   },
66072	//   "response": {
66073	//     "$ref": "Operation"
66074	//   },
66075	//   "scopes": [
66076	//     "https://www.googleapis.com/auth/cloud-platform",
66077	//     "https://www.googleapis.com/auth/compute"
66078	//   ]
66079	// }
66080
66081}
66082
66083// method id "compute.globalForwardingRules.setTarget":
66084
66085type GlobalForwardingRulesSetTargetCall struct {
66086	s               *Service
66087	project         string
66088	forwardingRule  string
66089	targetreference *TargetReference
66090	urlParams_      gensupport.URLParams
66091	ctx_            context.Context
66092	header_         http.Header
66093}
66094
66095// SetTarget: Changes target URL for the GlobalForwardingRule resource.
66096// The new target should be of the same type as the old target.
66097//
66098// - forwardingRule: Name of the ForwardingRule resource in which target
66099//   is to be set.
66100// - project: Project ID for this request.
66101// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/setTarget
66102func (r *GlobalForwardingRulesService) SetTarget(project string, forwardingRule string, targetreference *TargetReference) *GlobalForwardingRulesSetTargetCall {
66103	c := &GlobalForwardingRulesSetTargetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66104	c.project = project
66105	c.forwardingRule = forwardingRule
66106	c.targetreference = targetreference
66107	return c
66108}
66109
66110// RequestId sets the optional parameter "requestId": An optional
66111// request ID to identify requests. Specify a unique request ID so that
66112// if you must retry your request, the server will know to ignore the
66113// request if it has already been completed.
66114//
66115// For example, consider a situation where you make an initial request
66116// and the request times out. If you make the request again with the
66117// same request ID, the server can check if original operation with the
66118// same request ID was received, and if so, will ignore the second
66119// request. This prevents clients from accidentally creating duplicate
66120// commitments.
66121//
66122// The request ID must be a valid UUID with the exception that zero UUID
66123// is not supported (00000000-0000-0000-0000-000000000000).
66124func (c *GlobalForwardingRulesSetTargetCall) RequestId(requestId string) *GlobalForwardingRulesSetTargetCall {
66125	c.urlParams_.Set("requestId", requestId)
66126	return c
66127}
66128
66129// Fields allows partial responses to be retrieved. See
66130// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66131// for more information.
66132func (c *GlobalForwardingRulesSetTargetCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesSetTargetCall {
66133	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66134	return c
66135}
66136
66137// Context sets the context to be used in this call's Do method. Any
66138// pending HTTP request will be aborted if the provided context is
66139// canceled.
66140func (c *GlobalForwardingRulesSetTargetCall) Context(ctx context.Context) *GlobalForwardingRulesSetTargetCall {
66141	c.ctx_ = ctx
66142	return c
66143}
66144
66145// Header returns an http.Header that can be modified by the caller to
66146// add HTTP headers to the request.
66147func (c *GlobalForwardingRulesSetTargetCall) Header() http.Header {
66148	if c.header_ == nil {
66149		c.header_ = make(http.Header)
66150	}
66151	return c.header_
66152}
66153
66154func (c *GlobalForwardingRulesSetTargetCall) doRequest(alt string) (*http.Response, error) {
66155	reqHeaders := make(http.Header)
66156	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
66157	for k, v := range c.header_ {
66158		reqHeaders[k] = v
66159	}
66160	reqHeaders.Set("User-Agent", c.s.userAgent())
66161	var body io.Reader = nil
66162	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
66163	if err != nil {
66164		return nil, err
66165	}
66166	reqHeaders.Set("Content-Type", "application/json")
66167	c.urlParams_.Set("alt", alt)
66168	c.urlParams_.Set("prettyPrint", "false")
66169	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/forwardingRules/{forwardingRule}/setTarget")
66170	urls += "?" + c.urlParams_.Encode()
66171	req, err := http.NewRequest("POST", urls, body)
66172	if err != nil {
66173		return nil, err
66174	}
66175	req.Header = reqHeaders
66176	googleapi.Expand(req.URL, map[string]string{
66177		"project":        c.project,
66178		"forwardingRule": c.forwardingRule,
66179	})
66180	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66181}
66182
66183// Do executes the "compute.globalForwardingRules.setTarget" call.
66184// Exactly one of *Operation or error will be non-nil. Any non-2xx
66185// status code is an error. Response headers are in either
66186// *Operation.ServerResponse.Header or (if a response was returned at
66187// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66188// to check whether the returned error was because
66189// http.StatusNotModified was returned.
66190func (c *GlobalForwardingRulesSetTargetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
66191	gensupport.SetOptions(c.urlParams_, opts...)
66192	res, err := c.doRequest("json")
66193	if res != nil && res.StatusCode == http.StatusNotModified {
66194		if res.Body != nil {
66195			res.Body.Close()
66196		}
66197		return nil, &googleapi.Error{
66198			Code:   res.StatusCode,
66199			Header: res.Header,
66200		}
66201	}
66202	if err != nil {
66203		return nil, err
66204	}
66205	defer googleapi.CloseBody(res)
66206	if err := googleapi.CheckResponse(res); err != nil {
66207		return nil, err
66208	}
66209	ret := &Operation{
66210		ServerResponse: googleapi.ServerResponse{
66211			Header:         res.Header,
66212			HTTPStatusCode: res.StatusCode,
66213		},
66214	}
66215	target := &ret
66216	if err := gensupport.DecodeResponse(target, res); err != nil {
66217		return nil, err
66218	}
66219	return ret, nil
66220	// {
66221	//   "description": "Changes target URL for the GlobalForwardingRule resource. The new target should be of the same type as the old target.",
66222	//   "httpMethod": "POST",
66223	//   "id": "compute.globalForwardingRules.setTarget",
66224	//   "parameterOrder": [
66225	//     "project",
66226	//     "forwardingRule"
66227	//   ],
66228	//   "parameters": {
66229	//     "forwardingRule": {
66230	//       "description": "Name of the ForwardingRule resource in which target is to be set.",
66231	//       "location": "path",
66232	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
66233	//       "required": true,
66234	//       "type": "string"
66235	//     },
66236	//     "project": {
66237	//       "description": "Project ID for this request.",
66238	//       "location": "path",
66239	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66240	//       "required": true,
66241	//       "type": "string"
66242	//     },
66243	//     "requestId": {
66244	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
66245	//       "location": "query",
66246	//       "type": "string"
66247	//     }
66248	//   },
66249	//   "path": "projects/{project}/global/forwardingRules/{forwardingRule}/setTarget",
66250	//   "request": {
66251	//     "$ref": "TargetReference"
66252	//   },
66253	//   "response": {
66254	//     "$ref": "Operation"
66255	//   },
66256	//   "scopes": [
66257	//     "https://www.googleapis.com/auth/cloud-platform",
66258	//     "https://www.googleapis.com/auth/compute"
66259	//   ]
66260	// }
66261
66262}
66263
66264// method id "compute.globalNetworkEndpointGroups.attachNetworkEndpoints":
66265
66266type GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall struct {
66267	s                                                 *Service
66268	project                                           string
66269	networkEndpointGroup                              string
66270	globalnetworkendpointgroupsattachendpointsrequest *GlobalNetworkEndpointGroupsAttachEndpointsRequest
66271	urlParams_                                        gensupport.URLParams
66272	ctx_                                              context.Context
66273	header_                                           http.Header
66274}
66275
66276// AttachNetworkEndpoints: Attach a network endpoint to the specified
66277// network endpoint group.
66278//
66279// - networkEndpointGroup: The name of the network endpoint group where
66280//   you are attaching network endpoints to. It should comply with
66281//   RFC1035.
66282// - project: Project ID for this request.
66283func (r *GlobalNetworkEndpointGroupsService) AttachNetworkEndpoints(project string, networkEndpointGroup string, globalnetworkendpointgroupsattachendpointsrequest *GlobalNetworkEndpointGroupsAttachEndpointsRequest) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
66284	c := &GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66285	c.project = project
66286	c.networkEndpointGroup = networkEndpointGroup
66287	c.globalnetworkendpointgroupsattachendpointsrequest = globalnetworkendpointgroupsattachendpointsrequest
66288	return c
66289}
66290
66291// RequestId sets the optional parameter "requestId": An optional
66292// request ID to identify requests. Specify a unique request ID so that
66293// if you must retry your request, the server will know to ignore the
66294// request if it has already been completed.
66295//
66296// For example, consider a situation where you make an initial request
66297// and the request times out. If you make the request again with the
66298// same request ID, the server can check if original operation with the
66299// same request ID was received, and if so, will ignore the second
66300// request. This prevents clients from accidentally creating duplicate
66301// commitments.
66302//
66303// The request ID must be a valid UUID with the exception that zero UUID
66304// is not supported (00000000-0000-0000-0000-000000000000).
66305func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
66306	c.urlParams_.Set("requestId", requestId)
66307	return c
66308}
66309
66310// Fields allows partial responses to be retrieved. See
66311// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66312// for more information.
66313func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
66314	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66315	return c
66316}
66317
66318// Context sets the context to be used in this call's Do method. Any
66319// pending HTTP request will be aborted if the provided context is
66320// canceled.
66321func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
66322	c.ctx_ = ctx
66323	return c
66324}
66325
66326// Header returns an http.Header that can be modified by the caller to
66327// add HTTP headers to the request.
66328func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Header() http.Header {
66329	if c.header_ == nil {
66330		c.header_ = make(http.Header)
66331	}
66332	return c.header_
66333}
66334
66335func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
66336	reqHeaders := make(http.Header)
66337	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
66338	for k, v := range c.header_ {
66339		reqHeaders[k] = v
66340	}
66341	reqHeaders.Set("User-Agent", c.s.userAgent())
66342	var body io.Reader = nil
66343	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalnetworkendpointgroupsattachendpointsrequest)
66344	if err != nil {
66345		return nil, err
66346	}
66347	reqHeaders.Set("Content-Type", "application/json")
66348	c.urlParams_.Set("alt", alt)
66349	c.urlParams_.Set("prettyPrint", "false")
66350	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints")
66351	urls += "?" + c.urlParams_.Encode()
66352	req, err := http.NewRequest("POST", urls, body)
66353	if err != nil {
66354		return nil, err
66355	}
66356	req.Header = reqHeaders
66357	googleapi.Expand(req.URL, map[string]string{
66358		"project":              c.project,
66359		"networkEndpointGroup": c.networkEndpointGroup,
66360	})
66361	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66362}
66363
66364// Do executes the "compute.globalNetworkEndpointGroups.attachNetworkEndpoints" call.
66365// Exactly one of *Operation or error will be non-nil. Any non-2xx
66366// status code is an error. Response headers are in either
66367// *Operation.ServerResponse.Header or (if a response was returned at
66368// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66369// to check whether the returned error was because
66370// http.StatusNotModified was returned.
66371func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
66372	gensupport.SetOptions(c.urlParams_, opts...)
66373	res, err := c.doRequest("json")
66374	if res != nil && res.StatusCode == http.StatusNotModified {
66375		if res.Body != nil {
66376			res.Body.Close()
66377		}
66378		return nil, &googleapi.Error{
66379			Code:   res.StatusCode,
66380			Header: res.Header,
66381		}
66382	}
66383	if err != nil {
66384		return nil, err
66385	}
66386	defer googleapi.CloseBody(res)
66387	if err := googleapi.CheckResponse(res); err != nil {
66388		return nil, err
66389	}
66390	ret := &Operation{
66391		ServerResponse: googleapi.ServerResponse{
66392			Header:         res.Header,
66393			HTTPStatusCode: res.StatusCode,
66394		},
66395	}
66396	target := &ret
66397	if err := gensupport.DecodeResponse(target, res); err != nil {
66398		return nil, err
66399	}
66400	return ret, nil
66401	// {
66402	//   "description": "Attach a network endpoint to the specified network endpoint group.",
66403	//   "httpMethod": "POST",
66404	//   "id": "compute.globalNetworkEndpointGroups.attachNetworkEndpoints",
66405	//   "parameterOrder": [
66406	//     "project",
66407	//     "networkEndpointGroup"
66408	//   ],
66409	//   "parameters": {
66410	//     "networkEndpointGroup": {
66411	//       "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.",
66412	//       "location": "path",
66413	//       "required": true,
66414	//       "type": "string"
66415	//     },
66416	//     "project": {
66417	//       "description": "Project ID for this request.",
66418	//       "location": "path",
66419	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66420	//       "required": true,
66421	//       "type": "string"
66422	//     },
66423	//     "requestId": {
66424	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
66425	//       "location": "query",
66426	//       "type": "string"
66427	//     }
66428	//   },
66429	//   "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints",
66430	//   "request": {
66431	//     "$ref": "GlobalNetworkEndpointGroupsAttachEndpointsRequest"
66432	//   },
66433	//   "response": {
66434	//     "$ref": "Operation"
66435	//   },
66436	//   "scopes": [
66437	//     "https://www.googleapis.com/auth/cloud-platform",
66438	//     "https://www.googleapis.com/auth/compute"
66439	//   ]
66440	// }
66441
66442}
66443
66444// method id "compute.globalNetworkEndpointGroups.delete":
66445
66446type GlobalNetworkEndpointGroupsDeleteCall struct {
66447	s                    *Service
66448	project              string
66449	networkEndpointGroup string
66450	urlParams_           gensupport.URLParams
66451	ctx_                 context.Context
66452	header_              http.Header
66453}
66454
66455// Delete: Deletes the specified network endpoint group.Note that the
66456// NEG cannot be deleted if there are backend services referencing it.
66457//
66458// - networkEndpointGroup: The name of the network endpoint group to
66459//   delete. It should comply with RFC1035.
66460// - project: Project ID for this request.
66461func (r *GlobalNetworkEndpointGroupsService) Delete(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsDeleteCall {
66462	c := &GlobalNetworkEndpointGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66463	c.project = project
66464	c.networkEndpointGroup = networkEndpointGroup
66465	return c
66466}
66467
66468// RequestId sets the optional parameter "requestId": An optional
66469// request ID to identify requests. Specify a unique request ID so that
66470// if you must retry your request, the server will know to ignore the
66471// request if it has already been completed.
66472//
66473// For example, consider a situation where you make an initial request
66474// and the request times out. If you make the request again with the
66475// same request ID, the server can check if original operation with the
66476// same request ID was received, and if so, will ignore the second
66477// request. This prevents clients from accidentally creating duplicate
66478// commitments.
66479//
66480// The request ID must be a valid UUID with the exception that zero UUID
66481// is not supported (00000000-0000-0000-0000-000000000000).
66482func (c *GlobalNetworkEndpointGroupsDeleteCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsDeleteCall {
66483	c.urlParams_.Set("requestId", requestId)
66484	return c
66485}
66486
66487// Fields allows partial responses to be retrieved. See
66488// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66489// for more information.
66490func (c *GlobalNetworkEndpointGroupsDeleteCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsDeleteCall {
66491	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66492	return c
66493}
66494
66495// Context sets the context to be used in this call's Do method. Any
66496// pending HTTP request will be aborted if the provided context is
66497// canceled.
66498func (c *GlobalNetworkEndpointGroupsDeleteCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsDeleteCall {
66499	c.ctx_ = ctx
66500	return c
66501}
66502
66503// Header returns an http.Header that can be modified by the caller to
66504// add HTTP headers to the request.
66505func (c *GlobalNetworkEndpointGroupsDeleteCall) Header() http.Header {
66506	if c.header_ == nil {
66507		c.header_ = make(http.Header)
66508	}
66509	return c.header_
66510}
66511
66512func (c *GlobalNetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
66513	reqHeaders := make(http.Header)
66514	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
66515	for k, v := range c.header_ {
66516		reqHeaders[k] = v
66517	}
66518	reqHeaders.Set("User-Agent", c.s.userAgent())
66519	var body io.Reader = nil
66520	c.urlParams_.Set("alt", alt)
66521	c.urlParams_.Set("prettyPrint", "false")
66522	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}")
66523	urls += "?" + c.urlParams_.Encode()
66524	req, err := http.NewRequest("DELETE", urls, body)
66525	if err != nil {
66526		return nil, err
66527	}
66528	req.Header = reqHeaders
66529	googleapi.Expand(req.URL, map[string]string{
66530		"project":              c.project,
66531		"networkEndpointGroup": c.networkEndpointGroup,
66532	})
66533	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66534}
66535
66536// Do executes the "compute.globalNetworkEndpointGroups.delete" call.
66537// Exactly one of *Operation or error will be non-nil. Any non-2xx
66538// status code is an error. Response headers are in either
66539// *Operation.ServerResponse.Header or (if a response was returned at
66540// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66541// to check whether the returned error was because
66542// http.StatusNotModified was returned.
66543func (c *GlobalNetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
66544	gensupport.SetOptions(c.urlParams_, opts...)
66545	res, err := c.doRequest("json")
66546	if res != nil && res.StatusCode == http.StatusNotModified {
66547		if res.Body != nil {
66548			res.Body.Close()
66549		}
66550		return nil, &googleapi.Error{
66551			Code:   res.StatusCode,
66552			Header: res.Header,
66553		}
66554	}
66555	if err != nil {
66556		return nil, err
66557	}
66558	defer googleapi.CloseBody(res)
66559	if err := googleapi.CheckResponse(res); err != nil {
66560		return nil, err
66561	}
66562	ret := &Operation{
66563		ServerResponse: googleapi.ServerResponse{
66564			Header:         res.Header,
66565			HTTPStatusCode: res.StatusCode,
66566		},
66567	}
66568	target := &ret
66569	if err := gensupport.DecodeResponse(target, res); err != nil {
66570		return nil, err
66571	}
66572	return ret, nil
66573	// {
66574	//   "description": "Deletes the specified network endpoint group.Note that the NEG cannot be deleted if there are backend services referencing it.",
66575	//   "httpMethod": "DELETE",
66576	//   "id": "compute.globalNetworkEndpointGroups.delete",
66577	//   "parameterOrder": [
66578	//     "project",
66579	//     "networkEndpointGroup"
66580	//   ],
66581	//   "parameters": {
66582	//     "networkEndpointGroup": {
66583	//       "description": "The name of the network endpoint group to delete. It should comply with RFC1035.",
66584	//       "location": "path",
66585	//       "required": true,
66586	//       "type": "string"
66587	//     },
66588	//     "project": {
66589	//       "description": "Project ID for this request.",
66590	//       "location": "path",
66591	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66592	//       "required": true,
66593	//       "type": "string"
66594	//     },
66595	//     "requestId": {
66596	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
66597	//       "location": "query",
66598	//       "type": "string"
66599	//     }
66600	//   },
66601	//   "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}",
66602	//   "response": {
66603	//     "$ref": "Operation"
66604	//   },
66605	//   "scopes": [
66606	//     "https://www.googleapis.com/auth/cloud-platform",
66607	//     "https://www.googleapis.com/auth/compute"
66608	//   ]
66609	// }
66610
66611}
66612
66613// method id "compute.globalNetworkEndpointGroups.detachNetworkEndpoints":
66614
66615type GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall struct {
66616	s                                                 *Service
66617	project                                           string
66618	networkEndpointGroup                              string
66619	globalnetworkendpointgroupsdetachendpointsrequest *GlobalNetworkEndpointGroupsDetachEndpointsRequest
66620	urlParams_                                        gensupport.URLParams
66621	ctx_                                              context.Context
66622	header_                                           http.Header
66623}
66624
66625// DetachNetworkEndpoints: Detach the network endpoint from the
66626// specified network endpoint group.
66627//
66628// - networkEndpointGroup: The name of the network endpoint group where
66629//   you are removing network endpoints. It should comply with RFC1035.
66630// - project: Project ID for this request.
66631func (r *GlobalNetworkEndpointGroupsService) DetachNetworkEndpoints(project string, networkEndpointGroup string, globalnetworkendpointgroupsdetachendpointsrequest *GlobalNetworkEndpointGroupsDetachEndpointsRequest) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
66632	c := &GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66633	c.project = project
66634	c.networkEndpointGroup = networkEndpointGroup
66635	c.globalnetworkendpointgroupsdetachendpointsrequest = globalnetworkendpointgroupsdetachendpointsrequest
66636	return c
66637}
66638
66639// RequestId sets the optional parameter "requestId": An optional
66640// request ID to identify requests. Specify a unique request ID so that
66641// if you must retry your request, the server will know to ignore the
66642// request if it has already been completed.
66643//
66644// For example, consider a situation where you make an initial request
66645// and the request times out. If you make the request again with the
66646// same request ID, the server can check if original operation with the
66647// same request ID was received, and if so, will ignore the second
66648// request. This prevents clients from accidentally creating duplicate
66649// commitments.
66650//
66651// The request ID must be a valid UUID with the exception that zero UUID
66652// is not supported (00000000-0000-0000-0000-000000000000).
66653func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
66654	c.urlParams_.Set("requestId", requestId)
66655	return c
66656}
66657
66658// Fields allows partial responses to be retrieved. See
66659// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66660// for more information.
66661func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
66662	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66663	return c
66664}
66665
66666// Context sets the context to be used in this call's Do method. Any
66667// pending HTTP request will be aborted if the provided context is
66668// canceled.
66669func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
66670	c.ctx_ = ctx
66671	return c
66672}
66673
66674// Header returns an http.Header that can be modified by the caller to
66675// add HTTP headers to the request.
66676func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Header() http.Header {
66677	if c.header_ == nil {
66678		c.header_ = make(http.Header)
66679	}
66680	return c.header_
66681}
66682
66683func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
66684	reqHeaders := make(http.Header)
66685	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
66686	for k, v := range c.header_ {
66687		reqHeaders[k] = v
66688	}
66689	reqHeaders.Set("User-Agent", c.s.userAgent())
66690	var body io.Reader = nil
66691	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalnetworkendpointgroupsdetachendpointsrequest)
66692	if err != nil {
66693		return nil, err
66694	}
66695	reqHeaders.Set("Content-Type", "application/json")
66696	c.urlParams_.Set("alt", alt)
66697	c.urlParams_.Set("prettyPrint", "false")
66698	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints")
66699	urls += "?" + c.urlParams_.Encode()
66700	req, err := http.NewRequest("POST", urls, body)
66701	if err != nil {
66702		return nil, err
66703	}
66704	req.Header = reqHeaders
66705	googleapi.Expand(req.URL, map[string]string{
66706		"project":              c.project,
66707		"networkEndpointGroup": c.networkEndpointGroup,
66708	})
66709	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66710}
66711
66712// Do executes the "compute.globalNetworkEndpointGroups.detachNetworkEndpoints" call.
66713// Exactly one of *Operation or error will be non-nil. Any non-2xx
66714// status code is an error. Response headers are in either
66715// *Operation.ServerResponse.Header or (if a response was returned at
66716// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66717// to check whether the returned error was because
66718// http.StatusNotModified was returned.
66719func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
66720	gensupport.SetOptions(c.urlParams_, opts...)
66721	res, err := c.doRequest("json")
66722	if res != nil && res.StatusCode == http.StatusNotModified {
66723		if res.Body != nil {
66724			res.Body.Close()
66725		}
66726		return nil, &googleapi.Error{
66727			Code:   res.StatusCode,
66728			Header: res.Header,
66729		}
66730	}
66731	if err != nil {
66732		return nil, err
66733	}
66734	defer googleapi.CloseBody(res)
66735	if err := googleapi.CheckResponse(res); err != nil {
66736		return nil, err
66737	}
66738	ret := &Operation{
66739		ServerResponse: googleapi.ServerResponse{
66740			Header:         res.Header,
66741			HTTPStatusCode: res.StatusCode,
66742		},
66743	}
66744	target := &ret
66745	if err := gensupport.DecodeResponse(target, res); err != nil {
66746		return nil, err
66747	}
66748	return ret, nil
66749	// {
66750	//   "description": "Detach the network endpoint from the specified network endpoint group.",
66751	//   "httpMethod": "POST",
66752	//   "id": "compute.globalNetworkEndpointGroups.detachNetworkEndpoints",
66753	//   "parameterOrder": [
66754	//     "project",
66755	//     "networkEndpointGroup"
66756	//   ],
66757	//   "parameters": {
66758	//     "networkEndpointGroup": {
66759	//       "description": "The name of the network endpoint group where you are removing network endpoints. It should comply with RFC1035.",
66760	//       "location": "path",
66761	//       "required": true,
66762	//       "type": "string"
66763	//     },
66764	//     "project": {
66765	//       "description": "Project ID for this request.",
66766	//       "location": "path",
66767	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66768	//       "required": true,
66769	//       "type": "string"
66770	//     },
66771	//     "requestId": {
66772	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
66773	//       "location": "query",
66774	//       "type": "string"
66775	//     }
66776	//   },
66777	//   "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints",
66778	//   "request": {
66779	//     "$ref": "GlobalNetworkEndpointGroupsDetachEndpointsRequest"
66780	//   },
66781	//   "response": {
66782	//     "$ref": "Operation"
66783	//   },
66784	//   "scopes": [
66785	//     "https://www.googleapis.com/auth/cloud-platform",
66786	//     "https://www.googleapis.com/auth/compute"
66787	//   ]
66788	// }
66789
66790}
66791
66792// method id "compute.globalNetworkEndpointGroups.get":
66793
66794type GlobalNetworkEndpointGroupsGetCall struct {
66795	s                    *Service
66796	project              string
66797	networkEndpointGroup string
66798	urlParams_           gensupport.URLParams
66799	ifNoneMatch_         string
66800	ctx_                 context.Context
66801	header_              http.Header
66802}
66803
66804// Get: Returns the specified network endpoint group. Gets a list of
66805// available network endpoint groups by making a list() request.
66806//
66807// - networkEndpointGroup: The name of the network endpoint group. It
66808//   should comply with RFC1035.
66809// - project: Project ID for this request.
66810func (r *GlobalNetworkEndpointGroupsService) Get(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsGetCall {
66811	c := &GlobalNetworkEndpointGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66812	c.project = project
66813	c.networkEndpointGroup = networkEndpointGroup
66814	return c
66815}
66816
66817// Fields allows partial responses to be retrieved. See
66818// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66819// for more information.
66820func (c *GlobalNetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsGetCall {
66821	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66822	return c
66823}
66824
66825// IfNoneMatch sets the optional parameter which makes the operation
66826// fail if the object's ETag matches the given value. This is useful for
66827// getting updates only after the object has changed since the last
66828// request. Use googleapi.IsNotModified to check whether the response
66829// error from Do is the result of In-None-Match.
66830func (c *GlobalNetworkEndpointGroupsGetCall) IfNoneMatch(entityTag string) *GlobalNetworkEndpointGroupsGetCall {
66831	c.ifNoneMatch_ = entityTag
66832	return c
66833}
66834
66835// Context sets the context to be used in this call's Do method. Any
66836// pending HTTP request will be aborted if the provided context is
66837// canceled.
66838func (c *GlobalNetworkEndpointGroupsGetCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsGetCall {
66839	c.ctx_ = ctx
66840	return c
66841}
66842
66843// Header returns an http.Header that can be modified by the caller to
66844// add HTTP headers to the request.
66845func (c *GlobalNetworkEndpointGroupsGetCall) Header() http.Header {
66846	if c.header_ == nil {
66847		c.header_ = make(http.Header)
66848	}
66849	return c.header_
66850}
66851
66852func (c *GlobalNetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Response, error) {
66853	reqHeaders := make(http.Header)
66854	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
66855	for k, v := range c.header_ {
66856		reqHeaders[k] = v
66857	}
66858	reqHeaders.Set("User-Agent", c.s.userAgent())
66859	if c.ifNoneMatch_ != "" {
66860		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
66861	}
66862	var body io.Reader = nil
66863	c.urlParams_.Set("alt", alt)
66864	c.urlParams_.Set("prettyPrint", "false")
66865	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}")
66866	urls += "?" + c.urlParams_.Encode()
66867	req, err := http.NewRequest("GET", urls, body)
66868	if err != nil {
66869		return nil, err
66870	}
66871	req.Header = reqHeaders
66872	googleapi.Expand(req.URL, map[string]string{
66873		"project":              c.project,
66874		"networkEndpointGroup": c.networkEndpointGroup,
66875	})
66876	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66877}
66878
66879// Do executes the "compute.globalNetworkEndpointGroups.get" call.
66880// Exactly one of *NetworkEndpointGroup or error will be non-nil. Any
66881// non-2xx status code is an error. Response headers are in either
66882// *NetworkEndpointGroup.ServerResponse.Header or (if a response was
66883// returned at all) in error.(*googleapi.Error).Header. Use
66884// googleapi.IsNotModified to check whether the returned error was
66885// because http.StatusNotModified was returned.
66886func (c *GlobalNetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroup, error) {
66887	gensupport.SetOptions(c.urlParams_, opts...)
66888	res, err := c.doRequest("json")
66889	if res != nil && res.StatusCode == http.StatusNotModified {
66890		if res.Body != nil {
66891			res.Body.Close()
66892		}
66893		return nil, &googleapi.Error{
66894			Code:   res.StatusCode,
66895			Header: res.Header,
66896		}
66897	}
66898	if err != nil {
66899		return nil, err
66900	}
66901	defer googleapi.CloseBody(res)
66902	if err := googleapi.CheckResponse(res); err != nil {
66903		return nil, err
66904	}
66905	ret := &NetworkEndpointGroup{
66906		ServerResponse: googleapi.ServerResponse{
66907			Header:         res.Header,
66908			HTTPStatusCode: res.StatusCode,
66909		},
66910	}
66911	target := &ret
66912	if err := gensupport.DecodeResponse(target, res); err != nil {
66913		return nil, err
66914	}
66915	return ret, nil
66916	// {
66917	//   "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.",
66918	//   "httpMethod": "GET",
66919	//   "id": "compute.globalNetworkEndpointGroups.get",
66920	//   "parameterOrder": [
66921	//     "project",
66922	//     "networkEndpointGroup"
66923	//   ],
66924	//   "parameters": {
66925	//     "networkEndpointGroup": {
66926	//       "description": "The name of the network endpoint group. It should comply with RFC1035.",
66927	//       "location": "path",
66928	//       "required": true,
66929	//       "type": "string"
66930	//     },
66931	//     "project": {
66932	//       "description": "Project ID for this request.",
66933	//       "location": "path",
66934	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66935	//       "required": true,
66936	//       "type": "string"
66937	//     }
66938	//   },
66939	//   "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}",
66940	//   "response": {
66941	//     "$ref": "NetworkEndpointGroup"
66942	//   },
66943	//   "scopes": [
66944	//     "https://www.googleapis.com/auth/cloud-platform",
66945	//     "https://www.googleapis.com/auth/compute",
66946	//     "https://www.googleapis.com/auth/compute.readonly"
66947	//   ]
66948	// }
66949
66950}
66951
66952// method id "compute.globalNetworkEndpointGroups.insert":
66953
66954type GlobalNetworkEndpointGroupsInsertCall struct {
66955	s                    *Service
66956	project              string
66957	networkendpointgroup *NetworkEndpointGroup
66958	urlParams_           gensupport.URLParams
66959	ctx_                 context.Context
66960	header_              http.Header
66961}
66962
66963// Insert: Creates a network endpoint group in the specified project
66964// using the parameters that are included in the request.
66965//
66966// - project: Project ID for this request.
66967func (r *GlobalNetworkEndpointGroupsService) Insert(project string, networkendpointgroup *NetworkEndpointGroup) *GlobalNetworkEndpointGroupsInsertCall {
66968	c := &GlobalNetworkEndpointGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66969	c.project = project
66970	c.networkendpointgroup = networkendpointgroup
66971	return c
66972}
66973
66974// RequestId sets the optional parameter "requestId": An optional
66975// request ID to identify requests. Specify a unique request ID so that
66976// if you must retry your request, the server will know to ignore the
66977// request if it has already been completed.
66978//
66979// For example, consider a situation where you make an initial request
66980// and the request times out. If you make the request again with the
66981// same request ID, the server can check if original operation with the
66982// same request ID was received, and if so, will ignore the second
66983// request. This prevents clients from accidentally creating duplicate
66984// commitments.
66985//
66986// The request ID must be a valid UUID with the exception that zero UUID
66987// is not supported (00000000-0000-0000-0000-000000000000).
66988func (c *GlobalNetworkEndpointGroupsInsertCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsInsertCall {
66989	c.urlParams_.Set("requestId", requestId)
66990	return c
66991}
66992
66993// Fields allows partial responses to be retrieved. See
66994// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66995// for more information.
66996func (c *GlobalNetworkEndpointGroupsInsertCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsInsertCall {
66997	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66998	return c
66999}
67000
67001// Context sets the context to be used in this call's Do method. Any
67002// pending HTTP request will be aborted if the provided context is
67003// canceled.
67004func (c *GlobalNetworkEndpointGroupsInsertCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsInsertCall {
67005	c.ctx_ = ctx
67006	return c
67007}
67008
67009// Header returns an http.Header that can be modified by the caller to
67010// add HTTP headers to the request.
67011func (c *GlobalNetworkEndpointGroupsInsertCall) Header() http.Header {
67012	if c.header_ == nil {
67013		c.header_ = make(http.Header)
67014	}
67015	return c.header_
67016}
67017
67018func (c *GlobalNetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
67019	reqHeaders := make(http.Header)
67020	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
67021	for k, v := range c.header_ {
67022		reqHeaders[k] = v
67023	}
67024	reqHeaders.Set("User-Agent", c.s.userAgent())
67025	var body io.Reader = nil
67026	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroup)
67027	if err != nil {
67028		return nil, err
67029	}
67030	reqHeaders.Set("Content-Type", "application/json")
67031	c.urlParams_.Set("alt", alt)
67032	c.urlParams_.Set("prettyPrint", "false")
67033	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups")
67034	urls += "?" + c.urlParams_.Encode()
67035	req, err := http.NewRequest("POST", urls, body)
67036	if err != nil {
67037		return nil, err
67038	}
67039	req.Header = reqHeaders
67040	googleapi.Expand(req.URL, map[string]string{
67041		"project": c.project,
67042	})
67043	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67044}
67045
67046// Do executes the "compute.globalNetworkEndpointGroups.insert" call.
67047// Exactly one of *Operation or error will be non-nil. Any non-2xx
67048// status code is an error. Response headers are in either
67049// *Operation.ServerResponse.Header or (if a response was returned at
67050// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67051// to check whether the returned error was because
67052// http.StatusNotModified was returned.
67053func (c *GlobalNetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67054	gensupport.SetOptions(c.urlParams_, opts...)
67055	res, err := c.doRequest("json")
67056	if res != nil && res.StatusCode == http.StatusNotModified {
67057		if res.Body != nil {
67058			res.Body.Close()
67059		}
67060		return nil, &googleapi.Error{
67061			Code:   res.StatusCode,
67062			Header: res.Header,
67063		}
67064	}
67065	if err != nil {
67066		return nil, err
67067	}
67068	defer googleapi.CloseBody(res)
67069	if err := googleapi.CheckResponse(res); err != nil {
67070		return nil, err
67071	}
67072	ret := &Operation{
67073		ServerResponse: googleapi.ServerResponse{
67074			Header:         res.Header,
67075			HTTPStatusCode: res.StatusCode,
67076		},
67077	}
67078	target := &ret
67079	if err := gensupport.DecodeResponse(target, res); err != nil {
67080		return nil, err
67081	}
67082	return ret, nil
67083	// {
67084	//   "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.",
67085	//   "httpMethod": "POST",
67086	//   "id": "compute.globalNetworkEndpointGroups.insert",
67087	//   "parameterOrder": [
67088	//     "project"
67089	//   ],
67090	//   "parameters": {
67091	//     "project": {
67092	//       "description": "Project ID for this request.",
67093	//       "location": "path",
67094	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67095	//       "required": true,
67096	//       "type": "string"
67097	//     },
67098	//     "requestId": {
67099	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
67100	//       "location": "query",
67101	//       "type": "string"
67102	//     }
67103	//   },
67104	//   "path": "projects/{project}/global/networkEndpointGroups",
67105	//   "request": {
67106	//     "$ref": "NetworkEndpointGroup"
67107	//   },
67108	//   "response": {
67109	//     "$ref": "Operation"
67110	//   },
67111	//   "scopes": [
67112	//     "https://www.googleapis.com/auth/cloud-platform",
67113	//     "https://www.googleapis.com/auth/compute"
67114	//   ]
67115	// }
67116
67117}
67118
67119// method id "compute.globalNetworkEndpointGroups.list":
67120
67121type GlobalNetworkEndpointGroupsListCall struct {
67122	s            *Service
67123	project      string
67124	urlParams_   gensupport.URLParams
67125	ifNoneMatch_ string
67126	ctx_         context.Context
67127	header_      http.Header
67128}
67129
67130// List: Retrieves the list of network endpoint groups that are located
67131// in the specified project.
67132//
67133// - project: Project ID for this request.
67134func (r *GlobalNetworkEndpointGroupsService) List(project string) *GlobalNetworkEndpointGroupsListCall {
67135	c := &GlobalNetworkEndpointGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67136	c.project = project
67137	return c
67138}
67139
67140// Filter sets the optional parameter "filter": A filter expression that
67141// filters resources listed in the response. The expression must specify
67142// the field name, a comparison operator, and the value that you want to
67143// use for filtering. The value must be a string, a number, or a
67144// boolean. The comparison operator must be either `=`, `!=`, `>`, or
67145// `<`.
67146//
67147// For example, if you are filtering Compute Engine instances, you can
67148// exclude instances named `example-instance` by specifying `name !=
67149// example-instance`.
67150//
67151// You can also filter nested fields. For example, you could specify
67152// `scheduling.automaticRestart = false` to include instances only if
67153// they are not scheduled for automatic restarts. You can use filtering
67154// on nested fields to filter based on resource labels.
67155//
67156// To filter on multiple expressions, provide each separate expression
67157// within parentheses. For example: ``` (scheduling.automaticRestart =
67158// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
67159// is an `AND` expression. However, you can include `AND` and `OR`
67160// expressions explicitly. For example: ``` (cpuPlatform = "Intel
67161// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
67162// (scheduling.automaticRestart = true) ```
67163func (c *GlobalNetworkEndpointGroupsListCall) Filter(filter string) *GlobalNetworkEndpointGroupsListCall {
67164	c.urlParams_.Set("filter", filter)
67165	return c
67166}
67167
67168// MaxResults sets the optional parameter "maxResults": The maximum
67169// number of results per page that should be returned. If the number of
67170// available results is larger than `maxResults`, Compute Engine returns
67171// a `nextPageToken` that can be used to get the next page of results in
67172// subsequent list requests. Acceptable values are `0` to `500`,
67173// inclusive. (Default: `500`)
67174func (c *GlobalNetworkEndpointGroupsListCall) MaxResults(maxResults int64) *GlobalNetworkEndpointGroupsListCall {
67175	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
67176	return c
67177}
67178
67179// OrderBy sets the optional parameter "orderBy": Sorts list results by
67180// a certain order. By default, results are returned in alphanumerical
67181// order based on the resource name.
67182//
67183// You can also sort results in descending order based on the creation
67184// timestamp using `orderBy="creationTimestamp desc". This sorts
67185// results based on the `creationTimestamp` field in reverse
67186// chronological order (newest result first). Use this to sort resources
67187// like operations so that the newest operation is returned
67188// first.
67189//
67190// Currently, only sorting by `name` or `creationTimestamp desc` is
67191// supported.
67192func (c *GlobalNetworkEndpointGroupsListCall) OrderBy(orderBy string) *GlobalNetworkEndpointGroupsListCall {
67193	c.urlParams_.Set("orderBy", orderBy)
67194	return c
67195}
67196
67197// PageToken sets the optional parameter "pageToken": Specifies a page
67198// token to use. Set `pageToken` to the `nextPageToken` returned by a
67199// previous list request to get the next page of results.
67200func (c *GlobalNetworkEndpointGroupsListCall) PageToken(pageToken string) *GlobalNetworkEndpointGroupsListCall {
67201	c.urlParams_.Set("pageToken", pageToken)
67202	return c
67203}
67204
67205// ReturnPartialSuccess sets the optional parameter
67206// "returnPartialSuccess": Opt-in for partial success behavior which
67207// provides partial results in case of failure. The default value is
67208// false.
67209func (c *GlobalNetworkEndpointGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalNetworkEndpointGroupsListCall {
67210	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
67211	return c
67212}
67213
67214// Fields allows partial responses to be retrieved. See
67215// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67216// for more information.
67217func (c *GlobalNetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsListCall {
67218	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67219	return c
67220}
67221
67222// IfNoneMatch sets the optional parameter which makes the operation
67223// fail if the object's ETag matches the given value. This is useful for
67224// getting updates only after the object has changed since the last
67225// request. Use googleapi.IsNotModified to check whether the response
67226// error from Do is the result of In-None-Match.
67227func (c *GlobalNetworkEndpointGroupsListCall) IfNoneMatch(entityTag string) *GlobalNetworkEndpointGroupsListCall {
67228	c.ifNoneMatch_ = entityTag
67229	return c
67230}
67231
67232// Context sets the context to be used in this call's Do method. Any
67233// pending HTTP request will be aborted if the provided context is
67234// canceled.
67235func (c *GlobalNetworkEndpointGroupsListCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsListCall {
67236	c.ctx_ = ctx
67237	return c
67238}
67239
67240// Header returns an http.Header that can be modified by the caller to
67241// add HTTP headers to the request.
67242func (c *GlobalNetworkEndpointGroupsListCall) Header() http.Header {
67243	if c.header_ == nil {
67244		c.header_ = make(http.Header)
67245	}
67246	return c.header_
67247}
67248
67249func (c *GlobalNetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, error) {
67250	reqHeaders := make(http.Header)
67251	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
67252	for k, v := range c.header_ {
67253		reqHeaders[k] = v
67254	}
67255	reqHeaders.Set("User-Agent", c.s.userAgent())
67256	if c.ifNoneMatch_ != "" {
67257		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
67258	}
67259	var body io.Reader = nil
67260	c.urlParams_.Set("alt", alt)
67261	c.urlParams_.Set("prettyPrint", "false")
67262	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups")
67263	urls += "?" + c.urlParams_.Encode()
67264	req, err := http.NewRequest("GET", urls, body)
67265	if err != nil {
67266		return nil, err
67267	}
67268	req.Header = reqHeaders
67269	googleapi.Expand(req.URL, map[string]string{
67270		"project": c.project,
67271	})
67272	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67273}
67274
67275// Do executes the "compute.globalNetworkEndpointGroups.list" call.
67276// Exactly one of *NetworkEndpointGroupList or error will be non-nil.
67277// Any non-2xx status code is an error. Response headers are in either
67278// *NetworkEndpointGroupList.ServerResponse.Header or (if a response was
67279// returned at all) in error.(*googleapi.Error).Header. Use
67280// googleapi.IsNotModified to check whether the returned error was
67281// because http.StatusNotModified was returned.
67282func (c *GlobalNetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupList, error) {
67283	gensupport.SetOptions(c.urlParams_, opts...)
67284	res, err := c.doRequest("json")
67285	if res != nil && res.StatusCode == http.StatusNotModified {
67286		if res.Body != nil {
67287			res.Body.Close()
67288		}
67289		return nil, &googleapi.Error{
67290			Code:   res.StatusCode,
67291			Header: res.Header,
67292		}
67293	}
67294	if err != nil {
67295		return nil, err
67296	}
67297	defer googleapi.CloseBody(res)
67298	if err := googleapi.CheckResponse(res); err != nil {
67299		return nil, err
67300	}
67301	ret := &NetworkEndpointGroupList{
67302		ServerResponse: googleapi.ServerResponse{
67303			Header:         res.Header,
67304			HTTPStatusCode: res.StatusCode,
67305		},
67306	}
67307	target := &ret
67308	if err := gensupport.DecodeResponse(target, res); err != nil {
67309		return nil, err
67310	}
67311	return ret, nil
67312	// {
67313	//   "description": "Retrieves the list of network endpoint groups that are located in the specified project.",
67314	//   "httpMethod": "GET",
67315	//   "id": "compute.globalNetworkEndpointGroups.list",
67316	//   "parameterOrder": [
67317	//     "project"
67318	//   ],
67319	//   "parameters": {
67320	//     "filter": {
67321	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
67322	//       "location": "query",
67323	//       "type": "string"
67324	//     },
67325	//     "maxResults": {
67326	//       "default": "500",
67327	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
67328	//       "format": "uint32",
67329	//       "location": "query",
67330	//       "minimum": "0",
67331	//       "type": "integer"
67332	//     },
67333	//     "orderBy": {
67334	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
67335	//       "location": "query",
67336	//       "type": "string"
67337	//     },
67338	//     "pageToken": {
67339	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
67340	//       "location": "query",
67341	//       "type": "string"
67342	//     },
67343	//     "project": {
67344	//       "description": "Project ID for this request.",
67345	//       "location": "path",
67346	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67347	//       "required": true,
67348	//       "type": "string"
67349	//     },
67350	//     "returnPartialSuccess": {
67351	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
67352	//       "location": "query",
67353	//       "type": "boolean"
67354	//     }
67355	//   },
67356	//   "path": "projects/{project}/global/networkEndpointGroups",
67357	//   "response": {
67358	//     "$ref": "NetworkEndpointGroupList"
67359	//   },
67360	//   "scopes": [
67361	//     "https://www.googleapis.com/auth/cloud-platform",
67362	//     "https://www.googleapis.com/auth/compute",
67363	//     "https://www.googleapis.com/auth/compute.readonly"
67364	//   ]
67365	// }
67366
67367}
67368
67369// Pages invokes f for each page of results.
67370// A non-nil error returned from f will halt the iteration.
67371// The provided context supersedes any context provided to the Context method.
67372func (c *GlobalNetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupList) error) error {
67373	c.ctx_ = ctx
67374	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
67375	for {
67376		x, err := c.Do()
67377		if err != nil {
67378			return err
67379		}
67380		if err := f(x); err != nil {
67381			return err
67382		}
67383		if x.NextPageToken == "" {
67384			return nil
67385		}
67386		c.PageToken(x.NextPageToken)
67387	}
67388}
67389
67390// method id "compute.globalNetworkEndpointGroups.listNetworkEndpoints":
67391
67392type GlobalNetworkEndpointGroupsListNetworkEndpointsCall struct {
67393	s                    *Service
67394	project              string
67395	networkEndpointGroup string
67396	urlParams_           gensupport.URLParams
67397	ctx_                 context.Context
67398	header_              http.Header
67399}
67400
67401// ListNetworkEndpoints: Lists the network endpoints in the specified
67402// network endpoint group.
67403//
67404// - networkEndpointGroup: The name of the network endpoint group from
67405//   which you want to generate a list of included network endpoints. It
67406//   should comply with RFC1035.
67407// - project: Project ID for this request.
67408func (r *GlobalNetworkEndpointGroupsService) ListNetworkEndpoints(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
67409	c := &GlobalNetworkEndpointGroupsListNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67410	c.project = project
67411	c.networkEndpointGroup = networkEndpointGroup
67412	return c
67413}
67414
67415// Filter sets the optional parameter "filter": A filter expression that
67416// filters resources listed in the response. The expression must specify
67417// the field name, a comparison operator, and the value that you want to
67418// use for filtering. The value must be a string, a number, or a
67419// boolean. The comparison operator must be either `=`, `!=`, `>`, or
67420// `<`.
67421//
67422// For example, if you are filtering Compute Engine instances, you can
67423// exclude instances named `example-instance` by specifying `name !=
67424// example-instance`.
67425//
67426// You can also filter nested fields. For example, you could specify
67427// `scheduling.automaticRestart = false` to include instances only if
67428// they are not scheduled for automatic restarts. You can use filtering
67429// on nested fields to filter based on resource labels.
67430//
67431// To filter on multiple expressions, provide each separate expression
67432// within parentheses. For example: ``` (scheduling.automaticRestart =
67433// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
67434// is an `AND` expression. However, you can include `AND` and `OR`
67435// expressions explicitly. For example: ``` (cpuPlatform = "Intel
67436// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
67437// (scheduling.automaticRestart = true) ```
67438func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Filter(filter string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
67439	c.urlParams_.Set("filter", filter)
67440	return c
67441}
67442
67443// MaxResults sets the optional parameter "maxResults": The maximum
67444// number of results per page that should be returned. If the number of
67445// available results is larger than `maxResults`, Compute Engine returns
67446// a `nextPageToken` that can be used to get the next page of results in
67447// subsequent list requests. Acceptable values are `0` to `500`,
67448// inclusive. (Default: `500`)
67449func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) MaxResults(maxResults int64) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
67450	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
67451	return c
67452}
67453
67454// OrderBy sets the optional parameter "orderBy": Sorts list results by
67455// a certain order. By default, results are returned in alphanumerical
67456// order based on the resource name.
67457//
67458// You can also sort results in descending order based on the creation
67459// timestamp using `orderBy="creationTimestamp desc". This sorts
67460// results based on the `creationTimestamp` field in reverse
67461// chronological order (newest result first). Use this to sort resources
67462// like operations so that the newest operation is returned
67463// first.
67464//
67465// Currently, only sorting by `name` or `creationTimestamp desc` is
67466// supported.
67467func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) OrderBy(orderBy string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
67468	c.urlParams_.Set("orderBy", orderBy)
67469	return c
67470}
67471
67472// PageToken sets the optional parameter "pageToken": Specifies a page
67473// token to use. Set `pageToken` to the `nextPageToken` returned by a
67474// previous list request to get the next page of results.
67475func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) PageToken(pageToken string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
67476	c.urlParams_.Set("pageToken", pageToken)
67477	return c
67478}
67479
67480// ReturnPartialSuccess sets the optional parameter
67481// "returnPartialSuccess": Opt-in for partial success behavior which
67482// provides partial results in case of failure. The default value is
67483// false.
67484func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
67485	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
67486	return c
67487}
67488
67489// Fields allows partial responses to be retrieved. See
67490// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67491// for more information.
67492func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
67493	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67494	return c
67495}
67496
67497// Context sets the context to be used in this call's Do method. Any
67498// pending HTTP request will be aborted if the provided context is
67499// canceled.
67500func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
67501	c.ctx_ = ctx
67502	return c
67503}
67504
67505// Header returns an http.Header that can be modified by the caller to
67506// add HTTP headers to the request.
67507func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Header() http.Header {
67508	if c.header_ == nil {
67509		c.header_ = make(http.Header)
67510	}
67511	return c.header_
67512}
67513
67514func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
67515	reqHeaders := make(http.Header)
67516	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
67517	for k, v := range c.header_ {
67518		reqHeaders[k] = v
67519	}
67520	reqHeaders.Set("User-Agent", c.s.userAgent())
67521	var body io.Reader = nil
67522	c.urlParams_.Set("alt", alt)
67523	c.urlParams_.Set("prettyPrint", "false")
67524	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints")
67525	urls += "?" + c.urlParams_.Encode()
67526	req, err := http.NewRequest("POST", urls, body)
67527	if err != nil {
67528		return nil, err
67529	}
67530	req.Header = reqHeaders
67531	googleapi.Expand(req.URL, map[string]string{
67532		"project":              c.project,
67533		"networkEndpointGroup": c.networkEndpointGroup,
67534	})
67535	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67536}
67537
67538// Do executes the "compute.globalNetworkEndpointGroups.listNetworkEndpoints" call.
67539// Exactly one of *NetworkEndpointGroupsListNetworkEndpoints or error
67540// will be non-nil. Any non-2xx status code is an error. Response
67541// headers are in either
67542// *NetworkEndpointGroupsListNetworkEndpoints.ServerResponse.Header or
67543// (if a response was returned at all) in
67544// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
67545// whether the returned error was because http.StatusNotModified was
67546// returned.
67547func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupsListNetworkEndpoints, error) {
67548	gensupport.SetOptions(c.urlParams_, opts...)
67549	res, err := c.doRequest("json")
67550	if res != nil && res.StatusCode == http.StatusNotModified {
67551		if res.Body != nil {
67552			res.Body.Close()
67553		}
67554		return nil, &googleapi.Error{
67555			Code:   res.StatusCode,
67556			Header: res.Header,
67557		}
67558	}
67559	if err != nil {
67560		return nil, err
67561	}
67562	defer googleapi.CloseBody(res)
67563	if err := googleapi.CheckResponse(res); err != nil {
67564		return nil, err
67565	}
67566	ret := &NetworkEndpointGroupsListNetworkEndpoints{
67567		ServerResponse: googleapi.ServerResponse{
67568			Header:         res.Header,
67569			HTTPStatusCode: res.StatusCode,
67570		},
67571	}
67572	target := &ret
67573	if err := gensupport.DecodeResponse(target, res); err != nil {
67574		return nil, err
67575	}
67576	return ret, nil
67577	// {
67578	//   "description": "Lists the network endpoints in the specified network endpoint group.",
67579	//   "httpMethod": "POST",
67580	//   "id": "compute.globalNetworkEndpointGroups.listNetworkEndpoints",
67581	//   "parameterOrder": [
67582	//     "project",
67583	//     "networkEndpointGroup"
67584	//   ],
67585	//   "parameters": {
67586	//     "filter": {
67587	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
67588	//       "location": "query",
67589	//       "type": "string"
67590	//     },
67591	//     "maxResults": {
67592	//       "default": "500",
67593	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
67594	//       "format": "uint32",
67595	//       "location": "query",
67596	//       "minimum": "0",
67597	//       "type": "integer"
67598	//     },
67599	//     "networkEndpointGroup": {
67600	//       "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.",
67601	//       "location": "path",
67602	//       "required": true,
67603	//       "type": "string"
67604	//     },
67605	//     "orderBy": {
67606	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
67607	//       "location": "query",
67608	//       "type": "string"
67609	//     },
67610	//     "pageToken": {
67611	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
67612	//       "location": "query",
67613	//       "type": "string"
67614	//     },
67615	//     "project": {
67616	//       "description": "Project ID for this request.",
67617	//       "location": "path",
67618	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67619	//       "required": true,
67620	//       "type": "string"
67621	//     },
67622	//     "returnPartialSuccess": {
67623	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
67624	//       "location": "query",
67625	//       "type": "boolean"
67626	//     }
67627	//   },
67628	//   "path": "projects/{project}/global/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints",
67629	//   "response": {
67630	//     "$ref": "NetworkEndpointGroupsListNetworkEndpoints"
67631	//   },
67632	//   "scopes": [
67633	//     "https://www.googleapis.com/auth/cloud-platform",
67634	//     "https://www.googleapis.com/auth/compute",
67635	//     "https://www.googleapis.com/auth/compute.readonly"
67636	//   ]
67637	// }
67638
67639}
67640
67641// Pages invokes f for each page of results.
67642// A non-nil error returned from f will halt the iteration.
67643// The provided context supersedes any context provided to the Context method.
67644func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupsListNetworkEndpoints) error) error {
67645	c.ctx_ = ctx
67646	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
67647	for {
67648		x, err := c.Do()
67649		if err != nil {
67650			return err
67651		}
67652		if err := f(x); err != nil {
67653			return err
67654		}
67655		if x.NextPageToken == "" {
67656			return nil
67657		}
67658		c.PageToken(x.NextPageToken)
67659	}
67660}
67661
67662// method id "compute.globalOperations.aggregatedList":
67663
67664type GlobalOperationsAggregatedListCall struct {
67665	s            *Service
67666	project      string
67667	urlParams_   gensupport.URLParams
67668	ifNoneMatch_ string
67669	ctx_         context.Context
67670	header_      http.Header
67671}
67672
67673// AggregatedList: Retrieves an aggregated list of all operations.
67674//
67675// - project: Project ID for this request.
67676// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/aggregatedList
67677func (r *GlobalOperationsService) AggregatedList(project string) *GlobalOperationsAggregatedListCall {
67678	c := &GlobalOperationsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67679	c.project = project
67680	return c
67681}
67682
67683// Filter sets the optional parameter "filter": A filter expression that
67684// filters resources listed in the response. The expression must specify
67685// the field name, a comparison operator, and the value that you want to
67686// use for filtering. The value must be a string, a number, or a
67687// boolean. The comparison operator must be either `=`, `!=`, `>`, or
67688// `<`.
67689//
67690// For example, if you are filtering Compute Engine instances, you can
67691// exclude instances named `example-instance` by specifying `name !=
67692// example-instance`.
67693//
67694// You can also filter nested fields. For example, you could specify
67695// `scheduling.automaticRestart = false` to include instances only if
67696// they are not scheduled for automatic restarts. You can use filtering
67697// on nested fields to filter based on resource labels.
67698//
67699// To filter on multiple expressions, provide each separate expression
67700// within parentheses. For example: ``` (scheduling.automaticRestart =
67701// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
67702// is an `AND` expression. However, you can include `AND` and `OR`
67703// expressions explicitly. For example: ``` (cpuPlatform = "Intel
67704// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
67705// (scheduling.automaticRestart = true) ```
67706func (c *GlobalOperationsAggregatedListCall) Filter(filter string) *GlobalOperationsAggregatedListCall {
67707	c.urlParams_.Set("filter", filter)
67708	return c
67709}
67710
67711// IncludeAllScopes sets the optional parameter "includeAllScopes":
67712// Indicates whether every visible scope for each scope type (zone,
67713// region, global) should be included in the response. For new resource
67714// types added after this field, the flag has no effect as new resource
67715// types will always include every visible scope for each scope type in
67716// response. For resource types which predate this field, if this flag
67717// is omitted or false, only scopes of the scope types where the
67718// resource type is expected to be found will be included.
67719func (c *GlobalOperationsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *GlobalOperationsAggregatedListCall {
67720	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
67721	return c
67722}
67723
67724// MaxResults sets the optional parameter "maxResults": The maximum
67725// number of results per page that should be returned. If the number of
67726// available results is larger than `maxResults`, Compute Engine returns
67727// a `nextPageToken` that can be used to get the next page of results in
67728// subsequent list requests. Acceptable values are `0` to `500`,
67729// inclusive. (Default: `500`)
67730func (c *GlobalOperationsAggregatedListCall) MaxResults(maxResults int64) *GlobalOperationsAggregatedListCall {
67731	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
67732	return c
67733}
67734
67735// OrderBy sets the optional parameter "orderBy": Sorts list results by
67736// a certain order. By default, results are returned in alphanumerical
67737// order based on the resource name.
67738//
67739// You can also sort results in descending order based on the creation
67740// timestamp using `orderBy="creationTimestamp desc". This sorts
67741// results based on the `creationTimestamp` field in reverse
67742// chronological order (newest result first). Use this to sort resources
67743// like operations so that the newest operation is returned
67744// first.
67745//
67746// Currently, only sorting by `name` or `creationTimestamp desc` is
67747// supported.
67748func (c *GlobalOperationsAggregatedListCall) OrderBy(orderBy string) *GlobalOperationsAggregatedListCall {
67749	c.urlParams_.Set("orderBy", orderBy)
67750	return c
67751}
67752
67753// PageToken sets the optional parameter "pageToken": Specifies a page
67754// token to use. Set `pageToken` to the `nextPageToken` returned by a
67755// previous list request to get the next page of results.
67756func (c *GlobalOperationsAggregatedListCall) PageToken(pageToken string) *GlobalOperationsAggregatedListCall {
67757	c.urlParams_.Set("pageToken", pageToken)
67758	return c
67759}
67760
67761// ReturnPartialSuccess sets the optional parameter
67762// "returnPartialSuccess": Opt-in for partial success behavior which
67763// provides partial results in case of failure. The default value is
67764// false.
67765func (c *GlobalOperationsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalOperationsAggregatedListCall {
67766	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
67767	return c
67768}
67769
67770// Fields allows partial responses to be retrieved. See
67771// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67772// for more information.
67773func (c *GlobalOperationsAggregatedListCall) Fields(s ...googleapi.Field) *GlobalOperationsAggregatedListCall {
67774	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67775	return c
67776}
67777
67778// IfNoneMatch sets the optional parameter which makes the operation
67779// fail if the object's ETag matches the given value. This is useful for
67780// getting updates only after the object has changed since the last
67781// request. Use googleapi.IsNotModified to check whether the response
67782// error from Do is the result of In-None-Match.
67783func (c *GlobalOperationsAggregatedListCall) IfNoneMatch(entityTag string) *GlobalOperationsAggregatedListCall {
67784	c.ifNoneMatch_ = entityTag
67785	return c
67786}
67787
67788// Context sets the context to be used in this call's Do method. Any
67789// pending HTTP request will be aborted if the provided context is
67790// canceled.
67791func (c *GlobalOperationsAggregatedListCall) Context(ctx context.Context) *GlobalOperationsAggregatedListCall {
67792	c.ctx_ = ctx
67793	return c
67794}
67795
67796// Header returns an http.Header that can be modified by the caller to
67797// add HTTP headers to the request.
67798func (c *GlobalOperationsAggregatedListCall) Header() http.Header {
67799	if c.header_ == nil {
67800		c.header_ = make(http.Header)
67801	}
67802	return c.header_
67803}
67804
67805func (c *GlobalOperationsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
67806	reqHeaders := make(http.Header)
67807	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
67808	for k, v := range c.header_ {
67809		reqHeaders[k] = v
67810	}
67811	reqHeaders.Set("User-Agent", c.s.userAgent())
67812	if c.ifNoneMatch_ != "" {
67813		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
67814	}
67815	var body io.Reader = nil
67816	c.urlParams_.Set("alt", alt)
67817	c.urlParams_.Set("prettyPrint", "false")
67818	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/operations")
67819	urls += "?" + c.urlParams_.Encode()
67820	req, err := http.NewRequest("GET", urls, body)
67821	if err != nil {
67822		return nil, err
67823	}
67824	req.Header = reqHeaders
67825	googleapi.Expand(req.URL, map[string]string{
67826		"project": c.project,
67827	})
67828	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67829}
67830
67831// Do executes the "compute.globalOperations.aggregatedList" call.
67832// Exactly one of *OperationAggregatedList or error will be non-nil. Any
67833// non-2xx status code is an error. Response headers are in either
67834// *OperationAggregatedList.ServerResponse.Header or (if a response was
67835// returned at all) in error.(*googleapi.Error).Header. Use
67836// googleapi.IsNotModified to check whether the returned error was
67837// because http.StatusNotModified was returned.
67838func (c *GlobalOperationsAggregatedListCall) Do(opts ...googleapi.CallOption) (*OperationAggregatedList, error) {
67839	gensupport.SetOptions(c.urlParams_, opts...)
67840	res, err := c.doRequest("json")
67841	if res != nil && res.StatusCode == http.StatusNotModified {
67842		if res.Body != nil {
67843			res.Body.Close()
67844		}
67845		return nil, &googleapi.Error{
67846			Code:   res.StatusCode,
67847			Header: res.Header,
67848		}
67849	}
67850	if err != nil {
67851		return nil, err
67852	}
67853	defer googleapi.CloseBody(res)
67854	if err := googleapi.CheckResponse(res); err != nil {
67855		return nil, err
67856	}
67857	ret := &OperationAggregatedList{
67858		ServerResponse: googleapi.ServerResponse{
67859			Header:         res.Header,
67860			HTTPStatusCode: res.StatusCode,
67861		},
67862	}
67863	target := &ret
67864	if err := gensupport.DecodeResponse(target, res); err != nil {
67865		return nil, err
67866	}
67867	return ret, nil
67868	// {
67869	//   "description": "Retrieves an aggregated list of all operations.",
67870	//   "httpMethod": "GET",
67871	//   "id": "compute.globalOperations.aggregatedList",
67872	//   "parameterOrder": [
67873	//     "project"
67874	//   ],
67875	//   "parameters": {
67876	//     "filter": {
67877	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
67878	//       "location": "query",
67879	//       "type": "string"
67880	//     },
67881	//     "includeAllScopes": {
67882	//       "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.",
67883	//       "location": "query",
67884	//       "type": "boolean"
67885	//     },
67886	//     "maxResults": {
67887	//       "default": "500",
67888	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
67889	//       "format": "uint32",
67890	//       "location": "query",
67891	//       "minimum": "0",
67892	//       "type": "integer"
67893	//     },
67894	//     "orderBy": {
67895	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
67896	//       "location": "query",
67897	//       "type": "string"
67898	//     },
67899	//     "pageToken": {
67900	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
67901	//       "location": "query",
67902	//       "type": "string"
67903	//     },
67904	//     "project": {
67905	//       "description": "Project ID for this request.",
67906	//       "location": "path",
67907	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67908	//       "required": true,
67909	//       "type": "string"
67910	//     },
67911	//     "returnPartialSuccess": {
67912	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
67913	//       "location": "query",
67914	//       "type": "boolean"
67915	//     }
67916	//   },
67917	//   "path": "projects/{project}/aggregated/operations",
67918	//   "response": {
67919	//     "$ref": "OperationAggregatedList"
67920	//   },
67921	//   "scopes": [
67922	//     "https://www.googleapis.com/auth/cloud-platform",
67923	//     "https://www.googleapis.com/auth/compute",
67924	//     "https://www.googleapis.com/auth/compute.readonly"
67925	//   ]
67926	// }
67927
67928}
67929
67930// Pages invokes f for each page of results.
67931// A non-nil error returned from f will halt the iteration.
67932// The provided context supersedes any context provided to the Context method.
67933func (c *GlobalOperationsAggregatedListCall) Pages(ctx context.Context, f func(*OperationAggregatedList) error) error {
67934	c.ctx_ = ctx
67935	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
67936	for {
67937		x, err := c.Do()
67938		if err != nil {
67939			return err
67940		}
67941		if err := f(x); err != nil {
67942			return err
67943		}
67944		if x.NextPageToken == "" {
67945			return nil
67946		}
67947		c.PageToken(x.NextPageToken)
67948	}
67949}
67950
67951// method id "compute.globalOperations.delete":
67952
67953type GlobalOperationsDeleteCall struct {
67954	s          *Service
67955	project    string
67956	operation  string
67957	urlParams_ gensupport.URLParams
67958	ctx_       context.Context
67959	header_    http.Header
67960}
67961
67962// Delete: Deletes the specified Operations resource.
67963//
67964// - operation: Name of the Operations resource to delete.
67965// - project: Project ID for this request.
67966// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/delete
67967func (r *GlobalOperationsService) Delete(project string, operation string) *GlobalOperationsDeleteCall {
67968	c := &GlobalOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67969	c.project = project
67970	c.operation = operation
67971	return c
67972}
67973
67974// Fields allows partial responses to be retrieved. See
67975// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67976// for more information.
67977func (c *GlobalOperationsDeleteCall) Fields(s ...googleapi.Field) *GlobalOperationsDeleteCall {
67978	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67979	return c
67980}
67981
67982// Context sets the context to be used in this call's Do method. Any
67983// pending HTTP request will be aborted if the provided context is
67984// canceled.
67985func (c *GlobalOperationsDeleteCall) Context(ctx context.Context) *GlobalOperationsDeleteCall {
67986	c.ctx_ = ctx
67987	return c
67988}
67989
67990// Header returns an http.Header that can be modified by the caller to
67991// add HTTP headers to the request.
67992func (c *GlobalOperationsDeleteCall) Header() http.Header {
67993	if c.header_ == nil {
67994		c.header_ = make(http.Header)
67995	}
67996	return c.header_
67997}
67998
67999func (c *GlobalOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
68000	reqHeaders := make(http.Header)
68001	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
68002	for k, v := range c.header_ {
68003		reqHeaders[k] = v
68004	}
68005	reqHeaders.Set("User-Agent", c.s.userAgent())
68006	var body io.Reader = nil
68007	c.urlParams_.Set("alt", alt)
68008	c.urlParams_.Set("prettyPrint", "false")
68009	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/operations/{operation}")
68010	urls += "?" + c.urlParams_.Encode()
68011	req, err := http.NewRequest("DELETE", urls, body)
68012	if err != nil {
68013		return nil, err
68014	}
68015	req.Header = reqHeaders
68016	googleapi.Expand(req.URL, map[string]string{
68017		"project":   c.project,
68018		"operation": c.operation,
68019	})
68020	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68021}
68022
68023// Do executes the "compute.globalOperations.delete" call.
68024func (c *GlobalOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
68025	gensupport.SetOptions(c.urlParams_, opts...)
68026	res, err := c.doRequest("json")
68027	if err != nil {
68028		return err
68029	}
68030	defer googleapi.CloseBody(res)
68031	if err := googleapi.CheckResponse(res); err != nil {
68032		return err
68033	}
68034	return nil
68035	// {
68036	//   "description": "Deletes the specified Operations resource.",
68037	//   "httpMethod": "DELETE",
68038	//   "id": "compute.globalOperations.delete",
68039	//   "parameterOrder": [
68040	//     "project",
68041	//     "operation"
68042	//   ],
68043	//   "parameters": {
68044	//     "operation": {
68045	//       "description": "Name of the Operations resource to delete.",
68046	//       "location": "path",
68047	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
68048	//       "required": true,
68049	//       "type": "string"
68050	//     },
68051	//     "project": {
68052	//       "description": "Project ID for this request.",
68053	//       "location": "path",
68054	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68055	//       "required": true,
68056	//       "type": "string"
68057	//     }
68058	//   },
68059	//   "path": "projects/{project}/global/operations/{operation}",
68060	//   "scopes": [
68061	//     "https://www.googleapis.com/auth/cloud-platform",
68062	//     "https://www.googleapis.com/auth/compute"
68063	//   ]
68064	// }
68065
68066}
68067
68068// method id "compute.globalOperations.get":
68069
68070type GlobalOperationsGetCall struct {
68071	s            *Service
68072	project      string
68073	operation    string
68074	urlParams_   gensupport.URLParams
68075	ifNoneMatch_ string
68076	ctx_         context.Context
68077	header_      http.Header
68078}
68079
68080// Get: Retrieves the specified Operations resource. Gets a list of
68081// operations by making a `list()` request.
68082//
68083// - operation: Name of the Operations resource to return.
68084// - project: Project ID for this request.
68085// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/get
68086func (r *GlobalOperationsService) Get(project string, operation string) *GlobalOperationsGetCall {
68087	c := &GlobalOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68088	c.project = project
68089	c.operation = operation
68090	return c
68091}
68092
68093// Fields allows partial responses to be retrieved. See
68094// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68095// for more information.
68096func (c *GlobalOperationsGetCall) Fields(s ...googleapi.Field) *GlobalOperationsGetCall {
68097	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68098	return c
68099}
68100
68101// IfNoneMatch sets the optional parameter which makes the operation
68102// fail if the object's ETag matches the given value. This is useful for
68103// getting updates only after the object has changed since the last
68104// request. Use googleapi.IsNotModified to check whether the response
68105// error from Do is the result of In-None-Match.
68106func (c *GlobalOperationsGetCall) IfNoneMatch(entityTag string) *GlobalOperationsGetCall {
68107	c.ifNoneMatch_ = entityTag
68108	return c
68109}
68110
68111// Context sets the context to be used in this call's Do method. Any
68112// pending HTTP request will be aborted if the provided context is
68113// canceled.
68114func (c *GlobalOperationsGetCall) Context(ctx context.Context) *GlobalOperationsGetCall {
68115	c.ctx_ = ctx
68116	return c
68117}
68118
68119// Header returns an http.Header that can be modified by the caller to
68120// add HTTP headers to the request.
68121func (c *GlobalOperationsGetCall) Header() http.Header {
68122	if c.header_ == nil {
68123		c.header_ = make(http.Header)
68124	}
68125	return c.header_
68126}
68127
68128func (c *GlobalOperationsGetCall) doRequest(alt string) (*http.Response, error) {
68129	reqHeaders := make(http.Header)
68130	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
68131	for k, v := range c.header_ {
68132		reqHeaders[k] = v
68133	}
68134	reqHeaders.Set("User-Agent", c.s.userAgent())
68135	if c.ifNoneMatch_ != "" {
68136		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
68137	}
68138	var body io.Reader = nil
68139	c.urlParams_.Set("alt", alt)
68140	c.urlParams_.Set("prettyPrint", "false")
68141	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/operations/{operation}")
68142	urls += "?" + c.urlParams_.Encode()
68143	req, err := http.NewRequest("GET", urls, body)
68144	if err != nil {
68145		return nil, err
68146	}
68147	req.Header = reqHeaders
68148	googleapi.Expand(req.URL, map[string]string{
68149		"project":   c.project,
68150		"operation": c.operation,
68151	})
68152	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68153}
68154
68155// Do executes the "compute.globalOperations.get" call.
68156// Exactly one of *Operation or error will be non-nil. Any non-2xx
68157// status code is an error. Response headers are in either
68158// *Operation.ServerResponse.Header or (if a response was returned at
68159// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68160// to check whether the returned error was because
68161// http.StatusNotModified was returned.
68162func (c *GlobalOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68163	gensupport.SetOptions(c.urlParams_, opts...)
68164	res, err := c.doRequest("json")
68165	if res != nil && res.StatusCode == http.StatusNotModified {
68166		if res.Body != nil {
68167			res.Body.Close()
68168		}
68169		return nil, &googleapi.Error{
68170			Code:   res.StatusCode,
68171			Header: res.Header,
68172		}
68173	}
68174	if err != nil {
68175		return nil, err
68176	}
68177	defer googleapi.CloseBody(res)
68178	if err := googleapi.CheckResponse(res); err != nil {
68179		return nil, err
68180	}
68181	ret := &Operation{
68182		ServerResponse: googleapi.ServerResponse{
68183			Header:         res.Header,
68184			HTTPStatusCode: res.StatusCode,
68185		},
68186	}
68187	target := &ret
68188	if err := gensupport.DecodeResponse(target, res); err != nil {
68189		return nil, err
68190	}
68191	return ret, nil
68192	// {
68193	//   "description": "Retrieves the specified Operations resource. Gets a list of operations by making a `list()` request.",
68194	//   "httpMethod": "GET",
68195	//   "id": "compute.globalOperations.get",
68196	//   "parameterOrder": [
68197	//     "project",
68198	//     "operation"
68199	//   ],
68200	//   "parameters": {
68201	//     "operation": {
68202	//       "description": "Name of the Operations resource to return.",
68203	//       "location": "path",
68204	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
68205	//       "required": true,
68206	//       "type": "string"
68207	//     },
68208	//     "project": {
68209	//       "description": "Project ID for this request.",
68210	//       "location": "path",
68211	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68212	//       "required": true,
68213	//       "type": "string"
68214	//     }
68215	//   },
68216	//   "path": "projects/{project}/global/operations/{operation}",
68217	//   "response": {
68218	//     "$ref": "Operation"
68219	//   },
68220	//   "scopes": [
68221	//     "https://www.googleapis.com/auth/cloud-platform",
68222	//     "https://www.googleapis.com/auth/compute",
68223	//     "https://www.googleapis.com/auth/compute.readonly"
68224	//   ]
68225	// }
68226
68227}
68228
68229// method id "compute.globalOperations.list":
68230
68231type GlobalOperationsListCall struct {
68232	s            *Service
68233	project      string
68234	urlParams_   gensupport.URLParams
68235	ifNoneMatch_ string
68236	ctx_         context.Context
68237	header_      http.Header
68238}
68239
68240// List: Retrieves a list of Operation resources contained within the
68241// specified project.
68242//
68243// - project: Project ID for this request.
68244// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/list
68245func (r *GlobalOperationsService) List(project string) *GlobalOperationsListCall {
68246	c := &GlobalOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68247	c.project = project
68248	return c
68249}
68250
68251// Filter sets the optional parameter "filter": A filter expression that
68252// filters resources listed in the response. The expression must specify
68253// the field name, a comparison operator, and the value that you want to
68254// use for filtering. The value must be a string, a number, or a
68255// boolean. The comparison operator must be either `=`, `!=`, `>`, or
68256// `<`.
68257//
68258// For example, if you are filtering Compute Engine instances, you can
68259// exclude instances named `example-instance` by specifying `name !=
68260// example-instance`.
68261//
68262// You can also filter nested fields. For example, you could specify
68263// `scheduling.automaticRestart = false` to include instances only if
68264// they are not scheduled for automatic restarts. You can use filtering
68265// on nested fields to filter based on resource labels.
68266//
68267// To filter on multiple expressions, provide each separate expression
68268// within parentheses. For example: ``` (scheduling.automaticRestart =
68269// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
68270// is an `AND` expression. However, you can include `AND` and `OR`
68271// expressions explicitly. For example: ``` (cpuPlatform = "Intel
68272// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
68273// (scheduling.automaticRestart = true) ```
68274func (c *GlobalOperationsListCall) Filter(filter string) *GlobalOperationsListCall {
68275	c.urlParams_.Set("filter", filter)
68276	return c
68277}
68278
68279// MaxResults sets the optional parameter "maxResults": The maximum
68280// number of results per page that should be returned. If the number of
68281// available results is larger than `maxResults`, Compute Engine returns
68282// a `nextPageToken` that can be used to get the next page of results in
68283// subsequent list requests. Acceptable values are `0` to `500`,
68284// inclusive. (Default: `500`)
68285func (c *GlobalOperationsListCall) MaxResults(maxResults int64) *GlobalOperationsListCall {
68286	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
68287	return c
68288}
68289
68290// OrderBy sets the optional parameter "orderBy": Sorts list results by
68291// a certain order. By default, results are returned in alphanumerical
68292// order based on the resource name.
68293//
68294// You can also sort results in descending order based on the creation
68295// timestamp using `orderBy="creationTimestamp desc". This sorts
68296// results based on the `creationTimestamp` field in reverse
68297// chronological order (newest result first). Use this to sort resources
68298// like operations so that the newest operation is returned
68299// first.
68300//
68301// Currently, only sorting by `name` or `creationTimestamp desc` is
68302// supported.
68303func (c *GlobalOperationsListCall) OrderBy(orderBy string) *GlobalOperationsListCall {
68304	c.urlParams_.Set("orderBy", orderBy)
68305	return c
68306}
68307
68308// PageToken sets the optional parameter "pageToken": Specifies a page
68309// token to use. Set `pageToken` to the `nextPageToken` returned by a
68310// previous list request to get the next page of results.
68311func (c *GlobalOperationsListCall) PageToken(pageToken string) *GlobalOperationsListCall {
68312	c.urlParams_.Set("pageToken", pageToken)
68313	return c
68314}
68315
68316// ReturnPartialSuccess sets the optional parameter
68317// "returnPartialSuccess": Opt-in for partial success behavior which
68318// provides partial results in case of failure. The default value is
68319// false.
68320func (c *GlobalOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalOperationsListCall {
68321	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
68322	return c
68323}
68324
68325// Fields allows partial responses to be retrieved. See
68326// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68327// for more information.
68328func (c *GlobalOperationsListCall) Fields(s ...googleapi.Field) *GlobalOperationsListCall {
68329	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68330	return c
68331}
68332
68333// IfNoneMatch sets the optional parameter which makes the operation
68334// fail if the object's ETag matches the given value. This is useful for
68335// getting updates only after the object has changed since the last
68336// request. Use googleapi.IsNotModified to check whether the response
68337// error from Do is the result of In-None-Match.
68338func (c *GlobalOperationsListCall) IfNoneMatch(entityTag string) *GlobalOperationsListCall {
68339	c.ifNoneMatch_ = entityTag
68340	return c
68341}
68342
68343// Context sets the context to be used in this call's Do method. Any
68344// pending HTTP request will be aborted if the provided context is
68345// canceled.
68346func (c *GlobalOperationsListCall) Context(ctx context.Context) *GlobalOperationsListCall {
68347	c.ctx_ = ctx
68348	return c
68349}
68350
68351// Header returns an http.Header that can be modified by the caller to
68352// add HTTP headers to the request.
68353func (c *GlobalOperationsListCall) Header() http.Header {
68354	if c.header_ == nil {
68355		c.header_ = make(http.Header)
68356	}
68357	return c.header_
68358}
68359
68360func (c *GlobalOperationsListCall) doRequest(alt string) (*http.Response, error) {
68361	reqHeaders := make(http.Header)
68362	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
68363	for k, v := range c.header_ {
68364		reqHeaders[k] = v
68365	}
68366	reqHeaders.Set("User-Agent", c.s.userAgent())
68367	if c.ifNoneMatch_ != "" {
68368		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
68369	}
68370	var body io.Reader = nil
68371	c.urlParams_.Set("alt", alt)
68372	c.urlParams_.Set("prettyPrint", "false")
68373	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/operations")
68374	urls += "?" + c.urlParams_.Encode()
68375	req, err := http.NewRequest("GET", urls, body)
68376	if err != nil {
68377		return nil, err
68378	}
68379	req.Header = reqHeaders
68380	googleapi.Expand(req.URL, map[string]string{
68381		"project": c.project,
68382	})
68383	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68384}
68385
68386// Do executes the "compute.globalOperations.list" call.
68387// Exactly one of *OperationList or error will be non-nil. Any non-2xx
68388// status code is an error. Response headers are in either
68389// *OperationList.ServerResponse.Header or (if a response was returned
68390// at all) in error.(*googleapi.Error).Header. Use
68391// googleapi.IsNotModified to check whether the returned error was
68392// because http.StatusNotModified was returned.
68393func (c *GlobalOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
68394	gensupport.SetOptions(c.urlParams_, opts...)
68395	res, err := c.doRequest("json")
68396	if res != nil && res.StatusCode == http.StatusNotModified {
68397		if res.Body != nil {
68398			res.Body.Close()
68399		}
68400		return nil, &googleapi.Error{
68401			Code:   res.StatusCode,
68402			Header: res.Header,
68403		}
68404	}
68405	if err != nil {
68406		return nil, err
68407	}
68408	defer googleapi.CloseBody(res)
68409	if err := googleapi.CheckResponse(res); err != nil {
68410		return nil, err
68411	}
68412	ret := &OperationList{
68413		ServerResponse: googleapi.ServerResponse{
68414			Header:         res.Header,
68415			HTTPStatusCode: res.StatusCode,
68416		},
68417	}
68418	target := &ret
68419	if err := gensupport.DecodeResponse(target, res); err != nil {
68420		return nil, err
68421	}
68422	return ret, nil
68423	// {
68424	//   "description": "Retrieves a list of Operation resources contained within the specified project.",
68425	//   "httpMethod": "GET",
68426	//   "id": "compute.globalOperations.list",
68427	//   "parameterOrder": [
68428	//     "project"
68429	//   ],
68430	//   "parameters": {
68431	//     "filter": {
68432	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
68433	//       "location": "query",
68434	//       "type": "string"
68435	//     },
68436	//     "maxResults": {
68437	//       "default": "500",
68438	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
68439	//       "format": "uint32",
68440	//       "location": "query",
68441	//       "minimum": "0",
68442	//       "type": "integer"
68443	//     },
68444	//     "orderBy": {
68445	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
68446	//       "location": "query",
68447	//       "type": "string"
68448	//     },
68449	//     "pageToken": {
68450	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
68451	//       "location": "query",
68452	//       "type": "string"
68453	//     },
68454	//     "project": {
68455	//       "description": "Project ID for this request.",
68456	//       "location": "path",
68457	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68458	//       "required": true,
68459	//       "type": "string"
68460	//     },
68461	//     "returnPartialSuccess": {
68462	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
68463	//       "location": "query",
68464	//       "type": "boolean"
68465	//     }
68466	//   },
68467	//   "path": "projects/{project}/global/operations",
68468	//   "response": {
68469	//     "$ref": "OperationList"
68470	//   },
68471	//   "scopes": [
68472	//     "https://www.googleapis.com/auth/cloud-platform",
68473	//     "https://www.googleapis.com/auth/compute",
68474	//     "https://www.googleapis.com/auth/compute.readonly"
68475	//   ]
68476	// }
68477
68478}
68479
68480// Pages invokes f for each page of results.
68481// A non-nil error returned from f will halt the iteration.
68482// The provided context supersedes any context provided to the Context method.
68483func (c *GlobalOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
68484	c.ctx_ = ctx
68485	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
68486	for {
68487		x, err := c.Do()
68488		if err != nil {
68489			return err
68490		}
68491		if err := f(x); err != nil {
68492			return err
68493		}
68494		if x.NextPageToken == "" {
68495			return nil
68496		}
68497		c.PageToken(x.NextPageToken)
68498	}
68499}
68500
68501// method id "compute.globalOperations.wait":
68502
68503type GlobalOperationsWaitCall struct {
68504	s          *Service
68505	project    string
68506	operation  string
68507	urlParams_ gensupport.URLParams
68508	ctx_       context.Context
68509	header_    http.Header
68510}
68511
68512// Wait: Waits for the specified Operation resource to return as `DONE`
68513// or for the request to approach the 2 minute deadline, and retrieves
68514// the specified Operation resource. This method differs from the `GET`
68515// method in that it waits for no more than the default deadline (2
68516// minutes) and then returns the current state of the operation, which
68517// might be `DONE` or still in progress.
68518//
68519// This method is called on a best-effort basis. Specifically:
68520// - In uncommon cases, when the server is overloaded, the request might
68521// return before the default deadline is reached, or might return after
68522// zero seconds.
68523// - If the default deadline is reached, there is no guarantee that the
68524// operation is actually done when the method returns. Be prepared to
68525// retry if the operation is not `DONE`.
68526//
68527// - operation: Name of the Operations resource to return.
68528// - project: Project ID for this request.
68529func (r *GlobalOperationsService) Wait(project string, operation string) *GlobalOperationsWaitCall {
68530	c := &GlobalOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68531	c.project = project
68532	c.operation = operation
68533	return c
68534}
68535
68536// Fields allows partial responses to be retrieved. See
68537// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68538// for more information.
68539func (c *GlobalOperationsWaitCall) Fields(s ...googleapi.Field) *GlobalOperationsWaitCall {
68540	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68541	return c
68542}
68543
68544// Context sets the context to be used in this call's Do method. Any
68545// pending HTTP request will be aborted if the provided context is
68546// canceled.
68547func (c *GlobalOperationsWaitCall) Context(ctx context.Context) *GlobalOperationsWaitCall {
68548	c.ctx_ = ctx
68549	return c
68550}
68551
68552// Header returns an http.Header that can be modified by the caller to
68553// add HTTP headers to the request.
68554func (c *GlobalOperationsWaitCall) Header() http.Header {
68555	if c.header_ == nil {
68556		c.header_ = make(http.Header)
68557	}
68558	return c.header_
68559}
68560
68561func (c *GlobalOperationsWaitCall) doRequest(alt string) (*http.Response, error) {
68562	reqHeaders := make(http.Header)
68563	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
68564	for k, v := range c.header_ {
68565		reqHeaders[k] = v
68566	}
68567	reqHeaders.Set("User-Agent", c.s.userAgent())
68568	var body io.Reader = nil
68569	c.urlParams_.Set("alt", alt)
68570	c.urlParams_.Set("prettyPrint", "false")
68571	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/operations/{operation}/wait")
68572	urls += "?" + c.urlParams_.Encode()
68573	req, err := http.NewRequest("POST", urls, body)
68574	if err != nil {
68575		return nil, err
68576	}
68577	req.Header = reqHeaders
68578	googleapi.Expand(req.URL, map[string]string{
68579		"project":   c.project,
68580		"operation": c.operation,
68581	})
68582	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68583}
68584
68585// Do executes the "compute.globalOperations.wait" call.
68586// Exactly one of *Operation or error will be non-nil. Any non-2xx
68587// status code is an error. Response headers are in either
68588// *Operation.ServerResponse.Header or (if a response was returned at
68589// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68590// to check whether the returned error was because
68591// http.StatusNotModified was returned.
68592func (c *GlobalOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68593	gensupport.SetOptions(c.urlParams_, opts...)
68594	res, err := c.doRequest("json")
68595	if res != nil && res.StatusCode == http.StatusNotModified {
68596		if res.Body != nil {
68597			res.Body.Close()
68598		}
68599		return nil, &googleapi.Error{
68600			Code:   res.StatusCode,
68601			Header: res.Header,
68602		}
68603	}
68604	if err != nil {
68605		return nil, err
68606	}
68607	defer googleapi.CloseBody(res)
68608	if err := googleapi.CheckResponse(res); err != nil {
68609		return nil, err
68610	}
68611	ret := &Operation{
68612		ServerResponse: googleapi.ServerResponse{
68613			Header:         res.Header,
68614			HTTPStatusCode: res.StatusCode,
68615		},
68616	}
68617	target := &ret
68618	if err := gensupport.DecodeResponse(target, res); err != nil {
68619		return nil, err
68620	}
68621	return ret, nil
68622	// {
68623	//   "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`.",
68624	//   "httpMethod": "POST",
68625	//   "id": "compute.globalOperations.wait",
68626	//   "parameterOrder": [
68627	//     "project",
68628	//     "operation"
68629	//   ],
68630	//   "parameters": {
68631	//     "operation": {
68632	//       "description": "Name of the Operations resource to return.",
68633	//       "location": "path",
68634	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
68635	//       "required": true,
68636	//       "type": "string"
68637	//     },
68638	//     "project": {
68639	//       "description": "Project ID for this request.",
68640	//       "location": "path",
68641	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68642	//       "required": true,
68643	//       "type": "string"
68644	//     }
68645	//   },
68646	//   "path": "projects/{project}/global/operations/{operation}/wait",
68647	//   "response": {
68648	//     "$ref": "Operation"
68649	//   },
68650	//   "scopes": [
68651	//     "https://www.googleapis.com/auth/cloud-platform",
68652	//     "https://www.googleapis.com/auth/compute",
68653	//     "https://www.googleapis.com/auth/compute.readonly"
68654	//   ]
68655	// }
68656
68657}
68658
68659// method id "compute.globalOrganizationOperations.delete":
68660
68661type GlobalOrganizationOperationsDeleteCall struct {
68662	s          *Service
68663	operation  string
68664	urlParams_ gensupport.URLParams
68665	ctx_       context.Context
68666	header_    http.Header
68667}
68668
68669// Delete: Deletes the specified Operations resource.
68670//
68671// - operation: Name of the Operations resource to delete.
68672func (r *GlobalOrganizationOperationsService) Delete(operation string) *GlobalOrganizationOperationsDeleteCall {
68673	c := &GlobalOrganizationOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68674	c.operation = operation
68675	return c
68676}
68677
68678// ParentId sets the optional parameter "parentId": Parent ID for this
68679// request.
68680func (c *GlobalOrganizationOperationsDeleteCall) ParentId(parentId string) *GlobalOrganizationOperationsDeleteCall {
68681	c.urlParams_.Set("parentId", parentId)
68682	return c
68683}
68684
68685// Fields allows partial responses to be retrieved. See
68686// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68687// for more information.
68688func (c *GlobalOrganizationOperationsDeleteCall) Fields(s ...googleapi.Field) *GlobalOrganizationOperationsDeleteCall {
68689	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68690	return c
68691}
68692
68693// Context sets the context to be used in this call's Do method. Any
68694// pending HTTP request will be aborted if the provided context is
68695// canceled.
68696func (c *GlobalOrganizationOperationsDeleteCall) Context(ctx context.Context) *GlobalOrganizationOperationsDeleteCall {
68697	c.ctx_ = ctx
68698	return c
68699}
68700
68701// Header returns an http.Header that can be modified by the caller to
68702// add HTTP headers to the request.
68703func (c *GlobalOrganizationOperationsDeleteCall) Header() http.Header {
68704	if c.header_ == nil {
68705		c.header_ = make(http.Header)
68706	}
68707	return c.header_
68708}
68709
68710func (c *GlobalOrganizationOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
68711	reqHeaders := make(http.Header)
68712	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
68713	for k, v := range c.header_ {
68714		reqHeaders[k] = v
68715	}
68716	reqHeaders.Set("User-Agent", c.s.userAgent())
68717	var body io.Reader = nil
68718	c.urlParams_.Set("alt", alt)
68719	c.urlParams_.Set("prettyPrint", "false")
68720	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/operations/{operation}")
68721	urls += "?" + c.urlParams_.Encode()
68722	req, err := http.NewRequest("DELETE", urls, body)
68723	if err != nil {
68724		return nil, err
68725	}
68726	req.Header = reqHeaders
68727	googleapi.Expand(req.URL, map[string]string{
68728		"operation": c.operation,
68729	})
68730	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68731}
68732
68733// Do executes the "compute.globalOrganizationOperations.delete" call.
68734func (c *GlobalOrganizationOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
68735	gensupport.SetOptions(c.urlParams_, opts...)
68736	res, err := c.doRequest("json")
68737	if err != nil {
68738		return err
68739	}
68740	defer googleapi.CloseBody(res)
68741	if err := googleapi.CheckResponse(res); err != nil {
68742		return err
68743	}
68744	return nil
68745	// {
68746	//   "description": "Deletes the specified Operations resource.",
68747	//   "httpMethod": "DELETE",
68748	//   "id": "compute.globalOrganizationOperations.delete",
68749	//   "parameterOrder": [
68750	//     "operation"
68751	//   ],
68752	//   "parameters": {
68753	//     "operation": {
68754	//       "description": "Name of the Operations resource to delete.",
68755	//       "location": "path",
68756	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
68757	//       "required": true,
68758	//       "type": "string"
68759	//     },
68760	//     "parentId": {
68761	//       "description": "Parent ID for this request.",
68762	//       "location": "query",
68763	//       "type": "string"
68764	//     }
68765	//   },
68766	//   "path": "locations/global/operations/{operation}",
68767	//   "scopes": [
68768	//     "https://www.googleapis.com/auth/cloud-platform",
68769	//     "https://www.googleapis.com/auth/compute"
68770	//   ]
68771	// }
68772
68773}
68774
68775// method id "compute.globalOrganizationOperations.get":
68776
68777type GlobalOrganizationOperationsGetCall struct {
68778	s            *Service
68779	operation    string
68780	urlParams_   gensupport.URLParams
68781	ifNoneMatch_ string
68782	ctx_         context.Context
68783	header_      http.Header
68784}
68785
68786// Get: Retrieves the specified Operations resource. Gets a list of
68787// operations by making a `list()` request.
68788//
68789// - operation: Name of the Operations resource to return.
68790func (r *GlobalOrganizationOperationsService) Get(operation string) *GlobalOrganizationOperationsGetCall {
68791	c := &GlobalOrganizationOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68792	c.operation = operation
68793	return c
68794}
68795
68796// ParentId sets the optional parameter "parentId": Parent ID for this
68797// request.
68798func (c *GlobalOrganizationOperationsGetCall) ParentId(parentId string) *GlobalOrganizationOperationsGetCall {
68799	c.urlParams_.Set("parentId", parentId)
68800	return c
68801}
68802
68803// Fields allows partial responses to be retrieved. See
68804// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68805// for more information.
68806func (c *GlobalOrganizationOperationsGetCall) Fields(s ...googleapi.Field) *GlobalOrganizationOperationsGetCall {
68807	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68808	return c
68809}
68810
68811// IfNoneMatch sets the optional parameter which makes the operation
68812// fail if the object's ETag matches the given value. This is useful for
68813// getting updates only after the object has changed since the last
68814// request. Use googleapi.IsNotModified to check whether the response
68815// error from Do is the result of In-None-Match.
68816func (c *GlobalOrganizationOperationsGetCall) IfNoneMatch(entityTag string) *GlobalOrganizationOperationsGetCall {
68817	c.ifNoneMatch_ = entityTag
68818	return c
68819}
68820
68821// Context sets the context to be used in this call's Do method. Any
68822// pending HTTP request will be aborted if the provided context is
68823// canceled.
68824func (c *GlobalOrganizationOperationsGetCall) Context(ctx context.Context) *GlobalOrganizationOperationsGetCall {
68825	c.ctx_ = ctx
68826	return c
68827}
68828
68829// Header returns an http.Header that can be modified by the caller to
68830// add HTTP headers to the request.
68831func (c *GlobalOrganizationOperationsGetCall) Header() http.Header {
68832	if c.header_ == nil {
68833		c.header_ = make(http.Header)
68834	}
68835	return c.header_
68836}
68837
68838func (c *GlobalOrganizationOperationsGetCall) doRequest(alt string) (*http.Response, error) {
68839	reqHeaders := make(http.Header)
68840	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
68841	for k, v := range c.header_ {
68842		reqHeaders[k] = v
68843	}
68844	reqHeaders.Set("User-Agent", c.s.userAgent())
68845	if c.ifNoneMatch_ != "" {
68846		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
68847	}
68848	var body io.Reader = nil
68849	c.urlParams_.Set("alt", alt)
68850	c.urlParams_.Set("prettyPrint", "false")
68851	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/operations/{operation}")
68852	urls += "?" + c.urlParams_.Encode()
68853	req, err := http.NewRequest("GET", urls, body)
68854	if err != nil {
68855		return nil, err
68856	}
68857	req.Header = reqHeaders
68858	googleapi.Expand(req.URL, map[string]string{
68859		"operation": c.operation,
68860	})
68861	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68862}
68863
68864// Do executes the "compute.globalOrganizationOperations.get" call.
68865// Exactly one of *Operation or error will be non-nil. Any non-2xx
68866// status code is an error. Response headers are in either
68867// *Operation.ServerResponse.Header or (if a response was returned at
68868// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68869// to check whether the returned error was because
68870// http.StatusNotModified was returned.
68871func (c *GlobalOrganizationOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68872	gensupport.SetOptions(c.urlParams_, opts...)
68873	res, err := c.doRequest("json")
68874	if res != nil && res.StatusCode == http.StatusNotModified {
68875		if res.Body != nil {
68876			res.Body.Close()
68877		}
68878		return nil, &googleapi.Error{
68879			Code:   res.StatusCode,
68880			Header: res.Header,
68881		}
68882	}
68883	if err != nil {
68884		return nil, err
68885	}
68886	defer googleapi.CloseBody(res)
68887	if err := googleapi.CheckResponse(res); err != nil {
68888		return nil, err
68889	}
68890	ret := &Operation{
68891		ServerResponse: googleapi.ServerResponse{
68892			Header:         res.Header,
68893			HTTPStatusCode: res.StatusCode,
68894		},
68895	}
68896	target := &ret
68897	if err := gensupport.DecodeResponse(target, res); err != nil {
68898		return nil, err
68899	}
68900	return ret, nil
68901	// {
68902	//   "description": "Retrieves the specified Operations resource. Gets a list of operations by making a `list()` request.",
68903	//   "httpMethod": "GET",
68904	//   "id": "compute.globalOrganizationOperations.get",
68905	//   "parameterOrder": [
68906	//     "operation"
68907	//   ],
68908	//   "parameters": {
68909	//     "operation": {
68910	//       "description": "Name of the Operations resource to return.",
68911	//       "location": "path",
68912	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
68913	//       "required": true,
68914	//       "type": "string"
68915	//     },
68916	//     "parentId": {
68917	//       "description": "Parent ID for this request.",
68918	//       "location": "query",
68919	//       "type": "string"
68920	//     }
68921	//   },
68922	//   "path": "locations/global/operations/{operation}",
68923	//   "response": {
68924	//     "$ref": "Operation"
68925	//   },
68926	//   "scopes": [
68927	//     "https://www.googleapis.com/auth/cloud-platform",
68928	//     "https://www.googleapis.com/auth/compute",
68929	//     "https://www.googleapis.com/auth/compute.readonly"
68930	//   ]
68931	// }
68932
68933}
68934
68935// method id "compute.globalOrganizationOperations.list":
68936
68937type GlobalOrganizationOperationsListCall struct {
68938	s            *Service
68939	urlParams_   gensupport.URLParams
68940	ifNoneMatch_ string
68941	ctx_         context.Context
68942	header_      http.Header
68943}
68944
68945// List: Retrieves a list of Operation resources contained within the
68946// specified organization.
68947func (r *GlobalOrganizationOperationsService) List() *GlobalOrganizationOperationsListCall {
68948	c := &GlobalOrganizationOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68949	return c
68950}
68951
68952// Filter sets the optional parameter "filter": A filter expression that
68953// filters resources listed in the response. The expression must specify
68954// the field name, a comparison operator, and the value that you want to
68955// use for filtering. The value must be a string, a number, or a
68956// boolean. The comparison operator must be either `=`, `!=`, `>`, or
68957// `<`.
68958//
68959// For example, if you are filtering Compute Engine instances, you can
68960// exclude instances named `example-instance` by specifying `name !=
68961// example-instance`.
68962//
68963// You can also filter nested fields. For example, you could specify
68964// `scheduling.automaticRestart = false` to include instances only if
68965// they are not scheduled for automatic restarts. You can use filtering
68966// on nested fields to filter based on resource labels.
68967//
68968// To filter on multiple expressions, provide each separate expression
68969// within parentheses. For example: ``` (scheduling.automaticRestart =
68970// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
68971// is an `AND` expression. However, you can include `AND` and `OR`
68972// expressions explicitly. For example: ``` (cpuPlatform = "Intel
68973// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
68974// (scheduling.automaticRestart = true) ```
68975func (c *GlobalOrganizationOperationsListCall) Filter(filter string) *GlobalOrganizationOperationsListCall {
68976	c.urlParams_.Set("filter", filter)
68977	return c
68978}
68979
68980// MaxResults sets the optional parameter "maxResults": The maximum
68981// number of results per page that should be returned. If the number of
68982// available results is larger than `maxResults`, Compute Engine returns
68983// a `nextPageToken` that can be used to get the next page of results in
68984// subsequent list requests. Acceptable values are `0` to `500`,
68985// inclusive. (Default: `500`)
68986func (c *GlobalOrganizationOperationsListCall) MaxResults(maxResults int64) *GlobalOrganizationOperationsListCall {
68987	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
68988	return c
68989}
68990
68991// OrderBy sets the optional parameter "orderBy": Sorts list results by
68992// a certain order. By default, results are returned in alphanumerical
68993// order based on the resource name.
68994//
68995// You can also sort results in descending order based on the creation
68996// timestamp using `orderBy="creationTimestamp desc". This sorts
68997// results based on the `creationTimestamp` field in reverse
68998// chronological order (newest result first). Use this to sort resources
68999// like operations so that the newest operation is returned
69000// first.
69001//
69002// Currently, only sorting by `name` or `creationTimestamp desc` is
69003// supported.
69004func (c *GlobalOrganizationOperationsListCall) OrderBy(orderBy string) *GlobalOrganizationOperationsListCall {
69005	c.urlParams_.Set("orderBy", orderBy)
69006	return c
69007}
69008
69009// PageToken sets the optional parameter "pageToken": Specifies a page
69010// token to use. Set `pageToken` to the `nextPageToken` returned by a
69011// previous list request to get the next page of results.
69012func (c *GlobalOrganizationOperationsListCall) PageToken(pageToken string) *GlobalOrganizationOperationsListCall {
69013	c.urlParams_.Set("pageToken", pageToken)
69014	return c
69015}
69016
69017// ParentId sets the optional parameter "parentId": Parent ID for this
69018// request.
69019func (c *GlobalOrganizationOperationsListCall) ParentId(parentId string) *GlobalOrganizationOperationsListCall {
69020	c.urlParams_.Set("parentId", parentId)
69021	return c
69022}
69023
69024// ReturnPartialSuccess sets the optional parameter
69025// "returnPartialSuccess": Opt-in for partial success behavior which
69026// provides partial results in case of failure. The default value is
69027// false.
69028func (c *GlobalOrganizationOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalOrganizationOperationsListCall {
69029	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
69030	return c
69031}
69032
69033// Fields allows partial responses to be retrieved. See
69034// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69035// for more information.
69036func (c *GlobalOrganizationOperationsListCall) Fields(s ...googleapi.Field) *GlobalOrganizationOperationsListCall {
69037	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69038	return c
69039}
69040
69041// IfNoneMatch sets the optional parameter which makes the operation
69042// fail if the object's ETag matches the given value. This is useful for
69043// getting updates only after the object has changed since the last
69044// request. Use googleapi.IsNotModified to check whether the response
69045// error from Do is the result of In-None-Match.
69046func (c *GlobalOrganizationOperationsListCall) IfNoneMatch(entityTag string) *GlobalOrganizationOperationsListCall {
69047	c.ifNoneMatch_ = entityTag
69048	return c
69049}
69050
69051// Context sets the context to be used in this call's Do method. Any
69052// pending HTTP request will be aborted if the provided context is
69053// canceled.
69054func (c *GlobalOrganizationOperationsListCall) Context(ctx context.Context) *GlobalOrganizationOperationsListCall {
69055	c.ctx_ = ctx
69056	return c
69057}
69058
69059// Header returns an http.Header that can be modified by the caller to
69060// add HTTP headers to the request.
69061func (c *GlobalOrganizationOperationsListCall) Header() http.Header {
69062	if c.header_ == nil {
69063		c.header_ = make(http.Header)
69064	}
69065	return c.header_
69066}
69067
69068func (c *GlobalOrganizationOperationsListCall) doRequest(alt string) (*http.Response, error) {
69069	reqHeaders := make(http.Header)
69070	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
69071	for k, v := range c.header_ {
69072		reqHeaders[k] = v
69073	}
69074	reqHeaders.Set("User-Agent", c.s.userAgent())
69075	if c.ifNoneMatch_ != "" {
69076		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
69077	}
69078	var body io.Reader = nil
69079	c.urlParams_.Set("alt", alt)
69080	c.urlParams_.Set("prettyPrint", "false")
69081	urls := googleapi.ResolveRelative(c.s.BasePath, "locations/global/operations")
69082	urls += "?" + c.urlParams_.Encode()
69083	req, err := http.NewRequest("GET", urls, body)
69084	if err != nil {
69085		return nil, err
69086	}
69087	req.Header = reqHeaders
69088	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69089}
69090
69091// Do executes the "compute.globalOrganizationOperations.list" call.
69092// Exactly one of *OperationList or error will be non-nil. Any non-2xx
69093// status code is an error. Response headers are in either
69094// *OperationList.ServerResponse.Header or (if a response was returned
69095// at all) in error.(*googleapi.Error).Header. Use
69096// googleapi.IsNotModified to check whether the returned error was
69097// because http.StatusNotModified was returned.
69098func (c *GlobalOrganizationOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
69099	gensupport.SetOptions(c.urlParams_, opts...)
69100	res, err := c.doRequest("json")
69101	if res != nil && res.StatusCode == http.StatusNotModified {
69102		if res.Body != nil {
69103			res.Body.Close()
69104		}
69105		return nil, &googleapi.Error{
69106			Code:   res.StatusCode,
69107			Header: res.Header,
69108		}
69109	}
69110	if err != nil {
69111		return nil, err
69112	}
69113	defer googleapi.CloseBody(res)
69114	if err := googleapi.CheckResponse(res); err != nil {
69115		return nil, err
69116	}
69117	ret := &OperationList{
69118		ServerResponse: googleapi.ServerResponse{
69119			Header:         res.Header,
69120			HTTPStatusCode: res.StatusCode,
69121		},
69122	}
69123	target := &ret
69124	if err := gensupport.DecodeResponse(target, res); err != nil {
69125		return nil, err
69126	}
69127	return ret, nil
69128	// {
69129	//   "description": "Retrieves a list of Operation resources contained within the specified organization.",
69130	//   "httpMethod": "GET",
69131	//   "id": "compute.globalOrganizationOperations.list",
69132	//   "parameters": {
69133	//     "filter": {
69134	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
69135	//       "location": "query",
69136	//       "type": "string"
69137	//     },
69138	//     "maxResults": {
69139	//       "default": "500",
69140	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
69141	//       "format": "uint32",
69142	//       "location": "query",
69143	//       "minimum": "0",
69144	//       "type": "integer"
69145	//     },
69146	//     "orderBy": {
69147	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
69148	//       "location": "query",
69149	//       "type": "string"
69150	//     },
69151	//     "pageToken": {
69152	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
69153	//       "location": "query",
69154	//       "type": "string"
69155	//     },
69156	//     "parentId": {
69157	//       "description": "Parent ID for this request.",
69158	//       "location": "query",
69159	//       "type": "string"
69160	//     },
69161	//     "returnPartialSuccess": {
69162	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
69163	//       "location": "query",
69164	//       "type": "boolean"
69165	//     }
69166	//   },
69167	//   "path": "locations/global/operations",
69168	//   "response": {
69169	//     "$ref": "OperationList"
69170	//   },
69171	//   "scopes": [
69172	//     "https://www.googleapis.com/auth/cloud-platform",
69173	//     "https://www.googleapis.com/auth/compute",
69174	//     "https://www.googleapis.com/auth/compute.readonly"
69175	//   ]
69176	// }
69177
69178}
69179
69180// Pages invokes f for each page of results.
69181// A non-nil error returned from f will halt the iteration.
69182// The provided context supersedes any context provided to the Context method.
69183func (c *GlobalOrganizationOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
69184	c.ctx_ = ctx
69185	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
69186	for {
69187		x, err := c.Do()
69188		if err != nil {
69189			return err
69190		}
69191		if err := f(x); err != nil {
69192			return err
69193		}
69194		if x.NextPageToken == "" {
69195			return nil
69196		}
69197		c.PageToken(x.NextPageToken)
69198	}
69199}
69200
69201// method id "compute.globalPublicDelegatedPrefixes.delete":
69202
69203type GlobalPublicDelegatedPrefixesDeleteCall struct {
69204	s                     *Service
69205	project               string
69206	publicDelegatedPrefix string
69207	urlParams_            gensupport.URLParams
69208	ctx_                  context.Context
69209	header_               http.Header
69210}
69211
69212// Delete: Deletes the specified global PublicDelegatedPrefix.
69213//
69214// - project: Project ID for this request.
69215// - publicDelegatedPrefix: Name of the PublicDelegatedPrefix resource
69216//   to delete.
69217func (r *GlobalPublicDelegatedPrefixesService) Delete(project string, publicDelegatedPrefix string) *GlobalPublicDelegatedPrefixesDeleteCall {
69218	c := &GlobalPublicDelegatedPrefixesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69219	c.project = project
69220	c.publicDelegatedPrefix = publicDelegatedPrefix
69221	return c
69222}
69223
69224// RequestId sets the optional parameter "requestId": An optional
69225// request ID to identify requests. Specify a unique request ID so that
69226// if you must retry your request, the server will know to ignore the
69227// request if it has already been completed.
69228//
69229// For example, consider a situation where you make an initial request
69230// and the request times out. If you make the request again with the
69231// same request ID, the server can check if original operation with the
69232// same request ID was received, and if so, will ignore the second
69233// request. This prevents clients from accidentally creating duplicate
69234// commitments.
69235//
69236// The request ID must be a valid UUID with the exception that zero UUID
69237// is not supported (00000000-0000-0000-0000-000000000000).
69238func (c *GlobalPublicDelegatedPrefixesDeleteCall) RequestId(requestId string) *GlobalPublicDelegatedPrefixesDeleteCall {
69239	c.urlParams_.Set("requestId", requestId)
69240	return c
69241}
69242
69243// Fields allows partial responses to be retrieved. See
69244// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69245// for more information.
69246func (c *GlobalPublicDelegatedPrefixesDeleteCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesDeleteCall {
69247	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69248	return c
69249}
69250
69251// Context sets the context to be used in this call's Do method. Any
69252// pending HTTP request will be aborted if the provided context is
69253// canceled.
69254func (c *GlobalPublicDelegatedPrefixesDeleteCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesDeleteCall {
69255	c.ctx_ = ctx
69256	return c
69257}
69258
69259// Header returns an http.Header that can be modified by the caller to
69260// add HTTP headers to the request.
69261func (c *GlobalPublicDelegatedPrefixesDeleteCall) Header() http.Header {
69262	if c.header_ == nil {
69263		c.header_ = make(http.Header)
69264	}
69265	return c.header_
69266}
69267
69268func (c *GlobalPublicDelegatedPrefixesDeleteCall) doRequest(alt string) (*http.Response, error) {
69269	reqHeaders := make(http.Header)
69270	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
69271	for k, v := range c.header_ {
69272		reqHeaders[k] = v
69273	}
69274	reqHeaders.Set("User-Agent", c.s.userAgent())
69275	var body io.Reader = nil
69276	c.urlParams_.Set("alt", alt)
69277	c.urlParams_.Set("prettyPrint", "false")
69278	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}")
69279	urls += "?" + c.urlParams_.Encode()
69280	req, err := http.NewRequest("DELETE", urls, body)
69281	if err != nil {
69282		return nil, err
69283	}
69284	req.Header = reqHeaders
69285	googleapi.Expand(req.URL, map[string]string{
69286		"project":               c.project,
69287		"publicDelegatedPrefix": c.publicDelegatedPrefix,
69288	})
69289	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69290}
69291
69292// Do executes the "compute.globalPublicDelegatedPrefixes.delete" call.
69293// Exactly one of *Operation or error will be non-nil. Any non-2xx
69294// status code is an error. Response headers are in either
69295// *Operation.ServerResponse.Header or (if a response was returned at
69296// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69297// to check whether the returned error was because
69298// http.StatusNotModified was returned.
69299func (c *GlobalPublicDelegatedPrefixesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69300	gensupport.SetOptions(c.urlParams_, opts...)
69301	res, err := c.doRequest("json")
69302	if res != nil && res.StatusCode == http.StatusNotModified {
69303		if res.Body != nil {
69304			res.Body.Close()
69305		}
69306		return nil, &googleapi.Error{
69307			Code:   res.StatusCode,
69308			Header: res.Header,
69309		}
69310	}
69311	if err != nil {
69312		return nil, err
69313	}
69314	defer googleapi.CloseBody(res)
69315	if err := googleapi.CheckResponse(res); err != nil {
69316		return nil, err
69317	}
69318	ret := &Operation{
69319		ServerResponse: googleapi.ServerResponse{
69320			Header:         res.Header,
69321			HTTPStatusCode: res.StatusCode,
69322		},
69323	}
69324	target := &ret
69325	if err := gensupport.DecodeResponse(target, res); err != nil {
69326		return nil, err
69327	}
69328	return ret, nil
69329	// {
69330	//   "description": "Deletes the specified global PublicDelegatedPrefix.",
69331	//   "httpMethod": "DELETE",
69332	//   "id": "compute.globalPublicDelegatedPrefixes.delete",
69333	//   "parameterOrder": [
69334	//     "project",
69335	//     "publicDelegatedPrefix"
69336	//   ],
69337	//   "parameters": {
69338	//     "project": {
69339	//       "description": "Project ID for this request.",
69340	//       "location": "path",
69341	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69342	//       "required": true,
69343	//       "type": "string"
69344	//     },
69345	//     "publicDelegatedPrefix": {
69346	//       "description": "Name of the PublicDelegatedPrefix resource to delete.",
69347	//       "location": "path",
69348	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
69349	//       "required": true,
69350	//       "type": "string"
69351	//     },
69352	//     "requestId": {
69353	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
69354	//       "location": "query",
69355	//       "type": "string"
69356	//     }
69357	//   },
69358	//   "path": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}",
69359	//   "response": {
69360	//     "$ref": "Operation"
69361	//   },
69362	//   "scopes": [
69363	//     "https://www.googleapis.com/auth/cloud-platform",
69364	//     "https://www.googleapis.com/auth/compute"
69365	//   ]
69366	// }
69367
69368}
69369
69370// method id "compute.globalPublicDelegatedPrefixes.get":
69371
69372type GlobalPublicDelegatedPrefixesGetCall struct {
69373	s                     *Service
69374	project               string
69375	publicDelegatedPrefix string
69376	urlParams_            gensupport.URLParams
69377	ifNoneMatch_          string
69378	ctx_                  context.Context
69379	header_               http.Header
69380}
69381
69382// Get: Returns the specified global PublicDelegatedPrefix resource.
69383//
69384// - project: Project ID for this request.
69385// - publicDelegatedPrefix: Name of the PublicDelegatedPrefix resource
69386//   to return.
69387func (r *GlobalPublicDelegatedPrefixesService) Get(project string, publicDelegatedPrefix string) *GlobalPublicDelegatedPrefixesGetCall {
69388	c := &GlobalPublicDelegatedPrefixesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69389	c.project = project
69390	c.publicDelegatedPrefix = publicDelegatedPrefix
69391	return c
69392}
69393
69394// Fields allows partial responses to be retrieved. See
69395// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69396// for more information.
69397func (c *GlobalPublicDelegatedPrefixesGetCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesGetCall {
69398	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69399	return c
69400}
69401
69402// IfNoneMatch sets the optional parameter which makes the operation
69403// fail if the object's ETag matches the given value. This is useful for
69404// getting updates only after the object has changed since the last
69405// request. Use googleapi.IsNotModified to check whether the response
69406// error from Do is the result of In-None-Match.
69407func (c *GlobalPublicDelegatedPrefixesGetCall) IfNoneMatch(entityTag string) *GlobalPublicDelegatedPrefixesGetCall {
69408	c.ifNoneMatch_ = entityTag
69409	return c
69410}
69411
69412// Context sets the context to be used in this call's Do method. Any
69413// pending HTTP request will be aborted if the provided context is
69414// canceled.
69415func (c *GlobalPublicDelegatedPrefixesGetCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesGetCall {
69416	c.ctx_ = ctx
69417	return c
69418}
69419
69420// Header returns an http.Header that can be modified by the caller to
69421// add HTTP headers to the request.
69422func (c *GlobalPublicDelegatedPrefixesGetCall) Header() http.Header {
69423	if c.header_ == nil {
69424		c.header_ = make(http.Header)
69425	}
69426	return c.header_
69427}
69428
69429func (c *GlobalPublicDelegatedPrefixesGetCall) doRequest(alt string) (*http.Response, error) {
69430	reqHeaders := make(http.Header)
69431	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
69432	for k, v := range c.header_ {
69433		reqHeaders[k] = v
69434	}
69435	reqHeaders.Set("User-Agent", c.s.userAgent())
69436	if c.ifNoneMatch_ != "" {
69437		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
69438	}
69439	var body io.Reader = nil
69440	c.urlParams_.Set("alt", alt)
69441	c.urlParams_.Set("prettyPrint", "false")
69442	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}")
69443	urls += "?" + c.urlParams_.Encode()
69444	req, err := http.NewRequest("GET", urls, body)
69445	if err != nil {
69446		return nil, err
69447	}
69448	req.Header = reqHeaders
69449	googleapi.Expand(req.URL, map[string]string{
69450		"project":               c.project,
69451		"publicDelegatedPrefix": c.publicDelegatedPrefix,
69452	})
69453	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69454}
69455
69456// Do executes the "compute.globalPublicDelegatedPrefixes.get" call.
69457// Exactly one of *PublicDelegatedPrefix or error will be non-nil. Any
69458// non-2xx status code is an error. Response headers are in either
69459// *PublicDelegatedPrefix.ServerResponse.Header or (if a response was
69460// returned at all) in error.(*googleapi.Error).Header. Use
69461// googleapi.IsNotModified to check whether the returned error was
69462// because http.StatusNotModified was returned.
69463func (c *GlobalPublicDelegatedPrefixesGetCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefix, error) {
69464	gensupport.SetOptions(c.urlParams_, opts...)
69465	res, err := c.doRequest("json")
69466	if res != nil && res.StatusCode == http.StatusNotModified {
69467		if res.Body != nil {
69468			res.Body.Close()
69469		}
69470		return nil, &googleapi.Error{
69471			Code:   res.StatusCode,
69472			Header: res.Header,
69473		}
69474	}
69475	if err != nil {
69476		return nil, err
69477	}
69478	defer googleapi.CloseBody(res)
69479	if err := googleapi.CheckResponse(res); err != nil {
69480		return nil, err
69481	}
69482	ret := &PublicDelegatedPrefix{
69483		ServerResponse: googleapi.ServerResponse{
69484			Header:         res.Header,
69485			HTTPStatusCode: res.StatusCode,
69486		},
69487	}
69488	target := &ret
69489	if err := gensupport.DecodeResponse(target, res); err != nil {
69490		return nil, err
69491	}
69492	return ret, nil
69493	// {
69494	//   "description": "Returns the specified global PublicDelegatedPrefix resource.",
69495	//   "httpMethod": "GET",
69496	//   "id": "compute.globalPublicDelegatedPrefixes.get",
69497	//   "parameterOrder": [
69498	//     "project",
69499	//     "publicDelegatedPrefix"
69500	//   ],
69501	//   "parameters": {
69502	//     "project": {
69503	//       "description": "Project ID for this request.",
69504	//       "location": "path",
69505	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69506	//       "required": true,
69507	//       "type": "string"
69508	//     },
69509	//     "publicDelegatedPrefix": {
69510	//       "description": "Name of the PublicDelegatedPrefix resource to return.",
69511	//       "location": "path",
69512	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
69513	//       "required": true,
69514	//       "type": "string"
69515	//     }
69516	//   },
69517	//   "path": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}",
69518	//   "response": {
69519	//     "$ref": "PublicDelegatedPrefix"
69520	//   },
69521	//   "scopes": [
69522	//     "https://www.googleapis.com/auth/cloud-platform",
69523	//     "https://www.googleapis.com/auth/compute",
69524	//     "https://www.googleapis.com/auth/compute.readonly"
69525	//   ]
69526	// }
69527
69528}
69529
69530// method id "compute.globalPublicDelegatedPrefixes.insert":
69531
69532type GlobalPublicDelegatedPrefixesInsertCall struct {
69533	s                     *Service
69534	project               string
69535	publicdelegatedprefix *PublicDelegatedPrefix
69536	urlParams_            gensupport.URLParams
69537	ctx_                  context.Context
69538	header_               http.Header
69539}
69540
69541// Insert: Creates a global PublicDelegatedPrefix in the specified
69542// project using the parameters that are included in the request.
69543//
69544// - project: Project ID for this request.
69545func (r *GlobalPublicDelegatedPrefixesService) Insert(project string, publicdelegatedprefix *PublicDelegatedPrefix) *GlobalPublicDelegatedPrefixesInsertCall {
69546	c := &GlobalPublicDelegatedPrefixesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69547	c.project = project
69548	c.publicdelegatedprefix = publicdelegatedprefix
69549	return c
69550}
69551
69552// RequestId sets the optional parameter "requestId": An optional
69553// request ID to identify requests. Specify a unique request ID so that
69554// if you must retry your request, the server will know to ignore the
69555// request if it has already been completed.
69556//
69557// For example, consider a situation where you make an initial request
69558// and the request times out. If you make the request again with the
69559// same request ID, the server can check if original operation with the
69560// same request ID was received, and if so, will ignore the second
69561// request. This prevents clients from accidentally creating duplicate
69562// commitments.
69563//
69564// The request ID must be a valid UUID with the exception that zero UUID
69565// is not supported (00000000-0000-0000-0000-000000000000).
69566func (c *GlobalPublicDelegatedPrefixesInsertCall) RequestId(requestId string) *GlobalPublicDelegatedPrefixesInsertCall {
69567	c.urlParams_.Set("requestId", requestId)
69568	return c
69569}
69570
69571// Fields allows partial responses to be retrieved. See
69572// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69573// for more information.
69574func (c *GlobalPublicDelegatedPrefixesInsertCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesInsertCall {
69575	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69576	return c
69577}
69578
69579// Context sets the context to be used in this call's Do method. Any
69580// pending HTTP request will be aborted if the provided context is
69581// canceled.
69582func (c *GlobalPublicDelegatedPrefixesInsertCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesInsertCall {
69583	c.ctx_ = ctx
69584	return c
69585}
69586
69587// Header returns an http.Header that can be modified by the caller to
69588// add HTTP headers to the request.
69589func (c *GlobalPublicDelegatedPrefixesInsertCall) Header() http.Header {
69590	if c.header_ == nil {
69591		c.header_ = make(http.Header)
69592	}
69593	return c.header_
69594}
69595
69596func (c *GlobalPublicDelegatedPrefixesInsertCall) doRequest(alt string) (*http.Response, error) {
69597	reqHeaders := make(http.Header)
69598	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
69599	for k, v := range c.header_ {
69600		reqHeaders[k] = v
69601	}
69602	reqHeaders.Set("User-Agent", c.s.userAgent())
69603	var body io.Reader = nil
69604	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicdelegatedprefix)
69605	if err != nil {
69606		return nil, err
69607	}
69608	reqHeaders.Set("Content-Type", "application/json")
69609	c.urlParams_.Set("alt", alt)
69610	c.urlParams_.Set("prettyPrint", "false")
69611	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicDelegatedPrefixes")
69612	urls += "?" + c.urlParams_.Encode()
69613	req, err := http.NewRequest("POST", urls, body)
69614	if err != nil {
69615		return nil, err
69616	}
69617	req.Header = reqHeaders
69618	googleapi.Expand(req.URL, map[string]string{
69619		"project": c.project,
69620	})
69621	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69622}
69623
69624// Do executes the "compute.globalPublicDelegatedPrefixes.insert" call.
69625// Exactly one of *Operation or error will be non-nil. Any non-2xx
69626// status code is an error. Response headers are in either
69627// *Operation.ServerResponse.Header or (if a response was returned at
69628// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69629// to check whether the returned error was because
69630// http.StatusNotModified was returned.
69631func (c *GlobalPublicDelegatedPrefixesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69632	gensupport.SetOptions(c.urlParams_, opts...)
69633	res, err := c.doRequest("json")
69634	if res != nil && res.StatusCode == http.StatusNotModified {
69635		if res.Body != nil {
69636			res.Body.Close()
69637		}
69638		return nil, &googleapi.Error{
69639			Code:   res.StatusCode,
69640			Header: res.Header,
69641		}
69642	}
69643	if err != nil {
69644		return nil, err
69645	}
69646	defer googleapi.CloseBody(res)
69647	if err := googleapi.CheckResponse(res); err != nil {
69648		return nil, err
69649	}
69650	ret := &Operation{
69651		ServerResponse: googleapi.ServerResponse{
69652			Header:         res.Header,
69653			HTTPStatusCode: res.StatusCode,
69654		},
69655	}
69656	target := &ret
69657	if err := gensupport.DecodeResponse(target, res); err != nil {
69658		return nil, err
69659	}
69660	return ret, nil
69661	// {
69662	//   "description": "Creates a global PublicDelegatedPrefix in the specified project using the parameters that are included in the request.",
69663	//   "httpMethod": "POST",
69664	//   "id": "compute.globalPublicDelegatedPrefixes.insert",
69665	//   "parameterOrder": [
69666	//     "project"
69667	//   ],
69668	//   "parameters": {
69669	//     "project": {
69670	//       "description": "Project ID for this request.",
69671	//       "location": "path",
69672	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69673	//       "required": true,
69674	//       "type": "string"
69675	//     },
69676	//     "requestId": {
69677	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
69678	//       "location": "query",
69679	//       "type": "string"
69680	//     }
69681	//   },
69682	//   "path": "projects/{project}/global/publicDelegatedPrefixes",
69683	//   "request": {
69684	//     "$ref": "PublicDelegatedPrefix"
69685	//   },
69686	//   "response": {
69687	//     "$ref": "Operation"
69688	//   },
69689	//   "scopes": [
69690	//     "https://www.googleapis.com/auth/cloud-platform",
69691	//     "https://www.googleapis.com/auth/compute"
69692	//   ]
69693	// }
69694
69695}
69696
69697// method id "compute.globalPublicDelegatedPrefixes.list":
69698
69699type GlobalPublicDelegatedPrefixesListCall struct {
69700	s            *Service
69701	project      string
69702	urlParams_   gensupport.URLParams
69703	ifNoneMatch_ string
69704	ctx_         context.Context
69705	header_      http.Header
69706}
69707
69708// List: Lists the global PublicDelegatedPrefixes for a project.
69709//
69710// - project: Project ID for this request.
69711func (r *GlobalPublicDelegatedPrefixesService) List(project string) *GlobalPublicDelegatedPrefixesListCall {
69712	c := &GlobalPublicDelegatedPrefixesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69713	c.project = project
69714	return c
69715}
69716
69717// Filter sets the optional parameter "filter": A filter expression that
69718// filters resources listed in the response. The expression must specify
69719// the field name, a comparison operator, and the value that you want to
69720// use for filtering. The value must be a string, a number, or a
69721// boolean. The comparison operator must be either `=`, `!=`, `>`, or
69722// `<`.
69723//
69724// For example, if you are filtering Compute Engine instances, you can
69725// exclude instances named `example-instance` by specifying `name !=
69726// example-instance`.
69727//
69728// You can also filter nested fields. For example, you could specify
69729// `scheduling.automaticRestart = false` to include instances only if
69730// they are not scheduled for automatic restarts. You can use filtering
69731// on nested fields to filter based on resource labels.
69732//
69733// To filter on multiple expressions, provide each separate expression
69734// within parentheses. For example: ``` (scheduling.automaticRestart =
69735// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
69736// is an `AND` expression. However, you can include `AND` and `OR`
69737// expressions explicitly. For example: ``` (cpuPlatform = "Intel
69738// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
69739// (scheduling.automaticRestart = true) ```
69740func (c *GlobalPublicDelegatedPrefixesListCall) Filter(filter string) *GlobalPublicDelegatedPrefixesListCall {
69741	c.urlParams_.Set("filter", filter)
69742	return c
69743}
69744
69745// MaxResults sets the optional parameter "maxResults": The maximum
69746// number of results per page that should be returned. If the number of
69747// available results is larger than `maxResults`, Compute Engine returns
69748// a `nextPageToken` that can be used to get the next page of results in
69749// subsequent list requests. Acceptable values are `0` to `500`,
69750// inclusive. (Default: `500`)
69751func (c *GlobalPublicDelegatedPrefixesListCall) MaxResults(maxResults int64) *GlobalPublicDelegatedPrefixesListCall {
69752	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
69753	return c
69754}
69755
69756// OrderBy sets the optional parameter "orderBy": Sorts list results by
69757// a certain order. By default, results are returned in alphanumerical
69758// order based on the resource name.
69759//
69760// You can also sort results in descending order based on the creation
69761// timestamp using `orderBy="creationTimestamp desc". This sorts
69762// results based on the `creationTimestamp` field in reverse
69763// chronological order (newest result first). Use this to sort resources
69764// like operations so that the newest operation is returned
69765// first.
69766//
69767// Currently, only sorting by `name` or `creationTimestamp desc` is
69768// supported.
69769func (c *GlobalPublicDelegatedPrefixesListCall) OrderBy(orderBy string) *GlobalPublicDelegatedPrefixesListCall {
69770	c.urlParams_.Set("orderBy", orderBy)
69771	return c
69772}
69773
69774// PageToken sets the optional parameter "pageToken": Specifies a page
69775// token to use. Set `pageToken` to the `nextPageToken` returned by a
69776// previous list request to get the next page of results.
69777func (c *GlobalPublicDelegatedPrefixesListCall) PageToken(pageToken string) *GlobalPublicDelegatedPrefixesListCall {
69778	c.urlParams_.Set("pageToken", pageToken)
69779	return c
69780}
69781
69782// ReturnPartialSuccess sets the optional parameter
69783// "returnPartialSuccess": Opt-in for partial success behavior which
69784// provides partial results in case of failure. The default value is
69785// false.
69786func (c *GlobalPublicDelegatedPrefixesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *GlobalPublicDelegatedPrefixesListCall {
69787	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
69788	return c
69789}
69790
69791// Fields allows partial responses to be retrieved. See
69792// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69793// for more information.
69794func (c *GlobalPublicDelegatedPrefixesListCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesListCall {
69795	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69796	return c
69797}
69798
69799// IfNoneMatch sets the optional parameter which makes the operation
69800// fail if the object's ETag matches the given value. This is useful for
69801// getting updates only after the object has changed since the last
69802// request. Use googleapi.IsNotModified to check whether the response
69803// error from Do is the result of In-None-Match.
69804func (c *GlobalPublicDelegatedPrefixesListCall) IfNoneMatch(entityTag string) *GlobalPublicDelegatedPrefixesListCall {
69805	c.ifNoneMatch_ = entityTag
69806	return c
69807}
69808
69809// Context sets the context to be used in this call's Do method. Any
69810// pending HTTP request will be aborted if the provided context is
69811// canceled.
69812func (c *GlobalPublicDelegatedPrefixesListCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesListCall {
69813	c.ctx_ = ctx
69814	return c
69815}
69816
69817// Header returns an http.Header that can be modified by the caller to
69818// add HTTP headers to the request.
69819func (c *GlobalPublicDelegatedPrefixesListCall) Header() http.Header {
69820	if c.header_ == nil {
69821		c.header_ = make(http.Header)
69822	}
69823	return c.header_
69824}
69825
69826func (c *GlobalPublicDelegatedPrefixesListCall) doRequest(alt string) (*http.Response, error) {
69827	reqHeaders := make(http.Header)
69828	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
69829	for k, v := range c.header_ {
69830		reqHeaders[k] = v
69831	}
69832	reqHeaders.Set("User-Agent", c.s.userAgent())
69833	if c.ifNoneMatch_ != "" {
69834		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
69835	}
69836	var body io.Reader = nil
69837	c.urlParams_.Set("alt", alt)
69838	c.urlParams_.Set("prettyPrint", "false")
69839	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicDelegatedPrefixes")
69840	urls += "?" + c.urlParams_.Encode()
69841	req, err := http.NewRequest("GET", urls, body)
69842	if err != nil {
69843		return nil, err
69844	}
69845	req.Header = reqHeaders
69846	googleapi.Expand(req.URL, map[string]string{
69847		"project": c.project,
69848	})
69849	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69850}
69851
69852// Do executes the "compute.globalPublicDelegatedPrefixes.list" call.
69853// Exactly one of *PublicDelegatedPrefixList or error will be non-nil.
69854// Any non-2xx status code is an error. Response headers are in either
69855// *PublicDelegatedPrefixList.ServerResponse.Header or (if a response
69856// was returned at all) in error.(*googleapi.Error).Header. Use
69857// googleapi.IsNotModified to check whether the returned error was
69858// because http.StatusNotModified was returned.
69859func (c *GlobalPublicDelegatedPrefixesListCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefixList, error) {
69860	gensupport.SetOptions(c.urlParams_, opts...)
69861	res, err := c.doRequest("json")
69862	if res != nil && res.StatusCode == http.StatusNotModified {
69863		if res.Body != nil {
69864			res.Body.Close()
69865		}
69866		return nil, &googleapi.Error{
69867			Code:   res.StatusCode,
69868			Header: res.Header,
69869		}
69870	}
69871	if err != nil {
69872		return nil, err
69873	}
69874	defer googleapi.CloseBody(res)
69875	if err := googleapi.CheckResponse(res); err != nil {
69876		return nil, err
69877	}
69878	ret := &PublicDelegatedPrefixList{
69879		ServerResponse: googleapi.ServerResponse{
69880			Header:         res.Header,
69881			HTTPStatusCode: res.StatusCode,
69882		},
69883	}
69884	target := &ret
69885	if err := gensupport.DecodeResponse(target, res); err != nil {
69886		return nil, err
69887	}
69888	return ret, nil
69889	// {
69890	//   "description": "Lists the global PublicDelegatedPrefixes for a project.",
69891	//   "httpMethod": "GET",
69892	//   "id": "compute.globalPublicDelegatedPrefixes.list",
69893	//   "parameterOrder": [
69894	//     "project"
69895	//   ],
69896	//   "parameters": {
69897	//     "filter": {
69898	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
69899	//       "location": "query",
69900	//       "type": "string"
69901	//     },
69902	//     "maxResults": {
69903	//       "default": "500",
69904	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
69905	//       "format": "uint32",
69906	//       "location": "query",
69907	//       "minimum": "0",
69908	//       "type": "integer"
69909	//     },
69910	//     "orderBy": {
69911	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
69912	//       "location": "query",
69913	//       "type": "string"
69914	//     },
69915	//     "pageToken": {
69916	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
69917	//       "location": "query",
69918	//       "type": "string"
69919	//     },
69920	//     "project": {
69921	//       "description": "Project ID for this request.",
69922	//       "location": "path",
69923	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69924	//       "required": true,
69925	//       "type": "string"
69926	//     },
69927	//     "returnPartialSuccess": {
69928	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
69929	//       "location": "query",
69930	//       "type": "boolean"
69931	//     }
69932	//   },
69933	//   "path": "projects/{project}/global/publicDelegatedPrefixes",
69934	//   "response": {
69935	//     "$ref": "PublicDelegatedPrefixList"
69936	//   },
69937	//   "scopes": [
69938	//     "https://www.googleapis.com/auth/cloud-platform",
69939	//     "https://www.googleapis.com/auth/compute",
69940	//     "https://www.googleapis.com/auth/compute.readonly"
69941	//   ]
69942	// }
69943
69944}
69945
69946// Pages invokes f for each page of results.
69947// A non-nil error returned from f will halt the iteration.
69948// The provided context supersedes any context provided to the Context method.
69949func (c *GlobalPublicDelegatedPrefixesListCall) Pages(ctx context.Context, f func(*PublicDelegatedPrefixList) error) error {
69950	c.ctx_ = ctx
69951	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
69952	for {
69953		x, err := c.Do()
69954		if err != nil {
69955			return err
69956		}
69957		if err := f(x); err != nil {
69958			return err
69959		}
69960		if x.NextPageToken == "" {
69961			return nil
69962		}
69963		c.PageToken(x.NextPageToken)
69964	}
69965}
69966
69967// method id "compute.globalPublicDelegatedPrefixes.patch":
69968
69969type GlobalPublicDelegatedPrefixesPatchCall struct {
69970	s                     *Service
69971	project               string
69972	publicDelegatedPrefix string
69973	publicdelegatedprefix *PublicDelegatedPrefix
69974	urlParams_            gensupport.URLParams
69975	ctx_                  context.Context
69976	header_               http.Header
69977}
69978
69979// Patch: Patches the specified global PublicDelegatedPrefix resource
69980// with the data included in the request. This method supports PATCH
69981// semantics and uses JSON merge patch format and processing rules.
69982//
69983// - project: Project ID for this request.
69984// - publicDelegatedPrefix: Name of the PublicDelegatedPrefix resource
69985//   to patch.
69986func (r *GlobalPublicDelegatedPrefixesService) Patch(project string, publicDelegatedPrefix string, publicdelegatedprefix *PublicDelegatedPrefix) *GlobalPublicDelegatedPrefixesPatchCall {
69987	c := &GlobalPublicDelegatedPrefixesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69988	c.project = project
69989	c.publicDelegatedPrefix = publicDelegatedPrefix
69990	c.publicdelegatedprefix = publicdelegatedprefix
69991	return c
69992}
69993
69994// RequestId sets the optional parameter "requestId": An optional
69995// request ID to identify requests. Specify a unique request ID so that
69996// if you must retry your request, the server will know to ignore the
69997// request if it has already been completed.
69998//
69999// For example, consider a situation where you make an initial request
70000// and the request times out. If you make the request again with the
70001// same request ID, the server can check if original operation with the
70002// same request ID was received, and if so, will ignore the second
70003// request. This prevents clients from accidentally creating duplicate
70004// commitments.
70005//
70006// The request ID must be a valid UUID with the exception that zero UUID
70007// is not supported (00000000-0000-0000-0000-000000000000).
70008func (c *GlobalPublicDelegatedPrefixesPatchCall) RequestId(requestId string) *GlobalPublicDelegatedPrefixesPatchCall {
70009	c.urlParams_.Set("requestId", requestId)
70010	return c
70011}
70012
70013// Fields allows partial responses to be retrieved. See
70014// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70015// for more information.
70016func (c *GlobalPublicDelegatedPrefixesPatchCall) Fields(s ...googleapi.Field) *GlobalPublicDelegatedPrefixesPatchCall {
70017	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70018	return c
70019}
70020
70021// Context sets the context to be used in this call's Do method. Any
70022// pending HTTP request will be aborted if the provided context is
70023// canceled.
70024func (c *GlobalPublicDelegatedPrefixesPatchCall) Context(ctx context.Context) *GlobalPublicDelegatedPrefixesPatchCall {
70025	c.ctx_ = ctx
70026	return c
70027}
70028
70029// Header returns an http.Header that can be modified by the caller to
70030// add HTTP headers to the request.
70031func (c *GlobalPublicDelegatedPrefixesPatchCall) Header() http.Header {
70032	if c.header_ == nil {
70033		c.header_ = make(http.Header)
70034	}
70035	return c.header_
70036}
70037
70038func (c *GlobalPublicDelegatedPrefixesPatchCall) doRequest(alt string) (*http.Response, error) {
70039	reqHeaders := make(http.Header)
70040	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
70041	for k, v := range c.header_ {
70042		reqHeaders[k] = v
70043	}
70044	reqHeaders.Set("User-Agent", c.s.userAgent())
70045	var body io.Reader = nil
70046	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicdelegatedprefix)
70047	if err != nil {
70048		return nil, err
70049	}
70050	reqHeaders.Set("Content-Type", "application/json")
70051	c.urlParams_.Set("alt", alt)
70052	c.urlParams_.Set("prettyPrint", "false")
70053	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}")
70054	urls += "?" + c.urlParams_.Encode()
70055	req, err := http.NewRequest("PATCH", urls, body)
70056	if err != nil {
70057		return nil, err
70058	}
70059	req.Header = reqHeaders
70060	googleapi.Expand(req.URL, map[string]string{
70061		"project":               c.project,
70062		"publicDelegatedPrefix": c.publicDelegatedPrefix,
70063	})
70064	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70065}
70066
70067// Do executes the "compute.globalPublicDelegatedPrefixes.patch" call.
70068// Exactly one of *Operation or error will be non-nil. Any non-2xx
70069// status code is an error. Response headers are in either
70070// *Operation.ServerResponse.Header or (if a response was returned at
70071// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70072// to check whether the returned error was because
70073// http.StatusNotModified was returned.
70074func (c *GlobalPublicDelegatedPrefixesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70075	gensupport.SetOptions(c.urlParams_, opts...)
70076	res, err := c.doRequest("json")
70077	if res != nil && res.StatusCode == http.StatusNotModified {
70078		if res.Body != nil {
70079			res.Body.Close()
70080		}
70081		return nil, &googleapi.Error{
70082			Code:   res.StatusCode,
70083			Header: res.Header,
70084		}
70085	}
70086	if err != nil {
70087		return nil, err
70088	}
70089	defer googleapi.CloseBody(res)
70090	if err := googleapi.CheckResponse(res); err != nil {
70091		return nil, err
70092	}
70093	ret := &Operation{
70094		ServerResponse: googleapi.ServerResponse{
70095			Header:         res.Header,
70096			HTTPStatusCode: res.StatusCode,
70097		},
70098	}
70099	target := &ret
70100	if err := gensupport.DecodeResponse(target, res); err != nil {
70101		return nil, err
70102	}
70103	return ret, nil
70104	// {
70105	//   "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.",
70106	//   "httpMethod": "PATCH",
70107	//   "id": "compute.globalPublicDelegatedPrefixes.patch",
70108	//   "parameterOrder": [
70109	//     "project",
70110	//     "publicDelegatedPrefix"
70111	//   ],
70112	//   "parameters": {
70113	//     "project": {
70114	//       "description": "Project ID for this request.",
70115	//       "location": "path",
70116	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70117	//       "required": true,
70118	//       "type": "string"
70119	//     },
70120	//     "publicDelegatedPrefix": {
70121	//       "description": "Name of the PublicDelegatedPrefix resource to patch.",
70122	//       "location": "path",
70123	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70124	//       "required": true,
70125	//       "type": "string"
70126	//     },
70127	//     "requestId": {
70128	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
70129	//       "location": "query",
70130	//       "type": "string"
70131	//     }
70132	//   },
70133	//   "path": "projects/{project}/global/publicDelegatedPrefixes/{publicDelegatedPrefix}",
70134	//   "request": {
70135	//     "$ref": "PublicDelegatedPrefix"
70136	//   },
70137	//   "response": {
70138	//     "$ref": "Operation"
70139	//   },
70140	//   "scopes": [
70141	//     "https://www.googleapis.com/auth/cloud-platform",
70142	//     "https://www.googleapis.com/auth/compute"
70143	//   ]
70144	// }
70145
70146}
70147
70148// method id "compute.healthChecks.aggregatedList":
70149
70150type HealthChecksAggregatedListCall struct {
70151	s            *Service
70152	project      string
70153	urlParams_   gensupport.URLParams
70154	ifNoneMatch_ string
70155	ctx_         context.Context
70156	header_      http.Header
70157}
70158
70159// AggregatedList: Retrieves the list of all HealthCheck resources,
70160// regional and global, available to the specified project.
70161//
70162// - project: Name of the project scoping this request.
70163func (r *HealthChecksService) AggregatedList(project string) *HealthChecksAggregatedListCall {
70164	c := &HealthChecksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70165	c.project = project
70166	return c
70167}
70168
70169// Filter sets the optional parameter "filter": A filter expression that
70170// filters resources listed in the response. The expression must specify
70171// the field name, a comparison operator, and the value that you want to
70172// use for filtering. The value must be a string, a number, or a
70173// boolean. The comparison operator must be either `=`, `!=`, `>`, or
70174// `<`.
70175//
70176// For example, if you are filtering Compute Engine instances, you can
70177// exclude instances named `example-instance` by specifying `name !=
70178// example-instance`.
70179//
70180// You can also filter nested fields. For example, you could specify
70181// `scheduling.automaticRestart = false` to include instances only if
70182// they are not scheduled for automatic restarts. You can use filtering
70183// on nested fields to filter based on resource labels.
70184//
70185// To filter on multiple expressions, provide each separate expression
70186// within parentheses. For example: ``` (scheduling.automaticRestart =
70187// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
70188// is an `AND` expression. However, you can include `AND` and `OR`
70189// expressions explicitly. For example: ``` (cpuPlatform = "Intel
70190// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
70191// (scheduling.automaticRestart = true) ```
70192func (c *HealthChecksAggregatedListCall) Filter(filter string) *HealthChecksAggregatedListCall {
70193	c.urlParams_.Set("filter", filter)
70194	return c
70195}
70196
70197// IncludeAllScopes sets the optional parameter "includeAllScopes":
70198// Indicates whether every visible scope for each scope type (zone,
70199// region, global) should be included in the response. For new resource
70200// types added after this field, the flag has no effect as new resource
70201// types will always include every visible scope for each scope type in
70202// response. For resource types which predate this field, if this flag
70203// is omitted or false, only scopes of the scope types where the
70204// resource type is expected to be found will be included.
70205func (c *HealthChecksAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *HealthChecksAggregatedListCall {
70206	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
70207	return c
70208}
70209
70210// MaxResults sets the optional parameter "maxResults": The maximum
70211// number of results per page that should be returned. If the number of
70212// available results is larger than `maxResults`, Compute Engine returns
70213// a `nextPageToken` that can be used to get the next page of results in
70214// subsequent list requests. Acceptable values are `0` to `500`,
70215// inclusive. (Default: `500`)
70216func (c *HealthChecksAggregatedListCall) MaxResults(maxResults int64) *HealthChecksAggregatedListCall {
70217	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
70218	return c
70219}
70220
70221// OrderBy sets the optional parameter "orderBy": Sorts list results by
70222// a certain order. By default, results are returned in alphanumerical
70223// order based on the resource name.
70224//
70225// You can also sort results in descending order based on the creation
70226// timestamp using `orderBy="creationTimestamp desc". This sorts
70227// results based on the `creationTimestamp` field in reverse
70228// chronological order (newest result first). Use this to sort resources
70229// like operations so that the newest operation is returned
70230// first.
70231//
70232// Currently, only sorting by `name` or `creationTimestamp desc` is
70233// supported.
70234func (c *HealthChecksAggregatedListCall) OrderBy(orderBy string) *HealthChecksAggregatedListCall {
70235	c.urlParams_.Set("orderBy", orderBy)
70236	return c
70237}
70238
70239// PageToken sets the optional parameter "pageToken": Specifies a page
70240// token to use. Set `pageToken` to the `nextPageToken` returned by a
70241// previous list request to get the next page of results.
70242func (c *HealthChecksAggregatedListCall) PageToken(pageToken string) *HealthChecksAggregatedListCall {
70243	c.urlParams_.Set("pageToken", pageToken)
70244	return c
70245}
70246
70247// ReturnPartialSuccess sets the optional parameter
70248// "returnPartialSuccess": Opt-in for partial success behavior which
70249// provides partial results in case of failure. The default value is
70250// false.
70251func (c *HealthChecksAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *HealthChecksAggregatedListCall {
70252	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
70253	return c
70254}
70255
70256// Fields allows partial responses to be retrieved. See
70257// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70258// for more information.
70259func (c *HealthChecksAggregatedListCall) Fields(s ...googleapi.Field) *HealthChecksAggregatedListCall {
70260	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70261	return c
70262}
70263
70264// IfNoneMatch sets the optional parameter which makes the operation
70265// fail if the object's ETag matches the given value. This is useful for
70266// getting updates only after the object has changed since the last
70267// request. Use googleapi.IsNotModified to check whether the response
70268// error from Do is the result of In-None-Match.
70269func (c *HealthChecksAggregatedListCall) IfNoneMatch(entityTag string) *HealthChecksAggregatedListCall {
70270	c.ifNoneMatch_ = entityTag
70271	return c
70272}
70273
70274// Context sets the context to be used in this call's Do method. Any
70275// pending HTTP request will be aborted if the provided context is
70276// canceled.
70277func (c *HealthChecksAggregatedListCall) Context(ctx context.Context) *HealthChecksAggregatedListCall {
70278	c.ctx_ = ctx
70279	return c
70280}
70281
70282// Header returns an http.Header that can be modified by the caller to
70283// add HTTP headers to the request.
70284func (c *HealthChecksAggregatedListCall) Header() http.Header {
70285	if c.header_ == nil {
70286		c.header_ = make(http.Header)
70287	}
70288	return c.header_
70289}
70290
70291func (c *HealthChecksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
70292	reqHeaders := make(http.Header)
70293	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
70294	for k, v := range c.header_ {
70295		reqHeaders[k] = v
70296	}
70297	reqHeaders.Set("User-Agent", c.s.userAgent())
70298	if c.ifNoneMatch_ != "" {
70299		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
70300	}
70301	var body io.Reader = nil
70302	c.urlParams_.Set("alt", alt)
70303	c.urlParams_.Set("prettyPrint", "false")
70304	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/healthChecks")
70305	urls += "?" + c.urlParams_.Encode()
70306	req, err := http.NewRequest("GET", urls, body)
70307	if err != nil {
70308		return nil, err
70309	}
70310	req.Header = reqHeaders
70311	googleapi.Expand(req.URL, map[string]string{
70312		"project": c.project,
70313	})
70314	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70315}
70316
70317// Do executes the "compute.healthChecks.aggregatedList" call.
70318// Exactly one of *HealthChecksAggregatedList or error will be non-nil.
70319// Any non-2xx status code is an error. Response headers are in either
70320// *HealthChecksAggregatedList.ServerResponse.Header or (if a response
70321// was returned at all) in error.(*googleapi.Error).Header. Use
70322// googleapi.IsNotModified to check whether the returned error was
70323// because http.StatusNotModified was returned.
70324func (c *HealthChecksAggregatedListCall) Do(opts ...googleapi.CallOption) (*HealthChecksAggregatedList, error) {
70325	gensupport.SetOptions(c.urlParams_, opts...)
70326	res, err := c.doRequest("json")
70327	if res != nil && res.StatusCode == http.StatusNotModified {
70328		if res.Body != nil {
70329			res.Body.Close()
70330		}
70331		return nil, &googleapi.Error{
70332			Code:   res.StatusCode,
70333			Header: res.Header,
70334		}
70335	}
70336	if err != nil {
70337		return nil, err
70338	}
70339	defer googleapi.CloseBody(res)
70340	if err := googleapi.CheckResponse(res); err != nil {
70341		return nil, err
70342	}
70343	ret := &HealthChecksAggregatedList{
70344		ServerResponse: googleapi.ServerResponse{
70345			Header:         res.Header,
70346			HTTPStatusCode: res.StatusCode,
70347		},
70348	}
70349	target := &ret
70350	if err := gensupport.DecodeResponse(target, res); err != nil {
70351		return nil, err
70352	}
70353	return ret, nil
70354	// {
70355	//   "description": "Retrieves the list of all HealthCheck resources, regional and global, available to the specified project.",
70356	//   "httpMethod": "GET",
70357	//   "id": "compute.healthChecks.aggregatedList",
70358	//   "parameterOrder": [
70359	//     "project"
70360	//   ],
70361	//   "parameters": {
70362	//     "filter": {
70363	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
70364	//       "location": "query",
70365	//       "type": "string"
70366	//     },
70367	//     "includeAllScopes": {
70368	//       "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.",
70369	//       "location": "query",
70370	//       "type": "boolean"
70371	//     },
70372	//     "maxResults": {
70373	//       "default": "500",
70374	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
70375	//       "format": "uint32",
70376	//       "location": "query",
70377	//       "minimum": "0",
70378	//       "type": "integer"
70379	//     },
70380	//     "orderBy": {
70381	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
70382	//       "location": "query",
70383	//       "type": "string"
70384	//     },
70385	//     "pageToken": {
70386	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
70387	//       "location": "query",
70388	//       "type": "string"
70389	//     },
70390	//     "project": {
70391	//       "description": "Name of the project scoping this request.",
70392	//       "location": "path",
70393	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70394	//       "required": true,
70395	//       "type": "string"
70396	//     },
70397	//     "returnPartialSuccess": {
70398	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
70399	//       "location": "query",
70400	//       "type": "boolean"
70401	//     }
70402	//   },
70403	//   "path": "projects/{project}/aggregated/healthChecks",
70404	//   "response": {
70405	//     "$ref": "HealthChecksAggregatedList"
70406	//   },
70407	//   "scopes": [
70408	//     "https://www.googleapis.com/auth/cloud-platform",
70409	//     "https://www.googleapis.com/auth/compute",
70410	//     "https://www.googleapis.com/auth/compute.readonly"
70411	//   ]
70412	// }
70413
70414}
70415
70416// Pages invokes f for each page of results.
70417// A non-nil error returned from f will halt the iteration.
70418// The provided context supersedes any context provided to the Context method.
70419func (c *HealthChecksAggregatedListCall) Pages(ctx context.Context, f func(*HealthChecksAggregatedList) error) error {
70420	c.ctx_ = ctx
70421	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
70422	for {
70423		x, err := c.Do()
70424		if err != nil {
70425			return err
70426		}
70427		if err := f(x); err != nil {
70428			return err
70429		}
70430		if x.NextPageToken == "" {
70431			return nil
70432		}
70433		c.PageToken(x.NextPageToken)
70434	}
70435}
70436
70437// method id "compute.healthChecks.delete":
70438
70439type HealthChecksDeleteCall struct {
70440	s           *Service
70441	project     string
70442	healthCheck string
70443	urlParams_  gensupport.URLParams
70444	ctx_        context.Context
70445	header_     http.Header
70446}
70447
70448// Delete: Deletes the specified HealthCheck resource.
70449//
70450// - healthCheck: Name of the HealthCheck resource to delete.
70451// - project: Project ID for this request.
70452func (r *HealthChecksService) Delete(project string, healthCheck string) *HealthChecksDeleteCall {
70453	c := &HealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70454	c.project = project
70455	c.healthCheck = healthCheck
70456	return c
70457}
70458
70459// RequestId sets the optional parameter "requestId": An optional
70460// request ID to identify requests. Specify a unique request ID so that
70461// if you must retry your request, the server will know to ignore the
70462// request if it has already been completed.
70463//
70464// For example, consider a situation where you make an initial request
70465// and the request times out. If you make the request again with the
70466// same request ID, the server can check if original operation with the
70467// same request ID was received, and if so, will ignore the second
70468// request. This prevents clients from accidentally creating duplicate
70469// commitments.
70470//
70471// The request ID must be a valid UUID with the exception that zero UUID
70472// is not supported (00000000-0000-0000-0000-000000000000).
70473func (c *HealthChecksDeleteCall) RequestId(requestId string) *HealthChecksDeleteCall {
70474	c.urlParams_.Set("requestId", requestId)
70475	return c
70476}
70477
70478// Fields allows partial responses to be retrieved. See
70479// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70480// for more information.
70481func (c *HealthChecksDeleteCall) Fields(s ...googleapi.Field) *HealthChecksDeleteCall {
70482	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70483	return c
70484}
70485
70486// Context sets the context to be used in this call's Do method. Any
70487// pending HTTP request will be aborted if the provided context is
70488// canceled.
70489func (c *HealthChecksDeleteCall) Context(ctx context.Context) *HealthChecksDeleteCall {
70490	c.ctx_ = ctx
70491	return c
70492}
70493
70494// Header returns an http.Header that can be modified by the caller to
70495// add HTTP headers to the request.
70496func (c *HealthChecksDeleteCall) Header() http.Header {
70497	if c.header_ == nil {
70498		c.header_ = make(http.Header)
70499	}
70500	return c.header_
70501}
70502
70503func (c *HealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
70504	reqHeaders := make(http.Header)
70505	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
70506	for k, v := range c.header_ {
70507		reqHeaders[k] = v
70508	}
70509	reqHeaders.Set("User-Agent", c.s.userAgent())
70510	var body io.Reader = nil
70511	c.urlParams_.Set("alt", alt)
70512	c.urlParams_.Set("prettyPrint", "false")
70513	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks/{healthCheck}")
70514	urls += "?" + c.urlParams_.Encode()
70515	req, err := http.NewRequest("DELETE", urls, body)
70516	if err != nil {
70517		return nil, err
70518	}
70519	req.Header = reqHeaders
70520	googleapi.Expand(req.URL, map[string]string{
70521		"project":     c.project,
70522		"healthCheck": c.healthCheck,
70523	})
70524	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70525}
70526
70527// Do executes the "compute.healthChecks.delete" call.
70528// Exactly one of *Operation or error will be non-nil. Any non-2xx
70529// status code is an error. Response headers are in either
70530// *Operation.ServerResponse.Header or (if a response was returned at
70531// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70532// to check whether the returned error was because
70533// http.StatusNotModified was returned.
70534func (c *HealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70535	gensupport.SetOptions(c.urlParams_, opts...)
70536	res, err := c.doRequest("json")
70537	if res != nil && res.StatusCode == http.StatusNotModified {
70538		if res.Body != nil {
70539			res.Body.Close()
70540		}
70541		return nil, &googleapi.Error{
70542			Code:   res.StatusCode,
70543			Header: res.Header,
70544		}
70545	}
70546	if err != nil {
70547		return nil, err
70548	}
70549	defer googleapi.CloseBody(res)
70550	if err := googleapi.CheckResponse(res); err != nil {
70551		return nil, err
70552	}
70553	ret := &Operation{
70554		ServerResponse: googleapi.ServerResponse{
70555			Header:         res.Header,
70556			HTTPStatusCode: res.StatusCode,
70557		},
70558	}
70559	target := &ret
70560	if err := gensupport.DecodeResponse(target, res); err != nil {
70561		return nil, err
70562	}
70563	return ret, nil
70564	// {
70565	//   "description": "Deletes the specified HealthCheck resource.",
70566	//   "httpMethod": "DELETE",
70567	//   "id": "compute.healthChecks.delete",
70568	//   "parameterOrder": [
70569	//     "project",
70570	//     "healthCheck"
70571	//   ],
70572	//   "parameters": {
70573	//     "healthCheck": {
70574	//       "description": "Name of the HealthCheck resource to delete.",
70575	//       "location": "path",
70576	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70577	//       "required": true,
70578	//       "type": "string"
70579	//     },
70580	//     "project": {
70581	//       "description": "Project ID for this request.",
70582	//       "location": "path",
70583	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70584	//       "required": true,
70585	//       "type": "string"
70586	//     },
70587	//     "requestId": {
70588	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
70589	//       "location": "query",
70590	//       "type": "string"
70591	//     }
70592	//   },
70593	//   "path": "projects/{project}/global/healthChecks/{healthCheck}",
70594	//   "response": {
70595	//     "$ref": "Operation"
70596	//   },
70597	//   "scopes": [
70598	//     "https://www.googleapis.com/auth/cloud-platform",
70599	//     "https://www.googleapis.com/auth/compute"
70600	//   ]
70601	// }
70602
70603}
70604
70605// method id "compute.healthChecks.get":
70606
70607type HealthChecksGetCall struct {
70608	s            *Service
70609	project      string
70610	healthCheck  string
70611	urlParams_   gensupport.URLParams
70612	ifNoneMatch_ string
70613	ctx_         context.Context
70614	header_      http.Header
70615}
70616
70617// Get: Returns the specified HealthCheck resource. Gets a list of
70618// available health checks by making a list() request.
70619//
70620// - healthCheck: Name of the HealthCheck resource to return.
70621// - project: Project ID for this request.
70622func (r *HealthChecksService) Get(project string, healthCheck string) *HealthChecksGetCall {
70623	c := &HealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70624	c.project = project
70625	c.healthCheck = healthCheck
70626	return c
70627}
70628
70629// Fields allows partial responses to be retrieved. See
70630// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70631// for more information.
70632func (c *HealthChecksGetCall) Fields(s ...googleapi.Field) *HealthChecksGetCall {
70633	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70634	return c
70635}
70636
70637// IfNoneMatch sets the optional parameter which makes the operation
70638// fail if the object's ETag matches the given value. This is useful for
70639// getting updates only after the object has changed since the last
70640// request. Use googleapi.IsNotModified to check whether the response
70641// error from Do is the result of In-None-Match.
70642func (c *HealthChecksGetCall) IfNoneMatch(entityTag string) *HealthChecksGetCall {
70643	c.ifNoneMatch_ = entityTag
70644	return c
70645}
70646
70647// Context sets the context to be used in this call's Do method. Any
70648// pending HTTP request will be aborted if the provided context is
70649// canceled.
70650func (c *HealthChecksGetCall) Context(ctx context.Context) *HealthChecksGetCall {
70651	c.ctx_ = ctx
70652	return c
70653}
70654
70655// Header returns an http.Header that can be modified by the caller to
70656// add HTTP headers to the request.
70657func (c *HealthChecksGetCall) Header() http.Header {
70658	if c.header_ == nil {
70659		c.header_ = make(http.Header)
70660	}
70661	return c.header_
70662}
70663
70664func (c *HealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
70665	reqHeaders := make(http.Header)
70666	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
70667	for k, v := range c.header_ {
70668		reqHeaders[k] = v
70669	}
70670	reqHeaders.Set("User-Agent", c.s.userAgent())
70671	if c.ifNoneMatch_ != "" {
70672		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
70673	}
70674	var body io.Reader = nil
70675	c.urlParams_.Set("alt", alt)
70676	c.urlParams_.Set("prettyPrint", "false")
70677	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks/{healthCheck}")
70678	urls += "?" + c.urlParams_.Encode()
70679	req, err := http.NewRequest("GET", urls, body)
70680	if err != nil {
70681		return nil, err
70682	}
70683	req.Header = reqHeaders
70684	googleapi.Expand(req.URL, map[string]string{
70685		"project":     c.project,
70686		"healthCheck": c.healthCheck,
70687	})
70688	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70689}
70690
70691// Do executes the "compute.healthChecks.get" call.
70692// Exactly one of *HealthCheck or error will be non-nil. Any non-2xx
70693// status code is an error. Response headers are in either
70694// *HealthCheck.ServerResponse.Header or (if a response was returned at
70695// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70696// to check whether the returned error was because
70697// http.StatusNotModified was returned.
70698func (c *HealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HealthCheck, error) {
70699	gensupport.SetOptions(c.urlParams_, opts...)
70700	res, err := c.doRequest("json")
70701	if res != nil && res.StatusCode == http.StatusNotModified {
70702		if res.Body != nil {
70703			res.Body.Close()
70704		}
70705		return nil, &googleapi.Error{
70706			Code:   res.StatusCode,
70707			Header: res.Header,
70708		}
70709	}
70710	if err != nil {
70711		return nil, err
70712	}
70713	defer googleapi.CloseBody(res)
70714	if err := googleapi.CheckResponse(res); err != nil {
70715		return nil, err
70716	}
70717	ret := &HealthCheck{
70718		ServerResponse: googleapi.ServerResponse{
70719			Header:         res.Header,
70720			HTTPStatusCode: res.StatusCode,
70721		},
70722	}
70723	target := &ret
70724	if err := gensupport.DecodeResponse(target, res); err != nil {
70725		return nil, err
70726	}
70727	return ret, nil
70728	// {
70729	//   "description": "Returns the specified HealthCheck resource. Gets a list of available health checks by making a list() request.",
70730	//   "httpMethod": "GET",
70731	//   "id": "compute.healthChecks.get",
70732	//   "parameterOrder": [
70733	//     "project",
70734	//     "healthCheck"
70735	//   ],
70736	//   "parameters": {
70737	//     "healthCheck": {
70738	//       "description": "Name of the HealthCheck resource to return.",
70739	//       "location": "path",
70740	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
70741	//       "required": true,
70742	//       "type": "string"
70743	//     },
70744	//     "project": {
70745	//       "description": "Project ID for this request.",
70746	//       "location": "path",
70747	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70748	//       "required": true,
70749	//       "type": "string"
70750	//     }
70751	//   },
70752	//   "path": "projects/{project}/global/healthChecks/{healthCheck}",
70753	//   "response": {
70754	//     "$ref": "HealthCheck"
70755	//   },
70756	//   "scopes": [
70757	//     "https://www.googleapis.com/auth/cloud-platform",
70758	//     "https://www.googleapis.com/auth/compute",
70759	//     "https://www.googleapis.com/auth/compute.readonly"
70760	//   ]
70761	// }
70762
70763}
70764
70765// method id "compute.healthChecks.insert":
70766
70767type HealthChecksInsertCall struct {
70768	s           *Service
70769	project     string
70770	healthcheck *HealthCheck
70771	urlParams_  gensupport.URLParams
70772	ctx_        context.Context
70773	header_     http.Header
70774}
70775
70776// Insert: Creates a HealthCheck resource in the specified project using
70777// the data included in the request.
70778//
70779// - project: Project ID for this request.
70780func (r *HealthChecksService) Insert(project string, healthcheck *HealthCheck) *HealthChecksInsertCall {
70781	c := &HealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70782	c.project = project
70783	c.healthcheck = healthcheck
70784	return c
70785}
70786
70787// RequestId sets the optional parameter "requestId": An optional
70788// request ID to identify requests. Specify a unique request ID so that
70789// if you must retry your request, the server will know to ignore the
70790// request if it has already been completed.
70791//
70792// For example, consider a situation where you make an initial request
70793// and the request times out. If you make the request again with the
70794// same request ID, the server can check if original operation with the
70795// same request ID was received, and if so, will ignore the second
70796// request. This prevents clients from accidentally creating duplicate
70797// commitments.
70798//
70799// The request ID must be a valid UUID with the exception that zero UUID
70800// is not supported (00000000-0000-0000-0000-000000000000).
70801func (c *HealthChecksInsertCall) RequestId(requestId string) *HealthChecksInsertCall {
70802	c.urlParams_.Set("requestId", requestId)
70803	return c
70804}
70805
70806// Fields allows partial responses to be retrieved. See
70807// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70808// for more information.
70809func (c *HealthChecksInsertCall) Fields(s ...googleapi.Field) *HealthChecksInsertCall {
70810	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70811	return c
70812}
70813
70814// Context sets the context to be used in this call's Do method. Any
70815// pending HTTP request will be aborted if the provided context is
70816// canceled.
70817func (c *HealthChecksInsertCall) Context(ctx context.Context) *HealthChecksInsertCall {
70818	c.ctx_ = ctx
70819	return c
70820}
70821
70822// Header returns an http.Header that can be modified by the caller to
70823// add HTTP headers to the request.
70824func (c *HealthChecksInsertCall) Header() http.Header {
70825	if c.header_ == nil {
70826		c.header_ = make(http.Header)
70827	}
70828	return c.header_
70829}
70830
70831func (c *HealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
70832	reqHeaders := make(http.Header)
70833	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
70834	for k, v := range c.header_ {
70835		reqHeaders[k] = v
70836	}
70837	reqHeaders.Set("User-Agent", c.s.userAgent())
70838	var body io.Reader = nil
70839	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
70840	if err != nil {
70841		return nil, err
70842	}
70843	reqHeaders.Set("Content-Type", "application/json")
70844	c.urlParams_.Set("alt", alt)
70845	c.urlParams_.Set("prettyPrint", "false")
70846	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks")
70847	urls += "?" + c.urlParams_.Encode()
70848	req, err := http.NewRequest("POST", urls, body)
70849	if err != nil {
70850		return nil, err
70851	}
70852	req.Header = reqHeaders
70853	googleapi.Expand(req.URL, map[string]string{
70854		"project": c.project,
70855	})
70856	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70857}
70858
70859// Do executes the "compute.healthChecks.insert" call.
70860// Exactly one of *Operation or error will be non-nil. Any non-2xx
70861// status code is an error. Response headers are in either
70862// *Operation.ServerResponse.Header or (if a response was returned at
70863// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70864// to check whether the returned error was because
70865// http.StatusNotModified was returned.
70866func (c *HealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70867	gensupport.SetOptions(c.urlParams_, opts...)
70868	res, err := c.doRequest("json")
70869	if res != nil && res.StatusCode == http.StatusNotModified {
70870		if res.Body != nil {
70871			res.Body.Close()
70872		}
70873		return nil, &googleapi.Error{
70874			Code:   res.StatusCode,
70875			Header: res.Header,
70876		}
70877	}
70878	if err != nil {
70879		return nil, err
70880	}
70881	defer googleapi.CloseBody(res)
70882	if err := googleapi.CheckResponse(res); err != nil {
70883		return nil, err
70884	}
70885	ret := &Operation{
70886		ServerResponse: googleapi.ServerResponse{
70887			Header:         res.Header,
70888			HTTPStatusCode: res.StatusCode,
70889		},
70890	}
70891	target := &ret
70892	if err := gensupport.DecodeResponse(target, res); err != nil {
70893		return nil, err
70894	}
70895	return ret, nil
70896	// {
70897	//   "description": "Creates a HealthCheck resource in the specified project using the data included in the request.",
70898	//   "httpMethod": "POST",
70899	//   "id": "compute.healthChecks.insert",
70900	//   "parameterOrder": [
70901	//     "project"
70902	//   ],
70903	//   "parameters": {
70904	//     "project": {
70905	//       "description": "Project ID for this request.",
70906	//       "location": "path",
70907	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70908	//       "required": true,
70909	//       "type": "string"
70910	//     },
70911	//     "requestId": {
70912	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
70913	//       "location": "query",
70914	//       "type": "string"
70915	//     }
70916	//   },
70917	//   "path": "projects/{project}/global/healthChecks",
70918	//   "request": {
70919	//     "$ref": "HealthCheck"
70920	//   },
70921	//   "response": {
70922	//     "$ref": "Operation"
70923	//   },
70924	//   "scopes": [
70925	//     "https://www.googleapis.com/auth/cloud-platform",
70926	//     "https://www.googleapis.com/auth/compute"
70927	//   ]
70928	// }
70929
70930}
70931
70932// method id "compute.healthChecks.list":
70933
70934type HealthChecksListCall struct {
70935	s            *Service
70936	project      string
70937	urlParams_   gensupport.URLParams
70938	ifNoneMatch_ string
70939	ctx_         context.Context
70940	header_      http.Header
70941}
70942
70943// List: Retrieves the list of HealthCheck resources available to the
70944// specified project.
70945//
70946// - project: Project ID for this request.
70947func (r *HealthChecksService) List(project string) *HealthChecksListCall {
70948	c := &HealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70949	c.project = project
70950	return c
70951}
70952
70953// Filter sets the optional parameter "filter": A filter expression that
70954// filters resources listed in the response. The expression must specify
70955// the field name, a comparison operator, and the value that you want to
70956// use for filtering. The value must be a string, a number, or a
70957// boolean. The comparison operator must be either `=`, `!=`, `>`, or
70958// `<`.
70959//
70960// For example, if you are filtering Compute Engine instances, you can
70961// exclude instances named `example-instance` by specifying `name !=
70962// example-instance`.
70963//
70964// You can also filter nested fields. For example, you could specify
70965// `scheduling.automaticRestart = false` to include instances only if
70966// they are not scheduled for automatic restarts. You can use filtering
70967// on nested fields to filter based on resource labels.
70968//
70969// To filter on multiple expressions, provide each separate expression
70970// within parentheses. For example: ``` (scheduling.automaticRestart =
70971// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
70972// is an `AND` expression. However, you can include `AND` and `OR`
70973// expressions explicitly. For example: ``` (cpuPlatform = "Intel
70974// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
70975// (scheduling.automaticRestart = true) ```
70976func (c *HealthChecksListCall) Filter(filter string) *HealthChecksListCall {
70977	c.urlParams_.Set("filter", filter)
70978	return c
70979}
70980
70981// MaxResults sets the optional parameter "maxResults": The maximum
70982// number of results per page that should be returned. If the number of
70983// available results is larger than `maxResults`, Compute Engine returns
70984// a `nextPageToken` that can be used to get the next page of results in
70985// subsequent list requests. Acceptable values are `0` to `500`,
70986// inclusive. (Default: `500`)
70987func (c *HealthChecksListCall) MaxResults(maxResults int64) *HealthChecksListCall {
70988	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
70989	return c
70990}
70991
70992// OrderBy sets the optional parameter "orderBy": Sorts list results by
70993// a certain order. By default, results are returned in alphanumerical
70994// order based on the resource name.
70995//
70996// You can also sort results in descending order based on the creation
70997// timestamp using `orderBy="creationTimestamp desc". This sorts
70998// results based on the `creationTimestamp` field in reverse
70999// chronological order (newest result first). Use this to sort resources
71000// like operations so that the newest operation is returned
71001// first.
71002//
71003// Currently, only sorting by `name` or `creationTimestamp desc` is
71004// supported.
71005func (c *HealthChecksListCall) OrderBy(orderBy string) *HealthChecksListCall {
71006	c.urlParams_.Set("orderBy", orderBy)
71007	return c
71008}
71009
71010// PageToken sets the optional parameter "pageToken": Specifies a page
71011// token to use. Set `pageToken` to the `nextPageToken` returned by a
71012// previous list request to get the next page of results.
71013func (c *HealthChecksListCall) PageToken(pageToken string) *HealthChecksListCall {
71014	c.urlParams_.Set("pageToken", pageToken)
71015	return c
71016}
71017
71018// ReturnPartialSuccess sets the optional parameter
71019// "returnPartialSuccess": Opt-in for partial success behavior which
71020// provides partial results in case of failure. The default value is
71021// false.
71022func (c *HealthChecksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *HealthChecksListCall {
71023	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
71024	return c
71025}
71026
71027// Fields allows partial responses to be retrieved. See
71028// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71029// for more information.
71030func (c *HealthChecksListCall) Fields(s ...googleapi.Field) *HealthChecksListCall {
71031	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71032	return c
71033}
71034
71035// IfNoneMatch sets the optional parameter which makes the operation
71036// fail if the object's ETag matches the given value. This is useful for
71037// getting updates only after the object has changed since the last
71038// request. Use googleapi.IsNotModified to check whether the response
71039// error from Do is the result of In-None-Match.
71040func (c *HealthChecksListCall) IfNoneMatch(entityTag string) *HealthChecksListCall {
71041	c.ifNoneMatch_ = entityTag
71042	return c
71043}
71044
71045// Context sets the context to be used in this call's Do method. Any
71046// pending HTTP request will be aborted if the provided context is
71047// canceled.
71048func (c *HealthChecksListCall) Context(ctx context.Context) *HealthChecksListCall {
71049	c.ctx_ = ctx
71050	return c
71051}
71052
71053// Header returns an http.Header that can be modified by the caller to
71054// add HTTP headers to the request.
71055func (c *HealthChecksListCall) Header() http.Header {
71056	if c.header_ == nil {
71057		c.header_ = make(http.Header)
71058	}
71059	return c.header_
71060}
71061
71062func (c *HealthChecksListCall) doRequest(alt string) (*http.Response, error) {
71063	reqHeaders := make(http.Header)
71064	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
71065	for k, v := range c.header_ {
71066		reqHeaders[k] = v
71067	}
71068	reqHeaders.Set("User-Agent", c.s.userAgent())
71069	if c.ifNoneMatch_ != "" {
71070		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
71071	}
71072	var body io.Reader = nil
71073	c.urlParams_.Set("alt", alt)
71074	c.urlParams_.Set("prettyPrint", "false")
71075	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks")
71076	urls += "?" + c.urlParams_.Encode()
71077	req, err := http.NewRequest("GET", urls, body)
71078	if err != nil {
71079		return nil, err
71080	}
71081	req.Header = reqHeaders
71082	googleapi.Expand(req.URL, map[string]string{
71083		"project": c.project,
71084	})
71085	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71086}
71087
71088// Do executes the "compute.healthChecks.list" call.
71089// Exactly one of *HealthCheckList or error will be non-nil. Any non-2xx
71090// status code is an error. Response headers are in either
71091// *HealthCheckList.ServerResponse.Header or (if a response was returned
71092// at all) in error.(*googleapi.Error).Header. Use
71093// googleapi.IsNotModified to check whether the returned error was
71094// because http.StatusNotModified was returned.
71095func (c *HealthChecksListCall) Do(opts ...googleapi.CallOption) (*HealthCheckList, error) {
71096	gensupport.SetOptions(c.urlParams_, opts...)
71097	res, err := c.doRequest("json")
71098	if res != nil && res.StatusCode == http.StatusNotModified {
71099		if res.Body != nil {
71100			res.Body.Close()
71101		}
71102		return nil, &googleapi.Error{
71103			Code:   res.StatusCode,
71104			Header: res.Header,
71105		}
71106	}
71107	if err != nil {
71108		return nil, err
71109	}
71110	defer googleapi.CloseBody(res)
71111	if err := googleapi.CheckResponse(res); err != nil {
71112		return nil, err
71113	}
71114	ret := &HealthCheckList{
71115		ServerResponse: googleapi.ServerResponse{
71116			Header:         res.Header,
71117			HTTPStatusCode: res.StatusCode,
71118		},
71119	}
71120	target := &ret
71121	if err := gensupport.DecodeResponse(target, res); err != nil {
71122		return nil, err
71123	}
71124	return ret, nil
71125	// {
71126	//   "description": "Retrieves the list of HealthCheck resources available to the specified project.",
71127	//   "httpMethod": "GET",
71128	//   "id": "compute.healthChecks.list",
71129	//   "parameterOrder": [
71130	//     "project"
71131	//   ],
71132	//   "parameters": {
71133	//     "filter": {
71134	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
71135	//       "location": "query",
71136	//       "type": "string"
71137	//     },
71138	//     "maxResults": {
71139	//       "default": "500",
71140	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
71141	//       "format": "uint32",
71142	//       "location": "query",
71143	//       "minimum": "0",
71144	//       "type": "integer"
71145	//     },
71146	//     "orderBy": {
71147	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
71148	//       "location": "query",
71149	//       "type": "string"
71150	//     },
71151	//     "pageToken": {
71152	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
71153	//       "location": "query",
71154	//       "type": "string"
71155	//     },
71156	//     "project": {
71157	//       "description": "Project ID for this request.",
71158	//       "location": "path",
71159	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71160	//       "required": true,
71161	//       "type": "string"
71162	//     },
71163	//     "returnPartialSuccess": {
71164	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
71165	//       "location": "query",
71166	//       "type": "boolean"
71167	//     }
71168	//   },
71169	//   "path": "projects/{project}/global/healthChecks",
71170	//   "response": {
71171	//     "$ref": "HealthCheckList"
71172	//   },
71173	//   "scopes": [
71174	//     "https://www.googleapis.com/auth/cloud-platform",
71175	//     "https://www.googleapis.com/auth/compute",
71176	//     "https://www.googleapis.com/auth/compute.readonly"
71177	//   ]
71178	// }
71179
71180}
71181
71182// Pages invokes f for each page of results.
71183// A non-nil error returned from f will halt the iteration.
71184// The provided context supersedes any context provided to the Context method.
71185func (c *HealthChecksListCall) Pages(ctx context.Context, f func(*HealthCheckList) error) error {
71186	c.ctx_ = ctx
71187	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
71188	for {
71189		x, err := c.Do()
71190		if err != nil {
71191			return err
71192		}
71193		if err := f(x); err != nil {
71194			return err
71195		}
71196		if x.NextPageToken == "" {
71197			return nil
71198		}
71199		c.PageToken(x.NextPageToken)
71200	}
71201}
71202
71203// method id "compute.healthChecks.patch":
71204
71205type HealthChecksPatchCall struct {
71206	s           *Service
71207	project     string
71208	healthCheck string
71209	healthcheck *HealthCheck
71210	urlParams_  gensupport.URLParams
71211	ctx_        context.Context
71212	header_     http.Header
71213}
71214
71215// Patch: Updates a HealthCheck resource in the specified project using
71216// the data included in the request. This method supports PATCH
71217// semantics and uses the JSON merge patch format and processing rules.
71218//
71219// - healthCheck: Name of the HealthCheck resource to patch.
71220// - project: Project ID for this request.
71221func (r *HealthChecksService) Patch(project string, healthCheck string, healthcheck *HealthCheck) *HealthChecksPatchCall {
71222	c := &HealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71223	c.project = project
71224	c.healthCheck = healthCheck
71225	c.healthcheck = healthcheck
71226	return c
71227}
71228
71229// RequestId sets the optional parameter "requestId": An optional
71230// request ID to identify requests. Specify a unique request ID so that
71231// if you must retry your request, the server will know to ignore the
71232// request if it has already been completed.
71233//
71234// For example, consider a situation where you make an initial request
71235// and the request times out. If you make the request again with the
71236// same request ID, the server can check if original operation with the
71237// same request ID was received, and if so, will ignore the second
71238// request. This prevents clients from accidentally creating duplicate
71239// commitments.
71240//
71241// The request ID must be a valid UUID with the exception that zero UUID
71242// is not supported (00000000-0000-0000-0000-000000000000).
71243func (c *HealthChecksPatchCall) RequestId(requestId string) *HealthChecksPatchCall {
71244	c.urlParams_.Set("requestId", requestId)
71245	return c
71246}
71247
71248// Fields allows partial responses to be retrieved. See
71249// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71250// for more information.
71251func (c *HealthChecksPatchCall) Fields(s ...googleapi.Field) *HealthChecksPatchCall {
71252	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71253	return c
71254}
71255
71256// Context sets the context to be used in this call's Do method. Any
71257// pending HTTP request will be aborted if the provided context is
71258// canceled.
71259func (c *HealthChecksPatchCall) Context(ctx context.Context) *HealthChecksPatchCall {
71260	c.ctx_ = ctx
71261	return c
71262}
71263
71264// Header returns an http.Header that can be modified by the caller to
71265// add HTTP headers to the request.
71266func (c *HealthChecksPatchCall) Header() http.Header {
71267	if c.header_ == nil {
71268		c.header_ = make(http.Header)
71269	}
71270	return c.header_
71271}
71272
71273func (c *HealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
71274	reqHeaders := make(http.Header)
71275	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
71276	for k, v := range c.header_ {
71277		reqHeaders[k] = v
71278	}
71279	reqHeaders.Set("User-Agent", c.s.userAgent())
71280	var body io.Reader = nil
71281	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
71282	if err != nil {
71283		return nil, err
71284	}
71285	reqHeaders.Set("Content-Type", "application/json")
71286	c.urlParams_.Set("alt", alt)
71287	c.urlParams_.Set("prettyPrint", "false")
71288	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks/{healthCheck}")
71289	urls += "?" + c.urlParams_.Encode()
71290	req, err := http.NewRequest("PATCH", urls, body)
71291	if err != nil {
71292		return nil, err
71293	}
71294	req.Header = reqHeaders
71295	googleapi.Expand(req.URL, map[string]string{
71296		"project":     c.project,
71297		"healthCheck": c.healthCheck,
71298	})
71299	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71300}
71301
71302// Do executes the "compute.healthChecks.patch" call.
71303// Exactly one of *Operation or error will be non-nil. Any non-2xx
71304// status code is an error. Response headers are in either
71305// *Operation.ServerResponse.Header or (if a response was returned at
71306// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71307// to check whether the returned error was because
71308// http.StatusNotModified was returned.
71309func (c *HealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71310	gensupport.SetOptions(c.urlParams_, opts...)
71311	res, err := c.doRequest("json")
71312	if res != nil && res.StatusCode == http.StatusNotModified {
71313		if res.Body != nil {
71314			res.Body.Close()
71315		}
71316		return nil, &googleapi.Error{
71317			Code:   res.StatusCode,
71318			Header: res.Header,
71319		}
71320	}
71321	if err != nil {
71322		return nil, err
71323	}
71324	defer googleapi.CloseBody(res)
71325	if err := googleapi.CheckResponse(res); err != nil {
71326		return nil, err
71327	}
71328	ret := &Operation{
71329		ServerResponse: googleapi.ServerResponse{
71330			Header:         res.Header,
71331			HTTPStatusCode: res.StatusCode,
71332		},
71333	}
71334	target := &ret
71335	if err := gensupport.DecodeResponse(target, res); err != nil {
71336		return nil, err
71337	}
71338	return ret, nil
71339	// {
71340	//   "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.",
71341	//   "httpMethod": "PATCH",
71342	//   "id": "compute.healthChecks.patch",
71343	//   "parameterOrder": [
71344	//     "project",
71345	//     "healthCheck"
71346	//   ],
71347	//   "parameters": {
71348	//     "healthCheck": {
71349	//       "description": "Name of the HealthCheck resource to patch.",
71350	//       "location": "path",
71351	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
71352	//       "required": true,
71353	//       "type": "string"
71354	//     },
71355	//     "project": {
71356	//       "description": "Project ID for this request.",
71357	//       "location": "path",
71358	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71359	//       "required": true,
71360	//       "type": "string"
71361	//     },
71362	//     "requestId": {
71363	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
71364	//       "location": "query",
71365	//       "type": "string"
71366	//     }
71367	//   },
71368	//   "path": "projects/{project}/global/healthChecks/{healthCheck}",
71369	//   "request": {
71370	//     "$ref": "HealthCheck"
71371	//   },
71372	//   "response": {
71373	//     "$ref": "Operation"
71374	//   },
71375	//   "scopes": [
71376	//     "https://www.googleapis.com/auth/cloud-platform",
71377	//     "https://www.googleapis.com/auth/compute"
71378	//   ]
71379	// }
71380
71381}
71382
71383// method id "compute.healthChecks.update":
71384
71385type HealthChecksUpdateCall struct {
71386	s           *Service
71387	project     string
71388	healthCheck string
71389	healthcheck *HealthCheck
71390	urlParams_  gensupport.URLParams
71391	ctx_        context.Context
71392	header_     http.Header
71393}
71394
71395// Update: Updates a HealthCheck resource in the specified project using
71396// the data included in the request.
71397//
71398// - healthCheck: Name of the HealthCheck resource to update.
71399// - project: Project ID for this request.
71400func (r *HealthChecksService) Update(project string, healthCheck string, healthcheck *HealthCheck) *HealthChecksUpdateCall {
71401	c := &HealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71402	c.project = project
71403	c.healthCheck = healthCheck
71404	c.healthcheck = healthcheck
71405	return c
71406}
71407
71408// RequestId sets the optional parameter "requestId": An optional
71409// request ID to identify requests. Specify a unique request ID so that
71410// if you must retry your request, the server will know to ignore the
71411// request if it has already been completed.
71412//
71413// For example, consider a situation where you make an initial request
71414// and the request times out. If you make the request again with the
71415// same request ID, the server can check if original operation with the
71416// same request ID was received, and if so, will ignore the second
71417// request. This prevents clients from accidentally creating duplicate
71418// commitments.
71419//
71420// The request ID must be a valid UUID with the exception that zero UUID
71421// is not supported (00000000-0000-0000-0000-000000000000).
71422func (c *HealthChecksUpdateCall) RequestId(requestId string) *HealthChecksUpdateCall {
71423	c.urlParams_.Set("requestId", requestId)
71424	return c
71425}
71426
71427// Fields allows partial responses to be retrieved. See
71428// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71429// for more information.
71430func (c *HealthChecksUpdateCall) Fields(s ...googleapi.Field) *HealthChecksUpdateCall {
71431	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71432	return c
71433}
71434
71435// Context sets the context to be used in this call's Do method. Any
71436// pending HTTP request will be aborted if the provided context is
71437// canceled.
71438func (c *HealthChecksUpdateCall) Context(ctx context.Context) *HealthChecksUpdateCall {
71439	c.ctx_ = ctx
71440	return c
71441}
71442
71443// Header returns an http.Header that can be modified by the caller to
71444// add HTTP headers to the request.
71445func (c *HealthChecksUpdateCall) Header() http.Header {
71446	if c.header_ == nil {
71447		c.header_ = make(http.Header)
71448	}
71449	return c.header_
71450}
71451
71452func (c *HealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
71453	reqHeaders := make(http.Header)
71454	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
71455	for k, v := range c.header_ {
71456		reqHeaders[k] = v
71457	}
71458	reqHeaders.Set("User-Agent", c.s.userAgent())
71459	var body io.Reader = nil
71460	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
71461	if err != nil {
71462		return nil, err
71463	}
71464	reqHeaders.Set("Content-Type", "application/json")
71465	c.urlParams_.Set("alt", alt)
71466	c.urlParams_.Set("prettyPrint", "false")
71467	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/healthChecks/{healthCheck}")
71468	urls += "?" + c.urlParams_.Encode()
71469	req, err := http.NewRequest("PUT", urls, body)
71470	if err != nil {
71471		return nil, err
71472	}
71473	req.Header = reqHeaders
71474	googleapi.Expand(req.URL, map[string]string{
71475		"project":     c.project,
71476		"healthCheck": c.healthCheck,
71477	})
71478	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71479}
71480
71481// Do executes the "compute.healthChecks.update" call.
71482// Exactly one of *Operation or error will be non-nil. Any non-2xx
71483// status code is an error. Response headers are in either
71484// *Operation.ServerResponse.Header or (if a response was returned at
71485// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71486// to check whether the returned error was because
71487// http.StatusNotModified was returned.
71488func (c *HealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71489	gensupport.SetOptions(c.urlParams_, opts...)
71490	res, err := c.doRequest("json")
71491	if res != nil && res.StatusCode == http.StatusNotModified {
71492		if res.Body != nil {
71493			res.Body.Close()
71494		}
71495		return nil, &googleapi.Error{
71496			Code:   res.StatusCode,
71497			Header: res.Header,
71498		}
71499	}
71500	if err != nil {
71501		return nil, err
71502	}
71503	defer googleapi.CloseBody(res)
71504	if err := googleapi.CheckResponse(res); err != nil {
71505		return nil, err
71506	}
71507	ret := &Operation{
71508		ServerResponse: googleapi.ServerResponse{
71509			Header:         res.Header,
71510			HTTPStatusCode: res.StatusCode,
71511		},
71512	}
71513	target := &ret
71514	if err := gensupport.DecodeResponse(target, res); err != nil {
71515		return nil, err
71516	}
71517	return ret, nil
71518	// {
71519	//   "description": "Updates a HealthCheck resource in the specified project using the data included in the request.",
71520	//   "httpMethod": "PUT",
71521	//   "id": "compute.healthChecks.update",
71522	//   "parameterOrder": [
71523	//     "project",
71524	//     "healthCheck"
71525	//   ],
71526	//   "parameters": {
71527	//     "healthCheck": {
71528	//       "description": "Name of the HealthCheck resource to update.",
71529	//       "location": "path",
71530	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
71531	//       "required": true,
71532	//       "type": "string"
71533	//     },
71534	//     "project": {
71535	//       "description": "Project ID for this request.",
71536	//       "location": "path",
71537	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71538	//       "required": true,
71539	//       "type": "string"
71540	//     },
71541	//     "requestId": {
71542	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
71543	//       "location": "query",
71544	//       "type": "string"
71545	//     }
71546	//   },
71547	//   "path": "projects/{project}/global/healthChecks/{healthCheck}",
71548	//   "request": {
71549	//     "$ref": "HealthCheck"
71550	//   },
71551	//   "response": {
71552	//     "$ref": "Operation"
71553	//   },
71554	//   "scopes": [
71555	//     "https://www.googleapis.com/auth/cloud-platform",
71556	//     "https://www.googleapis.com/auth/compute"
71557	//   ]
71558	// }
71559
71560}
71561
71562// method id "compute.httpHealthChecks.delete":
71563
71564type HttpHealthChecksDeleteCall struct {
71565	s               *Service
71566	project         string
71567	httpHealthCheck string
71568	urlParams_      gensupport.URLParams
71569	ctx_            context.Context
71570	header_         http.Header
71571}
71572
71573// Delete: Deletes the specified HttpHealthCheck resource.
71574//
71575// - httpHealthCheck: Name of the HttpHealthCheck resource to delete.
71576// - project: Project ID for this request.
71577// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/delete
71578func (r *HttpHealthChecksService) Delete(project string, httpHealthCheck string) *HttpHealthChecksDeleteCall {
71579	c := &HttpHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71580	c.project = project
71581	c.httpHealthCheck = httpHealthCheck
71582	return c
71583}
71584
71585// RequestId sets the optional parameter "requestId": An optional
71586// request ID to identify requests. Specify a unique request ID so that
71587// if you must retry your request, the server will know to ignore the
71588// request if it has already been completed.
71589//
71590// For example, consider a situation where you make an initial request
71591// and the request times out. If you make the request again with the
71592// same request ID, the server can check if original operation with the
71593// same request ID was received, and if so, will ignore the second
71594// request. This prevents clients from accidentally creating duplicate
71595// commitments.
71596//
71597// The request ID must be a valid UUID with the exception that zero UUID
71598// is not supported (00000000-0000-0000-0000-000000000000).
71599func (c *HttpHealthChecksDeleteCall) RequestId(requestId string) *HttpHealthChecksDeleteCall {
71600	c.urlParams_.Set("requestId", requestId)
71601	return c
71602}
71603
71604// Fields allows partial responses to be retrieved. See
71605// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71606// for more information.
71607func (c *HttpHealthChecksDeleteCall) Fields(s ...googleapi.Field) *HttpHealthChecksDeleteCall {
71608	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71609	return c
71610}
71611
71612// Context sets the context to be used in this call's Do method. Any
71613// pending HTTP request will be aborted if the provided context is
71614// canceled.
71615func (c *HttpHealthChecksDeleteCall) Context(ctx context.Context) *HttpHealthChecksDeleteCall {
71616	c.ctx_ = ctx
71617	return c
71618}
71619
71620// Header returns an http.Header that can be modified by the caller to
71621// add HTTP headers to the request.
71622func (c *HttpHealthChecksDeleteCall) Header() http.Header {
71623	if c.header_ == nil {
71624		c.header_ = make(http.Header)
71625	}
71626	return c.header_
71627}
71628
71629func (c *HttpHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
71630	reqHeaders := make(http.Header)
71631	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
71632	for k, v := range c.header_ {
71633		reqHeaders[k] = v
71634	}
71635	reqHeaders.Set("User-Agent", c.s.userAgent())
71636	var body io.Reader = nil
71637	c.urlParams_.Set("alt", alt)
71638	c.urlParams_.Set("prettyPrint", "false")
71639	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks/{httpHealthCheck}")
71640	urls += "?" + c.urlParams_.Encode()
71641	req, err := http.NewRequest("DELETE", urls, body)
71642	if err != nil {
71643		return nil, err
71644	}
71645	req.Header = reqHeaders
71646	googleapi.Expand(req.URL, map[string]string{
71647		"project":         c.project,
71648		"httpHealthCheck": c.httpHealthCheck,
71649	})
71650	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71651}
71652
71653// Do executes the "compute.httpHealthChecks.delete" call.
71654// Exactly one of *Operation or error will be non-nil. Any non-2xx
71655// status code is an error. Response headers are in either
71656// *Operation.ServerResponse.Header or (if a response was returned at
71657// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71658// to check whether the returned error was because
71659// http.StatusNotModified was returned.
71660func (c *HttpHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71661	gensupport.SetOptions(c.urlParams_, opts...)
71662	res, err := c.doRequest("json")
71663	if res != nil && res.StatusCode == http.StatusNotModified {
71664		if res.Body != nil {
71665			res.Body.Close()
71666		}
71667		return nil, &googleapi.Error{
71668			Code:   res.StatusCode,
71669			Header: res.Header,
71670		}
71671	}
71672	if err != nil {
71673		return nil, err
71674	}
71675	defer googleapi.CloseBody(res)
71676	if err := googleapi.CheckResponse(res); err != nil {
71677		return nil, err
71678	}
71679	ret := &Operation{
71680		ServerResponse: googleapi.ServerResponse{
71681			Header:         res.Header,
71682			HTTPStatusCode: res.StatusCode,
71683		},
71684	}
71685	target := &ret
71686	if err := gensupport.DecodeResponse(target, res); err != nil {
71687		return nil, err
71688	}
71689	return ret, nil
71690	// {
71691	//   "description": "Deletes the specified HttpHealthCheck resource.",
71692	//   "httpMethod": "DELETE",
71693	//   "id": "compute.httpHealthChecks.delete",
71694	//   "parameterOrder": [
71695	//     "project",
71696	//     "httpHealthCheck"
71697	//   ],
71698	//   "parameters": {
71699	//     "httpHealthCheck": {
71700	//       "description": "Name of the HttpHealthCheck resource to delete.",
71701	//       "location": "path",
71702	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
71703	//       "required": true,
71704	//       "type": "string"
71705	//     },
71706	//     "project": {
71707	//       "description": "Project ID for this request.",
71708	//       "location": "path",
71709	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71710	//       "required": true,
71711	//       "type": "string"
71712	//     },
71713	//     "requestId": {
71714	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
71715	//       "location": "query",
71716	//       "type": "string"
71717	//     }
71718	//   },
71719	//   "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}",
71720	//   "response": {
71721	//     "$ref": "Operation"
71722	//   },
71723	//   "scopes": [
71724	//     "https://www.googleapis.com/auth/cloud-platform",
71725	//     "https://www.googleapis.com/auth/compute"
71726	//   ]
71727	// }
71728
71729}
71730
71731// method id "compute.httpHealthChecks.get":
71732
71733type HttpHealthChecksGetCall struct {
71734	s               *Service
71735	project         string
71736	httpHealthCheck string
71737	urlParams_      gensupport.URLParams
71738	ifNoneMatch_    string
71739	ctx_            context.Context
71740	header_         http.Header
71741}
71742
71743// Get: Returns the specified HttpHealthCheck resource. Gets a list of
71744// available HTTP health checks by making a list() request.
71745//
71746// - httpHealthCheck: Name of the HttpHealthCheck resource to return.
71747// - project: Project ID for this request.
71748// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/get
71749func (r *HttpHealthChecksService) Get(project string, httpHealthCheck string) *HttpHealthChecksGetCall {
71750	c := &HttpHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71751	c.project = project
71752	c.httpHealthCheck = httpHealthCheck
71753	return c
71754}
71755
71756// Fields allows partial responses to be retrieved. See
71757// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71758// for more information.
71759func (c *HttpHealthChecksGetCall) Fields(s ...googleapi.Field) *HttpHealthChecksGetCall {
71760	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71761	return c
71762}
71763
71764// IfNoneMatch sets the optional parameter which makes the operation
71765// fail if the object's ETag matches the given value. This is useful for
71766// getting updates only after the object has changed since the last
71767// request. Use googleapi.IsNotModified to check whether the response
71768// error from Do is the result of In-None-Match.
71769func (c *HttpHealthChecksGetCall) IfNoneMatch(entityTag string) *HttpHealthChecksGetCall {
71770	c.ifNoneMatch_ = entityTag
71771	return c
71772}
71773
71774// Context sets the context to be used in this call's Do method. Any
71775// pending HTTP request will be aborted if the provided context is
71776// canceled.
71777func (c *HttpHealthChecksGetCall) Context(ctx context.Context) *HttpHealthChecksGetCall {
71778	c.ctx_ = ctx
71779	return c
71780}
71781
71782// Header returns an http.Header that can be modified by the caller to
71783// add HTTP headers to the request.
71784func (c *HttpHealthChecksGetCall) Header() http.Header {
71785	if c.header_ == nil {
71786		c.header_ = make(http.Header)
71787	}
71788	return c.header_
71789}
71790
71791func (c *HttpHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
71792	reqHeaders := make(http.Header)
71793	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
71794	for k, v := range c.header_ {
71795		reqHeaders[k] = v
71796	}
71797	reqHeaders.Set("User-Agent", c.s.userAgent())
71798	if c.ifNoneMatch_ != "" {
71799		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
71800	}
71801	var body io.Reader = nil
71802	c.urlParams_.Set("alt", alt)
71803	c.urlParams_.Set("prettyPrint", "false")
71804	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks/{httpHealthCheck}")
71805	urls += "?" + c.urlParams_.Encode()
71806	req, err := http.NewRequest("GET", urls, body)
71807	if err != nil {
71808		return nil, err
71809	}
71810	req.Header = reqHeaders
71811	googleapi.Expand(req.URL, map[string]string{
71812		"project":         c.project,
71813		"httpHealthCheck": c.httpHealthCheck,
71814	})
71815	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71816}
71817
71818// Do executes the "compute.httpHealthChecks.get" call.
71819// Exactly one of *HttpHealthCheck or error will be non-nil. Any non-2xx
71820// status code is an error. Response headers are in either
71821// *HttpHealthCheck.ServerResponse.Header or (if a response was returned
71822// at all) in error.(*googleapi.Error).Header. Use
71823// googleapi.IsNotModified to check whether the returned error was
71824// because http.StatusNotModified was returned.
71825func (c *HttpHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HttpHealthCheck, error) {
71826	gensupport.SetOptions(c.urlParams_, opts...)
71827	res, err := c.doRequest("json")
71828	if res != nil && res.StatusCode == http.StatusNotModified {
71829		if res.Body != nil {
71830			res.Body.Close()
71831		}
71832		return nil, &googleapi.Error{
71833			Code:   res.StatusCode,
71834			Header: res.Header,
71835		}
71836	}
71837	if err != nil {
71838		return nil, err
71839	}
71840	defer googleapi.CloseBody(res)
71841	if err := googleapi.CheckResponse(res); err != nil {
71842		return nil, err
71843	}
71844	ret := &HttpHealthCheck{
71845		ServerResponse: googleapi.ServerResponse{
71846			Header:         res.Header,
71847			HTTPStatusCode: res.StatusCode,
71848		},
71849	}
71850	target := &ret
71851	if err := gensupport.DecodeResponse(target, res); err != nil {
71852		return nil, err
71853	}
71854	return ret, nil
71855	// {
71856	//   "description": "Returns the specified HttpHealthCheck resource. Gets a list of available HTTP health checks by making a list() request.",
71857	//   "httpMethod": "GET",
71858	//   "id": "compute.httpHealthChecks.get",
71859	//   "parameterOrder": [
71860	//     "project",
71861	//     "httpHealthCheck"
71862	//   ],
71863	//   "parameters": {
71864	//     "httpHealthCheck": {
71865	//       "description": "Name of the HttpHealthCheck resource to return.",
71866	//       "location": "path",
71867	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
71868	//       "required": true,
71869	//       "type": "string"
71870	//     },
71871	//     "project": {
71872	//       "description": "Project ID for this request.",
71873	//       "location": "path",
71874	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71875	//       "required": true,
71876	//       "type": "string"
71877	//     }
71878	//   },
71879	//   "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}",
71880	//   "response": {
71881	//     "$ref": "HttpHealthCheck"
71882	//   },
71883	//   "scopes": [
71884	//     "https://www.googleapis.com/auth/cloud-platform",
71885	//     "https://www.googleapis.com/auth/compute",
71886	//     "https://www.googleapis.com/auth/compute.readonly"
71887	//   ]
71888	// }
71889
71890}
71891
71892// method id "compute.httpHealthChecks.insert":
71893
71894type HttpHealthChecksInsertCall struct {
71895	s               *Service
71896	project         string
71897	httphealthcheck *HttpHealthCheck
71898	urlParams_      gensupport.URLParams
71899	ctx_            context.Context
71900	header_         http.Header
71901}
71902
71903// Insert: Creates a HttpHealthCheck resource in the specified project
71904// using the data included in the request.
71905//
71906// - project: Project ID for this request.
71907// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/insert
71908func (r *HttpHealthChecksService) Insert(project string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksInsertCall {
71909	c := &HttpHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71910	c.project = project
71911	c.httphealthcheck = httphealthcheck
71912	return c
71913}
71914
71915// RequestId sets the optional parameter "requestId": An optional
71916// request ID to identify requests. Specify a unique request ID so that
71917// if you must retry your request, the server will know to ignore the
71918// request if it has already been completed.
71919//
71920// For example, consider a situation where you make an initial request
71921// and the request times out. If you make the request again with the
71922// same request ID, the server can check if original operation with the
71923// same request ID was received, and if so, will ignore the second
71924// request. This prevents clients from accidentally creating duplicate
71925// commitments.
71926//
71927// The request ID must be a valid UUID with the exception that zero UUID
71928// is not supported (00000000-0000-0000-0000-000000000000).
71929func (c *HttpHealthChecksInsertCall) RequestId(requestId string) *HttpHealthChecksInsertCall {
71930	c.urlParams_.Set("requestId", requestId)
71931	return c
71932}
71933
71934// Fields allows partial responses to be retrieved. See
71935// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71936// for more information.
71937func (c *HttpHealthChecksInsertCall) Fields(s ...googleapi.Field) *HttpHealthChecksInsertCall {
71938	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71939	return c
71940}
71941
71942// Context sets the context to be used in this call's Do method. Any
71943// pending HTTP request will be aborted if the provided context is
71944// canceled.
71945func (c *HttpHealthChecksInsertCall) Context(ctx context.Context) *HttpHealthChecksInsertCall {
71946	c.ctx_ = ctx
71947	return c
71948}
71949
71950// Header returns an http.Header that can be modified by the caller to
71951// add HTTP headers to the request.
71952func (c *HttpHealthChecksInsertCall) Header() http.Header {
71953	if c.header_ == nil {
71954		c.header_ = make(http.Header)
71955	}
71956	return c.header_
71957}
71958
71959func (c *HttpHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
71960	reqHeaders := make(http.Header)
71961	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
71962	for k, v := range c.header_ {
71963		reqHeaders[k] = v
71964	}
71965	reqHeaders.Set("User-Agent", c.s.userAgent())
71966	var body io.Reader = nil
71967	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
71968	if err != nil {
71969		return nil, err
71970	}
71971	reqHeaders.Set("Content-Type", "application/json")
71972	c.urlParams_.Set("alt", alt)
71973	c.urlParams_.Set("prettyPrint", "false")
71974	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks")
71975	urls += "?" + c.urlParams_.Encode()
71976	req, err := http.NewRequest("POST", urls, body)
71977	if err != nil {
71978		return nil, err
71979	}
71980	req.Header = reqHeaders
71981	googleapi.Expand(req.URL, map[string]string{
71982		"project": c.project,
71983	})
71984	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71985}
71986
71987// Do executes the "compute.httpHealthChecks.insert" call.
71988// Exactly one of *Operation or error will be non-nil. Any non-2xx
71989// status code is an error. Response headers are in either
71990// *Operation.ServerResponse.Header or (if a response was returned at
71991// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71992// to check whether the returned error was because
71993// http.StatusNotModified was returned.
71994func (c *HttpHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71995	gensupport.SetOptions(c.urlParams_, opts...)
71996	res, err := c.doRequest("json")
71997	if res != nil && res.StatusCode == http.StatusNotModified {
71998		if res.Body != nil {
71999			res.Body.Close()
72000		}
72001		return nil, &googleapi.Error{
72002			Code:   res.StatusCode,
72003			Header: res.Header,
72004		}
72005	}
72006	if err != nil {
72007		return nil, err
72008	}
72009	defer googleapi.CloseBody(res)
72010	if err := googleapi.CheckResponse(res); err != nil {
72011		return nil, err
72012	}
72013	ret := &Operation{
72014		ServerResponse: googleapi.ServerResponse{
72015			Header:         res.Header,
72016			HTTPStatusCode: res.StatusCode,
72017		},
72018	}
72019	target := &ret
72020	if err := gensupport.DecodeResponse(target, res); err != nil {
72021		return nil, err
72022	}
72023	return ret, nil
72024	// {
72025	//   "description": "Creates a HttpHealthCheck resource in the specified project using the data included in the request.",
72026	//   "httpMethod": "POST",
72027	//   "id": "compute.httpHealthChecks.insert",
72028	//   "parameterOrder": [
72029	//     "project"
72030	//   ],
72031	//   "parameters": {
72032	//     "project": {
72033	//       "description": "Project ID for this request.",
72034	//       "location": "path",
72035	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72036	//       "required": true,
72037	//       "type": "string"
72038	//     },
72039	//     "requestId": {
72040	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
72041	//       "location": "query",
72042	//       "type": "string"
72043	//     }
72044	//   },
72045	//   "path": "projects/{project}/global/httpHealthChecks",
72046	//   "request": {
72047	//     "$ref": "HttpHealthCheck"
72048	//   },
72049	//   "response": {
72050	//     "$ref": "Operation"
72051	//   },
72052	//   "scopes": [
72053	//     "https://www.googleapis.com/auth/cloud-platform",
72054	//     "https://www.googleapis.com/auth/compute"
72055	//   ]
72056	// }
72057
72058}
72059
72060// method id "compute.httpHealthChecks.list":
72061
72062type HttpHealthChecksListCall struct {
72063	s            *Service
72064	project      string
72065	urlParams_   gensupport.URLParams
72066	ifNoneMatch_ string
72067	ctx_         context.Context
72068	header_      http.Header
72069}
72070
72071// List: Retrieves the list of HttpHealthCheck resources available to
72072// the specified project.
72073//
72074// - project: Project ID for this request.
72075// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/list
72076func (r *HttpHealthChecksService) List(project string) *HttpHealthChecksListCall {
72077	c := &HttpHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72078	c.project = project
72079	return c
72080}
72081
72082// Filter sets the optional parameter "filter": A filter expression that
72083// filters resources listed in the response. The expression must specify
72084// the field name, a comparison operator, and the value that you want to
72085// use for filtering. The value must be a string, a number, or a
72086// boolean. The comparison operator must be either `=`, `!=`, `>`, or
72087// `<`.
72088//
72089// For example, if you are filtering Compute Engine instances, you can
72090// exclude instances named `example-instance` by specifying `name !=
72091// example-instance`.
72092//
72093// You can also filter nested fields. For example, you could specify
72094// `scheduling.automaticRestart = false` to include instances only if
72095// they are not scheduled for automatic restarts. You can use filtering
72096// on nested fields to filter based on resource labels.
72097//
72098// To filter on multiple expressions, provide each separate expression
72099// within parentheses. For example: ``` (scheduling.automaticRestart =
72100// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
72101// is an `AND` expression. However, you can include `AND` and `OR`
72102// expressions explicitly. For example: ``` (cpuPlatform = "Intel
72103// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
72104// (scheduling.automaticRestart = true) ```
72105func (c *HttpHealthChecksListCall) Filter(filter string) *HttpHealthChecksListCall {
72106	c.urlParams_.Set("filter", filter)
72107	return c
72108}
72109
72110// MaxResults sets the optional parameter "maxResults": The maximum
72111// number of results per page that should be returned. If the number of
72112// available results is larger than `maxResults`, Compute Engine returns
72113// a `nextPageToken` that can be used to get the next page of results in
72114// subsequent list requests. Acceptable values are `0` to `500`,
72115// inclusive. (Default: `500`)
72116func (c *HttpHealthChecksListCall) MaxResults(maxResults int64) *HttpHealthChecksListCall {
72117	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
72118	return c
72119}
72120
72121// OrderBy sets the optional parameter "orderBy": Sorts list results by
72122// a certain order. By default, results are returned in alphanumerical
72123// order based on the resource name.
72124//
72125// You can also sort results in descending order based on the creation
72126// timestamp using `orderBy="creationTimestamp desc". This sorts
72127// results based on the `creationTimestamp` field in reverse
72128// chronological order (newest result first). Use this to sort resources
72129// like operations so that the newest operation is returned
72130// first.
72131//
72132// Currently, only sorting by `name` or `creationTimestamp desc` is
72133// supported.
72134func (c *HttpHealthChecksListCall) OrderBy(orderBy string) *HttpHealthChecksListCall {
72135	c.urlParams_.Set("orderBy", orderBy)
72136	return c
72137}
72138
72139// PageToken sets the optional parameter "pageToken": Specifies a page
72140// token to use. Set `pageToken` to the `nextPageToken` returned by a
72141// previous list request to get the next page of results.
72142func (c *HttpHealthChecksListCall) PageToken(pageToken string) *HttpHealthChecksListCall {
72143	c.urlParams_.Set("pageToken", pageToken)
72144	return c
72145}
72146
72147// ReturnPartialSuccess sets the optional parameter
72148// "returnPartialSuccess": Opt-in for partial success behavior which
72149// provides partial results in case of failure. The default value is
72150// false.
72151func (c *HttpHealthChecksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *HttpHealthChecksListCall {
72152	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
72153	return c
72154}
72155
72156// Fields allows partial responses to be retrieved. See
72157// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72158// for more information.
72159func (c *HttpHealthChecksListCall) Fields(s ...googleapi.Field) *HttpHealthChecksListCall {
72160	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72161	return c
72162}
72163
72164// IfNoneMatch sets the optional parameter which makes the operation
72165// fail if the object's ETag matches the given value. This is useful for
72166// getting updates only after the object has changed since the last
72167// request. Use googleapi.IsNotModified to check whether the response
72168// error from Do is the result of In-None-Match.
72169func (c *HttpHealthChecksListCall) IfNoneMatch(entityTag string) *HttpHealthChecksListCall {
72170	c.ifNoneMatch_ = entityTag
72171	return c
72172}
72173
72174// Context sets the context to be used in this call's Do method. Any
72175// pending HTTP request will be aborted if the provided context is
72176// canceled.
72177func (c *HttpHealthChecksListCall) Context(ctx context.Context) *HttpHealthChecksListCall {
72178	c.ctx_ = ctx
72179	return c
72180}
72181
72182// Header returns an http.Header that can be modified by the caller to
72183// add HTTP headers to the request.
72184func (c *HttpHealthChecksListCall) Header() http.Header {
72185	if c.header_ == nil {
72186		c.header_ = make(http.Header)
72187	}
72188	return c.header_
72189}
72190
72191func (c *HttpHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
72192	reqHeaders := make(http.Header)
72193	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
72194	for k, v := range c.header_ {
72195		reqHeaders[k] = v
72196	}
72197	reqHeaders.Set("User-Agent", c.s.userAgent())
72198	if c.ifNoneMatch_ != "" {
72199		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
72200	}
72201	var body io.Reader = nil
72202	c.urlParams_.Set("alt", alt)
72203	c.urlParams_.Set("prettyPrint", "false")
72204	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks")
72205	urls += "?" + c.urlParams_.Encode()
72206	req, err := http.NewRequest("GET", urls, body)
72207	if err != nil {
72208		return nil, err
72209	}
72210	req.Header = reqHeaders
72211	googleapi.Expand(req.URL, map[string]string{
72212		"project": c.project,
72213	})
72214	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72215}
72216
72217// Do executes the "compute.httpHealthChecks.list" call.
72218// Exactly one of *HttpHealthCheckList or error will be non-nil. Any
72219// non-2xx status code is an error. Response headers are in either
72220// *HttpHealthCheckList.ServerResponse.Header or (if a response was
72221// returned at all) in error.(*googleapi.Error).Header. Use
72222// googleapi.IsNotModified to check whether the returned error was
72223// because http.StatusNotModified was returned.
72224func (c *HttpHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HttpHealthCheckList, error) {
72225	gensupport.SetOptions(c.urlParams_, opts...)
72226	res, err := c.doRequest("json")
72227	if res != nil && res.StatusCode == http.StatusNotModified {
72228		if res.Body != nil {
72229			res.Body.Close()
72230		}
72231		return nil, &googleapi.Error{
72232			Code:   res.StatusCode,
72233			Header: res.Header,
72234		}
72235	}
72236	if err != nil {
72237		return nil, err
72238	}
72239	defer googleapi.CloseBody(res)
72240	if err := googleapi.CheckResponse(res); err != nil {
72241		return nil, err
72242	}
72243	ret := &HttpHealthCheckList{
72244		ServerResponse: googleapi.ServerResponse{
72245			Header:         res.Header,
72246			HTTPStatusCode: res.StatusCode,
72247		},
72248	}
72249	target := &ret
72250	if err := gensupport.DecodeResponse(target, res); err != nil {
72251		return nil, err
72252	}
72253	return ret, nil
72254	// {
72255	//   "description": "Retrieves the list of HttpHealthCheck resources available to the specified project.",
72256	//   "httpMethod": "GET",
72257	//   "id": "compute.httpHealthChecks.list",
72258	//   "parameterOrder": [
72259	//     "project"
72260	//   ],
72261	//   "parameters": {
72262	//     "filter": {
72263	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
72264	//       "location": "query",
72265	//       "type": "string"
72266	//     },
72267	//     "maxResults": {
72268	//       "default": "500",
72269	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
72270	//       "format": "uint32",
72271	//       "location": "query",
72272	//       "minimum": "0",
72273	//       "type": "integer"
72274	//     },
72275	//     "orderBy": {
72276	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
72277	//       "location": "query",
72278	//       "type": "string"
72279	//     },
72280	//     "pageToken": {
72281	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
72282	//       "location": "query",
72283	//       "type": "string"
72284	//     },
72285	//     "project": {
72286	//       "description": "Project ID for this request.",
72287	//       "location": "path",
72288	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72289	//       "required": true,
72290	//       "type": "string"
72291	//     },
72292	//     "returnPartialSuccess": {
72293	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
72294	//       "location": "query",
72295	//       "type": "boolean"
72296	//     }
72297	//   },
72298	//   "path": "projects/{project}/global/httpHealthChecks",
72299	//   "response": {
72300	//     "$ref": "HttpHealthCheckList"
72301	//   },
72302	//   "scopes": [
72303	//     "https://www.googleapis.com/auth/cloud-platform",
72304	//     "https://www.googleapis.com/auth/compute",
72305	//     "https://www.googleapis.com/auth/compute.readonly"
72306	//   ]
72307	// }
72308
72309}
72310
72311// Pages invokes f for each page of results.
72312// A non-nil error returned from f will halt the iteration.
72313// The provided context supersedes any context provided to the Context method.
72314func (c *HttpHealthChecksListCall) Pages(ctx context.Context, f func(*HttpHealthCheckList) error) error {
72315	c.ctx_ = ctx
72316	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
72317	for {
72318		x, err := c.Do()
72319		if err != nil {
72320			return err
72321		}
72322		if err := f(x); err != nil {
72323			return err
72324		}
72325		if x.NextPageToken == "" {
72326			return nil
72327		}
72328		c.PageToken(x.NextPageToken)
72329	}
72330}
72331
72332// method id "compute.httpHealthChecks.patch":
72333
72334type HttpHealthChecksPatchCall struct {
72335	s               *Service
72336	project         string
72337	httpHealthCheck string
72338	httphealthcheck *HttpHealthCheck
72339	urlParams_      gensupport.URLParams
72340	ctx_            context.Context
72341	header_         http.Header
72342}
72343
72344// Patch: Updates a HttpHealthCheck resource in the specified project
72345// using the data included in the request. This method supports PATCH
72346// semantics and uses the JSON merge patch format and processing rules.
72347//
72348// - httpHealthCheck: Name of the HttpHealthCheck resource to patch.
72349// - project: Project ID for this request.
72350// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/patch
72351func (r *HttpHealthChecksService) Patch(project string, httpHealthCheck string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksPatchCall {
72352	c := &HttpHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72353	c.project = project
72354	c.httpHealthCheck = httpHealthCheck
72355	c.httphealthcheck = httphealthcheck
72356	return c
72357}
72358
72359// RequestId sets the optional parameter "requestId": An optional
72360// request ID to identify requests. Specify a unique request ID so that
72361// if you must retry your request, the server will know to ignore the
72362// request if it has already been completed.
72363//
72364// For example, consider a situation where you make an initial request
72365// and the request times out. If you make the request again with the
72366// same request ID, the server can check if original operation with the
72367// same request ID was received, and if so, will ignore the second
72368// request. This prevents clients from accidentally creating duplicate
72369// commitments.
72370//
72371// The request ID must be a valid UUID with the exception that zero UUID
72372// is not supported (00000000-0000-0000-0000-000000000000).
72373func (c *HttpHealthChecksPatchCall) RequestId(requestId string) *HttpHealthChecksPatchCall {
72374	c.urlParams_.Set("requestId", requestId)
72375	return c
72376}
72377
72378// Fields allows partial responses to be retrieved. See
72379// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72380// for more information.
72381func (c *HttpHealthChecksPatchCall) Fields(s ...googleapi.Field) *HttpHealthChecksPatchCall {
72382	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72383	return c
72384}
72385
72386// Context sets the context to be used in this call's Do method. Any
72387// pending HTTP request will be aborted if the provided context is
72388// canceled.
72389func (c *HttpHealthChecksPatchCall) Context(ctx context.Context) *HttpHealthChecksPatchCall {
72390	c.ctx_ = ctx
72391	return c
72392}
72393
72394// Header returns an http.Header that can be modified by the caller to
72395// add HTTP headers to the request.
72396func (c *HttpHealthChecksPatchCall) Header() http.Header {
72397	if c.header_ == nil {
72398		c.header_ = make(http.Header)
72399	}
72400	return c.header_
72401}
72402
72403func (c *HttpHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
72404	reqHeaders := make(http.Header)
72405	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
72406	for k, v := range c.header_ {
72407		reqHeaders[k] = v
72408	}
72409	reqHeaders.Set("User-Agent", c.s.userAgent())
72410	var body io.Reader = nil
72411	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
72412	if err != nil {
72413		return nil, err
72414	}
72415	reqHeaders.Set("Content-Type", "application/json")
72416	c.urlParams_.Set("alt", alt)
72417	c.urlParams_.Set("prettyPrint", "false")
72418	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks/{httpHealthCheck}")
72419	urls += "?" + c.urlParams_.Encode()
72420	req, err := http.NewRequest("PATCH", urls, body)
72421	if err != nil {
72422		return nil, err
72423	}
72424	req.Header = reqHeaders
72425	googleapi.Expand(req.URL, map[string]string{
72426		"project":         c.project,
72427		"httpHealthCheck": c.httpHealthCheck,
72428	})
72429	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72430}
72431
72432// Do executes the "compute.httpHealthChecks.patch" call.
72433// Exactly one of *Operation or error will be non-nil. Any non-2xx
72434// status code is an error. Response headers are in either
72435// *Operation.ServerResponse.Header or (if a response was returned at
72436// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72437// to check whether the returned error was because
72438// http.StatusNotModified was returned.
72439func (c *HttpHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72440	gensupport.SetOptions(c.urlParams_, opts...)
72441	res, err := c.doRequest("json")
72442	if res != nil && res.StatusCode == http.StatusNotModified {
72443		if res.Body != nil {
72444			res.Body.Close()
72445		}
72446		return nil, &googleapi.Error{
72447			Code:   res.StatusCode,
72448			Header: res.Header,
72449		}
72450	}
72451	if err != nil {
72452		return nil, err
72453	}
72454	defer googleapi.CloseBody(res)
72455	if err := googleapi.CheckResponse(res); err != nil {
72456		return nil, err
72457	}
72458	ret := &Operation{
72459		ServerResponse: googleapi.ServerResponse{
72460			Header:         res.Header,
72461			HTTPStatusCode: res.StatusCode,
72462		},
72463	}
72464	target := &ret
72465	if err := gensupport.DecodeResponse(target, res); err != nil {
72466		return nil, err
72467	}
72468	return ret, nil
72469	// {
72470	//   "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.",
72471	//   "httpMethod": "PATCH",
72472	//   "id": "compute.httpHealthChecks.patch",
72473	//   "parameterOrder": [
72474	//     "project",
72475	//     "httpHealthCheck"
72476	//   ],
72477	//   "parameters": {
72478	//     "httpHealthCheck": {
72479	//       "description": "Name of the HttpHealthCheck resource to patch.",
72480	//       "location": "path",
72481	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
72482	//       "required": true,
72483	//       "type": "string"
72484	//     },
72485	//     "project": {
72486	//       "description": "Project ID for this request.",
72487	//       "location": "path",
72488	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72489	//       "required": true,
72490	//       "type": "string"
72491	//     },
72492	//     "requestId": {
72493	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
72494	//       "location": "query",
72495	//       "type": "string"
72496	//     }
72497	//   },
72498	//   "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}",
72499	//   "request": {
72500	//     "$ref": "HttpHealthCheck"
72501	//   },
72502	//   "response": {
72503	//     "$ref": "Operation"
72504	//   },
72505	//   "scopes": [
72506	//     "https://www.googleapis.com/auth/cloud-platform",
72507	//     "https://www.googleapis.com/auth/compute"
72508	//   ]
72509	// }
72510
72511}
72512
72513// method id "compute.httpHealthChecks.update":
72514
72515type HttpHealthChecksUpdateCall struct {
72516	s               *Service
72517	project         string
72518	httpHealthCheck string
72519	httphealthcheck *HttpHealthCheck
72520	urlParams_      gensupport.URLParams
72521	ctx_            context.Context
72522	header_         http.Header
72523}
72524
72525// Update: Updates a HttpHealthCheck resource in the specified project
72526// using the data included in the request.
72527//
72528// - httpHealthCheck: Name of the HttpHealthCheck resource to update.
72529// - project: Project ID for this request.
72530// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/update
72531func (r *HttpHealthChecksService) Update(project string, httpHealthCheck string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksUpdateCall {
72532	c := &HttpHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72533	c.project = project
72534	c.httpHealthCheck = httpHealthCheck
72535	c.httphealthcheck = httphealthcheck
72536	return c
72537}
72538
72539// RequestId sets the optional parameter "requestId": An optional
72540// request ID to identify requests. Specify a unique request ID so that
72541// if you must retry your request, the server will know to ignore the
72542// request if it has already been completed.
72543//
72544// For example, consider a situation where you make an initial request
72545// and the request times out. If you make the request again with the
72546// same request ID, the server can check if original operation with the
72547// same request ID was received, and if so, will ignore the second
72548// request. This prevents clients from accidentally creating duplicate
72549// commitments.
72550//
72551// The request ID must be a valid UUID with the exception that zero UUID
72552// is not supported (00000000-0000-0000-0000-000000000000).
72553func (c *HttpHealthChecksUpdateCall) RequestId(requestId string) *HttpHealthChecksUpdateCall {
72554	c.urlParams_.Set("requestId", requestId)
72555	return c
72556}
72557
72558// Fields allows partial responses to be retrieved. See
72559// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72560// for more information.
72561func (c *HttpHealthChecksUpdateCall) Fields(s ...googleapi.Field) *HttpHealthChecksUpdateCall {
72562	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72563	return c
72564}
72565
72566// Context sets the context to be used in this call's Do method. Any
72567// pending HTTP request will be aborted if the provided context is
72568// canceled.
72569func (c *HttpHealthChecksUpdateCall) Context(ctx context.Context) *HttpHealthChecksUpdateCall {
72570	c.ctx_ = ctx
72571	return c
72572}
72573
72574// Header returns an http.Header that can be modified by the caller to
72575// add HTTP headers to the request.
72576func (c *HttpHealthChecksUpdateCall) Header() http.Header {
72577	if c.header_ == nil {
72578		c.header_ = make(http.Header)
72579	}
72580	return c.header_
72581}
72582
72583func (c *HttpHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
72584	reqHeaders := make(http.Header)
72585	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
72586	for k, v := range c.header_ {
72587		reqHeaders[k] = v
72588	}
72589	reqHeaders.Set("User-Agent", c.s.userAgent())
72590	var body io.Reader = nil
72591	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
72592	if err != nil {
72593		return nil, err
72594	}
72595	reqHeaders.Set("Content-Type", "application/json")
72596	c.urlParams_.Set("alt", alt)
72597	c.urlParams_.Set("prettyPrint", "false")
72598	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpHealthChecks/{httpHealthCheck}")
72599	urls += "?" + c.urlParams_.Encode()
72600	req, err := http.NewRequest("PUT", urls, body)
72601	if err != nil {
72602		return nil, err
72603	}
72604	req.Header = reqHeaders
72605	googleapi.Expand(req.URL, map[string]string{
72606		"project":         c.project,
72607		"httpHealthCheck": c.httpHealthCheck,
72608	})
72609	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72610}
72611
72612// Do executes the "compute.httpHealthChecks.update" call.
72613// Exactly one of *Operation or error will be non-nil. Any non-2xx
72614// status code is an error. Response headers are in either
72615// *Operation.ServerResponse.Header or (if a response was returned at
72616// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72617// to check whether the returned error was because
72618// http.StatusNotModified was returned.
72619func (c *HttpHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72620	gensupport.SetOptions(c.urlParams_, opts...)
72621	res, err := c.doRequest("json")
72622	if res != nil && res.StatusCode == http.StatusNotModified {
72623		if res.Body != nil {
72624			res.Body.Close()
72625		}
72626		return nil, &googleapi.Error{
72627			Code:   res.StatusCode,
72628			Header: res.Header,
72629		}
72630	}
72631	if err != nil {
72632		return nil, err
72633	}
72634	defer googleapi.CloseBody(res)
72635	if err := googleapi.CheckResponse(res); err != nil {
72636		return nil, err
72637	}
72638	ret := &Operation{
72639		ServerResponse: googleapi.ServerResponse{
72640			Header:         res.Header,
72641			HTTPStatusCode: res.StatusCode,
72642		},
72643	}
72644	target := &ret
72645	if err := gensupport.DecodeResponse(target, res); err != nil {
72646		return nil, err
72647	}
72648	return ret, nil
72649	// {
72650	//   "description": "Updates a HttpHealthCheck resource in the specified project using the data included in the request.",
72651	//   "httpMethod": "PUT",
72652	//   "id": "compute.httpHealthChecks.update",
72653	//   "parameterOrder": [
72654	//     "project",
72655	//     "httpHealthCheck"
72656	//   ],
72657	//   "parameters": {
72658	//     "httpHealthCheck": {
72659	//       "description": "Name of the HttpHealthCheck resource to update.",
72660	//       "location": "path",
72661	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
72662	//       "required": true,
72663	//       "type": "string"
72664	//     },
72665	//     "project": {
72666	//       "description": "Project ID for this request.",
72667	//       "location": "path",
72668	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72669	//       "required": true,
72670	//       "type": "string"
72671	//     },
72672	//     "requestId": {
72673	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
72674	//       "location": "query",
72675	//       "type": "string"
72676	//     }
72677	//   },
72678	//   "path": "projects/{project}/global/httpHealthChecks/{httpHealthCheck}",
72679	//   "request": {
72680	//     "$ref": "HttpHealthCheck"
72681	//   },
72682	//   "response": {
72683	//     "$ref": "Operation"
72684	//   },
72685	//   "scopes": [
72686	//     "https://www.googleapis.com/auth/cloud-platform",
72687	//     "https://www.googleapis.com/auth/compute"
72688	//   ]
72689	// }
72690
72691}
72692
72693// method id "compute.httpsHealthChecks.delete":
72694
72695type HttpsHealthChecksDeleteCall struct {
72696	s                *Service
72697	project          string
72698	httpsHealthCheck string
72699	urlParams_       gensupport.URLParams
72700	ctx_             context.Context
72701	header_          http.Header
72702}
72703
72704// Delete: Deletes the specified HttpsHealthCheck resource.
72705//
72706// - httpsHealthCheck: Name of the HttpsHealthCheck resource to delete.
72707// - project: Project ID for this request.
72708func (r *HttpsHealthChecksService) Delete(project string, httpsHealthCheck string) *HttpsHealthChecksDeleteCall {
72709	c := &HttpsHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72710	c.project = project
72711	c.httpsHealthCheck = httpsHealthCheck
72712	return c
72713}
72714
72715// RequestId sets the optional parameter "requestId": An optional
72716// request ID to identify requests. Specify a unique request ID so that
72717// if you must retry your request, the server will know to ignore the
72718// request if it has already been completed.
72719//
72720// For example, consider a situation where you make an initial request
72721// and the request times out. If you make the request again with the
72722// same request ID, the server can check if original operation with the
72723// same request ID was received, and if so, will ignore the second
72724// request. This prevents clients from accidentally creating duplicate
72725// commitments.
72726//
72727// The request ID must be a valid UUID with the exception that zero UUID
72728// is not supported (00000000-0000-0000-0000-000000000000).
72729func (c *HttpsHealthChecksDeleteCall) RequestId(requestId string) *HttpsHealthChecksDeleteCall {
72730	c.urlParams_.Set("requestId", requestId)
72731	return c
72732}
72733
72734// Fields allows partial responses to be retrieved. See
72735// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72736// for more information.
72737func (c *HttpsHealthChecksDeleteCall) Fields(s ...googleapi.Field) *HttpsHealthChecksDeleteCall {
72738	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72739	return c
72740}
72741
72742// Context sets the context to be used in this call's Do method. Any
72743// pending HTTP request will be aborted if the provided context is
72744// canceled.
72745func (c *HttpsHealthChecksDeleteCall) Context(ctx context.Context) *HttpsHealthChecksDeleteCall {
72746	c.ctx_ = ctx
72747	return c
72748}
72749
72750// Header returns an http.Header that can be modified by the caller to
72751// add HTTP headers to the request.
72752func (c *HttpsHealthChecksDeleteCall) Header() http.Header {
72753	if c.header_ == nil {
72754		c.header_ = make(http.Header)
72755	}
72756	return c.header_
72757}
72758
72759func (c *HttpsHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
72760	reqHeaders := make(http.Header)
72761	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
72762	for k, v := range c.header_ {
72763		reqHeaders[k] = v
72764	}
72765	reqHeaders.Set("User-Agent", c.s.userAgent())
72766	var body io.Reader = nil
72767	c.urlParams_.Set("alt", alt)
72768	c.urlParams_.Set("prettyPrint", "false")
72769	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}")
72770	urls += "?" + c.urlParams_.Encode()
72771	req, err := http.NewRequest("DELETE", urls, body)
72772	if err != nil {
72773		return nil, err
72774	}
72775	req.Header = reqHeaders
72776	googleapi.Expand(req.URL, map[string]string{
72777		"project":          c.project,
72778		"httpsHealthCheck": c.httpsHealthCheck,
72779	})
72780	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72781}
72782
72783// Do executes the "compute.httpsHealthChecks.delete" call.
72784// Exactly one of *Operation or error will be non-nil. Any non-2xx
72785// status code is an error. Response headers are in either
72786// *Operation.ServerResponse.Header or (if a response was returned at
72787// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72788// to check whether the returned error was because
72789// http.StatusNotModified was returned.
72790func (c *HttpsHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72791	gensupport.SetOptions(c.urlParams_, opts...)
72792	res, err := c.doRequest("json")
72793	if res != nil && res.StatusCode == http.StatusNotModified {
72794		if res.Body != nil {
72795			res.Body.Close()
72796		}
72797		return nil, &googleapi.Error{
72798			Code:   res.StatusCode,
72799			Header: res.Header,
72800		}
72801	}
72802	if err != nil {
72803		return nil, err
72804	}
72805	defer googleapi.CloseBody(res)
72806	if err := googleapi.CheckResponse(res); err != nil {
72807		return nil, err
72808	}
72809	ret := &Operation{
72810		ServerResponse: googleapi.ServerResponse{
72811			Header:         res.Header,
72812			HTTPStatusCode: res.StatusCode,
72813		},
72814	}
72815	target := &ret
72816	if err := gensupport.DecodeResponse(target, res); err != nil {
72817		return nil, err
72818	}
72819	return ret, nil
72820	// {
72821	//   "description": "Deletes the specified HttpsHealthCheck resource.",
72822	//   "httpMethod": "DELETE",
72823	//   "id": "compute.httpsHealthChecks.delete",
72824	//   "parameterOrder": [
72825	//     "project",
72826	//     "httpsHealthCheck"
72827	//   ],
72828	//   "parameters": {
72829	//     "httpsHealthCheck": {
72830	//       "description": "Name of the HttpsHealthCheck resource to delete.",
72831	//       "location": "path",
72832	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
72833	//       "required": true,
72834	//       "type": "string"
72835	//     },
72836	//     "project": {
72837	//       "description": "Project ID for this request.",
72838	//       "location": "path",
72839	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72840	//       "required": true,
72841	//       "type": "string"
72842	//     },
72843	//     "requestId": {
72844	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
72845	//       "location": "query",
72846	//       "type": "string"
72847	//     }
72848	//   },
72849	//   "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}",
72850	//   "response": {
72851	//     "$ref": "Operation"
72852	//   },
72853	//   "scopes": [
72854	//     "https://www.googleapis.com/auth/cloud-platform",
72855	//     "https://www.googleapis.com/auth/compute"
72856	//   ]
72857	// }
72858
72859}
72860
72861// method id "compute.httpsHealthChecks.get":
72862
72863type HttpsHealthChecksGetCall struct {
72864	s                *Service
72865	project          string
72866	httpsHealthCheck string
72867	urlParams_       gensupport.URLParams
72868	ifNoneMatch_     string
72869	ctx_             context.Context
72870	header_          http.Header
72871}
72872
72873// Get: Returns the specified HttpsHealthCheck resource. Gets a list of
72874// available HTTPS health checks by making a list() request.
72875//
72876// - httpsHealthCheck: Name of the HttpsHealthCheck resource to return.
72877// - project: Project ID for this request.
72878func (r *HttpsHealthChecksService) Get(project string, httpsHealthCheck string) *HttpsHealthChecksGetCall {
72879	c := &HttpsHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72880	c.project = project
72881	c.httpsHealthCheck = httpsHealthCheck
72882	return c
72883}
72884
72885// Fields allows partial responses to be retrieved. See
72886// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72887// for more information.
72888func (c *HttpsHealthChecksGetCall) Fields(s ...googleapi.Field) *HttpsHealthChecksGetCall {
72889	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72890	return c
72891}
72892
72893// IfNoneMatch sets the optional parameter which makes the operation
72894// fail if the object's ETag matches the given value. This is useful for
72895// getting updates only after the object has changed since the last
72896// request. Use googleapi.IsNotModified to check whether the response
72897// error from Do is the result of In-None-Match.
72898func (c *HttpsHealthChecksGetCall) IfNoneMatch(entityTag string) *HttpsHealthChecksGetCall {
72899	c.ifNoneMatch_ = entityTag
72900	return c
72901}
72902
72903// Context sets the context to be used in this call's Do method. Any
72904// pending HTTP request will be aborted if the provided context is
72905// canceled.
72906func (c *HttpsHealthChecksGetCall) Context(ctx context.Context) *HttpsHealthChecksGetCall {
72907	c.ctx_ = ctx
72908	return c
72909}
72910
72911// Header returns an http.Header that can be modified by the caller to
72912// add HTTP headers to the request.
72913func (c *HttpsHealthChecksGetCall) Header() http.Header {
72914	if c.header_ == nil {
72915		c.header_ = make(http.Header)
72916	}
72917	return c.header_
72918}
72919
72920func (c *HttpsHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
72921	reqHeaders := make(http.Header)
72922	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
72923	for k, v := range c.header_ {
72924		reqHeaders[k] = v
72925	}
72926	reqHeaders.Set("User-Agent", c.s.userAgent())
72927	if c.ifNoneMatch_ != "" {
72928		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
72929	}
72930	var body io.Reader = nil
72931	c.urlParams_.Set("alt", alt)
72932	c.urlParams_.Set("prettyPrint", "false")
72933	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}")
72934	urls += "?" + c.urlParams_.Encode()
72935	req, err := http.NewRequest("GET", urls, body)
72936	if err != nil {
72937		return nil, err
72938	}
72939	req.Header = reqHeaders
72940	googleapi.Expand(req.URL, map[string]string{
72941		"project":          c.project,
72942		"httpsHealthCheck": c.httpsHealthCheck,
72943	})
72944	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72945}
72946
72947// Do executes the "compute.httpsHealthChecks.get" call.
72948// Exactly one of *HttpsHealthCheck or error will be non-nil. Any
72949// non-2xx status code is an error. Response headers are in either
72950// *HttpsHealthCheck.ServerResponse.Header or (if a response was
72951// returned at all) in error.(*googleapi.Error).Header. Use
72952// googleapi.IsNotModified to check whether the returned error was
72953// because http.StatusNotModified was returned.
72954func (c *HttpsHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HttpsHealthCheck, error) {
72955	gensupport.SetOptions(c.urlParams_, opts...)
72956	res, err := c.doRequest("json")
72957	if res != nil && res.StatusCode == http.StatusNotModified {
72958		if res.Body != nil {
72959			res.Body.Close()
72960		}
72961		return nil, &googleapi.Error{
72962			Code:   res.StatusCode,
72963			Header: res.Header,
72964		}
72965	}
72966	if err != nil {
72967		return nil, err
72968	}
72969	defer googleapi.CloseBody(res)
72970	if err := googleapi.CheckResponse(res); err != nil {
72971		return nil, err
72972	}
72973	ret := &HttpsHealthCheck{
72974		ServerResponse: googleapi.ServerResponse{
72975			Header:         res.Header,
72976			HTTPStatusCode: res.StatusCode,
72977		},
72978	}
72979	target := &ret
72980	if err := gensupport.DecodeResponse(target, res); err != nil {
72981		return nil, err
72982	}
72983	return ret, nil
72984	// {
72985	//   "description": "Returns the specified HttpsHealthCheck resource. Gets a list of available HTTPS health checks by making a list() request.",
72986	//   "httpMethod": "GET",
72987	//   "id": "compute.httpsHealthChecks.get",
72988	//   "parameterOrder": [
72989	//     "project",
72990	//     "httpsHealthCheck"
72991	//   ],
72992	//   "parameters": {
72993	//     "httpsHealthCheck": {
72994	//       "description": "Name of the HttpsHealthCheck resource to return.",
72995	//       "location": "path",
72996	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
72997	//       "required": true,
72998	//       "type": "string"
72999	//     },
73000	//     "project": {
73001	//       "description": "Project ID for this request.",
73002	//       "location": "path",
73003	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73004	//       "required": true,
73005	//       "type": "string"
73006	//     }
73007	//   },
73008	//   "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}",
73009	//   "response": {
73010	//     "$ref": "HttpsHealthCheck"
73011	//   },
73012	//   "scopes": [
73013	//     "https://www.googleapis.com/auth/cloud-platform",
73014	//     "https://www.googleapis.com/auth/compute",
73015	//     "https://www.googleapis.com/auth/compute.readonly"
73016	//   ]
73017	// }
73018
73019}
73020
73021// method id "compute.httpsHealthChecks.insert":
73022
73023type HttpsHealthChecksInsertCall struct {
73024	s                *Service
73025	project          string
73026	httpshealthcheck *HttpsHealthCheck
73027	urlParams_       gensupport.URLParams
73028	ctx_             context.Context
73029	header_          http.Header
73030}
73031
73032// Insert: Creates a HttpsHealthCheck resource in the specified project
73033// using the data included in the request.
73034//
73035// - project: Project ID for this request.
73036func (r *HttpsHealthChecksService) Insert(project string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksInsertCall {
73037	c := &HttpsHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73038	c.project = project
73039	c.httpshealthcheck = httpshealthcheck
73040	return c
73041}
73042
73043// RequestId sets the optional parameter "requestId": An optional
73044// request ID to identify requests. Specify a unique request ID so that
73045// if you must retry your request, the server will know to ignore the
73046// request if it has already been completed.
73047//
73048// For example, consider a situation where you make an initial request
73049// and the request times out. If you make the request again with the
73050// same request ID, the server can check if original operation with the
73051// same request ID was received, and if so, will ignore the second
73052// request. This prevents clients from accidentally creating duplicate
73053// commitments.
73054//
73055// The request ID must be a valid UUID with the exception that zero UUID
73056// is not supported (00000000-0000-0000-0000-000000000000).
73057func (c *HttpsHealthChecksInsertCall) RequestId(requestId string) *HttpsHealthChecksInsertCall {
73058	c.urlParams_.Set("requestId", requestId)
73059	return c
73060}
73061
73062// Fields allows partial responses to be retrieved. See
73063// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73064// for more information.
73065func (c *HttpsHealthChecksInsertCall) Fields(s ...googleapi.Field) *HttpsHealthChecksInsertCall {
73066	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73067	return c
73068}
73069
73070// Context sets the context to be used in this call's Do method. Any
73071// pending HTTP request will be aborted if the provided context is
73072// canceled.
73073func (c *HttpsHealthChecksInsertCall) Context(ctx context.Context) *HttpsHealthChecksInsertCall {
73074	c.ctx_ = ctx
73075	return c
73076}
73077
73078// Header returns an http.Header that can be modified by the caller to
73079// add HTTP headers to the request.
73080func (c *HttpsHealthChecksInsertCall) Header() http.Header {
73081	if c.header_ == nil {
73082		c.header_ = make(http.Header)
73083	}
73084	return c.header_
73085}
73086
73087func (c *HttpsHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
73088	reqHeaders := make(http.Header)
73089	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
73090	for k, v := range c.header_ {
73091		reqHeaders[k] = v
73092	}
73093	reqHeaders.Set("User-Agent", c.s.userAgent())
73094	var body io.Reader = nil
73095	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
73096	if err != nil {
73097		return nil, err
73098	}
73099	reqHeaders.Set("Content-Type", "application/json")
73100	c.urlParams_.Set("alt", alt)
73101	c.urlParams_.Set("prettyPrint", "false")
73102	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks")
73103	urls += "?" + c.urlParams_.Encode()
73104	req, err := http.NewRequest("POST", urls, body)
73105	if err != nil {
73106		return nil, err
73107	}
73108	req.Header = reqHeaders
73109	googleapi.Expand(req.URL, map[string]string{
73110		"project": c.project,
73111	})
73112	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73113}
73114
73115// Do executes the "compute.httpsHealthChecks.insert" call.
73116// Exactly one of *Operation or error will be non-nil. Any non-2xx
73117// status code is an error. Response headers are in either
73118// *Operation.ServerResponse.Header or (if a response was returned at
73119// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73120// to check whether the returned error was because
73121// http.StatusNotModified was returned.
73122func (c *HttpsHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
73123	gensupport.SetOptions(c.urlParams_, opts...)
73124	res, err := c.doRequest("json")
73125	if res != nil && res.StatusCode == http.StatusNotModified {
73126		if res.Body != nil {
73127			res.Body.Close()
73128		}
73129		return nil, &googleapi.Error{
73130			Code:   res.StatusCode,
73131			Header: res.Header,
73132		}
73133	}
73134	if err != nil {
73135		return nil, err
73136	}
73137	defer googleapi.CloseBody(res)
73138	if err := googleapi.CheckResponse(res); err != nil {
73139		return nil, err
73140	}
73141	ret := &Operation{
73142		ServerResponse: googleapi.ServerResponse{
73143			Header:         res.Header,
73144			HTTPStatusCode: res.StatusCode,
73145		},
73146	}
73147	target := &ret
73148	if err := gensupport.DecodeResponse(target, res); err != nil {
73149		return nil, err
73150	}
73151	return ret, nil
73152	// {
73153	//   "description": "Creates a HttpsHealthCheck resource in the specified project using the data included in the request.",
73154	//   "httpMethod": "POST",
73155	//   "id": "compute.httpsHealthChecks.insert",
73156	//   "parameterOrder": [
73157	//     "project"
73158	//   ],
73159	//   "parameters": {
73160	//     "project": {
73161	//       "description": "Project ID for this request.",
73162	//       "location": "path",
73163	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73164	//       "required": true,
73165	//       "type": "string"
73166	//     },
73167	//     "requestId": {
73168	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
73169	//       "location": "query",
73170	//       "type": "string"
73171	//     }
73172	//   },
73173	//   "path": "projects/{project}/global/httpsHealthChecks",
73174	//   "request": {
73175	//     "$ref": "HttpsHealthCheck"
73176	//   },
73177	//   "response": {
73178	//     "$ref": "Operation"
73179	//   },
73180	//   "scopes": [
73181	//     "https://www.googleapis.com/auth/cloud-platform",
73182	//     "https://www.googleapis.com/auth/compute"
73183	//   ]
73184	// }
73185
73186}
73187
73188// method id "compute.httpsHealthChecks.list":
73189
73190type HttpsHealthChecksListCall struct {
73191	s            *Service
73192	project      string
73193	urlParams_   gensupport.URLParams
73194	ifNoneMatch_ string
73195	ctx_         context.Context
73196	header_      http.Header
73197}
73198
73199// List: Retrieves the list of HttpsHealthCheck resources available to
73200// the specified project.
73201//
73202// - project: Project ID for this request.
73203func (r *HttpsHealthChecksService) List(project string) *HttpsHealthChecksListCall {
73204	c := &HttpsHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73205	c.project = project
73206	return c
73207}
73208
73209// Filter sets the optional parameter "filter": A filter expression that
73210// filters resources listed in the response. The expression must specify
73211// the field name, a comparison operator, and the value that you want to
73212// use for filtering. The value must be a string, a number, or a
73213// boolean. The comparison operator must be either `=`, `!=`, `>`, or
73214// `<`.
73215//
73216// For example, if you are filtering Compute Engine instances, you can
73217// exclude instances named `example-instance` by specifying `name !=
73218// example-instance`.
73219//
73220// You can also filter nested fields. For example, you could specify
73221// `scheduling.automaticRestart = false` to include instances only if
73222// they are not scheduled for automatic restarts. You can use filtering
73223// on nested fields to filter based on resource labels.
73224//
73225// To filter on multiple expressions, provide each separate expression
73226// within parentheses. For example: ``` (scheduling.automaticRestart =
73227// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
73228// is an `AND` expression. However, you can include `AND` and `OR`
73229// expressions explicitly. For example: ``` (cpuPlatform = "Intel
73230// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
73231// (scheduling.automaticRestart = true) ```
73232func (c *HttpsHealthChecksListCall) Filter(filter string) *HttpsHealthChecksListCall {
73233	c.urlParams_.Set("filter", filter)
73234	return c
73235}
73236
73237// MaxResults sets the optional parameter "maxResults": The maximum
73238// number of results per page that should be returned. If the number of
73239// available results is larger than `maxResults`, Compute Engine returns
73240// a `nextPageToken` that can be used to get the next page of results in
73241// subsequent list requests. Acceptable values are `0` to `500`,
73242// inclusive. (Default: `500`)
73243func (c *HttpsHealthChecksListCall) MaxResults(maxResults int64) *HttpsHealthChecksListCall {
73244	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
73245	return c
73246}
73247
73248// OrderBy sets the optional parameter "orderBy": Sorts list results by
73249// a certain order. By default, results are returned in alphanumerical
73250// order based on the resource name.
73251//
73252// You can also sort results in descending order based on the creation
73253// timestamp using `orderBy="creationTimestamp desc". This sorts
73254// results based on the `creationTimestamp` field in reverse
73255// chronological order (newest result first). Use this to sort resources
73256// like operations so that the newest operation is returned
73257// first.
73258//
73259// Currently, only sorting by `name` or `creationTimestamp desc` is
73260// supported.
73261func (c *HttpsHealthChecksListCall) OrderBy(orderBy string) *HttpsHealthChecksListCall {
73262	c.urlParams_.Set("orderBy", orderBy)
73263	return c
73264}
73265
73266// PageToken sets the optional parameter "pageToken": Specifies a page
73267// token to use. Set `pageToken` to the `nextPageToken` returned by a
73268// previous list request to get the next page of results.
73269func (c *HttpsHealthChecksListCall) PageToken(pageToken string) *HttpsHealthChecksListCall {
73270	c.urlParams_.Set("pageToken", pageToken)
73271	return c
73272}
73273
73274// ReturnPartialSuccess sets the optional parameter
73275// "returnPartialSuccess": Opt-in for partial success behavior which
73276// provides partial results in case of failure. The default value is
73277// false.
73278func (c *HttpsHealthChecksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *HttpsHealthChecksListCall {
73279	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
73280	return c
73281}
73282
73283// Fields allows partial responses to be retrieved. See
73284// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73285// for more information.
73286func (c *HttpsHealthChecksListCall) Fields(s ...googleapi.Field) *HttpsHealthChecksListCall {
73287	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73288	return c
73289}
73290
73291// IfNoneMatch sets the optional parameter which makes the operation
73292// fail if the object's ETag matches the given value. This is useful for
73293// getting updates only after the object has changed since the last
73294// request. Use googleapi.IsNotModified to check whether the response
73295// error from Do is the result of In-None-Match.
73296func (c *HttpsHealthChecksListCall) IfNoneMatch(entityTag string) *HttpsHealthChecksListCall {
73297	c.ifNoneMatch_ = entityTag
73298	return c
73299}
73300
73301// Context sets the context to be used in this call's Do method. Any
73302// pending HTTP request will be aborted if the provided context is
73303// canceled.
73304func (c *HttpsHealthChecksListCall) Context(ctx context.Context) *HttpsHealthChecksListCall {
73305	c.ctx_ = ctx
73306	return c
73307}
73308
73309// Header returns an http.Header that can be modified by the caller to
73310// add HTTP headers to the request.
73311func (c *HttpsHealthChecksListCall) Header() http.Header {
73312	if c.header_ == nil {
73313		c.header_ = make(http.Header)
73314	}
73315	return c.header_
73316}
73317
73318func (c *HttpsHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
73319	reqHeaders := make(http.Header)
73320	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
73321	for k, v := range c.header_ {
73322		reqHeaders[k] = v
73323	}
73324	reqHeaders.Set("User-Agent", c.s.userAgent())
73325	if c.ifNoneMatch_ != "" {
73326		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
73327	}
73328	var body io.Reader = nil
73329	c.urlParams_.Set("alt", alt)
73330	c.urlParams_.Set("prettyPrint", "false")
73331	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks")
73332	urls += "?" + c.urlParams_.Encode()
73333	req, err := http.NewRequest("GET", urls, body)
73334	if err != nil {
73335		return nil, err
73336	}
73337	req.Header = reqHeaders
73338	googleapi.Expand(req.URL, map[string]string{
73339		"project": c.project,
73340	})
73341	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73342}
73343
73344// Do executes the "compute.httpsHealthChecks.list" call.
73345// Exactly one of *HttpsHealthCheckList or error will be non-nil. Any
73346// non-2xx status code is an error. Response headers are in either
73347// *HttpsHealthCheckList.ServerResponse.Header or (if a response was
73348// returned at all) in error.(*googleapi.Error).Header. Use
73349// googleapi.IsNotModified to check whether the returned error was
73350// because http.StatusNotModified was returned.
73351func (c *HttpsHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HttpsHealthCheckList, error) {
73352	gensupport.SetOptions(c.urlParams_, opts...)
73353	res, err := c.doRequest("json")
73354	if res != nil && res.StatusCode == http.StatusNotModified {
73355		if res.Body != nil {
73356			res.Body.Close()
73357		}
73358		return nil, &googleapi.Error{
73359			Code:   res.StatusCode,
73360			Header: res.Header,
73361		}
73362	}
73363	if err != nil {
73364		return nil, err
73365	}
73366	defer googleapi.CloseBody(res)
73367	if err := googleapi.CheckResponse(res); err != nil {
73368		return nil, err
73369	}
73370	ret := &HttpsHealthCheckList{
73371		ServerResponse: googleapi.ServerResponse{
73372			Header:         res.Header,
73373			HTTPStatusCode: res.StatusCode,
73374		},
73375	}
73376	target := &ret
73377	if err := gensupport.DecodeResponse(target, res); err != nil {
73378		return nil, err
73379	}
73380	return ret, nil
73381	// {
73382	//   "description": "Retrieves the list of HttpsHealthCheck resources available to the specified project.",
73383	//   "httpMethod": "GET",
73384	//   "id": "compute.httpsHealthChecks.list",
73385	//   "parameterOrder": [
73386	//     "project"
73387	//   ],
73388	//   "parameters": {
73389	//     "filter": {
73390	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
73391	//       "location": "query",
73392	//       "type": "string"
73393	//     },
73394	//     "maxResults": {
73395	//       "default": "500",
73396	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
73397	//       "format": "uint32",
73398	//       "location": "query",
73399	//       "minimum": "0",
73400	//       "type": "integer"
73401	//     },
73402	//     "orderBy": {
73403	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
73404	//       "location": "query",
73405	//       "type": "string"
73406	//     },
73407	//     "pageToken": {
73408	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
73409	//       "location": "query",
73410	//       "type": "string"
73411	//     },
73412	//     "project": {
73413	//       "description": "Project ID for this request.",
73414	//       "location": "path",
73415	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73416	//       "required": true,
73417	//       "type": "string"
73418	//     },
73419	//     "returnPartialSuccess": {
73420	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
73421	//       "location": "query",
73422	//       "type": "boolean"
73423	//     }
73424	//   },
73425	//   "path": "projects/{project}/global/httpsHealthChecks",
73426	//   "response": {
73427	//     "$ref": "HttpsHealthCheckList"
73428	//   },
73429	//   "scopes": [
73430	//     "https://www.googleapis.com/auth/cloud-platform",
73431	//     "https://www.googleapis.com/auth/compute",
73432	//     "https://www.googleapis.com/auth/compute.readonly"
73433	//   ]
73434	// }
73435
73436}
73437
73438// Pages invokes f for each page of results.
73439// A non-nil error returned from f will halt the iteration.
73440// The provided context supersedes any context provided to the Context method.
73441func (c *HttpsHealthChecksListCall) Pages(ctx context.Context, f func(*HttpsHealthCheckList) error) error {
73442	c.ctx_ = ctx
73443	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
73444	for {
73445		x, err := c.Do()
73446		if err != nil {
73447			return err
73448		}
73449		if err := f(x); err != nil {
73450			return err
73451		}
73452		if x.NextPageToken == "" {
73453			return nil
73454		}
73455		c.PageToken(x.NextPageToken)
73456	}
73457}
73458
73459// method id "compute.httpsHealthChecks.patch":
73460
73461type HttpsHealthChecksPatchCall struct {
73462	s                *Service
73463	project          string
73464	httpsHealthCheck string
73465	httpshealthcheck *HttpsHealthCheck
73466	urlParams_       gensupport.URLParams
73467	ctx_             context.Context
73468	header_          http.Header
73469}
73470
73471// Patch: Updates a HttpsHealthCheck resource in the specified project
73472// using the data included in the request. This method supports PATCH
73473// semantics and uses the JSON merge patch format and processing rules.
73474//
73475// - httpsHealthCheck: Name of the HttpsHealthCheck resource to patch.
73476// - project: Project ID for this request.
73477func (r *HttpsHealthChecksService) Patch(project string, httpsHealthCheck string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksPatchCall {
73478	c := &HttpsHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73479	c.project = project
73480	c.httpsHealthCheck = httpsHealthCheck
73481	c.httpshealthcheck = httpshealthcheck
73482	return c
73483}
73484
73485// RequestId sets the optional parameter "requestId": An optional
73486// request ID to identify requests. Specify a unique request ID so that
73487// if you must retry your request, the server will know to ignore the
73488// request if it has already been completed.
73489//
73490// For example, consider a situation where you make an initial request
73491// and the request times out. If you make the request again with the
73492// same request ID, the server can check if original operation with the
73493// same request ID was received, and if so, will ignore the second
73494// request. This prevents clients from accidentally creating duplicate
73495// commitments.
73496//
73497// The request ID must be a valid UUID with the exception that zero UUID
73498// is not supported (00000000-0000-0000-0000-000000000000).
73499func (c *HttpsHealthChecksPatchCall) RequestId(requestId string) *HttpsHealthChecksPatchCall {
73500	c.urlParams_.Set("requestId", requestId)
73501	return c
73502}
73503
73504// Fields allows partial responses to be retrieved. See
73505// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73506// for more information.
73507func (c *HttpsHealthChecksPatchCall) Fields(s ...googleapi.Field) *HttpsHealthChecksPatchCall {
73508	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73509	return c
73510}
73511
73512// Context sets the context to be used in this call's Do method. Any
73513// pending HTTP request will be aborted if the provided context is
73514// canceled.
73515func (c *HttpsHealthChecksPatchCall) Context(ctx context.Context) *HttpsHealthChecksPatchCall {
73516	c.ctx_ = ctx
73517	return c
73518}
73519
73520// Header returns an http.Header that can be modified by the caller to
73521// add HTTP headers to the request.
73522func (c *HttpsHealthChecksPatchCall) Header() http.Header {
73523	if c.header_ == nil {
73524		c.header_ = make(http.Header)
73525	}
73526	return c.header_
73527}
73528
73529func (c *HttpsHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
73530	reqHeaders := make(http.Header)
73531	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
73532	for k, v := range c.header_ {
73533		reqHeaders[k] = v
73534	}
73535	reqHeaders.Set("User-Agent", c.s.userAgent())
73536	var body io.Reader = nil
73537	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
73538	if err != nil {
73539		return nil, err
73540	}
73541	reqHeaders.Set("Content-Type", "application/json")
73542	c.urlParams_.Set("alt", alt)
73543	c.urlParams_.Set("prettyPrint", "false")
73544	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}")
73545	urls += "?" + c.urlParams_.Encode()
73546	req, err := http.NewRequest("PATCH", urls, body)
73547	if err != nil {
73548		return nil, err
73549	}
73550	req.Header = reqHeaders
73551	googleapi.Expand(req.URL, map[string]string{
73552		"project":          c.project,
73553		"httpsHealthCheck": c.httpsHealthCheck,
73554	})
73555	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73556}
73557
73558// Do executes the "compute.httpsHealthChecks.patch" call.
73559// Exactly one of *Operation or error will be non-nil. Any non-2xx
73560// status code is an error. Response headers are in either
73561// *Operation.ServerResponse.Header or (if a response was returned at
73562// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73563// to check whether the returned error was because
73564// http.StatusNotModified was returned.
73565func (c *HttpsHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
73566	gensupport.SetOptions(c.urlParams_, opts...)
73567	res, err := c.doRequest("json")
73568	if res != nil && res.StatusCode == http.StatusNotModified {
73569		if res.Body != nil {
73570			res.Body.Close()
73571		}
73572		return nil, &googleapi.Error{
73573			Code:   res.StatusCode,
73574			Header: res.Header,
73575		}
73576	}
73577	if err != nil {
73578		return nil, err
73579	}
73580	defer googleapi.CloseBody(res)
73581	if err := googleapi.CheckResponse(res); err != nil {
73582		return nil, err
73583	}
73584	ret := &Operation{
73585		ServerResponse: googleapi.ServerResponse{
73586			Header:         res.Header,
73587			HTTPStatusCode: res.StatusCode,
73588		},
73589	}
73590	target := &ret
73591	if err := gensupport.DecodeResponse(target, res); err != nil {
73592		return nil, err
73593	}
73594	return ret, nil
73595	// {
73596	//   "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.",
73597	//   "httpMethod": "PATCH",
73598	//   "id": "compute.httpsHealthChecks.patch",
73599	//   "parameterOrder": [
73600	//     "project",
73601	//     "httpsHealthCheck"
73602	//   ],
73603	//   "parameters": {
73604	//     "httpsHealthCheck": {
73605	//       "description": "Name of the HttpsHealthCheck resource to patch.",
73606	//       "location": "path",
73607	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
73608	//       "required": true,
73609	//       "type": "string"
73610	//     },
73611	//     "project": {
73612	//       "description": "Project ID for this request.",
73613	//       "location": "path",
73614	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73615	//       "required": true,
73616	//       "type": "string"
73617	//     },
73618	//     "requestId": {
73619	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
73620	//       "location": "query",
73621	//       "type": "string"
73622	//     }
73623	//   },
73624	//   "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}",
73625	//   "request": {
73626	//     "$ref": "HttpsHealthCheck"
73627	//   },
73628	//   "response": {
73629	//     "$ref": "Operation"
73630	//   },
73631	//   "scopes": [
73632	//     "https://www.googleapis.com/auth/cloud-platform",
73633	//     "https://www.googleapis.com/auth/compute"
73634	//   ]
73635	// }
73636
73637}
73638
73639// method id "compute.httpsHealthChecks.update":
73640
73641type HttpsHealthChecksUpdateCall struct {
73642	s                *Service
73643	project          string
73644	httpsHealthCheck string
73645	httpshealthcheck *HttpsHealthCheck
73646	urlParams_       gensupport.URLParams
73647	ctx_             context.Context
73648	header_          http.Header
73649}
73650
73651// Update: Updates a HttpsHealthCheck resource in the specified project
73652// using the data included in the request.
73653//
73654// - httpsHealthCheck: Name of the HttpsHealthCheck resource to update.
73655// - project: Project ID for this request.
73656func (r *HttpsHealthChecksService) Update(project string, httpsHealthCheck string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksUpdateCall {
73657	c := &HttpsHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73658	c.project = project
73659	c.httpsHealthCheck = httpsHealthCheck
73660	c.httpshealthcheck = httpshealthcheck
73661	return c
73662}
73663
73664// RequestId sets the optional parameter "requestId": An optional
73665// request ID to identify requests. Specify a unique request ID so that
73666// if you must retry your request, the server will know to ignore the
73667// request if it has already been completed.
73668//
73669// For example, consider a situation where you make an initial request
73670// and the request times out. If you make the request again with the
73671// same request ID, the server can check if original operation with the
73672// same request ID was received, and if so, will ignore the second
73673// request. This prevents clients from accidentally creating duplicate
73674// commitments.
73675//
73676// The request ID must be a valid UUID with the exception that zero UUID
73677// is not supported (00000000-0000-0000-0000-000000000000).
73678func (c *HttpsHealthChecksUpdateCall) RequestId(requestId string) *HttpsHealthChecksUpdateCall {
73679	c.urlParams_.Set("requestId", requestId)
73680	return c
73681}
73682
73683// Fields allows partial responses to be retrieved. See
73684// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73685// for more information.
73686func (c *HttpsHealthChecksUpdateCall) Fields(s ...googleapi.Field) *HttpsHealthChecksUpdateCall {
73687	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73688	return c
73689}
73690
73691// Context sets the context to be used in this call's Do method. Any
73692// pending HTTP request will be aborted if the provided context is
73693// canceled.
73694func (c *HttpsHealthChecksUpdateCall) Context(ctx context.Context) *HttpsHealthChecksUpdateCall {
73695	c.ctx_ = ctx
73696	return c
73697}
73698
73699// Header returns an http.Header that can be modified by the caller to
73700// add HTTP headers to the request.
73701func (c *HttpsHealthChecksUpdateCall) Header() http.Header {
73702	if c.header_ == nil {
73703		c.header_ = make(http.Header)
73704	}
73705	return c.header_
73706}
73707
73708func (c *HttpsHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
73709	reqHeaders := make(http.Header)
73710	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
73711	for k, v := range c.header_ {
73712		reqHeaders[k] = v
73713	}
73714	reqHeaders.Set("User-Agent", c.s.userAgent())
73715	var body io.Reader = nil
73716	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
73717	if err != nil {
73718		return nil, err
73719	}
73720	reqHeaders.Set("Content-Type", "application/json")
73721	c.urlParams_.Set("alt", alt)
73722	c.urlParams_.Set("prettyPrint", "false")
73723	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}")
73724	urls += "?" + c.urlParams_.Encode()
73725	req, err := http.NewRequest("PUT", urls, body)
73726	if err != nil {
73727		return nil, err
73728	}
73729	req.Header = reqHeaders
73730	googleapi.Expand(req.URL, map[string]string{
73731		"project":          c.project,
73732		"httpsHealthCheck": c.httpsHealthCheck,
73733	})
73734	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73735}
73736
73737// Do executes the "compute.httpsHealthChecks.update" call.
73738// Exactly one of *Operation or error will be non-nil. Any non-2xx
73739// status code is an error. Response headers are in either
73740// *Operation.ServerResponse.Header or (if a response was returned at
73741// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73742// to check whether the returned error was because
73743// http.StatusNotModified was returned.
73744func (c *HttpsHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
73745	gensupport.SetOptions(c.urlParams_, opts...)
73746	res, err := c.doRequest("json")
73747	if res != nil && res.StatusCode == http.StatusNotModified {
73748		if res.Body != nil {
73749			res.Body.Close()
73750		}
73751		return nil, &googleapi.Error{
73752			Code:   res.StatusCode,
73753			Header: res.Header,
73754		}
73755	}
73756	if err != nil {
73757		return nil, err
73758	}
73759	defer googleapi.CloseBody(res)
73760	if err := googleapi.CheckResponse(res); err != nil {
73761		return nil, err
73762	}
73763	ret := &Operation{
73764		ServerResponse: googleapi.ServerResponse{
73765			Header:         res.Header,
73766			HTTPStatusCode: res.StatusCode,
73767		},
73768	}
73769	target := &ret
73770	if err := gensupport.DecodeResponse(target, res); err != nil {
73771		return nil, err
73772	}
73773	return ret, nil
73774	// {
73775	//   "description": "Updates a HttpsHealthCheck resource in the specified project using the data included in the request.",
73776	//   "httpMethod": "PUT",
73777	//   "id": "compute.httpsHealthChecks.update",
73778	//   "parameterOrder": [
73779	//     "project",
73780	//     "httpsHealthCheck"
73781	//   ],
73782	//   "parameters": {
73783	//     "httpsHealthCheck": {
73784	//       "description": "Name of the HttpsHealthCheck resource to update.",
73785	//       "location": "path",
73786	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
73787	//       "required": true,
73788	//       "type": "string"
73789	//     },
73790	//     "project": {
73791	//       "description": "Project ID for this request.",
73792	//       "location": "path",
73793	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73794	//       "required": true,
73795	//       "type": "string"
73796	//     },
73797	//     "requestId": {
73798	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
73799	//       "location": "query",
73800	//       "type": "string"
73801	//     }
73802	//   },
73803	//   "path": "projects/{project}/global/httpsHealthChecks/{httpsHealthCheck}",
73804	//   "request": {
73805	//     "$ref": "HttpsHealthCheck"
73806	//   },
73807	//   "response": {
73808	//     "$ref": "Operation"
73809	//   },
73810	//   "scopes": [
73811	//     "https://www.googleapis.com/auth/cloud-platform",
73812	//     "https://www.googleapis.com/auth/compute"
73813	//   ]
73814	// }
73815
73816}
73817
73818// method id "compute.images.delete":
73819
73820type ImagesDeleteCall struct {
73821	s          *Service
73822	project    string
73823	image      string
73824	urlParams_ gensupport.URLParams
73825	ctx_       context.Context
73826	header_    http.Header
73827}
73828
73829// Delete: Deletes the specified image.
73830//
73831// - image: Name of the image resource to delete.
73832// - project: Project ID for this request.
73833// For details, see https://cloud.google.com/compute/docs/reference/latest/images/delete
73834func (r *ImagesService) Delete(project string, image string) *ImagesDeleteCall {
73835	c := &ImagesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73836	c.project = project
73837	c.image = image
73838	return c
73839}
73840
73841// RequestId sets the optional parameter "requestId": An optional
73842// request ID to identify requests. Specify a unique request ID so that
73843// if you must retry your request, the server will know to ignore the
73844// request if it has already been completed.
73845//
73846// For example, consider a situation where you make an initial request
73847// and the request times out. If you make the request again with the
73848// same request ID, the server can check if original operation with the
73849// same request ID was received, and if so, will ignore the second
73850// request. This prevents clients from accidentally creating duplicate
73851// commitments.
73852//
73853// The request ID must be a valid UUID with the exception that zero UUID
73854// is not supported (00000000-0000-0000-0000-000000000000).
73855func (c *ImagesDeleteCall) RequestId(requestId string) *ImagesDeleteCall {
73856	c.urlParams_.Set("requestId", requestId)
73857	return c
73858}
73859
73860// Fields allows partial responses to be retrieved. See
73861// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73862// for more information.
73863func (c *ImagesDeleteCall) Fields(s ...googleapi.Field) *ImagesDeleteCall {
73864	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73865	return c
73866}
73867
73868// Context sets the context to be used in this call's Do method. Any
73869// pending HTTP request will be aborted if the provided context is
73870// canceled.
73871func (c *ImagesDeleteCall) Context(ctx context.Context) *ImagesDeleteCall {
73872	c.ctx_ = ctx
73873	return c
73874}
73875
73876// Header returns an http.Header that can be modified by the caller to
73877// add HTTP headers to the request.
73878func (c *ImagesDeleteCall) Header() http.Header {
73879	if c.header_ == nil {
73880		c.header_ = make(http.Header)
73881	}
73882	return c.header_
73883}
73884
73885func (c *ImagesDeleteCall) doRequest(alt string) (*http.Response, error) {
73886	reqHeaders := make(http.Header)
73887	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
73888	for k, v := range c.header_ {
73889		reqHeaders[k] = v
73890	}
73891	reqHeaders.Set("User-Agent", c.s.userAgent())
73892	var body io.Reader = nil
73893	c.urlParams_.Set("alt", alt)
73894	c.urlParams_.Set("prettyPrint", "false")
73895	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{image}")
73896	urls += "?" + c.urlParams_.Encode()
73897	req, err := http.NewRequest("DELETE", urls, body)
73898	if err != nil {
73899		return nil, err
73900	}
73901	req.Header = reqHeaders
73902	googleapi.Expand(req.URL, map[string]string{
73903		"project": c.project,
73904		"image":   c.image,
73905	})
73906	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73907}
73908
73909// Do executes the "compute.images.delete" call.
73910// Exactly one of *Operation or error will be non-nil. Any non-2xx
73911// status code is an error. Response headers are in either
73912// *Operation.ServerResponse.Header or (if a response was returned at
73913// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73914// to check whether the returned error was because
73915// http.StatusNotModified was returned.
73916func (c *ImagesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
73917	gensupport.SetOptions(c.urlParams_, opts...)
73918	res, err := c.doRequest("json")
73919	if res != nil && res.StatusCode == http.StatusNotModified {
73920		if res.Body != nil {
73921			res.Body.Close()
73922		}
73923		return nil, &googleapi.Error{
73924			Code:   res.StatusCode,
73925			Header: res.Header,
73926		}
73927	}
73928	if err != nil {
73929		return nil, err
73930	}
73931	defer googleapi.CloseBody(res)
73932	if err := googleapi.CheckResponse(res); err != nil {
73933		return nil, err
73934	}
73935	ret := &Operation{
73936		ServerResponse: googleapi.ServerResponse{
73937			Header:         res.Header,
73938			HTTPStatusCode: res.StatusCode,
73939		},
73940	}
73941	target := &ret
73942	if err := gensupport.DecodeResponse(target, res); err != nil {
73943		return nil, err
73944	}
73945	return ret, nil
73946	// {
73947	//   "description": "Deletes the specified image.",
73948	//   "httpMethod": "DELETE",
73949	//   "id": "compute.images.delete",
73950	//   "parameterOrder": [
73951	//     "project",
73952	//     "image"
73953	//   ],
73954	//   "parameters": {
73955	//     "image": {
73956	//       "description": "Name of the image resource to delete.",
73957	//       "location": "path",
73958	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
73959	//       "required": true,
73960	//       "type": "string"
73961	//     },
73962	//     "project": {
73963	//       "description": "Project ID for this request.",
73964	//       "location": "path",
73965	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73966	//       "required": true,
73967	//       "type": "string"
73968	//     },
73969	//     "requestId": {
73970	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
73971	//       "location": "query",
73972	//       "type": "string"
73973	//     }
73974	//   },
73975	//   "path": "projects/{project}/global/images/{image}",
73976	//   "response": {
73977	//     "$ref": "Operation"
73978	//   },
73979	//   "scopes": [
73980	//     "https://www.googleapis.com/auth/cloud-platform",
73981	//     "https://www.googleapis.com/auth/compute"
73982	//   ]
73983	// }
73984
73985}
73986
73987// method id "compute.images.deprecate":
73988
73989type ImagesDeprecateCall struct {
73990	s                 *Service
73991	project           string
73992	image             string
73993	deprecationstatus *DeprecationStatus
73994	urlParams_        gensupport.URLParams
73995	ctx_              context.Context
73996	header_           http.Header
73997}
73998
73999// Deprecate: Sets the deprecation status of an image.
74000//
74001// If an empty request body is given, clears the deprecation status
74002// instead.
74003//
74004// - image: Image name.
74005// - project: Project ID for this request.
74006// For details, see https://cloud.google.com/compute/docs/reference/latest/images/deprecate
74007func (r *ImagesService) Deprecate(project string, image string, deprecationstatus *DeprecationStatus) *ImagesDeprecateCall {
74008	c := &ImagesDeprecateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74009	c.project = project
74010	c.image = image
74011	c.deprecationstatus = deprecationstatus
74012	return c
74013}
74014
74015// RequestId sets the optional parameter "requestId": An optional
74016// request ID to identify requests. Specify a unique request ID so that
74017// if you must retry your request, the server will know to ignore the
74018// request if it has already been completed.
74019//
74020// For example, consider a situation where you make an initial request
74021// and the request times out. If you make the request again with the
74022// same request ID, the server can check if original operation with the
74023// same request ID was received, and if so, will ignore the second
74024// request. This prevents clients from accidentally creating duplicate
74025// commitments.
74026//
74027// The request ID must be a valid UUID with the exception that zero UUID
74028// is not supported (00000000-0000-0000-0000-000000000000).
74029func (c *ImagesDeprecateCall) RequestId(requestId string) *ImagesDeprecateCall {
74030	c.urlParams_.Set("requestId", requestId)
74031	return c
74032}
74033
74034// Fields allows partial responses to be retrieved. See
74035// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74036// for more information.
74037func (c *ImagesDeprecateCall) Fields(s ...googleapi.Field) *ImagesDeprecateCall {
74038	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74039	return c
74040}
74041
74042// Context sets the context to be used in this call's Do method. Any
74043// pending HTTP request will be aborted if the provided context is
74044// canceled.
74045func (c *ImagesDeprecateCall) Context(ctx context.Context) *ImagesDeprecateCall {
74046	c.ctx_ = ctx
74047	return c
74048}
74049
74050// Header returns an http.Header that can be modified by the caller to
74051// add HTTP headers to the request.
74052func (c *ImagesDeprecateCall) Header() http.Header {
74053	if c.header_ == nil {
74054		c.header_ = make(http.Header)
74055	}
74056	return c.header_
74057}
74058
74059func (c *ImagesDeprecateCall) doRequest(alt string) (*http.Response, error) {
74060	reqHeaders := make(http.Header)
74061	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
74062	for k, v := range c.header_ {
74063		reqHeaders[k] = v
74064	}
74065	reqHeaders.Set("User-Agent", c.s.userAgent())
74066	var body io.Reader = nil
74067	body, err := googleapi.WithoutDataWrapper.JSONReader(c.deprecationstatus)
74068	if err != nil {
74069		return nil, err
74070	}
74071	reqHeaders.Set("Content-Type", "application/json")
74072	c.urlParams_.Set("alt", alt)
74073	c.urlParams_.Set("prettyPrint", "false")
74074	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{image}/deprecate")
74075	urls += "?" + c.urlParams_.Encode()
74076	req, err := http.NewRequest("POST", urls, body)
74077	if err != nil {
74078		return nil, err
74079	}
74080	req.Header = reqHeaders
74081	googleapi.Expand(req.URL, map[string]string{
74082		"project": c.project,
74083		"image":   c.image,
74084	})
74085	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74086}
74087
74088// Do executes the "compute.images.deprecate" call.
74089// Exactly one of *Operation or error will be non-nil. Any non-2xx
74090// status code is an error. Response headers are in either
74091// *Operation.ServerResponse.Header or (if a response was returned at
74092// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74093// to check whether the returned error was because
74094// http.StatusNotModified was returned.
74095func (c *ImagesDeprecateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74096	gensupport.SetOptions(c.urlParams_, opts...)
74097	res, err := c.doRequest("json")
74098	if res != nil && res.StatusCode == http.StatusNotModified {
74099		if res.Body != nil {
74100			res.Body.Close()
74101		}
74102		return nil, &googleapi.Error{
74103			Code:   res.StatusCode,
74104			Header: res.Header,
74105		}
74106	}
74107	if err != nil {
74108		return nil, err
74109	}
74110	defer googleapi.CloseBody(res)
74111	if err := googleapi.CheckResponse(res); err != nil {
74112		return nil, err
74113	}
74114	ret := &Operation{
74115		ServerResponse: googleapi.ServerResponse{
74116			Header:         res.Header,
74117			HTTPStatusCode: res.StatusCode,
74118		},
74119	}
74120	target := &ret
74121	if err := gensupport.DecodeResponse(target, res); err != nil {
74122		return nil, err
74123	}
74124	return ret, nil
74125	// {
74126	//   "description": "Sets the deprecation status of an image.\n\nIf an empty request body is given, clears the deprecation status instead.",
74127	//   "httpMethod": "POST",
74128	//   "id": "compute.images.deprecate",
74129	//   "parameterOrder": [
74130	//     "project",
74131	//     "image"
74132	//   ],
74133	//   "parameters": {
74134	//     "image": {
74135	//       "description": "Image name.",
74136	//       "location": "path",
74137	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
74138	//       "required": true,
74139	//       "type": "string"
74140	//     },
74141	//     "project": {
74142	//       "description": "Project ID for this request.",
74143	//       "location": "path",
74144	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74145	//       "required": true,
74146	//       "type": "string"
74147	//     },
74148	//     "requestId": {
74149	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
74150	//       "location": "query",
74151	//       "type": "string"
74152	//     }
74153	//   },
74154	//   "path": "projects/{project}/global/images/{image}/deprecate",
74155	//   "request": {
74156	//     "$ref": "DeprecationStatus"
74157	//   },
74158	//   "response": {
74159	//     "$ref": "Operation"
74160	//   },
74161	//   "scopes": [
74162	//     "https://www.googleapis.com/auth/cloud-platform",
74163	//     "https://www.googleapis.com/auth/compute"
74164	//   ]
74165	// }
74166
74167}
74168
74169// method id "compute.images.get":
74170
74171type ImagesGetCall struct {
74172	s            *Service
74173	project      string
74174	image        string
74175	urlParams_   gensupport.URLParams
74176	ifNoneMatch_ string
74177	ctx_         context.Context
74178	header_      http.Header
74179}
74180
74181// Get: Returns the specified image. Gets a list of available images by
74182// making a list() request.
74183//
74184// - image: Name of the image resource to return.
74185// - project: Project ID for this request.
74186// For details, see https://cloud.google.com/compute/docs/reference/latest/images/get
74187func (r *ImagesService) Get(project string, image string) *ImagesGetCall {
74188	c := &ImagesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74189	c.project = project
74190	c.image = image
74191	return c
74192}
74193
74194// Fields allows partial responses to be retrieved. See
74195// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74196// for more information.
74197func (c *ImagesGetCall) Fields(s ...googleapi.Field) *ImagesGetCall {
74198	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74199	return c
74200}
74201
74202// IfNoneMatch sets the optional parameter which makes the operation
74203// fail if the object's ETag matches the given value. This is useful for
74204// getting updates only after the object has changed since the last
74205// request. Use googleapi.IsNotModified to check whether the response
74206// error from Do is the result of In-None-Match.
74207func (c *ImagesGetCall) IfNoneMatch(entityTag string) *ImagesGetCall {
74208	c.ifNoneMatch_ = entityTag
74209	return c
74210}
74211
74212// Context sets the context to be used in this call's Do method. Any
74213// pending HTTP request will be aborted if the provided context is
74214// canceled.
74215func (c *ImagesGetCall) Context(ctx context.Context) *ImagesGetCall {
74216	c.ctx_ = ctx
74217	return c
74218}
74219
74220// Header returns an http.Header that can be modified by the caller to
74221// add HTTP headers to the request.
74222func (c *ImagesGetCall) Header() http.Header {
74223	if c.header_ == nil {
74224		c.header_ = make(http.Header)
74225	}
74226	return c.header_
74227}
74228
74229func (c *ImagesGetCall) doRequest(alt string) (*http.Response, error) {
74230	reqHeaders := make(http.Header)
74231	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
74232	for k, v := range c.header_ {
74233		reqHeaders[k] = v
74234	}
74235	reqHeaders.Set("User-Agent", c.s.userAgent())
74236	if c.ifNoneMatch_ != "" {
74237		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
74238	}
74239	var body io.Reader = nil
74240	c.urlParams_.Set("alt", alt)
74241	c.urlParams_.Set("prettyPrint", "false")
74242	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{image}")
74243	urls += "?" + c.urlParams_.Encode()
74244	req, err := http.NewRequest("GET", urls, body)
74245	if err != nil {
74246		return nil, err
74247	}
74248	req.Header = reqHeaders
74249	googleapi.Expand(req.URL, map[string]string{
74250		"project": c.project,
74251		"image":   c.image,
74252	})
74253	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74254}
74255
74256// Do executes the "compute.images.get" call.
74257// Exactly one of *Image or error will be non-nil. Any non-2xx status
74258// code is an error. Response headers are in either
74259// *Image.ServerResponse.Header or (if a response was returned at all)
74260// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
74261// check whether the returned error was because http.StatusNotModified
74262// was returned.
74263func (c *ImagesGetCall) Do(opts ...googleapi.CallOption) (*Image, error) {
74264	gensupport.SetOptions(c.urlParams_, opts...)
74265	res, err := c.doRequest("json")
74266	if res != nil && res.StatusCode == http.StatusNotModified {
74267		if res.Body != nil {
74268			res.Body.Close()
74269		}
74270		return nil, &googleapi.Error{
74271			Code:   res.StatusCode,
74272			Header: res.Header,
74273		}
74274	}
74275	if err != nil {
74276		return nil, err
74277	}
74278	defer googleapi.CloseBody(res)
74279	if err := googleapi.CheckResponse(res); err != nil {
74280		return nil, err
74281	}
74282	ret := &Image{
74283		ServerResponse: googleapi.ServerResponse{
74284			Header:         res.Header,
74285			HTTPStatusCode: res.StatusCode,
74286		},
74287	}
74288	target := &ret
74289	if err := gensupport.DecodeResponse(target, res); err != nil {
74290		return nil, err
74291	}
74292	return ret, nil
74293	// {
74294	//   "description": "Returns the specified image. Gets a list of available images by making a list() request.",
74295	//   "httpMethod": "GET",
74296	//   "id": "compute.images.get",
74297	//   "parameterOrder": [
74298	//     "project",
74299	//     "image"
74300	//   ],
74301	//   "parameters": {
74302	//     "image": {
74303	//       "description": "Name of the image resource to return.",
74304	//       "location": "path",
74305	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
74306	//       "required": true,
74307	//       "type": "string"
74308	//     },
74309	//     "project": {
74310	//       "description": "Project ID for this request.",
74311	//       "location": "path",
74312	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74313	//       "required": true,
74314	//       "type": "string"
74315	//     }
74316	//   },
74317	//   "path": "projects/{project}/global/images/{image}",
74318	//   "response": {
74319	//     "$ref": "Image"
74320	//   },
74321	//   "scopes": [
74322	//     "https://www.googleapis.com/auth/cloud-platform",
74323	//     "https://www.googleapis.com/auth/compute",
74324	//     "https://www.googleapis.com/auth/compute.readonly"
74325	//   ]
74326	// }
74327
74328}
74329
74330// method id "compute.images.getFromFamily":
74331
74332type ImagesGetFromFamilyCall struct {
74333	s            *Service
74334	project      string
74335	family       string
74336	urlParams_   gensupport.URLParams
74337	ifNoneMatch_ string
74338	ctx_         context.Context
74339	header_      http.Header
74340}
74341
74342// GetFromFamily: Returns the latest image that is part of an image
74343// family and is not deprecated.
74344//
74345// - family: Name of the image family to search for.
74346// - project: Project ID for this request.
74347func (r *ImagesService) GetFromFamily(project string, family string) *ImagesGetFromFamilyCall {
74348	c := &ImagesGetFromFamilyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74349	c.project = project
74350	c.family = family
74351	return c
74352}
74353
74354// Fields allows partial responses to be retrieved. See
74355// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74356// for more information.
74357func (c *ImagesGetFromFamilyCall) Fields(s ...googleapi.Field) *ImagesGetFromFamilyCall {
74358	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74359	return c
74360}
74361
74362// IfNoneMatch sets the optional parameter which makes the operation
74363// fail if the object's ETag matches the given value. This is useful for
74364// getting updates only after the object has changed since the last
74365// request. Use googleapi.IsNotModified to check whether the response
74366// error from Do is the result of In-None-Match.
74367func (c *ImagesGetFromFamilyCall) IfNoneMatch(entityTag string) *ImagesGetFromFamilyCall {
74368	c.ifNoneMatch_ = entityTag
74369	return c
74370}
74371
74372// Context sets the context to be used in this call's Do method. Any
74373// pending HTTP request will be aborted if the provided context is
74374// canceled.
74375func (c *ImagesGetFromFamilyCall) Context(ctx context.Context) *ImagesGetFromFamilyCall {
74376	c.ctx_ = ctx
74377	return c
74378}
74379
74380// Header returns an http.Header that can be modified by the caller to
74381// add HTTP headers to the request.
74382func (c *ImagesGetFromFamilyCall) Header() http.Header {
74383	if c.header_ == nil {
74384		c.header_ = make(http.Header)
74385	}
74386	return c.header_
74387}
74388
74389func (c *ImagesGetFromFamilyCall) doRequest(alt string) (*http.Response, error) {
74390	reqHeaders := make(http.Header)
74391	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
74392	for k, v := range c.header_ {
74393		reqHeaders[k] = v
74394	}
74395	reqHeaders.Set("User-Agent", c.s.userAgent())
74396	if c.ifNoneMatch_ != "" {
74397		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
74398	}
74399	var body io.Reader = nil
74400	c.urlParams_.Set("alt", alt)
74401	c.urlParams_.Set("prettyPrint", "false")
74402	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/family/{family}")
74403	urls += "?" + c.urlParams_.Encode()
74404	req, err := http.NewRequest("GET", urls, body)
74405	if err != nil {
74406		return nil, err
74407	}
74408	req.Header = reqHeaders
74409	googleapi.Expand(req.URL, map[string]string{
74410		"project": c.project,
74411		"family":  c.family,
74412	})
74413	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74414}
74415
74416// Do executes the "compute.images.getFromFamily" call.
74417// Exactly one of *Image or error will be non-nil. Any non-2xx status
74418// code is an error. Response headers are in either
74419// *Image.ServerResponse.Header or (if a response was returned at all)
74420// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
74421// check whether the returned error was because http.StatusNotModified
74422// was returned.
74423func (c *ImagesGetFromFamilyCall) Do(opts ...googleapi.CallOption) (*Image, error) {
74424	gensupport.SetOptions(c.urlParams_, opts...)
74425	res, err := c.doRequest("json")
74426	if res != nil && res.StatusCode == http.StatusNotModified {
74427		if res.Body != nil {
74428			res.Body.Close()
74429		}
74430		return nil, &googleapi.Error{
74431			Code:   res.StatusCode,
74432			Header: res.Header,
74433		}
74434	}
74435	if err != nil {
74436		return nil, err
74437	}
74438	defer googleapi.CloseBody(res)
74439	if err := googleapi.CheckResponse(res); err != nil {
74440		return nil, err
74441	}
74442	ret := &Image{
74443		ServerResponse: googleapi.ServerResponse{
74444			Header:         res.Header,
74445			HTTPStatusCode: res.StatusCode,
74446		},
74447	}
74448	target := &ret
74449	if err := gensupport.DecodeResponse(target, res); err != nil {
74450		return nil, err
74451	}
74452	return ret, nil
74453	// {
74454	//   "description": "Returns the latest image that is part of an image family and is not deprecated.",
74455	//   "httpMethod": "GET",
74456	//   "id": "compute.images.getFromFamily",
74457	//   "parameterOrder": [
74458	//     "project",
74459	//     "family"
74460	//   ],
74461	//   "parameters": {
74462	//     "family": {
74463	//       "description": "Name of the image family to search for.",
74464	//       "location": "path",
74465	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
74466	//       "required": true,
74467	//       "type": "string"
74468	//     },
74469	//     "project": {
74470	//       "description": "Project ID for this request.",
74471	//       "location": "path",
74472	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74473	//       "required": true,
74474	//       "type": "string"
74475	//     }
74476	//   },
74477	//   "path": "projects/{project}/global/images/family/{family}",
74478	//   "response": {
74479	//     "$ref": "Image"
74480	//   },
74481	//   "scopes": [
74482	//     "https://www.googleapis.com/auth/cloud-platform",
74483	//     "https://www.googleapis.com/auth/compute",
74484	//     "https://www.googleapis.com/auth/compute.readonly"
74485	//   ]
74486	// }
74487
74488}
74489
74490// method id "compute.images.getIamPolicy":
74491
74492type ImagesGetIamPolicyCall struct {
74493	s            *Service
74494	project      string
74495	resource     string
74496	urlParams_   gensupport.URLParams
74497	ifNoneMatch_ string
74498	ctx_         context.Context
74499	header_      http.Header
74500}
74501
74502// GetIamPolicy: Gets the access control policy for a resource. May be
74503// empty if no such policy or resource exists.
74504//
74505// - project: Project ID for this request.
74506// - resource: Name or id of the resource for this request.
74507func (r *ImagesService) GetIamPolicy(project string, resource string) *ImagesGetIamPolicyCall {
74508	c := &ImagesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74509	c.project = project
74510	c.resource = resource
74511	return c
74512}
74513
74514// OptionsRequestedPolicyVersion sets the optional parameter
74515// "optionsRequestedPolicyVersion": Requested IAM Policy version.
74516func (c *ImagesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ImagesGetIamPolicyCall {
74517	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
74518	return c
74519}
74520
74521// Fields allows partial responses to be retrieved. See
74522// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74523// for more information.
74524func (c *ImagesGetIamPolicyCall) Fields(s ...googleapi.Field) *ImagesGetIamPolicyCall {
74525	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74526	return c
74527}
74528
74529// IfNoneMatch sets the optional parameter which makes the operation
74530// fail if the object's ETag matches the given value. This is useful for
74531// getting updates only after the object has changed since the last
74532// request. Use googleapi.IsNotModified to check whether the response
74533// error from Do is the result of In-None-Match.
74534func (c *ImagesGetIamPolicyCall) IfNoneMatch(entityTag string) *ImagesGetIamPolicyCall {
74535	c.ifNoneMatch_ = entityTag
74536	return c
74537}
74538
74539// Context sets the context to be used in this call's Do method. Any
74540// pending HTTP request will be aborted if the provided context is
74541// canceled.
74542func (c *ImagesGetIamPolicyCall) Context(ctx context.Context) *ImagesGetIamPolicyCall {
74543	c.ctx_ = ctx
74544	return c
74545}
74546
74547// Header returns an http.Header that can be modified by the caller to
74548// add HTTP headers to the request.
74549func (c *ImagesGetIamPolicyCall) Header() http.Header {
74550	if c.header_ == nil {
74551		c.header_ = make(http.Header)
74552	}
74553	return c.header_
74554}
74555
74556func (c *ImagesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
74557	reqHeaders := make(http.Header)
74558	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
74559	for k, v := range c.header_ {
74560		reqHeaders[k] = v
74561	}
74562	reqHeaders.Set("User-Agent", c.s.userAgent())
74563	if c.ifNoneMatch_ != "" {
74564		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
74565	}
74566	var body io.Reader = nil
74567	c.urlParams_.Set("alt", alt)
74568	c.urlParams_.Set("prettyPrint", "false")
74569	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{resource}/getIamPolicy")
74570	urls += "?" + c.urlParams_.Encode()
74571	req, err := http.NewRequest("GET", urls, body)
74572	if err != nil {
74573		return nil, err
74574	}
74575	req.Header = reqHeaders
74576	googleapi.Expand(req.URL, map[string]string{
74577		"project":  c.project,
74578		"resource": c.resource,
74579	})
74580	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74581}
74582
74583// Do executes the "compute.images.getIamPolicy" call.
74584// Exactly one of *Policy or error will be non-nil. Any non-2xx status
74585// code is an error. Response headers are in either
74586// *Policy.ServerResponse.Header or (if a response was returned at all)
74587// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
74588// check whether the returned error was because http.StatusNotModified
74589// was returned.
74590func (c *ImagesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
74591	gensupport.SetOptions(c.urlParams_, opts...)
74592	res, err := c.doRequest("json")
74593	if res != nil && res.StatusCode == http.StatusNotModified {
74594		if res.Body != nil {
74595			res.Body.Close()
74596		}
74597		return nil, &googleapi.Error{
74598			Code:   res.StatusCode,
74599			Header: res.Header,
74600		}
74601	}
74602	if err != nil {
74603		return nil, err
74604	}
74605	defer googleapi.CloseBody(res)
74606	if err := googleapi.CheckResponse(res); err != nil {
74607		return nil, err
74608	}
74609	ret := &Policy{
74610		ServerResponse: googleapi.ServerResponse{
74611			Header:         res.Header,
74612			HTTPStatusCode: res.StatusCode,
74613		},
74614	}
74615	target := &ret
74616	if err := gensupport.DecodeResponse(target, res); err != nil {
74617		return nil, err
74618	}
74619	return ret, nil
74620	// {
74621	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
74622	//   "httpMethod": "GET",
74623	//   "id": "compute.images.getIamPolicy",
74624	//   "parameterOrder": [
74625	//     "project",
74626	//     "resource"
74627	//   ],
74628	//   "parameters": {
74629	//     "optionsRequestedPolicyVersion": {
74630	//       "description": "Requested IAM Policy version.",
74631	//       "format": "int32",
74632	//       "location": "query",
74633	//       "type": "integer"
74634	//     },
74635	//     "project": {
74636	//       "description": "Project ID for this request.",
74637	//       "location": "path",
74638	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74639	//       "required": true,
74640	//       "type": "string"
74641	//     },
74642	//     "resource": {
74643	//       "description": "Name or id of the resource for this request.",
74644	//       "location": "path",
74645	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
74646	//       "required": true,
74647	//       "type": "string"
74648	//     }
74649	//   },
74650	//   "path": "projects/{project}/global/images/{resource}/getIamPolicy",
74651	//   "response": {
74652	//     "$ref": "Policy"
74653	//   },
74654	//   "scopes": [
74655	//     "https://www.googleapis.com/auth/cloud-platform",
74656	//     "https://www.googleapis.com/auth/compute",
74657	//     "https://www.googleapis.com/auth/compute.readonly"
74658	//   ]
74659	// }
74660
74661}
74662
74663// method id "compute.images.insert":
74664
74665type ImagesInsertCall struct {
74666	s          *Service
74667	project    string
74668	image      *Image
74669	urlParams_ gensupport.URLParams
74670	ctx_       context.Context
74671	header_    http.Header
74672}
74673
74674// Insert: Creates an image in the specified project using the data
74675// included in the request.
74676//
74677// - project: Project ID for this request.
74678// For details, see https://cloud.google.com/compute/docs/reference/latest/images/insert
74679func (r *ImagesService) Insert(project string, image *Image) *ImagesInsertCall {
74680	c := &ImagesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74681	c.project = project
74682	c.image = image
74683	return c
74684}
74685
74686// ForceCreate sets the optional parameter "forceCreate": Force image
74687// creation if true.
74688func (c *ImagesInsertCall) ForceCreate(forceCreate bool) *ImagesInsertCall {
74689	c.urlParams_.Set("forceCreate", fmt.Sprint(forceCreate))
74690	return c
74691}
74692
74693// RequestId sets the optional parameter "requestId": An optional
74694// request ID to identify requests. Specify a unique request ID so that
74695// if you must retry your request, the server will know to ignore the
74696// request if it has already been completed.
74697//
74698// For example, consider a situation where you make an initial request
74699// and the request times out. If you make the request again with the
74700// same request ID, the server can check if original operation with the
74701// same request ID was received, and if so, will ignore the second
74702// request. This prevents clients from accidentally creating duplicate
74703// commitments.
74704//
74705// The request ID must be a valid UUID with the exception that zero UUID
74706// is not supported (00000000-0000-0000-0000-000000000000).
74707func (c *ImagesInsertCall) RequestId(requestId string) *ImagesInsertCall {
74708	c.urlParams_.Set("requestId", requestId)
74709	return c
74710}
74711
74712// Fields allows partial responses to be retrieved. See
74713// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74714// for more information.
74715func (c *ImagesInsertCall) Fields(s ...googleapi.Field) *ImagesInsertCall {
74716	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74717	return c
74718}
74719
74720// Context sets the context to be used in this call's Do method. Any
74721// pending HTTP request will be aborted if the provided context is
74722// canceled.
74723func (c *ImagesInsertCall) Context(ctx context.Context) *ImagesInsertCall {
74724	c.ctx_ = ctx
74725	return c
74726}
74727
74728// Header returns an http.Header that can be modified by the caller to
74729// add HTTP headers to the request.
74730func (c *ImagesInsertCall) Header() http.Header {
74731	if c.header_ == nil {
74732		c.header_ = make(http.Header)
74733	}
74734	return c.header_
74735}
74736
74737func (c *ImagesInsertCall) doRequest(alt string) (*http.Response, error) {
74738	reqHeaders := make(http.Header)
74739	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
74740	for k, v := range c.header_ {
74741		reqHeaders[k] = v
74742	}
74743	reqHeaders.Set("User-Agent", c.s.userAgent())
74744	var body io.Reader = nil
74745	body, err := googleapi.WithoutDataWrapper.JSONReader(c.image)
74746	if err != nil {
74747		return nil, err
74748	}
74749	reqHeaders.Set("Content-Type", "application/json")
74750	c.urlParams_.Set("alt", alt)
74751	c.urlParams_.Set("prettyPrint", "false")
74752	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images")
74753	urls += "?" + c.urlParams_.Encode()
74754	req, err := http.NewRequest("POST", urls, body)
74755	if err != nil {
74756		return nil, err
74757	}
74758	req.Header = reqHeaders
74759	googleapi.Expand(req.URL, map[string]string{
74760		"project": c.project,
74761	})
74762	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74763}
74764
74765// Do executes the "compute.images.insert" call.
74766// Exactly one of *Operation or error will be non-nil. Any non-2xx
74767// status code is an error. Response headers are in either
74768// *Operation.ServerResponse.Header or (if a response was returned at
74769// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74770// to check whether the returned error was because
74771// http.StatusNotModified was returned.
74772func (c *ImagesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74773	gensupport.SetOptions(c.urlParams_, opts...)
74774	res, err := c.doRequest("json")
74775	if res != nil && res.StatusCode == http.StatusNotModified {
74776		if res.Body != nil {
74777			res.Body.Close()
74778		}
74779		return nil, &googleapi.Error{
74780			Code:   res.StatusCode,
74781			Header: res.Header,
74782		}
74783	}
74784	if err != nil {
74785		return nil, err
74786	}
74787	defer googleapi.CloseBody(res)
74788	if err := googleapi.CheckResponse(res); err != nil {
74789		return nil, err
74790	}
74791	ret := &Operation{
74792		ServerResponse: googleapi.ServerResponse{
74793			Header:         res.Header,
74794			HTTPStatusCode: res.StatusCode,
74795		},
74796	}
74797	target := &ret
74798	if err := gensupport.DecodeResponse(target, res); err != nil {
74799		return nil, err
74800	}
74801	return ret, nil
74802	// {
74803	//   "description": "Creates an image in the specified project using the data included in the request.",
74804	//   "httpMethod": "POST",
74805	//   "id": "compute.images.insert",
74806	//   "parameterOrder": [
74807	//     "project"
74808	//   ],
74809	//   "parameters": {
74810	//     "forceCreate": {
74811	//       "description": "Force image creation if true.",
74812	//       "location": "query",
74813	//       "type": "boolean"
74814	//     },
74815	//     "project": {
74816	//       "description": "Project ID for this request.",
74817	//       "location": "path",
74818	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74819	//       "required": true,
74820	//       "type": "string"
74821	//     },
74822	//     "requestId": {
74823	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
74824	//       "location": "query",
74825	//       "type": "string"
74826	//     }
74827	//   },
74828	//   "path": "projects/{project}/global/images",
74829	//   "request": {
74830	//     "$ref": "Image"
74831	//   },
74832	//   "response": {
74833	//     "$ref": "Operation"
74834	//   },
74835	//   "scopes": [
74836	//     "https://www.googleapis.com/auth/cloud-platform",
74837	//     "https://www.googleapis.com/auth/compute",
74838	//     "https://www.googleapis.com/auth/devstorage.full_control",
74839	//     "https://www.googleapis.com/auth/devstorage.read_only",
74840	//     "https://www.googleapis.com/auth/devstorage.read_write"
74841	//   ]
74842	// }
74843
74844}
74845
74846// method id "compute.images.list":
74847
74848type ImagesListCall struct {
74849	s            *Service
74850	project      string
74851	urlParams_   gensupport.URLParams
74852	ifNoneMatch_ string
74853	ctx_         context.Context
74854	header_      http.Header
74855}
74856
74857// List: Retrieves the list of custom images available to the specified
74858// project. Custom images are images you create that belong to your
74859// project. This method does not get any images that belong to other
74860// projects, including publicly-available images, like Debian 8. If you
74861// want to get a list of publicly-available images, use this method to
74862// make a request to the respective image project, such as debian-cloud
74863// or windows-cloud.
74864//
74865// - project: Project ID for this request.
74866// For details, see https://cloud.google.com/compute/docs/reference/latest/images/list
74867func (r *ImagesService) List(project string) *ImagesListCall {
74868	c := &ImagesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74869	c.project = project
74870	return c
74871}
74872
74873// Filter sets the optional parameter "filter": A filter expression that
74874// filters resources listed in the response. The expression must specify
74875// the field name, a comparison operator, and the value that you want to
74876// use for filtering. The value must be a string, a number, or a
74877// boolean. The comparison operator must be either `=`, `!=`, `>`, or
74878// `<`.
74879//
74880// For example, if you are filtering Compute Engine instances, you can
74881// exclude instances named `example-instance` by specifying `name !=
74882// example-instance`.
74883//
74884// You can also filter nested fields. For example, you could specify
74885// `scheduling.automaticRestart = false` to include instances only if
74886// they are not scheduled for automatic restarts. You can use filtering
74887// on nested fields to filter based on resource labels.
74888//
74889// To filter on multiple expressions, provide each separate expression
74890// within parentheses. For example: ``` (scheduling.automaticRestart =
74891// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
74892// is an `AND` expression. However, you can include `AND` and `OR`
74893// expressions explicitly. For example: ``` (cpuPlatform = "Intel
74894// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
74895// (scheduling.automaticRestart = true) ```
74896func (c *ImagesListCall) Filter(filter string) *ImagesListCall {
74897	c.urlParams_.Set("filter", filter)
74898	return c
74899}
74900
74901// MaxResults sets the optional parameter "maxResults": The maximum
74902// number of results per page that should be returned. If the number of
74903// available results is larger than `maxResults`, Compute Engine returns
74904// a `nextPageToken` that can be used to get the next page of results in
74905// subsequent list requests. Acceptable values are `0` to `500`,
74906// inclusive. (Default: `500`)
74907func (c *ImagesListCall) MaxResults(maxResults int64) *ImagesListCall {
74908	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
74909	return c
74910}
74911
74912// OrderBy sets the optional parameter "orderBy": Sorts list results by
74913// a certain order. By default, results are returned in alphanumerical
74914// order based on the resource name.
74915//
74916// You can also sort results in descending order based on the creation
74917// timestamp using `orderBy="creationTimestamp desc". This sorts
74918// results based on the `creationTimestamp` field in reverse
74919// chronological order (newest result first). Use this to sort resources
74920// like operations so that the newest operation is returned
74921// first.
74922//
74923// Currently, only sorting by `name` or `creationTimestamp desc` is
74924// supported.
74925func (c *ImagesListCall) OrderBy(orderBy string) *ImagesListCall {
74926	c.urlParams_.Set("orderBy", orderBy)
74927	return c
74928}
74929
74930// PageToken sets the optional parameter "pageToken": Specifies a page
74931// token to use. Set `pageToken` to the `nextPageToken` returned by a
74932// previous list request to get the next page of results.
74933func (c *ImagesListCall) PageToken(pageToken string) *ImagesListCall {
74934	c.urlParams_.Set("pageToken", pageToken)
74935	return c
74936}
74937
74938// ReturnPartialSuccess sets the optional parameter
74939// "returnPartialSuccess": Opt-in for partial success behavior which
74940// provides partial results in case of failure. The default value is
74941// false.
74942func (c *ImagesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ImagesListCall {
74943	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
74944	return c
74945}
74946
74947// Fields allows partial responses to be retrieved. See
74948// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74949// for more information.
74950func (c *ImagesListCall) Fields(s ...googleapi.Field) *ImagesListCall {
74951	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74952	return c
74953}
74954
74955// IfNoneMatch sets the optional parameter which makes the operation
74956// fail if the object's ETag matches the given value. This is useful for
74957// getting updates only after the object has changed since the last
74958// request. Use googleapi.IsNotModified to check whether the response
74959// error from Do is the result of In-None-Match.
74960func (c *ImagesListCall) IfNoneMatch(entityTag string) *ImagesListCall {
74961	c.ifNoneMatch_ = entityTag
74962	return c
74963}
74964
74965// Context sets the context to be used in this call's Do method. Any
74966// pending HTTP request will be aborted if the provided context is
74967// canceled.
74968func (c *ImagesListCall) Context(ctx context.Context) *ImagesListCall {
74969	c.ctx_ = ctx
74970	return c
74971}
74972
74973// Header returns an http.Header that can be modified by the caller to
74974// add HTTP headers to the request.
74975func (c *ImagesListCall) Header() http.Header {
74976	if c.header_ == nil {
74977		c.header_ = make(http.Header)
74978	}
74979	return c.header_
74980}
74981
74982func (c *ImagesListCall) doRequest(alt string) (*http.Response, error) {
74983	reqHeaders := make(http.Header)
74984	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
74985	for k, v := range c.header_ {
74986		reqHeaders[k] = v
74987	}
74988	reqHeaders.Set("User-Agent", c.s.userAgent())
74989	if c.ifNoneMatch_ != "" {
74990		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
74991	}
74992	var body io.Reader = nil
74993	c.urlParams_.Set("alt", alt)
74994	c.urlParams_.Set("prettyPrint", "false")
74995	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images")
74996	urls += "?" + c.urlParams_.Encode()
74997	req, err := http.NewRequest("GET", urls, body)
74998	if err != nil {
74999		return nil, err
75000	}
75001	req.Header = reqHeaders
75002	googleapi.Expand(req.URL, map[string]string{
75003		"project": c.project,
75004	})
75005	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75006}
75007
75008// Do executes the "compute.images.list" call.
75009// Exactly one of *ImageList or error will be non-nil. Any non-2xx
75010// status code is an error. Response headers are in either
75011// *ImageList.ServerResponse.Header or (if a response was returned at
75012// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75013// to check whether the returned error was because
75014// http.StatusNotModified was returned.
75015func (c *ImagesListCall) Do(opts ...googleapi.CallOption) (*ImageList, error) {
75016	gensupport.SetOptions(c.urlParams_, opts...)
75017	res, err := c.doRequest("json")
75018	if res != nil && res.StatusCode == http.StatusNotModified {
75019		if res.Body != nil {
75020			res.Body.Close()
75021		}
75022		return nil, &googleapi.Error{
75023			Code:   res.StatusCode,
75024			Header: res.Header,
75025		}
75026	}
75027	if err != nil {
75028		return nil, err
75029	}
75030	defer googleapi.CloseBody(res)
75031	if err := googleapi.CheckResponse(res); err != nil {
75032		return nil, err
75033	}
75034	ret := &ImageList{
75035		ServerResponse: googleapi.ServerResponse{
75036			Header:         res.Header,
75037			HTTPStatusCode: res.StatusCode,
75038		},
75039	}
75040	target := &ret
75041	if err := gensupport.DecodeResponse(target, res); err != nil {
75042		return nil, err
75043	}
75044	return ret, nil
75045	// {
75046	//   "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.",
75047	//   "httpMethod": "GET",
75048	//   "id": "compute.images.list",
75049	//   "parameterOrder": [
75050	//     "project"
75051	//   ],
75052	//   "parameters": {
75053	//     "filter": {
75054	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
75055	//       "location": "query",
75056	//       "type": "string"
75057	//     },
75058	//     "maxResults": {
75059	//       "default": "500",
75060	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
75061	//       "format": "uint32",
75062	//       "location": "query",
75063	//       "minimum": "0",
75064	//       "type": "integer"
75065	//     },
75066	//     "orderBy": {
75067	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
75068	//       "location": "query",
75069	//       "type": "string"
75070	//     },
75071	//     "pageToken": {
75072	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
75073	//       "location": "query",
75074	//       "type": "string"
75075	//     },
75076	//     "project": {
75077	//       "description": "Project ID for this request.",
75078	//       "location": "path",
75079	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75080	//       "required": true,
75081	//       "type": "string"
75082	//     },
75083	//     "returnPartialSuccess": {
75084	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
75085	//       "location": "query",
75086	//       "type": "boolean"
75087	//     }
75088	//   },
75089	//   "path": "projects/{project}/global/images",
75090	//   "response": {
75091	//     "$ref": "ImageList"
75092	//   },
75093	//   "scopes": [
75094	//     "https://www.googleapis.com/auth/cloud-platform",
75095	//     "https://www.googleapis.com/auth/compute",
75096	//     "https://www.googleapis.com/auth/compute.readonly"
75097	//   ]
75098	// }
75099
75100}
75101
75102// Pages invokes f for each page of results.
75103// A non-nil error returned from f will halt the iteration.
75104// The provided context supersedes any context provided to the Context method.
75105func (c *ImagesListCall) Pages(ctx context.Context, f func(*ImageList) error) error {
75106	c.ctx_ = ctx
75107	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
75108	for {
75109		x, err := c.Do()
75110		if err != nil {
75111			return err
75112		}
75113		if err := f(x); err != nil {
75114			return err
75115		}
75116		if x.NextPageToken == "" {
75117			return nil
75118		}
75119		c.PageToken(x.NextPageToken)
75120	}
75121}
75122
75123// method id "compute.images.patch":
75124
75125type ImagesPatchCall struct {
75126	s          *Service
75127	project    string
75128	image      string
75129	image2     *Image
75130	urlParams_ gensupport.URLParams
75131	ctx_       context.Context
75132	header_    http.Header
75133}
75134
75135// Patch: Patches the specified image with the data included in the
75136// request. Only the following fields can be modified: family,
75137// description, deprecation status.
75138//
75139// - image: Name of the image resource to patch.
75140// - project: Project ID for this request.
75141func (r *ImagesService) Patch(project string, image string, image2 *Image) *ImagesPatchCall {
75142	c := &ImagesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75143	c.project = project
75144	c.image = image
75145	c.image2 = image2
75146	return c
75147}
75148
75149// RequestId sets the optional parameter "requestId": An optional
75150// request ID to identify requests. Specify a unique request ID so that
75151// if you must retry your request, the server will know to ignore the
75152// request if it has already been completed.
75153//
75154// For example, consider a situation where you make an initial request
75155// and the request times out. If you make the request again with the
75156// same request ID, the server can check if original operation with the
75157// same request ID was received, and if so, will ignore the second
75158// request. This prevents clients from accidentally creating duplicate
75159// commitments.
75160//
75161// The request ID must be a valid UUID with the exception that zero UUID
75162// is not supported (00000000-0000-0000-0000-000000000000).
75163func (c *ImagesPatchCall) RequestId(requestId string) *ImagesPatchCall {
75164	c.urlParams_.Set("requestId", requestId)
75165	return c
75166}
75167
75168// Fields allows partial responses to be retrieved. See
75169// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75170// for more information.
75171func (c *ImagesPatchCall) Fields(s ...googleapi.Field) *ImagesPatchCall {
75172	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75173	return c
75174}
75175
75176// Context sets the context to be used in this call's Do method. Any
75177// pending HTTP request will be aborted if the provided context is
75178// canceled.
75179func (c *ImagesPatchCall) Context(ctx context.Context) *ImagesPatchCall {
75180	c.ctx_ = ctx
75181	return c
75182}
75183
75184// Header returns an http.Header that can be modified by the caller to
75185// add HTTP headers to the request.
75186func (c *ImagesPatchCall) Header() http.Header {
75187	if c.header_ == nil {
75188		c.header_ = make(http.Header)
75189	}
75190	return c.header_
75191}
75192
75193func (c *ImagesPatchCall) doRequest(alt string) (*http.Response, error) {
75194	reqHeaders := make(http.Header)
75195	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
75196	for k, v := range c.header_ {
75197		reqHeaders[k] = v
75198	}
75199	reqHeaders.Set("User-Agent", c.s.userAgent())
75200	var body io.Reader = nil
75201	body, err := googleapi.WithoutDataWrapper.JSONReader(c.image2)
75202	if err != nil {
75203		return nil, err
75204	}
75205	reqHeaders.Set("Content-Type", "application/json")
75206	c.urlParams_.Set("alt", alt)
75207	c.urlParams_.Set("prettyPrint", "false")
75208	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{image}")
75209	urls += "?" + c.urlParams_.Encode()
75210	req, err := http.NewRequest("PATCH", urls, body)
75211	if err != nil {
75212		return nil, err
75213	}
75214	req.Header = reqHeaders
75215	googleapi.Expand(req.URL, map[string]string{
75216		"project": c.project,
75217		"image":   c.image,
75218	})
75219	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75220}
75221
75222// Do executes the "compute.images.patch" call.
75223// Exactly one of *Operation or error will be non-nil. Any non-2xx
75224// status code is an error. Response headers are in either
75225// *Operation.ServerResponse.Header or (if a response was returned at
75226// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75227// to check whether the returned error was because
75228// http.StatusNotModified was returned.
75229func (c *ImagesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75230	gensupport.SetOptions(c.urlParams_, opts...)
75231	res, err := c.doRequest("json")
75232	if res != nil && res.StatusCode == http.StatusNotModified {
75233		if res.Body != nil {
75234			res.Body.Close()
75235		}
75236		return nil, &googleapi.Error{
75237			Code:   res.StatusCode,
75238			Header: res.Header,
75239		}
75240	}
75241	if err != nil {
75242		return nil, err
75243	}
75244	defer googleapi.CloseBody(res)
75245	if err := googleapi.CheckResponse(res); err != nil {
75246		return nil, err
75247	}
75248	ret := &Operation{
75249		ServerResponse: googleapi.ServerResponse{
75250			Header:         res.Header,
75251			HTTPStatusCode: res.StatusCode,
75252		},
75253	}
75254	target := &ret
75255	if err := gensupport.DecodeResponse(target, res); err != nil {
75256		return nil, err
75257	}
75258	return ret, nil
75259	// {
75260	//   "description": "Patches the specified image with the data included in the request. Only the following fields can be modified: family, description, deprecation status.",
75261	//   "httpMethod": "PATCH",
75262	//   "id": "compute.images.patch",
75263	//   "parameterOrder": [
75264	//     "project",
75265	//     "image"
75266	//   ],
75267	//   "parameters": {
75268	//     "image": {
75269	//       "description": "Name of the image resource to patch.",
75270	//       "location": "path",
75271	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
75272	//       "required": true,
75273	//       "type": "string"
75274	//     },
75275	//     "project": {
75276	//       "description": "Project ID for this request.",
75277	//       "location": "path",
75278	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75279	//       "required": true,
75280	//       "type": "string"
75281	//     },
75282	//     "requestId": {
75283	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
75284	//       "location": "query",
75285	//       "type": "string"
75286	//     }
75287	//   },
75288	//   "path": "projects/{project}/global/images/{image}",
75289	//   "request": {
75290	//     "$ref": "Image"
75291	//   },
75292	//   "response": {
75293	//     "$ref": "Operation"
75294	//   },
75295	//   "scopes": [
75296	//     "https://www.googleapis.com/auth/cloud-platform",
75297	//     "https://www.googleapis.com/auth/compute"
75298	//   ]
75299	// }
75300
75301}
75302
75303// method id "compute.images.setIamPolicy":
75304
75305type ImagesSetIamPolicyCall struct {
75306	s                      *Service
75307	project                string
75308	resource               string
75309	globalsetpolicyrequest *GlobalSetPolicyRequest
75310	urlParams_             gensupport.URLParams
75311	ctx_                   context.Context
75312	header_                http.Header
75313}
75314
75315// SetIamPolicy: Sets the access control policy on the specified
75316// resource. Replaces any existing policy.
75317//
75318// - project: Project ID for this request.
75319// - resource: Name or id of the resource for this request.
75320func (r *ImagesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *ImagesSetIamPolicyCall {
75321	c := &ImagesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75322	c.project = project
75323	c.resource = resource
75324	c.globalsetpolicyrequest = globalsetpolicyrequest
75325	return c
75326}
75327
75328// Fields allows partial responses to be retrieved. See
75329// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75330// for more information.
75331func (c *ImagesSetIamPolicyCall) Fields(s ...googleapi.Field) *ImagesSetIamPolicyCall {
75332	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75333	return c
75334}
75335
75336// Context sets the context to be used in this call's Do method. Any
75337// pending HTTP request will be aborted if the provided context is
75338// canceled.
75339func (c *ImagesSetIamPolicyCall) Context(ctx context.Context) *ImagesSetIamPolicyCall {
75340	c.ctx_ = ctx
75341	return c
75342}
75343
75344// Header returns an http.Header that can be modified by the caller to
75345// add HTTP headers to the request.
75346func (c *ImagesSetIamPolicyCall) Header() http.Header {
75347	if c.header_ == nil {
75348		c.header_ = make(http.Header)
75349	}
75350	return c.header_
75351}
75352
75353func (c *ImagesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
75354	reqHeaders := make(http.Header)
75355	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
75356	for k, v := range c.header_ {
75357		reqHeaders[k] = v
75358	}
75359	reqHeaders.Set("User-Agent", c.s.userAgent())
75360	var body io.Reader = nil
75361	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
75362	if err != nil {
75363		return nil, err
75364	}
75365	reqHeaders.Set("Content-Type", "application/json")
75366	c.urlParams_.Set("alt", alt)
75367	c.urlParams_.Set("prettyPrint", "false")
75368	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{resource}/setIamPolicy")
75369	urls += "?" + c.urlParams_.Encode()
75370	req, err := http.NewRequest("POST", urls, body)
75371	if err != nil {
75372		return nil, err
75373	}
75374	req.Header = reqHeaders
75375	googleapi.Expand(req.URL, map[string]string{
75376		"project":  c.project,
75377		"resource": c.resource,
75378	})
75379	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75380}
75381
75382// Do executes the "compute.images.setIamPolicy" call.
75383// Exactly one of *Policy or error will be non-nil. Any non-2xx status
75384// code is an error. Response headers are in either
75385// *Policy.ServerResponse.Header or (if a response was returned at all)
75386// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
75387// check whether the returned error was because http.StatusNotModified
75388// was returned.
75389func (c *ImagesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
75390	gensupport.SetOptions(c.urlParams_, opts...)
75391	res, err := c.doRequest("json")
75392	if res != nil && res.StatusCode == http.StatusNotModified {
75393		if res.Body != nil {
75394			res.Body.Close()
75395		}
75396		return nil, &googleapi.Error{
75397			Code:   res.StatusCode,
75398			Header: res.Header,
75399		}
75400	}
75401	if err != nil {
75402		return nil, err
75403	}
75404	defer googleapi.CloseBody(res)
75405	if err := googleapi.CheckResponse(res); err != nil {
75406		return nil, err
75407	}
75408	ret := &Policy{
75409		ServerResponse: googleapi.ServerResponse{
75410			Header:         res.Header,
75411			HTTPStatusCode: res.StatusCode,
75412		},
75413	}
75414	target := &ret
75415	if err := gensupport.DecodeResponse(target, res); err != nil {
75416		return nil, err
75417	}
75418	return ret, nil
75419	// {
75420	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
75421	//   "httpMethod": "POST",
75422	//   "id": "compute.images.setIamPolicy",
75423	//   "parameterOrder": [
75424	//     "project",
75425	//     "resource"
75426	//   ],
75427	//   "parameters": {
75428	//     "project": {
75429	//       "description": "Project ID for this request.",
75430	//       "location": "path",
75431	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75432	//       "required": true,
75433	//       "type": "string"
75434	//     },
75435	//     "resource": {
75436	//       "description": "Name or id of the resource for this request.",
75437	//       "location": "path",
75438	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
75439	//       "required": true,
75440	//       "type": "string"
75441	//     }
75442	//   },
75443	//   "path": "projects/{project}/global/images/{resource}/setIamPolicy",
75444	//   "request": {
75445	//     "$ref": "GlobalSetPolicyRequest"
75446	//   },
75447	//   "response": {
75448	//     "$ref": "Policy"
75449	//   },
75450	//   "scopes": [
75451	//     "https://www.googleapis.com/auth/cloud-platform",
75452	//     "https://www.googleapis.com/auth/compute"
75453	//   ]
75454	// }
75455
75456}
75457
75458// method id "compute.images.setLabels":
75459
75460type ImagesSetLabelsCall struct {
75461	s                      *Service
75462	project                string
75463	resource               string
75464	globalsetlabelsrequest *GlobalSetLabelsRequest
75465	urlParams_             gensupport.URLParams
75466	ctx_                   context.Context
75467	header_                http.Header
75468}
75469
75470// SetLabels: Sets the labels on an image. To learn more about labels,
75471// read the Labeling Resources documentation.
75472//
75473// - project: Project ID for this request.
75474// - resource: Name or id of the resource for this request.
75475func (r *ImagesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *ImagesSetLabelsCall {
75476	c := &ImagesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75477	c.project = project
75478	c.resource = resource
75479	c.globalsetlabelsrequest = globalsetlabelsrequest
75480	return c
75481}
75482
75483// Fields allows partial responses to be retrieved. See
75484// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75485// for more information.
75486func (c *ImagesSetLabelsCall) Fields(s ...googleapi.Field) *ImagesSetLabelsCall {
75487	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75488	return c
75489}
75490
75491// Context sets the context to be used in this call's Do method. Any
75492// pending HTTP request will be aborted if the provided context is
75493// canceled.
75494func (c *ImagesSetLabelsCall) Context(ctx context.Context) *ImagesSetLabelsCall {
75495	c.ctx_ = ctx
75496	return c
75497}
75498
75499// Header returns an http.Header that can be modified by the caller to
75500// add HTTP headers to the request.
75501func (c *ImagesSetLabelsCall) Header() http.Header {
75502	if c.header_ == nil {
75503		c.header_ = make(http.Header)
75504	}
75505	return c.header_
75506}
75507
75508func (c *ImagesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
75509	reqHeaders := make(http.Header)
75510	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
75511	for k, v := range c.header_ {
75512		reqHeaders[k] = v
75513	}
75514	reqHeaders.Set("User-Agent", c.s.userAgent())
75515	var body io.Reader = nil
75516	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
75517	if err != nil {
75518		return nil, err
75519	}
75520	reqHeaders.Set("Content-Type", "application/json")
75521	c.urlParams_.Set("alt", alt)
75522	c.urlParams_.Set("prettyPrint", "false")
75523	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{resource}/setLabels")
75524	urls += "?" + c.urlParams_.Encode()
75525	req, err := http.NewRequest("POST", urls, body)
75526	if err != nil {
75527		return nil, err
75528	}
75529	req.Header = reqHeaders
75530	googleapi.Expand(req.URL, map[string]string{
75531		"project":  c.project,
75532		"resource": c.resource,
75533	})
75534	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75535}
75536
75537// Do executes the "compute.images.setLabels" call.
75538// Exactly one of *Operation or error will be non-nil. Any non-2xx
75539// status code is an error. Response headers are in either
75540// *Operation.ServerResponse.Header or (if a response was returned at
75541// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75542// to check whether the returned error was because
75543// http.StatusNotModified was returned.
75544func (c *ImagesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75545	gensupport.SetOptions(c.urlParams_, opts...)
75546	res, err := c.doRequest("json")
75547	if res != nil && res.StatusCode == http.StatusNotModified {
75548		if res.Body != nil {
75549			res.Body.Close()
75550		}
75551		return nil, &googleapi.Error{
75552			Code:   res.StatusCode,
75553			Header: res.Header,
75554		}
75555	}
75556	if err != nil {
75557		return nil, err
75558	}
75559	defer googleapi.CloseBody(res)
75560	if err := googleapi.CheckResponse(res); err != nil {
75561		return nil, err
75562	}
75563	ret := &Operation{
75564		ServerResponse: googleapi.ServerResponse{
75565			Header:         res.Header,
75566			HTTPStatusCode: res.StatusCode,
75567		},
75568	}
75569	target := &ret
75570	if err := gensupport.DecodeResponse(target, res); err != nil {
75571		return nil, err
75572	}
75573	return ret, nil
75574	// {
75575	//   "description": "Sets the labels on an image. To learn more about labels, read the Labeling Resources documentation.",
75576	//   "httpMethod": "POST",
75577	//   "id": "compute.images.setLabels",
75578	//   "parameterOrder": [
75579	//     "project",
75580	//     "resource"
75581	//   ],
75582	//   "parameters": {
75583	//     "project": {
75584	//       "description": "Project ID for this request.",
75585	//       "location": "path",
75586	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75587	//       "required": true,
75588	//       "type": "string"
75589	//     },
75590	//     "resource": {
75591	//       "description": "Name or id of the resource for this request.",
75592	//       "location": "path",
75593	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
75594	//       "required": true,
75595	//       "type": "string"
75596	//     }
75597	//   },
75598	//   "path": "projects/{project}/global/images/{resource}/setLabels",
75599	//   "request": {
75600	//     "$ref": "GlobalSetLabelsRequest"
75601	//   },
75602	//   "response": {
75603	//     "$ref": "Operation"
75604	//   },
75605	//   "scopes": [
75606	//     "https://www.googleapis.com/auth/cloud-platform",
75607	//     "https://www.googleapis.com/auth/compute"
75608	//   ]
75609	// }
75610
75611}
75612
75613// method id "compute.images.testIamPermissions":
75614
75615type ImagesTestIamPermissionsCall struct {
75616	s                      *Service
75617	project                string
75618	resource               string
75619	testpermissionsrequest *TestPermissionsRequest
75620	urlParams_             gensupport.URLParams
75621	ctx_                   context.Context
75622	header_                http.Header
75623}
75624
75625// TestIamPermissions: Returns permissions that a caller has on the
75626// specified resource.
75627//
75628// - project: Project ID for this request.
75629// - resource: Name or id of the resource for this request.
75630func (r *ImagesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *ImagesTestIamPermissionsCall {
75631	c := &ImagesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75632	c.project = project
75633	c.resource = resource
75634	c.testpermissionsrequest = testpermissionsrequest
75635	return c
75636}
75637
75638// Fields allows partial responses to be retrieved. See
75639// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75640// for more information.
75641func (c *ImagesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ImagesTestIamPermissionsCall {
75642	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75643	return c
75644}
75645
75646// Context sets the context to be used in this call's Do method. Any
75647// pending HTTP request will be aborted if the provided context is
75648// canceled.
75649func (c *ImagesTestIamPermissionsCall) Context(ctx context.Context) *ImagesTestIamPermissionsCall {
75650	c.ctx_ = ctx
75651	return c
75652}
75653
75654// Header returns an http.Header that can be modified by the caller to
75655// add HTTP headers to the request.
75656func (c *ImagesTestIamPermissionsCall) Header() http.Header {
75657	if c.header_ == nil {
75658		c.header_ = make(http.Header)
75659	}
75660	return c.header_
75661}
75662
75663func (c *ImagesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
75664	reqHeaders := make(http.Header)
75665	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
75666	for k, v := range c.header_ {
75667		reqHeaders[k] = v
75668	}
75669	reqHeaders.Set("User-Agent", c.s.userAgent())
75670	var body io.Reader = nil
75671	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
75672	if err != nil {
75673		return nil, err
75674	}
75675	reqHeaders.Set("Content-Type", "application/json")
75676	c.urlParams_.Set("alt", alt)
75677	c.urlParams_.Set("prettyPrint", "false")
75678	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/images/{resource}/testIamPermissions")
75679	urls += "?" + c.urlParams_.Encode()
75680	req, err := http.NewRequest("POST", urls, body)
75681	if err != nil {
75682		return nil, err
75683	}
75684	req.Header = reqHeaders
75685	googleapi.Expand(req.URL, map[string]string{
75686		"project":  c.project,
75687		"resource": c.resource,
75688	})
75689	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75690}
75691
75692// Do executes the "compute.images.testIamPermissions" call.
75693// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
75694// non-2xx status code is an error. Response headers are in either
75695// *TestPermissionsResponse.ServerResponse.Header or (if a response was
75696// returned at all) in error.(*googleapi.Error).Header. Use
75697// googleapi.IsNotModified to check whether the returned error was
75698// because http.StatusNotModified was returned.
75699func (c *ImagesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
75700	gensupport.SetOptions(c.urlParams_, opts...)
75701	res, err := c.doRequest("json")
75702	if res != nil && res.StatusCode == http.StatusNotModified {
75703		if res.Body != nil {
75704			res.Body.Close()
75705		}
75706		return nil, &googleapi.Error{
75707			Code:   res.StatusCode,
75708			Header: res.Header,
75709		}
75710	}
75711	if err != nil {
75712		return nil, err
75713	}
75714	defer googleapi.CloseBody(res)
75715	if err := googleapi.CheckResponse(res); err != nil {
75716		return nil, err
75717	}
75718	ret := &TestPermissionsResponse{
75719		ServerResponse: googleapi.ServerResponse{
75720			Header:         res.Header,
75721			HTTPStatusCode: res.StatusCode,
75722		},
75723	}
75724	target := &ret
75725	if err := gensupport.DecodeResponse(target, res); err != nil {
75726		return nil, err
75727	}
75728	return ret, nil
75729	// {
75730	//   "description": "Returns permissions that a caller has on the specified resource.",
75731	//   "httpMethod": "POST",
75732	//   "id": "compute.images.testIamPermissions",
75733	//   "parameterOrder": [
75734	//     "project",
75735	//     "resource"
75736	//   ],
75737	//   "parameters": {
75738	//     "project": {
75739	//       "description": "Project ID for this request.",
75740	//       "location": "path",
75741	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75742	//       "required": true,
75743	//       "type": "string"
75744	//     },
75745	//     "resource": {
75746	//       "description": "Name or id of the resource for this request.",
75747	//       "location": "path",
75748	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
75749	//       "required": true,
75750	//       "type": "string"
75751	//     }
75752	//   },
75753	//   "path": "projects/{project}/global/images/{resource}/testIamPermissions",
75754	//   "request": {
75755	//     "$ref": "TestPermissionsRequest"
75756	//   },
75757	//   "response": {
75758	//     "$ref": "TestPermissionsResponse"
75759	//   },
75760	//   "scopes": [
75761	//     "https://www.googleapis.com/auth/cloud-platform",
75762	//     "https://www.googleapis.com/auth/compute",
75763	//     "https://www.googleapis.com/auth/compute.readonly"
75764	//   ]
75765	// }
75766
75767}
75768
75769// method id "compute.instanceGroupManagers.abandonInstances":
75770
75771type InstanceGroupManagersAbandonInstancesCall struct {
75772	s                                            *Service
75773	project                                      string
75774	zone                                         string
75775	instanceGroupManager                         string
75776	instancegroupmanagersabandoninstancesrequest *InstanceGroupManagersAbandonInstancesRequest
75777	urlParams_                                   gensupport.URLParams
75778	ctx_                                         context.Context
75779	header_                                      http.Header
75780}
75781
75782// AbandonInstances: Flags the specified instances to be removed from
75783// the managed instance group. Abandoning an instance does not delete
75784// the instance, but it does remove the instance from any target pools
75785// that are applied by the managed instance group. This method reduces
75786// the targetSize of the managed instance group by the number of
75787// instances that you abandon. This operation is marked as DONE when the
75788// action is scheduled even if the instances have not yet been removed
75789// from the group. You must separately verify the status of the
75790// abandoning action with the listmanagedinstances method.
75791//
75792// If the group is part of a backend service that has enabled connection
75793// draining, it can take up to 60 seconds after the connection draining
75794// duration has elapsed before the VM instance is removed or
75795// deleted.
75796//
75797// You can specify a maximum of 1000 instances with this method per
75798// request.
75799//
75800// - instanceGroupManager: The name of the managed instance group.
75801// - project: Project ID for this request.
75802// - zone: The name of the zone where the managed instance group is
75803//   located.
75804func (r *InstanceGroupManagersService) AbandonInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersabandoninstancesrequest *InstanceGroupManagersAbandonInstancesRequest) *InstanceGroupManagersAbandonInstancesCall {
75805	c := &InstanceGroupManagersAbandonInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75806	c.project = project
75807	c.zone = zone
75808	c.instanceGroupManager = instanceGroupManager
75809	c.instancegroupmanagersabandoninstancesrequest = instancegroupmanagersabandoninstancesrequest
75810	return c
75811}
75812
75813// RequestId sets the optional parameter "requestId": An optional
75814// request ID to identify requests. Specify a unique request ID so that
75815// if you must retry your request, the server will know to ignore the
75816// request if it has already been completed.
75817//
75818// For example, consider a situation where you make an initial request
75819// and the request times out. If you make the request again with the
75820// same request ID, the server can check if original operation with the
75821// same request ID was received, and if so, will ignore the second
75822// request. This prevents clients from accidentally creating duplicate
75823// commitments.
75824//
75825// The request ID must be a valid UUID with the exception that zero UUID
75826// is not supported (00000000-0000-0000-0000-000000000000).
75827func (c *InstanceGroupManagersAbandonInstancesCall) RequestId(requestId string) *InstanceGroupManagersAbandonInstancesCall {
75828	c.urlParams_.Set("requestId", requestId)
75829	return c
75830}
75831
75832// Fields allows partial responses to be retrieved. See
75833// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75834// for more information.
75835func (c *InstanceGroupManagersAbandonInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersAbandonInstancesCall {
75836	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75837	return c
75838}
75839
75840// Context sets the context to be used in this call's Do method. Any
75841// pending HTTP request will be aborted if the provided context is
75842// canceled.
75843func (c *InstanceGroupManagersAbandonInstancesCall) Context(ctx context.Context) *InstanceGroupManagersAbandonInstancesCall {
75844	c.ctx_ = ctx
75845	return c
75846}
75847
75848// Header returns an http.Header that can be modified by the caller to
75849// add HTTP headers to the request.
75850func (c *InstanceGroupManagersAbandonInstancesCall) Header() http.Header {
75851	if c.header_ == nil {
75852		c.header_ = make(http.Header)
75853	}
75854	return c.header_
75855}
75856
75857func (c *InstanceGroupManagersAbandonInstancesCall) doRequest(alt string) (*http.Response, error) {
75858	reqHeaders := make(http.Header)
75859	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
75860	for k, v := range c.header_ {
75861		reqHeaders[k] = v
75862	}
75863	reqHeaders.Set("User-Agent", c.s.userAgent())
75864	var body io.Reader = nil
75865	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersabandoninstancesrequest)
75866	if err != nil {
75867		return nil, err
75868	}
75869	reqHeaders.Set("Content-Type", "application/json")
75870	c.urlParams_.Set("alt", alt)
75871	c.urlParams_.Set("prettyPrint", "false")
75872	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances")
75873	urls += "?" + c.urlParams_.Encode()
75874	req, err := http.NewRequest("POST", urls, body)
75875	if err != nil {
75876		return nil, err
75877	}
75878	req.Header = reqHeaders
75879	googleapi.Expand(req.URL, map[string]string{
75880		"project":              c.project,
75881		"zone":                 c.zone,
75882		"instanceGroupManager": c.instanceGroupManager,
75883	})
75884	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75885}
75886
75887// Do executes the "compute.instanceGroupManagers.abandonInstances" call.
75888// Exactly one of *Operation or error will be non-nil. Any non-2xx
75889// status code is an error. Response headers are in either
75890// *Operation.ServerResponse.Header or (if a response was returned at
75891// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75892// to check whether the returned error was because
75893// http.StatusNotModified was returned.
75894func (c *InstanceGroupManagersAbandonInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75895	gensupport.SetOptions(c.urlParams_, opts...)
75896	res, err := c.doRequest("json")
75897	if res != nil && res.StatusCode == http.StatusNotModified {
75898		if res.Body != nil {
75899			res.Body.Close()
75900		}
75901		return nil, &googleapi.Error{
75902			Code:   res.StatusCode,
75903			Header: res.Header,
75904		}
75905	}
75906	if err != nil {
75907		return nil, err
75908	}
75909	defer googleapi.CloseBody(res)
75910	if err := googleapi.CheckResponse(res); err != nil {
75911		return nil, err
75912	}
75913	ret := &Operation{
75914		ServerResponse: googleapi.ServerResponse{
75915			Header:         res.Header,
75916			HTTPStatusCode: res.StatusCode,
75917		},
75918	}
75919	target := &ret
75920	if err := gensupport.DecodeResponse(target, res); err != nil {
75921		return nil, err
75922	}
75923	return ret, nil
75924	// {
75925	//   "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.",
75926	//   "httpMethod": "POST",
75927	//   "id": "compute.instanceGroupManagers.abandonInstances",
75928	//   "parameterOrder": [
75929	//     "project",
75930	//     "zone",
75931	//     "instanceGroupManager"
75932	//   ],
75933	//   "parameters": {
75934	//     "instanceGroupManager": {
75935	//       "description": "The name of the managed instance group.",
75936	//       "location": "path",
75937	//       "required": true,
75938	//       "type": "string"
75939	//     },
75940	//     "project": {
75941	//       "description": "Project ID for this request.",
75942	//       "location": "path",
75943	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75944	//       "required": true,
75945	//       "type": "string"
75946	//     },
75947	//     "requestId": {
75948	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
75949	//       "location": "query",
75950	//       "type": "string"
75951	//     },
75952	//     "zone": {
75953	//       "description": "The name of the zone where the managed instance group is located.",
75954	//       "location": "path",
75955	//       "required": true,
75956	//       "type": "string"
75957	//     }
75958	//   },
75959	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances",
75960	//   "request": {
75961	//     "$ref": "InstanceGroupManagersAbandonInstancesRequest"
75962	//   },
75963	//   "response": {
75964	//     "$ref": "Operation"
75965	//   },
75966	//   "scopes": [
75967	//     "https://www.googleapis.com/auth/cloud-platform",
75968	//     "https://www.googleapis.com/auth/compute"
75969	//   ]
75970	// }
75971
75972}
75973
75974// method id "compute.instanceGroupManagers.aggregatedList":
75975
75976type InstanceGroupManagersAggregatedListCall struct {
75977	s            *Service
75978	project      string
75979	urlParams_   gensupport.URLParams
75980	ifNoneMatch_ string
75981	ctx_         context.Context
75982	header_      http.Header
75983}
75984
75985// AggregatedList: Retrieves the list of managed instance groups and
75986// groups them by zone.
75987//
75988// - project: Project ID for this request.
75989func (r *InstanceGroupManagersService) AggregatedList(project string) *InstanceGroupManagersAggregatedListCall {
75990	c := &InstanceGroupManagersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75991	c.project = project
75992	return c
75993}
75994
75995// Filter sets the optional parameter "filter": A filter expression that
75996// filters resources listed in the response. The expression must specify
75997// the field name, a comparison operator, and the value that you want to
75998// use for filtering. The value must be a string, a number, or a
75999// boolean. The comparison operator must be either `=`, `!=`, `>`, or
76000// `<`.
76001//
76002// For example, if you are filtering Compute Engine instances, you can
76003// exclude instances named `example-instance` by specifying `name !=
76004// example-instance`.
76005//
76006// You can also filter nested fields. For example, you could specify
76007// `scheduling.automaticRestart = false` to include instances only if
76008// they are not scheduled for automatic restarts. You can use filtering
76009// on nested fields to filter based on resource labels.
76010//
76011// To filter on multiple expressions, provide each separate expression
76012// within parentheses. For example: ``` (scheduling.automaticRestart =
76013// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
76014// is an `AND` expression. However, you can include `AND` and `OR`
76015// expressions explicitly. For example: ``` (cpuPlatform = "Intel
76016// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
76017// (scheduling.automaticRestart = true) ```
76018func (c *InstanceGroupManagersAggregatedListCall) Filter(filter string) *InstanceGroupManagersAggregatedListCall {
76019	c.urlParams_.Set("filter", filter)
76020	return c
76021}
76022
76023// IncludeAllScopes sets the optional parameter "includeAllScopes":
76024// Indicates whether every visible scope for each scope type (zone,
76025// region, global) should be included in the response. For new resource
76026// types added after this field, the flag has no effect as new resource
76027// types will always include every visible scope for each scope type in
76028// response. For resource types which predate this field, if this flag
76029// is omitted or false, only scopes of the scope types where the
76030// resource type is expected to be found will be included.
76031func (c *InstanceGroupManagersAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstanceGroupManagersAggregatedListCall {
76032	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
76033	return c
76034}
76035
76036// MaxResults sets the optional parameter "maxResults": The maximum
76037// number of results per page that should be returned. If the number of
76038// available results is larger than `maxResults`, Compute Engine returns
76039// a `nextPageToken` that can be used to get the next page of results in
76040// subsequent list requests. Acceptable values are `0` to `500`,
76041// inclusive. (Default: `500`)
76042func (c *InstanceGroupManagersAggregatedListCall) MaxResults(maxResults int64) *InstanceGroupManagersAggregatedListCall {
76043	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
76044	return c
76045}
76046
76047// OrderBy sets the optional parameter "orderBy": Sorts list results by
76048// a certain order. By default, results are returned in alphanumerical
76049// order based on the resource name.
76050//
76051// You can also sort results in descending order based on the creation
76052// timestamp using `orderBy="creationTimestamp desc". This sorts
76053// results based on the `creationTimestamp` field in reverse
76054// chronological order (newest result first). Use this to sort resources
76055// like operations so that the newest operation is returned
76056// first.
76057//
76058// Currently, only sorting by `name` or `creationTimestamp desc` is
76059// supported.
76060func (c *InstanceGroupManagersAggregatedListCall) OrderBy(orderBy string) *InstanceGroupManagersAggregatedListCall {
76061	c.urlParams_.Set("orderBy", orderBy)
76062	return c
76063}
76064
76065// PageToken sets the optional parameter "pageToken": Specifies a page
76066// token to use. Set `pageToken` to the `nextPageToken` returned by a
76067// previous list request to get the next page of results.
76068func (c *InstanceGroupManagersAggregatedListCall) PageToken(pageToken string) *InstanceGroupManagersAggregatedListCall {
76069	c.urlParams_.Set("pageToken", pageToken)
76070	return c
76071}
76072
76073// ReturnPartialSuccess sets the optional parameter
76074// "returnPartialSuccess": Opt-in for partial success behavior which
76075// provides partial results in case of failure. The default value is
76076// false.
76077func (c *InstanceGroupManagersAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersAggregatedListCall {
76078	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
76079	return c
76080}
76081
76082// Fields allows partial responses to be retrieved. See
76083// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76084// for more information.
76085func (c *InstanceGroupManagersAggregatedListCall) Fields(s ...googleapi.Field) *InstanceGroupManagersAggregatedListCall {
76086	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76087	return c
76088}
76089
76090// IfNoneMatch sets the optional parameter which makes the operation
76091// fail if the object's ETag matches the given value. This is useful for
76092// getting updates only after the object has changed since the last
76093// request. Use googleapi.IsNotModified to check whether the response
76094// error from Do is the result of In-None-Match.
76095func (c *InstanceGroupManagersAggregatedListCall) IfNoneMatch(entityTag string) *InstanceGroupManagersAggregatedListCall {
76096	c.ifNoneMatch_ = entityTag
76097	return c
76098}
76099
76100// Context sets the context to be used in this call's Do method. Any
76101// pending HTTP request will be aborted if the provided context is
76102// canceled.
76103func (c *InstanceGroupManagersAggregatedListCall) Context(ctx context.Context) *InstanceGroupManagersAggregatedListCall {
76104	c.ctx_ = ctx
76105	return c
76106}
76107
76108// Header returns an http.Header that can be modified by the caller to
76109// add HTTP headers to the request.
76110func (c *InstanceGroupManagersAggregatedListCall) Header() http.Header {
76111	if c.header_ == nil {
76112		c.header_ = make(http.Header)
76113	}
76114	return c.header_
76115}
76116
76117func (c *InstanceGroupManagersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
76118	reqHeaders := make(http.Header)
76119	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
76120	for k, v := range c.header_ {
76121		reqHeaders[k] = v
76122	}
76123	reqHeaders.Set("User-Agent", c.s.userAgent())
76124	if c.ifNoneMatch_ != "" {
76125		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
76126	}
76127	var body io.Reader = nil
76128	c.urlParams_.Set("alt", alt)
76129	c.urlParams_.Set("prettyPrint", "false")
76130	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/instanceGroupManagers")
76131	urls += "?" + c.urlParams_.Encode()
76132	req, err := http.NewRequest("GET", urls, body)
76133	if err != nil {
76134		return nil, err
76135	}
76136	req.Header = reqHeaders
76137	googleapi.Expand(req.URL, map[string]string{
76138		"project": c.project,
76139	})
76140	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76141}
76142
76143// Do executes the "compute.instanceGroupManagers.aggregatedList" call.
76144// Exactly one of *InstanceGroupManagerAggregatedList or error will be
76145// non-nil. Any non-2xx status code is an error. Response headers are in
76146// either *InstanceGroupManagerAggregatedList.ServerResponse.Header or
76147// (if a response was returned at all) in
76148// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
76149// whether the returned error was because http.StatusNotModified was
76150// returned.
76151func (c *InstanceGroupManagersAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagerAggregatedList, error) {
76152	gensupport.SetOptions(c.urlParams_, opts...)
76153	res, err := c.doRequest("json")
76154	if res != nil && res.StatusCode == http.StatusNotModified {
76155		if res.Body != nil {
76156			res.Body.Close()
76157		}
76158		return nil, &googleapi.Error{
76159			Code:   res.StatusCode,
76160			Header: res.Header,
76161		}
76162	}
76163	if err != nil {
76164		return nil, err
76165	}
76166	defer googleapi.CloseBody(res)
76167	if err := googleapi.CheckResponse(res); err != nil {
76168		return nil, err
76169	}
76170	ret := &InstanceGroupManagerAggregatedList{
76171		ServerResponse: googleapi.ServerResponse{
76172			Header:         res.Header,
76173			HTTPStatusCode: res.StatusCode,
76174		},
76175	}
76176	target := &ret
76177	if err := gensupport.DecodeResponse(target, res); err != nil {
76178		return nil, err
76179	}
76180	return ret, nil
76181	// {
76182	//   "description": "Retrieves the list of managed instance groups and groups them by zone.",
76183	//   "httpMethod": "GET",
76184	//   "id": "compute.instanceGroupManagers.aggregatedList",
76185	//   "parameterOrder": [
76186	//     "project"
76187	//   ],
76188	//   "parameters": {
76189	//     "filter": {
76190	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
76191	//       "location": "query",
76192	//       "type": "string"
76193	//     },
76194	//     "includeAllScopes": {
76195	//       "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.",
76196	//       "location": "query",
76197	//       "type": "boolean"
76198	//     },
76199	//     "maxResults": {
76200	//       "default": "500",
76201	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
76202	//       "format": "uint32",
76203	//       "location": "query",
76204	//       "minimum": "0",
76205	//       "type": "integer"
76206	//     },
76207	//     "orderBy": {
76208	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
76209	//       "location": "query",
76210	//       "type": "string"
76211	//     },
76212	//     "pageToken": {
76213	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
76214	//       "location": "query",
76215	//       "type": "string"
76216	//     },
76217	//     "project": {
76218	//       "description": "Project ID for this request.",
76219	//       "location": "path",
76220	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76221	//       "required": true,
76222	//       "type": "string"
76223	//     },
76224	//     "returnPartialSuccess": {
76225	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
76226	//       "location": "query",
76227	//       "type": "boolean"
76228	//     }
76229	//   },
76230	//   "path": "projects/{project}/aggregated/instanceGroupManagers",
76231	//   "response": {
76232	//     "$ref": "InstanceGroupManagerAggregatedList"
76233	//   },
76234	//   "scopes": [
76235	//     "https://www.googleapis.com/auth/cloud-platform",
76236	//     "https://www.googleapis.com/auth/compute",
76237	//     "https://www.googleapis.com/auth/compute.readonly"
76238	//   ]
76239	// }
76240
76241}
76242
76243// Pages invokes f for each page of results.
76244// A non-nil error returned from f will halt the iteration.
76245// The provided context supersedes any context provided to the Context method.
76246func (c *InstanceGroupManagersAggregatedListCall) Pages(ctx context.Context, f func(*InstanceGroupManagerAggregatedList) error) error {
76247	c.ctx_ = ctx
76248	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
76249	for {
76250		x, err := c.Do()
76251		if err != nil {
76252			return err
76253		}
76254		if err := f(x); err != nil {
76255			return err
76256		}
76257		if x.NextPageToken == "" {
76258			return nil
76259		}
76260		c.PageToken(x.NextPageToken)
76261	}
76262}
76263
76264// method id "compute.instanceGroupManagers.applyUpdatesToInstances":
76265
76266type InstanceGroupManagersApplyUpdatesToInstancesCall struct {
76267	s                                        *Service
76268	project                                  string
76269	zone                                     string
76270	instanceGroupManager                     string
76271	instancegroupmanagersapplyupdatesrequest *InstanceGroupManagersApplyUpdatesRequest
76272	urlParams_                               gensupport.URLParams
76273	ctx_                                     context.Context
76274	header_                                  http.Header
76275}
76276
76277// ApplyUpdatesToInstances: Applies changes to selected instances on the
76278// managed instance group. This method can be used to apply new
76279// overrides and/or new versions.
76280//
76281// - instanceGroupManager: The name of the managed instance group,
76282//   should conform to RFC1035.
76283// - project: Project ID for this request.
76284// - zone: The name of the zone where the managed instance group is
76285//   located. Should conform to RFC1035.
76286func (r *InstanceGroupManagersService) ApplyUpdatesToInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersapplyupdatesrequest *InstanceGroupManagersApplyUpdatesRequest) *InstanceGroupManagersApplyUpdatesToInstancesCall {
76287	c := &InstanceGroupManagersApplyUpdatesToInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76288	c.project = project
76289	c.zone = zone
76290	c.instanceGroupManager = instanceGroupManager
76291	c.instancegroupmanagersapplyupdatesrequest = instancegroupmanagersapplyupdatesrequest
76292	return c
76293}
76294
76295// Fields allows partial responses to be retrieved. See
76296// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76297// for more information.
76298func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersApplyUpdatesToInstancesCall {
76299	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76300	return c
76301}
76302
76303// Context sets the context to be used in this call's Do method. Any
76304// pending HTTP request will be aborted if the provided context is
76305// canceled.
76306func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Context(ctx context.Context) *InstanceGroupManagersApplyUpdatesToInstancesCall {
76307	c.ctx_ = ctx
76308	return c
76309}
76310
76311// Header returns an http.Header that can be modified by the caller to
76312// add HTTP headers to the request.
76313func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Header() http.Header {
76314	if c.header_ == nil {
76315		c.header_ = make(http.Header)
76316	}
76317	return c.header_
76318}
76319
76320func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) doRequest(alt string) (*http.Response, error) {
76321	reqHeaders := make(http.Header)
76322	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
76323	for k, v := range c.header_ {
76324		reqHeaders[k] = v
76325	}
76326	reqHeaders.Set("User-Agent", c.s.userAgent())
76327	var body io.Reader = nil
76328	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersapplyupdatesrequest)
76329	if err != nil {
76330		return nil, err
76331	}
76332	reqHeaders.Set("Content-Type", "application/json")
76333	c.urlParams_.Set("alt", alt)
76334	c.urlParams_.Set("prettyPrint", "false")
76335	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances")
76336	urls += "?" + c.urlParams_.Encode()
76337	req, err := http.NewRequest("POST", urls, body)
76338	if err != nil {
76339		return nil, err
76340	}
76341	req.Header = reqHeaders
76342	googleapi.Expand(req.URL, map[string]string{
76343		"project":              c.project,
76344		"zone":                 c.zone,
76345		"instanceGroupManager": c.instanceGroupManager,
76346	})
76347	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76348}
76349
76350// Do executes the "compute.instanceGroupManagers.applyUpdatesToInstances" call.
76351// Exactly one of *Operation or error will be non-nil. Any non-2xx
76352// status code is an error. Response headers are in either
76353// *Operation.ServerResponse.Header or (if a response was returned at
76354// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76355// to check whether the returned error was because
76356// http.StatusNotModified was returned.
76357func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76358	gensupport.SetOptions(c.urlParams_, opts...)
76359	res, err := c.doRequest("json")
76360	if res != nil && res.StatusCode == http.StatusNotModified {
76361		if res.Body != nil {
76362			res.Body.Close()
76363		}
76364		return nil, &googleapi.Error{
76365			Code:   res.StatusCode,
76366			Header: res.Header,
76367		}
76368	}
76369	if err != nil {
76370		return nil, err
76371	}
76372	defer googleapi.CloseBody(res)
76373	if err := googleapi.CheckResponse(res); err != nil {
76374		return nil, err
76375	}
76376	ret := &Operation{
76377		ServerResponse: googleapi.ServerResponse{
76378			Header:         res.Header,
76379			HTTPStatusCode: res.StatusCode,
76380		},
76381	}
76382	target := &ret
76383	if err := gensupport.DecodeResponse(target, res); err != nil {
76384		return nil, err
76385	}
76386	return ret, nil
76387	// {
76388	//   "description": "Applies changes to selected instances on the managed instance group. This method can be used to apply new overrides and/or new versions.",
76389	//   "httpMethod": "POST",
76390	//   "id": "compute.instanceGroupManagers.applyUpdatesToInstances",
76391	//   "parameterOrder": [
76392	//     "project",
76393	//     "zone",
76394	//     "instanceGroupManager"
76395	//   ],
76396	//   "parameters": {
76397	//     "instanceGroupManager": {
76398	//       "description": "The name of the managed instance group, should conform to RFC1035.",
76399	//       "location": "path",
76400	//       "required": true,
76401	//       "type": "string"
76402	//     },
76403	//     "project": {
76404	//       "description": "Project ID for this request.",
76405	//       "location": "path",
76406	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76407	//       "required": true,
76408	//       "type": "string"
76409	//     },
76410	//     "zone": {
76411	//       "description": "The name of the zone where the managed instance group is located. Should conform to RFC1035.",
76412	//       "location": "path",
76413	//       "required": true,
76414	//       "type": "string"
76415	//     }
76416	//   },
76417	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances",
76418	//   "request": {
76419	//     "$ref": "InstanceGroupManagersApplyUpdatesRequest"
76420	//   },
76421	//   "response": {
76422	//     "$ref": "Operation"
76423	//   },
76424	//   "scopes": [
76425	//     "https://www.googleapis.com/auth/cloud-platform",
76426	//     "https://www.googleapis.com/auth/compute"
76427	//   ]
76428	// }
76429
76430}
76431
76432// method id "compute.instanceGroupManagers.createInstances":
76433
76434type InstanceGroupManagersCreateInstancesCall struct {
76435	s                                           *Service
76436	project                                     string
76437	zone                                        string
76438	instanceGroupManager                        string
76439	instancegroupmanagerscreateinstancesrequest *InstanceGroupManagersCreateInstancesRequest
76440	urlParams_                                  gensupport.URLParams
76441	ctx_                                        context.Context
76442	header_                                     http.Header
76443}
76444
76445// CreateInstances: Creates instances with per-instance configs in this
76446// managed instance group. Instances are created using the current
76447// instance template. The create instances operation is marked DONE if
76448// the createInstances request is successful. The underlying actions
76449// take additional time. You must separately verify the status of the
76450// creating or actions with the listmanagedinstances method.
76451//
76452// - instanceGroupManager: The name of the managed instance group. It
76453//   should conform to RFC1035.
76454// - project: Project ID for this request.
76455// - zone: The name of the zone where the managed instance group is
76456//   located. It should conform to RFC1035.
76457func (r *InstanceGroupManagersService) CreateInstances(project string, zone string, instanceGroupManager string, instancegroupmanagerscreateinstancesrequest *InstanceGroupManagersCreateInstancesRequest) *InstanceGroupManagersCreateInstancesCall {
76458	c := &InstanceGroupManagersCreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76459	c.project = project
76460	c.zone = zone
76461	c.instanceGroupManager = instanceGroupManager
76462	c.instancegroupmanagerscreateinstancesrequest = instancegroupmanagerscreateinstancesrequest
76463	return c
76464}
76465
76466// RequestId sets the optional parameter "requestId": An optional
76467// request ID to identify requests. Specify a unique request ID so that
76468// if you must retry your request, the server will know to ignore the
76469// request if it has already been completed.
76470//
76471// For example, consider a situation where you make an initial request
76472// and the request times out. If you make the request again with the
76473// same request ID, the server can check if original operation with the
76474// same request ID was received, and if so, will ignore the second
76475// request.
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 *InstanceGroupManagersCreateInstancesCall) RequestId(requestId string) *InstanceGroupManagersCreateInstancesCall {
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 *InstanceGroupManagersCreateInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersCreateInstancesCall {
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 *InstanceGroupManagersCreateInstancesCall) Context(ctx context.Context) *InstanceGroupManagersCreateInstancesCall {
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 *InstanceGroupManagersCreateInstancesCall) Header() http.Header {
76503	if c.header_ == nil {
76504		c.header_ = make(http.Header)
76505	}
76506	return c.header_
76507}
76508
76509func (c *InstanceGroupManagersCreateInstancesCall) 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	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerscreateinstancesrequest)
76518	if err != nil {
76519		return nil, err
76520	}
76521	reqHeaders.Set("Content-Type", "application/json")
76522	c.urlParams_.Set("alt", alt)
76523	c.urlParams_.Set("prettyPrint", "false")
76524	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances")
76525	urls += "?" + c.urlParams_.Encode()
76526	req, err := http.NewRequest("POST", urls, body)
76527	if err != nil {
76528		return nil, err
76529	}
76530	req.Header = reqHeaders
76531	googleapi.Expand(req.URL, map[string]string{
76532		"project":              c.project,
76533		"zone":                 c.zone,
76534		"instanceGroupManager": c.instanceGroupManager,
76535	})
76536	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76537}
76538
76539// Do executes the "compute.instanceGroupManagers.createInstances" call.
76540// Exactly one of *Operation or error will be non-nil. Any non-2xx
76541// status code is an error. Response headers are in either
76542// *Operation.ServerResponse.Header or (if a response was returned at
76543// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76544// to check whether the returned error was because
76545// http.StatusNotModified was returned.
76546func (c *InstanceGroupManagersCreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76547	gensupport.SetOptions(c.urlParams_, opts...)
76548	res, err := c.doRequest("json")
76549	if res != nil && res.StatusCode == http.StatusNotModified {
76550		if res.Body != nil {
76551			res.Body.Close()
76552		}
76553		return nil, &googleapi.Error{
76554			Code:   res.StatusCode,
76555			Header: res.Header,
76556		}
76557	}
76558	if err != nil {
76559		return nil, err
76560	}
76561	defer googleapi.CloseBody(res)
76562	if err := googleapi.CheckResponse(res); err != nil {
76563		return nil, err
76564	}
76565	ret := &Operation{
76566		ServerResponse: googleapi.ServerResponse{
76567			Header:         res.Header,
76568			HTTPStatusCode: res.StatusCode,
76569		},
76570	}
76571	target := &ret
76572	if err := gensupport.DecodeResponse(target, res); err != nil {
76573		return nil, err
76574	}
76575	return ret, nil
76576	// {
76577	//   "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.",
76578	//   "httpMethod": "POST",
76579	//   "id": "compute.instanceGroupManagers.createInstances",
76580	//   "parameterOrder": [
76581	//     "project",
76582	//     "zone",
76583	//     "instanceGroupManager"
76584	//   ],
76585	//   "parameters": {
76586	//     "instanceGroupManager": {
76587	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
76588	//       "location": "path",
76589	//       "required": true,
76590	//       "type": "string"
76591	//     },
76592	//     "project": {
76593	//       "description": "Project ID for this request.",
76594	//       "location": "path",
76595	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76596	//       "required": true,
76597	//       "type": "string"
76598	//     },
76599	//     "requestId": {
76600	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same 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).",
76601	//       "location": "query",
76602	//       "type": "string"
76603	//     },
76604	//     "zone": {
76605	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
76606	//       "location": "path",
76607	//       "required": true,
76608	//       "type": "string"
76609	//     }
76610	//   },
76611	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances",
76612	//   "request": {
76613	//     "$ref": "InstanceGroupManagersCreateInstancesRequest"
76614	//   },
76615	//   "response": {
76616	//     "$ref": "Operation"
76617	//   },
76618	//   "scopes": [
76619	//     "https://www.googleapis.com/auth/cloud-platform",
76620	//     "https://www.googleapis.com/auth/compute"
76621	//   ]
76622	// }
76623
76624}
76625
76626// method id "compute.instanceGroupManagers.delete":
76627
76628type InstanceGroupManagersDeleteCall struct {
76629	s                    *Service
76630	project              string
76631	zone                 string
76632	instanceGroupManager string
76633	urlParams_           gensupport.URLParams
76634	ctx_                 context.Context
76635	header_              http.Header
76636}
76637
76638// Delete: Deletes the specified managed instance group and all of the
76639// instances in that group. Note that the instance group must not belong
76640// to a backend service. Read  Deleting an instance group for more
76641// information.
76642//
76643// - instanceGroupManager: The name of the managed instance group to
76644//   delete.
76645// - project: Project ID for this request.
76646// - zone: The name of the zone where the managed instance group is
76647//   located.
76648func (r *InstanceGroupManagersService) Delete(project string, zone string, instanceGroupManager string) *InstanceGroupManagersDeleteCall {
76649	c := &InstanceGroupManagersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76650	c.project = project
76651	c.zone = zone
76652	c.instanceGroupManager = instanceGroupManager
76653	return c
76654}
76655
76656// RequestId sets the optional parameter "requestId": An optional
76657// request ID to identify requests. Specify a unique request ID so that
76658// if you must retry your request, the server will know to ignore the
76659// request if it has already been completed.
76660//
76661// For example, consider a situation where you make an initial request
76662// and the request times out. If you make the request again with the
76663// same request ID, the server can check if original operation with the
76664// same request ID was received, and if so, will ignore the second
76665// request. This prevents clients from accidentally creating duplicate
76666// commitments.
76667//
76668// The request ID must be a valid UUID with the exception that zero UUID
76669// is not supported (00000000-0000-0000-0000-000000000000).
76670func (c *InstanceGroupManagersDeleteCall) RequestId(requestId string) *InstanceGroupManagersDeleteCall {
76671	c.urlParams_.Set("requestId", requestId)
76672	return c
76673}
76674
76675// Fields allows partial responses to be retrieved. See
76676// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76677// for more information.
76678func (c *InstanceGroupManagersDeleteCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeleteCall {
76679	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76680	return c
76681}
76682
76683// Context sets the context to be used in this call's Do method. Any
76684// pending HTTP request will be aborted if the provided context is
76685// canceled.
76686func (c *InstanceGroupManagersDeleteCall) Context(ctx context.Context) *InstanceGroupManagersDeleteCall {
76687	c.ctx_ = ctx
76688	return c
76689}
76690
76691// Header returns an http.Header that can be modified by the caller to
76692// add HTTP headers to the request.
76693func (c *InstanceGroupManagersDeleteCall) Header() http.Header {
76694	if c.header_ == nil {
76695		c.header_ = make(http.Header)
76696	}
76697	return c.header_
76698}
76699
76700func (c *InstanceGroupManagersDeleteCall) doRequest(alt string) (*http.Response, error) {
76701	reqHeaders := make(http.Header)
76702	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
76703	for k, v := range c.header_ {
76704		reqHeaders[k] = v
76705	}
76706	reqHeaders.Set("User-Agent", c.s.userAgent())
76707	var body io.Reader = nil
76708	c.urlParams_.Set("alt", alt)
76709	c.urlParams_.Set("prettyPrint", "false")
76710	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
76711	urls += "?" + c.urlParams_.Encode()
76712	req, err := http.NewRequest("DELETE", urls, body)
76713	if err != nil {
76714		return nil, err
76715	}
76716	req.Header = reqHeaders
76717	googleapi.Expand(req.URL, map[string]string{
76718		"project":              c.project,
76719		"zone":                 c.zone,
76720		"instanceGroupManager": c.instanceGroupManager,
76721	})
76722	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76723}
76724
76725// Do executes the "compute.instanceGroupManagers.delete" call.
76726// Exactly one of *Operation or error will be non-nil. Any non-2xx
76727// status code is an error. Response headers are in either
76728// *Operation.ServerResponse.Header or (if a response was returned at
76729// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76730// to check whether the returned error was because
76731// http.StatusNotModified was returned.
76732func (c *InstanceGroupManagersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76733	gensupport.SetOptions(c.urlParams_, opts...)
76734	res, err := c.doRequest("json")
76735	if res != nil && res.StatusCode == http.StatusNotModified {
76736		if res.Body != nil {
76737			res.Body.Close()
76738		}
76739		return nil, &googleapi.Error{
76740			Code:   res.StatusCode,
76741			Header: res.Header,
76742		}
76743	}
76744	if err != nil {
76745		return nil, err
76746	}
76747	defer googleapi.CloseBody(res)
76748	if err := googleapi.CheckResponse(res); err != nil {
76749		return nil, err
76750	}
76751	ret := &Operation{
76752		ServerResponse: googleapi.ServerResponse{
76753			Header:         res.Header,
76754			HTTPStatusCode: res.StatusCode,
76755		},
76756	}
76757	target := &ret
76758	if err := gensupport.DecodeResponse(target, res); err != nil {
76759		return nil, err
76760	}
76761	return ret, nil
76762	// {
76763	//   "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.",
76764	//   "httpMethod": "DELETE",
76765	//   "id": "compute.instanceGroupManagers.delete",
76766	//   "parameterOrder": [
76767	//     "project",
76768	//     "zone",
76769	//     "instanceGroupManager"
76770	//   ],
76771	//   "parameters": {
76772	//     "instanceGroupManager": {
76773	//       "description": "The name of the managed instance group to delete.",
76774	//       "location": "path",
76775	//       "required": true,
76776	//       "type": "string"
76777	//     },
76778	//     "project": {
76779	//       "description": "Project ID for this request.",
76780	//       "location": "path",
76781	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76782	//       "required": true,
76783	//       "type": "string"
76784	//     },
76785	//     "requestId": {
76786	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
76787	//       "location": "query",
76788	//       "type": "string"
76789	//     },
76790	//     "zone": {
76791	//       "description": "The name of the zone where the managed instance group is located.",
76792	//       "location": "path",
76793	//       "required": true,
76794	//       "type": "string"
76795	//     }
76796	//   },
76797	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
76798	//   "response": {
76799	//     "$ref": "Operation"
76800	//   },
76801	//   "scopes": [
76802	//     "https://www.googleapis.com/auth/cloud-platform",
76803	//     "https://www.googleapis.com/auth/compute"
76804	//   ]
76805	// }
76806
76807}
76808
76809// method id "compute.instanceGroupManagers.deleteInstances":
76810
76811type InstanceGroupManagersDeleteInstancesCall struct {
76812	s                                           *Service
76813	project                                     string
76814	zone                                        string
76815	instanceGroupManager                        string
76816	instancegroupmanagersdeleteinstancesrequest *InstanceGroupManagersDeleteInstancesRequest
76817	urlParams_                                  gensupport.URLParams
76818	ctx_                                        context.Context
76819	header_                                     http.Header
76820}
76821
76822// DeleteInstances: Flags the specified instances in the managed
76823// instance group for immediate deletion. The instances are also removed
76824// from any target pools of which they were a member. This method
76825// reduces the targetSize of the managed instance group by the number of
76826// instances that you delete. This operation is marked as DONE when the
76827// action is scheduled even if the instances are still being deleted.
76828// You must separately verify the status of the deleting action with the
76829// listmanagedinstances method.
76830//
76831// If the group is part of a backend service that has enabled connection
76832// draining, it can take up to 60 seconds after the connection draining
76833// duration has elapsed before the VM instance is removed or
76834// deleted.
76835//
76836// You can specify a maximum of 1000 instances with this method per
76837// request.
76838//
76839// - instanceGroupManager: The name of the managed instance group.
76840// - project: Project ID for this request.
76841// - zone: The name of the zone where the managed instance group is
76842//   located.
76843func (r *InstanceGroupManagersService) DeleteInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersdeleteinstancesrequest *InstanceGroupManagersDeleteInstancesRequest) *InstanceGroupManagersDeleteInstancesCall {
76844	c := &InstanceGroupManagersDeleteInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76845	c.project = project
76846	c.zone = zone
76847	c.instanceGroupManager = instanceGroupManager
76848	c.instancegroupmanagersdeleteinstancesrequest = instancegroupmanagersdeleteinstancesrequest
76849	return c
76850}
76851
76852// RequestId sets the optional parameter "requestId": An optional
76853// request ID to identify requests. Specify a unique request ID so that
76854// if you must retry your request, the server will know to ignore the
76855// request if it has already been completed.
76856//
76857// For example, consider a situation where you make an initial request
76858// and the request times out. If you make the request again with the
76859// same request ID, the server can check if original operation with the
76860// same request ID was received, and if so, will ignore the second
76861// request. This prevents clients from accidentally creating duplicate
76862// commitments.
76863//
76864// The request ID must be a valid UUID with the exception that zero UUID
76865// is not supported (00000000-0000-0000-0000-000000000000).
76866func (c *InstanceGroupManagersDeleteInstancesCall) RequestId(requestId string) *InstanceGroupManagersDeleteInstancesCall {
76867	c.urlParams_.Set("requestId", requestId)
76868	return c
76869}
76870
76871// Fields allows partial responses to be retrieved. See
76872// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76873// for more information.
76874func (c *InstanceGroupManagersDeleteInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeleteInstancesCall {
76875	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76876	return c
76877}
76878
76879// Context sets the context to be used in this call's Do method. Any
76880// pending HTTP request will be aborted if the provided context is
76881// canceled.
76882func (c *InstanceGroupManagersDeleteInstancesCall) Context(ctx context.Context) *InstanceGroupManagersDeleteInstancesCall {
76883	c.ctx_ = ctx
76884	return c
76885}
76886
76887// Header returns an http.Header that can be modified by the caller to
76888// add HTTP headers to the request.
76889func (c *InstanceGroupManagersDeleteInstancesCall) Header() http.Header {
76890	if c.header_ == nil {
76891		c.header_ = make(http.Header)
76892	}
76893	return c.header_
76894}
76895
76896func (c *InstanceGroupManagersDeleteInstancesCall) doRequest(alt string) (*http.Response, error) {
76897	reqHeaders := make(http.Header)
76898	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
76899	for k, v := range c.header_ {
76900		reqHeaders[k] = v
76901	}
76902	reqHeaders.Set("User-Agent", c.s.userAgent())
76903	var body io.Reader = nil
76904	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersdeleteinstancesrequest)
76905	if err != nil {
76906		return nil, err
76907	}
76908	reqHeaders.Set("Content-Type", "application/json")
76909	c.urlParams_.Set("alt", alt)
76910	c.urlParams_.Set("prettyPrint", "false")
76911	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances")
76912	urls += "?" + c.urlParams_.Encode()
76913	req, err := http.NewRequest("POST", urls, body)
76914	if err != nil {
76915		return nil, err
76916	}
76917	req.Header = reqHeaders
76918	googleapi.Expand(req.URL, map[string]string{
76919		"project":              c.project,
76920		"zone":                 c.zone,
76921		"instanceGroupManager": c.instanceGroupManager,
76922	})
76923	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76924}
76925
76926// Do executes the "compute.instanceGroupManagers.deleteInstances" call.
76927// Exactly one of *Operation or error will be non-nil. Any non-2xx
76928// status code is an error. Response headers are in either
76929// *Operation.ServerResponse.Header or (if a response was returned at
76930// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76931// to check whether the returned error was because
76932// http.StatusNotModified was returned.
76933func (c *InstanceGroupManagersDeleteInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76934	gensupport.SetOptions(c.urlParams_, opts...)
76935	res, err := c.doRequest("json")
76936	if res != nil && res.StatusCode == http.StatusNotModified {
76937		if res.Body != nil {
76938			res.Body.Close()
76939		}
76940		return nil, &googleapi.Error{
76941			Code:   res.StatusCode,
76942			Header: res.Header,
76943		}
76944	}
76945	if err != nil {
76946		return nil, err
76947	}
76948	defer googleapi.CloseBody(res)
76949	if err := googleapi.CheckResponse(res); err != nil {
76950		return nil, err
76951	}
76952	ret := &Operation{
76953		ServerResponse: googleapi.ServerResponse{
76954			Header:         res.Header,
76955			HTTPStatusCode: res.StatusCode,
76956		},
76957	}
76958	target := &ret
76959	if err := gensupport.DecodeResponse(target, res); err != nil {
76960		return nil, err
76961	}
76962	return ret, nil
76963	// {
76964	//   "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.",
76965	//   "httpMethod": "POST",
76966	//   "id": "compute.instanceGroupManagers.deleteInstances",
76967	//   "parameterOrder": [
76968	//     "project",
76969	//     "zone",
76970	//     "instanceGroupManager"
76971	//   ],
76972	//   "parameters": {
76973	//     "instanceGroupManager": {
76974	//       "description": "The name of the managed instance group.",
76975	//       "location": "path",
76976	//       "required": true,
76977	//       "type": "string"
76978	//     },
76979	//     "project": {
76980	//       "description": "Project ID for this request.",
76981	//       "location": "path",
76982	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76983	//       "required": true,
76984	//       "type": "string"
76985	//     },
76986	//     "requestId": {
76987	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
76988	//       "location": "query",
76989	//       "type": "string"
76990	//     },
76991	//     "zone": {
76992	//       "description": "The name of the zone where the managed instance group is located.",
76993	//       "location": "path",
76994	//       "required": true,
76995	//       "type": "string"
76996	//     }
76997	//   },
76998	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances",
76999	//   "request": {
77000	//     "$ref": "InstanceGroupManagersDeleteInstancesRequest"
77001	//   },
77002	//   "response": {
77003	//     "$ref": "Operation"
77004	//   },
77005	//   "scopes": [
77006	//     "https://www.googleapis.com/auth/cloud-platform",
77007	//     "https://www.googleapis.com/auth/compute"
77008	//   ]
77009	// }
77010
77011}
77012
77013// method id "compute.instanceGroupManagers.deletePerInstanceConfigs":
77014
77015type InstanceGroupManagersDeletePerInstanceConfigsCall struct {
77016	s                                                *Service
77017	project                                          string
77018	zone                                             string
77019	instanceGroupManager                             string
77020	instancegroupmanagersdeleteperinstanceconfigsreq *InstanceGroupManagersDeletePerInstanceConfigsReq
77021	urlParams_                                       gensupport.URLParams
77022	ctx_                                             context.Context
77023	header_                                          http.Header
77024}
77025
77026// DeletePerInstanceConfigs: Deletes selected per-instance configs for
77027// the managed instance group.
77028//
77029// - instanceGroupManager: The name of the managed instance group. It
77030//   should conform to RFC1035.
77031// - project: Project ID for this request.
77032// - zone: The name of the zone where the managed instance group is
77033//   located. It should conform to RFC1035.
77034func (r *InstanceGroupManagersService) DeletePerInstanceConfigs(project string, zone string, instanceGroupManager string, instancegroupmanagersdeleteperinstanceconfigsreq *InstanceGroupManagersDeletePerInstanceConfigsReq) *InstanceGroupManagersDeletePerInstanceConfigsCall {
77035	c := &InstanceGroupManagersDeletePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77036	c.project = project
77037	c.zone = zone
77038	c.instanceGroupManager = instanceGroupManager
77039	c.instancegroupmanagersdeleteperinstanceconfigsreq = instancegroupmanagersdeleteperinstanceconfigsreq
77040	return c
77041}
77042
77043// Fields allows partial responses to be retrieved. See
77044// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77045// for more information.
77046func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeletePerInstanceConfigsCall {
77047	c.urlParams_.Set("fields", googleapi.CombineFields(s))
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 *InstanceGroupManagersDeletePerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersDeletePerInstanceConfigsCall {
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 *InstanceGroupManagersDeletePerInstanceConfigsCall) Header() http.Header {
77062	if c.header_ == nil {
77063		c.header_ = make(http.Header)
77064	}
77065	return c.header_
77066}
77067
77068func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) 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	var body io.Reader = nil
77076	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersdeleteperinstanceconfigsreq)
77077	if err != nil {
77078		return nil, err
77079	}
77080	reqHeaders.Set("Content-Type", "application/json")
77081	c.urlParams_.Set("alt", alt)
77082	c.urlParams_.Set("prettyPrint", "false")
77083	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs")
77084	urls += "?" + c.urlParams_.Encode()
77085	req, err := http.NewRequest("POST", urls, body)
77086	if err != nil {
77087		return nil, err
77088	}
77089	req.Header = reqHeaders
77090	googleapi.Expand(req.URL, map[string]string{
77091		"project":              c.project,
77092		"zone":                 c.zone,
77093		"instanceGroupManager": c.instanceGroupManager,
77094	})
77095	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77096}
77097
77098// Do executes the "compute.instanceGroupManagers.deletePerInstanceConfigs" call.
77099// Exactly one of *Operation or error will be non-nil. Any non-2xx
77100// status code is an error. Response headers are in either
77101// *Operation.ServerResponse.Header or (if a response was returned at
77102// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77103// to check whether the returned error was because
77104// http.StatusNotModified was returned.
77105func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77106	gensupport.SetOptions(c.urlParams_, opts...)
77107	res, err := c.doRequest("json")
77108	if res != nil && res.StatusCode == http.StatusNotModified {
77109		if res.Body != nil {
77110			res.Body.Close()
77111		}
77112		return nil, &googleapi.Error{
77113			Code:   res.StatusCode,
77114			Header: res.Header,
77115		}
77116	}
77117	if err != nil {
77118		return nil, err
77119	}
77120	defer googleapi.CloseBody(res)
77121	if err := googleapi.CheckResponse(res); err != nil {
77122		return nil, err
77123	}
77124	ret := &Operation{
77125		ServerResponse: googleapi.ServerResponse{
77126			Header:         res.Header,
77127			HTTPStatusCode: res.StatusCode,
77128		},
77129	}
77130	target := &ret
77131	if err := gensupport.DecodeResponse(target, res); err != nil {
77132		return nil, err
77133	}
77134	return ret, nil
77135	// {
77136	//   "description": "Deletes selected per-instance configs for the managed instance group.",
77137	//   "httpMethod": "POST",
77138	//   "id": "compute.instanceGroupManagers.deletePerInstanceConfigs",
77139	//   "parameterOrder": [
77140	//     "project",
77141	//     "zone",
77142	//     "instanceGroupManager"
77143	//   ],
77144	//   "parameters": {
77145	//     "instanceGroupManager": {
77146	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
77147	//       "location": "path",
77148	//       "required": true,
77149	//       "type": "string"
77150	//     },
77151	//     "project": {
77152	//       "description": "Project ID for this request.",
77153	//       "location": "path",
77154	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77155	//       "required": true,
77156	//       "type": "string"
77157	//     },
77158	//     "zone": {
77159	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
77160	//       "location": "path",
77161	//       "required": true,
77162	//       "type": "string"
77163	//     }
77164	//   },
77165	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs",
77166	//   "request": {
77167	//     "$ref": "InstanceGroupManagersDeletePerInstanceConfigsReq"
77168	//   },
77169	//   "response": {
77170	//     "$ref": "Operation"
77171	//   },
77172	//   "scopes": [
77173	//     "https://www.googleapis.com/auth/cloud-platform",
77174	//     "https://www.googleapis.com/auth/compute"
77175	//   ]
77176	// }
77177
77178}
77179
77180// method id "compute.instanceGroupManagers.get":
77181
77182type InstanceGroupManagersGetCall struct {
77183	s                    *Service
77184	project              string
77185	zone                 string
77186	instanceGroupManager string
77187	urlParams_           gensupport.URLParams
77188	ifNoneMatch_         string
77189	ctx_                 context.Context
77190	header_              http.Header
77191}
77192
77193// Get: Returns all of the details about the specified managed instance
77194// group. Gets a list of available managed instance groups by making a
77195// list() request.
77196//
77197// - instanceGroupManager: The name of the managed instance group.
77198// - project: Project ID for this request.
77199// - zone: The name of the zone where the managed instance group is
77200//   located.
77201func (r *InstanceGroupManagersService) Get(project string, zone string, instanceGroupManager string) *InstanceGroupManagersGetCall {
77202	c := &InstanceGroupManagersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77203	c.project = project
77204	c.zone = zone
77205	c.instanceGroupManager = instanceGroupManager
77206	return c
77207}
77208
77209// Fields allows partial responses to be retrieved. See
77210// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77211// for more information.
77212func (c *InstanceGroupManagersGetCall) Fields(s ...googleapi.Field) *InstanceGroupManagersGetCall {
77213	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77214	return c
77215}
77216
77217// IfNoneMatch sets the optional parameter which makes the operation
77218// fail if the object's ETag matches the given value. This is useful for
77219// getting updates only after the object has changed since the last
77220// request. Use googleapi.IsNotModified to check whether the response
77221// error from Do is the result of In-None-Match.
77222func (c *InstanceGroupManagersGetCall) IfNoneMatch(entityTag string) *InstanceGroupManagersGetCall {
77223	c.ifNoneMatch_ = entityTag
77224	return c
77225}
77226
77227// Context sets the context to be used in this call's Do method. Any
77228// pending HTTP request will be aborted if the provided context is
77229// canceled.
77230func (c *InstanceGroupManagersGetCall) Context(ctx context.Context) *InstanceGroupManagersGetCall {
77231	c.ctx_ = ctx
77232	return c
77233}
77234
77235// Header returns an http.Header that can be modified by the caller to
77236// add HTTP headers to the request.
77237func (c *InstanceGroupManagersGetCall) Header() http.Header {
77238	if c.header_ == nil {
77239		c.header_ = make(http.Header)
77240	}
77241	return c.header_
77242}
77243
77244func (c *InstanceGroupManagersGetCall) doRequest(alt string) (*http.Response, error) {
77245	reqHeaders := make(http.Header)
77246	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
77247	for k, v := range c.header_ {
77248		reqHeaders[k] = v
77249	}
77250	reqHeaders.Set("User-Agent", c.s.userAgent())
77251	if c.ifNoneMatch_ != "" {
77252		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
77253	}
77254	var body io.Reader = nil
77255	c.urlParams_.Set("alt", alt)
77256	c.urlParams_.Set("prettyPrint", "false")
77257	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
77258	urls += "?" + c.urlParams_.Encode()
77259	req, err := http.NewRequest("GET", urls, body)
77260	if err != nil {
77261		return nil, err
77262	}
77263	req.Header = reqHeaders
77264	googleapi.Expand(req.URL, map[string]string{
77265		"project":              c.project,
77266		"zone":                 c.zone,
77267		"instanceGroupManager": c.instanceGroupManager,
77268	})
77269	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77270}
77271
77272// Do executes the "compute.instanceGroupManagers.get" call.
77273// Exactly one of *InstanceGroupManager or error will be non-nil. Any
77274// non-2xx status code is an error. Response headers are in either
77275// *InstanceGroupManager.ServerResponse.Header or (if a response was
77276// returned at all) in error.(*googleapi.Error).Header. Use
77277// googleapi.IsNotModified to check whether the returned error was
77278// because http.StatusNotModified was returned.
77279func (c *InstanceGroupManagersGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManager, error) {
77280	gensupport.SetOptions(c.urlParams_, opts...)
77281	res, err := c.doRequest("json")
77282	if res != nil && res.StatusCode == http.StatusNotModified {
77283		if res.Body != nil {
77284			res.Body.Close()
77285		}
77286		return nil, &googleapi.Error{
77287			Code:   res.StatusCode,
77288			Header: res.Header,
77289		}
77290	}
77291	if err != nil {
77292		return nil, err
77293	}
77294	defer googleapi.CloseBody(res)
77295	if err := googleapi.CheckResponse(res); err != nil {
77296		return nil, err
77297	}
77298	ret := &InstanceGroupManager{
77299		ServerResponse: googleapi.ServerResponse{
77300			Header:         res.Header,
77301			HTTPStatusCode: res.StatusCode,
77302		},
77303	}
77304	target := &ret
77305	if err := gensupport.DecodeResponse(target, res); err != nil {
77306		return nil, err
77307	}
77308	return ret, nil
77309	// {
77310	//   "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.",
77311	//   "httpMethod": "GET",
77312	//   "id": "compute.instanceGroupManagers.get",
77313	//   "parameterOrder": [
77314	//     "project",
77315	//     "zone",
77316	//     "instanceGroupManager"
77317	//   ],
77318	//   "parameters": {
77319	//     "instanceGroupManager": {
77320	//       "description": "The name of the managed instance group.",
77321	//       "location": "path",
77322	//       "required": true,
77323	//       "type": "string"
77324	//     },
77325	//     "project": {
77326	//       "description": "Project ID for this request.",
77327	//       "location": "path",
77328	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77329	//       "required": true,
77330	//       "type": "string"
77331	//     },
77332	//     "zone": {
77333	//       "description": "The name of the zone where the managed instance group is located.",
77334	//       "location": "path",
77335	//       "required": true,
77336	//       "type": "string"
77337	//     }
77338	//   },
77339	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
77340	//   "response": {
77341	//     "$ref": "InstanceGroupManager"
77342	//   },
77343	//   "scopes": [
77344	//     "https://www.googleapis.com/auth/cloud-platform",
77345	//     "https://www.googleapis.com/auth/compute",
77346	//     "https://www.googleapis.com/auth/compute.readonly"
77347	//   ]
77348	// }
77349
77350}
77351
77352// method id "compute.instanceGroupManagers.insert":
77353
77354type InstanceGroupManagersInsertCall struct {
77355	s                    *Service
77356	project              string
77357	zone                 string
77358	instancegroupmanager *InstanceGroupManager
77359	urlParams_           gensupport.URLParams
77360	ctx_                 context.Context
77361	header_              http.Header
77362}
77363
77364// Insert: Creates a managed instance group using the information that
77365// you specify in the request. After the group is created, instances in
77366// the group are created using the specified instance template. This
77367// operation is marked as DONE when the group is created even if the
77368// instances in the group have not yet been created. You must separately
77369// verify the status of the individual instances with the
77370// listmanagedinstances method.
77371//
77372// A managed instance group can have up to 1000 VM instances per group.
77373// Please contact Cloud Support if you need an increase in this limit.
77374//
77375// - project: Project ID for this request.
77376// - zone: The name of the zone where you want to create the managed
77377//   instance group.
77378func (r *InstanceGroupManagersService) Insert(project string, zone string, instancegroupmanager *InstanceGroupManager) *InstanceGroupManagersInsertCall {
77379	c := &InstanceGroupManagersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77380	c.project = project
77381	c.zone = zone
77382	c.instancegroupmanager = instancegroupmanager
77383	return c
77384}
77385
77386// RequestId sets the optional parameter "requestId": An optional
77387// request ID to identify requests. Specify a unique request ID so that
77388// if you must retry your request, the server will know to ignore the
77389// request if it has already been completed.
77390//
77391// For example, consider a situation where you make an initial request
77392// and the request times out. If you make the request again with the
77393// same request ID, the server can check if original operation with the
77394// same request ID was received, and if so, will ignore the second
77395// request. This prevents clients from accidentally creating duplicate
77396// commitments.
77397//
77398// The request ID must be a valid UUID with the exception that zero UUID
77399// is not supported (00000000-0000-0000-0000-000000000000).
77400func (c *InstanceGroupManagersInsertCall) RequestId(requestId string) *InstanceGroupManagersInsertCall {
77401	c.urlParams_.Set("requestId", requestId)
77402	return c
77403}
77404
77405// Fields allows partial responses to be retrieved. See
77406// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77407// for more information.
77408func (c *InstanceGroupManagersInsertCall) Fields(s ...googleapi.Field) *InstanceGroupManagersInsertCall {
77409	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77410	return c
77411}
77412
77413// Context sets the context to be used in this call's Do method. Any
77414// pending HTTP request will be aborted if the provided context is
77415// canceled.
77416func (c *InstanceGroupManagersInsertCall) Context(ctx context.Context) *InstanceGroupManagersInsertCall {
77417	c.ctx_ = ctx
77418	return c
77419}
77420
77421// Header returns an http.Header that can be modified by the caller to
77422// add HTTP headers to the request.
77423func (c *InstanceGroupManagersInsertCall) Header() http.Header {
77424	if c.header_ == nil {
77425		c.header_ = make(http.Header)
77426	}
77427	return c.header_
77428}
77429
77430func (c *InstanceGroupManagersInsertCall) doRequest(alt string) (*http.Response, error) {
77431	reqHeaders := make(http.Header)
77432	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
77433	for k, v := range c.header_ {
77434		reqHeaders[k] = v
77435	}
77436	reqHeaders.Set("User-Agent", c.s.userAgent())
77437	var body io.Reader = nil
77438	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
77439	if err != nil {
77440		return nil, err
77441	}
77442	reqHeaders.Set("Content-Type", "application/json")
77443	c.urlParams_.Set("alt", alt)
77444	c.urlParams_.Set("prettyPrint", "false")
77445	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers")
77446	urls += "?" + c.urlParams_.Encode()
77447	req, err := http.NewRequest("POST", urls, body)
77448	if err != nil {
77449		return nil, err
77450	}
77451	req.Header = reqHeaders
77452	googleapi.Expand(req.URL, map[string]string{
77453		"project": c.project,
77454		"zone":    c.zone,
77455	})
77456	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77457}
77458
77459// Do executes the "compute.instanceGroupManagers.insert" call.
77460// Exactly one of *Operation or error will be non-nil. Any non-2xx
77461// status code is an error. Response headers are in either
77462// *Operation.ServerResponse.Header or (if a response was returned at
77463// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77464// to check whether the returned error was because
77465// http.StatusNotModified was returned.
77466func (c *InstanceGroupManagersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77467	gensupport.SetOptions(c.urlParams_, opts...)
77468	res, err := c.doRequest("json")
77469	if res != nil && res.StatusCode == http.StatusNotModified {
77470		if res.Body != nil {
77471			res.Body.Close()
77472		}
77473		return nil, &googleapi.Error{
77474			Code:   res.StatusCode,
77475			Header: res.Header,
77476		}
77477	}
77478	if err != nil {
77479		return nil, err
77480	}
77481	defer googleapi.CloseBody(res)
77482	if err := googleapi.CheckResponse(res); err != nil {
77483		return nil, err
77484	}
77485	ret := &Operation{
77486		ServerResponse: googleapi.ServerResponse{
77487			Header:         res.Header,
77488			HTTPStatusCode: res.StatusCode,
77489		},
77490	}
77491	target := &ret
77492	if err := gensupport.DecodeResponse(target, res); err != nil {
77493		return nil, err
77494	}
77495	return ret, nil
77496	// {
77497	//   "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.",
77498	//   "httpMethod": "POST",
77499	//   "id": "compute.instanceGroupManagers.insert",
77500	//   "parameterOrder": [
77501	//     "project",
77502	//     "zone"
77503	//   ],
77504	//   "parameters": {
77505	//     "project": {
77506	//       "description": "Project ID for this request.",
77507	//       "location": "path",
77508	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77509	//       "required": true,
77510	//       "type": "string"
77511	//     },
77512	//     "requestId": {
77513	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
77514	//       "location": "query",
77515	//       "type": "string"
77516	//     },
77517	//     "zone": {
77518	//       "description": "The name of the zone where you want to create the managed instance group.",
77519	//       "location": "path",
77520	//       "required": true,
77521	//       "type": "string"
77522	//     }
77523	//   },
77524	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers",
77525	//   "request": {
77526	//     "$ref": "InstanceGroupManager"
77527	//   },
77528	//   "response": {
77529	//     "$ref": "Operation"
77530	//   },
77531	//   "scopes": [
77532	//     "https://www.googleapis.com/auth/cloud-platform",
77533	//     "https://www.googleapis.com/auth/compute"
77534	//   ]
77535	// }
77536
77537}
77538
77539// method id "compute.instanceGroupManagers.list":
77540
77541type InstanceGroupManagersListCall struct {
77542	s            *Service
77543	project      string
77544	zone         string
77545	urlParams_   gensupport.URLParams
77546	ifNoneMatch_ string
77547	ctx_         context.Context
77548	header_      http.Header
77549}
77550
77551// List: Retrieves a list of managed instance groups that are contained
77552// within the specified project and zone.
77553//
77554// - project: Project ID for this request.
77555// - zone: The name of the zone where the managed instance group is
77556//   located.
77557func (r *InstanceGroupManagersService) List(project string, zone string) *InstanceGroupManagersListCall {
77558	c := &InstanceGroupManagersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77559	c.project = project
77560	c.zone = zone
77561	return c
77562}
77563
77564// Filter sets the optional parameter "filter": A filter expression that
77565// filters resources listed in the response. The expression must specify
77566// the field name, a comparison operator, and the value that you want to
77567// use for filtering. The value must be a string, a number, or a
77568// boolean. The comparison operator must be either `=`, `!=`, `>`, or
77569// `<`.
77570//
77571// For example, if you are filtering Compute Engine instances, you can
77572// exclude instances named `example-instance` by specifying `name !=
77573// example-instance`.
77574//
77575// You can also filter nested fields. For example, you could specify
77576// `scheduling.automaticRestart = false` to include instances only if
77577// they are not scheduled for automatic restarts. You can use filtering
77578// on nested fields to filter based on resource labels.
77579//
77580// To filter on multiple expressions, provide each separate expression
77581// within parentheses. For example: ``` (scheduling.automaticRestart =
77582// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
77583// is an `AND` expression. However, you can include `AND` and `OR`
77584// expressions explicitly. For example: ``` (cpuPlatform = "Intel
77585// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
77586// (scheduling.automaticRestart = true) ```
77587func (c *InstanceGroupManagersListCall) Filter(filter string) *InstanceGroupManagersListCall {
77588	c.urlParams_.Set("filter", filter)
77589	return c
77590}
77591
77592// MaxResults sets the optional parameter "maxResults": The maximum
77593// number of results per page that should be returned. If the number of
77594// available results is larger than `maxResults`, Compute Engine returns
77595// a `nextPageToken` that can be used to get the next page of results in
77596// subsequent list requests. Acceptable values are `0` to `500`,
77597// inclusive. (Default: `500`)
77598func (c *InstanceGroupManagersListCall) MaxResults(maxResults int64) *InstanceGroupManagersListCall {
77599	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
77600	return c
77601}
77602
77603// OrderBy sets the optional parameter "orderBy": Sorts list results by
77604// a certain order. By default, results are returned in alphanumerical
77605// order based on the resource name.
77606//
77607// You can also sort results in descending order based on the creation
77608// timestamp using `orderBy="creationTimestamp desc". This sorts
77609// results based on the `creationTimestamp` field in reverse
77610// chronological order (newest result first). Use this to sort resources
77611// like operations so that the newest operation is returned
77612// first.
77613//
77614// Currently, only sorting by `name` or `creationTimestamp desc` is
77615// supported.
77616func (c *InstanceGroupManagersListCall) OrderBy(orderBy string) *InstanceGroupManagersListCall {
77617	c.urlParams_.Set("orderBy", orderBy)
77618	return c
77619}
77620
77621// PageToken sets the optional parameter "pageToken": Specifies a page
77622// token to use. Set `pageToken` to the `nextPageToken` returned by a
77623// previous list request to get the next page of results.
77624func (c *InstanceGroupManagersListCall) PageToken(pageToken string) *InstanceGroupManagersListCall {
77625	c.urlParams_.Set("pageToken", pageToken)
77626	return c
77627}
77628
77629// ReturnPartialSuccess sets the optional parameter
77630// "returnPartialSuccess": Opt-in for partial success behavior which
77631// provides partial results in case of failure. The default value is
77632// false.
77633func (c *InstanceGroupManagersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersListCall {
77634	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
77635	return c
77636}
77637
77638// Fields allows partial responses to be retrieved. See
77639// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77640// for more information.
77641func (c *InstanceGroupManagersListCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListCall {
77642	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77643	return c
77644}
77645
77646// IfNoneMatch sets the optional parameter which makes the operation
77647// fail if the object's ETag matches the given value. This is useful for
77648// getting updates only after the object has changed since the last
77649// request. Use googleapi.IsNotModified to check whether the response
77650// error from Do is the result of In-None-Match.
77651func (c *InstanceGroupManagersListCall) IfNoneMatch(entityTag string) *InstanceGroupManagersListCall {
77652	c.ifNoneMatch_ = entityTag
77653	return c
77654}
77655
77656// Context sets the context to be used in this call's Do method. Any
77657// pending HTTP request will be aborted if the provided context is
77658// canceled.
77659func (c *InstanceGroupManagersListCall) Context(ctx context.Context) *InstanceGroupManagersListCall {
77660	c.ctx_ = ctx
77661	return c
77662}
77663
77664// Header returns an http.Header that can be modified by the caller to
77665// add HTTP headers to the request.
77666func (c *InstanceGroupManagersListCall) Header() http.Header {
77667	if c.header_ == nil {
77668		c.header_ = make(http.Header)
77669	}
77670	return c.header_
77671}
77672
77673func (c *InstanceGroupManagersListCall) doRequest(alt string) (*http.Response, error) {
77674	reqHeaders := make(http.Header)
77675	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
77676	for k, v := range c.header_ {
77677		reqHeaders[k] = v
77678	}
77679	reqHeaders.Set("User-Agent", c.s.userAgent())
77680	if c.ifNoneMatch_ != "" {
77681		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
77682	}
77683	var body io.Reader = nil
77684	c.urlParams_.Set("alt", alt)
77685	c.urlParams_.Set("prettyPrint", "false")
77686	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers")
77687	urls += "?" + c.urlParams_.Encode()
77688	req, err := http.NewRequest("GET", urls, body)
77689	if err != nil {
77690		return nil, err
77691	}
77692	req.Header = reqHeaders
77693	googleapi.Expand(req.URL, map[string]string{
77694		"project": c.project,
77695		"zone":    c.zone,
77696	})
77697	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77698}
77699
77700// Do executes the "compute.instanceGroupManagers.list" call.
77701// Exactly one of *InstanceGroupManagerList or error will be non-nil.
77702// Any non-2xx status code is an error. Response headers are in either
77703// *InstanceGroupManagerList.ServerResponse.Header or (if a response was
77704// returned at all) in error.(*googleapi.Error).Header. Use
77705// googleapi.IsNotModified to check whether the returned error was
77706// because http.StatusNotModified was returned.
77707func (c *InstanceGroupManagersListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagerList, error) {
77708	gensupport.SetOptions(c.urlParams_, opts...)
77709	res, err := c.doRequest("json")
77710	if res != nil && res.StatusCode == http.StatusNotModified {
77711		if res.Body != nil {
77712			res.Body.Close()
77713		}
77714		return nil, &googleapi.Error{
77715			Code:   res.StatusCode,
77716			Header: res.Header,
77717		}
77718	}
77719	if err != nil {
77720		return nil, err
77721	}
77722	defer googleapi.CloseBody(res)
77723	if err := googleapi.CheckResponse(res); err != nil {
77724		return nil, err
77725	}
77726	ret := &InstanceGroupManagerList{
77727		ServerResponse: googleapi.ServerResponse{
77728			Header:         res.Header,
77729			HTTPStatusCode: res.StatusCode,
77730		},
77731	}
77732	target := &ret
77733	if err := gensupport.DecodeResponse(target, res); err != nil {
77734		return nil, err
77735	}
77736	return ret, nil
77737	// {
77738	//   "description": "Retrieves a list of managed instance groups that are contained within the specified project and zone.",
77739	//   "httpMethod": "GET",
77740	//   "id": "compute.instanceGroupManagers.list",
77741	//   "parameterOrder": [
77742	//     "project",
77743	//     "zone"
77744	//   ],
77745	//   "parameters": {
77746	//     "filter": {
77747	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
77748	//       "location": "query",
77749	//       "type": "string"
77750	//     },
77751	//     "maxResults": {
77752	//       "default": "500",
77753	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
77754	//       "format": "uint32",
77755	//       "location": "query",
77756	//       "minimum": "0",
77757	//       "type": "integer"
77758	//     },
77759	//     "orderBy": {
77760	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
77761	//       "location": "query",
77762	//       "type": "string"
77763	//     },
77764	//     "pageToken": {
77765	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
77766	//       "location": "query",
77767	//       "type": "string"
77768	//     },
77769	//     "project": {
77770	//       "description": "Project ID for this request.",
77771	//       "location": "path",
77772	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77773	//       "required": true,
77774	//       "type": "string"
77775	//     },
77776	//     "returnPartialSuccess": {
77777	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
77778	//       "location": "query",
77779	//       "type": "boolean"
77780	//     },
77781	//     "zone": {
77782	//       "description": "The name of the zone where the managed instance group is located.",
77783	//       "location": "path",
77784	//       "required": true,
77785	//       "type": "string"
77786	//     }
77787	//   },
77788	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers",
77789	//   "response": {
77790	//     "$ref": "InstanceGroupManagerList"
77791	//   },
77792	//   "scopes": [
77793	//     "https://www.googleapis.com/auth/cloud-platform",
77794	//     "https://www.googleapis.com/auth/compute",
77795	//     "https://www.googleapis.com/auth/compute.readonly"
77796	//   ]
77797	// }
77798
77799}
77800
77801// Pages invokes f for each page of results.
77802// A non-nil error returned from f will halt the iteration.
77803// The provided context supersedes any context provided to the Context method.
77804func (c *InstanceGroupManagersListCall) Pages(ctx context.Context, f func(*InstanceGroupManagerList) error) error {
77805	c.ctx_ = ctx
77806	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
77807	for {
77808		x, err := c.Do()
77809		if err != nil {
77810			return err
77811		}
77812		if err := f(x); err != nil {
77813			return err
77814		}
77815		if x.NextPageToken == "" {
77816			return nil
77817		}
77818		c.PageToken(x.NextPageToken)
77819	}
77820}
77821
77822// method id "compute.instanceGroupManagers.listErrors":
77823
77824type InstanceGroupManagersListErrorsCall struct {
77825	s                    *Service
77826	project              string
77827	zone                 string
77828	instanceGroupManager string
77829	urlParams_           gensupport.URLParams
77830	ifNoneMatch_         string
77831	ctx_                 context.Context
77832	header_              http.Header
77833}
77834
77835// ListErrors: Lists all errors thrown by actions on instances for a
77836// given managed instance group. The filter and orderBy query parameters
77837// are not supported.
77838//
77839// - instanceGroupManager: The name of the managed instance group. It
77840//   must be a string that meets the requirements in RFC1035, or an
77841//   unsigned long integer: must match regexp pattern: (?:a-z
77842//   (?:[-a-z0-9]{0,61}[a-z0-9])?)|[1-9][0-9]{0,19}.
77843// - project: Project ID for this request.
77844// - zone: The name of the zone where the managed instance group is
77845//   located. It should conform to RFC1035.
77846func (r *InstanceGroupManagersService) ListErrors(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListErrorsCall {
77847	c := &InstanceGroupManagersListErrorsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77848	c.project = project
77849	c.zone = zone
77850	c.instanceGroupManager = instanceGroupManager
77851	return c
77852}
77853
77854// Filter sets the optional parameter "filter": A filter expression that
77855// filters resources listed in the response. The expression must specify
77856// the field name, a comparison operator, and the value that you want to
77857// use for filtering. The value must be a string, a number, or a
77858// boolean. The comparison operator must be either `=`, `!=`, `>`, or
77859// `<`.
77860//
77861// For example, if you are filtering Compute Engine instances, you can
77862// exclude instances named `example-instance` by specifying `name !=
77863// example-instance`.
77864//
77865// You can also filter nested fields. For example, you could specify
77866// `scheduling.automaticRestart = false` to include instances only if
77867// they are not scheduled for automatic restarts. You can use filtering
77868// on nested fields to filter based on resource labels.
77869//
77870// To filter on multiple expressions, provide each separate expression
77871// within parentheses. For example: ``` (scheduling.automaticRestart =
77872// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
77873// is an `AND` expression. However, you can include `AND` and `OR`
77874// expressions explicitly. For example: ``` (cpuPlatform = "Intel
77875// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
77876// (scheduling.automaticRestart = true) ```
77877func (c *InstanceGroupManagersListErrorsCall) Filter(filter string) *InstanceGroupManagersListErrorsCall {
77878	c.urlParams_.Set("filter", filter)
77879	return c
77880}
77881
77882// MaxResults sets the optional parameter "maxResults": The maximum
77883// number of results per page that should be returned. If the number of
77884// available results is larger than `maxResults`, Compute Engine returns
77885// a `nextPageToken` that can be used to get the next page of results in
77886// subsequent list requests. Acceptable values are `0` to `500`,
77887// inclusive. (Default: `500`)
77888func (c *InstanceGroupManagersListErrorsCall) MaxResults(maxResults int64) *InstanceGroupManagersListErrorsCall {
77889	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
77890	return c
77891}
77892
77893// OrderBy sets the optional parameter "orderBy": Sorts list results by
77894// a certain order. By default, results are returned in alphanumerical
77895// order based on the resource name.
77896//
77897// You can also sort results in descending order based on the creation
77898// timestamp using `orderBy="creationTimestamp desc". This sorts
77899// results based on the `creationTimestamp` field in reverse
77900// chronological order (newest result first). Use this to sort resources
77901// like operations so that the newest operation is returned
77902// first.
77903//
77904// Currently, only sorting by `name` or `creationTimestamp desc` is
77905// supported.
77906func (c *InstanceGroupManagersListErrorsCall) OrderBy(orderBy string) *InstanceGroupManagersListErrorsCall {
77907	c.urlParams_.Set("orderBy", orderBy)
77908	return c
77909}
77910
77911// PageToken sets the optional parameter "pageToken": Specifies a page
77912// token to use. Set `pageToken` to the `nextPageToken` returned by a
77913// previous list request to get the next page of results.
77914func (c *InstanceGroupManagersListErrorsCall) PageToken(pageToken string) *InstanceGroupManagersListErrorsCall {
77915	c.urlParams_.Set("pageToken", pageToken)
77916	return c
77917}
77918
77919// ReturnPartialSuccess sets the optional parameter
77920// "returnPartialSuccess": Opt-in for partial success behavior which
77921// provides partial results in case of failure. The default value is
77922// false.
77923func (c *InstanceGroupManagersListErrorsCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersListErrorsCall {
77924	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
77925	return c
77926}
77927
77928// Fields allows partial responses to be retrieved. See
77929// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77930// for more information.
77931func (c *InstanceGroupManagersListErrorsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListErrorsCall {
77932	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77933	return c
77934}
77935
77936// IfNoneMatch sets the optional parameter which makes the operation
77937// fail if the object's ETag matches the given value. This is useful for
77938// getting updates only after the object has changed since the last
77939// request. Use googleapi.IsNotModified to check whether the response
77940// error from Do is the result of In-None-Match.
77941func (c *InstanceGroupManagersListErrorsCall) IfNoneMatch(entityTag string) *InstanceGroupManagersListErrorsCall {
77942	c.ifNoneMatch_ = entityTag
77943	return c
77944}
77945
77946// Context sets the context to be used in this call's Do method. Any
77947// pending HTTP request will be aborted if the provided context is
77948// canceled.
77949func (c *InstanceGroupManagersListErrorsCall) Context(ctx context.Context) *InstanceGroupManagersListErrorsCall {
77950	c.ctx_ = ctx
77951	return c
77952}
77953
77954// Header returns an http.Header that can be modified by the caller to
77955// add HTTP headers to the request.
77956func (c *InstanceGroupManagersListErrorsCall) Header() http.Header {
77957	if c.header_ == nil {
77958		c.header_ = make(http.Header)
77959	}
77960	return c.header_
77961}
77962
77963func (c *InstanceGroupManagersListErrorsCall) doRequest(alt string) (*http.Response, error) {
77964	reqHeaders := make(http.Header)
77965	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
77966	for k, v := range c.header_ {
77967		reqHeaders[k] = v
77968	}
77969	reqHeaders.Set("User-Agent", c.s.userAgent())
77970	if c.ifNoneMatch_ != "" {
77971		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
77972	}
77973	var body io.Reader = nil
77974	c.urlParams_.Set("alt", alt)
77975	c.urlParams_.Set("prettyPrint", "false")
77976	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors")
77977	urls += "?" + c.urlParams_.Encode()
77978	req, err := http.NewRequest("GET", urls, body)
77979	if err != nil {
77980		return nil, err
77981	}
77982	req.Header = reqHeaders
77983	googleapi.Expand(req.URL, map[string]string{
77984		"project":              c.project,
77985		"zone":                 c.zone,
77986		"instanceGroupManager": c.instanceGroupManager,
77987	})
77988	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77989}
77990
77991// Do executes the "compute.instanceGroupManagers.listErrors" call.
77992// Exactly one of *InstanceGroupManagersListErrorsResponse or error will
77993// be non-nil. Any non-2xx status code is an error. Response headers are
77994// in either
77995// *InstanceGroupManagersListErrorsResponse.ServerResponse.Header or (if
77996// a response was returned at all) in error.(*googleapi.Error).Header.
77997// Use googleapi.IsNotModified to check whether the returned error was
77998// because http.StatusNotModified was returned.
77999func (c *InstanceGroupManagersListErrorsCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListErrorsResponse, error) {
78000	gensupport.SetOptions(c.urlParams_, opts...)
78001	res, err := c.doRequest("json")
78002	if res != nil && res.StatusCode == http.StatusNotModified {
78003		if res.Body != nil {
78004			res.Body.Close()
78005		}
78006		return nil, &googleapi.Error{
78007			Code:   res.StatusCode,
78008			Header: res.Header,
78009		}
78010	}
78011	if err != nil {
78012		return nil, err
78013	}
78014	defer googleapi.CloseBody(res)
78015	if err := googleapi.CheckResponse(res); err != nil {
78016		return nil, err
78017	}
78018	ret := &InstanceGroupManagersListErrorsResponse{
78019		ServerResponse: googleapi.ServerResponse{
78020			Header:         res.Header,
78021			HTTPStatusCode: res.StatusCode,
78022		},
78023	}
78024	target := &ret
78025	if err := gensupport.DecodeResponse(target, res); err != nil {
78026		return nil, err
78027	}
78028	return ret, nil
78029	// {
78030	//   "description": "Lists all errors thrown by actions on instances for a given managed instance group. The filter and orderBy query parameters are not supported.",
78031	//   "httpMethod": "GET",
78032	//   "id": "compute.instanceGroupManagers.listErrors",
78033	//   "parameterOrder": [
78034	//     "project",
78035	//     "zone",
78036	//     "instanceGroupManager"
78037	//   ],
78038	//   "parameters": {
78039	//     "filter": {
78040	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
78041	//       "location": "query",
78042	//       "type": "string"
78043	//     },
78044	//     "instanceGroupManager": {
78045	//       "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}.",
78046	//       "location": "path",
78047	//       "required": true,
78048	//       "type": "string"
78049	//     },
78050	//     "maxResults": {
78051	//       "default": "500",
78052	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
78053	//       "format": "uint32",
78054	//       "location": "query",
78055	//       "minimum": "0",
78056	//       "type": "integer"
78057	//     },
78058	//     "orderBy": {
78059	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
78060	//       "location": "query",
78061	//       "type": "string"
78062	//     },
78063	//     "pageToken": {
78064	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
78065	//       "location": "query",
78066	//       "type": "string"
78067	//     },
78068	//     "project": {
78069	//       "description": "Project ID for this request.",
78070	//       "location": "path",
78071	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78072	//       "required": true,
78073	//       "type": "string"
78074	//     },
78075	//     "returnPartialSuccess": {
78076	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
78077	//       "location": "query",
78078	//       "type": "boolean"
78079	//     },
78080	//     "zone": {
78081	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
78082	//       "location": "path",
78083	//       "required": true,
78084	//       "type": "string"
78085	//     }
78086	//   },
78087	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors",
78088	//   "response": {
78089	//     "$ref": "InstanceGroupManagersListErrorsResponse"
78090	//   },
78091	//   "scopes": [
78092	//     "https://www.googleapis.com/auth/cloud-platform",
78093	//     "https://www.googleapis.com/auth/compute",
78094	//     "https://www.googleapis.com/auth/compute.readonly"
78095	//   ]
78096	// }
78097
78098}
78099
78100// Pages invokes f for each page of results.
78101// A non-nil error returned from f will halt the iteration.
78102// The provided context supersedes any context provided to the Context method.
78103func (c *InstanceGroupManagersListErrorsCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListErrorsResponse) error) error {
78104	c.ctx_ = ctx
78105	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
78106	for {
78107		x, err := c.Do()
78108		if err != nil {
78109			return err
78110		}
78111		if err := f(x); err != nil {
78112			return err
78113		}
78114		if x.NextPageToken == "" {
78115			return nil
78116		}
78117		c.PageToken(x.NextPageToken)
78118	}
78119}
78120
78121// method id "compute.instanceGroupManagers.listManagedInstances":
78122
78123type InstanceGroupManagersListManagedInstancesCall struct {
78124	s                    *Service
78125	project              string
78126	zone                 string
78127	instanceGroupManager string
78128	urlParams_           gensupport.URLParams
78129	ctx_                 context.Context
78130	header_              http.Header
78131}
78132
78133// ListManagedInstances: Lists all of the instances in the managed
78134// instance group. Each instance in the list has a currentAction, which
78135// indicates the action that the managed instance group is performing on
78136// the instance. For example, if the group is still creating an
78137// instance, the currentAction is CREATING. If a previous action failed,
78138// the list displays the errors for that failed action. The orderBy
78139// query parameter is not supported.
78140//
78141// - instanceGroupManager: The name of the managed instance group.
78142// - project: Project ID for this request.
78143// - zone: The name of the zone where the managed instance group is
78144//   located.
78145func (r *InstanceGroupManagersService) ListManagedInstances(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListManagedInstancesCall {
78146	c := &InstanceGroupManagersListManagedInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78147	c.project = project
78148	c.zone = zone
78149	c.instanceGroupManager = instanceGroupManager
78150	return c
78151}
78152
78153// Filter sets the optional parameter "filter": A filter expression that
78154// filters resources listed in the response. The expression must specify
78155// the field name, a comparison operator, and the value that you want to
78156// use for filtering. The value must be a string, a number, or a
78157// boolean. The comparison operator must be either `=`, `!=`, `>`, or
78158// `<`.
78159//
78160// For example, if you are filtering Compute Engine instances, you can
78161// exclude instances named `example-instance` by specifying `name !=
78162// example-instance`.
78163//
78164// You can also filter nested fields. For example, you could specify
78165// `scheduling.automaticRestart = false` to include instances only if
78166// they are not scheduled for automatic restarts. You can use filtering
78167// on nested fields to filter based on resource labels.
78168//
78169// To filter on multiple expressions, provide each separate expression
78170// within parentheses. For example: ``` (scheduling.automaticRestart =
78171// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
78172// is an `AND` expression. However, you can include `AND` and `OR`
78173// expressions explicitly. For example: ``` (cpuPlatform = "Intel
78174// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
78175// (scheduling.automaticRestart = true) ```
78176func (c *InstanceGroupManagersListManagedInstancesCall) Filter(filter string) *InstanceGroupManagersListManagedInstancesCall {
78177	c.urlParams_.Set("filter", filter)
78178	return c
78179}
78180
78181// MaxResults sets the optional parameter "maxResults": The maximum
78182// number of results per page that should be returned. If the number of
78183// available results is larger than `maxResults`, Compute Engine returns
78184// a `nextPageToken` that can be used to get the next page of results in
78185// subsequent list requests. Acceptable values are `0` to `500`,
78186// inclusive. (Default: `500`)
78187func (c *InstanceGroupManagersListManagedInstancesCall) MaxResults(maxResults int64) *InstanceGroupManagersListManagedInstancesCall {
78188	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
78189	return c
78190}
78191
78192// OrderBy sets the optional parameter "orderBy": Sorts list results by
78193// a certain order. By default, results are returned in alphanumerical
78194// order based on the resource name.
78195//
78196// You can also sort results in descending order based on the creation
78197// timestamp using `orderBy="creationTimestamp desc". This sorts
78198// results based on the `creationTimestamp` field in reverse
78199// chronological order (newest result first). Use this to sort resources
78200// like operations so that the newest operation is returned
78201// first.
78202//
78203// Currently, only sorting by `name` or `creationTimestamp desc` is
78204// supported.
78205func (c *InstanceGroupManagersListManagedInstancesCall) OrderBy(orderBy string) *InstanceGroupManagersListManagedInstancesCall {
78206	c.urlParams_.Set("orderBy", orderBy)
78207	return c
78208}
78209
78210// PageToken sets the optional parameter "pageToken": Specifies a page
78211// token to use. Set `pageToken` to the `nextPageToken` returned by a
78212// previous list request to get the next page of results.
78213func (c *InstanceGroupManagersListManagedInstancesCall) PageToken(pageToken string) *InstanceGroupManagersListManagedInstancesCall {
78214	c.urlParams_.Set("pageToken", pageToken)
78215	return c
78216}
78217
78218// ReturnPartialSuccess sets the optional parameter
78219// "returnPartialSuccess": Opt-in for partial success behavior which
78220// provides partial results in case of failure. The default value is
78221// false.
78222func (c *InstanceGroupManagersListManagedInstancesCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersListManagedInstancesCall {
78223	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
78224	return c
78225}
78226
78227// Fields allows partial responses to be retrieved. See
78228// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78229// for more information.
78230func (c *InstanceGroupManagersListManagedInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListManagedInstancesCall {
78231	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78232	return c
78233}
78234
78235// Context sets the context to be used in this call's Do method. Any
78236// pending HTTP request will be aborted if the provided context is
78237// canceled.
78238func (c *InstanceGroupManagersListManagedInstancesCall) Context(ctx context.Context) *InstanceGroupManagersListManagedInstancesCall {
78239	c.ctx_ = ctx
78240	return c
78241}
78242
78243// Header returns an http.Header that can be modified by the caller to
78244// add HTTP headers to the request.
78245func (c *InstanceGroupManagersListManagedInstancesCall) Header() http.Header {
78246	if c.header_ == nil {
78247		c.header_ = make(http.Header)
78248	}
78249	return c.header_
78250}
78251
78252func (c *InstanceGroupManagersListManagedInstancesCall) doRequest(alt string) (*http.Response, error) {
78253	reqHeaders := make(http.Header)
78254	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
78255	for k, v := range c.header_ {
78256		reqHeaders[k] = v
78257	}
78258	reqHeaders.Set("User-Agent", c.s.userAgent())
78259	var body io.Reader = nil
78260	c.urlParams_.Set("alt", alt)
78261	c.urlParams_.Set("prettyPrint", "false")
78262	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances")
78263	urls += "?" + c.urlParams_.Encode()
78264	req, err := http.NewRequest("POST", urls, body)
78265	if err != nil {
78266		return nil, err
78267	}
78268	req.Header = reqHeaders
78269	googleapi.Expand(req.URL, map[string]string{
78270		"project":              c.project,
78271		"zone":                 c.zone,
78272		"instanceGroupManager": c.instanceGroupManager,
78273	})
78274	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78275}
78276
78277// Do executes the "compute.instanceGroupManagers.listManagedInstances" call.
78278// Exactly one of *InstanceGroupManagersListManagedInstancesResponse or
78279// error will be non-nil. Any non-2xx status code is an error. Response
78280// headers are in either
78281// *InstanceGroupManagersListManagedInstancesResponse.ServerResponse.Head
78282// er or (if a response was returned at all) in
78283// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
78284// whether the returned error was because http.StatusNotModified was
78285// returned.
78286func (c *InstanceGroupManagersListManagedInstancesCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListManagedInstancesResponse, error) {
78287	gensupport.SetOptions(c.urlParams_, opts...)
78288	res, err := c.doRequest("json")
78289	if res != nil && res.StatusCode == http.StatusNotModified {
78290		if res.Body != nil {
78291			res.Body.Close()
78292		}
78293		return nil, &googleapi.Error{
78294			Code:   res.StatusCode,
78295			Header: res.Header,
78296		}
78297	}
78298	if err != nil {
78299		return nil, err
78300	}
78301	defer googleapi.CloseBody(res)
78302	if err := googleapi.CheckResponse(res); err != nil {
78303		return nil, err
78304	}
78305	ret := &InstanceGroupManagersListManagedInstancesResponse{
78306		ServerResponse: googleapi.ServerResponse{
78307			Header:         res.Header,
78308			HTTPStatusCode: res.StatusCode,
78309		},
78310	}
78311	target := &ret
78312	if err := gensupport.DecodeResponse(target, res); err != nil {
78313		return nil, err
78314	}
78315	return ret, nil
78316	// {
78317	//   "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.",
78318	//   "httpMethod": "POST",
78319	//   "id": "compute.instanceGroupManagers.listManagedInstances",
78320	//   "parameterOrder": [
78321	//     "project",
78322	//     "zone",
78323	//     "instanceGroupManager"
78324	//   ],
78325	//   "parameters": {
78326	//     "filter": {
78327	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
78328	//       "location": "query",
78329	//       "type": "string"
78330	//     },
78331	//     "instanceGroupManager": {
78332	//       "description": "The name of the managed instance group.",
78333	//       "location": "path",
78334	//       "required": true,
78335	//       "type": "string"
78336	//     },
78337	//     "maxResults": {
78338	//       "default": "500",
78339	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
78340	//       "format": "uint32",
78341	//       "location": "query",
78342	//       "minimum": "0",
78343	//       "type": "integer"
78344	//     },
78345	//     "orderBy": {
78346	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
78347	//       "location": "query",
78348	//       "type": "string"
78349	//     },
78350	//     "pageToken": {
78351	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
78352	//       "location": "query",
78353	//       "type": "string"
78354	//     },
78355	//     "project": {
78356	//       "description": "Project ID for this request.",
78357	//       "location": "path",
78358	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78359	//       "required": true,
78360	//       "type": "string"
78361	//     },
78362	//     "returnPartialSuccess": {
78363	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
78364	//       "location": "query",
78365	//       "type": "boolean"
78366	//     },
78367	//     "zone": {
78368	//       "description": "The name of the zone where the managed instance group is located.",
78369	//       "location": "path",
78370	//       "required": true,
78371	//       "type": "string"
78372	//     }
78373	//   },
78374	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances",
78375	//   "response": {
78376	//     "$ref": "InstanceGroupManagersListManagedInstancesResponse"
78377	//   },
78378	//   "scopes": [
78379	//     "https://www.googleapis.com/auth/cloud-platform",
78380	//     "https://www.googleapis.com/auth/compute",
78381	//     "https://www.googleapis.com/auth/compute.readonly"
78382	//   ]
78383	// }
78384
78385}
78386
78387// Pages invokes f for each page of results.
78388// A non-nil error returned from f will halt the iteration.
78389// The provided context supersedes any context provided to the Context method.
78390func (c *InstanceGroupManagersListManagedInstancesCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListManagedInstancesResponse) error) error {
78391	c.ctx_ = ctx
78392	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
78393	for {
78394		x, err := c.Do()
78395		if err != nil {
78396			return err
78397		}
78398		if err := f(x); err != nil {
78399			return err
78400		}
78401		if x.NextPageToken == "" {
78402			return nil
78403		}
78404		c.PageToken(x.NextPageToken)
78405	}
78406}
78407
78408// method id "compute.instanceGroupManagers.listPerInstanceConfigs":
78409
78410type InstanceGroupManagersListPerInstanceConfigsCall struct {
78411	s                    *Service
78412	project              string
78413	zone                 string
78414	instanceGroupManager string
78415	urlParams_           gensupport.URLParams
78416	ctx_                 context.Context
78417	header_              http.Header
78418}
78419
78420// ListPerInstanceConfigs: Lists all of the per-instance configs defined
78421// for the managed instance group. The orderBy query parameter is not
78422// supported.
78423//
78424// - instanceGroupManager: The name of the managed instance group. It
78425//   should conform to RFC1035.
78426// - project: Project ID for this request.
78427// - zone: The name of the zone where the managed instance group is
78428//   located. It should conform to RFC1035.
78429func (r *InstanceGroupManagersService) ListPerInstanceConfigs(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListPerInstanceConfigsCall {
78430	c := &InstanceGroupManagersListPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78431	c.project = project
78432	c.zone = zone
78433	c.instanceGroupManager = instanceGroupManager
78434	return c
78435}
78436
78437// Filter sets the optional parameter "filter": A filter expression that
78438// filters resources listed in the response. The expression must specify
78439// the field name, a comparison operator, and the value that you want to
78440// use for filtering. The value must be a string, a number, or a
78441// boolean. The comparison operator must be either `=`, `!=`, `>`, or
78442// `<`.
78443//
78444// For example, if you are filtering Compute Engine instances, you can
78445// exclude instances named `example-instance` by specifying `name !=
78446// example-instance`.
78447//
78448// You can also filter nested fields. For example, you could specify
78449// `scheduling.automaticRestart = false` to include instances only if
78450// they are not scheduled for automatic restarts. You can use filtering
78451// on nested fields to filter based on resource labels.
78452//
78453// To filter on multiple expressions, provide each separate expression
78454// within parentheses. For example: ``` (scheduling.automaticRestart =
78455// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
78456// is an `AND` expression. However, you can include `AND` and `OR`
78457// expressions explicitly. For example: ``` (cpuPlatform = "Intel
78458// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
78459// (scheduling.automaticRestart = true) ```
78460func (c *InstanceGroupManagersListPerInstanceConfigsCall) Filter(filter string) *InstanceGroupManagersListPerInstanceConfigsCall {
78461	c.urlParams_.Set("filter", filter)
78462	return c
78463}
78464
78465// MaxResults sets the optional parameter "maxResults": The maximum
78466// number of results per page that should be returned. If the number of
78467// available results is larger than `maxResults`, Compute Engine returns
78468// a `nextPageToken` that can be used to get the next page of results in
78469// subsequent list requests. Acceptable values are `0` to `500`,
78470// inclusive. (Default: `500`)
78471func (c *InstanceGroupManagersListPerInstanceConfigsCall) MaxResults(maxResults int64) *InstanceGroupManagersListPerInstanceConfigsCall {
78472	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
78473	return c
78474}
78475
78476// OrderBy sets the optional parameter "orderBy": Sorts list results by
78477// a certain order. By default, results are returned in alphanumerical
78478// order based on the resource name.
78479//
78480// You can also sort results in descending order based on the creation
78481// timestamp using `orderBy="creationTimestamp desc". This sorts
78482// results based on the `creationTimestamp` field in reverse
78483// chronological order (newest result first). Use this to sort resources
78484// like operations so that the newest operation is returned
78485// first.
78486//
78487// Currently, only sorting by `name` or `creationTimestamp desc` is
78488// supported.
78489func (c *InstanceGroupManagersListPerInstanceConfigsCall) OrderBy(orderBy string) *InstanceGroupManagersListPerInstanceConfigsCall {
78490	c.urlParams_.Set("orderBy", orderBy)
78491	return c
78492}
78493
78494// PageToken sets the optional parameter "pageToken": Specifies a page
78495// token to use. Set `pageToken` to the `nextPageToken` returned by a
78496// previous list request to get the next page of results.
78497func (c *InstanceGroupManagersListPerInstanceConfigsCall) PageToken(pageToken string) *InstanceGroupManagersListPerInstanceConfigsCall {
78498	c.urlParams_.Set("pageToken", pageToken)
78499	return c
78500}
78501
78502// ReturnPartialSuccess sets the optional parameter
78503// "returnPartialSuccess": Opt-in for partial success behavior which
78504// provides partial results in case of failure. The default value is
78505// false.
78506func (c *InstanceGroupManagersListPerInstanceConfigsCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupManagersListPerInstanceConfigsCall {
78507	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
78508	return c
78509}
78510
78511// Fields allows partial responses to be retrieved. See
78512// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78513// for more information.
78514func (c *InstanceGroupManagersListPerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListPerInstanceConfigsCall {
78515	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78516	return c
78517}
78518
78519// Context sets the context to be used in this call's Do method. Any
78520// pending HTTP request will be aborted if the provided context is
78521// canceled.
78522func (c *InstanceGroupManagersListPerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersListPerInstanceConfigsCall {
78523	c.ctx_ = ctx
78524	return c
78525}
78526
78527// Header returns an http.Header that can be modified by the caller to
78528// add HTTP headers to the request.
78529func (c *InstanceGroupManagersListPerInstanceConfigsCall) Header() http.Header {
78530	if c.header_ == nil {
78531		c.header_ = make(http.Header)
78532	}
78533	return c.header_
78534}
78535
78536func (c *InstanceGroupManagersListPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
78537	reqHeaders := make(http.Header)
78538	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
78539	for k, v := range c.header_ {
78540		reqHeaders[k] = v
78541	}
78542	reqHeaders.Set("User-Agent", c.s.userAgent())
78543	var body io.Reader = nil
78544	c.urlParams_.Set("alt", alt)
78545	c.urlParams_.Set("prettyPrint", "false")
78546	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs")
78547	urls += "?" + c.urlParams_.Encode()
78548	req, err := http.NewRequest("POST", urls, body)
78549	if err != nil {
78550		return nil, err
78551	}
78552	req.Header = reqHeaders
78553	googleapi.Expand(req.URL, map[string]string{
78554		"project":              c.project,
78555		"zone":                 c.zone,
78556		"instanceGroupManager": c.instanceGroupManager,
78557	})
78558	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78559}
78560
78561// Do executes the "compute.instanceGroupManagers.listPerInstanceConfigs" call.
78562// Exactly one of *InstanceGroupManagersListPerInstanceConfigsResp or
78563// error will be non-nil. Any non-2xx status code is an error. Response
78564// headers are in either
78565// *InstanceGroupManagersListPerInstanceConfigsResp.ServerResponse.Header
78566//  or (if a response was returned at all) in
78567// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
78568// whether the returned error was because http.StatusNotModified was
78569// returned.
78570func (c *InstanceGroupManagersListPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListPerInstanceConfigsResp, error) {
78571	gensupport.SetOptions(c.urlParams_, opts...)
78572	res, err := c.doRequest("json")
78573	if res != nil && res.StatusCode == http.StatusNotModified {
78574		if res.Body != nil {
78575			res.Body.Close()
78576		}
78577		return nil, &googleapi.Error{
78578			Code:   res.StatusCode,
78579			Header: res.Header,
78580		}
78581	}
78582	if err != nil {
78583		return nil, err
78584	}
78585	defer googleapi.CloseBody(res)
78586	if err := googleapi.CheckResponse(res); err != nil {
78587		return nil, err
78588	}
78589	ret := &InstanceGroupManagersListPerInstanceConfigsResp{
78590		ServerResponse: googleapi.ServerResponse{
78591			Header:         res.Header,
78592			HTTPStatusCode: res.StatusCode,
78593		},
78594	}
78595	target := &ret
78596	if err := gensupport.DecodeResponse(target, res); err != nil {
78597		return nil, err
78598	}
78599	return ret, nil
78600	// {
78601	//   "description": "Lists all of the per-instance configs defined for the managed instance group. The orderBy query parameter is not supported.",
78602	//   "httpMethod": "POST",
78603	//   "id": "compute.instanceGroupManagers.listPerInstanceConfigs",
78604	//   "parameterOrder": [
78605	//     "project",
78606	//     "zone",
78607	//     "instanceGroupManager"
78608	//   ],
78609	//   "parameters": {
78610	//     "filter": {
78611	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
78612	//       "location": "query",
78613	//       "type": "string"
78614	//     },
78615	//     "instanceGroupManager": {
78616	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
78617	//       "location": "path",
78618	//       "required": true,
78619	//       "type": "string"
78620	//     },
78621	//     "maxResults": {
78622	//       "default": "500",
78623	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
78624	//       "format": "uint32",
78625	//       "location": "query",
78626	//       "minimum": "0",
78627	//       "type": "integer"
78628	//     },
78629	//     "orderBy": {
78630	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
78631	//       "location": "query",
78632	//       "type": "string"
78633	//     },
78634	//     "pageToken": {
78635	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
78636	//       "location": "query",
78637	//       "type": "string"
78638	//     },
78639	//     "project": {
78640	//       "description": "Project ID for this request.",
78641	//       "location": "path",
78642	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78643	//       "required": true,
78644	//       "type": "string"
78645	//     },
78646	//     "returnPartialSuccess": {
78647	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
78648	//       "location": "query",
78649	//       "type": "boolean"
78650	//     },
78651	//     "zone": {
78652	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
78653	//       "location": "path",
78654	//       "required": true,
78655	//       "type": "string"
78656	//     }
78657	//   },
78658	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs",
78659	//   "response": {
78660	//     "$ref": "InstanceGroupManagersListPerInstanceConfigsResp"
78661	//   },
78662	//   "scopes": [
78663	//     "https://www.googleapis.com/auth/cloud-platform",
78664	//     "https://www.googleapis.com/auth/compute",
78665	//     "https://www.googleapis.com/auth/compute.readonly"
78666	//   ]
78667	// }
78668
78669}
78670
78671// Pages invokes f for each page of results.
78672// A non-nil error returned from f will halt the iteration.
78673// The provided context supersedes any context provided to the Context method.
78674func (c *InstanceGroupManagersListPerInstanceConfigsCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListPerInstanceConfigsResp) error) error {
78675	c.ctx_ = ctx
78676	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
78677	for {
78678		x, err := c.Do()
78679		if err != nil {
78680			return err
78681		}
78682		if err := f(x); err != nil {
78683			return err
78684		}
78685		if x.NextPageToken == "" {
78686			return nil
78687		}
78688		c.PageToken(x.NextPageToken)
78689	}
78690}
78691
78692// method id "compute.instanceGroupManagers.patch":
78693
78694type InstanceGroupManagersPatchCall struct {
78695	s                    *Service
78696	project              string
78697	zone                 string
78698	instanceGroupManager string
78699	instancegroupmanager *InstanceGroupManager
78700	urlParams_           gensupport.URLParams
78701	ctx_                 context.Context
78702	header_              http.Header
78703}
78704
78705// Patch: Updates a managed instance group using the information that
78706// you specify in the request. This operation is marked as DONE when the
78707// group is patched even if the instances in the group are still in the
78708// process of being patched. You must separately verify the status of
78709// the individual instances with the listManagedInstances method. This
78710// method supports PATCH semantics and uses the JSON merge patch format
78711// and processing rules.
78712//
78713// - instanceGroupManager: The name of the instance group manager.
78714// - project: Project ID for this request.
78715// - zone: The name of the zone where you want to create the managed
78716//   instance group.
78717func (r *InstanceGroupManagersService) Patch(project string, zone string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *InstanceGroupManagersPatchCall {
78718	c := &InstanceGroupManagersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78719	c.project = project
78720	c.zone = zone
78721	c.instanceGroupManager = instanceGroupManager
78722	c.instancegroupmanager = instancegroupmanager
78723	return c
78724}
78725
78726// RequestId sets the optional parameter "requestId": An optional
78727// request ID to identify requests. Specify a unique request ID so that
78728// if you must retry your request, the server will know to ignore the
78729// request if it has already been completed.
78730//
78731// For example, consider a situation where you make an initial request
78732// and the request times out. If you make the request again with the
78733// same request ID, the server can check if original operation with the
78734// same request ID was received, and if so, will ignore the second
78735// request. This prevents clients from accidentally creating duplicate
78736// commitments.
78737//
78738// The request ID must be a valid UUID with the exception that zero UUID
78739// is not supported (00000000-0000-0000-0000-000000000000).
78740func (c *InstanceGroupManagersPatchCall) RequestId(requestId string) *InstanceGroupManagersPatchCall {
78741	c.urlParams_.Set("requestId", requestId)
78742	return c
78743}
78744
78745// Fields allows partial responses to be retrieved. See
78746// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78747// for more information.
78748func (c *InstanceGroupManagersPatchCall) Fields(s ...googleapi.Field) *InstanceGroupManagersPatchCall {
78749	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78750	return c
78751}
78752
78753// Context sets the context to be used in this call's Do method. Any
78754// pending HTTP request will be aborted if the provided context is
78755// canceled.
78756func (c *InstanceGroupManagersPatchCall) Context(ctx context.Context) *InstanceGroupManagersPatchCall {
78757	c.ctx_ = ctx
78758	return c
78759}
78760
78761// Header returns an http.Header that can be modified by the caller to
78762// add HTTP headers to the request.
78763func (c *InstanceGroupManagersPatchCall) Header() http.Header {
78764	if c.header_ == nil {
78765		c.header_ = make(http.Header)
78766	}
78767	return c.header_
78768}
78769
78770func (c *InstanceGroupManagersPatchCall) doRequest(alt string) (*http.Response, error) {
78771	reqHeaders := make(http.Header)
78772	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
78773	for k, v := range c.header_ {
78774		reqHeaders[k] = v
78775	}
78776	reqHeaders.Set("User-Agent", c.s.userAgent())
78777	var body io.Reader = nil
78778	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
78779	if err != nil {
78780		return nil, err
78781	}
78782	reqHeaders.Set("Content-Type", "application/json")
78783	c.urlParams_.Set("alt", alt)
78784	c.urlParams_.Set("prettyPrint", "false")
78785	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
78786	urls += "?" + c.urlParams_.Encode()
78787	req, err := http.NewRequest("PATCH", urls, body)
78788	if err != nil {
78789		return nil, err
78790	}
78791	req.Header = reqHeaders
78792	googleapi.Expand(req.URL, map[string]string{
78793		"project":              c.project,
78794		"zone":                 c.zone,
78795		"instanceGroupManager": c.instanceGroupManager,
78796	})
78797	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78798}
78799
78800// Do executes the "compute.instanceGroupManagers.patch" call.
78801// Exactly one of *Operation or error will be non-nil. Any non-2xx
78802// status code is an error. Response headers are in either
78803// *Operation.ServerResponse.Header or (if a response was returned at
78804// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78805// to check whether the returned error was because
78806// http.StatusNotModified was returned.
78807func (c *InstanceGroupManagersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78808	gensupport.SetOptions(c.urlParams_, opts...)
78809	res, err := c.doRequest("json")
78810	if res != nil && res.StatusCode == http.StatusNotModified {
78811		if res.Body != nil {
78812			res.Body.Close()
78813		}
78814		return nil, &googleapi.Error{
78815			Code:   res.StatusCode,
78816			Header: res.Header,
78817		}
78818	}
78819	if err != nil {
78820		return nil, err
78821	}
78822	defer googleapi.CloseBody(res)
78823	if err := googleapi.CheckResponse(res); err != nil {
78824		return nil, err
78825	}
78826	ret := &Operation{
78827		ServerResponse: googleapi.ServerResponse{
78828			Header:         res.Header,
78829			HTTPStatusCode: res.StatusCode,
78830		},
78831	}
78832	target := &ret
78833	if err := gensupport.DecodeResponse(target, res); err != nil {
78834		return nil, err
78835	}
78836	return ret, nil
78837	// {
78838	//   "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.",
78839	//   "httpMethod": "PATCH",
78840	//   "id": "compute.instanceGroupManagers.patch",
78841	//   "parameterOrder": [
78842	//     "project",
78843	//     "zone",
78844	//     "instanceGroupManager"
78845	//   ],
78846	//   "parameters": {
78847	//     "instanceGroupManager": {
78848	//       "description": "The name of the instance group manager.",
78849	//       "location": "path",
78850	//       "required": true,
78851	//       "type": "string"
78852	//     },
78853	//     "project": {
78854	//       "description": "Project ID for this request.",
78855	//       "location": "path",
78856	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78857	//       "required": true,
78858	//       "type": "string"
78859	//     },
78860	//     "requestId": {
78861	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
78862	//       "location": "query",
78863	//       "type": "string"
78864	//     },
78865	//     "zone": {
78866	//       "description": "The name of the zone where you want to create the managed instance group.",
78867	//       "location": "path",
78868	//       "required": true,
78869	//       "type": "string"
78870	//     }
78871	//   },
78872	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
78873	//   "request": {
78874	//     "$ref": "InstanceGroupManager"
78875	//   },
78876	//   "response": {
78877	//     "$ref": "Operation"
78878	//   },
78879	//   "scopes": [
78880	//     "https://www.googleapis.com/auth/cloud-platform",
78881	//     "https://www.googleapis.com/auth/compute"
78882	//   ]
78883	// }
78884
78885}
78886
78887// method id "compute.instanceGroupManagers.patchPerInstanceConfigs":
78888
78889type InstanceGroupManagersPatchPerInstanceConfigsCall struct {
78890	s                                               *Service
78891	project                                         string
78892	zone                                            string
78893	instanceGroupManager                            string
78894	instancegroupmanagerspatchperinstanceconfigsreq *InstanceGroupManagersPatchPerInstanceConfigsReq
78895	urlParams_                                      gensupport.URLParams
78896	ctx_                                            context.Context
78897	header_                                         http.Header
78898}
78899
78900// PatchPerInstanceConfigs: Inserts or patches per-instance configs for
78901// the managed instance group. perInstanceConfig.name serves as a key
78902// used to distinguish whether to perform insert or patch.
78903//
78904// - instanceGroupManager: The name of the managed instance group. It
78905//   should conform to RFC1035.
78906// - project: Project ID for this request.
78907// - zone: The name of the zone where the managed instance group is
78908//   located. It should conform to RFC1035.
78909func (r *InstanceGroupManagersService) PatchPerInstanceConfigs(project string, zone string, instanceGroupManager string, instancegroupmanagerspatchperinstanceconfigsreq *InstanceGroupManagersPatchPerInstanceConfigsReq) *InstanceGroupManagersPatchPerInstanceConfigsCall {
78910	c := &InstanceGroupManagersPatchPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78911	c.project = project
78912	c.zone = zone
78913	c.instanceGroupManager = instanceGroupManager
78914	c.instancegroupmanagerspatchperinstanceconfigsreq = instancegroupmanagerspatchperinstanceconfigsreq
78915	return c
78916}
78917
78918// RequestId sets the optional parameter "requestId": An optional
78919// request ID to identify requests. Specify a unique request ID so that
78920// if you must retry your request, the server will know to ignore the
78921// request if it has already been completed.
78922//
78923// For example, consider a situation where you make an initial request
78924// and the request times out. If you make the request again with the
78925// same request ID, the server can check if original operation with the
78926// same request ID was received, and if so, will ignore the second
78927// request. This prevents clients from accidentally creating duplicate
78928// commitments.
78929//
78930// The request ID must be a valid UUID with the exception that zero UUID
78931// is not supported (00000000-0000-0000-0000-000000000000).
78932func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) RequestId(requestId string) *InstanceGroupManagersPatchPerInstanceConfigsCall {
78933	c.urlParams_.Set("requestId", requestId)
78934	return c
78935}
78936
78937// Fields allows partial responses to be retrieved. See
78938// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78939// for more information.
78940func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersPatchPerInstanceConfigsCall {
78941	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78942	return c
78943}
78944
78945// Context sets the context to be used in this call's Do method. Any
78946// pending HTTP request will be aborted if the provided context is
78947// canceled.
78948func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersPatchPerInstanceConfigsCall {
78949	c.ctx_ = ctx
78950	return c
78951}
78952
78953// Header returns an http.Header that can be modified by the caller to
78954// add HTTP headers to the request.
78955func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Header() http.Header {
78956	if c.header_ == nil {
78957		c.header_ = make(http.Header)
78958	}
78959	return c.header_
78960}
78961
78962func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
78963	reqHeaders := make(http.Header)
78964	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
78965	for k, v := range c.header_ {
78966		reqHeaders[k] = v
78967	}
78968	reqHeaders.Set("User-Agent", c.s.userAgent())
78969	var body io.Reader = nil
78970	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerspatchperinstanceconfigsreq)
78971	if err != nil {
78972		return nil, err
78973	}
78974	reqHeaders.Set("Content-Type", "application/json")
78975	c.urlParams_.Set("alt", alt)
78976	c.urlParams_.Set("prettyPrint", "false")
78977	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs")
78978	urls += "?" + c.urlParams_.Encode()
78979	req, err := http.NewRequest("POST", urls, body)
78980	if err != nil {
78981		return nil, err
78982	}
78983	req.Header = reqHeaders
78984	googleapi.Expand(req.URL, map[string]string{
78985		"project":              c.project,
78986		"zone":                 c.zone,
78987		"instanceGroupManager": c.instanceGroupManager,
78988	})
78989	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78990}
78991
78992// Do executes the "compute.instanceGroupManagers.patchPerInstanceConfigs" call.
78993// Exactly one of *Operation or error will be non-nil. Any non-2xx
78994// status code is an error. Response headers are in either
78995// *Operation.ServerResponse.Header or (if a response was returned at
78996// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78997// to check whether the returned error was because
78998// http.StatusNotModified was returned.
78999func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79000	gensupport.SetOptions(c.urlParams_, opts...)
79001	res, err := c.doRequest("json")
79002	if res != nil && res.StatusCode == http.StatusNotModified {
79003		if res.Body != nil {
79004			res.Body.Close()
79005		}
79006		return nil, &googleapi.Error{
79007			Code:   res.StatusCode,
79008			Header: res.Header,
79009		}
79010	}
79011	if err != nil {
79012		return nil, err
79013	}
79014	defer googleapi.CloseBody(res)
79015	if err := googleapi.CheckResponse(res); err != nil {
79016		return nil, err
79017	}
79018	ret := &Operation{
79019		ServerResponse: googleapi.ServerResponse{
79020			Header:         res.Header,
79021			HTTPStatusCode: res.StatusCode,
79022		},
79023	}
79024	target := &ret
79025	if err := gensupport.DecodeResponse(target, res); err != nil {
79026		return nil, err
79027	}
79028	return ret, nil
79029	// {
79030	//   "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.",
79031	//   "httpMethod": "POST",
79032	//   "id": "compute.instanceGroupManagers.patchPerInstanceConfigs",
79033	//   "parameterOrder": [
79034	//     "project",
79035	//     "zone",
79036	//     "instanceGroupManager"
79037	//   ],
79038	//   "parameters": {
79039	//     "instanceGroupManager": {
79040	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
79041	//       "location": "path",
79042	//       "required": true,
79043	//       "type": "string"
79044	//     },
79045	//     "project": {
79046	//       "description": "Project ID for this request.",
79047	//       "location": "path",
79048	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79049	//       "required": true,
79050	//       "type": "string"
79051	//     },
79052	//     "requestId": {
79053	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
79054	//       "location": "query",
79055	//       "type": "string"
79056	//     },
79057	//     "zone": {
79058	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
79059	//       "location": "path",
79060	//       "required": true,
79061	//       "type": "string"
79062	//     }
79063	//   },
79064	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs",
79065	//   "request": {
79066	//     "$ref": "InstanceGroupManagersPatchPerInstanceConfigsReq"
79067	//   },
79068	//   "response": {
79069	//     "$ref": "Operation"
79070	//   },
79071	//   "scopes": [
79072	//     "https://www.googleapis.com/auth/cloud-platform",
79073	//     "https://www.googleapis.com/auth/compute"
79074	//   ]
79075	// }
79076
79077}
79078
79079// method id "compute.instanceGroupManagers.recreateInstances":
79080
79081type InstanceGroupManagersRecreateInstancesCall struct {
79082	s                                             *Service
79083	project                                       string
79084	zone                                          string
79085	instanceGroupManager                          string
79086	instancegroupmanagersrecreateinstancesrequest *InstanceGroupManagersRecreateInstancesRequest
79087	urlParams_                                    gensupport.URLParams
79088	ctx_                                          context.Context
79089	header_                                       http.Header
79090}
79091
79092// RecreateInstances: Flags the specified VM instances in the managed
79093// instance group to be immediately recreated. Each instance is
79094// recreated using the group's current configuration. This operation is
79095// marked as DONE when the flag is set even if the instances have not
79096// yet been recreated. You must separately verify the status of each
79097// instance by checking its currentAction field; for more information,
79098// see Checking the status of managed instances.
79099//
79100// If the group is part of a backend service that has enabled connection
79101// draining, it can take up to 60 seconds after the connection draining
79102// duration has elapsed before the VM instance is removed or
79103// deleted.
79104//
79105// You can specify a maximum of 1000 instances with this method per
79106// request.
79107//
79108// - instanceGroupManager: The name of the managed instance group.
79109// - project: Project ID for this request.
79110// - zone: The name of the zone where the managed instance group is
79111//   located.
79112func (r *InstanceGroupManagersService) RecreateInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersrecreateinstancesrequest *InstanceGroupManagersRecreateInstancesRequest) *InstanceGroupManagersRecreateInstancesCall {
79113	c := &InstanceGroupManagersRecreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79114	c.project = project
79115	c.zone = zone
79116	c.instanceGroupManager = instanceGroupManager
79117	c.instancegroupmanagersrecreateinstancesrequest = instancegroupmanagersrecreateinstancesrequest
79118	return c
79119}
79120
79121// RequestId sets the optional parameter "requestId": An optional
79122// request ID to identify requests. Specify a unique request ID so that
79123// if you must retry your request, the server will know to ignore the
79124// request if it has already been completed.
79125//
79126// For example, consider a situation where you make an initial request
79127// and the request times out. If you make the request again with the
79128// same request ID, the server can check if original operation with the
79129// same request ID was received, and if so, will ignore the second
79130// request. This prevents clients from accidentally creating duplicate
79131// commitments.
79132//
79133// The request ID must be a valid UUID with the exception that zero UUID
79134// is not supported (00000000-0000-0000-0000-000000000000).
79135func (c *InstanceGroupManagersRecreateInstancesCall) RequestId(requestId string) *InstanceGroupManagersRecreateInstancesCall {
79136	c.urlParams_.Set("requestId", requestId)
79137	return c
79138}
79139
79140// Fields allows partial responses to be retrieved. See
79141// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79142// for more information.
79143func (c *InstanceGroupManagersRecreateInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersRecreateInstancesCall {
79144	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79145	return c
79146}
79147
79148// Context sets the context to be used in this call's Do method. Any
79149// pending HTTP request will be aborted if the provided context is
79150// canceled.
79151func (c *InstanceGroupManagersRecreateInstancesCall) Context(ctx context.Context) *InstanceGroupManagersRecreateInstancesCall {
79152	c.ctx_ = ctx
79153	return c
79154}
79155
79156// Header returns an http.Header that can be modified by the caller to
79157// add HTTP headers to the request.
79158func (c *InstanceGroupManagersRecreateInstancesCall) Header() http.Header {
79159	if c.header_ == nil {
79160		c.header_ = make(http.Header)
79161	}
79162	return c.header_
79163}
79164
79165func (c *InstanceGroupManagersRecreateInstancesCall) doRequest(alt string) (*http.Response, error) {
79166	reqHeaders := make(http.Header)
79167	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
79168	for k, v := range c.header_ {
79169		reqHeaders[k] = v
79170	}
79171	reqHeaders.Set("User-Agent", c.s.userAgent())
79172	var body io.Reader = nil
79173	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersrecreateinstancesrequest)
79174	if err != nil {
79175		return nil, err
79176	}
79177	reqHeaders.Set("Content-Type", "application/json")
79178	c.urlParams_.Set("alt", alt)
79179	c.urlParams_.Set("prettyPrint", "false")
79180	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances")
79181	urls += "?" + c.urlParams_.Encode()
79182	req, err := http.NewRequest("POST", urls, body)
79183	if err != nil {
79184		return nil, err
79185	}
79186	req.Header = reqHeaders
79187	googleapi.Expand(req.URL, map[string]string{
79188		"project":              c.project,
79189		"zone":                 c.zone,
79190		"instanceGroupManager": c.instanceGroupManager,
79191	})
79192	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79193}
79194
79195// Do executes the "compute.instanceGroupManagers.recreateInstances" call.
79196// Exactly one of *Operation or error will be non-nil. Any non-2xx
79197// status code is an error. Response headers are in either
79198// *Operation.ServerResponse.Header or (if a response was returned at
79199// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79200// to check whether the returned error was because
79201// http.StatusNotModified was returned.
79202func (c *InstanceGroupManagersRecreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79203	gensupport.SetOptions(c.urlParams_, opts...)
79204	res, err := c.doRequest("json")
79205	if res != nil && res.StatusCode == http.StatusNotModified {
79206		if res.Body != nil {
79207			res.Body.Close()
79208		}
79209		return nil, &googleapi.Error{
79210			Code:   res.StatusCode,
79211			Header: res.Header,
79212		}
79213	}
79214	if err != nil {
79215		return nil, err
79216	}
79217	defer googleapi.CloseBody(res)
79218	if err := googleapi.CheckResponse(res); err != nil {
79219		return nil, err
79220	}
79221	ret := &Operation{
79222		ServerResponse: googleapi.ServerResponse{
79223			Header:         res.Header,
79224			HTTPStatusCode: res.StatusCode,
79225		},
79226	}
79227	target := &ret
79228	if err := gensupport.DecodeResponse(target, res); err != nil {
79229		return nil, err
79230	}
79231	return ret, nil
79232	// {
79233	//   "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.",
79234	//   "httpMethod": "POST",
79235	//   "id": "compute.instanceGroupManagers.recreateInstances",
79236	//   "parameterOrder": [
79237	//     "project",
79238	//     "zone",
79239	//     "instanceGroupManager"
79240	//   ],
79241	//   "parameters": {
79242	//     "instanceGroupManager": {
79243	//       "description": "The name of the managed instance group.",
79244	//       "location": "path",
79245	//       "required": true,
79246	//       "type": "string"
79247	//     },
79248	//     "project": {
79249	//       "description": "Project ID for this request.",
79250	//       "location": "path",
79251	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79252	//       "required": true,
79253	//       "type": "string"
79254	//     },
79255	//     "requestId": {
79256	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
79257	//       "location": "query",
79258	//       "type": "string"
79259	//     },
79260	//     "zone": {
79261	//       "description": "The name of the zone where the managed instance group is located.",
79262	//       "location": "path",
79263	//       "required": true,
79264	//       "type": "string"
79265	//     }
79266	//   },
79267	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances",
79268	//   "request": {
79269	//     "$ref": "InstanceGroupManagersRecreateInstancesRequest"
79270	//   },
79271	//   "response": {
79272	//     "$ref": "Operation"
79273	//   },
79274	//   "scopes": [
79275	//     "https://www.googleapis.com/auth/cloud-platform",
79276	//     "https://www.googleapis.com/auth/compute"
79277	//   ]
79278	// }
79279
79280}
79281
79282// method id "compute.instanceGroupManagers.resize":
79283
79284type InstanceGroupManagersResizeCall struct {
79285	s                    *Service
79286	project              string
79287	zone                 string
79288	instanceGroupManager string
79289	urlParams_           gensupport.URLParams
79290	ctx_                 context.Context
79291	header_              http.Header
79292}
79293
79294// Resize: Resizes the managed instance group. If you increase the size,
79295// the group creates new instances using the current instance template.
79296// If you decrease the size, the group deletes instances. The resize
79297// operation is marked DONE when the resize actions are scheduled even
79298// if the group has not yet added or deleted any instances. You must
79299// separately verify the status of the creating or deleting actions with
79300// the listmanagedinstances method.
79301//
79302// When resizing down, the instance group arbitrarily chooses the order
79303// in which VMs are deleted. The group takes into account some VM
79304// attributes when making the selection including:
79305//
79306// + The status of the VM instance. + The health of the VM instance. +
79307// The instance template version the VM is based on. + For regional
79308// managed instance groups, the location of the VM instance.
79309//
79310// This list is subject to change.
79311//
79312// If the group is part of a backend service that has enabled connection
79313// draining, it can take up to 60 seconds after the connection draining
79314// duration has elapsed before the VM instance is removed or deleted.
79315//
79316// - instanceGroupManager: The name of the managed instance group.
79317// - project: Project ID for this request.
79318// - size: The number of running instances that the managed instance
79319//   group should maintain at any given time. The group automatically
79320//   adds or removes instances to maintain the number of instances
79321//   specified by this parameter.
79322// - zone: The name of the zone where the managed instance group is
79323//   located.
79324func (r *InstanceGroupManagersService) Resize(project string, zone string, instanceGroupManager string, size int64) *InstanceGroupManagersResizeCall {
79325	c := &InstanceGroupManagersResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79326	c.project = project
79327	c.zone = zone
79328	c.instanceGroupManager = instanceGroupManager
79329	c.urlParams_.Set("size", fmt.Sprint(size))
79330	return c
79331}
79332
79333// RequestId sets the optional parameter "requestId": An optional
79334// request ID to identify requests. Specify a unique request ID so that
79335// if you must retry your request, the server will know to ignore the
79336// request if it has already been completed.
79337//
79338// For example, consider a situation where you make an initial request
79339// and the request times out. If you make the request again with the
79340// same request ID, the server can check if original operation with the
79341// same request ID was received, and if so, will ignore the second
79342// request. This prevents clients from accidentally creating duplicate
79343// commitments.
79344//
79345// The request ID must be a valid UUID with the exception that zero UUID
79346// is not supported (00000000-0000-0000-0000-000000000000).
79347func (c *InstanceGroupManagersResizeCall) RequestId(requestId string) *InstanceGroupManagersResizeCall {
79348	c.urlParams_.Set("requestId", requestId)
79349	return c
79350}
79351
79352// Fields allows partial responses to be retrieved. See
79353// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79354// for more information.
79355func (c *InstanceGroupManagersResizeCall) Fields(s ...googleapi.Field) *InstanceGroupManagersResizeCall {
79356	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79357	return c
79358}
79359
79360// Context sets the context to be used in this call's Do method. Any
79361// pending HTTP request will be aborted if the provided context is
79362// canceled.
79363func (c *InstanceGroupManagersResizeCall) Context(ctx context.Context) *InstanceGroupManagersResizeCall {
79364	c.ctx_ = ctx
79365	return c
79366}
79367
79368// Header returns an http.Header that can be modified by the caller to
79369// add HTTP headers to the request.
79370func (c *InstanceGroupManagersResizeCall) Header() http.Header {
79371	if c.header_ == nil {
79372		c.header_ = make(http.Header)
79373	}
79374	return c.header_
79375}
79376
79377func (c *InstanceGroupManagersResizeCall) doRequest(alt string) (*http.Response, error) {
79378	reqHeaders := make(http.Header)
79379	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
79380	for k, v := range c.header_ {
79381		reqHeaders[k] = v
79382	}
79383	reqHeaders.Set("User-Agent", c.s.userAgent())
79384	var body io.Reader = nil
79385	c.urlParams_.Set("alt", alt)
79386	c.urlParams_.Set("prettyPrint", "false")
79387	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize")
79388	urls += "?" + c.urlParams_.Encode()
79389	req, err := http.NewRequest("POST", urls, body)
79390	if err != nil {
79391		return nil, err
79392	}
79393	req.Header = reqHeaders
79394	googleapi.Expand(req.URL, map[string]string{
79395		"project":              c.project,
79396		"zone":                 c.zone,
79397		"instanceGroupManager": c.instanceGroupManager,
79398	})
79399	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79400}
79401
79402// Do executes the "compute.instanceGroupManagers.resize" call.
79403// Exactly one of *Operation or error will be non-nil. Any non-2xx
79404// status code is an error. Response headers are in either
79405// *Operation.ServerResponse.Header or (if a response was returned at
79406// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79407// to check whether the returned error was because
79408// http.StatusNotModified was returned.
79409func (c *InstanceGroupManagersResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79410	gensupport.SetOptions(c.urlParams_, opts...)
79411	res, err := c.doRequest("json")
79412	if res != nil && res.StatusCode == http.StatusNotModified {
79413		if res.Body != nil {
79414			res.Body.Close()
79415		}
79416		return nil, &googleapi.Error{
79417			Code:   res.StatusCode,
79418			Header: res.Header,
79419		}
79420	}
79421	if err != nil {
79422		return nil, err
79423	}
79424	defer googleapi.CloseBody(res)
79425	if err := googleapi.CheckResponse(res); err != nil {
79426		return nil, err
79427	}
79428	ret := &Operation{
79429		ServerResponse: googleapi.ServerResponse{
79430			Header:         res.Header,
79431			HTTPStatusCode: res.StatusCode,
79432		},
79433	}
79434	target := &ret
79435	if err := gensupport.DecodeResponse(target, res); err != nil {
79436		return nil, err
79437	}
79438	return ret, nil
79439	// {
79440	//   "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.",
79441	//   "httpMethod": "POST",
79442	//   "id": "compute.instanceGroupManagers.resize",
79443	//   "parameterOrder": [
79444	//     "project",
79445	//     "zone",
79446	//     "instanceGroupManager",
79447	//     "size"
79448	//   ],
79449	//   "parameters": {
79450	//     "instanceGroupManager": {
79451	//       "description": "The name of the managed instance group.",
79452	//       "location": "path",
79453	//       "required": true,
79454	//       "type": "string"
79455	//     },
79456	//     "project": {
79457	//       "description": "Project ID for this request.",
79458	//       "location": "path",
79459	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79460	//       "required": true,
79461	//       "type": "string"
79462	//     },
79463	//     "requestId": {
79464	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
79465	//       "location": "query",
79466	//       "type": "string"
79467	//     },
79468	//     "size": {
79469	//       "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.",
79470	//       "format": "int32",
79471	//       "location": "query",
79472	//       "required": true,
79473	//       "type": "integer"
79474	//     },
79475	//     "zone": {
79476	//       "description": "The name of the zone where the managed instance group is located.",
79477	//       "location": "path",
79478	//       "required": true,
79479	//       "type": "string"
79480	//     }
79481	//   },
79482	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize",
79483	//   "response": {
79484	//     "$ref": "Operation"
79485	//   },
79486	//   "scopes": [
79487	//     "https://www.googleapis.com/auth/cloud-platform",
79488	//     "https://www.googleapis.com/auth/compute"
79489	//   ]
79490	// }
79491
79492}
79493
79494// method id "compute.instanceGroupManagers.setInstanceTemplate":
79495
79496type InstanceGroupManagersSetInstanceTemplateCall struct {
79497	s                                               *Service
79498	project                                         string
79499	zone                                            string
79500	instanceGroupManager                            string
79501	instancegroupmanagerssetinstancetemplaterequest *InstanceGroupManagersSetInstanceTemplateRequest
79502	urlParams_                                      gensupport.URLParams
79503	ctx_                                            context.Context
79504	header_                                         http.Header
79505}
79506
79507// SetInstanceTemplate: Specifies the instance template to use when
79508// creating new instances in this group. The templates for existing
79509// instances in the group do not change unless you run
79510// recreateInstances, run applyUpdatesToInstances, or set the group's
79511// updatePolicy.type to PROACTIVE.
79512//
79513// - instanceGroupManager: The name of the managed instance group.
79514// - project: Project ID for this request.
79515// - zone: The name of the zone where the managed instance group is
79516//   located.
79517func (r *InstanceGroupManagersService) SetInstanceTemplate(project string, zone string, instanceGroupManager string, instancegroupmanagerssetinstancetemplaterequest *InstanceGroupManagersSetInstanceTemplateRequest) *InstanceGroupManagersSetInstanceTemplateCall {
79518	c := &InstanceGroupManagersSetInstanceTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79519	c.project = project
79520	c.zone = zone
79521	c.instanceGroupManager = instanceGroupManager
79522	c.instancegroupmanagerssetinstancetemplaterequest = instancegroupmanagerssetinstancetemplaterequest
79523	return c
79524}
79525
79526// RequestId sets the optional parameter "requestId": An optional
79527// request ID to identify requests. Specify a unique request ID so that
79528// if you must retry your request, the server will know to ignore the
79529// request if it has already been completed.
79530//
79531// For example, consider a situation where you make an initial request
79532// and the request times out. If you make the request again with the
79533// same request ID, the server can check if original operation with the
79534// same request ID was received, and if so, will ignore the second
79535// request. This prevents clients from accidentally creating duplicate
79536// commitments.
79537//
79538// The request ID must be a valid UUID with the exception that zero UUID
79539// is not supported (00000000-0000-0000-0000-000000000000).
79540func (c *InstanceGroupManagersSetInstanceTemplateCall) RequestId(requestId string) *InstanceGroupManagersSetInstanceTemplateCall {
79541	c.urlParams_.Set("requestId", requestId)
79542	return c
79543}
79544
79545// Fields allows partial responses to be retrieved. See
79546// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79547// for more information.
79548func (c *InstanceGroupManagersSetInstanceTemplateCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetInstanceTemplateCall {
79549	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79550	return c
79551}
79552
79553// Context sets the context to be used in this call's Do method. Any
79554// pending HTTP request will be aborted if the provided context is
79555// canceled.
79556func (c *InstanceGroupManagersSetInstanceTemplateCall) Context(ctx context.Context) *InstanceGroupManagersSetInstanceTemplateCall {
79557	c.ctx_ = ctx
79558	return c
79559}
79560
79561// Header returns an http.Header that can be modified by the caller to
79562// add HTTP headers to the request.
79563func (c *InstanceGroupManagersSetInstanceTemplateCall) Header() http.Header {
79564	if c.header_ == nil {
79565		c.header_ = make(http.Header)
79566	}
79567	return c.header_
79568}
79569
79570func (c *InstanceGroupManagersSetInstanceTemplateCall) doRequest(alt string) (*http.Response, error) {
79571	reqHeaders := make(http.Header)
79572	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
79573	for k, v := range c.header_ {
79574		reqHeaders[k] = v
79575	}
79576	reqHeaders.Set("User-Agent", c.s.userAgent())
79577	var body io.Reader = nil
79578	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerssetinstancetemplaterequest)
79579	if err != nil {
79580		return nil, err
79581	}
79582	reqHeaders.Set("Content-Type", "application/json")
79583	c.urlParams_.Set("alt", alt)
79584	c.urlParams_.Set("prettyPrint", "false")
79585	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate")
79586	urls += "?" + c.urlParams_.Encode()
79587	req, err := http.NewRequest("POST", urls, body)
79588	if err != nil {
79589		return nil, err
79590	}
79591	req.Header = reqHeaders
79592	googleapi.Expand(req.URL, map[string]string{
79593		"project":              c.project,
79594		"zone":                 c.zone,
79595		"instanceGroupManager": c.instanceGroupManager,
79596	})
79597	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79598}
79599
79600// Do executes the "compute.instanceGroupManagers.setInstanceTemplate" call.
79601// Exactly one of *Operation or error will be non-nil. Any non-2xx
79602// status code is an error. Response headers are in either
79603// *Operation.ServerResponse.Header or (if a response was returned at
79604// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79605// to check whether the returned error was because
79606// http.StatusNotModified was returned.
79607func (c *InstanceGroupManagersSetInstanceTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79608	gensupport.SetOptions(c.urlParams_, opts...)
79609	res, err := c.doRequest("json")
79610	if res != nil && res.StatusCode == http.StatusNotModified {
79611		if res.Body != nil {
79612			res.Body.Close()
79613		}
79614		return nil, &googleapi.Error{
79615			Code:   res.StatusCode,
79616			Header: res.Header,
79617		}
79618	}
79619	if err != nil {
79620		return nil, err
79621	}
79622	defer googleapi.CloseBody(res)
79623	if err := googleapi.CheckResponse(res); err != nil {
79624		return nil, err
79625	}
79626	ret := &Operation{
79627		ServerResponse: googleapi.ServerResponse{
79628			Header:         res.Header,
79629			HTTPStatusCode: res.StatusCode,
79630		},
79631	}
79632	target := &ret
79633	if err := gensupport.DecodeResponse(target, res); err != nil {
79634		return nil, err
79635	}
79636	return ret, nil
79637	// {
79638	//   "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.",
79639	//   "httpMethod": "POST",
79640	//   "id": "compute.instanceGroupManagers.setInstanceTemplate",
79641	//   "parameterOrder": [
79642	//     "project",
79643	//     "zone",
79644	//     "instanceGroupManager"
79645	//   ],
79646	//   "parameters": {
79647	//     "instanceGroupManager": {
79648	//       "description": "The name of the managed instance group.",
79649	//       "location": "path",
79650	//       "required": true,
79651	//       "type": "string"
79652	//     },
79653	//     "project": {
79654	//       "description": "Project ID for this request.",
79655	//       "location": "path",
79656	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79657	//       "required": true,
79658	//       "type": "string"
79659	//     },
79660	//     "requestId": {
79661	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
79662	//       "location": "query",
79663	//       "type": "string"
79664	//     },
79665	//     "zone": {
79666	//       "description": "The name of the zone where the managed instance group is located.",
79667	//       "location": "path",
79668	//       "required": true,
79669	//       "type": "string"
79670	//     }
79671	//   },
79672	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate",
79673	//   "request": {
79674	//     "$ref": "InstanceGroupManagersSetInstanceTemplateRequest"
79675	//   },
79676	//   "response": {
79677	//     "$ref": "Operation"
79678	//   },
79679	//   "scopes": [
79680	//     "https://www.googleapis.com/auth/cloud-platform",
79681	//     "https://www.googleapis.com/auth/compute"
79682	//   ]
79683	// }
79684
79685}
79686
79687// method id "compute.instanceGroupManagers.setTargetPools":
79688
79689type InstanceGroupManagersSetTargetPoolsCall struct {
79690	s                                          *Service
79691	project                                    string
79692	zone                                       string
79693	instanceGroupManager                       string
79694	instancegroupmanagerssettargetpoolsrequest *InstanceGroupManagersSetTargetPoolsRequest
79695	urlParams_                                 gensupport.URLParams
79696	ctx_                                       context.Context
79697	header_                                    http.Header
79698}
79699
79700// SetTargetPools: Modifies the target pools to which all instances in
79701// this managed instance group are assigned. The target pools
79702// automatically apply to all of the instances in the managed instance
79703// group. This operation is marked DONE when you make the request even
79704// if the instances have not yet been added to their target pools. The
79705// change might take some time to apply to all of the instances in the
79706// group depending on the size of the group.
79707//
79708// - instanceGroupManager: The name of the managed instance group.
79709// - project: Project ID for this request.
79710// - zone: The name of the zone where the managed instance group is
79711//   located.
79712func (r *InstanceGroupManagersService) SetTargetPools(project string, zone string, instanceGroupManager string, instancegroupmanagerssettargetpoolsrequest *InstanceGroupManagersSetTargetPoolsRequest) *InstanceGroupManagersSetTargetPoolsCall {
79713	c := &InstanceGroupManagersSetTargetPoolsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79714	c.project = project
79715	c.zone = zone
79716	c.instanceGroupManager = instanceGroupManager
79717	c.instancegroupmanagerssettargetpoolsrequest = instancegroupmanagerssettargetpoolsrequest
79718	return c
79719}
79720
79721// RequestId sets the optional parameter "requestId": An optional
79722// request ID to identify requests. Specify a unique request ID so that
79723// if you must retry your request, the server will know to ignore the
79724// request if it has already been completed.
79725//
79726// For example, consider a situation where you make an initial request
79727// and the request times out. If you make the request again with the
79728// same request ID, the server can check if original operation with the
79729// same request ID was received, and if so, will ignore the second
79730// request. This prevents clients from accidentally creating duplicate
79731// commitments.
79732//
79733// The request ID must be a valid UUID with the exception that zero UUID
79734// is not supported (00000000-0000-0000-0000-000000000000).
79735func (c *InstanceGroupManagersSetTargetPoolsCall) RequestId(requestId string) *InstanceGroupManagersSetTargetPoolsCall {
79736	c.urlParams_.Set("requestId", requestId)
79737	return c
79738}
79739
79740// Fields allows partial responses to be retrieved. See
79741// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79742// for more information.
79743func (c *InstanceGroupManagersSetTargetPoolsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetTargetPoolsCall {
79744	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79745	return c
79746}
79747
79748// Context sets the context to be used in this call's Do method. Any
79749// pending HTTP request will be aborted if the provided context is
79750// canceled.
79751func (c *InstanceGroupManagersSetTargetPoolsCall) Context(ctx context.Context) *InstanceGroupManagersSetTargetPoolsCall {
79752	c.ctx_ = ctx
79753	return c
79754}
79755
79756// Header returns an http.Header that can be modified by the caller to
79757// add HTTP headers to the request.
79758func (c *InstanceGroupManagersSetTargetPoolsCall) Header() http.Header {
79759	if c.header_ == nil {
79760		c.header_ = make(http.Header)
79761	}
79762	return c.header_
79763}
79764
79765func (c *InstanceGroupManagersSetTargetPoolsCall) doRequest(alt string) (*http.Response, error) {
79766	reqHeaders := make(http.Header)
79767	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
79768	for k, v := range c.header_ {
79769		reqHeaders[k] = v
79770	}
79771	reqHeaders.Set("User-Agent", c.s.userAgent())
79772	var body io.Reader = nil
79773	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerssettargetpoolsrequest)
79774	if err != nil {
79775		return nil, err
79776	}
79777	reqHeaders.Set("Content-Type", "application/json")
79778	c.urlParams_.Set("alt", alt)
79779	c.urlParams_.Set("prettyPrint", "false")
79780	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools")
79781	urls += "?" + c.urlParams_.Encode()
79782	req, err := http.NewRequest("POST", urls, body)
79783	if err != nil {
79784		return nil, err
79785	}
79786	req.Header = reqHeaders
79787	googleapi.Expand(req.URL, map[string]string{
79788		"project":              c.project,
79789		"zone":                 c.zone,
79790		"instanceGroupManager": c.instanceGroupManager,
79791	})
79792	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79793}
79794
79795// Do executes the "compute.instanceGroupManagers.setTargetPools" call.
79796// Exactly one of *Operation or error will be non-nil. Any non-2xx
79797// status code is an error. Response headers are in either
79798// *Operation.ServerResponse.Header or (if a response was returned at
79799// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79800// to check whether the returned error was because
79801// http.StatusNotModified was returned.
79802func (c *InstanceGroupManagersSetTargetPoolsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79803	gensupport.SetOptions(c.urlParams_, opts...)
79804	res, err := c.doRequest("json")
79805	if res != nil && res.StatusCode == http.StatusNotModified {
79806		if res.Body != nil {
79807			res.Body.Close()
79808		}
79809		return nil, &googleapi.Error{
79810			Code:   res.StatusCode,
79811			Header: res.Header,
79812		}
79813	}
79814	if err != nil {
79815		return nil, err
79816	}
79817	defer googleapi.CloseBody(res)
79818	if err := googleapi.CheckResponse(res); err != nil {
79819		return nil, err
79820	}
79821	ret := &Operation{
79822		ServerResponse: googleapi.ServerResponse{
79823			Header:         res.Header,
79824			HTTPStatusCode: res.StatusCode,
79825		},
79826	}
79827	target := &ret
79828	if err := gensupport.DecodeResponse(target, res); err != nil {
79829		return nil, err
79830	}
79831	return ret, nil
79832	// {
79833	//   "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.",
79834	//   "httpMethod": "POST",
79835	//   "id": "compute.instanceGroupManagers.setTargetPools",
79836	//   "parameterOrder": [
79837	//     "project",
79838	//     "zone",
79839	//     "instanceGroupManager"
79840	//   ],
79841	//   "parameters": {
79842	//     "instanceGroupManager": {
79843	//       "description": "The name of the managed instance group.",
79844	//       "location": "path",
79845	//       "required": true,
79846	//       "type": "string"
79847	//     },
79848	//     "project": {
79849	//       "description": "Project ID for this request.",
79850	//       "location": "path",
79851	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79852	//       "required": true,
79853	//       "type": "string"
79854	//     },
79855	//     "requestId": {
79856	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
79857	//       "location": "query",
79858	//       "type": "string"
79859	//     },
79860	//     "zone": {
79861	//       "description": "The name of the zone where the managed instance group is located.",
79862	//       "location": "path",
79863	//       "required": true,
79864	//       "type": "string"
79865	//     }
79866	//   },
79867	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools",
79868	//   "request": {
79869	//     "$ref": "InstanceGroupManagersSetTargetPoolsRequest"
79870	//   },
79871	//   "response": {
79872	//     "$ref": "Operation"
79873	//   },
79874	//   "scopes": [
79875	//     "https://www.googleapis.com/auth/cloud-platform",
79876	//     "https://www.googleapis.com/auth/compute"
79877	//   ]
79878	// }
79879
79880}
79881
79882// method id "compute.instanceGroupManagers.updatePerInstanceConfigs":
79883
79884type InstanceGroupManagersUpdatePerInstanceConfigsCall struct {
79885	s                                                *Service
79886	project                                          string
79887	zone                                             string
79888	instanceGroupManager                             string
79889	instancegroupmanagersupdateperinstanceconfigsreq *InstanceGroupManagersUpdatePerInstanceConfigsReq
79890	urlParams_                                       gensupport.URLParams
79891	ctx_                                             context.Context
79892	header_                                          http.Header
79893}
79894
79895// UpdatePerInstanceConfigs: Inserts or updates per-instance configs for
79896// the managed instance group. perInstanceConfig.name serves as a key
79897// used to distinguish whether to perform insert or patch.
79898//
79899// - instanceGroupManager: The name of the managed instance group. It
79900//   should conform to RFC1035.
79901// - project: Project ID for this request.
79902// - zone: The name of the zone where the managed instance group is
79903//   located. It should conform to RFC1035.
79904func (r *InstanceGroupManagersService) UpdatePerInstanceConfigs(project string, zone string, instanceGroupManager string, instancegroupmanagersupdateperinstanceconfigsreq *InstanceGroupManagersUpdatePerInstanceConfigsReq) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
79905	c := &InstanceGroupManagersUpdatePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79906	c.project = project
79907	c.zone = zone
79908	c.instanceGroupManager = instanceGroupManager
79909	c.instancegroupmanagersupdateperinstanceconfigsreq = instancegroupmanagersupdateperinstanceconfigsreq
79910	return c
79911}
79912
79913// RequestId sets the optional parameter "requestId": An optional
79914// request ID to identify requests. Specify a unique request ID so that
79915// if you must retry your request, the server will know to ignore the
79916// request if it has already been completed.
79917//
79918// For example, consider a situation where you make an initial request
79919// and the request times out. If you make the request again with the
79920// same request ID, the server can check if original operation with the
79921// same request ID was received, and if so, will ignore the second
79922// request. This prevents clients from accidentally creating duplicate
79923// commitments.
79924//
79925// The request ID must be a valid UUID with the exception that zero UUID
79926// is not supported (00000000-0000-0000-0000-000000000000).
79927func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) RequestId(requestId string) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
79928	c.urlParams_.Set("requestId", requestId)
79929	return c
79930}
79931
79932// Fields allows partial responses to be retrieved. See
79933// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79934// for more information.
79935func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
79936	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79937	return c
79938}
79939
79940// Context sets the context to be used in this call's Do method. Any
79941// pending HTTP request will be aborted if the provided context is
79942// canceled.
79943func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
79944	c.ctx_ = ctx
79945	return c
79946}
79947
79948// Header returns an http.Header that can be modified by the caller to
79949// add HTTP headers to the request.
79950func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Header() http.Header {
79951	if c.header_ == nil {
79952		c.header_ = make(http.Header)
79953	}
79954	return c.header_
79955}
79956
79957func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
79958	reqHeaders := make(http.Header)
79959	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
79960	for k, v := range c.header_ {
79961		reqHeaders[k] = v
79962	}
79963	reqHeaders.Set("User-Agent", c.s.userAgent())
79964	var body io.Reader = nil
79965	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersupdateperinstanceconfigsreq)
79966	if err != nil {
79967		return nil, err
79968	}
79969	reqHeaders.Set("Content-Type", "application/json")
79970	c.urlParams_.Set("alt", alt)
79971	c.urlParams_.Set("prettyPrint", "false")
79972	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs")
79973	urls += "?" + c.urlParams_.Encode()
79974	req, err := http.NewRequest("POST", urls, body)
79975	if err != nil {
79976		return nil, err
79977	}
79978	req.Header = reqHeaders
79979	googleapi.Expand(req.URL, map[string]string{
79980		"project":              c.project,
79981		"zone":                 c.zone,
79982		"instanceGroupManager": c.instanceGroupManager,
79983	})
79984	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79985}
79986
79987// Do executes the "compute.instanceGroupManagers.updatePerInstanceConfigs" call.
79988// Exactly one of *Operation or error will be non-nil. Any non-2xx
79989// status code is an error. Response headers are in either
79990// *Operation.ServerResponse.Header or (if a response was returned at
79991// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79992// to check whether the returned error was because
79993// http.StatusNotModified was returned.
79994func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79995	gensupport.SetOptions(c.urlParams_, opts...)
79996	res, err := c.doRequest("json")
79997	if res != nil && res.StatusCode == http.StatusNotModified {
79998		if res.Body != nil {
79999			res.Body.Close()
80000		}
80001		return nil, &googleapi.Error{
80002			Code:   res.StatusCode,
80003			Header: res.Header,
80004		}
80005	}
80006	if err != nil {
80007		return nil, err
80008	}
80009	defer googleapi.CloseBody(res)
80010	if err := googleapi.CheckResponse(res); err != nil {
80011		return nil, err
80012	}
80013	ret := &Operation{
80014		ServerResponse: googleapi.ServerResponse{
80015			Header:         res.Header,
80016			HTTPStatusCode: res.StatusCode,
80017		},
80018	}
80019	target := &ret
80020	if err := gensupport.DecodeResponse(target, res); err != nil {
80021		return nil, err
80022	}
80023	return ret, nil
80024	// {
80025	//   "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.",
80026	//   "httpMethod": "POST",
80027	//   "id": "compute.instanceGroupManagers.updatePerInstanceConfigs",
80028	//   "parameterOrder": [
80029	//     "project",
80030	//     "zone",
80031	//     "instanceGroupManager"
80032	//   ],
80033	//   "parameters": {
80034	//     "instanceGroupManager": {
80035	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
80036	//       "location": "path",
80037	//       "required": true,
80038	//       "type": "string"
80039	//     },
80040	//     "project": {
80041	//       "description": "Project ID for this request.",
80042	//       "location": "path",
80043	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80044	//       "required": true,
80045	//       "type": "string"
80046	//     },
80047	//     "requestId": {
80048	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
80049	//       "location": "query",
80050	//       "type": "string"
80051	//     },
80052	//     "zone": {
80053	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
80054	//       "location": "path",
80055	//       "required": true,
80056	//       "type": "string"
80057	//     }
80058	//   },
80059	//   "path": "projects/{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs",
80060	//   "request": {
80061	//     "$ref": "InstanceGroupManagersUpdatePerInstanceConfigsReq"
80062	//   },
80063	//   "response": {
80064	//     "$ref": "Operation"
80065	//   },
80066	//   "scopes": [
80067	//     "https://www.googleapis.com/auth/cloud-platform",
80068	//     "https://www.googleapis.com/auth/compute"
80069	//   ]
80070	// }
80071
80072}
80073
80074// method id "compute.instanceGroups.addInstances":
80075
80076type InstanceGroupsAddInstancesCall struct {
80077	s                                 *Service
80078	project                           string
80079	zone                              string
80080	instanceGroup                     string
80081	instancegroupsaddinstancesrequest *InstanceGroupsAddInstancesRequest
80082	urlParams_                        gensupport.URLParams
80083	ctx_                              context.Context
80084	header_                           http.Header
80085}
80086
80087// AddInstances: Adds a list of instances to the specified instance
80088// group. All of the instances in the instance group must be in the same
80089// network/subnetwork. Read  Adding instances for more information.
80090//
80091// - instanceGroup: The name of the instance group where you are adding
80092//   instances.
80093// - project: Project ID for this request.
80094// - zone: The name of the zone where the instance group is located.
80095func (r *InstanceGroupsService) AddInstances(project string, zone string, instanceGroup string, instancegroupsaddinstancesrequest *InstanceGroupsAddInstancesRequest) *InstanceGroupsAddInstancesCall {
80096	c := &InstanceGroupsAddInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80097	c.project = project
80098	c.zone = zone
80099	c.instanceGroup = instanceGroup
80100	c.instancegroupsaddinstancesrequest = instancegroupsaddinstancesrequest
80101	return c
80102}
80103
80104// RequestId sets the optional parameter "requestId": An optional
80105// request ID to identify requests. Specify a unique request ID so that
80106// if you must retry your request, the server will know to ignore the
80107// request if it has already been completed.
80108//
80109// For example, consider a situation where you make an initial request
80110// and the request times out. If you make the request again with the
80111// same request ID, the server can check if original operation with the
80112// same request ID was received, and if so, will ignore the second
80113// request. This prevents clients from accidentally creating duplicate
80114// commitments.
80115//
80116// The request ID must be a valid UUID with the exception that zero UUID
80117// is not supported (00000000-0000-0000-0000-000000000000).
80118func (c *InstanceGroupsAddInstancesCall) RequestId(requestId string) *InstanceGroupsAddInstancesCall {
80119	c.urlParams_.Set("requestId", requestId)
80120	return c
80121}
80122
80123// Fields allows partial responses to be retrieved. See
80124// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80125// for more information.
80126func (c *InstanceGroupsAddInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsAddInstancesCall {
80127	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80128	return c
80129}
80130
80131// Context sets the context to be used in this call's Do method. Any
80132// pending HTTP request will be aborted if the provided context is
80133// canceled.
80134func (c *InstanceGroupsAddInstancesCall) Context(ctx context.Context) *InstanceGroupsAddInstancesCall {
80135	c.ctx_ = ctx
80136	return c
80137}
80138
80139// Header returns an http.Header that can be modified by the caller to
80140// add HTTP headers to the request.
80141func (c *InstanceGroupsAddInstancesCall) Header() http.Header {
80142	if c.header_ == nil {
80143		c.header_ = make(http.Header)
80144	}
80145	return c.header_
80146}
80147
80148func (c *InstanceGroupsAddInstancesCall) doRequest(alt string) (*http.Response, error) {
80149	reqHeaders := make(http.Header)
80150	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
80151	for k, v := range c.header_ {
80152		reqHeaders[k] = v
80153	}
80154	reqHeaders.Set("User-Agent", c.s.userAgent())
80155	var body io.Reader = nil
80156	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupsaddinstancesrequest)
80157	if err != nil {
80158		return nil, err
80159	}
80160	reqHeaders.Set("Content-Type", "application/json")
80161	c.urlParams_.Set("alt", alt)
80162	c.urlParams_.Set("prettyPrint", "false")
80163	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances")
80164	urls += "?" + c.urlParams_.Encode()
80165	req, err := http.NewRequest("POST", urls, body)
80166	if err != nil {
80167		return nil, err
80168	}
80169	req.Header = reqHeaders
80170	googleapi.Expand(req.URL, map[string]string{
80171		"project":       c.project,
80172		"zone":          c.zone,
80173		"instanceGroup": c.instanceGroup,
80174	})
80175	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80176}
80177
80178// Do executes the "compute.instanceGroups.addInstances" call.
80179// Exactly one of *Operation or error will be non-nil. Any non-2xx
80180// status code is an error. Response headers are in either
80181// *Operation.ServerResponse.Header or (if a response was returned at
80182// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80183// to check whether the returned error was because
80184// http.StatusNotModified was returned.
80185func (c *InstanceGroupsAddInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
80186	gensupport.SetOptions(c.urlParams_, opts...)
80187	res, err := c.doRequest("json")
80188	if res != nil && res.StatusCode == http.StatusNotModified {
80189		if res.Body != nil {
80190			res.Body.Close()
80191		}
80192		return nil, &googleapi.Error{
80193			Code:   res.StatusCode,
80194			Header: res.Header,
80195		}
80196	}
80197	if err != nil {
80198		return nil, err
80199	}
80200	defer googleapi.CloseBody(res)
80201	if err := googleapi.CheckResponse(res); err != nil {
80202		return nil, err
80203	}
80204	ret := &Operation{
80205		ServerResponse: googleapi.ServerResponse{
80206			Header:         res.Header,
80207			HTTPStatusCode: res.StatusCode,
80208		},
80209	}
80210	target := &ret
80211	if err := gensupport.DecodeResponse(target, res); err != nil {
80212		return nil, err
80213	}
80214	return ret, nil
80215	// {
80216	//   "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.",
80217	//   "httpMethod": "POST",
80218	//   "id": "compute.instanceGroups.addInstances",
80219	//   "parameterOrder": [
80220	//     "project",
80221	//     "zone",
80222	//     "instanceGroup"
80223	//   ],
80224	//   "parameters": {
80225	//     "instanceGroup": {
80226	//       "description": "The name of the instance group where you are adding instances.",
80227	//       "location": "path",
80228	//       "required": true,
80229	//       "type": "string"
80230	//     },
80231	//     "project": {
80232	//       "description": "Project ID for this request.",
80233	//       "location": "path",
80234	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80235	//       "required": true,
80236	//       "type": "string"
80237	//     },
80238	//     "requestId": {
80239	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
80240	//       "location": "query",
80241	//       "type": "string"
80242	//     },
80243	//     "zone": {
80244	//       "description": "The name of the zone where the instance group is located.",
80245	//       "location": "path",
80246	//       "required": true,
80247	//       "type": "string"
80248	//     }
80249	//   },
80250	//   "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances",
80251	//   "request": {
80252	//     "$ref": "InstanceGroupsAddInstancesRequest"
80253	//   },
80254	//   "response": {
80255	//     "$ref": "Operation"
80256	//   },
80257	//   "scopes": [
80258	//     "https://www.googleapis.com/auth/cloud-platform",
80259	//     "https://www.googleapis.com/auth/compute"
80260	//   ]
80261	// }
80262
80263}
80264
80265// method id "compute.instanceGroups.aggregatedList":
80266
80267type InstanceGroupsAggregatedListCall struct {
80268	s            *Service
80269	project      string
80270	urlParams_   gensupport.URLParams
80271	ifNoneMatch_ string
80272	ctx_         context.Context
80273	header_      http.Header
80274}
80275
80276// AggregatedList: Retrieves the list of instance groups and sorts them
80277// by zone.
80278//
80279// - project: Project ID for this request.
80280func (r *InstanceGroupsService) AggregatedList(project string) *InstanceGroupsAggregatedListCall {
80281	c := &InstanceGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80282	c.project = project
80283	return c
80284}
80285
80286// Filter sets the optional parameter "filter": A filter expression that
80287// filters resources listed in the response. The expression must specify
80288// the field name, a comparison operator, and the value that you want to
80289// use for filtering. The value must be a string, a number, or a
80290// boolean. The comparison operator must be either `=`, `!=`, `>`, or
80291// `<`.
80292//
80293// For example, if you are filtering Compute Engine instances, you can
80294// exclude instances named `example-instance` by specifying `name !=
80295// example-instance`.
80296//
80297// You can also filter nested fields. For example, you could specify
80298// `scheduling.automaticRestart = false` to include instances only if
80299// they are not scheduled for automatic restarts. You can use filtering
80300// on nested fields to filter based on resource labels.
80301//
80302// To filter on multiple expressions, provide each separate expression
80303// within parentheses. For example: ``` (scheduling.automaticRestart =
80304// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
80305// is an `AND` expression. However, you can include `AND` and `OR`
80306// expressions explicitly. For example: ``` (cpuPlatform = "Intel
80307// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
80308// (scheduling.automaticRestart = true) ```
80309func (c *InstanceGroupsAggregatedListCall) Filter(filter string) *InstanceGroupsAggregatedListCall {
80310	c.urlParams_.Set("filter", filter)
80311	return c
80312}
80313
80314// IncludeAllScopes sets the optional parameter "includeAllScopes":
80315// Indicates whether every visible scope for each scope type (zone,
80316// region, global) should be included in the response. For new resource
80317// types added after this field, the flag has no effect as new resource
80318// types will always include every visible scope for each scope type in
80319// response. For resource types which predate this field, if this flag
80320// is omitted or false, only scopes of the scope types where the
80321// resource type is expected to be found will be included.
80322func (c *InstanceGroupsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstanceGroupsAggregatedListCall {
80323	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
80324	return c
80325}
80326
80327// MaxResults sets the optional parameter "maxResults": The maximum
80328// number of results per page that should be returned. If the number of
80329// available results is larger than `maxResults`, Compute Engine returns
80330// a `nextPageToken` that can be used to get the next page of results in
80331// subsequent list requests. Acceptable values are `0` to `500`,
80332// inclusive. (Default: `500`)
80333func (c *InstanceGroupsAggregatedListCall) MaxResults(maxResults int64) *InstanceGroupsAggregatedListCall {
80334	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
80335	return c
80336}
80337
80338// OrderBy sets the optional parameter "orderBy": Sorts list results by
80339// a certain order. By default, results are returned in alphanumerical
80340// order based on the resource name.
80341//
80342// You can also sort results in descending order based on the creation
80343// timestamp using `orderBy="creationTimestamp desc". This sorts
80344// results based on the `creationTimestamp` field in reverse
80345// chronological order (newest result first). Use this to sort resources
80346// like operations so that the newest operation is returned
80347// first.
80348//
80349// Currently, only sorting by `name` or `creationTimestamp desc` is
80350// supported.
80351func (c *InstanceGroupsAggregatedListCall) OrderBy(orderBy string) *InstanceGroupsAggregatedListCall {
80352	c.urlParams_.Set("orderBy", orderBy)
80353	return c
80354}
80355
80356// PageToken sets the optional parameter "pageToken": Specifies a page
80357// token to use. Set `pageToken` to the `nextPageToken` returned by a
80358// previous list request to get the next page of results.
80359func (c *InstanceGroupsAggregatedListCall) PageToken(pageToken string) *InstanceGroupsAggregatedListCall {
80360	c.urlParams_.Set("pageToken", pageToken)
80361	return c
80362}
80363
80364// ReturnPartialSuccess sets the optional parameter
80365// "returnPartialSuccess": Opt-in for partial success behavior which
80366// provides partial results in case of failure. The default value is
80367// false.
80368func (c *InstanceGroupsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupsAggregatedListCall {
80369	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
80370	return c
80371}
80372
80373// Fields allows partial responses to be retrieved. See
80374// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80375// for more information.
80376func (c *InstanceGroupsAggregatedListCall) Fields(s ...googleapi.Field) *InstanceGroupsAggregatedListCall {
80377	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80378	return c
80379}
80380
80381// IfNoneMatch sets the optional parameter which makes the operation
80382// fail if the object's ETag matches the given value. This is useful for
80383// getting updates only after the object has changed since the last
80384// request. Use googleapi.IsNotModified to check whether the response
80385// error from Do is the result of In-None-Match.
80386func (c *InstanceGroupsAggregatedListCall) IfNoneMatch(entityTag string) *InstanceGroupsAggregatedListCall {
80387	c.ifNoneMatch_ = entityTag
80388	return c
80389}
80390
80391// Context sets the context to be used in this call's Do method. Any
80392// pending HTTP request will be aborted if the provided context is
80393// canceled.
80394func (c *InstanceGroupsAggregatedListCall) Context(ctx context.Context) *InstanceGroupsAggregatedListCall {
80395	c.ctx_ = ctx
80396	return c
80397}
80398
80399// Header returns an http.Header that can be modified by the caller to
80400// add HTTP headers to the request.
80401func (c *InstanceGroupsAggregatedListCall) Header() http.Header {
80402	if c.header_ == nil {
80403		c.header_ = make(http.Header)
80404	}
80405	return c.header_
80406}
80407
80408func (c *InstanceGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
80409	reqHeaders := make(http.Header)
80410	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
80411	for k, v := range c.header_ {
80412		reqHeaders[k] = v
80413	}
80414	reqHeaders.Set("User-Agent", c.s.userAgent())
80415	if c.ifNoneMatch_ != "" {
80416		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
80417	}
80418	var body io.Reader = nil
80419	c.urlParams_.Set("alt", alt)
80420	c.urlParams_.Set("prettyPrint", "false")
80421	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/instanceGroups")
80422	urls += "?" + c.urlParams_.Encode()
80423	req, err := http.NewRequest("GET", urls, body)
80424	if err != nil {
80425		return nil, err
80426	}
80427	req.Header = reqHeaders
80428	googleapi.Expand(req.URL, map[string]string{
80429		"project": c.project,
80430	})
80431	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80432}
80433
80434// Do executes the "compute.instanceGroups.aggregatedList" call.
80435// Exactly one of *InstanceGroupAggregatedList or error will be non-nil.
80436// Any non-2xx status code is an error. Response headers are in either
80437// *InstanceGroupAggregatedList.ServerResponse.Header or (if a response
80438// was returned at all) in error.(*googleapi.Error).Header. Use
80439// googleapi.IsNotModified to check whether the returned error was
80440// because http.StatusNotModified was returned.
80441func (c *InstanceGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupAggregatedList, error) {
80442	gensupport.SetOptions(c.urlParams_, opts...)
80443	res, err := c.doRequest("json")
80444	if res != nil && res.StatusCode == http.StatusNotModified {
80445		if res.Body != nil {
80446			res.Body.Close()
80447		}
80448		return nil, &googleapi.Error{
80449			Code:   res.StatusCode,
80450			Header: res.Header,
80451		}
80452	}
80453	if err != nil {
80454		return nil, err
80455	}
80456	defer googleapi.CloseBody(res)
80457	if err := googleapi.CheckResponse(res); err != nil {
80458		return nil, err
80459	}
80460	ret := &InstanceGroupAggregatedList{
80461		ServerResponse: googleapi.ServerResponse{
80462			Header:         res.Header,
80463			HTTPStatusCode: res.StatusCode,
80464		},
80465	}
80466	target := &ret
80467	if err := gensupport.DecodeResponse(target, res); err != nil {
80468		return nil, err
80469	}
80470	return ret, nil
80471	// {
80472	//   "description": "Retrieves the list of instance groups and sorts them by zone.",
80473	//   "httpMethod": "GET",
80474	//   "id": "compute.instanceGroups.aggregatedList",
80475	//   "parameterOrder": [
80476	//     "project"
80477	//   ],
80478	//   "parameters": {
80479	//     "filter": {
80480	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
80481	//       "location": "query",
80482	//       "type": "string"
80483	//     },
80484	//     "includeAllScopes": {
80485	//       "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.",
80486	//       "location": "query",
80487	//       "type": "boolean"
80488	//     },
80489	//     "maxResults": {
80490	//       "default": "500",
80491	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
80492	//       "format": "uint32",
80493	//       "location": "query",
80494	//       "minimum": "0",
80495	//       "type": "integer"
80496	//     },
80497	//     "orderBy": {
80498	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
80499	//       "location": "query",
80500	//       "type": "string"
80501	//     },
80502	//     "pageToken": {
80503	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
80504	//       "location": "query",
80505	//       "type": "string"
80506	//     },
80507	//     "project": {
80508	//       "description": "Project ID for this request.",
80509	//       "location": "path",
80510	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80511	//       "required": true,
80512	//       "type": "string"
80513	//     },
80514	//     "returnPartialSuccess": {
80515	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
80516	//       "location": "query",
80517	//       "type": "boolean"
80518	//     }
80519	//   },
80520	//   "path": "projects/{project}/aggregated/instanceGroups",
80521	//   "response": {
80522	//     "$ref": "InstanceGroupAggregatedList"
80523	//   },
80524	//   "scopes": [
80525	//     "https://www.googleapis.com/auth/cloud-platform",
80526	//     "https://www.googleapis.com/auth/compute",
80527	//     "https://www.googleapis.com/auth/compute.readonly"
80528	//   ]
80529	// }
80530
80531}
80532
80533// Pages invokes f for each page of results.
80534// A non-nil error returned from f will halt the iteration.
80535// The provided context supersedes any context provided to the Context method.
80536func (c *InstanceGroupsAggregatedListCall) Pages(ctx context.Context, f func(*InstanceGroupAggregatedList) error) error {
80537	c.ctx_ = ctx
80538	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
80539	for {
80540		x, err := c.Do()
80541		if err != nil {
80542			return err
80543		}
80544		if err := f(x); err != nil {
80545			return err
80546		}
80547		if x.NextPageToken == "" {
80548			return nil
80549		}
80550		c.PageToken(x.NextPageToken)
80551	}
80552}
80553
80554// method id "compute.instanceGroups.delete":
80555
80556type InstanceGroupsDeleteCall struct {
80557	s             *Service
80558	project       string
80559	zone          string
80560	instanceGroup string
80561	urlParams_    gensupport.URLParams
80562	ctx_          context.Context
80563	header_       http.Header
80564}
80565
80566// Delete: Deletes the specified instance group. The instances in the
80567// group are not deleted. Note that instance group must not belong to a
80568// backend service. Read  Deleting an instance group for more
80569// information.
80570//
80571// - instanceGroup: The name of the instance group to delete.
80572// - project: Project ID for this request.
80573// - zone: The name of the zone where the instance group is located.
80574func (r *InstanceGroupsService) Delete(project string, zone string, instanceGroup string) *InstanceGroupsDeleteCall {
80575	c := &InstanceGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80576	c.project = project
80577	c.zone = zone
80578	c.instanceGroup = instanceGroup
80579	return c
80580}
80581
80582// RequestId sets the optional parameter "requestId": An optional
80583// request ID to identify requests. Specify a unique request ID so that
80584// if you must retry your request, the server will know to ignore the
80585// request if it has already been completed.
80586//
80587// For example, consider a situation where you make an initial request
80588// and the request times out. If you make the request again with the
80589// same request ID, the server can check if original operation with the
80590// same request ID was received, and if so, will ignore the second
80591// request. This prevents clients from accidentally creating duplicate
80592// commitments.
80593//
80594// The request ID must be a valid UUID with the exception that zero UUID
80595// is not supported (00000000-0000-0000-0000-000000000000).
80596func (c *InstanceGroupsDeleteCall) RequestId(requestId string) *InstanceGroupsDeleteCall {
80597	c.urlParams_.Set("requestId", requestId)
80598	return c
80599}
80600
80601// Fields allows partial responses to be retrieved. See
80602// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80603// for more information.
80604func (c *InstanceGroupsDeleteCall) Fields(s ...googleapi.Field) *InstanceGroupsDeleteCall {
80605	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80606	return c
80607}
80608
80609// Context sets the context to be used in this call's Do method. Any
80610// pending HTTP request will be aborted if the provided context is
80611// canceled.
80612func (c *InstanceGroupsDeleteCall) Context(ctx context.Context) *InstanceGroupsDeleteCall {
80613	c.ctx_ = ctx
80614	return c
80615}
80616
80617// Header returns an http.Header that can be modified by the caller to
80618// add HTTP headers to the request.
80619func (c *InstanceGroupsDeleteCall) Header() http.Header {
80620	if c.header_ == nil {
80621		c.header_ = make(http.Header)
80622	}
80623	return c.header_
80624}
80625
80626func (c *InstanceGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
80627	reqHeaders := make(http.Header)
80628	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
80629	for k, v := range c.header_ {
80630		reqHeaders[k] = v
80631	}
80632	reqHeaders.Set("User-Agent", c.s.userAgent())
80633	var body io.Reader = nil
80634	c.urlParams_.Set("alt", alt)
80635	c.urlParams_.Set("prettyPrint", "false")
80636	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}")
80637	urls += "?" + c.urlParams_.Encode()
80638	req, err := http.NewRequest("DELETE", urls, body)
80639	if err != nil {
80640		return nil, err
80641	}
80642	req.Header = reqHeaders
80643	googleapi.Expand(req.URL, map[string]string{
80644		"project":       c.project,
80645		"zone":          c.zone,
80646		"instanceGroup": c.instanceGroup,
80647	})
80648	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80649}
80650
80651// Do executes the "compute.instanceGroups.delete" call.
80652// Exactly one of *Operation or error will be non-nil. Any non-2xx
80653// status code is an error. Response headers are in either
80654// *Operation.ServerResponse.Header or (if a response was returned at
80655// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80656// to check whether the returned error was because
80657// http.StatusNotModified was returned.
80658func (c *InstanceGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
80659	gensupport.SetOptions(c.urlParams_, opts...)
80660	res, err := c.doRequest("json")
80661	if res != nil && res.StatusCode == http.StatusNotModified {
80662		if res.Body != nil {
80663			res.Body.Close()
80664		}
80665		return nil, &googleapi.Error{
80666			Code:   res.StatusCode,
80667			Header: res.Header,
80668		}
80669	}
80670	if err != nil {
80671		return nil, err
80672	}
80673	defer googleapi.CloseBody(res)
80674	if err := googleapi.CheckResponse(res); err != nil {
80675		return nil, err
80676	}
80677	ret := &Operation{
80678		ServerResponse: googleapi.ServerResponse{
80679			Header:         res.Header,
80680			HTTPStatusCode: res.StatusCode,
80681		},
80682	}
80683	target := &ret
80684	if err := gensupport.DecodeResponse(target, res); err != nil {
80685		return nil, err
80686	}
80687	return ret, nil
80688	// {
80689	//   "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.",
80690	//   "httpMethod": "DELETE",
80691	//   "id": "compute.instanceGroups.delete",
80692	//   "parameterOrder": [
80693	//     "project",
80694	//     "zone",
80695	//     "instanceGroup"
80696	//   ],
80697	//   "parameters": {
80698	//     "instanceGroup": {
80699	//       "description": "The name of the instance group to delete.",
80700	//       "location": "path",
80701	//       "required": true,
80702	//       "type": "string"
80703	//     },
80704	//     "project": {
80705	//       "description": "Project ID for this request.",
80706	//       "location": "path",
80707	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80708	//       "required": true,
80709	//       "type": "string"
80710	//     },
80711	//     "requestId": {
80712	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
80713	//       "location": "query",
80714	//       "type": "string"
80715	//     },
80716	//     "zone": {
80717	//       "description": "The name of the zone where the instance group is located.",
80718	//       "location": "path",
80719	//       "required": true,
80720	//       "type": "string"
80721	//     }
80722	//   },
80723	//   "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}",
80724	//   "response": {
80725	//     "$ref": "Operation"
80726	//   },
80727	//   "scopes": [
80728	//     "https://www.googleapis.com/auth/cloud-platform",
80729	//     "https://www.googleapis.com/auth/compute"
80730	//   ]
80731	// }
80732
80733}
80734
80735// method id "compute.instanceGroups.get":
80736
80737type InstanceGroupsGetCall struct {
80738	s             *Service
80739	project       string
80740	zone          string
80741	instanceGroup string
80742	urlParams_    gensupport.URLParams
80743	ifNoneMatch_  string
80744	ctx_          context.Context
80745	header_       http.Header
80746}
80747
80748// Get: Returns the specified zonal instance group. Get a list of
80749// available zonal instance groups by making a list() request.
80750//
80751// For managed instance groups, use the instanceGroupManagers or
80752// regionInstanceGroupManagers methods instead.
80753//
80754// - instanceGroup: The name of the instance group.
80755// - project: Project ID for this request.
80756// - zone: The name of the zone where the instance group is located.
80757func (r *InstanceGroupsService) Get(project string, zone string, instanceGroup string) *InstanceGroupsGetCall {
80758	c := &InstanceGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80759	c.project = project
80760	c.zone = zone
80761	c.instanceGroup = instanceGroup
80762	return c
80763}
80764
80765// Fields allows partial responses to be retrieved. See
80766// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80767// for more information.
80768func (c *InstanceGroupsGetCall) Fields(s ...googleapi.Field) *InstanceGroupsGetCall {
80769	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80770	return c
80771}
80772
80773// IfNoneMatch sets the optional parameter which makes the operation
80774// fail if the object's ETag matches the given value. This is useful for
80775// getting updates only after the object has changed since the last
80776// request. Use googleapi.IsNotModified to check whether the response
80777// error from Do is the result of In-None-Match.
80778func (c *InstanceGroupsGetCall) IfNoneMatch(entityTag string) *InstanceGroupsGetCall {
80779	c.ifNoneMatch_ = entityTag
80780	return c
80781}
80782
80783// Context sets the context to be used in this call's Do method. Any
80784// pending HTTP request will be aborted if the provided context is
80785// canceled.
80786func (c *InstanceGroupsGetCall) Context(ctx context.Context) *InstanceGroupsGetCall {
80787	c.ctx_ = ctx
80788	return c
80789}
80790
80791// Header returns an http.Header that can be modified by the caller to
80792// add HTTP headers to the request.
80793func (c *InstanceGroupsGetCall) Header() http.Header {
80794	if c.header_ == nil {
80795		c.header_ = make(http.Header)
80796	}
80797	return c.header_
80798}
80799
80800func (c *InstanceGroupsGetCall) doRequest(alt string) (*http.Response, error) {
80801	reqHeaders := make(http.Header)
80802	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
80803	for k, v := range c.header_ {
80804		reqHeaders[k] = v
80805	}
80806	reqHeaders.Set("User-Agent", c.s.userAgent())
80807	if c.ifNoneMatch_ != "" {
80808		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
80809	}
80810	var body io.Reader = nil
80811	c.urlParams_.Set("alt", alt)
80812	c.urlParams_.Set("prettyPrint", "false")
80813	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}")
80814	urls += "?" + c.urlParams_.Encode()
80815	req, err := http.NewRequest("GET", urls, body)
80816	if err != nil {
80817		return nil, err
80818	}
80819	req.Header = reqHeaders
80820	googleapi.Expand(req.URL, map[string]string{
80821		"project":       c.project,
80822		"zone":          c.zone,
80823		"instanceGroup": c.instanceGroup,
80824	})
80825	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80826}
80827
80828// Do executes the "compute.instanceGroups.get" call.
80829// Exactly one of *InstanceGroup or error will be non-nil. Any non-2xx
80830// status code is an error. Response headers are in either
80831// *InstanceGroup.ServerResponse.Header or (if a response was returned
80832// at all) in error.(*googleapi.Error).Header. Use
80833// googleapi.IsNotModified to check whether the returned error was
80834// because http.StatusNotModified was returned.
80835func (c *InstanceGroupsGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroup, error) {
80836	gensupport.SetOptions(c.urlParams_, opts...)
80837	res, err := c.doRequest("json")
80838	if res != nil && res.StatusCode == http.StatusNotModified {
80839		if res.Body != nil {
80840			res.Body.Close()
80841		}
80842		return nil, &googleapi.Error{
80843			Code:   res.StatusCode,
80844			Header: res.Header,
80845		}
80846	}
80847	if err != nil {
80848		return nil, err
80849	}
80850	defer googleapi.CloseBody(res)
80851	if err := googleapi.CheckResponse(res); err != nil {
80852		return nil, err
80853	}
80854	ret := &InstanceGroup{
80855		ServerResponse: googleapi.ServerResponse{
80856			Header:         res.Header,
80857			HTTPStatusCode: res.StatusCode,
80858		},
80859	}
80860	target := &ret
80861	if err := gensupport.DecodeResponse(target, res); err != nil {
80862		return nil, err
80863	}
80864	return ret, nil
80865	// {
80866	//   "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.",
80867	//   "httpMethod": "GET",
80868	//   "id": "compute.instanceGroups.get",
80869	//   "parameterOrder": [
80870	//     "project",
80871	//     "zone",
80872	//     "instanceGroup"
80873	//   ],
80874	//   "parameters": {
80875	//     "instanceGroup": {
80876	//       "description": "The name of the instance group.",
80877	//       "location": "path",
80878	//       "required": true,
80879	//       "type": "string"
80880	//     },
80881	//     "project": {
80882	//       "description": "Project ID for this request.",
80883	//       "location": "path",
80884	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80885	//       "required": true,
80886	//       "type": "string"
80887	//     },
80888	//     "zone": {
80889	//       "description": "The name of the zone where the instance group is located.",
80890	//       "location": "path",
80891	//       "required": true,
80892	//       "type": "string"
80893	//     }
80894	//   },
80895	//   "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}",
80896	//   "response": {
80897	//     "$ref": "InstanceGroup"
80898	//   },
80899	//   "scopes": [
80900	//     "https://www.googleapis.com/auth/cloud-platform",
80901	//     "https://www.googleapis.com/auth/compute",
80902	//     "https://www.googleapis.com/auth/compute.readonly"
80903	//   ]
80904	// }
80905
80906}
80907
80908// method id "compute.instanceGroups.insert":
80909
80910type InstanceGroupsInsertCall struct {
80911	s             *Service
80912	project       string
80913	zone          string
80914	instancegroup *InstanceGroup
80915	urlParams_    gensupport.URLParams
80916	ctx_          context.Context
80917	header_       http.Header
80918}
80919
80920// Insert: Creates an instance group in the specified project using the
80921// parameters that are included in the request.
80922//
80923// - project: Project ID for this request.
80924// - zone: The name of the zone where you want to create the instance
80925//   group.
80926func (r *InstanceGroupsService) Insert(project string, zone string, instancegroup *InstanceGroup) *InstanceGroupsInsertCall {
80927	c := &InstanceGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80928	c.project = project
80929	c.zone = zone
80930	c.instancegroup = instancegroup
80931	return c
80932}
80933
80934// RequestId sets the optional parameter "requestId": An optional
80935// request ID to identify requests. Specify a unique request ID so that
80936// if you must retry your request, the server will know to ignore the
80937// request if it has already been completed.
80938//
80939// For example, consider a situation where you make an initial request
80940// and the request times out. If you make the request again with the
80941// same request ID, the server can check if original operation with the
80942// same request ID was received, and if so, will ignore the second
80943// request. This prevents clients from accidentally creating duplicate
80944// commitments.
80945//
80946// The request ID must be a valid UUID with the exception that zero UUID
80947// is not supported (00000000-0000-0000-0000-000000000000).
80948func (c *InstanceGroupsInsertCall) RequestId(requestId string) *InstanceGroupsInsertCall {
80949	c.urlParams_.Set("requestId", requestId)
80950	return c
80951}
80952
80953// Fields allows partial responses to be retrieved. See
80954// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80955// for more information.
80956func (c *InstanceGroupsInsertCall) Fields(s ...googleapi.Field) *InstanceGroupsInsertCall {
80957	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80958	return c
80959}
80960
80961// Context sets the context to be used in this call's Do method. Any
80962// pending HTTP request will be aborted if the provided context is
80963// canceled.
80964func (c *InstanceGroupsInsertCall) Context(ctx context.Context) *InstanceGroupsInsertCall {
80965	c.ctx_ = ctx
80966	return c
80967}
80968
80969// Header returns an http.Header that can be modified by the caller to
80970// add HTTP headers to the request.
80971func (c *InstanceGroupsInsertCall) Header() http.Header {
80972	if c.header_ == nil {
80973		c.header_ = make(http.Header)
80974	}
80975	return c.header_
80976}
80977
80978func (c *InstanceGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
80979	reqHeaders := make(http.Header)
80980	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
80981	for k, v := range c.header_ {
80982		reqHeaders[k] = v
80983	}
80984	reqHeaders.Set("User-Agent", c.s.userAgent())
80985	var body io.Reader = nil
80986	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroup)
80987	if err != nil {
80988		return nil, err
80989	}
80990	reqHeaders.Set("Content-Type", "application/json")
80991	c.urlParams_.Set("alt", alt)
80992	c.urlParams_.Set("prettyPrint", "false")
80993	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups")
80994	urls += "?" + c.urlParams_.Encode()
80995	req, err := http.NewRequest("POST", urls, body)
80996	if err != nil {
80997		return nil, err
80998	}
80999	req.Header = reqHeaders
81000	googleapi.Expand(req.URL, map[string]string{
81001		"project": c.project,
81002		"zone":    c.zone,
81003	})
81004	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81005}
81006
81007// Do executes the "compute.instanceGroups.insert" call.
81008// Exactly one of *Operation or error will be non-nil. Any non-2xx
81009// status code is an error. Response headers are in either
81010// *Operation.ServerResponse.Header or (if a response was returned at
81011// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81012// to check whether the returned error was because
81013// http.StatusNotModified was returned.
81014func (c *InstanceGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81015	gensupport.SetOptions(c.urlParams_, opts...)
81016	res, err := c.doRequest("json")
81017	if res != nil && res.StatusCode == http.StatusNotModified {
81018		if res.Body != nil {
81019			res.Body.Close()
81020		}
81021		return nil, &googleapi.Error{
81022			Code:   res.StatusCode,
81023			Header: res.Header,
81024		}
81025	}
81026	if err != nil {
81027		return nil, err
81028	}
81029	defer googleapi.CloseBody(res)
81030	if err := googleapi.CheckResponse(res); err != nil {
81031		return nil, err
81032	}
81033	ret := &Operation{
81034		ServerResponse: googleapi.ServerResponse{
81035			Header:         res.Header,
81036			HTTPStatusCode: res.StatusCode,
81037		},
81038	}
81039	target := &ret
81040	if err := gensupport.DecodeResponse(target, res); err != nil {
81041		return nil, err
81042	}
81043	return ret, nil
81044	// {
81045	//   "description": "Creates an instance group in the specified project using the parameters that are included in the request.",
81046	//   "httpMethod": "POST",
81047	//   "id": "compute.instanceGroups.insert",
81048	//   "parameterOrder": [
81049	//     "project",
81050	//     "zone"
81051	//   ],
81052	//   "parameters": {
81053	//     "project": {
81054	//       "description": "Project ID for this request.",
81055	//       "location": "path",
81056	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81057	//       "required": true,
81058	//       "type": "string"
81059	//     },
81060	//     "requestId": {
81061	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
81062	//       "location": "query",
81063	//       "type": "string"
81064	//     },
81065	//     "zone": {
81066	//       "description": "The name of the zone where you want to create the instance group.",
81067	//       "location": "path",
81068	//       "required": true,
81069	//       "type": "string"
81070	//     }
81071	//   },
81072	//   "path": "projects/{project}/zones/{zone}/instanceGroups",
81073	//   "request": {
81074	//     "$ref": "InstanceGroup"
81075	//   },
81076	//   "response": {
81077	//     "$ref": "Operation"
81078	//   },
81079	//   "scopes": [
81080	//     "https://www.googleapis.com/auth/cloud-platform",
81081	//     "https://www.googleapis.com/auth/compute"
81082	//   ]
81083	// }
81084
81085}
81086
81087// method id "compute.instanceGroups.list":
81088
81089type InstanceGroupsListCall struct {
81090	s            *Service
81091	project      string
81092	zone         string
81093	urlParams_   gensupport.URLParams
81094	ifNoneMatch_ string
81095	ctx_         context.Context
81096	header_      http.Header
81097}
81098
81099// List: Retrieves the list of zonal instance group resources contained
81100// within the specified zone.
81101//
81102// For managed instance groups, use the instanceGroupManagers or
81103// regionInstanceGroupManagers methods instead.
81104//
81105// - project: Project ID for this request.
81106// - zone: The name of the zone where the instance group is located.
81107func (r *InstanceGroupsService) List(project string, zone string) *InstanceGroupsListCall {
81108	c := &InstanceGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81109	c.project = project
81110	c.zone = zone
81111	return c
81112}
81113
81114// Filter sets the optional parameter "filter": A filter expression that
81115// filters resources listed in the response. The expression must specify
81116// the field name, a comparison operator, and the value that you want to
81117// use for filtering. The value must be a string, a number, or a
81118// boolean. The comparison operator must be either `=`, `!=`, `>`, or
81119// `<`.
81120//
81121// For example, if you are filtering Compute Engine instances, you can
81122// exclude instances named `example-instance` by specifying `name !=
81123// example-instance`.
81124//
81125// You can also filter nested fields. For example, you could specify
81126// `scheduling.automaticRestart = false` to include instances only if
81127// they are not scheduled for automatic restarts. You can use filtering
81128// on nested fields to filter based on resource labels.
81129//
81130// To filter on multiple expressions, provide each separate expression
81131// within parentheses. For example: ``` (scheduling.automaticRestart =
81132// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
81133// is an `AND` expression. However, you can include `AND` and `OR`
81134// expressions explicitly. For example: ``` (cpuPlatform = "Intel
81135// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
81136// (scheduling.automaticRestart = true) ```
81137func (c *InstanceGroupsListCall) Filter(filter string) *InstanceGroupsListCall {
81138	c.urlParams_.Set("filter", filter)
81139	return c
81140}
81141
81142// MaxResults sets the optional parameter "maxResults": The maximum
81143// number of results per page that should be returned. If the number of
81144// available results is larger than `maxResults`, Compute Engine returns
81145// a `nextPageToken` that can be used to get the next page of results in
81146// subsequent list requests. Acceptable values are `0` to `500`,
81147// inclusive. (Default: `500`)
81148func (c *InstanceGroupsListCall) MaxResults(maxResults int64) *InstanceGroupsListCall {
81149	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
81150	return c
81151}
81152
81153// OrderBy sets the optional parameter "orderBy": Sorts list results by
81154// a certain order. By default, results are returned in alphanumerical
81155// order based on the resource name.
81156//
81157// You can also sort results in descending order based on the creation
81158// timestamp using `orderBy="creationTimestamp desc". This sorts
81159// results based on the `creationTimestamp` field in reverse
81160// chronological order (newest result first). Use this to sort resources
81161// like operations so that the newest operation is returned
81162// first.
81163//
81164// Currently, only sorting by `name` or `creationTimestamp desc` is
81165// supported.
81166func (c *InstanceGroupsListCall) OrderBy(orderBy string) *InstanceGroupsListCall {
81167	c.urlParams_.Set("orderBy", orderBy)
81168	return c
81169}
81170
81171// PageToken sets the optional parameter "pageToken": Specifies a page
81172// token to use. Set `pageToken` to the `nextPageToken` returned by a
81173// previous list request to get the next page of results.
81174func (c *InstanceGroupsListCall) PageToken(pageToken string) *InstanceGroupsListCall {
81175	c.urlParams_.Set("pageToken", pageToken)
81176	return c
81177}
81178
81179// ReturnPartialSuccess sets the optional parameter
81180// "returnPartialSuccess": Opt-in for partial success behavior which
81181// provides partial results in case of failure. The default value is
81182// false.
81183func (c *InstanceGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupsListCall {
81184	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
81185	return c
81186}
81187
81188// Fields allows partial responses to be retrieved. See
81189// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81190// for more information.
81191func (c *InstanceGroupsListCall) Fields(s ...googleapi.Field) *InstanceGroupsListCall {
81192	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81193	return c
81194}
81195
81196// IfNoneMatch sets the optional parameter which makes the operation
81197// fail if the object's ETag matches the given value. This is useful for
81198// getting updates only after the object has changed since the last
81199// request. Use googleapi.IsNotModified to check whether the response
81200// error from Do is the result of In-None-Match.
81201func (c *InstanceGroupsListCall) IfNoneMatch(entityTag string) *InstanceGroupsListCall {
81202	c.ifNoneMatch_ = entityTag
81203	return c
81204}
81205
81206// Context sets the context to be used in this call's Do method. Any
81207// pending HTTP request will be aborted if the provided context is
81208// canceled.
81209func (c *InstanceGroupsListCall) Context(ctx context.Context) *InstanceGroupsListCall {
81210	c.ctx_ = ctx
81211	return c
81212}
81213
81214// Header returns an http.Header that can be modified by the caller to
81215// add HTTP headers to the request.
81216func (c *InstanceGroupsListCall) Header() http.Header {
81217	if c.header_ == nil {
81218		c.header_ = make(http.Header)
81219	}
81220	return c.header_
81221}
81222
81223func (c *InstanceGroupsListCall) doRequest(alt string) (*http.Response, error) {
81224	reqHeaders := make(http.Header)
81225	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
81226	for k, v := range c.header_ {
81227		reqHeaders[k] = v
81228	}
81229	reqHeaders.Set("User-Agent", c.s.userAgent())
81230	if c.ifNoneMatch_ != "" {
81231		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
81232	}
81233	var body io.Reader = nil
81234	c.urlParams_.Set("alt", alt)
81235	c.urlParams_.Set("prettyPrint", "false")
81236	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups")
81237	urls += "?" + c.urlParams_.Encode()
81238	req, err := http.NewRequest("GET", urls, body)
81239	if err != nil {
81240		return nil, err
81241	}
81242	req.Header = reqHeaders
81243	googleapi.Expand(req.URL, map[string]string{
81244		"project": c.project,
81245		"zone":    c.zone,
81246	})
81247	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81248}
81249
81250// Do executes the "compute.instanceGroups.list" call.
81251// Exactly one of *InstanceGroupList or error will be non-nil. Any
81252// non-2xx status code is an error. Response headers are in either
81253// *InstanceGroupList.ServerResponse.Header or (if a response was
81254// returned at all) in error.(*googleapi.Error).Header. Use
81255// googleapi.IsNotModified to check whether the returned error was
81256// because http.StatusNotModified was returned.
81257func (c *InstanceGroupsListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupList, error) {
81258	gensupport.SetOptions(c.urlParams_, opts...)
81259	res, err := c.doRequest("json")
81260	if res != nil && res.StatusCode == http.StatusNotModified {
81261		if res.Body != nil {
81262			res.Body.Close()
81263		}
81264		return nil, &googleapi.Error{
81265			Code:   res.StatusCode,
81266			Header: res.Header,
81267		}
81268	}
81269	if err != nil {
81270		return nil, err
81271	}
81272	defer googleapi.CloseBody(res)
81273	if err := googleapi.CheckResponse(res); err != nil {
81274		return nil, err
81275	}
81276	ret := &InstanceGroupList{
81277		ServerResponse: googleapi.ServerResponse{
81278			Header:         res.Header,
81279			HTTPStatusCode: res.StatusCode,
81280		},
81281	}
81282	target := &ret
81283	if err := gensupport.DecodeResponse(target, res); err != nil {
81284		return nil, err
81285	}
81286	return ret, nil
81287	// {
81288	//   "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.",
81289	//   "httpMethod": "GET",
81290	//   "id": "compute.instanceGroups.list",
81291	//   "parameterOrder": [
81292	//     "project",
81293	//     "zone"
81294	//   ],
81295	//   "parameters": {
81296	//     "filter": {
81297	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
81298	//       "location": "query",
81299	//       "type": "string"
81300	//     },
81301	//     "maxResults": {
81302	//       "default": "500",
81303	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
81304	//       "format": "uint32",
81305	//       "location": "query",
81306	//       "minimum": "0",
81307	//       "type": "integer"
81308	//     },
81309	//     "orderBy": {
81310	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
81311	//       "location": "query",
81312	//       "type": "string"
81313	//     },
81314	//     "pageToken": {
81315	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
81316	//       "location": "query",
81317	//       "type": "string"
81318	//     },
81319	//     "project": {
81320	//       "description": "Project ID for this request.",
81321	//       "location": "path",
81322	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81323	//       "required": true,
81324	//       "type": "string"
81325	//     },
81326	//     "returnPartialSuccess": {
81327	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
81328	//       "location": "query",
81329	//       "type": "boolean"
81330	//     },
81331	//     "zone": {
81332	//       "description": "The name of the zone where the instance group is located.",
81333	//       "location": "path",
81334	//       "required": true,
81335	//       "type": "string"
81336	//     }
81337	//   },
81338	//   "path": "projects/{project}/zones/{zone}/instanceGroups",
81339	//   "response": {
81340	//     "$ref": "InstanceGroupList"
81341	//   },
81342	//   "scopes": [
81343	//     "https://www.googleapis.com/auth/cloud-platform",
81344	//     "https://www.googleapis.com/auth/compute",
81345	//     "https://www.googleapis.com/auth/compute.readonly"
81346	//   ]
81347	// }
81348
81349}
81350
81351// Pages invokes f for each page of results.
81352// A non-nil error returned from f will halt the iteration.
81353// The provided context supersedes any context provided to the Context method.
81354func (c *InstanceGroupsListCall) Pages(ctx context.Context, f func(*InstanceGroupList) error) error {
81355	c.ctx_ = ctx
81356	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
81357	for {
81358		x, err := c.Do()
81359		if err != nil {
81360			return err
81361		}
81362		if err := f(x); err != nil {
81363			return err
81364		}
81365		if x.NextPageToken == "" {
81366			return nil
81367		}
81368		c.PageToken(x.NextPageToken)
81369	}
81370}
81371
81372// method id "compute.instanceGroups.listInstances":
81373
81374type InstanceGroupsListInstancesCall struct {
81375	s                                  *Service
81376	project                            string
81377	zone                               string
81378	instanceGroup                      string
81379	instancegroupslistinstancesrequest *InstanceGroupsListInstancesRequest
81380	urlParams_                         gensupport.URLParams
81381	ctx_                               context.Context
81382	header_                            http.Header
81383}
81384
81385// ListInstances: Lists the instances in the specified instance group.
81386// The orderBy query parameter is not supported.
81387//
81388// - instanceGroup: The name of the instance group from which you want
81389//   to generate a list of included instances.
81390// - project: Project ID for this request.
81391// - zone: The name of the zone where the instance group is located.
81392func (r *InstanceGroupsService) ListInstances(project string, zone string, instanceGroup string, instancegroupslistinstancesrequest *InstanceGroupsListInstancesRequest) *InstanceGroupsListInstancesCall {
81393	c := &InstanceGroupsListInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81394	c.project = project
81395	c.zone = zone
81396	c.instanceGroup = instanceGroup
81397	c.instancegroupslistinstancesrequest = instancegroupslistinstancesrequest
81398	return c
81399}
81400
81401// Filter sets the optional parameter "filter": A filter expression that
81402// filters resources listed in the response. The expression must specify
81403// the field name, a comparison operator, and the value that you want to
81404// use for filtering. The value must be a string, a number, or a
81405// boolean. The comparison operator must be either `=`, `!=`, `>`, or
81406// `<`.
81407//
81408// For example, if you are filtering Compute Engine instances, you can
81409// exclude instances named `example-instance` by specifying `name !=
81410// example-instance`.
81411//
81412// You can also filter nested fields. For example, you could specify
81413// `scheduling.automaticRestart = false` to include instances only if
81414// they are not scheduled for automatic restarts. You can use filtering
81415// on nested fields to filter based on resource labels.
81416//
81417// To filter on multiple expressions, provide each separate expression
81418// within parentheses. For example: ``` (scheduling.automaticRestart =
81419// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
81420// is an `AND` expression. However, you can include `AND` and `OR`
81421// expressions explicitly. For example: ``` (cpuPlatform = "Intel
81422// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
81423// (scheduling.automaticRestart = true) ```
81424func (c *InstanceGroupsListInstancesCall) Filter(filter string) *InstanceGroupsListInstancesCall {
81425	c.urlParams_.Set("filter", filter)
81426	return c
81427}
81428
81429// MaxResults sets the optional parameter "maxResults": The maximum
81430// number of results per page that should be returned. If the number of
81431// available results is larger than `maxResults`, Compute Engine returns
81432// a `nextPageToken` that can be used to get the next page of results in
81433// subsequent list requests. Acceptable values are `0` to `500`,
81434// inclusive. (Default: `500`)
81435func (c *InstanceGroupsListInstancesCall) MaxResults(maxResults int64) *InstanceGroupsListInstancesCall {
81436	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
81437	return c
81438}
81439
81440// OrderBy sets the optional parameter "orderBy": Sorts list results by
81441// a certain order. By default, results are returned in alphanumerical
81442// order based on the resource name.
81443//
81444// You can also sort results in descending order based on the creation
81445// timestamp using `orderBy="creationTimestamp desc". This sorts
81446// results based on the `creationTimestamp` field in reverse
81447// chronological order (newest result first). Use this to sort resources
81448// like operations so that the newest operation is returned
81449// first.
81450//
81451// Currently, only sorting by `name` or `creationTimestamp desc` is
81452// supported.
81453func (c *InstanceGroupsListInstancesCall) OrderBy(orderBy string) *InstanceGroupsListInstancesCall {
81454	c.urlParams_.Set("orderBy", orderBy)
81455	return c
81456}
81457
81458// PageToken sets the optional parameter "pageToken": Specifies a page
81459// token to use. Set `pageToken` to the `nextPageToken` returned by a
81460// previous list request to get the next page of results.
81461func (c *InstanceGroupsListInstancesCall) PageToken(pageToken string) *InstanceGroupsListInstancesCall {
81462	c.urlParams_.Set("pageToken", pageToken)
81463	return c
81464}
81465
81466// ReturnPartialSuccess sets the optional parameter
81467// "returnPartialSuccess": Opt-in for partial success behavior which
81468// provides partial results in case of failure. The default value is
81469// false.
81470func (c *InstanceGroupsListInstancesCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceGroupsListInstancesCall {
81471	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
81472	return c
81473}
81474
81475// Fields allows partial responses to be retrieved. See
81476// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81477// for more information.
81478func (c *InstanceGroupsListInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsListInstancesCall {
81479	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81480	return c
81481}
81482
81483// Context sets the context to be used in this call's Do method. Any
81484// pending HTTP request will be aborted if the provided context is
81485// canceled.
81486func (c *InstanceGroupsListInstancesCall) Context(ctx context.Context) *InstanceGroupsListInstancesCall {
81487	c.ctx_ = ctx
81488	return c
81489}
81490
81491// Header returns an http.Header that can be modified by the caller to
81492// add HTTP headers to the request.
81493func (c *InstanceGroupsListInstancesCall) Header() http.Header {
81494	if c.header_ == nil {
81495		c.header_ = make(http.Header)
81496	}
81497	return c.header_
81498}
81499
81500func (c *InstanceGroupsListInstancesCall) doRequest(alt string) (*http.Response, error) {
81501	reqHeaders := make(http.Header)
81502	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
81503	for k, v := range c.header_ {
81504		reqHeaders[k] = v
81505	}
81506	reqHeaders.Set("User-Agent", c.s.userAgent())
81507	var body io.Reader = nil
81508	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupslistinstancesrequest)
81509	if err != nil {
81510		return nil, err
81511	}
81512	reqHeaders.Set("Content-Type", "application/json")
81513	c.urlParams_.Set("alt", alt)
81514	c.urlParams_.Set("prettyPrint", "false")
81515	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances")
81516	urls += "?" + c.urlParams_.Encode()
81517	req, err := http.NewRequest("POST", urls, body)
81518	if err != nil {
81519		return nil, err
81520	}
81521	req.Header = reqHeaders
81522	googleapi.Expand(req.URL, map[string]string{
81523		"project":       c.project,
81524		"zone":          c.zone,
81525		"instanceGroup": c.instanceGroup,
81526	})
81527	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81528}
81529
81530// Do executes the "compute.instanceGroups.listInstances" call.
81531// Exactly one of *InstanceGroupsListInstances or error will be non-nil.
81532// Any non-2xx status code is an error. Response headers are in either
81533// *InstanceGroupsListInstances.ServerResponse.Header or (if a response
81534// was returned at all) in error.(*googleapi.Error).Header. Use
81535// googleapi.IsNotModified to check whether the returned error was
81536// because http.StatusNotModified was returned.
81537func (c *InstanceGroupsListInstancesCall) Do(opts ...googleapi.CallOption) (*InstanceGroupsListInstances, error) {
81538	gensupport.SetOptions(c.urlParams_, opts...)
81539	res, err := c.doRequest("json")
81540	if res != nil && res.StatusCode == http.StatusNotModified {
81541		if res.Body != nil {
81542			res.Body.Close()
81543		}
81544		return nil, &googleapi.Error{
81545			Code:   res.StatusCode,
81546			Header: res.Header,
81547		}
81548	}
81549	if err != nil {
81550		return nil, err
81551	}
81552	defer googleapi.CloseBody(res)
81553	if err := googleapi.CheckResponse(res); err != nil {
81554		return nil, err
81555	}
81556	ret := &InstanceGroupsListInstances{
81557		ServerResponse: googleapi.ServerResponse{
81558			Header:         res.Header,
81559			HTTPStatusCode: res.StatusCode,
81560		},
81561	}
81562	target := &ret
81563	if err := gensupport.DecodeResponse(target, res); err != nil {
81564		return nil, err
81565	}
81566	return ret, nil
81567	// {
81568	//   "description": "Lists the instances in the specified instance group. The orderBy query parameter is not supported.",
81569	//   "httpMethod": "POST",
81570	//   "id": "compute.instanceGroups.listInstances",
81571	//   "parameterOrder": [
81572	//     "project",
81573	//     "zone",
81574	//     "instanceGroup"
81575	//   ],
81576	//   "parameters": {
81577	//     "filter": {
81578	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
81579	//       "location": "query",
81580	//       "type": "string"
81581	//     },
81582	//     "instanceGroup": {
81583	//       "description": "The name of the instance group from which you want to generate a list of included instances.",
81584	//       "location": "path",
81585	//       "required": true,
81586	//       "type": "string"
81587	//     },
81588	//     "maxResults": {
81589	//       "default": "500",
81590	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
81591	//       "format": "uint32",
81592	//       "location": "query",
81593	//       "minimum": "0",
81594	//       "type": "integer"
81595	//     },
81596	//     "orderBy": {
81597	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
81598	//       "location": "query",
81599	//       "type": "string"
81600	//     },
81601	//     "pageToken": {
81602	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
81603	//       "location": "query",
81604	//       "type": "string"
81605	//     },
81606	//     "project": {
81607	//       "description": "Project ID for this request.",
81608	//       "location": "path",
81609	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81610	//       "required": true,
81611	//       "type": "string"
81612	//     },
81613	//     "returnPartialSuccess": {
81614	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
81615	//       "location": "query",
81616	//       "type": "boolean"
81617	//     },
81618	//     "zone": {
81619	//       "description": "The name of the zone where the instance group is located.",
81620	//       "location": "path",
81621	//       "required": true,
81622	//       "type": "string"
81623	//     }
81624	//   },
81625	//   "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances",
81626	//   "request": {
81627	//     "$ref": "InstanceGroupsListInstancesRequest"
81628	//   },
81629	//   "response": {
81630	//     "$ref": "InstanceGroupsListInstances"
81631	//   },
81632	//   "scopes": [
81633	//     "https://www.googleapis.com/auth/cloud-platform",
81634	//     "https://www.googleapis.com/auth/compute",
81635	//     "https://www.googleapis.com/auth/compute.readonly"
81636	//   ]
81637	// }
81638
81639}
81640
81641// Pages invokes f for each page of results.
81642// A non-nil error returned from f will halt the iteration.
81643// The provided context supersedes any context provided to the Context method.
81644func (c *InstanceGroupsListInstancesCall) Pages(ctx context.Context, f func(*InstanceGroupsListInstances) error) error {
81645	c.ctx_ = ctx
81646	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
81647	for {
81648		x, err := c.Do()
81649		if err != nil {
81650			return err
81651		}
81652		if err := f(x); err != nil {
81653			return err
81654		}
81655		if x.NextPageToken == "" {
81656			return nil
81657		}
81658		c.PageToken(x.NextPageToken)
81659	}
81660}
81661
81662// method id "compute.instanceGroups.removeInstances":
81663
81664type InstanceGroupsRemoveInstancesCall struct {
81665	s                                    *Service
81666	project                              string
81667	zone                                 string
81668	instanceGroup                        string
81669	instancegroupsremoveinstancesrequest *InstanceGroupsRemoveInstancesRequest
81670	urlParams_                           gensupport.URLParams
81671	ctx_                                 context.Context
81672	header_                              http.Header
81673}
81674
81675// RemoveInstances: Removes one or more instances from the specified
81676// instance group, but does not delete those instances.
81677//
81678// If the group is part of a backend service that has enabled connection
81679// draining, it can take up to 60 seconds after the connection draining
81680// duration before the VM instance is removed or deleted.
81681//
81682// - instanceGroup: The name of the instance group where the specified
81683//   instances will be removed.
81684// - project: Project ID for this request.
81685// - zone: The name of the zone where the instance group is located.
81686func (r *InstanceGroupsService) RemoveInstances(project string, zone string, instanceGroup string, instancegroupsremoveinstancesrequest *InstanceGroupsRemoveInstancesRequest) *InstanceGroupsRemoveInstancesCall {
81687	c := &InstanceGroupsRemoveInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81688	c.project = project
81689	c.zone = zone
81690	c.instanceGroup = instanceGroup
81691	c.instancegroupsremoveinstancesrequest = instancegroupsremoveinstancesrequest
81692	return c
81693}
81694
81695// RequestId sets the optional parameter "requestId": An optional
81696// request ID to identify requests. Specify a unique request ID so that
81697// if you must retry your request, the server will know to ignore the
81698// request if it has already been completed.
81699//
81700// For example, consider a situation where you make an initial request
81701// and the request times out. If you make the request again with the
81702// same request ID, the server can check if original operation with the
81703// same request ID was received, and if so, will ignore the second
81704// request. This prevents clients from accidentally creating duplicate
81705// commitments.
81706//
81707// The request ID must be a valid UUID with the exception that zero UUID
81708// is not supported (00000000-0000-0000-0000-000000000000).
81709func (c *InstanceGroupsRemoveInstancesCall) RequestId(requestId string) *InstanceGroupsRemoveInstancesCall {
81710	c.urlParams_.Set("requestId", requestId)
81711	return c
81712}
81713
81714// Fields allows partial responses to be retrieved. See
81715// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81716// for more information.
81717func (c *InstanceGroupsRemoveInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsRemoveInstancesCall {
81718	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81719	return c
81720}
81721
81722// Context sets the context to be used in this call's Do method. Any
81723// pending HTTP request will be aborted if the provided context is
81724// canceled.
81725func (c *InstanceGroupsRemoveInstancesCall) Context(ctx context.Context) *InstanceGroupsRemoveInstancesCall {
81726	c.ctx_ = ctx
81727	return c
81728}
81729
81730// Header returns an http.Header that can be modified by the caller to
81731// add HTTP headers to the request.
81732func (c *InstanceGroupsRemoveInstancesCall) Header() http.Header {
81733	if c.header_ == nil {
81734		c.header_ = make(http.Header)
81735	}
81736	return c.header_
81737}
81738
81739func (c *InstanceGroupsRemoveInstancesCall) doRequest(alt string) (*http.Response, error) {
81740	reqHeaders := make(http.Header)
81741	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
81742	for k, v := range c.header_ {
81743		reqHeaders[k] = v
81744	}
81745	reqHeaders.Set("User-Agent", c.s.userAgent())
81746	var body io.Reader = nil
81747	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupsremoveinstancesrequest)
81748	if err != nil {
81749		return nil, err
81750	}
81751	reqHeaders.Set("Content-Type", "application/json")
81752	c.urlParams_.Set("alt", alt)
81753	c.urlParams_.Set("prettyPrint", "false")
81754	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances")
81755	urls += "?" + c.urlParams_.Encode()
81756	req, err := http.NewRequest("POST", urls, body)
81757	if err != nil {
81758		return nil, err
81759	}
81760	req.Header = reqHeaders
81761	googleapi.Expand(req.URL, map[string]string{
81762		"project":       c.project,
81763		"zone":          c.zone,
81764		"instanceGroup": c.instanceGroup,
81765	})
81766	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81767}
81768
81769// Do executes the "compute.instanceGroups.removeInstances" call.
81770// Exactly one of *Operation or error will be non-nil. Any non-2xx
81771// status code is an error. Response headers are in either
81772// *Operation.ServerResponse.Header or (if a response was returned at
81773// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81774// to check whether the returned error was because
81775// http.StatusNotModified was returned.
81776func (c *InstanceGroupsRemoveInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81777	gensupport.SetOptions(c.urlParams_, opts...)
81778	res, err := c.doRequest("json")
81779	if res != nil && res.StatusCode == http.StatusNotModified {
81780		if res.Body != nil {
81781			res.Body.Close()
81782		}
81783		return nil, &googleapi.Error{
81784			Code:   res.StatusCode,
81785			Header: res.Header,
81786		}
81787	}
81788	if err != nil {
81789		return nil, err
81790	}
81791	defer googleapi.CloseBody(res)
81792	if err := googleapi.CheckResponse(res); err != nil {
81793		return nil, err
81794	}
81795	ret := &Operation{
81796		ServerResponse: googleapi.ServerResponse{
81797			Header:         res.Header,
81798			HTTPStatusCode: res.StatusCode,
81799		},
81800	}
81801	target := &ret
81802	if err := gensupport.DecodeResponse(target, res); err != nil {
81803		return nil, err
81804	}
81805	return ret, nil
81806	// {
81807	//   "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.",
81808	//   "httpMethod": "POST",
81809	//   "id": "compute.instanceGroups.removeInstances",
81810	//   "parameterOrder": [
81811	//     "project",
81812	//     "zone",
81813	//     "instanceGroup"
81814	//   ],
81815	//   "parameters": {
81816	//     "instanceGroup": {
81817	//       "description": "The name of the instance group where the specified instances will be removed.",
81818	//       "location": "path",
81819	//       "required": true,
81820	//       "type": "string"
81821	//     },
81822	//     "project": {
81823	//       "description": "Project ID for this request.",
81824	//       "location": "path",
81825	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81826	//       "required": true,
81827	//       "type": "string"
81828	//     },
81829	//     "requestId": {
81830	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
81831	//       "location": "query",
81832	//       "type": "string"
81833	//     },
81834	//     "zone": {
81835	//       "description": "The name of the zone where the instance group is located.",
81836	//       "location": "path",
81837	//       "required": true,
81838	//       "type": "string"
81839	//     }
81840	//   },
81841	//   "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances",
81842	//   "request": {
81843	//     "$ref": "InstanceGroupsRemoveInstancesRequest"
81844	//   },
81845	//   "response": {
81846	//     "$ref": "Operation"
81847	//   },
81848	//   "scopes": [
81849	//     "https://www.googleapis.com/auth/cloud-platform",
81850	//     "https://www.googleapis.com/auth/compute"
81851	//   ]
81852	// }
81853
81854}
81855
81856// method id "compute.instanceGroups.setNamedPorts":
81857
81858type InstanceGroupsSetNamedPortsCall struct {
81859	s                                  *Service
81860	project                            string
81861	zone                               string
81862	instanceGroup                      string
81863	instancegroupssetnamedportsrequest *InstanceGroupsSetNamedPortsRequest
81864	urlParams_                         gensupport.URLParams
81865	ctx_                               context.Context
81866	header_                            http.Header
81867}
81868
81869// SetNamedPorts: Sets the named ports for the specified instance group.
81870//
81871// - instanceGroup: The name of the instance group where the named ports
81872//   are updated.
81873// - project: Project ID for this request.
81874// - zone: The name of the zone where the instance group is located.
81875func (r *InstanceGroupsService) SetNamedPorts(project string, zone string, instanceGroup string, instancegroupssetnamedportsrequest *InstanceGroupsSetNamedPortsRequest) *InstanceGroupsSetNamedPortsCall {
81876	c := &InstanceGroupsSetNamedPortsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81877	c.project = project
81878	c.zone = zone
81879	c.instanceGroup = instanceGroup
81880	c.instancegroupssetnamedportsrequest = instancegroupssetnamedportsrequest
81881	return c
81882}
81883
81884// RequestId sets the optional parameter "requestId": An optional
81885// request ID to identify requests. Specify a unique request ID so that
81886// if you must retry your request, the server will know to ignore the
81887// request if it has already been completed.
81888//
81889// For example, consider a situation where you make an initial request
81890// and the request times out. If you make the request again with the
81891// same request ID, the server can check if original operation with the
81892// same request ID was received, and if so, will ignore the second
81893// request. This prevents clients from accidentally creating duplicate
81894// commitments.
81895//
81896// The request ID must be a valid UUID with the exception that zero UUID
81897// is not supported (00000000-0000-0000-0000-000000000000).
81898func (c *InstanceGroupsSetNamedPortsCall) RequestId(requestId string) *InstanceGroupsSetNamedPortsCall {
81899	c.urlParams_.Set("requestId", requestId)
81900	return c
81901}
81902
81903// Fields allows partial responses to be retrieved. See
81904// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81905// for more information.
81906func (c *InstanceGroupsSetNamedPortsCall) Fields(s ...googleapi.Field) *InstanceGroupsSetNamedPortsCall {
81907	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81908	return c
81909}
81910
81911// Context sets the context to be used in this call's Do method. Any
81912// pending HTTP request will be aborted if the provided context is
81913// canceled.
81914func (c *InstanceGroupsSetNamedPortsCall) Context(ctx context.Context) *InstanceGroupsSetNamedPortsCall {
81915	c.ctx_ = ctx
81916	return c
81917}
81918
81919// Header returns an http.Header that can be modified by the caller to
81920// add HTTP headers to the request.
81921func (c *InstanceGroupsSetNamedPortsCall) Header() http.Header {
81922	if c.header_ == nil {
81923		c.header_ = make(http.Header)
81924	}
81925	return c.header_
81926}
81927
81928func (c *InstanceGroupsSetNamedPortsCall) doRequest(alt string) (*http.Response, error) {
81929	reqHeaders := make(http.Header)
81930	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
81931	for k, v := range c.header_ {
81932		reqHeaders[k] = v
81933	}
81934	reqHeaders.Set("User-Agent", c.s.userAgent())
81935	var body io.Reader = nil
81936	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupssetnamedportsrequest)
81937	if err != nil {
81938		return nil, err
81939	}
81940	reqHeaders.Set("Content-Type", "application/json")
81941	c.urlParams_.Set("alt", alt)
81942	c.urlParams_.Set("prettyPrint", "false")
81943	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts")
81944	urls += "?" + c.urlParams_.Encode()
81945	req, err := http.NewRequest("POST", urls, body)
81946	if err != nil {
81947		return nil, err
81948	}
81949	req.Header = reqHeaders
81950	googleapi.Expand(req.URL, map[string]string{
81951		"project":       c.project,
81952		"zone":          c.zone,
81953		"instanceGroup": c.instanceGroup,
81954	})
81955	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81956}
81957
81958// Do executes the "compute.instanceGroups.setNamedPorts" call.
81959// Exactly one of *Operation or error will be non-nil. Any non-2xx
81960// status code is an error. Response headers are in either
81961// *Operation.ServerResponse.Header or (if a response was returned at
81962// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81963// to check whether the returned error was because
81964// http.StatusNotModified was returned.
81965func (c *InstanceGroupsSetNamedPortsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81966	gensupport.SetOptions(c.urlParams_, opts...)
81967	res, err := c.doRequest("json")
81968	if res != nil && res.StatusCode == http.StatusNotModified {
81969		if res.Body != nil {
81970			res.Body.Close()
81971		}
81972		return nil, &googleapi.Error{
81973			Code:   res.StatusCode,
81974			Header: res.Header,
81975		}
81976	}
81977	if err != nil {
81978		return nil, err
81979	}
81980	defer googleapi.CloseBody(res)
81981	if err := googleapi.CheckResponse(res); err != nil {
81982		return nil, err
81983	}
81984	ret := &Operation{
81985		ServerResponse: googleapi.ServerResponse{
81986			Header:         res.Header,
81987			HTTPStatusCode: res.StatusCode,
81988		},
81989	}
81990	target := &ret
81991	if err := gensupport.DecodeResponse(target, res); err != nil {
81992		return nil, err
81993	}
81994	return ret, nil
81995	// {
81996	//   "description": "Sets the named ports for the specified instance group.",
81997	//   "httpMethod": "POST",
81998	//   "id": "compute.instanceGroups.setNamedPorts",
81999	//   "parameterOrder": [
82000	//     "project",
82001	//     "zone",
82002	//     "instanceGroup"
82003	//   ],
82004	//   "parameters": {
82005	//     "instanceGroup": {
82006	//       "description": "The name of the instance group where the named ports are updated.",
82007	//       "location": "path",
82008	//       "required": true,
82009	//       "type": "string"
82010	//     },
82011	//     "project": {
82012	//       "description": "Project ID for this request.",
82013	//       "location": "path",
82014	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82015	//       "required": true,
82016	//       "type": "string"
82017	//     },
82018	//     "requestId": {
82019	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
82020	//       "location": "query",
82021	//       "type": "string"
82022	//     },
82023	//     "zone": {
82024	//       "description": "The name of the zone where the instance group is located.",
82025	//       "location": "path",
82026	//       "required": true,
82027	//       "type": "string"
82028	//     }
82029	//   },
82030	//   "path": "projects/{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts",
82031	//   "request": {
82032	//     "$ref": "InstanceGroupsSetNamedPortsRequest"
82033	//   },
82034	//   "response": {
82035	//     "$ref": "Operation"
82036	//   },
82037	//   "scopes": [
82038	//     "https://www.googleapis.com/auth/cloud-platform",
82039	//     "https://www.googleapis.com/auth/compute"
82040	//   ]
82041	// }
82042
82043}
82044
82045// method id "compute.instanceTemplates.delete":
82046
82047type InstanceTemplatesDeleteCall struct {
82048	s                *Service
82049	project          string
82050	instanceTemplate string
82051	urlParams_       gensupport.URLParams
82052	ctx_             context.Context
82053	header_          http.Header
82054}
82055
82056// Delete: Deletes the specified instance template. Deleting an instance
82057// template is permanent and cannot be undone. It is not possible to
82058// delete templates that are already in use by a managed instance group.
82059//
82060// - instanceTemplate: The name of the instance template to delete.
82061// - project: Project ID for this request.
82062// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/delete
82063func (r *InstanceTemplatesService) Delete(project string, instanceTemplate string) *InstanceTemplatesDeleteCall {
82064	c := &InstanceTemplatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82065	c.project = project
82066	c.instanceTemplate = instanceTemplate
82067	return c
82068}
82069
82070// RequestId sets the optional parameter "requestId": An optional
82071// request ID to identify requests. Specify a unique request ID so that
82072// if you must retry your request, the server will know to ignore the
82073// request if it has already been completed.
82074//
82075// For example, consider a situation where you make an initial request
82076// and the request times out. If you make the request again with the
82077// same request ID, the server can check if original operation with the
82078// same request ID was received, and if so, will ignore the second
82079// request. This prevents clients from accidentally creating duplicate
82080// commitments.
82081//
82082// The request ID must be a valid UUID with the exception that zero UUID
82083// is not supported (00000000-0000-0000-0000-000000000000).
82084func (c *InstanceTemplatesDeleteCall) RequestId(requestId string) *InstanceTemplatesDeleteCall {
82085	c.urlParams_.Set("requestId", requestId)
82086	return c
82087}
82088
82089// Fields allows partial responses to be retrieved. See
82090// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82091// for more information.
82092func (c *InstanceTemplatesDeleteCall) Fields(s ...googleapi.Field) *InstanceTemplatesDeleteCall {
82093	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82094	return c
82095}
82096
82097// Context sets the context to be used in this call's Do method. Any
82098// pending HTTP request will be aborted if the provided context is
82099// canceled.
82100func (c *InstanceTemplatesDeleteCall) Context(ctx context.Context) *InstanceTemplatesDeleteCall {
82101	c.ctx_ = ctx
82102	return c
82103}
82104
82105// Header returns an http.Header that can be modified by the caller to
82106// add HTTP headers to the request.
82107func (c *InstanceTemplatesDeleteCall) Header() http.Header {
82108	if c.header_ == nil {
82109		c.header_ = make(http.Header)
82110	}
82111	return c.header_
82112}
82113
82114func (c *InstanceTemplatesDeleteCall) doRequest(alt string) (*http.Response, error) {
82115	reqHeaders := make(http.Header)
82116	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
82117	for k, v := range c.header_ {
82118		reqHeaders[k] = v
82119	}
82120	reqHeaders.Set("User-Agent", c.s.userAgent())
82121	var body io.Reader = nil
82122	c.urlParams_.Set("alt", alt)
82123	c.urlParams_.Set("prettyPrint", "false")
82124	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates/{instanceTemplate}")
82125	urls += "?" + c.urlParams_.Encode()
82126	req, err := http.NewRequest("DELETE", urls, body)
82127	if err != nil {
82128		return nil, err
82129	}
82130	req.Header = reqHeaders
82131	googleapi.Expand(req.URL, map[string]string{
82132		"project":          c.project,
82133		"instanceTemplate": c.instanceTemplate,
82134	})
82135	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82136}
82137
82138// Do executes the "compute.instanceTemplates.delete" call.
82139// Exactly one of *Operation or error will be non-nil. Any non-2xx
82140// status code is an error. Response headers are in either
82141// *Operation.ServerResponse.Header or (if a response was returned at
82142// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
82143// to check whether the returned error was because
82144// http.StatusNotModified was returned.
82145func (c *InstanceTemplatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
82146	gensupport.SetOptions(c.urlParams_, opts...)
82147	res, err := c.doRequest("json")
82148	if res != nil && res.StatusCode == http.StatusNotModified {
82149		if res.Body != nil {
82150			res.Body.Close()
82151		}
82152		return nil, &googleapi.Error{
82153			Code:   res.StatusCode,
82154			Header: res.Header,
82155		}
82156	}
82157	if err != nil {
82158		return nil, err
82159	}
82160	defer googleapi.CloseBody(res)
82161	if err := googleapi.CheckResponse(res); err != nil {
82162		return nil, err
82163	}
82164	ret := &Operation{
82165		ServerResponse: googleapi.ServerResponse{
82166			Header:         res.Header,
82167			HTTPStatusCode: res.StatusCode,
82168		},
82169	}
82170	target := &ret
82171	if err := gensupport.DecodeResponse(target, res); err != nil {
82172		return nil, err
82173	}
82174	return ret, nil
82175	// {
82176	//   "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.",
82177	//   "httpMethod": "DELETE",
82178	//   "id": "compute.instanceTemplates.delete",
82179	//   "parameterOrder": [
82180	//     "project",
82181	//     "instanceTemplate"
82182	//   ],
82183	//   "parameters": {
82184	//     "instanceTemplate": {
82185	//       "description": "The name of the instance template to delete.",
82186	//       "location": "path",
82187	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
82188	//       "required": true,
82189	//       "type": "string"
82190	//     },
82191	//     "project": {
82192	//       "description": "Project ID for this request.",
82193	//       "location": "path",
82194	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82195	//       "required": true,
82196	//       "type": "string"
82197	//     },
82198	//     "requestId": {
82199	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
82200	//       "location": "query",
82201	//       "type": "string"
82202	//     }
82203	//   },
82204	//   "path": "projects/{project}/global/instanceTemplates/{instanceTemplate}",
82205	//   "response": {
82206	//     "$ref": "Operation"
82207	//   },
82208	//   "scopes": [
82209	//     "https://www.googleapis.com/auth/cloud-platform",
82210	//     "https://www.googleapis.com/auth/compute"
82211	//   ]
82212	// }
82213
82214}
82215
82216// method id "compute.instanceTemplates.get":
82217
82218type InstanceTemplatesGetCall struct {
82219	s                *Service
82220	project          string
82221	instanceTemplate string
82222	urlParams_       gensupport.URLParams
82223	ifNoneMatch_     string
82224	ctx_             context.Context
82225	header_          http.Header
82226}
82227
82228// Get: Returns the specified instance template. Gets a list of
82229// available instance templates by making a list() request.
82230//
82231// - instanceTemplate: The name of the instance template.
82232// - project: Project ID for this request.
82233// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/get
82234func (r *InstanceTemplatesService) Get(project string, instanceTemplate string) *InstanceTemplatesGetCall {
82235	c := &InstanceTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82236	c.project = project
82237	c.instanceTemplate = instanceTemplate
82238	return c
82239}
82240
82241// Fields allows partial responses to be retrieved. See
82242// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82243// for more information.
82244func (c *InstanceTemplatesGetCall) Fields(s ...googleapi.Field) *InstanceTemplatesGetCall {
82245	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82246	return c
82247}
82248
82249// IfNoneMatch sets the optional parameter which makes the operation
82250// fail if the object's ETag matches the given value. This is useful for
82251// getting updates only after the object has changed since the last
82252// request. Use googleapi.IsNotModified to check whether the response
82253// error from Do is the result of In-None-Match.
82254func (c *InstanceTemplatesGetCall) IfNoneMatch(entityTag string) *InstanceTemplatesGetCall {
82255	c.ifNoneMatch_ = entityTag
82256	return c
82257}
82258
82259// Context sets the context to be used in this call's Do method. Any
82260// pending HTTP request will be aborted if the provided context is
82261// canceled.
82262func (c *InstanceTemplatesGetCall) Context(ctx context.Context) *InstanceTemplatesGetCall {
82263	c.ctx_ = ctx
82264	return c
82265}
82266
82267// Header returns an http.Header that can be modified by the caller to
82268// add HTTP headers to the request.
82269func (c *InstanceTemplatesGetCall) Header() http.Header {
82270	if c.header_ == nil {
82271		c.header_ = make(http.Header)
82272	}
82273	return c.header_
82274}
82275
82276func (c *InstanceTemplatesGetCall) doRequest(alt string) (*http.Response, error) {
82277	reqHeaders := make(http.Header)
82278	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
82279	for k, v := range c.header_ {
82280		reqHeaders[k] = v
82281	}
82282	reqHeaders.Set("User-Agent", c.s.userAgent())
82283	if c.ifNoneMatch_ != "" {
82284		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
82285	}
82286	var body io.Reader = nil
82287	c.urlParams_.Set("alt", alt)
82288	c.urlParams_.Set("prettyPrint", "false")
82289	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates/{instanceTemplate}")
82290	urls += "?" + c.urlParams_.Encode()
82291	req, err := http.NewRequest("GET", urls, body)
82292	if err != nil {
82293		return nil, err
82294	}
82295	req.Header = reqHeaders
82296	googleapi.Expand(req.URL, map[string]string{
82297		"project":          c.project,
82298		"instanceTemplate": c.instanceTemplate,
82299	})
82300	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82301}
82302
82303// Do executes the "compute.instanceTemplates.get" call.
82304// Exactly one of *InstanceTemplate or error will be non-nil. Any
82305// non-2xx status code is an error. Response headers are in either
82306// *InstanceTemplate.ServerResponse.Header or (if a response was
82307// returned at all) in error.(*googleapi.Error).Header. Use
82308// googleapi.IsNotModified to check whether the returned error was
82309// because http.StatusNotModified was returned.
82310func (c *InstanceTemplatesGetCall) Do(opts ...googleapi.CallOption) (*InstanceTemplate, error) {
82311	gensupport.SetOptions(c.urlParams_, opts...)
82312	res, err := c.doRequest("json")
82313	if res != nil && res.StatusCode == http.StatusNotModified {
82314		if res.Body != nil {
82315			res.Body.Close()
82316		}
82317		return nil, &googleapi.Error{
82318			Code:   res.StatusCode,
82319			Header: res.Header,
82320		}
82321	}
82322	if err != nil {
82323		return nil, err
82324	}
82325	defer googleapi.CloseBody(res)
82326	if err := googleapi.CheckResponse(res); err != nil {
82327		return nil, err
82328	}
82329	ret := &InstanceTemplate{
82330		ServerResponse: googleapi.ServerResponse{
82331			Header:         res.Header,
82332			HTTPStatusCode: res.StatusCode,
82333		},
82334	}
82335	target := &ret
82336	if err := gensupport.DecodeResponse(target, res); err != nil {
82337		return nil, err
82338	}
82339	return ret, nil
82340	// {
82341	//   "description": "Returns the specified instance template. Gets a list of available instance templates by making a list() request.",
82342	//   "httpMethod": "GET",
82343	//   "id": "compute.instanceTemplates.get",
82344	//   "parameterOrder": [
82345	//     "project",
82346	//     "instanceTemplate"
82347	//   ],
82348	//   "parameters": {
82349	//     "instanceTemplate": {
82350	//       "description": "The name of the instance template.",
82351	//       "location": "path",
82352	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
82353	//       "required": true,
82354	//       "type": "string"
82355	//     },
82356	//     "project": {
82357	//       "description": "Project ID for this request.",
82358	//       "location": "path",
82359	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82360	//       "required": true,
82361	//       "type": "string"
82362	//     }
82363	//   },
82364	//   "path": "projects/{project}/global/instanceTemplates/{instanceTemplate}",
82365	//   "response": {
82366	//     "$ref": "InstanceTemplate"
82367	//   },
82368	//   "scopes": [
82369	//     "https://www.googleapis.com/auth/cloud-platform",
82370	//     "https://www.googleapis.com/auth/compute",
82371	//     "https://www.googleapis.com/auth/compute.readonly"
82372	//   ]
82373	// }
82374
82375}
82376
82377// method id "compute.instanceTemplates.getIamPolicy":
82378
82379type InstanceTemplatesGetIamPolicyCall struct {
82380	s            *Service
82381	project      string
82382	resource     string
82383	urlParams_   gensupport.URLParams
82384	ifNoneMatch_ string
82385	ctx_         context.Context
82386	header_      http.Header
82387}
82388
82389// GetIamPolicy: Gets the access control policy for a resource. May be
82390// empty if no such policy or resource exists.
82391//
82392// - project: Project ID for this request.
82393// - resource: Name or id of the resource for this request.
82394func (r *InstanceTemplatesService) GetIamPolicy(project string, resource string) *InstanceTemplatesGetIamPolicyCall {
82395	c := &InstanceTemplatesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82396	c.project = project
82397	c.resource = resource
82398	return c
82399}
82400
82401// OptionsRequestedPolicyVersion sets the optional parameter
82402// "optionsRequestedPolicyVersion": Requested IAM Policy version.
82403func (c *InstanceTemplatesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *InstanceTemplatesGetIamPolicyCall {
82404	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
82405	return c
82406}
82407
82408// Fields allows partial responses to be retrieved. See
82409// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82410// for more information.
82411func (c *InstanceTemplatesGetIamPolicyCall) Fields(s ...googleapi.Field) *InstanceTemplatesGetIamPolicyCall {
82412	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82413	return c
82414}
82415
82416// IfNoneMatch sets the optional parameter which makes the operation
82417// fail if the object's ETag matches the given value. This is useful for
82418// getting updates only after the object has changed since the last
82419// request. Use googleapi.IsNotModified to check whether the response
82420// error from Do is the result of In-None-Match.
82421func (c *InstanceTemplatesGetIamPolicyCall) IfNoneMatch(entityTag string) *InstanceTemplatesGetIamPolicyCall {
82422	c.ifNoneMatch_ = entityTag
82423	return c
82424}
82425
82426// Context sets the context to be used in this call's Do method. Any
82427// pending HTTP request will be aborted if the provided context is
82428// canceled.
82429func (c *InstanceTemplatesGetIamPolicyCall) Context(ctx context.Context) *InstanceTemplatesGetIamPolicyCall {
82430	c.ctx_ = ctx
82431	return c
82432}
82433
82434// Header returns an http.Header that can be modified by the caller to
82435// add HTTP headers to the request.
82436func (c *InstanceTemplatesGetIamPolicyCall) Header() http.Header {
82437	if c.header_ == nil {
82438		c.header_ = make(http.Header)
82439	}
82440	return c.header_
82441}
82442
82443func (c *InstanceTemplatesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
82444	reqHeaders := make(http.Header)
82445	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
82446	for k, v := range c.header_ {
82447		reqHeaders[k] = v
82448	}
82449	reqHeaders.Set("User-Agent", c.s.userAgent())
82450	if c.ifNoneMatch_ != "" {
82451		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
82452	}
82453	var body io.Reader = nil
82454	c.urlParams_.Set("alt", alt)
82455	c.urlParams_.Set("prettyPrint", "false")
82456	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates/{resource}/getIamPolicy")
82457	urls += "?" + c.urlParams_.Encode()
82458	req, err := http.NewRequest("GET", urls, body)
82459	if err != nil {
82460		return nil, err
82461	}
82462	req.Header = reqHeaders
82463	googleapi.Expand(req.URL, map[string]string{
82464		"project":  c.project,
82465		"resource": c.resource,
82466	})
82467	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82468}
82469
82470// Do executes the "compute.instanceTemplates.getIamPolicy" call.
82471// Exactly one of *Policy or error will be non-nil. Any non-2xx status
82472// code is an error. Response headers are in either
82473// *Policy.ServerResponse.Header or (if a response was returned at all)
82474// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
82475// check whether the returned error was because http.StatusNotModified
82476// was returned.
82477func (c *InstanceTemplatesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
82478	gensupport.SetOptions(c.urlParams_, opts...)
82479	res, err := c.doRequest("json")
82480	if res != nil && res.StatusCode == http.StatusNotModified {
82481		if res.Body != nil {
82482			res.Body.Close()
82483		}
82484		return nil, &googleapi.Error{
82485			Code:   res.StatusCode,
82486			Header: res.Header,
82487		}
82488	}
82489	if err != nil {
82490		return nil, err
82491	}
82492	defer googleapi.CloseBody(res)
82493	if err := googleapi.CheckResponse(res); err != nil {
82494		return nil, err
82495	}
82496	ret := &Policy{
82497		ServerResponse: googleapi.ServerResponse{
82498			Header:         res.Header,
82499			HTTPStatusCode: res.StatusCode,
82500		},
82501	}
82502	target := &ret
82503	if err := gensupport.DecodeResponse(target, res); err != nil {
82504		return nil, err
82505	}
82506	return ret, nil
82507	// {
82508	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
82509	//   "httpMethod": "GET",
82510	//   "id": "compute.instanceTemplates.getIamPolicy",
82511	//   "parameterOrder": [
82512	//     "project",
82513	//     "resource"
82514	//   ],
82515	//   "parameters": {
82516	//     "optionsRequestedPolicyVersion": {
82517	//       "description": "Requested IAM Policy version.",
82518	//       "format": "int32",
82519	//       "location": "query",
82520	//       "type": "integer"
82521	//     },
82522	//     "project": {
82523	//       "description": "Project ID for this request.",
82524	//       "location": "path",
82525	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82526	//       "required": true,
82527	//       "type": "string"
82528	//     },
82529	//     "resource": {
82530	//       "description": "Name or id of the resource for this request.",
82531	//       "location": "path",
82532	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
82533	//       "required": true,
82534	//       "type": "string"
82535	//     }
82536	//   },
82537	//   "path": "projects/{project}/global/instanceTemplates/{resource}/getIamPolicy",
82538	//   "response": {
82539	//     "$ref": "Policy"
82540	//   },
82541	//   "scopes": [
82542	//     "https://www.googleapis.com/auth/cloud-platform",
82543	//     "https://www.googleapis.com/auth/compute",
82544	//     "https://www.googleapis.com/auth/compute.readonly"
82545	//   ]
82546	// }
82547
82548}
82549
82550// method id "compute.instanceTemplates.insert":
82551
82552type InstanceTemplatesInsertCall struct {
82553	s                *Service
82554	project          string
82555	instancetemplate *InstanceTemplate
82556	urlParams_       gensupport.URLParams
82557	ctx_             context.Context
82558	header_          http.Header
82559}
82560
82561// Insert: Creates an instance template in the specified project using
82562// the data that is included in the request. If you are creating a new
82563// template to update an existing instance group, your new instance
82564// template must use the same network or, if applicable, the same
82565// subnetwork as the original template.
82566//
82567// - project: Project ID for this request.
82568// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/insert
82569func (r *InstanceTemplatesService) Insert(project string, instancetemplate *InstanceTemplate) *InstanceTemplatesInsertCall {
82570	c := &InstanceTemplatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82571	c.project = project
82572	c.instancetemplate = instancetemplate
82573	return c
82574}
82575
82576// RequestId sets the optional parameter "requestId": An optional
82577// request ID to identify requests. Specify a unique request ID so that
82578// if you must retry your request, the server will know to ignore the
82579// request if it has already been completed.
82580//
82581// For example, consider a situation where you make an initial request
82582// and the request times out. If you make the request again with the
82583// same request ID, the server can check if original operation with the
82584// same request ID was received, and if so, will ignore the second
82585// request. This prevents clients from accidentally creating duplicate
82586// commitments.
82587//
82588// The request ID must be a valid UUID with the exception that zero UUID
82589// is not supported (00000000-0000-0000-0000-000000000000).
82590func (c *InstanceTemplatesInsertCall) RequestId(requestId string) *InstanceTemplatesInsertCall {
82591	c.urlParams_.Set("requestId", requestId)
82592	return c
82593}
82594
82595// Fields allows partial responses to be retrieved. See
82596// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82597// for more information.
82598func (c *InstanceTemplatesInsertCall) Fields(s ...googleapi.Field) *InstanceTemplatesInsertCall {
82599	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82600	return c
82601}
82602
82603// Context sets the context to be used in this call's Do method. Any
82604// pending HTTP request will be aborted if the provided context is
82605// canceled.
82606func (c *InstanceTemplatesInsertCall) Context(ctx context.Context) *InstanceTemplatesInsertCall {
82607	c.ctx_ = ctx
82608	return c
82609}
82610
82611// Header returns an http.Header that can be modified by the caller to
82612// add HTTP headers to the request.
82613func (c *InstanceTemplatesInsertCall) Header() http.Header {
82614	if c.header_ == nil {
82615		c.header_ = make(http.Header)
82616	}
82617	return c.header_
82618}
82619
82620func (c *InstanceTemplatesInsertCall) doRequest(alt string) (*http.Response, error) {
82621	reqHeaders := make(http.Header)
82622	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
82623	for k, v := range c.header_ {
82624		reqHeaders[k] = v
82625	}
82626	reqHeaders.Set("User-Agent", c.s.userAgent())
82627	var body io.Reader = nil
82628	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancetemplate)
82629	if err != nil {
82630		return nil, err
82631	}
82632	reqHeaders.Set("Content-Type", "application/json")
82633	c.urlParams_.Set("alt", alt)
82634	c.urlParams_.Set("prettyPrint", "false")
82635	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates")
82636	urls += "?" + c.urlParams_.Encode()
82637	req, err := http.NewRequest("POST", urls, body)
82638	if err != nil {
82639		return nil, err
82640	}
82641	req.Header = reqHeaders
82642	googleapi.Expand(req.URL, map[string]string{
82643		"project": c.project,
82644	})
82645	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82646}
82647
82648// Do executes the "compute.instanceTemplates.insert" call.
82649// Exactly one of *Operation or error will be non-nil. Any non-2xx
82650// status code is an error. Response headers are in either
82651// *Operation.ServerResponse.Header or (if a response was returned at
82652// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
82653// to check whether the returned error was because
82654// http.StatusNotModified was returned.
82655func (c *InstanceTemplatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
82656	gensupport.SetOptions(c.urlParams_, opts...)
82657	res, err := c.doRequest("json")
82658	if res != nil && res.StatusCode == http.StatusNotModified {
82659		if res.Body != nil {
82660			res.Body.Close()
82661		}
82662		return nil, &googleapi.Error{
82663			Code:   res.StatusCode,
82664			Header: res.Header,
82665		}
82666	}
82667	if err != nil {
82668		return nil, err
82669	}
82670	defer googleapi.CloseBody(res)
82671	if err := googleapi.CheckResponse(res); err != nil {
82672		return nil, err
82673	}
82674	ret := &Operation{
82675		ServerResponse: googleapi.ServerResponse{
82676			Header:         res.Header,
82677			HTTPStatusCode: res.StatusCode,
82678		},
82679	}
82680	target := &ret
82681	if err := gensupport.DecodeResponse(target, res); err != nil {
82682		return nil, err
82683	}
82684	return ret, nil
82685	// {
82686	//   "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.",
82687	//   "httpMethod": "POST",
82688	//   "id": "compute.instanceTemplates.insert",
82689	//   "parameterOrder": [
82690	//     "project"
82691	//   ],
82692	//   "parameters": {
82693	//     "project": {
82694	//       "description": "Project ID for this request.",
82695	//       "location": "path",
82696	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82697	//       "required": true,
82698	//       "type": "string"
82699	//     },
82700	//     "requestId": {
82701	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
82702	//       "location": "query",
82703	//       "type": "string"
82704	//     }
82705	//   },
82706	//   "path": "projects/{project}/global/instanceTemplates",
82707	//   "request": {
82708	//     "$ref": "InstanceTemplate"
82709	//   },
82710	//   "response": {
82711	//     "$ref": "Operation"
82712	//   },
82713	//   "scopes": [
82714	//     "https://www.googleapis.com/auth/cloud-platform",
82715	//     "https://www.googleapis.com/auth/compute"
82716	//   ]
82717	// }
82718
82719}
82720
82721// method id "compute.instanceTemplates.list":
82722
82723type InstanceTemplatesListCall struct {
82724	s            *Service
82725	project      string
82726	urlParams_   gensupport.URLParams
82727	ifNoneMatch_ string
82728	ctx_         context.Context
82729	header_      http.Header
82730}
82731
82732// List: Retrieves a list of instance templates that are contained
82733// within the specified project.
82734//
82735// - project: Project ID for this request.
82736// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/list
82737func (r *InstanceTemplatesService) List(project string) *InstanceTemplatesListCall {
82738	c := &InstanceTemplatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82739	c.project = project
82740	return c
82741}
82742
82743// Filter sets the optional parameter "filter": A filter expression that
82744// filters resources listed in the response. The expression must specify
82745// the field name, a comparison operator, and the value that you want to
82746// use for filtering. The value must be a string, a number, or a
82747// boolean. The comparison operator must be either `=`, `!=`, `>`, or
82748// `<`.
82749//
82750// For example, if you are filtering Compute Engine instances, you can
82751// exclude instances named `example-instance` by specifying `name !=
82752// example-instance`.
82753//
82754// You can also filter nested fields. For example, you could specify
82755// `scheduling.automaticRestart = false` to include instances only if
82756// they are not scheduled for automatic restarts. You can use filtering
82757// on nested fields to filter based on resource labels.
82758//
82759// To filter on multiple expressions, provide each separate expression
82760// within parentheses. For example: ``` (scheduling.automaticRestart =
82761// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
82762// is an `AND` expression. However, you can include `AND` and `OR`
82763// expressions explicitly. For example: ``` (cpuPlatform = "Intel
82764// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
82765// (scheduling.automaticRestart = true) ```
82766func (c *InstanceTemplatesListCall) Filter(filter string) *InstanceTemplatesListCall {
82767	c.urlParams_.Set("filter", filter)
82768	return c
82769}
82770
82771// MaxResults sets the optional parameter "maxResults": The maximum
82772// number of results per page that should be returned. If the number of
82773// available results is larger than `maxResults`, Compute Engine returns
82774// a `nextPageToken` that can be used to get the next page of results in
82775// subsequent list requests. Acceptable values are `0` to `500`,
82776// inclusive. (Default: `500`)
82777func (c *InstanceTemplatesListCall) MaxResults(maxResults int64) *InstanceTemplatesListCall {
82778	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
82779	return c
82780}
82781
82782// OrderBy sets the optional parameter "orderBy": Sorts list results by
82783// a certain order. By default, results are returned in alphanumerical
82784// order based on the resource name.
82785//
82786// You can also sort results in descending order based on the creation
82787// timestamp using `orderBy="creationTimestamp desc". This sorts
82788// results based on the `creationTimestamp` field in reverse
82789// chronological order (newest result first). Use this to sort resources
82790// like operations so that the newest operation is returned
82791// first.
82792//
82793// Currently, only sorting by `name` or `creationTimestamp desc` is
82794// supported.
82795func (c *InstanceTemplatesListCall) OrderBy(orderBy string) *InstanceTemplatesListCall {
82796	c.urlParams_.Set("orderBy", orderBy)
82797	return c
82798}
82799
82800// PageToken sets the optional parameter "pageToken": Specifies a page
82801// token to use. Set `pageToken` to the `nextPageToken` returned by a
82802// previous list request to get the next page of results.
82803func (c *InstanceTemplatesListCall) PageToken(pageToken string) *InstanceTemplatesListCall {
82804	c.urlParams_.Set("pageToken", pageToken)
82805	return c
82806}
82807
82808// ReturnPartialSuccess sets the optional parameter
82809// "returnPartialSuccess": Opt-in for partial success behavior which
82810// provides partial results in case of failure. The default value is
82811// false.
82812func (c *InstanceTemplatesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstanceTemplatesListCall {
82813	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
82814	return c
82815}
82816
82817// Fields allows partial responses to be retrieved. See
82818// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82819// for more information.
82820func (c *InstanceTemplatesListCall) Fields(s ...googleapi.Field) *InstanceTemplatesListCall {
82821	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82822	return c
82823}
82824
82825// IfNoneMatch sets the optional parameter which makes the operation
82826// fail if the object's ETag matches the given value. This is useful for
82827// getting updates only after the object has changed since the last
82828// request. Use googleapi.IsNotModified to check whether the response
82829// error from Do is the result of In-None-Match.
82830func (c *InstanceTemplatesListCall) IfNoneMatch(entityTag string) *InstanceTemplatesListCall {
82831	c.ifNoneMatch_ = entityTag
82832	return c
82833}
82834
82835// Context sets the context to be used in this call's Do method. Any
82836// pending HTTP request will be aborted if the provided context is
82837// canceled.
82838func (c *InstanceTemplatesListCall) Context(ctx context.Context) *InstanceTemplatesListCall {
82839	c.ctx_ = ctx
82840	return c
82841}
82842
82843// Header returns an http.Header that can be modified by the caller to
82844// add HTTP headers to the request.
82845func (c *InstanceTemplatesListCall) Header() http.Header {
82846	if c.header_ == nil {
82847		c.header_ = make(http.Header)
82848	}
82849	return c.header_
82850}
82851
82852func (c *InstanceTemplatesListCall) doRequest(alt string) (*http.Response, error) {
82853	reqHeaders := make(http.Header)
82854	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
82855	for k, v := range c.header_ {
82856		reqHeaders[k] = v
82857	}
82858	reqHeaders.Set("User-Agent", c.s.userAgent())
82859	if c.ifNoneMatch_ != "" {
82860		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
82861	}
82862	var body io.Reader = nil
82863	c.urlParams_.Set("alt", alt)
82864	c.urlParams_.Set("prettyPrint", "false")
82865	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates")
82866	urls += "?" + c.urlParams_.Encode()
82867	req, err := http.NewRequest("GET", urls, body)
82868	if err != nil {
82869		return nil, err
82870	}
82871	req.Header = reqHeaders
82872	googleapi.Expand(req.URL, map[string]string{
82873		"project": c.project,
82874	})
82875	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82876}
82877
82878// Do executes the "compute.instanceTemplates.list" call.
82879// Exactly one of *InstanceTemplateList or error will be non-nil. Any
82880// non-2xx status code is an error. Response headers are in either
82881// *InstanceTemplateList.ServerResponse.Header or (if a response was
82882// returned at all) in error.(*googleapi.Error).Header. Use
82883// googleapi.IsNotModified to check whether the returned error was
82884// because http.StatusNotModified was returned.
82885func (c *InstanceTemplatesListCall) Do(opts ...googleapi.CallOption) (*InstanceTemplateList, error) {
82886	gensupport.SetOptions(c.urlParams_, opts...)
82887	res, err := c.doRequest("json")
82888	if res != nil && res.StatusCode == http.StatusNotModified {
82889		if res.Body != nil {
82890			res.Body.Close()
82891		}
82892		return nil, &googleapi.Error{
82893			Code:   res.StatusCode,
82894			Header: res.Header,
82895		}
82896	}
82897	if err != nil {
82898		return nil, err
82899	}
82900	defer googleapi.CloseBody(res)
82901	if err := googleapi.CheckResponse(res); err != nil {
82902		return nil, err
82903	}
82904	ret := &InstanceTemplateList{
82905		ServerResponse: googleapi.ServerResponse{
82906			Header:         res.Header,
82907			HTTPStatusCode: res.StatusCode,
82908		},
82909	}
82910	target := &ret
82911	if err := gensupport.DecodeResponse(target, res); err != nil {
82912		return nil, err
82913	}
82914	return ret, nil
82915	// {
82916	//   "description": "Retrieves a list of instance templates that are contained within the specified project.",
82917	//   "httpMethod": "GET",
82918	//   "id": "compute.instanceTemplates.list",
82919	//   "parameterOrder": [
82920	//     "project"
82921	//   ],
82922	//   "parameters": {
82923	//     "filter": {
82924	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
82925	//       "location": "query",
82926	//       "type": "string"
82927	//     },
82928	//     "maxResults": {
82929	//       "default": "500",
82930	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
82931	//       "format": "uint32",
82932	//       "location": "query",
82933	//       "minimum": "0",
82934	//       "type": "integer"
82935	//     },
82936	//     "orderBy": {
82937	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
82938	//       "location": "query",
82939	//       "type": "string"
82940	//     },
82941	//     "pageToken": {
82942	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
82943	//       "location": "query",
82944	//       "type": "string"
82945	//     },
82946	//     "project": {
82947	//       "description": "Project ID for this request.",
82948	//       "location": "path",
82949	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82950	//       "required": true,
82951	//       "type": "string"
82952	//     },
82953	//     "returnPartialSuccess": {
82954	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
82955	//       "location": "query",
82956	//       "type": "boolean"
82957	//     }
82958	//   },
82959	//   "path": "projects/{project}/global/instanceTemplates",
82960	//   "response": {
82961	//     "$ref": "InstanceTemplateList"
82962	//   },
82963	//   "scopes": [
82964	//     "https://www.googleapis.com/auth/cloud-platform",
82965	//     "https://www.googleapis.com/auth/compute",
82966	//     "https://www.googleapis.com/auth/compute.readonly"
82967	//   ]
82968	// }
82969
82970}
82971
82972// Pages invokes f for each page of results.
82973// A non-nil error returned from f will halt the iteration.
82974// The provided context supersedes any context provided to the Context method.
82975func (c *InstanceTemplatesListCall) Pages(ctx context.Context, f func(*InstanceTemplateList) error) error {
82976	c.ctx_ = ctx
82977	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
82978	for {
82979		x, err := c.Do()
82980		if err != nil {
82981			return err
82982		}
82983		if err := f(x); err != nil {
82984			return err
82985		}
82986		if x.NextPageToken == "" {
82987			return nil
82988		}
82989		c.PageToken(x.NextPageToken)
82990	}
82991}
82992
82993// method id "compute.instanceTemplates.setIamPolicy":
82994
82995type InstanceTemplatesSetIamPolicyCall struct {
82996	s                      *Service
82997	project                string
82998	resource               string
82999	globalsetpolicyrequest *GlobalSetPolicyRequest
83000	urlParams_             gensupport.URLParams
83001	ctx_                   context.Context
83002	header_                http.Header
83003}
83004
83005// SetIamPolicy: Sets the access control policy on the specified
83006// resource. Replaces any existing policy.
83007//
83008// - project: Project ID for this request.
83009// - resource: Name or id of the resource for this request.
83010func (r *InstanceTemplatesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *InstanceTemplatesSetIamPolicyCall {
83011	c := &InstanceTemplatesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83012	c.project = project
83013	c.resource = resource
83014	c.globalsetpolicyrequest = globalsetpolicyrequest
83015	return c
83016}
83017
83018// Fields allows partial responses to be retrieved. See
83019// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83020// for more information.
83021func (c *InstanceTemplatesSetIamPolicyCall) Fields(s ...googleapi.Field) *InstanceTemplatesSetIamPolicyCall {
83022	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83023	return c
83024}
83025
83026// Context sets the context to be used in this call's Do method. Any
83027// pending HTTP request will be aborted if the provided context is
83028// canceled.
83029func (c *InstanceTemplatesSetIamPolicyCall) Context(ctx context.Context) *InstanceTemplatesSetIamPolicyCall {
83030	c.ctx_ = ctx
83031	return c
83032}
83033
83034// Header returns an http.Header that can be modified by the caller to
83035// add HTTP headers to the request.
83036func (c *InstanceTemplatesSetIamPolicyCall) Header() http.Header {
83037	if c.header_ == nil {
83038		c.header_ = make(http.Header)
83039	}
83040	return c.header_
83041}
83042
83043func (c *InstanceTemplatesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
83044	reqHeaders := make(http.Header)
83045	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
83046	for k, v := range c.header_ {
83047		reqHeaders[k] = v
83048	}
83049	reqHeaders.Set("User-Agent", c.s.userAgent())
83050	var body io.Reader = nil
83051	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
83052	if err != nil {
83053		return nil, err
83054	}
83055	reqHeaders.Set("Content-Type", "application/json")
83056	c.urlParams_.Set("alt", alt)
83057	c.urlParams_.Set("prettyPrint", "false")
83058	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates/{resource}/setIamPolicy")
83059	urls += "?" + c.urlParams_.Encode()
83060	req, err := http.NewRequest("POST", urls, body)
83061	if err != nil {
83062		return nil, err
83063	}
83064	req.Header = reqHeaders
83065	googleapi.Expand(req.URL, map[string]string{
83066		"project":  c.project,
83067		"resource": c.resource,
83068	})
83069	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83070}
83071
83072// Do executes the "compute.instanceTemplates.setIamPolicy" call.
83073// Exactly one of *Policy or error will be non-nil. Any non-2xx status
83074// code is an error. Response headers are in either
83075// *Policy.ServerResponse.Header or (if a response was returned at all)
83076// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
83077// check whether the returned error was because http.StatusNotModified
83078// was returned.
83079func (c *InstanceTemplatesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
83080	gensupport.SetOptions(c.urlParams_, opts...)
83081	res, err := c.doRequest("json")
83082	if res != nil && res.StatusCode == http.StatusNotModified {
83083		if res.Body != nil {
83084			res.Body.Close()
83085		}
83086		return nil, &googleapi.Error{
83087			Code:   res.StatusCode,
83088			Header: res.Header,
83089		}
83090	}
83091	if err != nil {
83092		return nil, err
83093	}
83094	defer googleapi.CloseBody(res)
83095	if err := googleapi.CheckResponse(res); err != nil {
83096		return nil, err
83097	}
83098	ret := &Policy{
83099		ServerResponse: googleapi.ServerResponse{
83100			Header:         res.Header,
83101			HTTPStatusCode: res.StatusCode,
83102		},
83103	}
83104	target := &ret
83105	if err := gensupport.DecodeResponse(target, res); err != nil {
83106		return nil, err
83107	}
83108	return ret, nil
83109	// {
83110	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
83111	//   "httpMethod": "POST",
83112	//   "id": "compute.instanceTemplates.setIamPolicy",
83113	//   "parameterOrder": [
83114	//     "project",
83115	//     "resource"
83116	//   ],
83117	//   "parameters": {
83118	//     "project": {
83119	//       "description": "Project ID for this request.",
83120	//       "location": "path",
83121	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83122	//       "required": true,
83123	//       "type": "string"
83124	//     },
83125	//     "resource": {
83126	//       "description": "Name or id of the resource for this request.",
83127	//       "location": "path",
83128	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
83129	//       "required": true,
83130	//       "type": "string"
83131	//     }
83132	//   },
83133	//   "path": "projects/{project}/global/instanceTemplates/{resource}/setIamPolicy",
83134	//   "request": {
83135	//     "$ref": "GlobalSetPolicyRequest"
83136	//   },
83137	//   "response": {
83138	//     "$ref": "Policy"
83139	//   },
83140	//   "scopes": [
83141	//     "https://www.googleapis.com/auth/cloud-platform",
83142	//     "https://www.googleapis.com/auth/compute"
83143	//   ]
83144	// }
83145
83146}
83147
83148// method id "compute.instanceTemplates.testIamPermissions":
83149
83150type InstanceTemplatesTestIamPermissionsCall struct {
83151	s                      *Service
83152	project                string
83153	resource               string
83154	testpermissionsrequest *TestPermissionsRequest
83155	urlParams_             gensupport.URLParams
83156	ctx_                   context.Context
83157	header_                http.Header
83158}
83159
83160// TestIamPermissions: Returns permissions that a caller has on the
83161// specified resource.
83162//
83163// - project: Project ID for this request.
83164// - resource: Name or id of the resource for this request.
83165func (r *InstanceTemplatesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstanceTemplatesTestIamPermissionsCall {
83166	c := &InstanceTemplatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83167	c.project = project
83168	c.resource = resource
83169	c.testpermissionsrequest = testpermissionsrequest
83170	return c
83171}
83172
83173// Fields allows partial responses to be retrieved. See
83174// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83175// for more information.
83176func (c *InstanceTemplatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstanceTemplatesTestIamPermissionsCall {
83177	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83178	return c
83179}
83180
83181// Context sets the context to be used in this call's Do method. Any
83182// pending HTTP request will be aborted if the provided context is
83183// canceled.
83184func (c *InstanceTemplatesTestIamPermissionsCall) Context(ctx context.Context) *InstanceTemplatesTestIamPermissionsCall {
83185	c.ctx_ = ctx
83186	return c
83187}
83188
83189// Header returns an http.Header that can be modified by the caller to
83190// add HTTP headers to the request.
83191func (c *InstanceTemplatesTestIamPermissionsCall) Header() http.Header {
83192	if c.header_ == nil {
83193		c.header_ = make(http.Header)
83194	}
83195	return c.header_
83196}
83197
83198func (c *InstanceTemplatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
83199	reqHeaders := make(http.Header)
83200	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
83201	for k, v := range c.header_ {
83202		reqHeaders[k] = v
83203	}
83204	reqHeaders.Set("User-Agent", c.s.userAgent())
83205	var body io.Reader = nil
83206	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
83207	if err != nil {
83208		return nil, err
83209	}
83210	reqHeaders.Set("Content-Type", "application/json")
83211	c.urlParams_.Set("alt", alt)
83212	c.urlParams_.Set("prettyPrint", "false")
83213	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/instanceTemplates/{resource}/testIamPermissions")
83214	urls += "?" + c.urlParams_.Encode()
83215	req, err := http.NewRequest("POST", urls, body)
83216	if err != nil {
83217		return nil, err
83218	}
83219	req.Header = reqHeaders
83220	googleapi.Expand(req.URL, map[string]string{
83221		"project":  c.project,
83222		"resource": c.resource,
83223	})
83224	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83225}
83226
83227// Do executes the "compute.instanceTemplates.testIamPermissions" call.
83228// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
83229// non-2xx status code is an error. Response headers are in either
83230// *TestPermissionsResponse.ServerResponse.Header or (if a response was
83231// returned at all) in error.(*googleapi.Error).Header. Use
83232// googleapi.IsNotModified to check whether the returned error was
83233// because http.StatusNotModified was returned.
83234func (c *InstanceTemplatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
83235	gensupport.SetOptions(c.urlParams_, opts...)
83236	res, err := c.doRequest("json")
83237	if res != nil && res.StatusCode == http.StatusNotModified {
83238		if res.Body != nil {
83239			res.Body.Close()
83240		}
83241		return nil, &googleapi.Error{
83242			Code:   res.StatusCode,
83243			Header: res.Header,
83244		}
83245	}
83246	if err != nil {
83247		return nil, err
83248	}
83249	defer googleapi.CloseBody(res)
83250	if err := googleapi.CheckResponse(res); err != nil {
83251		return nil, err
83252	}
83253	ret := &TestPermissionsResponse{
83254		ServerResponse: googleapi.ServerResponse{
83255			Header:         res.Header,
83256			HTTPStatusCode: res.StatusCode,
83257		},
83258	}
83259	target := &ret
83260	if err := gensupport.DecodeResponse(target, res); err != nil {
83261		return nil, err
83262	}
83263	return ret, nil
83264	// {
83265	//   "description": "Returns permissions that a caller has on the specified resource.",
83266	//   "httpMethod": "POST",
83267	//   "id": "compute.instanceTemplates.testIamPermissions",
83268	//   "parameterOrder": [
83269	//     "project",
83270	//     "resource"
83271	//   ],
83272	//   "parameters": {
83273	//     "project": {
83274	//       "description": "Project ID for this request.",
83275	//       "location": "path",
83276	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83277	//       "required": true,
83278	//       "type": "string"
83279	//     },
83280	//     "resource": {
83281	//       "description": "Name or id of the resource for this request.",
83282	//       "location": "path",
83283	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
83284	//       "required": true,
83285	//       "type": "string"
83286	//     }
83287	//   },
83288	//   "path": "projects/{project}/global/instanceTemplates/{resource}/testIamPermissions",
83289	//   "request": {
83290	//     "$ref": "TestPermissionsRequest"
83291	//   },
83292	//   "response": {
83293	//     "$ref": "TestPermissionsResponse"
83294	//   },
83295	//   "scopes": [
83296	//     "https://www.googleapis.com/auth/cloud-platform",
83297	//     "https://www.googleapis.com/auth/compute",
83298	//     "https://www.googleapis.com/auth/compute.readonly"
83299	//   ]
83300	// }
83301
83302}
83303
83304// method id "compute.instances.addAccessConfig":
83305
83306type InstancesAddAccessConfigCall struct {
83307	s            *Service
83308	project      string
83309	zone         string
83310	instance     string
83311	accessconfig *AccessConfig
83312	urlParams_   gensupport.URLParams
83313	ctx_         context.Context
83314	header_      http.Header
83315}
83316
83317// AddAccessConfig: Adds an access config to an instance's network
83318// interface.
83319//
83320// - instance: The instance name for this request.
83321// - networkInterface: The name of the network interface to add to this
83322//   instance.
83323// - project: Project ID for this request.
83324// - zone: The name of the zone for this request.
83325// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/addAccessConfig
83326func (r *InstancesService) AddAccessConfig(project string, zone string, instance string, networkInterface string, accessconfig *AccessConfig) *InstancesAddAccessConfigCall {
83327	c := &InstancesAddAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83328	c.project = project
83329	c.zone = zone
83330	c.instance = instance
83331	c.urlParams_.Set("networkInterface", networkInterface)
83332	c.accessconfig = accessconfig
83333	return c
83334}
83335
83336// RequestId sets the optional parameter "requestId": An optional
83337// request ID to identify requests. Specify a unique request ID so that
83338// if you must retry your request, the server will know to ignore the
83339// request if it has already been completed.
83340//
83341// For example, consider a situation where you make an initial request
83342// and the request times out. If you make the request again with the
83343// same request ID, the server can check if original operation with the
83344// same request ID was received, and if so, will ignore the second
83345// request. This prevents clients from accidentally creating duplicate
83346// commitments.
83347//
83348// The request ID must be a valid UUID with the exception that zero UUID
83349// is not supported (00000000-0000-0000-0000-000000000000).
83350func (c *InstancesAddAccessConfigCall) RequestId(requestId string) *InstancesAddAccessConfigCall {
83351	c.urlParams_.Set("requestId", requestId)
83352	return c
83353}
83354
83355// Fields allows partial responses to be retrieved. See
83356// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83357// for more information.
83358func (c *InstancesAddAccessConfigCall) Fields(s ...googleapi.Field) *InstancesAddAccessConfigCall {
83359	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83360	return c
83361}
83362
83363// Context sets the context to be used in this call's Do method. Any
83364// pending HTTP request will be aborted if the provided context is
83365// canceled.
83366func (c *InstancesAddAccessConfigCall) Context(ctx context.Context) *InstancesAddAccessConfigCall {
83367	c.ctx_ = ctx
83368	return c
83369}
83370
83371// Header returns an http.Header that can be modified by the caller to
83372// add HTTP headers to the request.
83373func (c *InstancesAddAccessConfigCall) Header() http.Header {
83374	if c.header_ == nil {
83375		c.header_ = make(http.Header)
83376	}
83377	return c.header_
83378}
83379
83380func (c *InstancesAddAccessConfigCall) doRequest(alt string) (*http.Response, error) {
83381	reqHeaders := make(http.Header)
83382	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
83383	for k, v := range c.header_ {
83384		reqHeaders[k] = v
83385	}
83386	reqHeaders.Set("User-Agent", c.s.userAgent())
83387	var body io.Reader = nil
83388	body, err := googleapi.WithoutDataWrapper.JSONReader(c.accessconfig)
83389	if err != nil {
83390		return nil, err
83391	}
83392	reqHeaders.Set("Content-Type", "application/json")
83393	c.urlParams_.Set("alt", alt)
83394	c.urlParams_.Set("prettyPrint", "false")
83395	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/addAccessConfig")
83396	urls += "?" + c.urlParams_.Encode()
83397	req, err := http.NewRequest("POST", urls, body)
83398	if err != nil {
83399		return nil, err
83400	}
83401	req.Header = reqHeaders
83402	googleapi.Expand(req.URL, map[string]string{
83403		"project":  c.project,
83404		"zone":     c.zone,
83405		"instance": c.instance,
83406	})
83407	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83408}
83409
83410// Do executes the "compute.instances.addAccessConfig" call.
83411// Exactly one of *Operation or error will be non-nil. Any non-2xx
83412// status code is an error. Response headers are in either
83413// *Operation.ServerResponse.Header or (if a response was returned at
83414// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83415// to check whether the returned error was because
83416// http.StatusNotModified was returned.
83417func (c *InstancesAddAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83418	gensupport.SetOptions(c.urlParams_, opts...)
83419	res, err := c.doRequest("json")
83420	if res != nil && res.StatusCode == http.StatusNotModified {
83421		if res.Body != nil {
83422			res.Body.Close()
83423		}
83424		return nil, &googleapi.Error{
83425			Code:   res.StatusCode,
83426			Header: res.Header,
83427		}
83428	}
83429	if err != nil {
83430		return nil, err
83431	}
83432	defer googleapi.CloseBody(res)
83433	if err := googleapi.CheckResponse(res); err != nil {
83434		return nil, err
83435	}
83436	ret := &Operation{
83437		ServerResponse: googleapi.ServerResponse{
83438			Header:         res.Header,
83439			HTTPStatusCode: res.StatusCode,
83440		},
83441	}
83442	target := &ret
83443	if err := gensupport.DecodeResponse(target, res); err != nil {
83444		return nil, err
83445	}
83446	return ret, nil
83447	// {
83448	//   "description": "Adds an access config to an instance's network interface.",
83449	//   "httpMethod": "POST",
83450	//   "id": "compute.instances.addAccessConfig",
83451	//   "parameterOrder": [
83452	//     "project",
83453	//     "zone",
83454	//     "instance",
83455	//     "networkInterface"
83456	//   ],
83457	//   "parameters": {
83458	//     "instance": {
83459	//       "description": "The instance name for this request.",
83460	//       "location": "path",
83461	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
83462	//       "required": true,
83463	//       "type": "string"
83464	//     },
83465	//     "networkInterface": {
83466	//       "description": "The name of the network interface to add to this instance.",
83467	//       "location": "query",
83468	//       "required": true,
83469	//       "type": "string"
83470	//     },
83471	//     "project": {
83472	//       "description": "Project ID for this request.",
83473	//       "location": "path",
83474	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83475	//       "required": true,
83476	//       "type": "string"
83477	//     },
83478	//     "requestId": {
83479	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
83480	//       "location": "query",
83481	//       "type": "string"
83482	//     },
83483	//     "zone": {
83484	//       "description": "The name of the zone for this request.",
83485	//       "location": "path",
83486	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
83487	//       "required": true,
83488	//       "type": "string"
83489	//     }
83490	//   },
83491	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/addAccessConfig",
83492	//   "request": {
83493	//     "$ref": "AccessConfig"
83494	//   },
83495	//   "response": {
83496	//     "$ref": "Operation"
83497	//   },
83498	//   "scopes": [
83499	//     "https://www.googleapis.com/auth/cloud-platform",
83500	//     "https://www.googleapis.com/auth/compute"
83501	//   ]
83502	// }
83503
83504}
83505
83506// method id "compute.instances.addResourcePolicies":
83507
83508type InstancesAddResourcePoliciesCall struct {
83509	s                                   *Service
83510	project                             string
83511	zone                                string
83512	instance                            string
83513	instancesaddresourcepoliciesrequest *InstancesAddResourcePoliciesRequest
83514	urlParams_                          gensupport.URLParams
83515	ctx_                                context.Context
83516	header_                             http.Header
83517}
83518
83519// AddResourcePolicies: Adds existing resource policies to an instance.
83520// You can only add one policy right now which will be applied to this
83521// instance for scheduling live migrations.
83522//
83523// - instance: The instance name for this request.
83524// - project: Project ID for this request.
83525// - zone: The name of the zone for this request.
83526func (r *InstancesService) AddResourcePolicies(project string, zone string, instance string, instancesaddresourcepoliciesrequest *InstancesAddResourcePoliciesRequest) *InstancesAddResourcePoliciesCall {
83527	c := &InstancesAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83528	c.project = project
83529	c.zone = zone
83530	c.instance = instance
83531	c.instancesaddresourcepoliciesrequest = instancesaddresourcepoliciesrequest
83532	return c
83533}
83534
83535// RequestId sets the optional parameter "requestId": An optional
83536// request ID to identify requests. Specify a unique request ID so that
83537// if you must retry your request, the server will know to ignore the
83538// request if it has already been completed.
83539//
83540// For example, consider a situation where you make an initial request
83541// and the request times out. If you make the request again with the
83542// same request ID, the server can check if original operation with the
83543// same request ID was received, and if so, will ignore the second
83544// request. This prevents clients from accidentally creating duplicate
83545// commitments.
83546//
83547// The request ID must be a valid UUID with the exception that zero UUID
83548// is not supported (00000000-0000-0000-0000-000000000000).
83549func (c *InstancesAddResourcePoliciesCall) RequestId(requestId string) *InstancesAddResourcePoliciesCall {
83550	c.urlParams_.Set("requestId", requestId)
83551	return c
83552}
83553
83554// Fields allows partial responses to be retrieved. See
83555// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83556// for more information.
83557func (c *InstancesAddResourcePoliciesCall) Fields(s ...googleapi.Field) *InstancesAddResourcePoliciesCall {
83558	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83559	return c
83560}
83561
83562// Context sets the context to be used in this call's Do method. Any
83563// pending HTTP request will be aborted if the provided context is
83564// canceled.
83565func (c *InstancesAddResourcePoliciesCall) Context(ctx context.Context) *InstancesAddResourcePoliciesCall {
83566	c.ctx_ = ctx
83567	return c
83568}
83569
83570// Header returns an http.Header that can be modified by the caller to
83571// add HTTP headers to the request.
83572func (c *InstancesAddResourcePoliciesCall) Header() http.Header {
83573	if c.header_ == nil {
83574		c.header_ = make(http.Header)
83575	}
83576	return c.header_
83577}
83578
83579func (c *InstancesAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
83580	reqHeaders := make(http.Header)
83581	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
83582	for k, v := range c.header_ {
83583		reqHeaders[k] = v
83584	}
83585	reqHeaders.Set("User-Agent", c.s.userAgent())
83586	var body io.Reader = nil
83587	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesaddresourcepoliciesrequest)
83588	if err != nil {
83589		return nil, err
83590	}
83591	reqHeaders.Set("Content-Type", "application/json")
83592	c.urlParams_.Set("alt", alt)
83593	c.urlParams_.Set("prettyPrint", "false")
83594	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/addResourcePolicies")
83595	urls += "?" + c.urlParams_.Encode()
83596	req, err := http.NewRequest("POST", urls, body)
83597	if err != nil {
83598		return nil, err
83599	}
83600	req.Header = reqHeaders
83601	googleapi.Expand(req.URL, map[string]string{
83602		"project":  c.project,
83603		"zone":     c.zone,
83604		"instance": c.instance,
83605	})
83606	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83607}
83608
83609// Do executes the "compute.instances.addResourcePolicies" call.
83610// Exactly one of *Operation or error will be non-nil. Any non-2xx
83611// status code is an error. Response headers are in either
83612// *Operation.ServerResponse.Header or (if a response was returned at
83613// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83614// to check whether the returned error was because
83615// http.StatusNotModified was returned.
83616func (c *InstancesAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83617	gensupport.SetOptions(c.urlParams_, opts...)
83618	res, err := c.doRequest("json")
83619	if res != nil && res.StatusCode == http.StatusNotModified {
83620		if res.Body != nil {
83621			res.Body.Close()
83622		}
83623		return nil, &googleapi.Error{
83624			Code:   res.StatusCode,
83625			Header: res.Header,
83626		}
83627	}
83628	if err != nil {
83629		return nil, err
83630	}
83631	defer googleapi.CloseBody(res)
83632	if err := googleapi.CheckResponse(res); err != nil {
83633		return nil, err
83634	}
83635	ret := &Operation{
83636		ServerResponse: googleapi.ServerResponse{
83637			Header:         res.Header,
83638			HTTPStatusCode: res.StatusCode,
83639		},
83640	}
83641	target := &ret
83642	if err := gensupport.DecodeResponse(target, res); err != nil {
83643		return nil, err
83644	}
83645	return ret, nil
83646	// {
83647	//   "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.",
83648	//   "httpMethod": "POST",
83649	//   "id": "compute.instances.addResourcePolicies",
83650	//   "parameterOrder": [
83651	//     "project",
83652	//     "zone",
83653	//     "instance"
83654	//   ],
83655	//   "parameters": {
83656	//     "instance": {
83657	//       "description": "The instance name for this request.",
83658	//       "location": "path",
83659	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
83660	//       "required": true,
83661	//       "type": "string"
83662	//     },
83663	//     "project": {
83664	//       "description": "Project ID for this request.",
83665	//       "location": "path",
83666	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83667	//       "required": true,
83668	//       "type": "string"
83669	//     },
83670	//     "requestId": {
83671	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
83672	//       "location": "query",
83673	//       "type": "string"
83674	//     },
83675	//     "zone": {
83676	//       "description": "The name of the zone for this request.",
83677	//       "location": "path",
83678	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
83679	//       "required": true,
83680	//       "type": "string"
83681	//     }
83682	//   },
83683	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/addResourcePolicies",
83684	//   "request": {
83685	//     "$ref": "InstancesAddResourcePoliciesRequest"
83686	//   },
83687	//   "response": {
83688	//     "$ref": "Operation"
83689	//   },
83690	//   "scopes": [
83691	//     "https://www.googleapis.com/auth/cloud-platform",
83692	//     "https://www.googleapis.com/auth/compute"
83693	//   ]
83694	// }
83695
83696}
83697
83698// method id "compute.instances.aggregatedList":
83699
83700type InstancesAggregatedListCall struct {
83701	s            *Service
83702	project      string
83703	urlParams_   gensupport.URLParams
83704	ifNoneMatch_ string
83705	ctx_         context.Context
83706	header_      http.Header
83707}
83708
83709// AggregatedList: Retrieves aggregated list of all of the instances in
83710// your project across all regions and zones.
83711//
83712// - project: Project ID for this request.
83713// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/aggregatedList
83714func (r *InstancesService) AggregatedList(project string) *InstancesAggregatedListCall {
83715	c := &InstancesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83716	c.project = project
83717	return c
83718}
83719
83720// Filter sets the optional parameter "filter": A filter expression that
83721// filters resources listed in the response. The expression must specify
83722// the field name, a comparison operator, and the value that you want to
83723// use for filtering. The value must be a string, a number, or a
83724// boolean. The comparison operator must be either `=`, `!=`, `>`, or
83725// `<`.
83726//
83727// For example, if you are filtering Compute Engine instances, you can
83728// exclude instances named `example-instance` by specifying `name !=
83729// example-instance`.
83730//
83731// You can also filter nested fields. For example, you could specify
83732// `scheduling.automaticRestart = false` to include instances only if
83733// they are not scheduled for automatic restarts. You can use filtering
83734// on nested fields to filter based on resource labels.
83735//
83736// To filter on multiple expressions, provide each separate expression
83737// within parentheses. For example: ``` (scheduling.automaticRestart =
83738// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
83739// is an `AND` expression. However, you can include `AND` and `OR`
83740// expressions explicitly. For example: ``` (cpuPlatform = "Intel
83741// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
83742// (scheduling.automaticRestart = true) ```
83743func (c *InstancesAggregatedListCall) Filter(filter string) *InstancesAggregatedListCall {
83744	c.urlParams_.Set("filter", filter)
83745	return c
83746}
83747
83748// IncludeAllScopes sets the optional parameter "includeAllScopes":
83749// Indicates whether every visible scope for each scope type (zone,
83750// region, global) should be included in the response. For new resource
83751// types added after this field, the flag has no effect as new resource
83752// types will always include every visible scope for each scope type in
83753// response. For resource types which predate this field, if this flag
83754// is omitted or false, only scopes of the scope types where the
83755// resource type is expected to be found will be included.
83756func (c *InstancesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstancesAggregatedListCall {
83757	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
83758	return c
83759}
83760
83761// MaxResults sets the optional parameter "maxResults": The maximum
83762// number of results per page that should be returned. If the number of
83763// available results is larger than `maxResults`, Compute Engine returns
83764// a `nextPageToken` that can be used to get the next page of results in
83765// subsequent list requests. Acceptable values are `0` to `500`,
83766// inclusive. (Default: `500`)
83767func (c *InstancesAggregatedListCall) MaxResults(maxResults int64) *InstancesAggregatedListCall {
83768	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
83769	return c
83770}
83771
83772// OrderBy sets the optional parameter "orderBy": Sorts list results by
83773// a certain order. By default, results are returned in alphanumerical
83774// order based on the resource name.
83775//
83776// You can also sort results in descending order based on the creation
83777// timestamp using `orderBy="creationTimestamp desc". This sorts
83778// results based on the `creationTimestamp` field in reverse
83779// chronological order (newest result first). Use this to sort resources
83780// like operations so that the newest operation is returned
83781// first.
83782//
83783// Currently, only sorting by `name` or `creationTimestamp desc` is
83784// supported.
83785func (c *InstancesAggregatedListCall) OrderBy(orderBy string) *InstancesAggregatedListCall {
83786	c.urlParams_.Set("orderBy", orderBy)
83787	return c
83788}
83789
83790// PageToken sets the optional parameter "pageToken": Specifies a page
83791// token to use. Set `pageToken` to the `nextPageToken` returned by a
83792// previous list request to get the next page of results.
83793func (c *InstancesAggregatedListCall) PageToken(pageToken string) *InstancesAggregatedListCall {
83794	c.urlParams_.Set("pageToken", pageToken)
83795	return c
83796}
83797
83798// ReturnPartialSuccess sets the optional parameter
83799// "returnPartialSuccess": Opt-in for partial success behavior which
83800// provides partial results in case of failure. The default value is
83801// false.
83802func (c *InstancesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstancesAggregatedListCall {
83803	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
83804	return c
83805}
83806
83807// Fields allows partial responses to be retrieved. See
83808// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83809// for more information.
83810func (c *InstancesAggregatedListCall) Fields(s ...googleapi.Field) *InstancesAggregatedListCall {
83811	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83812	return c
83813}
83814
83815// IfNoneMatch sets the optional parameter which makes the operation
83816// fail if the object's ETag matches the given value. This is useful for
83817// getting updates only after the object has changed since the last
83818// request. Use googleapi.IsNotModified to check whether the response
83819// error from Do is the result of In-None-Match.
83820func (c *InstancesAggregatedListCall) IfNoneMatch(entityTag string) *InstancesAggregatedListCall {
83821	c.ifNoneMatch_ = entityTag
83822	return c
83823}
83824
83825// Context sets the context to be used in this call's Do method. Any
83826// pending HTTP request will be aborted if the provided context is
83827// canceled.
83828func (c *InstancesAggregatedListCall) Context(ctx context.Context) *InstancesAggregatedListCall {
83829	c.ctx_ = ctx
83830	return c
83831}
83832
83833// Header returns an http.Header that can be modified by the caller to
83834// add HTTP headers to the request.
83835func (c *InstancesAggregatedListCall) Header() http.Header {
83836	if c.header_ == nil {
83837		c.header_ = make(http.Header)
83838	}
83839	return c.header_
83840}
83841
83842func (c *InstancesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
83843	reqHeaders := make(http.Header)
83844	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
83845	for k, v := range c.header_ {
83846		reqHeaders[k] = v
83847	}
83848	reqHeaders.Set("User-Agent", c.s.userAgent())
83849	if c.ifNoneMatch_ != "" {
83850		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
83851	}
83852	var body io.Reader = nil
83853	c.urlParams_.Set("alt", alt)
83854	c.urlParams_.Set("prettyPrint", "false")
83855	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/instances")
83856	urls += "?" + c.urlParams_.Encode()
83857	req, err := http.NewRequest("GET", urls, body)
83858	if err != nil {
83859		return nil, err
83860	}
83861	req.Header = reqHeaders
83862	googleapi.Expand(req.URL, map[string]string{
83863		"project": c.project,
83864	})
83865	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83866}
83867
83868// Do executes the "compute.instances.aggregatedList" call.
83869// Exactly one of *InstanceAggregatedList or error will be non-nil. Any
83870// non-2xx status code is an error. Response headers are in either
83871// *InstanceAggregatedList.ServerResponse.Header or (if a response was
83872// returned at all) in error.(*googleapi.Error).Header. Use
83873// googleapi.IsNotModified to check whether the returned error was
83874// because http.StatusNotModified was returned.
83875func (c *InstancesAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceAggregatedList, error) {
83876	gensupport.SetOptions(c.urlParams_, opts...)
83877	res, err := c.doRequest("json")
83878	if res != nil && res.StatusCode == http.StatusNotModified {
83879		if res.Body != nil {
83880			res.Body.Close()
83881		}
83882		return nil, &googleapi.Error{
83883			Code:   res.StatusCode,
83884			Header: res.Header,
83885		}
83886	}
83887	if err != nil {
83888		return nil, err
83889	}
83890	defer googleapi.CloseBody(res)
83891	if err := googleapi.CheckResponse(res); err != nil {
83892		return nil, err
83893	}
83894	ret := &InstanceAggregatedList{
83895		ServerResponse: googleapi.ServerResponse{
83896			Header:         res.Header,
83897			HTTPStatusCode: res.StatusCode,
83898		},
83899	}
83900	target := &ret
83901	if err := gensupport.DecodeResponse(target, res); err != nil {
83902		return nil, err
83903	}
83904	return ret, nil
83905	// {
83906	//   "description": "Retrieves aggregated list of all of the instances in your project across all regions and zones.",
83907	//   "httpMethod": "GET",
83908	//   "id": "compute.instances.aggregatedList",
83909	//   "parameterOrder": [
83910	//     "project"
83911	//   ],
83912	//   "parameters": {
83913	//     "filter": {
83914	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
83915	//       "location": "query",
83916	//       "type": "string"
83917	//     },
83918	//     "includeAllScopes": {
83919	//       "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.",
83920	//       "location": "query",
83921	//       "type": "boolean"
83922	//     },
83923	//     "maxResults": {
83924	//       "default": "500",
83925	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
83926	//       "format": "uint32",
83927	//       "location": "query",
83928	//       "minimum": "0",
83929	//       "type": "integer"
83930	//     },
83931	//     "orderBy": {
83932	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
83933	//       "location": "query",
83934	//       "type": "string"
83935	//     },
83936	//     "pageToken": {
83937	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
83938	//       "location": "query",
83939	//       "type": "string"
83940	//     },
83941	//     "project": {
83942	//       "description": "Project ID for this request.",
83943	//       "location": "path",
83944	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83945	//       "required": true,
83946	//       "type": "string"
83947	//     },
83948	//     "returnPartialSuccess": {
83949	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
83950	//       "location": "query",
83951	//       "type": "boolean"
83952	//     }
83953	//   },
83954	//   "path": "projects/{project}/aggregated/instances",
83955	//   "response": {
83956	//     "$ref": "InstanceAggregatedList"
83957	//   },
83958	//   "scopes": [
83959	//     "https://www.googleapis.com/auth/cloud-platform",
83960	//     "https://www.googleapis.com/auth/compute",
83961	//     "https://www.googleapis.com/auth/compute.readonly"
83962	//   ]
83963	// }
83964
83965}
83966
83967// Pages invokes f for each page of results.
83968// A non-nil error returned from f will halt the iteration.
83969// The provided context supersedes any context provided to the Context method.
83970func (c *InstancesAggregatedListCall) Pages(ctx context.Context, f func(*InstanceAggregatedList) error) error {
83971	c.ctx_ = ctx
83972	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
83973	for {
83974		x, err := c.Do()
83975		if err != nil {
83976			return err
83977		}
83978		if err := f(x); err != nil {
83979			return err
83980		}
83981		if x.NextPageToken == "" {
83982			return nil
83983		}
83984		c.PageToken(x.NextPageToken)
83985	}
83986}
83987
83988// method id "compute.instances.attachDisk":
83989
83990type InstancesAttachDiskCall struct {
83991	s            *Service
83992	project      string
83993	zone         string
83994	instance     string
83995	attacheddisk *AttachedDisk
83996	urlParams_   gensupport.URLParams
83997	ctx_         context.Context
83998	header_      http.Header
83999}
84000
84001// AttachDisk: Attaches an existing Disk resource to an instance. You
84002// must first create the disk before you can attach it. It is not
84003// possible to create and attach a disk at the same time. For more
84004// information, read Adding a persistent disk to your instance.
84005//
84006// - instance: The instance name for this request.
84007// - project: Project ID for this request.
84008// - zone: The name of the zone for this request.
84009// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/attachDisk
84010func (r *InstancesService) AttachDisk(project string, zone string, instance string, attacheddisk *AttachedDisk) *InstancesAttachDiskCall {
84011	c := &InstancesAttachDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84012	c.project = project
84013	c.zone = zone
84014	c.instance = instance
84015	c.attacheddisk = attacheddisk
84016	return c
84017}
84018
84019// ForceAttach sets the optional parameter "forceAttach": Whether to
84020// force attach the regional disk even if it's currently attached to
84021// another instance. If you try to force attach a zonal disk to an
84022// instance, you will receive an error.
84023func (c *InstancesAttachDiskCall) ForceAttach(forceAttach bool) *InstancesAttachDiskCall {
84024	c.urlParams_.Set("forceAttach", fmt.Sprint(forceAttach))
84025	return c
84026}
84027
84028// RequestId sets the optional parameter "requestId": An optional
84029// request ID to identify requests. Specify a unique request ID so that
84030// if you must retry your request, the server will know to ignore the
84031// request if it has already been completed.
84032//
84033// For example, consider a situation where you make an initial request
84034// and the request times out. If you make the request again with the
84035// same request ID, the server can check if original operation with the
84036// same request ID was received, and if so, will ignore the second
84037// request. This prevents clients from accidentally creating duplicate
84038// commitments.
84039//
84040// The request ID must be a valid UUID with the exception that zero UUID
84041// is not supported (00000000-0000-0000-0000-000000000000).
84042func (c *InstancesAttachDiskCall) RequestId(requestId string) *InstancesAttachDiskCall {
84043	c.urlParams_.Set("requestId", requestId)
84044	return c
84045}
84046
84047// Fields allows partial responses to be retrieved. See
84048// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84049// for more information.
84050func (c *InstancesAttachDiskCall) Fields(s ...googleapi.Field) *InstancesAttachDiskCall {
84051	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84052	return c
84053}
84054
84055// Context sets the context to be used in this call's Do method. Any
84056// pending HTTP request will be aborted if the provided context is
84057// canceled.
84058func (c *InstancesAttachDiskCall) Context(ctx context.Context) *InstancesAttachDiskCall {
84059	c.ctx_ = ctx
84060	return c
84061}
84062
84063// Header returns an http.Header that can be modified by the caller to
84064// add HTTP headers to the request.
84065func (c *InstancesAttachDiskCall) Header() http.Header {
84066	if c.header_ == nil {
84067		c.header_ = make(http.Header)
84068	}
84069	return c.header_
84070}
84071
84072func (c *InstancesAttachDiskCall) doRequest(alt string) (*http.Response, error) {
84073	reqHeaders := make(http.Header)
84074	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
84075	for k, v := range c.header_ {
84076		reqHeaders[k] = v
84077	}
84078	reqHeaders.Set("User-Agent", c.s.userAgent())
84079	var body io.Reader = nil
84080	body, err := googleapi.WithoutDataWrapper.JSONReader(c.attacheddisk)
84081	if err != nil {
84082		return nil, err
84083	}
84084	reqHeaders.Set("Content-Type", "application/json")
84085	c.urlParams_.Set("alt", alt)
84086	c.urlParams_.Set("prettyPrint", "false")
84087	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/attachDisk")
84088	urls += "?" + c.urlParams_.Encode()
84089	req, err := http.NewRequest("POST", urls, body)
84090	if err != nil {
84091		return nil, err
84092	}
84093	req.Header = reqHeaders
84094	googleapi.Expand(req.URL, map[string]string{
84095		"project":  c.project,
84096		"zone":     c.zone,
84097		"instance": c.instance,
84098	})
84099	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84100}
84101
84102// Do executes the "compute.instances.attachDisk" call.
84103// Exactly one of *Operation or error will be non-nil. Any non-2xx
84104// status code is an error. Response headers are in either
84105// *Operation.ServerResponse.Header or (if a response was returned at
84106// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84107// to check whether the returned error was because
84108// http.StatusNotModified was returned.
84109func (c *InstancesAttachDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84110	gensupport.SetOptions(c.urlParams_, opts...)
84111	res, err := c.doRequest("json")
84112	if res != nil && res.StatusCode == http.StatusNotModified {
84113		if res.Body != nil {
84114			res.Body.Close()
84115		}
84116		return nil, &googleapi.Error{
84117			Code:   res.StatusCode,
84118			Header: res.Header,
84119		}
84120	}
84121	if err != nil {
84122		return nil, err
84123	}
84124	defer googleapi.CloseBody(res)
84125	if err := googleapi.CheckResponse(res); err != nil {
84126		return nil, err
84127	}
84128	ret := &Operation{
84129		ServerResponse: googleapi.ServerResponse{
84130			Header:         res.Header,
84131			HTTPStatusCode: res.StatusCode,
84132		},
84133	}
84134	target := &ret
84135	if err := gensupport.DecodeResponse(target, res); err != nil {
84136		return nil, err
84137	}
84138	return ret, nil
84139	// {
84140	//   "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.",
84141	//   "httpMethod": "POST",
84142	//   "id": "compute.instances.attachDisk",
84143	//   "parameterOrder": [
84144	//     "project",
84145	//     "zone",
84146	//     "instance"
84147	//   ],
84148	//   "parameters": {
84149	//     "forceAttach": {
84150	//       "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.",
84151	//       "location": "query",
84152	//       "type": "boolean"
84153	//     },
84154	//     "instance": {
84155	//       "description": "The instance name for this request.",
84156	//       "location": "path",
84157	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
84158	//       "required": true,
84159	//       "type": "string"
84160	//     },
84161	//     "project": {
84162	//       "description": "Project ID for this request.",
84163	//       "location": "path",
84164	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84165	//       "required": true,
84166	//       "type": "string"
84167	//     },
84168	//     "requestId": {
84169	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
84170	//       "location": "query",
84171	//       "type": "string"
84172	//     },
84173	//     "zone": {
84174	//       "description": "The name of the zone for this request.",
84175	//       "location": "path",
84176	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
84177	//       "required": true,
84178	//       "type": "string"
84179	//     }
84180	//   },
84181	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/attachDisk",
84182	//   "request": {
84183	//     "$ref": "AttachedDisk"
84184	//   },
84185	//   "response": {
84186	//     "$ref": "Operation"
84187	//   },
84188	//   "scopes": [
84189	//     "https://www.googleapis.com/auth/cloud-platform",
84190	//     "https://www.googleapis.com/auth/compute"
84191	//   ]
84192	// }
84193
84194}
84195
84196// method id "compute.instances.bulkInsert":
84197
84198type InstancesBulkInsertCall struct {
84199	s                          *Service
84200	project                    string
84201	zone                       string
84202	bulkinsertinstanceresource *BulkInsertInstanceResource
84203	urlParams_                 gensupport.URLParams
84204	ctx_                       context.Context
84205	header_                    http.Header
84206}
84207
84208// BulkInsert: Creates multiple instances. Count specifies the number of
84209// instances to create.
84210//
84211// - project: Project ID for this request.
84212// - zone: The name of the zone for this request.
84213func (r *InstancesService) BulkInsert(project string, zone string, bulkinsertinstanceresource *BulkInsertInstanceResource) *InstancesBulkInsertCall {
84214	c := &InstancesBulkInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84215	c.project = project
84216	c.zone = zone
84217	c.bulkinsertinstanceresource = bulkinsertinstanceresource
84218	return c
84219}
84220
84221// RequestId sets the optional parameter "requestId": An optional
84222// request ID to identify requests. Specify a unique request ID so that
84223// if you must retry your request, the server will know to ignore the
84224// request if it has already been completed.
84225//
84226// For example, consider a situation where you make an initial request
84227// and the request times out. If you make the request again with the
84228// same request ID, the server can check if original operation with the
84229// same request ID was received, and if so, will ignore the second
84230// request. This prevents clients from accidentally creating duplicate
84231// commitments.
84232//
84233// The request ID must be a valid UUID with the exception that zero UUID
84234// is not supported (00000000-0000-0000-0000-000000000000).
84235func (c *InstancesBulkInsertCall) RequestId(requestId string) *InstancesBulkInsertCall {
84236	c.urlParams_.Set("requestId", requestId)
84237	return c
84238}
84239
84240// Fields allows partial responses to be retrieved. See
84241// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84242// for more information.
84243func (c *InstancesBulkInsertCall) Fields(s ...googleapi.Field) *InstancesBulkInsertCall {
84244	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84245	return c
84246}
84247
84248// Context sets the context to be used in this call's Do method. Any
84249// pending HTTP request will be aborted if the provided context is
84250// canceled.
84251func (c *InstancesBulkInsertCall) Context(ctx context.Context) *InstancesBulkInsertCall {
84252	c.ctx_ = ctx
84253	return c
84254}
84255
84256// Header returns an http.Header that can be modified by the caller to
84257// add HTTP headers to the request.
84258func (c *InstancesBulkInsertCall) Header() http.Header {
84259	if c.header_ == nil {
84260		c.header_ = make(http.Header)
84261	}
84262	return c.header_
84263}
84264
84265func (c *InstancesBulkInsertCall) doRequest(alt string) (*http.Response, error) {
84266	reqHeaders := make(http.Header)
84267	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
84268	for k, v := range c.header_ {
84269		reqHeaders[k] = v
84270	}
84271	reqHeaders.Set("User-Agent", c.s.userAgent())
84272	var body io.Reader = nil
84273	body, err := googleapi.WithoutDataWrapper.JSONReader(c.bulkinsertinstanceresource)
84274	if err != nil {
84275		return nil, err
84276	}
84277	reqHeaders.Set("Content-Type", "application/json")
84278	c.urlParams_.Set("alt", alt)
84279	c.urlParams_.Set("prettyPrint", "false")
84280	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/bulkInsert")
84281	urls += "?" + c.urlParams_.Encode()
84282	req, err := http.NewRequest("POST", urls, body)
84283	if err != nil {
84284		return nil, err
84285	}
84286	req.Header = reqHeaders
84287	googleapi.Expand(req.URL, map[string]string{
84288		"project": c.project,
84289		"zone":    c.zone,
84290	})
84291	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84292}
84293
84294// Do executes the "compute.instances.bulkInsert" call.
84295// Exactly one of *Operation or error will be non-nil. Any non-2xx
84296// status code is an error. Response headers are in either
84297// *Operation.ServerResponse.Header or (if a response was returned at
84298// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84299// to check whether the returned error was because
84300// http.StatusNotModified was returned.
84301func (c *InstancesBulkInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84302	gensupport.SetOptions(c.urlParams_, opts...)
84303	res, err := c.doRequest("json")
84304	if res != nil && res.StatusCode == http.StatusNotModified {
84305		if res.Body != nil {
84306			res.Body.Close()
84307		}
84308		return nil, &googleapi.Error{
84309			Code:   res.StatusCode,
84310			Header: res.Header,
84311		}
84312	}
84313	if err != nil {
84314		return nil, err
84315	}
84316	defer googleapi.CloseBody(res)
84317	if err := googleapi.CheckResponse(res); err != nil {
84318		return nil, err
84319	}
84320	ret := &Operation{
84321		ServerResponse: googleapi.ServerResponse{
84322			Header:         res.Header,
84323			HTTPStatusCode: res.StatusCode,
84324		},
84325	}
84326	target := &ret
84327	if err := gensupport.DecodeResponse(target, res); err != nil {
84328		return nil, err
84329	}
84330	return ret, nil
84331	// {
84332	//   "description": "Creates multiple instances. Count specifies the number of instances to create.",
84333	//   "httpMethod": "POST",
84334	//   "id": "compute.instances.bulkInsert",
84335	//   "parameterOrder": [
84336	//     "project",
84337	//     "zone"
84338	//   ],
84339	//   "parameters": {
84340	//     "project": {
84341	//       "description": "Project ID for this request.",
84342	//       "location": "path",
84343	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84344	//       "required": true,
84345	//       "type": "string"
84346	//     },
84347	//     "requestId": {
84348	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
84349	//       "location": "query",
84350	//       "type": "string"
84351	//     },
84352	//     "zone": {
84353	//       "description": "The name of the zone for this request.",
84354	//       "location": "path",
84355	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
84356	//       "required": true,
84357	//       "type": "string"
84358	//     }
84359	//   },
84360	//   "path": "projects/{project}/zones/{zone}/instances/bulkInsert",
84361	//   "request": {
84362	//     "$ref": "BulkInsertInstanceResource"
84363	//   },
84364	//   "response": {
84365	//     "$ref": "Operation"
84366	//   },
84367	//   "scopes": [
84368	//     "https://www.googleapis.com/auth/cloud-platform",
84369	//     "https://www.googleapis.com/auth/compute"
84370	//   ]
84371	// }
84372
84373}
84374
84375// method id "compute.instances.delete":
84376
84377type InstancesDeleteCall struct {
84378	s          *Service
84379	project    string
84380	zone       string
84381	instance   string
84382	urlParams_ gensupport.URLParams
84383	ctx_       context.Context
84384	header_    http.Header
84385}
84386
84387// Delete: Deletes the specified Instance resource. For more
84388// information, see Deleting an instance.
84389//
84390// - instance: Name of the instance resource to delete.
84391// - project: Project ID for this request.
84392// - zone: The name of the zone for this request.
84393// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/delete
84394func (r *InstancesService) Delete(project string, zone string, instance string) *InstancesDeleteCall {
84395	c := &InstancesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84396	c.project = project
84397	c.zone = zone
84398	c.instance = instance
84399	return c
84400}
84401
84402// RequestId sets the optional parameter "requestId": An optional
84403// request ID to identify requests. Specify a unique request ID so that
84404// if you must retry your request, the server will know to ignore the
84405// request if it has already been completed.
84406//
84407// For example, consider a situation where you make an initial request
84408// and the request times out. If you make the request again with the
84409// same request ID, the server can check if original operation with the
84410// same request ID was received, and if so, will ignore the second
84411// request. This prevents clients from accidentally creating duplicate
84412// commitments.
84413//
84414// The request ID must be a valid UUID with the exception that zero UUID
84415// is not supported (00000000-0000-0000-0000-000000000000).
84416func (c *InstancesDeleteCall) RequestId(requestId string) *InstancesDeleteCall {
84417	c.urlParams_.Set("requestId", requestId)
84418	return c
84419}
84420
84421// Fields allows partial responses to be retrieved. See
84422// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84423// for more information.
84424func (c *InstancesDeleteCall) Fields(s ...googleapi.Field) *InstancesDeleteCall {
84425	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84426	return c
84427}
84428
84429// Context sets the context to be used in this call's Do method. Any
84430// pending HTTP request will be aborted if the provided context is
84431// canceled.
84432func (c *InstancesDeleteCall) Context(ctx context.Context) *InstancesDeleteCall {
84433	c.ctx_ = ctx
84434	return c
84435}
84436
84437// Header returns an http.Header that can be modified by the caller to
84438// add HTTP headers to the request.
84439func (c *InstancesDeleteCall) Header() http.Header {
84440	if c.header_ == nil {
84441		c.header_ = make(http.Header)
84442	}
84443	return c.header_
84444}
84445
84446func (c *InstancesDeleteCall) doRequest(alt string) (*http.Response, error) {
84447	reqHeaders := make(http.Header)
84448	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
84449	for k, v := range c.header_ {
84450		reqHeaders[k] = v
84451	}
84452	reqHeaders.Set("User-Agent", c.s.userAgent())
84453	var body io.Reader = nil
84454	c.urlParams_.Set("alt", alt)
84455	c.urlParams_.Set("prettyPrint", "false")
84456	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}")
84457	urls += "?" + c.urlParams_.Encode()
84458	req, err := http.NewRequest("DELETE", urls, body)
84459	if err != nil {
84460		return nil, err
84461	}
84462	req.Header = reqHeaders
84463	googleapi.Expand(req.URL, map[string]string{
84464		"project":  c.project,
84465		"zone":     c.zone,
84466		"instance": c.instance,
84467	})
84468	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84469}
84470
84471// Do executes the "compute.instances.delete" call.
84472// Exactly one of *Operation or error will be non-nil. Any non-2xx
84473// status code is an error. Response headers are in either
84474// *Operation.ServerResponse.Header or (if a response was returned at
84475// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84476// to check whether the returned error was because
84477// http.StatusNotModified was returned.
84478func (c *InstancesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84479	gensupport.SetOptions(c.urlParams_, opts...)
84480	res, err := c.doRequest("json")
84481	if res != nil && res.StatusCode == http.StatusNotModified {
84482		if res.Body != nil {
84483			res.Body.Close()
84484		}
84485		return nil, &googleapi.Error{
84486			Code:   res.StatusCode,
84487			Header: res.Header,
84488		}
84489	}
84490	if err != nil {
84491		return nil, err
84492	}
84493	defer googleapi.CloseBody(res)
84494	if err := googleapi.CheckResponse(res); err != nil {
84495		return nil, err
84496	}
84497	ret := &Operation{
84498		ServerResponse: googleapi.ServerResponse{
84499			Header:         res.Header,
84500			HTTPStatusCode: res.StatusCode,
84501		},
84502	}
84503	target := &ret
84504	if err := gensupport.DecodeResponse(target, res); err != nil {
84505		return nil, err
84506	}
84507	return ret, nil
84508	// {
84509	//   "description": "Deletes the specified Instance resource. For more information, see Deleting an instance.",
84510	//   "httpMethod": "DELETE",
84511	//   "id": "compute.instances.delete",
84512	//   "parameterOrder": [
84513	//     "project",
84514	//     "zone",
84515	//     "instance"
84516	//   ],
84517	//   "parameters": {
84518	//     "instance": {
84519	//       "description": "Name of the instance resource to delete.",
84520	//       "location": "path",
84521	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
84522	//       "required": true,
84523	//       "type": "string"
84524	//     },
84525	//     "project": {
84526	//       "description": "Project ID for this request.",
84527	//       "location": "path",
84528	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84529	//       "required": true,
84530	//       "type": "string"
84531	//     },
84532	//     "requestId": {
84533	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
84534	//       "location": "query",
84535	//       "type": "string"
84536	//     },
84537	//     "zone": {
84538	//       "description": "The name of the zone for this request.",
84539	//       "location": "path",
84540	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
84541	//       "required": true,
84542	//       "type": "string"
84543	//     }
84544	//   },
84545	//   "path": "projects/{project}/zones/{zone}/instances/{instance}",
84546	//   "response": {
84547	//     "$ref": "Operation"
84548	//   },
84549	//   "scopes": [
84550	//     "https://www.googleapis.com/auth/cloud-platform",
84551	//     "https://www.googleapis.com/auth/compute"
84552	//   ]
84553	// }
84554
84555}
84556
84557// method id "compute.instances.deleteAccessConfig":
84558
84559type InstancesDeleteAccessConfigCall struct {
84560	s          *Service
84561	project    string
84562	zone       string
84563	instance   string
84564	urlParams_ gensupport.URLParams
84565	ctx_       context.Context
84566	header_    http.Header
84567}
84568
84569// DeleteAccessConfig: Deletes an access config from an instance's
84570// network interface.
84571//
84572// - accessConfig: The name of the access config to delete.
84573// - instance: The instance name for this request.
84574// - networkInterface: The name of the network interface.
84575// - project: Project ID for this request.
84576// - zone: The name of the zone for this request.
84577// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/deleteAccessConfig
84578func (r *InstancesService) DeleteAccessConfig(project string, zone string, instance string, accessConfig string, networkInterface string) *InstancesDeleteAccessConfigCall {
84579	c := &InstancesDeleteAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84580	c.project = project
84581	c.zone = zone
84582	c.instance = instance
84583	c.urlParams_.Set("accessConfig", accessConfig)
84584	c.urlParams_.Set("networkInterface", networkInterface)
84585	return c
84586}
84587
84588// RequestId sets the optional parameter "requestId": An optional
84589// request ID to identify requests. Specify a unique request ID so that
84590// if you must retry your request, the server will know to ignore the
84591// request if it has already been completed.
84592//
84593// For example, consider a situation where you make an initial request
84594// and the request times out. If you make the request again with the
84595// same request ID, the server can check if original operation with the
84596// same request ID was received, and if so, will ignore the second
84597// request. This prevents clients from accidentally creating duplicate
84598// commitments.
84599//
84600// The request ID must be a valid UUID with the exception that zero UUID
84601// is not supported (00000000-0000-0000-0000-000000000000).
84602func (c *InstancesDeleteAccessConfigCall) RequestId(requestId string) *InstancesDeleteAccessConfigCall {
84603	c.urlParams_.Set("requestId", requestId)
84604	return c
84605}
84606
84607// Fields allows partial responses to be retrieved. See
84608// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84609// for more information.
84610func (c *InstancesDeleteAccessConfigCall) Fields(s ...googleapi.Field) *InstancesDeleteAccessConfigCall {
84611	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84612	return c
84613}
84614
84615// Context sets the context to be used in this call's Do method. Any
84616// pending HTTP request will be aborted if the provided context is
84617// canceled.
84618func (c *InstancesDeleteAccessConfigCall) Context(ctx context.Context) *InstancesDeleteAccessConfigCall {
84619	c.ctx_ = ctx
84620	return c
84621}
84622
84623// Header returns an http.Header that can be modified by the caller to
84624// add HTTP headers to the request.
84625func (c *InstancesDeleteAccessConfigCall) Header() http.Header {
84626	if c.header_ == nil {
84627		c.header_ = make(http.Header)
84628	}
84629	return c.header_
84630}
84631
84632func (c *InstancesDeleteAccessConfigCall) doRequest(alt string) (*http.Response, error) {
84633	reqHeaders := make(http.Header)
84634	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
84635	for k, v := range c.header_ {
84636		reqHeaders[k] = v
84637	}
84638	reqHeaders.Set("User-Agent", c.s.userAgent())
84639	var body io.Reader = nil
84640	c.urlParams_.Set("alt", alt)
84641	c.urlParams_.Set("prettyPrint", "false")
84642	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/deleteAccessConfig")
84643	urls += "?" + c.urlParams_.Encode()
84644	req, err := http.NewRequest("POST", urls, body)
84645	if err != nil {
84646		return nil, err
84647	}
84648	req.Header = reqHeaders
84649	googleapi.Expand(req.URL, map[string]string{
84650		"project":  c.project,
84651		"zone":     c.zone,
84652		"instance": c.instance,
84653	})
84654	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84655}
84656
84657// Do executes the "compute.instances.deleteAccessConfig" call.
84658// Exactly one of *Operation or error will be non-nil. Any non-2xx
84659// status code is an error. Response headers are in either
84660// *Operation.ServerResponse.Header or (if a response was returned at
84661// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84662// to check whether the returned error was because
84663// http.StatusNotModified was returned.
84664func (c *InstancesDeleteAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84665	gensupport.SetOptions(c.urlParams_, opts...)
84666	res, err := c.doRequest("json")
84667	if res != nil && res.StatusCode == http.StatusNotModified {
84668		if res.Body != nil {
84669			res.Body.Close()
84670		}
84671		return nil, &googleapi.Error{
84672			Code:   res.StatusCode,
84673			Header: res.Header,
84674		}
84675	}
84676	if err != nil {
84677		return nil, err
84678	}
84679	defer googleapi.CloseBody(res)
84680	if err := googleapi.CheckResponse(res); err != nil {
84681		return nil, err
84682	}
84683	ret := &Operation{
84684		ServerResponse: googleapi.ServerResponse{
84685			Header:         res.Header,
84686			HTTPStatusCode: res.StatusCode,
84687		},
84688	}
84689	target := &ret
84690	if err := gensupport.DecodeResponse(target, res); err != nil {
84691		return nil, err
84692	}
84693	return ret, nil
84694	// {
84695	//   "description": "Deletes an access config from an instance's network interface.",
84696	//   "httpMethod": "POST",
84697	//   "id": "compute.instances.deleteAccessConfig",
84698	//   "parameterOrder": [
84699	//     "project",
84700	//     "zone",
84701	//     "instance",
84702	//     "accessConfig",
84703	//     "networkInterface"
84704	//   ],
84705	//   "parameters": {
84706	//     "accessConfig": {
84707	//       "description": "The name of the access config to delete.",
84708	//       "location": "query",
84709	//       "required": true,
84710	//       "type": "string"
84711	//     },
84712	//     "instance": {
84713	//       "description": "The instance name for this request.",
84714	//       "location": "path",
84715	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
84716	//       "required": true,
84717	//       "type": "string"
84718	//     },
84719	//     "networkInterface": {
84720	//       "description": "The name of the network interface.",
84721	//       "location": "query",
84722	//       "required": true,
84723	//       "type": "string"
84724	//     },
84725	//     "project": {
84726	//       "description": "Project ID for this request.",
84727	//       "location": "path",
84728	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84729	//       "required": true,
84730	//       "type": "string"
84731	//     },
84732	//     "requestId": {
84733	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
84734	//       "location": "query",
84735	//       "type": "string"
84736	//     },
84737	//     "zone": {
84738	//       "description": "The name of the zone for this request.",
84739	//       "location": "path",
84740	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
84741	//       "required": true,
84742	//       "type": "string"
84743	//     }
84744	//   },
84745	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/deleteAccessConfig",
84746	//   "response": {
84747	//     "$ref": "Operation"
84748	//   },
84749	//   "scopes": [
84750	//     "https://www.googleapis.com/auth/cloud-platform",
84751	//     "https://www.googleapis.com/auth/compute"
84752	//   ]
84753	// }
84754
84755}
84756
84757// method id "compute.instances.detachDisk":
84758
84759type InstancesDetachDiskCall struct {
84760	s          *Service
84761	project    string
84762	zone       string
84763	instance   string
84764	urlParams_ gensupport.URLParams
84765	ctx_       context.Context
84766	header_    http.Header
84767}
84768
84769// DetachDisk: Detaches a disk from an instance.
84770//
84771// - deviceName: The device name of the disk to detach. Make a get()
84772//   request on the instance to view currently attached disks and device
84773//   names.
84774// - instance: Instance name for this request.
84775// - project: Project ID for this request.
84776// - zone: The name of the zone for this request.
84777// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/detachDisk
84778func (r *InstancesService) DetachDisk(project string, zone string, instance string, deviceName string) *InstancesDetachDiskCall {
84779	c := &InstancesDetachDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84780	c.project = project
84781	c.zone = zone
84782	c.instance = instance
84783	c.urlParams_.Set("deviceName", deviceName)
84784	return c
84785}
84786
84787// RequestId sets the optional parameter "requestId": An optional
84788// request ID to identify requests. Specify a unique request ID so that
84789// if you must retry your request, the server will know to ignore the
84790// request if it has already been completed.
84791//
84792// For example, consider a situation where you make an initial request
84793// and the request times out. If you make the request again with the
84794// same request ID, the server can check if original operation with the
84795// same request ID was received, and if so, will ignore the second
84796// request. This prevents clients from accidentally creating duplicate
84797// commitments.
84798//
84799// The request ID must be a valid UUID with the exception that zero UUID
84800// is not supported (00000000-0000-0000-0000-000000000000).
84801func (c *InstancesDetachDiskCall) RequestId(requestId string) *InstancesDetachDiskCall {
84802	c.urlParams_.Set("requestId", requestId)
84803	return c
84804}
84805
84806// Fields allows partial responses to be retrieved. See
84807// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84808// for more information.
84809func (c *InstancesDetachDiskCall) Fields(s ...googleapi.Field) *InstancesDetachDiskCall {
84810	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84811	return c
84812}
84813
84814// Context sets the context to be used in this call's Do method. Any
84815// pending HTTP request will be aborted if the provided context is
84816// canceled.
84817func (c *InstancesDetachDiskCall) Context(ctx context.Context) *InstancesDetachDiskCall {
84818	c.ctx_ = ctx
84819	return c
84820}
84821
84822// Header returns an http.Header that can be modified by the caller to
84823// add HTTP headers to the request.
84824func (c *InstancesDetachDiskCall) Header() http.Header {
84825	if c.header_ == nil {
84826		c.header_ = make(http.Header)
84827	}
84828	return c.header_
84829}
84830
84831func (c *InstancesDetachDiskCall) doRequest(alt string) (*http.Response, error) {
84832	reqHeaders := make(http.Header)
84833	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
84834	for k, v := range c.header_ {
84835		reqHeaders[k] = v
84836	}
84837	reqHeaders.Set("User-Agent", c.s.userAgent())
84838	var body io.Reader = nil
84839	c.urlParams_.Set("alt", alt)
84840	c.urlParams_.Set("prettyPrint", "false")
84841	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/detachDisk")
84842	urls += "?" + c.urlParams_.Encode()
84843	req, err := http.NewRequest("POST", urls, body)
84844	if err != nil {
84845		return nil, err
84846	}
84847	req.Header = reqHeaders
84848	googleapi.Expand(req.URL, map[string]string{
84849		"project":  c.project,
84850		"zone":     c.zone,
84851		"instance": c.instance,
84852	})
84853	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84854}
84855
84856// Do executes the "compute.instances.detachDisk" call.
84857// Exactly one of *Operation or error will be non-nil. Any non-2xx
84858// status code is an error. Response headers are in either
84859// *Operation.ServerResponse.Header or (if a response was returned at
84860// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84861// to check whether the returned error was because
84862// http.StatusNotModified was returned.
84863func (c *InstancesDetachDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84864	gensupport.SetOptions(c.urlParams_, opts...)
84865	res, err := c.doRequest("json")
84866	if res != nil && res.StatusCode == http.StatusNotModified {
84867		if res.Body != nil {
84868			res.Body.Close()
84869		}
84870		return nil, &googleapi.Error{
84871			Code:   res.StatusCode,
84872			Header: res.Header,
84873		}
84874	}
84875	if err != nil {
84876		return nil, err
84877	}
84878	defer googleapi.CloseBody(res)
84879	if err := googleapi.CheckResponse(res); err != nil {
84880		return nil, err
84881	}
84882	ret := &Operation{
84883		ServerResponse: googleapi.ServerResponse{
84884			Header:         res.Header,
84885			HTTPStatusCode: res.StatusCode,
84886		},
84887	}
84888	target := &ret
84889	if err := gensupport.DecodeResponse(target, res); err != nil {
84890		return nil, err
84891	}
84892	return ret, nil
84893	// {
84894	//   "description": "Detaches a disk from an instance.",
84895	//   "httpMethod": "POST",
84896	//   "id": "compute.instances.detachDisk",
84897	//   "parameterOrder": [
84898	//     "project",
84899	//     "zone",
84900	//     "instance",
84901	//     "deviceName"
84902	//   ],
84903	//   "parameters": {
84904	//     "deviceName": {
84905	//       "description": "The device name of the disk to detach. Make a get() request on the instance to view currently attached disks and device names.",
84906	//       "location": "query",
84907	//       "required": true,
84908	//       "type": "string"
84909	//     },
84910	//     "instance": {
84911	//       "description": "Instance name for this request.",
84912	//       "location": "path",
84913	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
84914	//       "required": true,
84915	//       "type": "string"
84916	//     },
84917	//     "project": {
84918	//       "description": "Project ID for this request.",
84919	//       "location": "path",
84920	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84921	//       "required": true,
84922	//       "type": "string"
84923	//     },
84924	//     "requestId": {
84925	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
84926	//       "location": "query",
84927	//       "type": "string"
84928	//     },
84929	//     "zone": {
84930	//       "description": "The name of the zone for this request.",
84931	//       "location": "path",
84932	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
84933	//       "required": true,
84934	//       "type": "string"
84935	//     }
84936	//   },
84937	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/detachDisk",
84938	//   "response": {
84939	//     "$ref": "Operation"
84940	//   },
84941	//   "scopes": [
84942	//     "https://www.googleapis.com/auth/cloud-platform",
84943	//     "https://www.googleapis.com/auth/compute"
84944	//   ]
84945	// }
84946
84947}
84948
84949// method id "compute.instances.get":
84950
84951type InstancesGetCall struct {
84952	s            *Service
84953	project      string
84954	zone         string
84955	instance     string
84956	urlParams_   gensupport.URLParams
84957	ifNoneMatch_ string
84958	ctx_         context.Context
84959	header_      http.Header
84960}
84961
84962// Get: Returns the specified Instance resource. Gets a list of
84963// available instances by making a list() request.
84964//
84965// - instance: Name of the instance resource to return.
84966// - project: Project ID for this request.
84967// - zone: The name of the zone for this request.
84968// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/get
84969func (r *InstancesService) Get(project string, zone string, instance string) *InstancesGetCall {
84970	c := &InstancesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84971	c.project = project
84972	c.zone = zone
84973	c.instance = instance
84974	return c
84975}
84976
84977// Fields allows partial responses to be retrieved. See
84978// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84979// for more information.
84980func (c *InstancesGetCall) Fields(s ...googleapi.Field) *InstancesGetCall {
84981	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84982	return c
84983}
84984
84985// IfNoneMatch sets the optional parameter which makes the operation
84986// fail if the object's ETag matches the given value. This is useful for
84987// getting updates only after the object has changed since the last
84988// request. Use googleapi.IsNotModified to check whether the response
84989// error from Do is the result of In-None-Match.
84990func (c *InstancesGetCall) IfNoneMatch(entityTag string) *InstancesGetCall {
84991	c.ifNoneMatch_ = entityTag
84992	return c
84993}
84994
84995// Context sets the context to be used in this call's Do method. Any
84996// pending HTTP request will be aborted if the provided context is
84997// canceled.
84998func (c *InstancesGetCall) Context(ctx context.Context) *InstancesGetCall {
84999	c.ctx_ = ctx
85000	return c
85001}
85002
85003// Header returns an http.Header that can be modified by the caller to
85004// add HTTP headers to the request.
85005func (c *InstancesGetCall) Header() http.Header {
85006	if c.header_ == nil {
85007		c.header_ = make(http.Header)
85008	}
85009	return c.header_
85010}
85011
85012func (c *InstancesGetCall) doRequest(alt string) (*http.Response, error) {
85013	reqHeaders := make(http.Header)
85014	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
85015	for k, v := range c.header_ {
85016		reqHeaders[k] = v
85017	}
85018	reqHeaders.Set("User-Agent", c.s.userAgent())
85019	if c.ifNoneMatch_ != "" {
85020		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
85021	}
85022	var body io.Reader = nil
85023	c.urlParams_.Set("alt", alt)
85024	c.urlParams_.Set("prettyPrint", "false")
85025	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}")
85026	urls += "?" + c.urlParams_.Encode()
85027	req, err := http.NewRequest("GET", urls, body)
85028	if err != nil {
85029		return nil, err
85030	}
85031	req.Header = reqHeaders
85032	googleapi.Expand(req.URL, map[string]string{
85033		"project":  c.project,
85034		"zone":     c.zone,
85035		"instance": c.instance,
85036	})
85037	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85038}
85039
85040// Do executes the "compute.instances.get" call.
85041// Exactly one of *Instance or error will be non-nil. Any non-2xx status
85042// code is an error. Response headers are in either
85043// *Instance.ServerResponse.Header or (if a response was returned at
85044// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
85045// to check whether the returned error was because
85046// http.StatusNotModified was returned.
85047func (c *InstancesGetCall) Do(opts ...googleapi.CallOption) (*Instance, error) {
85048	gensupport.SetOptions(c.urlParams_, opts...)
85049	res, err := c.doRequest("json")
85050	if res != nil && res.StatusCode == http.StatusNotModified {
85051		if res.Body != nil {
85052			res.Body.Close()
85053		}
85054		return nil, &googleapi.Error{
85055			Code:   res.StatusCode,
85056			Header: res.Header,
85057		}
85058	}
85059	if err != nil {
85060		return nil, err
85061	}
85062	defer googleapi.CloseBody(res)
85063	if err := googleapi.CheckResponse(res); err != nil {
85064		return nil, err
85065	}
85066	ret := &Instance{
85067		ServerResponse: googleapi.ServerResponse{
85068			Header:         res.Header,
85069			HTTPStatusCode: res.StatusCode,
85070		},
85071	}
85072	target := &ret
85073	if err := gensupport.DecodeResponse(target, res); err != nil {
85074		return nil, err
85075	}
85076	return ret, nil
85077	// {
85078	//   "description": "Returns the specified Instance resource. Gets a list of available instances by making a list() request.",
85079	//   "httpMethod": "GET",
85080	//   "id": "compute.instances.get",
85081	//   "parameterOrder": [
85082	//     "project",
85083	//     "zone",
85084	//     "instance"
85085	//   ],
85086	//   "parameters": {
85087	//     "instance": {
85088	//       "description": "Name of the instance resource to return.",
85089	//       "location": "path",
85090	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
85091	//       "required": true,
85092	//       "type": "string"
85093	//     },
85094	//     "project": {
85095	//       "description": "Project ID for this request.",
85096	//       "location": "path",
85097	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85098	//       "required": true,
85099	//       "type": "string"
85100	//     },
85101	//     "zone": {
85102	//       "description": "The name of the zone for this request.",
85103	//       "location": "path",
85104	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
85105	//       "required": true,
85106	//       "type": "string"
85107	//     }
85108	//   },
85109	//   "path": "projects/{project}/zones/{zone}/instances/{instance}",
85110	//   "response": {
85111	//     "$ref": "Instance"
85112	//   },
85113	//   "scopes": [
85114	//     "https://www.googleapis.com/auth/cloud-platform",
85115	//     "https://www.googleapis.com/auth/compute",
85116	//     "https://www.googleapis.com/auth/compute.readonly"
85117	//   ]
85118	// }
85119
85120}
85121
85122// method id "compute.instances.getEffectiveFirewalls":
85123
85124type InstancesGetEffectiveFirewallsCall struct {
85125	s            *Service
85126	project      string
85127	zone         string
85128	instance     string
85129	urlParams_   gensupport.URLParams
85130	ifNoneMatch_ string
85131	ctx_         context.Context
85132	header_      http.Header
85133}
85134
85135// GetEffectiveFirewalls: Returns effective firewalls applied to an
85136// interface of the instance.
85137//
85138// - instance: Name of the instance scoping this request.
85139// - networkInterface: The name of the network interface to get the
85140//   effective firewalls.
85141// - project: Project ID for this request.
85142// - zone: The name of the zone for this request.
85143func (r *InstancesService) GetEffectiveFirewalls(project string, zone string, instance string, networkInterface string) *InstancesGetEffectiveFirewallsCall {
85144	c := &InstancesGetEffectiveFirewallsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85145	c.project = project
85146	c.zone = zone
85147	c.instance = instance
85148	c.urlParams_.Set("networkInterface", networkInterface)
85149	return c
85150}
85151
85152// Fields allows partial responses to be retrieved. See
85153// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85154// for more information.
85155func (c *InstancesGetEffectiveFirewallsCall) Fields(s ...googleapi.Field) *InstancesGetEffectiveFirewallsCall {
85156	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85157	return c
85158}
85159
85160// IfNoneMatch sets the optional parameter which makes the operation
85161// fail if the object's ETag matches the given value. This is useful for
85162// getting updates only after the object has changed since the last
85163// request. Use googleapi.IsNotModified to check whether the response
85164// error from Do is the result of In-None-Match.
85165func (c *InstancesGetEffectiveFirewallsCall) IfNoneMatch(entityTag string) *InstancesGetEffectiveFirewallsCall {
85166	c.ifNoneMatch_ = entityTag
85167	return c
85168}
85169
85170// Context sets the context to be used in this call's Do method. Any
85171// pending HTTP request will be aborted if the provided context is
85172// canceled.
85173func (c *InstancesGetEffectiveFirewallsCall) Context(ctx context.Context) *InstancesGetEffectiveFirewallsCall {
85174	c.ctx_ = ctx
85175	return c
85176}
85177
85178// Header returns an http.Header that can be modified by the caller to
85179// add HTTP headers to the request.
85180func (c *InstancesGetEffectiveFirewallsCall) Header() http.Header {
85181	if c.header_ == nil {
85182		c.header_ = make(http.Header)
85183	}
85184	return c.header_
85185}
85186
85187func (c *InstancesGetEffectiveFirewallsCall) doRequest(alt string) (*http.Response, error) {
85188	reqHeaders := make(http.Header)
85189	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
85190	for k, v := range c.header_ {
85191		reqHeaders[k] = v
85192	}
85193	reqHeaders.Set("User-Agent", c.s.userAgent())
85194	if c.ifNoneMatch_ != "" {
85195		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
85196	}
85197	var body io.Reader = nil
85198	c.urlParams_.Set("alt", alt)
85199	c.urlParams_.Set("prettyPrint", "false")
85200	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/getEffectiveFirewalls")
85201	urls += "?" + c.urlParams_.Encode()
85202	req, err := http.NewRequest("GET", urls, body)
85203	if err != nil {
85204		return nil, err
85205	}
85206	req.Header = reqHeaders
85207	googleapi.Expand(req.URL, map[string]string{
85208		"project":  c.project,
85209		"zone":     c.zone,
85210		"instance": c.instance,
85211	})
85212	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85213}
85214
85215// Do executes the "compute.instances.getEffectiveFirewalls" call.
85216// Exactly one of *InstancesGetEffectiveFirewallsResponse or error will
85217// be non-nil. Any non-2xx status code is an error. Response headers are
85218// in either
85219// *InstancesGetEffectiveFirewallsResponse.ServerResponse.Header or (if
85220// a response was returned at all) in error.(*googleapi.Error).Header.
85221// Use googleapi.IsNotModified to check whether the returned error was
85222// because http.StatusNotModified was returned.
85223func (c *InstancesGetEffectiveFirewallsCall) Do(opts ...googleapi.CallOption) (*InstancesGetEffectiveFirewallsResponse, error) {
85224	gensupport.SetOptions(c.urlParams_, opts...)
85225	res, err := c.doRequest("json")
85226	if res != nil && res.StatusCode == http.StatusNotModified {
85227		if res.Body != nil {
85228			res.Body.Close()
85229		}
85230		return nil, &googleapi.Error{
85231			Code:   res.StatusCode,
85232			Header: res.Header,
85233		}
85234	}
85235	if err != nil {
85236		return nil, err
85237	}
85238	defer googleapi.CloseBody(res)
85239	if err := googleapi.CheckResponse(res); err != nil {
85240		return nil, err
85241	}
85242	ret := &InstancesGetEffectiveFirewallsResponse{
85243		ServerResponse: googleapi.ServerResponse{
85244			Header:         res.Header,
85245			HTTPStatusCode: res.StatusCode,
85246		},
85247	}
85248	target := &ret
85249	if err := gensupport.DecodeResponse(target, res); err != nil {
85250		return nil, err
85251	}
85252	return ret, nil
85253	// {
85254	//   "description": "Returns effective firewalls applied to an interface of the instance.",
85255	//   "httpMethod": "GET",
85256	//   "id": "compute.instances.getEffectiveFirewalls",
85257	//   "parameterOrder": [
85258	//     "project",
85259	//     "zone",
85260	//     "instance",
85261	//     "networkInterface"
85262	//   ],
85263	//   "parameters": {
85264	//     "instance": {
85265	//       "description": "Name of the instance scoping this request.",
85266	//       "location": "path",
85267	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
85268	//       "required": true,
85269	//       "type": "string"
85270	//     },
85271	//     "networkInterface": {
85272	//       "description": "The name of the network interface to get the effective firewalls.",
85273	//       "location": "query",
85274	//       "required": true,
85275	//       "type": "string"
85276	//     },
85277	//     "project": {
85278	//       "description": "Project ID for this request.",
85279	//       "location": "path",
85280	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85281	//       "required": true,
85282	//       "type": "string"
85283	//     },
85284	//     "zone": {
85285	//       "description": "The name of the zone for this request.",
85286	//       "location": "path",
85287	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
85288	//       "required": true,
85289	//       "type": "string"
85290	//     }
85291	//   },
85292	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/getEffectiveFirewalls",
85293	//   "response": {
85294	//     "$ref": "InstancesGetEffectiveFirewallsResponse"
85295	//   },
85296	//   "scopes": [
85297	//     "https://www.googleapis.com/auth/cloud-platform",
85298	//     "https://www.googleapis.com/auth/compute",
85299	//     "https://www.googleapis.com/auth/compute.readonly"
85300	//   ]
85301	// }
85302
85303}
85304
85305// method id "compute.instances.getGuestAttributes":
85306
85307type InstancesGetGuestAttributesCall struct {
85308	s            *Service
85309	project      string
85310	zone         string
85311	instance     string
85312	urlParams_   gensupport.URLParams
85313	ifNoneMatch_ string
85314	ctx_         context.Context
85315	header_      http.Header
85316}
85317
85318// GetGuestAttributes: Returns the specified guest attributes entry.
85319//
85320// - instance: Name of the instance scoping this request.
85321// - project: Project ID for this request.
85322// - zone: The name of the zone for this request.
85323func (r *InstancesService) GetGuestAttributes(project string, zone string, instance string) *InstancesGetGuestAttributesCall {
85324	c := &InstancesGetGuestAttributesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85325	c.project = project
85326	c.zone = zone
85327	c.instance = instance
85328	return c
85329}
85330
85331// QueryPath sets the optional parameter "queryPath": Specifies the
85332// guest attributes path to be queried.
85333func (c *InstancesGetGuestAttributesCall) QueryPath(queryPath string) *InstancesGetGuestAttributesCall {
85334	c.urlParams_.Set("queryPath", queryPath)
85335	return c
85336}
85337
85338// VariableKey sets the optional parameter "variableKey": Specifies the
85339// key for the guest attributes entry.
85340func (c *InstancesGetGuestAttributesCall) VariableKey(variableKey string) *InstancesGetGuestAttributesCall {
85341	c.urlParams_.Set("variableKey", variableKey)
85342	return c
85343}
85344
85345// Fields allows partial responses to be retrieved. See
85346// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85347// for more information.
85348func (c *InstancesGetGuestAttributesCall) Fields(s ...googleapi.Field) *InstancesGetGuestAttributesCall {
85349	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85350	return c
85351}
85352
85353// IfNoneMatch sets the optional parameter which makes the operation
85354// fail if the object's ETag matches the given value. This is useful for
85355// getting updates only after the object has changed since the last
85356// request. Use googleapi.IsNotModified to check whether the response
85357// error from Do is the result of In-None-Match.
85358func (c *InstancesGetGuestAttributesCall) IfNoneMatch(entityTag string) *InstancesGetGuestAttributesCall {
85359	c.ifNoneMatch_ = entityTag
85360	return c
85361}
85362
85363// Context sets the context to be used in this call's Do method. Any
85364// pending HTTP request will be aborted if the provided context is
85365// canceled.
85366func (c *InstancesGetGuestAttributesCall) Context(ctx context.Context) *InstancesGetGuestAttributesCall {
85367	c.ctx_ = ctx
85368	return c
85369}
85370
85371// Header returns an http.Header that can be modified by the caller to
85372// add HTTP headers to the request.
85373func (c *InstancesGetGuestAttributesCall) Header() http.Header {
85374	if c.header_ == nil {
85375		c.header_ = make(http.Header)
85376	}
85377	return c.header_
85378}
85379
85380func (c *InstancesGetGuestAttributesCall) doRequest(alt string) (*http.Response, error) {
85381	reqHeaders := make(http.Header)
85382	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
85383	for k, v := range c.header_ {
85384		reqHeaders[k] = v
85385	}
85386	reqHeaders.Set("User-Agent", c.s.userAgent())
85387	if c.ifNoneMatch_ != "" {
85388		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
85389	}
85390	var body io.Reader = nil
85391	c.urlParams_.Set("alt", alt)
85392	c.urlParams_.Set("prettyPrint", "false")
85393	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/getGuestAttributes")
85394	urls += "?" + c.urlParams_.Encode()
85395	req, err := http.NewRequest("GET", urls, body)
85396	if err != nil {
85397		return nil, err
85398	}
85399	req.Header = reqHeaders
85400	googleapi.Expand(req.URL, map[string]string{
85401		"project":  c.project,
85402		"zone":     c.zone,
85403		"instance": c.instance,
85404	})
85405	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85406}
85407
85408// Do executes the "compute.instances.getGuestAttributes" call.
85409// Exactly one of *GuestAttributes or error will be non-nil. Any non-2xx
85410// status code is an error. Response headers are in either
85411// *GuestAttributes.ServerResponse.Header or (if a response was returned
85412// at all) in error.(*googleapi.Error).Header. Use
85413// googleapi.IsNotModified to check whether the returned error was
85414// because http.StatusNotModified was returned.
85415func (c *InstancesGetGuestAttributesCall) Do(opts ...googleapi.CallOption) (*GuestAttributes, error) {
85416	gensupport.SetOptions(c.urlParams_, opts...)
85417	res, err := c.doRequest("json")
85418	if res != nil && res.StatusCode == http.StatusNotModified {
85419		if res.Body != nil {
85420			res.Body.Close()
85421		}
85422		return nil, &googleapi.Error{
85423			Code:   res.StatusCode,
85424			Header: res.Header,
85425		}
85426	}
85427	if err != nil {
85428		return nil, err
85429	}
85430	defer googleapi.CloseBody(res)
85431	if err := googleapi.CheckResponse(res); err != nil {
85432		return nil, err
85433	}
85434	ret := &GuestAttributes{
85435		ServerResponse: googleapi.ServerResponse{
85436			Header:         res.Header,
85437			HTTPStatusCode: res.StatusCode,
85438		},
85439	}
85440	target := &ret
85441	if err := gensupport.DecodeResponse(target, res); err != nil {
85442		return nil, err
85443	}
85444	return ret, nil
85445	// {
85446	//   "description": "Returns the specified guest attributes entry.",
85447	//   "httpMethod": "GET",
85448	//   "id": "compute.instances.getGuestAttributes",
85449	//   "parameterOrder": [
85450	//     "project",
85451	//     "zone",
85452	//     "instance"
85453	//   ],
85454	//   "parameters": {
85455	//     "instance": {
85456	//       "description": "Name of the instance scoping this request.",
85457	//       "location": "path",
85458	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
85459	//       "required": true,
85460	//       "type": "string"
85461	//     },
85462	//     "project": {
85463	//       "description": "Project ID for this request.",
85464	//       "location": "path",
85465	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85466	//       "required": true,
85467	//       "type": "string"
85468	//     },
85469	//     "queryPath": {
85470	//       "description": "Specifies the guest attributes path to be queried.",
85471	//       "location": "query",
85472	//       "type": "string"
85473	//     },
85474	//     "variableKey": {
85475	//       "description": "Specifies the key for the guest attributes entry.",
85476	//       "location": "query",
85477	//       "type": "string"
85478	//     },
85479	//     "zone": {
85480	//       "description": "The name of the zone for this request.",
85481	//       "location": "path",
85482	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
85483	//       "required": true,
85484	//       "type": "string"
85485	//     }
85486	//   },
85487	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/getGuestAttributes",
85488	//   "response": {
85489	//     "$ref": "GuestAttributes"
85490	//   },
85491	//   "scopes": [
85492	//     "https://www.googleapis.com/auth/cloud-platform",
85493	//     "https://www.googleapis.com/auth/compute",
85494	//     "https://www.googleapis.com/auth/compute.readonly"
85495	//   ]
85496	// }
85497
85498}
85499
85500// method id "compute.instances.getIamPolicy":
85501
85502type InstancesGetIamPolicyCall struct {
85503	s            *Service
85504	project      string
85505	zone         string
85506	resource     string
85507	urlParams_   gensupport.URLParams
85508	ifNoneMatch_ string
85509	ctx_         context.Context
85510	header_      http.Header
85511}
85512
85513// GetIamPolicy: Gets the access control policy for a resource. May be
85514// empty if no such policy or resource exists.
85515//
85516// - project: Project ID for this request.
85517// - resource: Name or id of the resource for this request.
85518// - zone: The name of the zone for this request.
85519func (r *InstancesService) GetIamPolicy(project string, zone string, resource string) *InstancesGetIamPolicyCall {
85520	c := &InstancesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85521	c.project = project
85522	c.zone = zone
85523	c.resource = resource
85524	return c
85525}
85526
85527// OptionsRequestedPolicyVersion sets the optional parameter
85528// "optionsRequestedPolicyVersion": Requested IAM Policy version.
85529func (c *InstancesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *InstancesGetIamPolicyCall {
85530	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
85531	return c
85532}
85533
85534// Fields allows partial responses to be retrieved. See
85535// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85536// for more information.
85537func (c *InstancesGetIamPolicyCall) Fields(s ...googleapi.Field) *InstancesGetIamPolicyCall {
85538	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85539	return c
85540}
85541
85542// IfNoneMatch sets the optional parameter which makes the operation
85543// fail if the object's ETag matches the given value. This is useful for
85544// getting updates only after the object has changed since the last
85545// request. Use googleapi.IsNotModified to check whether the response
85546// error from Do is the result of In-None-Match.
85547func (c *InstancesGetIamPolicyCall) IfNoneMatch(entityTag string) *InstancesGetIamPolicyCall {
85548	c.ifNoneMatch_ = entityTag
85549	return c
85550}
85551
85552// Context sets the context to be used in this call's Do method. Any
85553// pending HTTP request will be aborted if the provided context is
85554// canceled.
85555func (c *InstancesGetIamPolicyCall) Context(ctx context.Context) *InstancesGetIamPolicyCall {
85556	c.ctx_ = ctx
85557	return c
85558}
85559
85560// Header returns an http.Header that can be modified by the caller to
85561// add HTTP headers to the request.
85562func (c *InstancesGetIamPolicyCall) Header() http.Header {
85563	if c.header_ == nil {
85564		c.header_ = make(http.Header)
85565	}
85566	return c.header_
85567}
85568
85569func (c *InstancesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
85570	reqHeaders := make(http.Header)
85571	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
85572	for k, v := range c.header_ {
85573		reqHeaders[k] = v
85574	}
85575	reqHeaders.Set("User-Agent", c.s.userAgent())
85576	if c.ifNoneMatch_ != "" {
85577		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
85578	}
85579	var body io.Reader = nil
85580	c.urlParams_.Set("alt", alt)
85581	c.urlParams_.Set("prettyPrint", "false")
85582	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{resource}/getIamPolicy")
85583	urls += "?" + c.urlParams_.Encode()
85584	req, err := http.NewRequest("GET", urls, body)
85585	if err != nil {
85586		return nil, err
85587	}
85588	req.Header = reqHeaders
85589	googleapi.Expand(req.URL, map[string]string{
85590		"project":  c.project,
85591		"zone":     c.zone,
85592		"resource": c.resource,
85593	})
85594	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85595}
85596
85597// Do executes the "compute.instances.getIamPolicy" call.
85598// Exactly one of *Policy or error will be non-nil. Any non-2xx status
85599// code is an error. Response headers are in either
85600// *Policy.ServerResponse.Header or (if a response was returned at all)
85601// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
85602// check whether the returned error was because http.StatusNotModified
85603// was returned.
85604func (c *InstancesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
85605	gensupport.SetOptions(c.urlParams_, opts...)
85606	res, err := c.doRequest("json")
85607	if res != nil && res.StatusCode == http.StatusNotModified {
85608		if res.Body != nil {
85609			res.Body.Close()
85610		}
85611		return nil, &googleapi.Error{
85612			Code:   res.StatusCode,
85613			Header: res.Header,
85614		}
85615	}
85616	if err != nil {
85617		return nil, err
85618	}
85619	defer googleapi.CloseBody(res)
85620	if err := googleapi.CheckResponse(res); err != nil {
85621		return nil, err
85622	}
85623	ret := &Policy{
85624		ServerResponse: googleapi.ServerResponse{
85625			Header:         res.Header,
85626			HTTPStatusCode: res.StatusCode,
85627		},
85628	}
85629	target := &ret
85630	if err := gensupport.DecodeResponse(target, res); err != nil {
85631		return nil, err
85632	}
85633	return ret, nil
85634	// {
85635	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
85636	//   "httpMethod": "GET",
85637	//   "id": "compute.instances.getIamPolicy",
85638	//   "parameterOrder": [
85639	//     "project",
85640	//     "zone",
85641	//     "resource"
85642	//   ],
85643	//   "parameters": {
85644	//     "optionsRequestedPolicyVersion": {
85645	//       "description": "Requested IAM Policy version.",
85646	//       "format": "int32",
85647	//       "location": "query",
85648	//       "type": "integer"
85649	//     },
85650	//     "project": {
85651	//       "description": "Project ID for this request.",
85652	//       "location": "path",
85653	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85654	//       "required": true,
85655	//       "type": "string"
85656	//     },
85657	//     "resource": {
85658	//       "description": "Name or id of the resource for this request.",
85659	//       "location": "path",
85660	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
85661	//       "required": true,
85662	//       "type": "string"
85663	//     },
85664	//     "zone": {
85665	//       "description": "The name of the zone for this request.",
85666	//       "location": "path",
85667	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
85668	//       "required": true,
85669	//       "type": "string"
85670	//     }
85671	//   },
85672	//   "path": "projects/{project}/zones/{zone}/instances/{resource}/getIamPolicy",
85673	//   "response": {
85674	//     "$ref": "Policy"
85675	//   },
85676	//   "scopes": [
85677	//     "https://www.googleapis.com/auth/cloud-platform",
85678	//     "https://www.googleapis.com/auth/compute",
85679	//     "https://www.googleapis.com/auth/compute.readonly"
85680	//   ]
85681	// }
85682
85683}
85684
85685// method id "compute.instances.getScreenshot":
85686
85687type InstancesGetScreenshotCall struct {
85688	s            *Service
85689	project      string
85690	zone         string
85691	instance     string
85692	urlParams_   gensupport.URLParams
85693	ifNoneMatch_ string
85694	ctx_         context.Context
85695	header_      http.Header
85696}
85697
85698// GetScreenshot: Returns the screenshot from the specified instance.
85699//
85700// - instance: Name of the instance scoping this request.
85701// - project: Project ID for this request.
85702// - zone: The name of the zone for this request.
85703func (r *InstancesService) GetScreenshot(project string, zone string, instance string) *InstancesGetScreenshotCall {
85704	c := &InstancesGetScreenshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85705	c.project = project
85706	c.zone = zone
85707	c.instance = instance
85708	return c
85709}
85710
85711// Fields allows partial responses to be retrieved. See
85712// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85713// for more information.
85714func (c *InstancesGetScreenshotCall) Fields(s ...googleapi.Field) *InstancesGetScreenshotCall {
85715	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85716	return c
85717}
85718
85719// IfNoneMatch sets the optional parameter which makes the operation
85720// fail if the object's ETag matches the given value. This is useful for
85721// getting updates only after the object has changed since the last
85722// request. Use googleapi.IsNotModified to check whether the response
85723// error from Do is the result of In-None-Match.
85724func (c *InstancesGetScreenshotCall) IfNoneMatch(entityTag string) *InstancesGetScreenshotCall {
85725	c.ifNoneMatch_ = entityTag
85726	return c
85727}
85728
85729// Context sets the context to be used in this call's Do method. Any
85730// pending HTTP request will be aborted if the provided context is
85731// canceled.
85732func (c *InstancesGetScreenshotCall) Context(ctx context.Context) *InstancesGetScreenshotCall {
85733	c.ctx_ = ctx
85734	return c
85735}
85736
85737// Header returns an http.Header that can be modified by the caller to
85738// add HTTP headers to the request.
85739func (c *InstancesGetScreenshotCall) Header() http.Header {
85740	if c.header_ == nil {
85741		c.header_ = make(http.Header)
85742	}
85743	return c.header_
85744}
85745
85746func (c *InstancesGetScreenshotCall) doRequest(alt string) (*http.Response, error) {
85747	reqHeaders := make(http.Header)
85748	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
85749	for k, v := range c.header_ {
85750		reqHeaders[k] = v
85751	}
85752	reqHeaders.Set("User-Agent", c.s.userAgent())
85753	if c.ifNoneMatch_ != "" {
85754		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
85755	}
85756	var body io.Reader = nil
85757	c.urlParams_.Set("alt", alt)
85758	c.urlParams_.Set("prettyPrint", "false")
85759	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/screenshot")
85760	urls += "?" + c.urlParams_.Encode()
85761	req, err := http.NewRequest("GET", urls, body)
85762	if err != nil {
85763		return nil, err
85764	}
85765	req.Header = reqHeaders
85766	googleapi.Expand(req.URL, map[string]string{
85767		"project":  c.project,
85768		"zone":     c.zone,
85769		"instance": c.instance,
85770	})
85771	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85772}
85773
85774// Do executes the "compute.instances.getScreenshot" call.
85775// Exactly one of *Screenshot or error will be non-nil. Any non-2xx
85776// status code is an error. Response headers are in either
85777// *Screenshot.ServerResponse.Header or (if a response was returned at
85778// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
85779// to check whether the returned error was because
85780// http.StatusNotModified was returned.
85781func (c *InstancesGetScreenshotCall) Do(opts ...googleapi.CallOption) (*Screenshot, error) {
85782	gensupport.SetOptions(c.urlParams_, opts...)
85783	res, err := c.doRequest("json")
85784	if res != nil && res.StatusCode == http.StatusNotModified {
85785		if res.Body != nil {
85786			res.Body.Close()
85787		}
85788		return nil, &googleapi.Error{
85789			Code:   res.StatusCode,
85790			Header: res.Header,
85791		}
85792	}
85793	if err != nil {
85794		return nil, err
85795	}
85796	defer googleapi.CloseBody(res)
85797	if err := googleapi.CheckResponse(res); err != nil {
85798		return nil, err
85799	}
85800	ret := &Screenshot{
85801		ServerResponse: googleapi.ServerResponse{
85802			Header:         res.Header,
85803			HTTPStatusCode: res.StatusCode,
85804		},
85805	}
85806	target := &ret
85807	if err := gensupport.DecodeResponse(target, res); err != nil {
85808		return nil, err
85809	}
85810	return ret, nil
85811	// {
85812	//   "description": "Returns the screenshot from the specified instance.",
85813	//   "httpMethod": "GET",
85814	//   "id": "compute.instances.getScreenshot",
85815	//   "parameterOrder": [
85816	//     "project",
85817	//     "zone",
85818	//     "instance"
85819	//   ],
85820	//   "parameters": {
85821	//     "instance": {
85822	//       "description": "Name of the instance scoping this request.",
85823	//       "location": "path",
85824	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
85825	//       "required": true,
85826	//       "type": "string"
85827	//     },
85828	//     "project": {
85829	//       "description": "Project ID for this request.",
85830	//       "location": "path",
85831	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85832	//       "required": true,
85833	//       "type": "string"
85834	//     },
85835	//     "zone": {
85836	//       "description": "The name of the zone for this request.",
85837	//       "location": "path",
85838	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
85839	//       "required": true,
85840	//       "type": "string"
85841	//     }
85842	//   },
85843	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/screenshot",
85844	//   "response": {
85845	//     "$ref": "Screenshot"
85846	//   },
85847	//   "scopes": [
85848	//     "https://www.googleapis.com/auth/cloud-platform",
85849	//     "https://www.googleapis.com/auth/compute",
85850	//     "https://www.googleapis.com/auth/compute.readonly"
85851	//   ]
85852	// }
85853
85854}
85855
85856// method id "compute.instances.getSerialPortOutput":
85857
85858type InstancesGetSerialPortOutputCall struct {
85859	s            *Service
85860	project      string
85861	zone         string
85862	instance     string
85863	urlParams_   gensupport.URLParams
85864	ifNoneMatch_ string
85865	ctx_         context.Context
85866	header_      http.Header
85867}
85868
85869// GetSerialPortOutput: Returns the last 1 MB of serial port output from
85870// the specified instance.
85871//
85872// - instance: Name of the instance for this request.
85873// - project: Project ID for this request.
85874// - zone: The name of the zone for this request.
85875// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/getSerialPortOutput
85876func (r *InstancesService) GetSerialPortOutput(project string, zone string, instance string) *InstancesGetSerialPortOutputCall {
85877	c := &InstancesGetSerialPortOutputCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85878	c.project = project
85879	c.zone = zone
85880	c.instance = instance
85881	return c
85882}
85883
85884// Port sets the optional parameter "port": Specifies which COM or
85885// serial port to retrieve data from.
85886func (c *InstancesGetSerialPortOutputCall) Port(port int64) *InstancesGetSerialPortOutputCall {
85887	c.urlParams_.Set("port", fmt.Sprint(port))
85888	return c
85889}
85890
85891// Start sets the optional parameter "start": Specifies the starting
85892// byte position of the output to return. To start with the first byte
85893// of output to the specified port, omit this field or set it to
85894// `0`.
85895//
85896// If the output for that byte position is available, this field matches
85897// the `start` parameter sent with the request. If the amount of serial
85898// console output exceeds the size of the buffer (1 MB), the oldest
85899// output is discarded and is no longer available. If the requested
85900// start position refers to discarded output, the start position is
85901// adjusted to the oldest output still available, and the adjusted start
85902// position is returned as the `start` property value.
85903//
85904// You can also provide a negative start position, which translates to
85905// the most recent number of bytes written to the serial port. For
85906// example, -3 is interpreted as the most recent 3 bytes written to the
85907// serial console.
85908func (c *InstancesGetSerialPortOutputCall) Start(start int64) *InstancesGetSerialPortOutputCall {
85909	c.urlParams_.Set("start", fmt.Sprint(start))
85910	return c
85911}
85912
85913// Fields allows partial responses to be retrieved. See
85914// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85915// for more information.
85916func (c *InstancesGetSerialPortOutputCall) Fields(s ...googleapi.Field) *InstancesGetSerialPortOutputCall {
85917	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85918	return c
85919}
85920
85921// IfNoneMatch sets the optional parameter which makes the operation
85922// fail if the object's ETag matches the given value. This is useful for
85923// getting updates only after the object has changed since the last
85924// request. Use googleapi.IsNotModified to check whether the response
85925// error from Do is the result of In-None-Match.
85926func (c *InstancesGetSerialPortOutputCall) IfNoneMatch(entityTag string) *InstancesGetSerialPortOutputCall {
85927	c.ifNoneMatch_ = entityTag
85928	return c
85929}
85930
85931// Context sets the context to be used in this call's Do method. Any
85932// pending HTTP request will be aborted if the provided context is
85933// canceled.
85934func (c *InstancesGetSerialPortOutputCall) Context(ctx context.Context) *InstancesGetSerialPortOutputCall {
85935	c.ctx_ = ctx
85936	return c
85937}
85938
85939// Header returns an http.Header that can be modified by the caller to
85940// add HTTP headers to the request.
85941func (c *InstancesGetSerialPortOutputCall) Header() http.Header {
85942	if c.header_ == nil {
85943		c.header_ = make(http.Header)
85944	}
85945	return c.header_
85946}
85947
85948func (c *InstancesGetSerialPortOutputCall) doRequest(alt string) (*http.Response, error) {
85949	reqHeaders := make(http.Header)
85950	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
85951	for k, v := range c.header_ {
85952		reqHeaders[k] = v
85953	}
85954	reqHeaders.Set("User-Agent", c.s.userAgent())
85955	if c.ifNoneMatch_ != "" {
85956		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
85957	}
85958	var body io.Reader = nil
85959	c.urlParams_.Set("alt", alt)
85960	c.urlParams_.Set("prettyPrint", "false")
85961	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/serialPort")
85962	urls += "?" + c.urlParams_.Encode()
85963	req, err := http.NewRequest("GET", urls, body)
85964	if err != nil {
85965		return nil, err
85966	}
85967	req.Header = reqHeaders
85968	googleapi.Expand(req.URL, map[string]string{
85969		"project":  c.project,
85970		"zone":     c.zone,
85971		"instance": c.instance,
85972	})
85973	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85974}
85975
85976// Do executes the "compute.instances.getSerialPortOutput" call.
85977// Exactly one of *SerialPortOutput or error will be non-nil. Any
85978// non-2xx status code is an error. Response headers are in either
85979// *SerialPortOutput.ServerResponse.Header or (if a response was
85980// returned at all) in error.(*googleapi.Error).Header. Use
85981// googleapi.IsNotModified to check whether the returned error was
85982// because http.StatusNotModified was returned.
85983func (c *InstancesGetSerialPortOutputCall) Do(opts ...googleapi.CallOption) (*SerialPortOutput, error) {
85984	gensupport.SetOptions(c.urlParams_, opts...)
85985	res, err := c.doRequest("json")
85986	if res != nil && res.StatusCode == http.StatusNotModified {
85987		if res.Body != nil {
85988			res.Body.Close()
85989		}
85990		return nil, &googleapi.Error{
85991			Code:   res.StatusCode,
85992			Header: res.Header,
85993		}
85994	}
85995	if err != nil {
85996		return nil, err
85997	}
85998	defer googleapi.CloseBody(res)
85999	if err := googleapi.CheckResponse(res); err != nil {
86000		return nil, err
86001	}
86002	ret := &SerialPortOutput{
86003		ServerResponse: googleapi.ServerResponse{
86004			Header:         res.Header,
86005			HTTPStatusCode: res.StatusCode,
86006		},
86007	}
86008	target := &ret
86009	if err := gensupport.DecodeResponse(target, res); err != nil {
86010		return nil, err
86011	}
86012	return ret, nil
86013	// {
86014	//   "description": "Returns the last 1 MB of serial port output from the specified instance.",
86015	//   "httpMethod": "GET",
86016	//   "id": "compute.instances.getSerialPortOutput",
86017	//   "parameterOrder": [
86018	//     "project",
86019	//     "zone",
86020	//     "instance"
86021	//   ],
86022	//   "parameters": {
86023	//     "instance": {
86024	//       "description": "Name of the instance for this request.",
86025	//       "location": "path",
86026	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
86027	//       "required": true,
86028	//       "type": "string"
86029	//     },
86030	//     "port": {
86031	//       "default": "1",
86032	//       "description": "Specifies which COM or serial port to retrieve data from.",
86033	//       "format": "int32",
86034	//       "location": "query",
86035	//       "maximum": "4",
86036	//       "minimum": "1",
86037	//       "type": "integer"
86038	//     },
86039	//     "project": {
86040	//       "description": "Project ID for this request.",
86041	//       "location": "path",
86042	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86043	//       "required": true,
86044	//       "type": "string"
86045	//     },
86046	//     "start": {
86047	//       "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.",
86048	//       "format": "int64",
86049	//       "location": "query",
86050	//       "type": "string"
86051	//     },
86052	//     "zone": {
86053	//       "description": "The name of the zone for this request.",
86054	//       "location": "path",
86055	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
86056	//       "required": true,
86057	//       "type": "string"
86058	//     }
86059	//   },
86060	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/serialPort",
86061	//   "response": {
86062	//     "$ref": "SerialPortOutput"
86063	//   },
86064	//   "scopes": [
86065	//     "https://www.googleapis.com/auth/cloud-platform",
86066	//     "https://www.googleapis.com/auth/compute",
86067	//     "https://www.googleapis.com/auth/compute.readonly"
86068	//   ]
86069	// }
86070
86071}
86072
86073// method id "compute.instances.getShieldedInstanceIdentity":
86074
86075type InstancesGetShieldedInstanceIdentityCall struct {
86076	s            *Service
86077	project      string
86078	zone         string
86079	instance     string
86080	urlParams_   gensupport.URLParams
86081	ifNoneMatch_ string
86082	ctx_         context.Context
86083	header_      http.Header
86084}
86085
86086// GetShieldedInstanceIdentity: Returns the Shielded Instance Identity
86087// of an instance
86088//
86089// - instance: Name or id of the instance scoping this request.
86090// - project: Project ID for this request.
86091// - zone: The name of the zone for this request.
86092func (r *InstancesService) GetShieldedInstanceIdentity(project string, zone string, instance string) *InstancesGetShieldedInstanceIdentityCall {
86093	c := &InstancesGetShieldedInstanceIdentityCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86094	c.project = project
86095	c.zone = zone
86096	c.instance = instance
86097	return c
86098}
86099
86100// Fields allows partial responses to be retrieved. See
86101// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86102// for more information.
86103func (c *InstancesGetShieldedInstanceIdentityCall) Fields(s ...googleapi.Field) *InstancesGetShieldedInstanceIdentityCall {
86104	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86105	return c
86106}
86107
86108// IfNoneMatch sets the optional parameter which makes the operation
86109// fail if the object's ETag matches the given value. This is useful for
86110// getting updates only after the object has changed since the last
86111// request. Use googleapi.IsNotModified to check whether the response
86112// error from Do is the result of In-None-Match.
86113func (c *InstancesGetShieldedInstanceIdentityCall) IfNoneMatch(entityTag string) *InstancesGetShieldedInstanceIdentityCall {
86114	c.ifNoneMatch_ = entityTag
86115	return c
86116}
86117
86118// Context sets the context to be used in this call's Do method. Any
86119// pending HTTP request will be aborted if the provided context is
86120// canceled.
86121func (c *InstancesGetShieldedInstanceIdentityCall) Context(ctx context.Context) *InstancesGetShieldedInstanceIdentityCall {
86122	c.ctx_ = ctx
86123	return c
86124}
86125
86126// Header returns an http.Header that can be modified by the caller to
86127// add HTTP headers to the request.
86128func (c *InstancesGetShieldedInstanceIdentityCall) Header() http.Header {
86129	if c.header_ == nil {
86130		c.header_ = make(http.Header)
86131	}
86132	return c.header_
86133}
86134
86135func (c *InstancesGetShieldedInstanceIdentityCall) doRequest(alt string) (*http.Response, error) {
86136	reqHeaders := make(http.Header)
86137	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
86138	for k, v := range c.header_ {
86139		reqHeaders[k] = v
86140	}
86141	reqHeaders.Set("User-Agent", c.s.userAgent())
86142	if c.ifNoneMatch_ != "" {
86143		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
86144	}
86145	var body io.Reader = nil
86146	c.urlParams_.Set("alt", alt)
86147	c.urlParams_.Set("prettyPrint", "false")
86148	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity")
86149	urls += "?" + c.urlParams_.Encode()
86150	req, err := http.NewRequest("GET", urls, body)
86151	if err != nil {
86152		return nil, err
86153	}
86154	req.Header = reqHeaders
86155	googleapi.Expand(req.URL, map[string]string{
86156		"project":  c.project,
86157		"zone":     c.zone,
86158		"instance": c.instance,
86159	})
86160	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86161}
86162
86163// Do executes the "compute.instances.getShieldedInstanceIdentity" call.
86164// Exactly one of *ShieldedInstanceIdentity or error will be non-nil.
86165// Any non-2xx status code is an error. Response headers are in either
86166// *ShieldedInstanceIdentity.ServerResponse.Header or (if a response was
86167// returned at all) in error.(*googleapi.Error).Header. Use
86168// googleapi.IsNotModified to check whether the returned error was
86169// because http.StatusNotModified was returned.
86170func (c *InstancesGetShieldedInstanceIdentityCall) Do(opts ...googleapi.CallOption) (*ShieldedInstanceIdentity, error) {
86171	gensupport.SetOptions(c.urlParams_, opts...)
86172	res, err := c.doRequest("json")
86173	if res != nil && res.StatusCode == http.StatusNotModified {
86174		if res.Body != nil {
86175			res.Body.Close()
86176		}
86177		return nil, &googleapi.Error{
86178			Code:   res.StatusCode,
86179			Header: res.Header,
86180		}
86181	}
86182	if err != nil {
86183		return nil, err
86184	}
86185	defer googleapi.CloseBody(res)
86186	if err := googleapi.CheckResponse(res); err != nil {
86187		return nil, err
86188	}
86189	ret := &ShieldedInstanceIdentity{
86190		ServerResponse: googleapi.ServerResponse{
86191			Header:         res.Header,
86192			HTTPStatusCode: res.StatusCode,
86193		},
86194	}
86195	target := &ret
86196	if err := gensupport.DecodeResponse(target, res); err != nil {
86197		return nil, err
86198	}
86199	return ret, nil
86200	// {
86201	//   "description": "Returns the Shielded Instance Identity of an instance",
86202	//   "httpMethod": "GET",
86203	//   "id": "compute.instances.getShieldedInstanceIdentity",
86204	//   "parameterOrder": [
86205	//     "project",
86206	//     "zone",
86207	//     "instance"
86208	//   ],
86209	//   "parameters": {
86210	//     "instance": {
86211	//       "description": "Name or id of the instance scoping this request.",
86212	//       "location": "path",
86213	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
86214	//       "required": true,
86215	//       "type": "string"
86216	//     },
86217	//     "project": {
86218	//       "description": "Project ID for this request.",
86219	//       "location": "path",
86220	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86221	//       "required": true,
86222	//       "type": "string"
86223	//     },
86224	//     "zone": {
86225	//       "description": "The name of the zone for this request.",
86226	//       "location": "path",
86227	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
86228	//       "required": true,
86229	//       "type": "string"
86230	//     }
86231	//   },
86232	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity",
86233	//   "response": {
86234	//     "$ref": "ShieldedInstanceIdentity"
86235	//   },
86236	//   "scopes": [
86237	//     "https://www.googleapis.com/auth/cloud-platform",
86238	//     "https://www.googleapis.com/auth/compute",
86239	//     "https://www.googleapis.com/auth/compute.readonly"
86240	//   ]
86241	// }
86242
86243}
86244
86245// method id "compute.instances.insert":
86246
86247type InstancesInsertCall struct {
86248	s          *Service
86249	project    string
86250	zone       string
86251	instance   *Instance
86252	urlParams_ gensupport.URLParams
86253	ctx_       context.Context
86254	header_    http.Header
86255}
86256
86257// Insert: Creates an instance resource in the specified project using
86258// the data included in the request.
86259//
86260// - project: Project ID for this request.
86261// - zone: The name of the zone for this request.
86262// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/insert
86263func (r *InstancesService) Insert(project string, zone string, instance *Instance) *InstancesInsertCall {
86264	c := &InstancesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86265	c.project = project
86266	c.zone = zone
86267	c.instance = instance
86268	return c
86269}
86270
86271// RequestId sets the optional parameter "requestId": An optional
86272// request ID to identify requests. Specify a unique request ID so that
86273// if you must retry your request, the server will know to ignore the
86274// request if it has already been completed.
86275//
86276// For example, consider a situation where you make an initial request
86277// and the request times out. If you make the request again with the
86278// same request ID, the server can check if original operation with the
86279// same request ID was received, and if so, will ignore the second
86280// request. This prevents clients from accidentally creating duplicate
86281// commitments.
86282//
86283// The request ID must be a valid UUID with the exception that zero UUID
86284// is not supported (00000000-0000-0000-0000-000000000000).
86285func (c *InstancesInsertCall) RequestId(requestId string) *InstancesInsertCall {
86286	c.urlParams_.Set("requestId", requestId)
86287	return c
86288}
86289
86290// SourceInstanceTemplate sets the optional parameter
86291// "sourceInstanceTemplate": Specifies instance template to create the
86292// instance.
86293//
86294// This field is optional. It can be a full or partial URL. For example,
86295// the following are all valid URLs to an instance template:
86296// -
86297// https://www.googleapis.com/compute/v1/projects/project/global/instanceTemplates/instanceTemplate
86298//
86299// - projects/project/global/instanceTemplates/instanceTemplate
86300// - global/instanceTemplates/instanceTemplate
86301func (c *InstancesInsertCall) SourceInstanceTemplate(sourceInstanceTemplate string) *InstancesInsertCall {
86302	c.urlParams_.Set("sourceInstanceTemplate", sourceInstanceTemplate)
86303	return c
86304}
86305
86306// Fields allows partial responses to be retrieved. See
86307// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86308// for more information.
86309func (c *InstancesInsertCall) Fields(s ...googleapi.Field) *InstancesInsertCall {
86310	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86311	return c
86312}
86313
86314// Context sets the context to be used in this call's Do method. Any
86315// pending HTTP request will be aborted if the provided context is
86316// canceled.
86317func (c *InstancesInsertCall) Context(ctx context.Context) *InstancesInsertCall {
86318	c.ctx_ = ctx
86319	return c
86320}
86321
86322// Header returns an http.Header that can be modified by the caller to
86323// add HTTP headers to the request.
86324func (c *InstancesInsertCall) Header() http.Header {
86325	if c.header_ == nil {
86326		c.header_ = make(http.Header)
86327	}
86328	return c.header_
86329}
86330
86331func (c *InstancesInsertCall) doRequest(alt string) (*http.Response, error) {
86332	reqHeaders := make(http.Header)
86333	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
86334	for k, v := range c.header_ {
86335		reqHeaders[k] = v
86336	}
86337	reqHeaders.Set("User-Agent", c.s.userAgent())
86338	var body io.Reader = nil
86339	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instance)
86340	if err != nil {
86341		return nil, err
86342	}
86343	reqHeaders.Set("Content-Type", "application/json")
86344	c.urlParams_.Set("alt", alt)
86345	c.urlParams_.Set("prettyPrint", "false")
86346	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances")
86347	urls += "?" + c.urlParams_.Encode()
86348	req, err := http.NewRequest("POST", urls, body)
86349	if err != nil {
86350		return nil, err
86351	}
86352	req.Header = reqHeaders
86353	googleapi.Expand(req.URL, map[string]string{
86354		"project": c.project,
86355		"zone":    c.zone,
86356	})
86357	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86358}
86359
86360// Do executes the "compute.instances.insert" call.
86361// Exactly one of *Operation or error will be non-nil. Any non-2xx
86362// status code is an error. Response headers are in either
86363// *Operation.ServerResponse.Header or (if a response was returned at
86364// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86365// to check whether the returned error was because
86366// http.StatusNotModified was returned.
86367func (c *InstancesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
86368	gensupport.SetOptions(c.urlParams_, opts...)
86369	res, err := c.doRequest("json")
86370	if res != nil && res.StatusCode == http.StatusNotModified {
86371		if res.Body != nil {
86372			res.Body.Close()
86373		}
86374		return nil, &googleapi.Error{
86375			Code:   res.StatusCode,
86376			Header: res.Header,
86377		}
86378	}
86379	if err != nil {
86380		return nil, err
86381	}
86382	defer googleapi.CloseBody(res)
86383	if err := googleapi.CheckResponse(res); err != nil {
86384		return nil, err
86385	}
86386	ret := &Operation{
86387		ServerResponse: googleapi.ServerResponse{
86388			Header:         res.Header,
86389			HTTPStatusCode: res.StatusCode,
86390		},
86391	}
86392	target := &ret
86393	if err := gensupport.DecodeResponse(target, res); err != nil {
86394		return nil, err
86395	}
86396	return ret, nil
86397	// {
86398	//   "description": "Creates an instance resource in the specified project using the data included in the request.",
86399	//   "httpMethod": "POST",
86400	//   "id": "compute.instances.insert",
86401	//   "parameterOrder": [
86402	//     "project",
86403	//     "zone"
86404	//   ],
86405	//   "parameters": {
86406	//     "project": {
86407	//       "description": "Project ID for this request.",
86408	//       "location": "path",
86409	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86410	//       "required": true,
86411	//       "type": "string"
86412	//     },
86413	//     "requestId": {
86414	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
86415	//       "location": "query",
86416	//       "type": "string"
86417	//     },
86418	//     "sourceInstanceTemplate": {
86419	//       "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",
86420	//       "location": "query",
86421	//       "type": "string"
86422	//     },
86423	//     "zone": {
86424	//       "description": "The name of the zone for this request.",
86425	//       "location": "path",
86426	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
86427	//       "required": true,
86428	//       "type": "string"
86429	//     }
86430	//   },
86431	//   "path": "projects/{project}/zones/{zone}/instances",
86432	//   "request": {
86433	//     "$ref": "Instance"
86434	//   },
86435	//   "response": {
86436	//     "$ref": "Operation"
86437	//   },
86438	//   "scopes": [
86439	//     "https://www.googleapis.com/auth/cloud-platform",
86440	//     "https://www.googleapis.com/auth/compute"
86441	//   ]
86442	// }
86443
86444}
86445
86446// method id "compute.instances.list":
86447
86448type InstancesListCall struct {
86449	s            *Service
86450	project      string
86451	zone         string
86452	urlParams_   gensupport.URLParams
86453	ifNoneMatch_ string
86454	ctx_         context.Context
86455	header_      http.Header
86456}
86457
86458// List: Retrieves the list of instances contained within the specified
86459// zone.
86460//
86461// - project: Project ID for this request.
86462// - zone: The name of the zone for this request.
86463// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/list
86464func (r *InstancesService) List(project string, zone string) *InstancesListCall {
86465	c := &InstancesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86466	c.project = project
86467	c.zone = zone
86468	return c
86469}
86470
86471// Filter sets the optional parameter "filter": A filter expression that
86472// filters resources listed in the response. The expression must specify
86473// the field name, a comparison operator, and the value that you want to
86474// use for filtering. The value must be a string, a number, or a
86475// boolean. The comparison operator must be either `=`, `!=`, `>`, or
86476// `<`.
86477//
86478// For example, if you are filtering Compute Engine instances, you can
86479// exclude instances named `example-instance` by specifying `name !=
86480// example-instance`.
86481//
86482// You can also filter nested fields. For example, you could specify
86483// `scheduling.automaticRestart = false` to include instances only if
86484// they are not scheduled for automatic restarts. You can use filtering
86485// on nested fields to filter based on resource labels.
86486//
86487// To filter on multiple expressions, provide each separate expression
86488// within parentheses. For example: ``` (scheduling.automaticRestart =
86489// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
86490// is an `AND` expression. However, you can include `AND` and `OR`
86491// expressions explicitly. For example: ``` (cpuPlatform = "Intel
86492// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
86493// (scheduling.automaticRestart = true) ```
86494func (c *InstancesListCall) Filter(filter string) *InstancesListCall {
86495	c.urlParams_.Set("filter", filter)
86496	return c
86497}
86498
86499// MaxResults sets the optional parameter "maxResults": The maximum
86500// number of results per page that should be returned. If the number of
86501// available results is larger than `maxResults`, Compute Engine returns
86502// a `nextPageToken` that can be used to get the next page of results in
86503// subsequent list requests. Acceptable values are `0` to `500`,
86504// inclusive. (Default: `500`)
86505func (c *InstancesListCall) MaxResults(maxResults int64) *InstancesListCall {
86506	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
86507	return c
86508}
86509
86510// OrderBy sets the optional parameter "orderBy": Sorts list results by
86511// a certain order. By default, results are returned in alphanumerical
86512// order based on the resource name.
86513//
86514// You can also sort results in descending order based on the creation
86515// timestamp using `orderBy="creationTimestamp desc". This sorts
86516// results based on the `creationTimestamp` field in reverse
86517// chronological order (newest result first). Use this to sort resources
86518// like operations so that the newest operation is returned
86519// first.
86520//
86521// Currently, only sorting by `name` or `creationTimestamp desc` is
86522// supported.
86523func (c *InstancesListCall) OrderBy(orderBy string) *InstancesListCall {
86524	c.urlParams_.Set("orderBy", orderBy)
86525	return c
86526}
86527
86528// PageToken sets the optional parameter "pageToken": Specifies a page
86529// token to use. Set `pageToken` to the `nextPageToken` returned by a
86530// previous list request to get the next page of results.
86531func (c *InstancesListCall) PageToken(pageToken string) *InstancesListCall {
86532	c.urlParams_.Set("pageToken", pageToken)
86533	return c
86534}
86535
86536// ReturnPartialSuccess sets the optional parameter
86537// "returnPartialSuccess": Opt-in for partial success behavior which
86538// provides partial results in case of failure. The default value is
86539// false.
86540func (c *InstancesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstancesListCall {
86541	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
86542	return c
86543}
86544
86545// Fields allows partial responses to be retrieved. See
86546// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86547// for more information.
86548func (c *InstancesListCall) Fields(s ...googleapi.Field) *InstancesListCall {
86549	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86550	return c
86551}
86552
86553// IfNoneMatch sets the optional parameter which makes the operation
86554// fail if the object's ETag matches the given value. This is useful for
86555// getting updates only after the object has changed since the last
86556// request. Use googleapi.IsNotModified to check whether the response
86557// error from Do is the result of In-None-Match.
86558func (c *InstancesListCall) IfNoneMatch(entityTag string) *InstancesListCall {
86559	c.ifNoneMatch_ = entityTag
86560	return c
86561}
86562
86563// Context sets the context to be used in this call's Do method. Any
86564// pending HTTP request will be aborted if the provided context is
86565// canceled.
86566func (c *InstancesListCall) Context(ctx context.Context) *InstancesListCall {
86567	c.ctx_ = ctx
86568	return c
86569}
86570
86571// Header returns an http.Header that can be modified by the caller to
86572// add HTTP headers to the request.
86573func (c *InstancesListCall) Header() http.Header {
86574	if c.header_ == nil {
86575		c.header_ = make(http.Header)
86576	}
86577	return c.header_
86578}
86579
86580func (c *InstancesListCall) doRequest(alt string) (*http.Response, error) {
86581	reqHeaders := make(http.Header)
86582	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
86583	for k, v := range c.header_ {
86584		reqHeaders[k] = v
86585	}
86586	reqHeaders.Set("User-Agent", c.s.userAgent())
86587	if c.ifNoneMatch_ != "" {
86588		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
86589	}
86590	var body io.Reader = nil
86591	c.urlParams_.Set("alt", alt)
86592	c.urlParams_.Set("prettyPrint", "false")
86593	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances")
86594	urls += "?" + c.urlParams_.Encode()
86595	req, err := http.NewRequest("GET", urls, body)
86596	if err != nil {
86597		return nil, err
86598	}
86599	req.Header = reqHeaders
86600	googleapi.Expand(req.URL, map[string]string{
86601		"project": c.project,
86602		"zone":    c.zone,
86603	})
86604	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86605}
86606
86607// Do executes the "compute.instances.list" call.
86608// Exactly one of *InstanceList or error will be non-nil. Any non-2xx
86609// status code is an error. Response headers are in either
86610// *InstanceList.ServerResponse.Header or (if a response was returned at
86611// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86612// to check whether the returned error was because
86613// http.StatusNotModified was returned.
86614func (c *InstancesListCall) Do(opts ...googleapi.CallOption) (*InstanceList, error) {
86615	gensupport.SetOptions(c.urlParams_, opts...)
86616	res, err := c.doRequest("json")
86617	if res != nil && res.StatusCode == http.StatusNotModified {
86618		if res.Body != nil {
86619			res.Body.Close()
86620		}
86621		return nil, &googleapi.Error{
86622			Code:   res.StatusCode,
86623			Header: res.Header,
86624		}
86625	}
86626	if err != nil {
86627		return nil, err
86628	}
86629	defer googleapi.CloseBody(res)
86630	if err := googleapi.CheckResponse(res); err != nil {
86631		return nil, err
86632	}
86633	ret := &InstanceList{
86634		ServerResponse: googleapi.ServerResponse{
86635			Header:         res.Header,
86636			HTTPStatusCode: res.StatusCode,
86637		},
86638	}
86639	target := &ret
86640	if err := gensupport.DecodeResponse(target, res); err != nil {
86641		return nil, err
86642	}
86643	return ret, nil
86644	// {
86645	//   "description": "Retrieves the list of instances contained within the specified zone.",
86646	//   "httpMethod": "GET",
86647	//   "id": "compute.instances.list",
86648	//   "parameterOrder": [
86649	//     "project",
86650	//     "zone"
86651	//   ],
86652	//   "parameters": {
86653	//     "filter": {
86654	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
86655	//       "location": "query",
86656	//       "type": "string"
86657	//     },
86658	//     "maxResults": {
86659	//       "default": "500",
86660	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
86661	//       "format": "uint32",
86662	//       "location": "query",
86663	//       "minimum": "0",
86664	//       "type": "integer"
86665	//     },
86666	//     "orderBy": {
86667	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
86668	//       "location": "query",
86669	//       "type": "string"
86670	//     },
86671	//     "pageToken": {
86672	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
86673	//       "location": "query",
86674	//       "type": "string"
86675	//     },
86676	//     "project": {
86677	//       "description": "Project ID for this request.",
86678	//       "location": "path",
86679	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86680	//       "required": true,
86681	//       "type": "string"
86682	//     },
86683	//     "returnPartialSuccess": {
86684	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
86685	//       "location": "query",
86686	//       "type": "boolean"
86687	//     },
86688	//     "zone": {
86689	//       "description": "The name of the zone for this request.",
86690	//       "location": "path",
86691	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
86692	//       "required": true,
86693	//       "type": "string"
86694	//     }
86695	//   },
86696	//   "path": "projects/{project}/zones/{zone}/instances",
86697	//   "response": {
86698	//     "$ref": "InstanceList"
86699	//   },
86700	//   "scopes": [
86701	//     "https://www.googleapis.com/auth/cloud-platform",
86702	//     "https://www.googleapis.com/auth/compute",
86703	//     "https://www.googleapis.com/auth/compute.readonly"
86704	//   ]
86705	// }
86706
86707}
86708
86709// Pages invokes f for each page of results.
86710// A non-nil error returned from f will halt the iteration.
86711// The provided context supersedes any context provided to the Context method.
86712func (c *InstancesListCall) Pages(ctx context.Context, f func(*InstanceList) error) error {
86713	c.ctx_ = ctx
86714	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
86715	for {
86716		x, err := c.Do()
86717		if err != nil {
86718			return err
86719		}
86720		if err := f(x); err != nil {
86721			return err
86722		}
86723		if x.NextPageToken == "" {
86724			return nil
86725		}
86726		c.PageToken(x.NextPageToken)
86727	}
86728}
86729
86730// method id "compute.instances.listReferrers":
86731
86732type InstancesListReferrersCall struct {
86733	s            *Service
86734	project      string
86735	zone         string
86736	instance     string
86737	urlParams_   gensupport.URLParams
86738	ifNoneMatch_ string
86739	ctx_         context.Context
86740	header_      http.Header
86741}
86742
86743// ListReferrers: Retrieves a list of resources that refer to the VM
86744// instance specified in the request. For example, if the VM instance is
86745// part of a managed or unmanaged instance group, the referrers list
86746// includes the instance group. For more information, read Viewing
86747// referrers to VM instances.
86748//
86749// - instance: Name of the target instance scoping this request, or '-'
86750//   if the request should span over all instances in the container.
86751// - project: Project ID for this request.
86752// - zone: The name of the zone for this request.
86753func (r *InstancesService) ListReferrers(project string, zone string, instance string) *InstancesListReferrersCall {
86754	c := &InstancesListReferrersCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86755	c.project = project
86756	c.zone = zone
86757	c.instance = instance
86758	return c
86759}
86760
86761// Filter sets the optional parameter "filter": A filter expression that
86762// filters resources listed in the response. The expression must specify
86763// the field name, a comparison operator, and the value that you want to
86764// use for filtering. The value must be a string, a number, or a
86765// boolean. The comparison operator must be either `=`, `!=`, `>`, or
86766// `<`.
86767//
86768// For example, if you are filtering Compute Engine instances, you can
86769// exclude instances named `example-instance` by specifying `name !=
86770// example-instance`.
86771//
86772// You can also filter nested fields. For example, you could specify
86773// `scheduling.automaticRestart = false` to include instances only if
86774// they are not scheduled for automatic restarts. You can use filtering
86775// on nested fields to filter based on resource labels.
86776//
86777// To filter on multiple expressions, provide each separate expression
86778// within parentheses. For example: ``` (scheduling.automaticRestart =
86779// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
86780// is an `AND` expression. However, you can include `AND` and `OR`
86781// expressions explicitly. For example: ``` (cpuPlatform = "Intel
86782// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
86783// (scheduling.automaticRestart = true) ```
86784func (c *InstancesListReferrersCall) Filter(filter string) *InstancesListReferrersCall {
86785	c.urlParams_.Set("filter", filter)
86786	return c
86787}
86788
86789// MaxResults sets the optional parameter "maxResults": The maximum
86790// number of results per page that should be returned. If the number of
86791// available results is larger than `maxResults`, Compute Engine returns
86792// a `nextPageToken` that can be used to get the next page of results in
86793// subsequent list requests. Acceptable values are `0` to `500`,
86794// inclusive. (Default: `500`)
86795func (c *InstancesListReferrersCall) MaxResults(maxResults int64) *InstancesListReferrersCall {
86796	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
86797	return c
86798}
86799
86800// OrderBy sets the optional parameter "orderBy": Sorts list results by
86801// a certain order. By default, results are returned in alphanumerical
86802// order based on the resource name.
86803//
86804// You can also sort results in descending order based on the creation
86805// timestamp using `orderBy="creationTimestamp desc". This sorts
86806// results based on the `creationTimestamp` field in reverse
86807// chronological order (newest result first). Use this to sort resources
86808// like operations so that the newest operation is returned
86809// first.
86810//
86811// Currently, only sorting by `name` or `creationTimestamp desc` is
86812// supported.
86813func (c *InstancesListReferrersCall) OrderBy(orderBy string) *InstancesListReferrersCall {
86814	c.urlParams_.Set("orderBy", orderBy)
86815	return c
86816}
86817
86818// PageToken sets the optional parameter "pageToken": Specifies a page
86819// token to use. Set `pageToken` to the `nextPageToken` returned by a
86820// previous list request to get the next page of results.
86821func (c *InstancesListReferrersCall) PageToken(pageToken string) *InstancesListReferrersCall {
86822	c.urlParams_.Set("pageToken", pageToken)
86823	return c
86824}
86825
86826// ReturnPartialSuccess sets the optional parameter
86827// "returnPartialSuccess": Opt-in for partial success behavior which
86828// provides partial results in case of failure. The default value is
86829// false.
86830func (c *InstancesListReferrersCall) ReturnPartialSuccess(returnPartialSuccess bool) *InstancesListReferrersCall {
86831	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
86832	return c
86833}
86834
86835// Fields allows partial responses to be retrieved. See
86836// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86837// for more information.
86838func (c *InstancesListReferrersCall) Fields(s ...googleapi.Field) *InstancesListReferrersCall {
86839	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86840	return c
86841}
86842
86843// IfNoneMatch sets the optional parameter which makes the operation
86844// fail if the object's ETag matches the given value. This is useful for
86845// getting updates only after the object has changed since the last
86846// request. Use googleapi.IsNotModified to check whether the response
86847// error from Do is the result of In-None-Match.
86848func (c *InstancesListReferrersCall) IfNoneMatch(entityTag string) *InstancesListReferrersCall {
86849	c.ifNoneMatch_ = entityTag
86850	return c
86851}
86852
86853// Context sets the context to be used in this call's Do method. Any
86854// pending HTTP request will be aborted if the provided context is
86855// canceled.
86856func (c *InstancesListReferrersCall) Context(ctx context.Context) *InstancesListReferrersCall {
86857	c.ctx_ = ctx
86858	return c
86859}
86860
86861// Header returns an http.Header that can be modified by the caller to
86862// add HTTP headers to the request.
86863func (c *InstancesListReferrersCall) Header() http.Header {
86864	if c.header_ == nil {
86865		c.header_ = make(http.Header)
86866	}
86867	return c.header_
86868}
86869
86870func (c *InstancesListReferrersCall) doRequest(alt string) (*http.Response, error) {
86871	reqHeaders := make(http.Header)
86872	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
86873	for k, v := range c.header_ {
86874		reqHeaders[k] = v
86875	}
86876	reqHeaders.Set("User-Agent", c.s.userAgent())
86877	if c.ifNoneMatch_ != "" {
86878		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
86879	}
86880	var body io.Reader = nil
86881	c.urlParams_.Set("alt", alt)
86882	c.urlParams_.Set("prettyPrint", "false")
86883	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/referrers")
86884	urls += "?" + c.urlParams_.Encode()
86885	req, err := http.NewRequest("GET", urls, body)
86886	if err != nil {
86887		return nil, err
86888	}
86889	req.Header = reqHeaders
86890	googleapi.Expand(req.URL, map[string]string{
86891		"project":  c.project,
86892		"zone":     c.zone,
86893		"instance": c.instance,
86894	})
86895	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86896}
86897
86898// Do executes the "compute.instances.listReferrers" call.
86899// Exactly one of *InstanceListReferrers or error will be non-nil. Any
86900// non-2xx status code is an error. Response headers are in either
86901// *InstanceListReferrers.ServerResponse.Header or (if a response was
86902// returned at all) in error.(*googleapi.Error).Header. Use
86903// googleapi.IsNotModified to check whether the returned error was
86904// because http.StatusNotModified was returned.
86905func (c *InstancesListReferrersCall) Do(opts ...googleapi.CallOption) (*InstanceListReferrers, error) {
86906	gensupport.SetOptions(c.urlParams_, opts...)
86907	res, err := c.doRequest("json")
86908	if res != nil && res.StatusCode == http.StatusNotModified {
86909		if res.Body != nil {
86910			res.Body.Close()
86911		}
86912		return nil, &googleapi.Error{
86913			Code:   res.StatusCode,
86914			Header: res.Header,
86915		}
86916	}
86917	if err != nil {
86918		return nil, err
86919	}
86920	defer googleapi.CloseBody(res)
86921	if err := googleapi.CheckResponse(res); err != nil {
86922		return nil, err
86923	}
86924	ret := &InstanceListReferrers{
86925		ServerResponse: googleapi.ServerResponse{
86926			Header:         res.Header,
86927			HTTPStatusCode: res.StatusCode,
86928		},
86929	}
86930	target := &ret
86931	if err := gensupport.DecodeResponse(target, res); err != nil {
86932		return nil, err
86933	}
86934	return ret, nil
86935	// {
86936	//   "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.",
86937	//   "httpMethod": "GET",
86938	//   "id": "compute.instances.listReferrers",
86939	//   "parameterOrder": [
86940	//     "project",
86941	//     "zone",
86942	//     "instance"
86943	//   ],
86944	//   "parameters": {
86945	//     "filter": {
86946	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
86947	//       "location": "query",
86948	//       "type": "string"
86949	//     },
86950	//     "instance": {
86951	//       "description": "Name of the target instance scoping this request, or '-' if the request should span over all instances in the container.",
86952	//       "location": "path",
86953	//       "pattern": "-|[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
86954	//       "required": true,
86955	//       "type": "string"
86956	//     },
86957	//     "maxResults": {
86958	//       "default": "500",
86959	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
86960	//       "format": "uint32",
86961	//       "location": "query",
86962	//       "minimum": "0",
86963	//       "type": "integer"
86964	//     },
86965	//     "orderBy": {
86966	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
86967	//       "location": "query",
86968	//       "type": "string"
86969	//     },
86970	//     "pageToken": {
86971	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
86972	//       "location": "query",
86973	//       "type": "string"
86974	//     },
86975	//     "project": {
86976	//       "description": "Project ID for this request.",
86977	//       "location": "path",
86978	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86979	//       "required": true,
86980	//       "type": "string"
86981	//     },
86982	//     "returnPartialSuccess": {
86983	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
86984	//       "location": "query",
86985	//       "type": "boolean"
86986	//     },
86987	//     "zone": {
86988	//       "description": "The name of the zone for this request.",
86989	//       "location": "path",
86990	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
86991	//       "required": true,
86992	//       "type": "string"
86993	//     }
86994	//   },
86995	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/referrers",
86996	//   "response": {
86997	//     "$ref": "InstanceListReferrers"
86998	//   },
86999	//   "scopes": [
87000	//     "https://www.googleapis.com/auth/cloud-platform",
87001	//     "https://www.googleapis.com/auth/compute",
87002	//     "https://www.googleapis.com/auth/compute.readonly"
87003	//   ]
87004	// }
87005
87006}
87007
87008// Pages invokes f for each page of results.
87009// A non-nil error returned from f will halt the iteration.
87010// The provided context supersedes any context provided to the Context method.
87011func (c *InstancesListReferrersCall) Pages(ctx context.Context, f func(*InstanceListReferrers) error) error {
87012	c.ctx_ = ctx
87013	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
87014	for {
87015		x, err := c.Do()
87016		if err != nil {
87017			return err
87018		}
87019		if err := f(x); err != nil {
87020			return err
87021		}
87022		if x.NextPageToken == "" {
87023			return nil
87024		}
87025		c.PageToken(x.NextPageToken)
87026	}
87027}
87028
87029// method id "compute.instances.removeResourcePolicies":
87030
87031type InstancesRemoveResourcePoliciesCall struct {
87032	s                                      *Service
87033	project                                string
87034	zone                                   string
87035	instance                               string
87036	instancesremoveresourcepoliciesrequest *InstancesRemoveResourcePoliciesRequest
87037	urlParams_                             gensupport.URLParams
87038	ctx_                                   context.Context
87039	header_                                http.Header
87040}
87041
87042// RemoveResourcePolicies: Removes resource policies from an instance.
87043//
87044// - instance: The instance name for this request.
87045// - project: Project ID for this request.
87046// - zone: The name of the zone for this request.
87047func (r *InstancesService) RemoveResourcePolicies(project string, zone string, instance string, instancesremoveresourcepoliciesrequest *InstancesRemoveResourcePoliciesRequest) *InstancesRemoveResourcePoliciesCall {
87048	c := &InstancesRemoveResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87049	c.project = project
87050	c.zone = zone
87051	c.instance = instance
87052	c.instancesremoveresourcepoliciesrequest = instancesremoveresourcepoliciesrequest
87053	return c
87054}
87055
87056// RequestId sets the optional parameter "requestId": An optional
87057// request ID to identify requests. Specify a unique request ID so that
87058// if you must retry your request, the server will know to ignore the
87059// request if it has already been completed.
87060//
87061// For example, consider a situation where you make an initial request
87062// and the request times out. If you make the request again with the
87063// same request ID, the server can check if original operation with the
87064// same request ID was received, and if so, will ignore the second
87065// request. This prevents clients from accidentally creating duplicate
87066// commitments.
87067//
87068// The request ID must be a valid UUID with the exception that zero UUID
87069// is not supported (00000000-0000-0000-0000-000000000000).
87070func (c *InstancesRemoveResourcePoliciesCall) RequestId(requestId string) *InstancesRemoveResourcePoliciesCall {
87071	c.urlParams_.Set("requestId", requestId)
87072	return c
87073}
87074
87075// Fields allows partial responses to be retrieved. See
87076// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87077// for more information.
87078func (c *InstancesRemoveResourcePoliciesCall) Fields(s ...googleapi.Field) *InstancesRemoveResourcePoliciesCall {
87079	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87080	return c
87081}
87082
87083// Context sets the context to be used in this call's Do method. Any
87084// pending HTTP request will be aborted if the provided context is
87085// canceled.
87086func (c *InstancesRemoveResourcePoliciesCall) Context(ctx context.Context) *InstancesRemoveResourcePoliciesCall {
87087	c.ctx_ = ctx
87088	return c
87089}
87090
87091// Header returns an http.Header that can be modified by the caller to
87092// add HTTP headers to the request.
87093func (c *InstancesRemoveResourcePoliciesCall) Header() http.Header {
87094	if c.header_ == nil {
87095		c.header_ = make(http.Header)
87096	}
87097	return c.header_
87098}
87099
87100func (c *InstancesRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
87101	reqHeaders := make(http.Header)
87102	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
87103	for k, v := range c.header_ {
87104		reqHeaders[k] = v
87105	}
87106	reqHeaders.Set("User-Agent", c.s.userAgent())
87107	var body io.Reader = nil
87108	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesremoveresourcepoliciesrequest)
87109	if err != nil {
87110		return nil, err
87111	}
87112	reqHeaders.Set("Content-Type", "application/json")
87113	c.urlParams_.Set("alt", alt)
87114	c.urlParams_.Set("prettyPrint", "false")
87115	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/removeResourcePolicies")
87116	urls += "?" + c.urlParams_.Encode()
87117	req, err := http.NewRequest("POST", urls, body)
87118	if err != nil {
87119		return nil, err
87120	}
87121	req.Header = reqHeaders
87122	googleapi.Expand(req.URL, map[string]string{
87123		"project":  c.project,
87124		"zone":     c.zone,
87125		"instance": c.instance,
87126	})
87127	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87128}
87129
87130// Do executes the "compute.instances.removeResourcePolicies" call.
87131// Exactly one of *Operation or error will be non-nil. Any non-2xx
87132// status code is an error. Response headers are in either
87133// *Operation.ServerResponse.Header or (if a response was returned at
87134// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87135// to check whether the returned error was because
87136// http.StatusNotModified was returned.
87137func (c *InstancesRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87138	gensupport.SetOptions(c.urlParams_, opts...)
87139	res, err := c.doRequest("json")
87140	if res != nil && res.StatusCode == http.StatusNotModified {
87141		if res.Body != nil {
87142			res.Body.Close()
87143		}
87144		return nil, &googleapi.Error{
87145			Code:   res.StatusCode,
87146			Header: res.Header,
87147		}
87148	}
87149	if err != nil {
87150		return nil, err
87151	}
87152	defer googleapi.CloseBody(res)
87153	if err := googleapi.CheckResponse(res); err != nil {
87154		return nil, err
87155	}
87156	ret := &Operation{
87157		ServerResponse: googleapi.ServerResponse{
87158			Header:         res.Header,
87159			HTTPStatusCode: res.StatusCode,
87160		},
87161	}
87162	target := &ret
87163	if err := gensupport.DecodeResponse(target, res); err != nil {
87164		return nil, err
87165	}
87166	return ret, nil
87167	// {
87168	//   "description": "Removes resource policies from an instance.",
87169	//   "httpMethod": "POST",
87170	//   "id": "compute.instances.removeResourcePolicies",
87171	//   "parameterOrder": [
87172	//     "project",
87173	//     "zone",
87174	//     "instance"
87175	//   ],
87176	//   "parameters": {
87177	//     "instance": {
87178	//       "description": "The instance name for this request.",
87179	//       "location": "path",
87180	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87181	//       "required": true,
87182	//       "type": "string"
87183	//     },
87184	//     "project": {
87185	//       "description": "Project ID for this request.",
87186	//       "location": "path",
87187	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87188	//       "required": true,
87189	//       "type": "string"
87190	//     },
87191	//     "requestId": {
87192	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
87193	//       "location": "query",
87194	//       "type": "string"
87195	//     },
87196	//     "zone": {
87197	//       "description": "The name of the zone for this request.",
87198	//       "location": "path",
87199	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87200	//       "required": true,
87201	//       "type": "string"
87202	//     }
87203	//   },
87204	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/removeResourcePolicies",
87205	//   "request": {
87206	//     "$ref": "InstancesRemoveResourcePoliciesRequest"
87207	//   },
87208	//   "response": {
87209	//     "$ref": "Operation"
87210	//   },
87211	//   "scopes": [
87212	//     "https://www.googleapis.com/auth/cloud-platform",
87213	//     "https://www.googleapis.com/auth/compute"
87214	//   ]
87215	// }
87216
87217}
87218
87219// method id "compute.instances.reset":
87220
87221type InstancesResetCall struct {
87222	s          *Service
87223	project    string
87224	zone       string
87225	instance   string
87226	urlParams_ gensupport.URLParams
87227	ctx_       context.Context
87228	header_    http.Header
87229}
87230
87231// Reset: Performs a reset on the instance. This is a hard reset the VM
87232// does not do a graceful shutdown. For more information, see Resetting
87233// an instance.
87234//
87235// - instance: Name of the instance scoping this request.
87236// - project: Project ID for this request.
87237// - zone: The name of the zone for this request.
87238// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/reset
87239func (r *InstancesService) Reset(project string, zone string, instance string) *InstancesResetCall {
87240	c := &InstancesResetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87241	c.project = project
87242	c.zone = zone
87243	c.instance = instance
87244	return c
87245}
87246
87247// RequestId sets the optional parameter "requestId": An optional
87248// request ID to identify requests. Specify a unique request ID so that
87249// if you must retry your request, the server will know to ignore the
87250// request if it has already been completed.
87251//
87252// For example, consider a situation where you make an initial request
87253// and the request times out. If you make the request again with the
87254// same request ID, the server can check if original operation with the
87255// same request ID was received, and if so, will ignore the second
87256// request. This prevents clients from accidentally creating duplicate
87257// commitments.
87258//
87259// The request ID must be a valid UUID with the exception that zero UUID
87260// is not supported (00000000-0000-0000-0000-000000000000).
87261func (c *InstancesResetCall) RequestId(requestId string) *InstancesResetCall {
87262	c.urlParams_.Set("requestId", requestId)
87263	return c
87264}
87265
87266// Fields allows partial responses to be retrieved. See
87267// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87268// for more information.
87269func (c *InstancesResetCall) Fields(s ...googleapi.Field) *InstancesResetCall {
87270	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87271	return c
87272}
87273
87274// Context sets the context to be used in this call's Do method. Any
87275// pending HTTP request will be aborted if the provided context is
87276// canceled.
87277func (c *InstancesResetCall) Context(ctx context.Context) *InstancesResetCall {
87278	c.ctx_ = ctx
87279	return c
87280}
87281
87282// Header returns an http.Header that can be modified by the caller to
87283// add HTTP headers to the request.
87284func (c *InstancesResetCall) Header() http.Header {
87285	if c.header_ == nil {
87286		c.header_ = make(http.Header)
87287	}
87288	return c.header_
87289}
87290
87291func (c *InstancesResetCall) doRequest(alt string) (*http.Response, error) {
87292	reqHeaders := make(http.Header)
87293	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
87294	for k, v := range c.header_ {
87295		reqHeaders[k] = v
87296	}
87297	reqHeaders.Set("User-Agent", c.s.userAgent())
87298	var body io.Reader = nil
87299	c.urlParams_.Set("alt", alt)
87300	c.urlParams_.Set("prettyPrint", "false")
87301	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/reset")
87302	urls += "?" + c.urlParams_.Encode()
87303	req, err := http.NewRequest("POST", urls, body)
87304	if err != nil {
87305		return nil, err
87306	}
87307	req.Header = reqHeaders
87308	googleapi.Expand(req.URL, map[string]string{
87309		"project":  c.project,
87310		"zone":     c.zone,
87311		"instance": c.instance,
87312	})
87313	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87314}
87315
87316// Do executes the "compute.instances.reset" call.
87317// Exactly one of *Operation or error will be non-nil. Any non-2xx
87318// status code is an error. Response headers are in either
87319// *Operation.ServerResponse.Header or (if a response was returned at
87320// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87321// to check whether the returned error was because
87322// http.StatusNotModified was returned.
87323func (c *InstancesResetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87324	gensupport.SetOptions(c.urlParams_, opts...)
87325	res, err := c.doRequest("json")
87326	if res != nil && res.StatusCode == http.StatusNotModified {
87327		if res.Body != nil {
87328			res.Body.Close()
87329		}
87330		return nil, &googleapi.Error{
87331			Code:   res.StatusCode,
87332			Header: res.Header,
87333		}
87334	}
87335	if err != nil {
87336		return nil, err
87337	}
87338	defer googleapi.CloseBody(res)
87339	if err := googleapi.CheckResponse(res); err != nil {
87340		return nil, err
87341	}
87342	ret := &Operation{
87343		ServerResponse: googleapi.ServerResponse{
87344			Header:         res.Header,
87345			HTTPStatusCode: res.StatusCode,
87346		},
87347	}
87348	target := &ret
87349	if err := gensupport.DecodeResponse(target, res); err != nil {
87350		return nil, err
87351	}
87352	return ret, nil
87353	// {
87354	//   "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.",
87355	//   "httpMethod": "POST",
87356	//   "id": "compute.instances.reset",
87357	//   "parameterOrder": [
87358	//     "project",
87359	//     "zone",
87360	//     "instance"
87361	//   ],
87362	//   "parameters": {
87363	//     "instance": {
87364	//       "description": "Name of the instance scoping this request.",
87365	//       "location": "path",
87366	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87367	//       "required": true,
87368	//       "type": "string"
87369	//     },
87370	//     "project": {
87371	//       "description": "Project ID for this request.",
87372	//       "location": "path",
87373	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87374	//       "required": true,
87375	//       "type": "string"
87376	//     },
87377	//     "requestId": {
87378	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
87379	//       "location": "query",
87380	//       "type": "string"
87381	//     },
87382	//     "zone": {
87383	//       "description": "The name of the zone for this request.",
87384	//       "location": "path",
87385	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87386	//       "required": true,
87387	//       "type": "string"
87388	//     }
87389	//   },
87390	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/reset",
87391	//   "response": {
87392	//     "$ref": "Operation"
87393	//   },
87394	//   "scopes": [
87395	//     "https://www.googleapis.com/auth/cloud-platform",
87396	//     "https://www.googleapis.com/auth/compute"
87397	//   ]
87398	// }
87399
87400}
87401
87402// method id "compute.instances.setDeletionProtection":
87403
87404type InstancesSetDeletionProtectionCall struct {
87405	s          *Service
87406	project    string
87407	zone       string
87408	resource   string
87409	urlParams_ gensupport.URLParams
87410	ctx_       context.Context
87411	header_    http.Header
87412}
87413
87414// SetDeletionProtection: Sets deletion protection on the instance.
87415//
87416// - project: Project ID for this request.
87417// - resource: Name or id of the resource for this request.
87418// - zone: The name of the zone for this request.
87419func (r *InstancesService) SetDeletionProtection(project string, zone string, resource string) *InstancesSetDeletionProtectionCall {
87420	c := &InstancesSetDeletionProtectionCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87421	c.project = project
87422	c.zone = zone
87423	c.resource = resource
87424	return c
87425}
87426
87427// DeletionProtection sets the optional parameter "deletionProtection":
87428// Whether the resource should be protected against deletion.
87429func (c *InstancesSetDeletionProtectionCall) DeletionProtection(deletionProtection bool) *InstancesSetDeletionProtectionCall {
87430	c.urlParams_.Set("deletionProtection", fmt.Sprint(deletionProtection))
87431	return c
87432}
87433
87434// RequestId sets the optional parameter "requestId": An optional
87435// request ID to identify requests. Specify a unique request ID so that
87436// if you must retry your request, the server will know to ignore the
87437// request if it has already been completed.
87438//
87439// For example, consider a situation where you make an initial request
87440// and the request times out. If you make the request again with the
87441// same request ID, the server can check if original operation with the
87442// same request ID was received, and if so, will ignore the second
87443// request. This prevents clients from accidentally creating duplicate
87444// commitments.
87445//
87446// The request ID must be a valid UUID with the exception that zero UUID
87447// is not supported (00000000-0000-0000-0000-000000000000).
87448func (c *InstancesSetDeletionProtectionCall) RequestId(requestId string) *InstancesSetDeletionProtectionCall {
87449	c.urlParams_.Set("requestId", requestId)
87450	return c
87451}
87452
87453// Fields allows partial responses to be retrieved. See
87454// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87455// for more information.
87456func (c *InstancesSetDeletionProtectionCall) Fields(s ...googleapi.Field) *InstancesSetDeletionProtectionCall {
87457	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87458	return c
87459}
87460
87461// Context sets the context to be used in this call's Do method. Any
87462// pending HTTP request will be aborted if the provided context is
87463// canceled.
87464func (c *InstancesSetDeletionProtectionCall) Context(ctx context.Context) *InstancesSetDeletionProtectionCall {
87465	c.ctx_ = ctx
87466	return c
87467}
87468
87469// Header returns an http.Header that can be modified by the caller to
87470// add HTTP headers to the request.
87471func (c *InstancesSetDeletionProtectionCall) Header() http.Header {
87472	if c.header_ == nil {
87473		c.header_ = make(http.Header)
87474	}
87475	return c.header_
87476}
87477
87478func (c *InstancesSetDeletionProtectionCall) doRequest(alt string) (*http.Response, error) {
87479	reqHeaders := make(http.Header)
87480	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
87481	for k, v := range c.header_ {
87482		reqHeaders[k] = v
87483	}
87484	reqHeaders.Set("User-Agent", c.s.userAgent())
87485	var body io.Reader = nil
87486	c.urlParams_.Set("alt", alt)
87487	c.urlParams_.Set("prettyPrint", "false")
87488	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{resource}/setDeletionProtection")
87489	urls += "?" + c.urlParams_.Encode()
87490	req, err := http.NewRequest("POST", urls, body)
87491	if err != nil {
87492		return nil, err
87493	}
87494	req.Header = reqHeaders
87495	googleapi.Expand(req.URL, map[string]string{
87496		"project":  c.project,
87497		"zone":     c.zone,
87498		"resource": c.resource,
87499	})
87500	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87501}
87502
87503// Do executes the "compute.instances.setDeletionProtection" call.
87504// Exactly one of *Operation or error will be non-nil. Any non-2xx
87505// status code is an error. Response headers are in either
87506// *Operation.ServerResponse.Header or (if a response was returned at
87507// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87508// to check whether the returned error was because
87509// http.StatusNotModified was returned.
87510func (c *InstancesSetDeletionProtectionCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87511	gensupport.SetOptions(c.urlParams_, opts...)
87512	res, err := c.doRequest("json")
87513	if res != nil && res.StatusCode == http.StatusNotModified {
87514		if res.Body != nil {
87515			res.Body.Close()
87516		}
87517		return nil, &googleapi.Error{
87518			Code:   res.StatusCode,
87519			Header: res.Header,
87520		}
87521	}
87522	if err != nil {
87523		return nil, err
87524	}
87525	defer googleapi.CloseBody(res)
87526	if err := googleapi.CheckResponse(res); err != nil {
87527		return nil, err
87528	}
87529	ret := &Operation{
87530		ServerResponse: googleapi.ServerResponse{
87531			Header:         res.Header,
87532			HTTPStatusCode: res.StatusCode,
87533		},
87534	}
87535	target := &ret
87536	if err := gensupport.DecodeResponse(target, res); err != nil {
87537		return nil, err
87538	}
87539	return ret, nil
87540	// {
87541	//   "description": "Sets deletion protection on the instance.",
87542	//   "httpMethod": "POST",
87543	//   "id": "compute.instances.setDeletionProtection",
87544	//   "parameterOrder": [
87545	//     "project",
87546	//     "zone",
87547	//     "resource"
87548	//   ],
87549	//   "parameters": {
87550	//     "deletionProtection": {
87551	//       "default": "true",
87552	//       "description": "Whether the resource should be protected against deletion.",
87553	//       "location": "query",
87554	//       "type": "boolean"
87555	//     },
87556	//     "project": {
87557	//       "description": "Project ID for this request.",
87558	//       "location": "path",
87559	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87560	//       "required": true,
87561	//       "type": "string"
87562	//     },
87563	//     "requestId": {
87564	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
87565	//       "location": "query",
87566	//       "type": "string"
87567	//     },
87568	//     "resource": {
87569	//       "description": "Name or id of the resource for this request.",
87570	//       "location": "path",
87571	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87572	//       "required": true,
87573	//       "type": "string"
87574	//     },
87575	//     "zone": {
87576	//       "description": "The name of the zone for this request.",
87577	//       "location": "path",
87578	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87579	//       "required": true,
87580	//       "type": "string"
87581	//     }
87582	//   },
87583	//   "path": "projects/{project}/zones/{zone}/instances/{resource}/setDeletionProtection",
87584	//   "response": {
87585	//     "$ref": "Operation"
87586	//   },
87587	//   "scopes": [
87588	//     "https://www.googleapis.com/auth/cloud-platform",
87589	//     "https://www.googleapis.com/auth/compute"
87590	//   ]
87591	// }
87592
87593}
87594
87595// method id "compute.instances.setDiskAutoDelete":
87596
87597type InstancesSetDiskAutoDeleteCall struct {
87598	s          *Service
87599	project    string
87600	zone       string
87601	instance   string
87602	urlParams_ gensupport.URLParams
87603	ctx_       context.Context
87604	header_    http.Header
87605}
87606
87607// SetDiskAutoDelete: Sets the auto-delete flag for a disk attached to
87608// an instance.
87609//
87610// - autoDelete: Whether to auto-delete the disk when the instance is
87611//   deleted.
87612// - deviceName: The device name of the disk to modify. Make a get()
87613//   request on the instance to view currently attached disks and device
87614//   names.
87615// - instance: The instance name for this request.
87616// - project: Project ID for this request.
87617// - zone: The name of the zone for this request.
87618// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setDiskAutoDelete
87619func (r *InstancesService) SetDiskAutoDelete(project string, zone string, instance string, autoDelete bool, deviceName string) *InstancesSetDiskAutoDeleteCall {
87620	c := &InstancesSetDiskAutoDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87621	c.project = project
87622	c.zone = zone
87623	c.instance = instance
87624	c.urlParams_.Set("autoDelete", fmt.Sprint(autoDelete))
87625	c.urlParams_.Set("deviceName", deviceName)
87626	return c
87627}
87628
87629// RequestId sets the optional parameter "requestId": An optional
87630// request ID to identify requests. Specify a unique request ID so that
87631// if you must retry your request, the server will know to ignore the
87632// request if it has already been completed.
87633//
87634// For example, consider a situation where you make an initial request
87635// and the request times out. If you make the request again with the
87636// same request ID, the server can check if original operation with the
87637// same request ID was received, and if so, will ignore the second
87638// request. This prevents clients from accidentally creating duplicate
87639// commitments.
87640//
87641// The request ID must be a valid UUID with the exception that zero UUID
87642// is not supported (00000000-0000-0000-0000-000000000000).
87643func (c *InstancesSetDiskAutoDeleteCall) RequestId(requestId string) *InstancesSetDiskAutoDeleteCall {
87644	c.urlParams_.Set("requestId", requestId)
87645	return c
87646}
87647
87648// Fields allows partial responses to be retrieved. See
87649// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87650// for more information.
87651func (c *InstancesSetDiskAutoDeleteCall) Fields(s ...googleapi.Field) *InstancesSetDiskAutoDeleteCall {
87652	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87653	return c
87654}
87655
87656// Context sets the context to be used in this call's Do method. Any
87657// pending HTTP request will be aborted if the provided context is
87658// canceled.
87659func (c *InstancesSetDiskAutoDeleteCall) Context(ctx context.Context) *InstancesSetDiskAutoDeleteCall {
87660	c.ctx_ = ctx
87661	return c
87662}
87663
87664// Header returns an http.Header that can be modified by the caller to
87665// add HTTP headers to the request.
87666func (c *InstancesSetDiskAutoDeleteCall) Header() http.Header {
87667	if c.header_ == nil {
87668		c.header_ = make(http.Header)
87669	}
87670	return c.header_
87671}
87672
87673func (c *InstancesSetDiskAutoDeleteCall) doRequest(alt string) (*http.Response, error) {
87674	reqHeaders := make(http.Header)
87675	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
87676	for k, v := range c.header_ {
87677		reqHeaders[k] = v
87678	}
87679	reqHeaders.Set("User-Agent", c.s.userAgent())
87680	var body io.Reader = nil
87681	c.urlParams_.Set("alt", alt)
87682	c.urlParams_.Set("prettyPrint", "false")
87683	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete")
87684	urls += "?" + c.urlParams_.Encode()
87685	req, err := http.NewRequest("POST", urls, body)
87686	if err != nil {
87687		return nil, err
87688	}
87689	req.Header = reqHeaders
87690	googleapi.Expand(req.URL, map[string]string{
87691		"project":  c.project,
87692		"zone":     c.zone,
87693		"instance": c.instance,
87694	})
87695	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87696}
87697
87698// Do executes the "compute.instances.setDiskAutoDelete" call.
87699// Exactly one of *Operation or error will be non-nil. Any non-2xx
87700// status code is an error. Response headers are in either
87701// *Operation.ServerResponse.Header or (if a response was returned at
87702// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87703// to check whether the returned error was because
87704// http.StatusNotModified was returned.
87705func (c *InstancesSetDiskAutoDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87706	gensupport.SetOptions(c.urlParams_, opts...)
87707	res, err := c.doRequest("json")
87708	if res != nil && res.StatusCode == http.StatusNotModified {
87709		if res.Body != nil {
87710			res.Body.Close()
87711		}
87712		return nil, &googleapi.Error{
87713			Code:   res.StatusCode,
87714			Header: res.Header,
87715		}
87716	}
87717	if err != nil {
87718		return nil, err
87719	}
87720	defer googleapi.CloseBody(res)
87721	if err := googleapi.CheckResponse(res); err != nil {
87722		return nil, err
87723	}
87724	ret := &Operation{
87725		ServerResponse: googleapi.ServerResponse{
87726			Header:         res.Header,
87727			HTTPStatusCode: res.StatusCode,
87728		},
87729	}
87730	target := &ret
87731	if err := gensupport.DecodeResponse(target, res); err != nil {
87732		return nil, err
87733	}
87734	return ret, nil
87735	// {
87736	//   "description": "Sets the auto-delete flag for a disk attached to an instance.",
87737	//   "httpMethod": "POST",
87738	//   "id": "compute.instances.setDiskAutoDelete",
87739	//   "parameterOrder": [
87740	//     "project",
87741	//     "zone",
87742	//     "instance",
87743	//     "autoDelete",
87744	//     "deviceName"
87745	//   ],
87746	//   "parameters": {
87747	//     "autoDelete": {
87748	//       "description": "Whether to auto-delete the disk when the instance is deleted.",
87749	//       "location": "query",
87750	//       "required": true,
87751	//       "type": "boolean"
87752	//     },
87753	//     "deviceName": {
87754	//       "description": "The device name of the disk to modify. Make a get() request on the instance to view currently attached disks and device names.",
87755	//       "location": "query",
87756	//       "pattern": "\\w[\\w.-]{0,254}",
87757	//       "required": true,
87758	//       "type": "string"
87759	//     },
87760	//     "instance": {
87761	//       "description": "The instance name for this request.",
87762	//       "location": "path",
87763	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87764	//       "required": true,
87765	//       "type": "string"
87766	//     },
87767	//     "project": {
87768	//       "description": "Project ID for this request.",
87769	//       "location": "path",
87770	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87771	//       "required": true,
87772	//       "type": "string"
87773	//     },
87774	//     "requestId": {
87775	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
87776	//       "location": "query",
87777	//       "type": "string"
87778	//     },
87779	//     "zone": {
87780	//       "description": "The name of the zone for this request.",
87781	//       "location": "path",
87782	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87783	//       "required": true,
87784	//       "type": "string"
87785	//     }
87786	//   },
87787	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete",
87788	//   "response": {
87789	//     "$ref": "Operation"
87790	//   },
87791	//   "scopes": [
87792	//     "https://www.googleapis.com/auth/cloud-platform",
87793	//     "https://www.googleapis.com/auth/compute"
87794	//   ]
87795	// }
87796
87797}
87798
87799// method id "compute.instances.setIamPolicy":
87800
87801type InstancesSetIamPolicyCall struct {
87802	s                    *Service
87803	project              string
87804	zone                 string
87805	resource             string
87806	zonesetpolicyrequest *ZoneSetPolicyRequest
87807	urlParams_           gensupport.URLParams
87808	ctx_                 context.Context
87809	header_              http.Header
87810}
87811
87812// SetIamPolicy: Sets the access control policy on the specified
87813// resource. Replaces any existing policy.
87814//
87815// - project: Project ID for this request.
87816// - resource: Name or id of the resource for this request.
87817// - zone: The name of the zone for this request.
87818func (r *InstancesService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *InstancesSetIamPolicyCall {
87819	c := &InstancesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87820	c.project = project
87821	c.zone = zone
87822	c.resource = resource
87823	c.zonesetpolicyrequest = zonesetpolicyrequest
87824	return c
87825}
87826
87827// Fields allows partial responses to be retrieved. See
87828// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87829// for more information.
87830func (c *InstancesSetIamPolicyCall) Fields(s ...googleapi.Field) *InstancesSetIamPolicyCall {
87831	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87832	return c
87833}
87834
87835// Context sets the context to be used in this call's Do method. Any
87836// pending HTTP request will be aborted if the provided context is
87837// canceled.
87838func (c *InstancesSetIamPolicyCall) Context(ctx context.Context) *InstancesSetIamPolicyCall {
87839	c.ctx_ = ctx
87840	return c
87841}
87842
87843// Header returns an http.Header that can be modified by the caller to
87844// add HTTP headers to the request.
87845func (c *InstancesSetIamPolicyCall) Header() http.Header {
87846	if c.header_ == nil {
87847		c.header_ = make(http.Header)
87848	}
87849	return c.header_
87850}
87851
87852func (c *InstancesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
87853	reqHeaders := make(http.Header)
87854	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
87855	for k, v := range c.header_ {
87856		reqHeaders[k] = v
87857	}
87858	reqHeaders.Set("User-Agent", c.s.userAgent())
87859	var body io.Reader = nil
87860	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
87861	if err != nil {
87862		return nil, err
87863	}
87864	reqHeaders.Set("Content-Type", "application/json")
87865	c.urlParams_.Set("alt", alt)
87866	c.urlParams_.Set("prettyPrint", "false")
87867	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{resource}/setIamPolicy")
87868	urls += "?" + c.urlParams_.Encode()
87869	req, err := http.NewRequest("POST", urls, body)
87870	if err != nil {
87871		return nil, err
87872	}
87873	req.Header = reqHeaders
87874	googleapi.Expand(req.URL, map[string]string{
87875		"project":  c.project,
87876		"zone":     c.zone,
87877		"resource": c.resource,
87878	})
87879	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87880}
87881
87882// Do executes the "compute.instances.setIamPolicy" call.
87883// Exactly one of *Policy or error will be non-nil. Any non-2xx status
87884// code is an error. Response headers are in either
87885// *Policy.ServerResponse.Header or (if a response was returned at all)
87886// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
87887// check whether the returned error was because http.StatusNotModified
87888// was returned.
87889func (c *InstancesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
87890	gensupport.SetOptions(c.urlParams_, opts...)
87891	res, err := c.doRequest("json")
87892	if res != nil && res.StatusCode == http.StatusNotModified {
87893		if res.Body != nil {
87894			res.Body.Close()
87895		}
87896		return nil, &googleapi.Error{
87897			Code:   res.StatusCode,
87898			Header: res.Header,
87899		}
87900	}
87901	if err != nil {
87902		return nil, err
87903	}
87904	defer googleapi.CloseBody(res)
87905	if err := googleapi.CheckResponse(res); err != nil {
87906		return nil, err
87907	}
87908	ret := &Policy{
87909		ServerResponse: googleapi.ServerResponse{
87910			Header:         res.Header,
87911			HTTPStatusCode: res.StatusCode,
87912		},
87913	}
87914	target := &ret
87915	if err := gensupport.DecodeResponse(target, res); err != nil {
87916		return nil, err
87917	}
87918	return ret, nil
87919	// {
87920	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
87921	//   "httpMethod": "POST",
87922	//   "id": "compute.instances.setIamPolicy",
87923	//   "parameterOrder": [
87924	//     "project",
87925	//     "zone",
87926	//     "resource"
87927	//   ],
87928	//   "parameters": {
87929	//     "project": {
87930	//       "description": "Project ID for this request.",
87931	//       "location": "path",
87932	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87933	//       "required": true,
87934	//       "type": "string"
87935	//     },
87936	//     "resource": {
87937	//       "description": "Name or id of the resource for this request.",
87938	//       "location": "path",
87939	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87940	//       "required": true,
87941	//       "type": "string"
87942	//     },
87943	//     "zone": {
87944	//       "description": "The name of the zone for this request.",
87945	//       "location": "path",
87946	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
87947	//       "required": true,
87948	//       "type": "string"
87949	//     }
87950	//   },
87951	//   "path": "projects/{project}/zones/{zone}/instances/{resource}/setIamPolicy",
87952	//   "request": {
87953	//     "$ref": "ZoneSetPolicyRequest"
87954	//   },
87955	//   "response": {
87956	//     "$ref": "Policy"
87957	//   },
87958	//   "scopes": [
87959	//     "https://www.googleapis.com/auth/cloud-platform",
87960	//     "https://www.googleapis.com/auth/compute"
87961	//   ]
87962	// }
87963
87964}
87965
87966// method id "compute.instances.setLabels":
87967
87968type InstancesSetLabelsCall struct {
87969	s                         *Service
87970	project                   string
87971	zone                      string
87972	instance                  string
87973	instancessetlabelsrequest *InstancesSetLabelsRequest
87974	urlParams_                gensupport.URLParams
87975	ctx_                      context.Context
87976	header_                   http.Header
87977}
87978
87979// SetLabels: Sets labels on an instance. To learn more about labels,
87980// read the Labeling Resources documentation.
87981//
87982// - instance: Name of the instance scoping this request.
87983// - project: Project ID for this request.
87984// - zone: The name of the zone for this request.
87985func (r *InstancesService) SetLabels(project string, zone string, instance string, instancessetlabelsrequest *InstancesSetLabelsRequest) *InstancesSetLabelsCall {
87986	c := &InstancesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87987	c.project = project
87988	c.zone = zone
87989	c.instance = instance
87990	c.instancessetlabelsrequest = instancessetlabelsrequest
87991	return c
87992}
87993
87994// RequestId sets the optional parameter "requestId": An optional
87995// request ID to identify requests. Specify a unique request ID so that
87996// if you must retry your request, the server will know to ignore the
87997// request if it has already been completed.
87998//
87999// For example, consider a situation where you make an initial request
88000// and the request times out. If you make the request again with the
88001// same request ID, the server can check if original operation with the
88002// same request ID was received, and if so, will ignore the second
88003// request. This prevents clients from accidentally creating duplicate
88004// commitments.
88005//
88006// The request ID must be a valid UUID with the exception that zero UUID
88007// is not supported (00000000-0000-0000-0000-000000000000).
88008func (c *InstancesSetLabelsCall) RequestId(requestId string) *InstancesSetLabelsCall {
88009	c.urlParams_.Set("requestId", requestId)
88010	return c
88011}
88012
88013// Fields allows partial responses to be retrieved. See
88014// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88015// for more information.
88016func (c *InstancesSetLabelsCall) Fields(s ...googleapi.Field) *InstancesSetLabelsCall {
88017	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88018	return c
88019}
88020
88021// Context sets the context to be used in this call's Do method. Any
88022// pending HTTP request will be aborted if the provided context is
88023// canceled.
88024func (c *InstancesSetLabelsCall) Context(ctx context.Context) *InstancesSetLabelsCall {
88025	c.ctx_ = ctx
88026	return c
88027}
88028
88029// Header returns an http.Header that can be modified by the caller to
88030// add HTTP headers to the request.
88031func (c *InstancesSetLabelsCall) Header() http.Header {
88032	if c.header_ == nil {
88033		c.header_ = make(http.Header)
88034	}
88035	return c.header_
88036}
88037
88038func (c *InstancesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
88039	reqHeaders := make(http.Header)
88040	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
88041	for k, v := range c.header_ {
88042		reqHeaders[k] = v
88043	}
88044	reqHeaders.Set("User-Agent", c.s.userAgent())
88045	var body io.Reader = nil
88046	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetlabelsrequest)
88047	if err != nil {
88048		return nil, err
88049	}
88050	reqHeaders.Set("Content-Type", "application/json")
88051	c.urlParams_.Set("alt", alt)
88052	c.urlParams_.Set("prettyPrint", "false")
88053	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setLabels")
88054	urls += "?" + c.urlParams_.Encode()
88055	req, err := http.NewRequest("POST", urls, body)
88056	if err != nil {
88057		return nil, err
88058	}
88059	req.Header = reqHeaders
88060	googleapi.Expand(req.URL, map[string]string{
88061		"project":  c.project,
88062		"zone":     c.zone,
88063		"instance": c.instance,
88064	})
88065	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88066}
88067
88068// Do executes the "compute.instances.setLabels" call.
88069// Exactly one of *Operation or error will be non-nil. Any non-2xx
88070// status code is an error. Response headers are in either
88071// *Operation.ServerResponse.Header or (if a response was returned at
88072// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88073// to check whether the returned error was because
88074// http.StatusNotModified was returned.
88075func (c *InstancesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
88076	gensupport.SetOptions(c.urlParams_, opts...)
88077	res, err := c.doRequest("json")
88078	if res != nil && res.StatusCode == http.StatusNotModified {
88079		if res.Body != nil {
88080			res.Body.Close()
88081		}
88082		return nil, &googleapi.Error{
88083			Code:   res.StatusCode,
88084			Header: res.Header,
88085		}
88086	}
88087	if err != nil {
88088		return nil, err
88089	}
88090	defer googleapi.CloseBody(res)
88091	if err := googleapi.CheckResponse(res); err != nil {
88092		return nil, err
88093	}
88094	ret := &Operation{
88095		ServerResponse: googleapi.ServerResponse{
88096			Header:         res.Header,
88097			HTTPStatusCode: res.StatusCode,
88098		},
88099	}
88100	target := &ret
88101	if err := gensupport.DecodeResponse(target, res); err != nil {
88102		return nil, err
88103	}
88104	return ret, nil
88105	// {
88106	//   "description": "Sets labels on an instance. To learn more about labels, read the Labeling Resources documentation.",
88107	//   "httpMethod": "POST",
88108	//   "id": "compute.instances.setLabels",
88109	//   "parameterOrder": [
88110	//     "project",
88111	//     "zone",
88112	//     "instance"
88113	//   ],
88114	//   "parameters": {
88115	//     "instance": {
88116	//       "description": "Name of the instance scoping this request.",
88117	//       "location": "path",
88118	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88119	//       "required": true,
88120	//       "type": "string"
88121	//     },
88122	//     "project": {
88123	//       "description": "Project ID for this request.",
88124	//       "location": "path",
88125	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88126	//       "required": true,
88127	//       "type": "string"
88128	//     },
88129	//     "requestId": {
88130	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
88131	//       "location": "query",
88132	//       "type": "string"
88133	//     },
88134	//     "zone": {
88135	//       "description": "The name of the zone for this request.",
88136	//       "location": "path",
88137	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88138	//       "required": true,
88139	//       "type": "string"
88140	//     }
88141	//   },
88142	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setLabels",
88143	//   "request": {
88144	//     "$ref": "InstancesSetLabelsRequest"
88145	//   },
88146	//   "response": {
88147	//     "$ref": "Operation"
88148	//   },
88149	//   "scopes": [
88150	//     "https://www.googleapis.com/auth/cloud-platform",
88151	//     "https://www.googleapis.com/auth/compute"
88152	//   ]
88153	// }
88154
88155}
88156
88157// method id "compute.instances.setMachineResources":
88158
88159type InstancesSetMachineResourcesCall struct {
88160	s                                   *Service
88161	project                             string
88162	zone                                string
88163	instance                            string
88164	instancessetmachineresourcesrequest *InstancesSetMachineResourcesRequest
88165	urlParams_                          gensupport.URLParams
88166	ctx_                                context.Context
88167	header_                             http.Header
88168}
88169
88170// SetMachineResources: Changes the number and/or type of accelerator
88171// for a stopped instance to the values specified in the request.
88172//
88173// - instance: Name of the instance scoping this request.
88174// - project: Project ID for this request.
88175// - zone: The name of the zone for this request.
88176func (r *InstancesService) SetMachineResources(project string, zone string, instance string, instancessetmachineresourcesrequest *InstancesSetMachineResourcesRequest) *InstancesSetMachineResourcesCall {
88177	c := &InstancesSetMachineResourcesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88178	c.project = project
88179	c.zone = zone
88180	c.instance = instance
88181	c.instancessetmachineresourcesrequest = instancessetmachineresourcesrequest
88182	return c
88183}
88184
88185// RequestId sets the optional parameter "requestId": An optional
88186// request ID to identify requests. Specify a unique request ID so that
88187// if you must retry your request, the server will know to ignore the
88188// request if it has already been completed.
88189//
88190// For example, consider a situation where you make an initial request
88191// and the request times out. If you make the request again with the
88192// same request ID, the server can check if original operation with the
88193// same request ID was received, and if so, will ignore the second
88194// request. This prevents clients from accidentally creating duplicate
88195// commitments.
88196//
88197// The request ID must be a valid UUID with the exception that zero UUID
88198// is not supported (00000000-0000-0000-0000-000000000000).
88199func (c *InstancesSetMachineResourcesCall) RequestId(requestId string) *InstancesSetMachineResourcesCall {
88200	c.urlParams_.Set("requestId", requestId)
88201	return c
88202}
88203
88204// Fields allows partial responses to be retrieved. See
88205// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88206// for more information.
88207func (c *InstancesSetMachineResourcesCall) Fields(s ...googleapi.Field) *InstancesSetMachineResourcesCall {
88208	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88209	return c
88210}
88211
88212// Context sets the context to be used in this call's Do method. Any
88213// pending HTTP request will be aborted if the provided context is
88214// canceled.
88215func (c *InstancesSetMachineResourcesCall) Context(ctx context.Context) *InstancesSetMachineResourcesCall {
88216	c.ctx_ = ctx
88217	return c
88218}
88219
88220// Header returns an http.Header that can be modified by the caller to
88221// add HTTP headers to the request.
88222func (c *InstancesSetMachineResourcesCall) Header() http.Header {
88223	if c.header_ == nil {
88224		c.header_ = make(http.Header)
88225	}
88226	return c.header_
88227}
88228
88229func (c *InstancesSetMachineResourcesCall) doRequest(alt string) (*http.Response, error) {
88230	reqHeaders := make(http.Header)
88231	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
88232	for k, v := range c.header_ {
88233		reqHeaders[k] = v
88234	}
88235	reqHeaders.Set("User-Agent", c.s.userAgent())
88236	var body io.Reader = nil
88237	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmachineresourcesrequest)
88238	if err != nil {
88239		return nil, err
88240	}
88241	reqHeaders.Set("Content-Type", "application/json")
88242	c.urlParams_.Set("alt", alt)
88243	c.urlParams_.Set("prettyPrint", "false")
88244	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setMachineResources")
88245	urls += "?" + c.urlParams_.Encode()
88246	req, err := http.NewRequest("POST", urls, body)
88247	if err != nil {
88248		return nil, err
88249	}
88250	req.Header = reqHeaders
88251	googleapi.Expand(req.URL, map[string]string{
88252		"project":  c.project,
88253		"zone":     c.zone,
88254		"instance": c.instance,
88255	})
88256	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88257}
88258
88259// Do executes the "compute.instances.setMachineResources" call.
88260// Exactly one of *Operation or error will be non-nil. Any non-2xx
88261// status code is an error. Response headers are in either
88262// *Operation.ServerResponse.Header or (if a response was returned at
88263// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88264// to check whether the returned error was because
88265// http.StatusNotModified was returned.
88266func (c *InstancesSetMachineResourcesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
88267	gensupport.SetOptions(c.urlParams_, opts...)
88268	res, err := c.doRequest("json")
88269	if res != nil && res.StatusCode == http.StatusNotModified {
88270		if res.Body != nil {
88271			res.Body.Close()
88272		}
88273		return nil, &googleapi.Error{
88274			Code:   res.StatusCode,
88275			Header: res.Header,
88276		}
88277	}
88278	if err != nil {
88279		return nil, err
88280	}
88281	defer googleapi.CloseBody(res)
88282	if err := googleapi.CheckResponse(res); err != nil {
88283		return nil, err
88284	}
88285	ret := &Operation{
88286		ServerResponse: googleapi.ServerResponse{
88287			Header:         res.Header,
88288			HTTPStatusCode: res.StatusCode,
88289		},
88290	}
88291	target := &ret
88292	if err := gensupport.DecodeResponse(target, res); err != nil {
88293		return nil, err
88294	}
88295	return ret, nil
88296	// {
88297	//   "description": "Changes the number and/or type of accelerator for a stopped instance to the values specified in the request.",
88298	//   "httpMethod": "POST",
88299	//   "id": "compute.instances.setMachineResources",
88300	//   "parameterOrder": [
88301	//     "project",
88302	//     "zone",
88303	//     "instance"
88304	//   ],
88305	//   "parameters": {
88306	//     "instance": {
88307	//       "description": "Name of the instance scoping this request.",
88308	//       "location": "path",
88309	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88310	//       "required": true,
88311	//       "type": "string"
88312	//     },
88313	//     "project": {
88314	//       "description": "Project ID for this request.",
88315	//       "location": "path",
88316	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88317	//       "required": true,
88318	//       "type": "string"
88319	//     },
88320	//     "requestId": {
88321	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
88322	//       "location": "query",
88323	//       "type": "string"
88324	//     },
88325	//     "zone": {
88326	//       "description": "The name of the zone for this request.",
88327	//       "location": "path",
88328	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88329	//       "required": true,
88330	//       "type": "string"
88331	//     }
88332	//   },
88333	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setMachineResources",
88334	//   "request": {
88335	//     "$ref": "InstancesSetMachineResourcesRequest"
88336	//   },
88337	//   "response": {
88338	//     "$ref": "Operation"
88339	//   },
88340	//   "scopes": [
88341	//     "https://www.googleapis.com/auth/cloud-platform",
88342	//     "https://www.googleapis.com/auth/compute"
88343	//   ]
88344	// }
88345
88346}
88347
88348// method id "compute.instances.setMachineType":
88349
88350type InstancesSetMachineTypeCall struct {
88351	s                              *Service
88352	project                        string
88353	zone                           string
88354	instance                       string
88355	instancessetmachinetyperequest *InstancesSetMachineTypeRequest
88356	urlParams_                     gensupport.URLParams
88357	ctx_                           context.Context
88358	header_                        http.Header
88359}
88360
88361// SetMachineType: Changes the machine type for a stopped instance to
88362// the machine type specified in the request.
88363//
88364// - instance: Name of the instance scoping this request.
88365// - project: Project ID for this request.
88366// - zone: The name of the zone for this request.
88367func (r *InstancesService) SetMachineType(project string, zone string, instance string, instancessetmachinetyperequest *InstancesSetMachineTypeRequest) *InstancesSetMachineTypeCall {
88368	c := &InstancesSetMachineTypeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88369	c.project = project
88370	c.zone = zone
88371	c.instance = instance
88372	c.instancessetmachinetyperequest = instancessetmachinetyperequest
88373	return c
88374}
88375
88376// RequestId sets the optional parameter "requestId": An optional
88377// request ID to identify requests. Specify a unique request ID so that
88378// if you must retry your request, the server will know to ignore the
88379// request if it has already been completed.
88380//
88381// For example, consider a situation where you make an initial request
88382// and the request times out. If you make the request again with the
88383// same request ID, the server can check if original operation with the
88384// same request ID was received, and if so, will ignore the second
88385// request. This prevents clients from accidentally creating duplicate
88386// commitments.
88387//
88388// The request ID must be a valid UUID with the exception that zero UUID
88389// is not supported (00000000-0000-0000-0000-000000000000).
88390func (c *InstancesSetMachineTypeCall) RequestId(requestId string) *InstancesSetMachineTypeCall {
88391	c.urlParams_.Set("requestId", requestId)
88392	return c
88393}
88394
88395// Fields allows partial responses to be retrieved. See
88396// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88397// for more information.
88398func (c *InstancesSetMachineTypeCall) Fields(s ...googleapi.Field) *InstancesSetMachineTypeCall {
88399	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88400	return c
88401}
88402
88403// Context sets the context to be used in this call's Do method. Any
88404// pending HTTP request will be aborted if the provided context is
88405// canceled.
88406func (c *InstancesSetMachineTypeCall) Context(ctx context.Context) *InstancesSetMachineTypeCall {
88407	c.ctx_ = ctx
88408	return c
88409}
88410
88411// Header returns an http.Header that can be modified by the caller to
88412// add HTTP headers to the request.
88413func (c *InstancesSetMachineTypeCall) Header() http.Header {
88414	if c.header_ == nil {
88415		c.header_ = make(http.Header)
88416	}
88417	return c.header_
88418}
88419
88420func (c *InstancesSetMachineTypeCall) doRequest(alt string) (*http.Response, error) {
88421	reqHeaders := make(http.Header)
88422	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
88423	for k, v := range c.header_ {
88424		reqHeaders[k] = v
88425	}
88426	reqHeaders.Set("User-Agent", c.s.userAgent())
88427	var body io.Reader = nil
88428	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmachinetyperequest)
88429	if err != nil {
88430		return nil, err
88431	}
88432	reqHeaders.Set("Content-Type", "application/json")
88433	c.urlParams_.Set("alt", alt)
88434	c.urlParams_.Set("prettyPrint", "false")
88435	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setMachineType")
88436	urls += "?" + c.urlParams_.Encode()
88437	req, err := http.NewRequest("POST", urls, body)
88438	if err != nil {
88439		return nil, err
88440	}
88441	req.Header = reqHeaders
88442	googleapi.Expand(req.URL, map[string]string{
88443		"project":  c.project,
88444		"zone":     c.zone,
88445		"instance": c.instance,
88446	})
88447	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88448}
88449
88450// Do executes the "compute.instances.setMachineType" call.
88451// Exactly one of *Operation or error will be non-nil. Any non-2xx
88452// status code is an error. Response headers are in either
88453// *Operation.ServerResponse.Header or (if a response was returned at
88454// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88455// to check whether the returned error was because
88456// http.StatusNotModified was returned.
88457func (c *InstancesSetMachineTypeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
88458	gensupport.SetOptions(c.urlParams_, opts...)
88459	res, err := c.doRequest("json")
88460	if res != nil && res.StatusCode == http.StatusNotModified {
88461		if res.Body != nil {
88462			res.Body.Close()
88463		}
88464		return nil, &googleapi.Error{
88465			Code:   res.StatusCode,
88466			Header: res.Header,
88467		}
88468	}
88469	if err != nil {
88470		return nil, err
88471	}
88472	defer googleapi.CloseBody(res)
88473	if err := googleapi.CheckResponse(res); err != nil {
88474		return nil, err
88475	}
88476	ret := &Operation{
88477		ServerResponse: googleapi.ServerResponse{
88478			Header:         res.Header,
88479			HTTPStatusCode: res.StatusCode,
88480		},
88481	}
88482	target := &ret
88483	if err := gensupport.DecodeResponse(target, res); err != nil {
88484		return nil, err
88485	}
88486	return ret, nil
88487	// {
88488	//   "description": "Changes the machine type for a stopped instance to the machine type specified in the request.",
88489	//   "httpMethod": "POST",
88490	//   "id": "compute.instances.setMachineType",
88491	//   "parameterOrder": [
88492	//     "project",
88493	//     "zone",
88494	//     "instance"
88495	//   ],
88496	//   "parameters": {
88497	//     "instance": {
88498	//       "description": "Name of the instance scoping this request.",
88499	//       "location": "path",
88500	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88501	//       "required": true,
88502	//       "type": "string"
88503	//     },
88504	//     "project": {
88505	//       "description": "Project ID for this request.",
88506	//       "location": "path",
88507	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88508	//       "required": true,
88509	//       "type": "string"
88510	//     },
88511	//     "requestId": {
88512	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
88513	//       "location": "query",
88514	//       "type": "string"
88515	//     },
88516	//     "zone": {
88517	//       "description": "The name of the zone for this request.",
88518	//       "location": "path",
88519	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88520	//       "required": true,
88521	//       "type": "string"
88522	//     }
88523	//   },
88524	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setMachineType",
88525	//   "request": {
88526	//     "$ref": "InstancesSetMachineTypeRequest"
88527	//   },
88528	//   "response": {
88529	//     "$ref": "Operation"
88530	//   },
88531	//   "scopes": [
88532	//     "https://www.googleapis.com/auth/cloud-platform",
88533	//     "https://www.googleapis.com/auth/compute"
88534	//   ]
88535	// }
88536
88537}
88538
88539// method id "compute.instances.setMetadata":
88540
88541type InstancesSetMetadataCall struct {
88542	s          *Service
88543	project    string
88544	zone       string
88545	instance   string
88546	metadata   *Metadata
88547	urlParams_ gensupport.URLParams
88548	ctx_       context.Context
88549	header_    http.Header
88550}
88551
88552// SetMetadata: Sets metadata for the specified instance to the data
88553// included in the request.
88554//
88555// - instance: Name of the instance scoping this request.
88556// - project: Project ID for this request.
88557// - zone: The name of the zone for this request.
88558// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setMetadata
88559func (r *InstancesService) SetMetadata(project string, zone string, instance string, metadata *Metadata) *InstancesSetMetadataCall {
88560	c := &InstancesSetMetadataCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88561	c.project = project
88562	c.zone = zone
88563	c.instance = instance
88564	c.metadata = metadata
88565	return c
88566}
88567
88568// RequestId sets the optional parameter "requestId": An optional
88569// request ID to identify requests. Specify a unique request ID so that
88570// if you must retry your request, the server will know to ignore the
88571// request if it has already been completed.
88572//
88573// For example, consider a situation where you make an initial request
88574// and the request times out. If you make the request again with the
88575// same request ID, the server can check if original operation with the
88576// same request ID was received, and if so, will ignore the second
88577// request. This prevents clients from accidentally creating duplicate
88578// commitments.
88579//
88580// The request ID must be a valid UUID with the exception that zero UUID
88581// is not supported (00000000-0000-0000-0000-000000000000).
88582func (c *InstancesSetMetadataCall) RequestId(requestId string) *InstancesSetMetadataCall {
88583	c.urlParams_.Set("requestId", requestId)
88584	return c
88585}
88586
88587// Fields allows partial responses to be retrieved. See
88588// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88589// for more information.
88590func (c *InstancesSetMetadataCall) Fields(s ...googleapi.Field) *InstancesSetMetadataCall {
88591	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88592	return c
88593}
88594
88595// Context sets the context to be used in this call's Do method. Any
88596// pending HTTP request will be aborted if the provided context is
88597// canceled.
88598func (c *InstancesSetMetadataCall) Context(ctx context.Context) *InstancesSetMetadataCall {
88599	c.ctx_ = ctx
88600	return c
88601}
88602
88603// Header returns an http.Header that can be modified by the caller to
88604// add HTTP headers to the request.
88605func (c *InstancesSetMetadataCall) Header() http.Header {
88606	if c.header_ == nil {
88607		c.header_ = make(http.Header)
88608	}
88609	return c.header_
88610}
88611
88612func (c *InstancesSetMetadataCall) doRequest(alt string) (*http.Response, error) {
88613	reqHeaders := make(http.Header)
88614	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
88615	for k, v := range c.header_ {
88616		reqHeaders[k] = v
88617	}
88618	reqHeaders.Set("User-Agent", c.s.userAgent())
88619	var body io.Reader = nil
88620	body, err := googleapi.WithoutDataWrapper.JSONReader(c.metadata)
88621	if err != nil {
88622		return nil, err
88623	}
88624	reqHeaders.Set("Content-Type", "application/json")
88625	c.urlParams_.Set("alt", alt)
88626	c.urlParams_.Set("prettyPrint", "false")
88627	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setMetadata")
88628	urls += "?" + c.urlParams_.Encode()
88629	req, err := http.NewRequest("POST", urls, body)
88630	if err != nil {
88631		return nil, err
88632	}
88633	req.Header = reqHeaders
88634	googleapi.Expand(req.URL, map[string]string{
88635		"project":  c.project,
88636		"zone":     c.zone,
88637		"instance": c.instance,
88638	})
88639	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88640}
88641
88642// Do executes the "compute.instances.setMetadata" call.
88643// Exactly one of *Operation or error will be non-nil. Any non-2xx
88644// status code is an error. Response headers are in either
88645// *Operation.ServerResponse.Header or (if a response was returned at
88646// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88647// to check whether the returned error was because
88648// http.StatusNotModified was returned.
88649func (c *InstancesSetMetadataCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
88650	gensupport.SetOptions(c.urlParams_, opts...)
88651	res, err := c.doRequest("json")
88652	if res != nil && res.StatusCode == http.StatusNotModified {
88653		if res.Body != nil {
88654			res.Body.Close()
88655		}
88656		return nil, &googleapi.Error{
88657			Code:   res.StatusCode,
88658			Header: res.Header,
88659		}
88660	}
88661	if err != nil {
88662		return nil, err
88663	}
88664	defer googleapi.CloseBody(res)
88665	if err := googleapi.CheckResponse(res); err != nil {
88666		return nil, err
88667	}
88668	ret := &Operation{
88669		ServerResponse: googleapi.ServerResponse{
88670			Header:         res.Header,
88671			HTTPStatusCode: res.StatusCode,
88672		},
88673	}
88674	target := &ret
88675	if err := gensupport.DecodeResponse(target, res); err != nil {
88676		return nil, err
88677	}
88678	return ret, nil
88679	// {
88680	//   "description": "Sets metadata for the specified instance to the data included in the request.",
88681	//   "httpMethod": "POST",
88682	//   "id": "compute.instances.setMetadata",
88683	//   "parameterOrder": [
88684	//     "project",
88685	//     "zone",
88686	//     "instance"
88687	//   ],
88688	//   "parameters": {
88689	//     "instance": {
88690	//       "description": "Name of the instance scoping this request.",
88691	//       "location": "path",
88692	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88693	//       "required": true,
88694	//       "type": "string"
88695	//     },
88696	//     "project": {
88697	//       "description": "Project ID for this request.",
88698	//       "location": "path",
88699	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88700	//       "required": true,
88701	//       "type": "string"
88702	//     },
88703	//     "requestId": {
88704	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
88705	//       "location": "query",
88706	//       "type": "string"
88707	//     },
88708	//     "zone": {
88709	//       "description": "The name of the zone for this request.",
88710	//       "location": "path",
88711	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88712	//       "required": true,
88713	//       "type": "string"
88714	//     }
88715	//   },
88716	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setMetadata",
88717	//   "request": {
88718	//     "$ref": "Metadata"
88719	//   },
88720	//   "response": {
88721	//     "$ref": "Operation"
88722	//   },
88723	//   "scopes": [
88724	//     "https://www.googleapis.com/auth/cloud-platform",
88725	//     "https://www.googleapis.com/auth/compute"
88726	//   ]
88727	// }
88728
88729}
88730
88731// method id "compute.instances.setMinCpuPlatform":
88732
88733type InstancesSetMinCpuPlatformCall struct {
88734	s                                 *Service
88735	project                           string
88736	zone                              string
88737	instance                          string
88738	instancessetmincpuplatformrequest *InstancesSetMinCpuPlatformRequest
88739	urlParams_                        gensupport.URLParams
88740	ctx_                              context.Context
88741	header_                           http.Header
88742}
88743
88744// SetMinCpuPlatform: Changes the minimum CPU platform that this
88745// instance should use. This method can only be called on a stopped
88746// instance. For more information, read Specifying a Minimum CPU
88747// Platform.
88748//
88749// - instance: Name of the instance scoping this request.
88750// - project: Project ID for this request.
88751// - zone: The name of the zone for this request.
88752func (r *InstancesService) SetMinCpuPlatform(project string, zone string, instance string, instancessetmincpuplatformrequest *InstancesSetMinCpuPlatformRequest) *InstancesSetMinCpuPlatformCall {
88753	c := &InstancesSetMinCpuPlatformCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88754	c.project = project
88755	c.zone = zone
88756	c.instance = instance
88757	c.instancessetmincpuplatformrequest = instancessetmincpuplatformrequest
88758	return c
88759}
88760
88761// RequestId sets the optional parameter "requestId": An optional
88762// request ID to identify requests. Specify a unique request ID so that
88763// if you must retry your request, the server will know to ignore the
88764// request if it has already been completed.
88765//
88766// For example, consider a situation where you make an initial request
88767// and the request times out. If you make the request again with the
88768// same request ID, the server can check if original operation with the
88769// same request ID was received, and if so, will ignore the second
88770// request. This prevents clients from accidentally creating duplicate
88771// commitments.
88772//
88773// The request ID must be a valid UUID with the exception that zero UUID
88774// is not supported (00000000-0000-0000-0000-000000000000).
88775func (c *InstancesSetMinCpuPlatformCall) RequestId(requestId string) *InstancesSetMinCpuPlatformCall {
88776	c.urlParams_.Set("requestId", requestId)
88777	return c
88778}
88779
88780// Fields allows partial responses to be retrieved. See
88781// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88782// for more information.
88783func (c *InstancesSetMinCpuPlatformCall) Fields(s ...googleapi.Field) *InstancesSetMinCpuPlatformCall {
88784	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88785	return c
88786}
88787
88788// Context sets the context to be used in this call's Do method. Any
88789// pending HTTP request will be aborted if the provided context is
88790// canceled.
88791func (c *InstancesSetMinCpuPlatformCall) Context(ctx context.Context) *InstancesSetMinCpuPlatformCall {
88792	c.ctx_ = ctx
88793	return c
88794}
88795
88796// Header returns an http.Header that can be modified by the caller to
88797// add HTTP headers to the request.
88798func (c *InstancesSetMinCpuPlatformCall) Header() http.Header {
88799	if c.header_ == nil {
88800		c.header_ = make(http.Header)
88801	}
88802	return c.header_
88803}
88804
88805func (c *InstancesSetMinCpuPlatformCall) doRequest(alt string) (*http.Response, error) {
88806	reqHeaders := make(http.Header)
88807	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
88808	for k, v := range c.header_ {
88809		reqHeaders[k] = v
88810	}
88811	reqHeaders.Set("User-Agent", c.s.userAgent())
88812	var body io.Reader = nil
88813	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmincpuplatformrequest)
88814	if err != nil {
88815		return nil, err
88816	}
88817	reqHeaders.Set("Content-Type", "application/json")
88818	c.urlParams_.Set("alt", alt)
88819	c.urlParams_.Set("prettyPrint", "false")
88820	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform")
88821	urls += "?" + c.urlParams_.Encode()
88822	req, err := http.NewRequest("POST", urls, body)
88823	if err != nil {
88824		return nil, err
88825	}
88826	req.Header = reqHeaders
88827	googleapi.Expand(req.URL, map[string]string{
88828		"project":  c.project,
88829		"zone":     c.zone,
88830		"instance": c.instance,
88831	})
88832	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88833}
88834
88835// Do executes the "compute.instances.setMinCpuPlatform" call.
88836// Exactly one of *Operation or error will be non-nil. Any non-2xx
88837// status code is an error. Response headers are in either
88838// *Operation.ServerResponse.Header or (if a response was returned at
88839// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88840// to check whether the returned error was because
88841// http.StatusNotModified was returned.
88842func (c *InstancesSetMinCpuPlatformCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
88843	gensupport.SetOptions(c.urlParams_, opts...)
88844	res, err := c.doRequest("json")
88845	if res != nil && res.StatusCode == http.StatusNotModified {
88846		if res.Body != nil {
88847			res.Body.Close()
88848		}
88849		return nil, &googleapi.Error{
88850			Code:   res.StatusCode,
88851			Header: res.Header,
88852		}
88853	}
88854	if err != nil {
88855		return nil, err
88856	}
88857	defer googleapi.CloseBody(res)
88858	if err := googleapi.CheckResponse(res); err != nil {
88859		return nil, err
88860	}
88861	ret := &Operation{
88862		ServerResponse: googleapi.ServerResponse{
88863			Header:         res.Header,
88864			HTTPStatusCode: res.StatusCode,
88865		},
88866	}
88867	target := &ret
88868	if err := gensupport.DecodeResponse(target, res); err != nil {
88869		return nil, err
88870	}
88871	return ret, nil
88872	// {
88873	//   "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.",
88874	//   "httpMethod": "POST",
88875	//   "id": "compute.instances.setMinCpuPlatform",
88876	//   "parameterOrder": [
88877	//     "project",
88878	//     "zone",
88879	//     "instance"
88880	//   ],
88881	//   "parameters": {
88882	//     "instance": {
88883	//       "description": "Name of the instance scoping this request.",
88884	//       "location": "path",
88885	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88886	//       "required": true,
88887	//       "type": "string"
88888	//     },
88889	//     "project": {
88890	//       "description": "Project ID for this request.",
88891	//       "location": "path",
88892	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88893	//       "required": true,
88894	//       "type": "string"
88895	//     },
88896	//     "requestId": {
88897	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
88898	//       "location": "query",
88899	//       "type": "string"
88900	//     },
88901	//     "zone": {
88902	//       "description": "The name of the zone for this request.",
88903	//       "location": "path",
88904	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
88905	//       "required": true,
88906	//       "type": "string"
88907	//     }
88908	//   },
88909	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform",
88910	//   "request": {
88911	//     "$ref": "InstancesSetMinCpuPlatformRequest"
88912	//   },
88913	//   "response": {
88914	//     "$ref": "Operation"
88915	//   },
88916	//   "scopes": [
88917	//     "https://www.googleapis.com/auth/cloud-platform",
88918	//     "https://www.googleapis.com/auth/compute"
88919	//   ]
88920	// }
88921
88922}
88923
88924// method id "compute.instances.setScheduling":
88925
88926type InstancesSetSchedulingCall struct {
88927	s          *Service
88928	project    string
88929	zone       string
88930	instance   string
88931	scheduling *Scheduling
88932	urlParams_ gensupport.URLParams
88933	ctx_       context.Context
88934	header_    http.Header
88935}
88936
88937// SetScheduling: Sets an instance's scheduling options. You can only
88938// call this method on a stopped instance, that is, a VM instance that
88939// is in a `TERMINATED` state. See Instance Life Cycle for more
88940// information on the possible instance states.
88941//
88942// - instance: Instance name for this request.
88943// - project: Project ID for this request.
88944// - zone: The name of the zone for this request.
88945// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setScheduling
88946func (r *InstancesService) SetScheduling(project string, zone string, instance string, scheduling *Scheduling) *InstancesSetSchedulingCall {
88947	c := &InstancesSetSchedulingCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88948	c.project = project
88949	c.zone = zone
88950	c.instance = instance
88951	c.scheduling = scheduling
88952	return c
88953}
88954
88955// RequestId sets the optional parameter "requestId": An optional
88956// request ID to identify requests. Specify a unique request ID so that
88957// if you must retry your request, the server will know to ignore the
88958// request if it has already been completed.
88959//
88960// For example, consider a situation where you make an initial request
88961// and the request times out. If you make the request again with the
88962// same request ID, the server can check if original operation with the
88963// same request ID was received, and if so, will ignore the second
88964// request. This prevents clients from accidentally creating duplicate
88965// commitments.
88966//
88967// The request ID must be a valid UUID with the exception that zero UUID
88968// is not supported (00000000-0000-0000-0000-000000000000).
88969func (c *InstancesSetSchedulingCall) RequestId(requestId string) *InstancesSetSchedulingCall {
88970	c.urlParams_.Set("requestId", requestId)
88971	return c
88972}
88973
88974// Fields allows partial responses to be retrieved. See
88975// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88976// for more information.
88977func (c *InstancesSetSchedulingCall) Fields(s ...googleapi.Field) *InstancesSetSchedulingCall {
88978	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88979	return c
88980}
88981
88982// Context sets the context to be used in this call's Do method. Any
88983// pending HTTP request will be aborted if the provided context is
88984// canceled.
88985func (c *InstancesSetSchedulingCall) Context(ctx context.Context) *InstancesSetSchedulingCall {
88986	c.ctx_ = ctx
88987	return c
88988}
88989
88990// Header returns an http.Header that can be modified by the caller to
88991// add HTTP headers to the request.
88992func (c *InstancesSetSchedulingCall) Header() http.Header {
88993	if c.header_ == nil {
88994		c.header_ = make(http.Header)
88995	}
88996	return c.header_
88997}
88998
88999func (c *InstancesSetSchedulingCall) doRequest(alt string) (*http.Response, error) {
89000	reqHeaders := make(http.Header)
89001	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
89002	for k, v := range c.header_ {
89003		reqHeaders[k] = v
89004	}
89005	reqHeaders.Set("User-Agent", c.s.userAgent())
89006	var body io.Reader = nil
89007	body, err := googleapi.WithoutDataWrapper.JSONReader(c.scheduling)
89008	if err != nil {
89009		return nil, err
89010	}
89011	reqHeaders.Set("Content-Type", "application/json")
89012	c.urlParams_.Set("alt", alt)
89013	c.urlParams_.Set("prettyPrint", "false")
89014	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setScheduling")
89015	urls += "?" + c.urlParams_.Encode()
89016	req, err := http.NewRequest("POST", urls, body)
89017	if err != nil {
89018		return nil, err
89019	}
89020	req.Header = reqHeaders
89021	googleapi.Expand(req.URL, map[string]string{
89022		"project":  c.project,
89023		"zone":     c.zone,
89024		"instance": c.instance,
89025	})
89026	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89027}
89028
89029// Do executes the "compute.instances.setScheduling" call.
89030// Exactly one of *Operation or error will be non-nil. Any non-2xx
89031// status code is an error. Response headers are in either
89032// *Operation.ServerResponse.Header or (if a response was returned at
89033// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89034// to check whether the returned error was because
89035// http.StatusNotModified was returned.
89036func (c *InstancesSetSchedulingCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
89037	gensupport.SetOptions(c.urlParams_, opts...)
89038	res, err := c.doRequest("json")
89039	if res != nil && res.StatusCode == http.StatusNotModified {
89040		if res.Body != nil {
89041			res.Body.Close()
89042		}
89043		return nil, &googleapi.Error{
89044			Code:   res.StatusCode,
89045			Header: res.Header,
89046		}
89047	}
89048	if err != nil {
89049		return nil, err
89050	}
89051	defer googleapi.CloseBody(res)
89052	if err := googleapi.CheckResponse(res); err != nil {
89053		return nil, err
89054	}
89055	ret := &Operation{
89056		ServerResponse: googleapi.ServerResponse{
89057			Header:         res.Header,
89058			HTTPStatusCode: res.StatusCode,
89059		},
89060	}
89061	target := &ret
89062	if err := gensupport.DecodeResponse(target, res); err != nil {
89063		return nil, err
89064	}
89065	return ret, nil
89066	// {
89067	//   "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.",
89068	//   "httpMethod": "POST",
89069	//   "id": "compute.instances.setScheduling",
89070	//   "parameterOrder": [
89071	//     "project",
89072	//     "zone",
89073	//     "instance"
89074	//   ],
89075	//   "parameters": {
89076	//     "instance": {
89077	//       "description": "Instance name for this request.",
89078	//       "location": "path",
89079	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89080	//       "required": true,
89081	//       "type": "string"
89082	//     },
89083	//     "project": {
89084	//       "description": "Project ID for this request.",
89085	//       "location": "path",
89086	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89087	//       "required": true,
89088	//       "type": "string"
89089	//     },
89090	//     "requestId": {
89091	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
89092	//       "location": "query",
89093	//       "type": "string"
89094	//     },
89095	//     "zone": {
89096	//       "description": "The name of the zone for this request.",
89097	//       "location": "path",
89098	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89099	//       "required": true,
89100	//       "type": "string"
89101	//     }
89102	//   },
89103	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setScheduling",
89104	//   "request": {
89105	//     "$ref": "Scheduling"
89106	//   },
89107	//   "response": {
89108	//     "$ref": "Operation"
89109	//   },
89110	//   "scopes": [
89111	//     "https://www.googleapis.com/auth/cloud-platform",
89112	//     "https://www.googleapis.com/auth/compute"
89113	//   ]
89114	// }
89115
89116}
89117
89118// method id "compute.instances.setServiceAccount":
89119
89120type InstancesSetServiceAccountCall struct {
89121	s                                 *Service
89122	project                           string
89123	zone                              string
89124	instance                          string
89125	instancessetserviceaccountrequest *InstancesSetServiceAccountRequest
89126	urlParams_                        gensupport.URLParams
89127	ctx_                              context.Context
89128	header_                           http.Header
89129}
89130
89131// SetServiceAccount: Sets the service account on the instance. For more
89132// information, read Changing the service account and access scopes for
89133// an instance.
89134//
89135// - instance: Name of the instance resource to start.
89136// - project: Project ID for this request.
89137// - zone: The name of the zone for this request.
89138func (r *InstancesService) SetServiceAccount(project string, zone string, instance string, instancessetserviceaccountrequest *InstancesSetServiceAccountRequest) *InstancesSetServiceAccountCall {
89139	c := &InstancesSetServiceAccountCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89140	c.project = project
89141	c.zone = zone
89142	c.instance = instance
89143	c.instancessetserviceaccountrequest = instancessetserviceaccountrequest
89144	return c
89145}
89146
89147// RequestId sets the optional parameter "requestId": An optional
89148// request ID to identify requests. Specify a unique request ID so that
89149// if you must retry your request, the server will know to ignore the
89150// request if it has already been completed.
89151//
89152// For example, consider a situation where you make an initial request
89153// and the request times out. If you make the request again with the
89154// same request ID, the server can check if original operation with the
89155// same request ID was received, and if so, will ignore the second
89156// request. This prevents clients from accidentally creating duplicate
89157// commitments.
89158//
89159// The request ID must be a valid UUID with the exception that zero UUID
89160// is not supported (00000000-0000-0000-0000-000000000000).
89161func (c *InstancesSetServiceAccountCall) RequestId(requestId string) *InstancesSetServiceAccountCall {
89162	c.urlParams_.Set("requestId", requestId)
89163	return c
89164}
89165
89166// Fields allows partial responses to be retrieved. See
89167// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89168// for more information.
89169func (c *InstancesSetServiceAccountCall) Fields(s ...googleapi.Field) *InstancesSetServiceAccountCall {
89170	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89171	return c
89172}
89173
89174// Context sets the context to be used in this call's Do method. Any
89175// pending HTTP request will be aborted if the provided context is
89176// canceled.
89177func (c *InstancesSetServiceAccountCall) Context(ctx context.Context) *InstancesSetServiceAccountCall {
89178	c.ctx_ = ctx
89179	return c
89180}
89181
89182// Header returns an http.Header that can be modified by the caller to
89183// add HTTP headers to the request.
89184func (c *InstancesSetServiceAccountCall) Header() http.Header {
89185	if c.header_ == nil {
89186		c.header_ = make(http.Header)
89187	}
89188	return c.header_
89189}
89190
89191func (c *InstancesSetServiceAccountCall) doRequest(alt string) (*http.Response, error) {
89192	reqHeaders := make(http.Header)
89193	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
89194	for k, v := range c.header_ {
89195		reqHeaders[k] = v
89196	}
89197	reqHeaders.Set("User-Agent", c.s.userAgent())
89198	var body io.Reader = nil
89199	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetserviceaccountrequest)
89200	if err != nil {
89201		return nil, err
89202	}
89203	reqHeaders.Set("Content-Type", "application/json")
89204	c.urlParams_.Set("alt", alt)
89205	c.urlParams_.Set("prettyPrint", "false")
89206	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setServiceAccount")
89207	urls += "?" + c.urlParams_.Encode()
89208	req, err := http.NewRequest("POST", urls, body)
89209	if err != nil {
89210		return nil, err
89211	}
89212	req.Header = reqHeaders
89213	googleapi.Expand(req.URL, map[string]string{
89214		"project":  c.project,
89215		"zone":     c.zone,
89216		"instance": c.instance,
89217	})
89218	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89219}
89220
89221// Do executes the "compute.instances.setServiceAccount" call.
89222// Exactly one of *Operation or error will be non-nil. Any non-2xx
89223// status code is an error. Response headers are in either
89224// *Operation.ServerResponse.Header or (if a response was returned at
89225// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89226// to check whether the returned error was because
89227// http.StatusNotModified was returned.
89228func (c *InstancesSetServiceAccountCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
89229	gensupport.SetOptions(c.urlParams_, opts...)
89230	res, err := c.doRequest("json")
89231	if res != nil && res.StatusCode == http.StatusNotModified {
89232		if res.Body != nil {
89233			res.Body.Close()
89234		}
89235		return nil, &googleapi.Error{
89236			Code:   res.StatusCode,
89237			Header: res.Header,
89238		}
89239	}
89240	if err != nil {
89241		return nil, err
89242	}
89243	defer googleapi.CloseBody(res)
89244	if err := googleapi.CheckResponse(res); err != nil {
89245		return nil, err
89246	}
89247	ret := &Operation{
89248		ServerResponse: googleapi.ServerResponse{
89249			Header:         res.Header,
89250			HTTPStatusCode: res.StatusCode,
89251		},
89252	}
89253	target := &ret
89254	if err := gensupport.DecodeResponse(target, res); err != nil {
89255		return nil, err
89256	}
89257	return ret, nil
89258	// {
89259	//   "description": "Sets the service account on the instance. For more information, read Changing the service account and access scopes for an instance.",
89260	//   "httpMethod": "POST",
89261	//   "id": "compute.instances.setServiceAccount",
89262	//   "parameterOrder": [
89263	//     "project",
89264	//     "zone",
89265	//     "instance"
89266	//   ],
89267	//   "parameters": {
89268	//     "instance": {
89269	//       "description": "Name of the instance resource to start.",
89270	//       "location": "path",
89271	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89272	//       "required": true,
89273	//       "type": "string"
89274	//     },
89275	//     "project": {
89276	//       "description": "Project ID for this request.",
89277	//       "location": "path",
89278	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89279	//       "required": true,
89280	//       "type": "string"
89281	//     },
89282	//     "requestId": {
89283	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
89284	//       "location": "query",
89285	//       "type": "string"
89286	//     },
89287	//     "zone": {
89288	//       "description": "The name of the zone for this request.",
89289	//       "location": "path",
89290	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89291	//       "required": true,
89292	//       "type": "string"
89293	//     }
89294	//   },
89295	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setServiceAccount",
89296	//   "request": {
89297	//     "$ref": "InstancesSetServiceAccountRequest"
89298	//   },
89299	//   "response": {
89300	//     "$ref": "Operation"
89301	//   },
89302	//   "scopes": [
89303	//     "https://www.googleapis.com/auth/cloud-platform",
89304	//     "https://www.googleapis.com/auth/compute"
89305	//   ]
89306	// }
89307
89308}
89309
89310// method id "compute.instances.setShieldedInstanceIntegrityPolicy":
89311
89312type InstancesSetShieldedInstanceIntegrityPolicyCall struct {
89313	s                               *Service
89314	project                         string
89315	zone                            string
89316	instance                        string
89317	shieldedinstanceintegritypolicy *ShieldedInstanceIntegrityPolicy
89318	urlParams_                      gensupport.URLParams
89319	ctx_                            context.Context
89320	header_                         http.Header
89321}
89322
89323// SetShieldedInstanceIntegrityPolicy: Sets the Shielded Instance
89324// integrity policy for an instance. You can only use this method on a
89325// running instance. This method supports PATCH semantics and uses the
89326// JSON merge patch format and processing rules.
89327//
89328// - instance: Name or id of the instance scoping this request.
89329// - project: Project ID for this request.
89330// - zone: The name of the zone for this request.
89331func (r *InstancesService) SetShieldedInstanceIntegrityPolicy(project string, zone string, instance string, shieldedinstanceintegritypolicy *ShieldedInstanceIntegrityPolicy) *InstancesSetShieldedInstanceIntegrityPolicyCall {
89332	c := &InstancesSetShieldedInstanceIntegrityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89333	c.project = project
89334	c.zone = zone
89335	c.instance = instance
89336	c.shieldedinstanceintegritypolicy = shieldedinstanceintegritypolicy
89337	return c
89338}
89339
89340// RequestId sets the optional parameter "requestId": An optional
89341// request ID to identify requests. Specify a unique request ID so that
89342// if you must retry your request, the server will know to ignore the
89343// request if it has already been completed.
89344//
89345// For example, consider a situation where you make an initial request
89346// and the request times out. If you make the request again with the
89347// same request ID, the server can check if original operation with the
89348// same request ID was received, and if so, will ignore the second
89349// request. This prevents clients from accidentally creating duplicate
89350// commitments.
89351//
89352// The request ID must be a valid UUID with the exception that zero UUID
89353// is not supported (00000000-0000-0000-0000-000000000000).
89354func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) RequestId(requestId string) *InstancesSetShieldedInstanceIntegrityPolicyCall {
89355	c.urlParams_.Set("requestId", requestId)
89356	return c
89357}
89358
89359// Fields allows partial responses to be retrieved. See
89360// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89361// for more information.
89362func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Fields(s ...googleapi.Field) *InstancesSetShieldedInstanceIntegrityPolicyCall {
89363	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89364	return c
89365}
89366
89367// Context sets the context to be used in this call's Do method. Any
89368// pending HTTP request will be aborted if the provided context is
89369// canceled.
89370func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Context(ctx context.Context) *InstancesSetShieldedInstanceIntegrityPolicyCall {
89371	c.ctx_ = ctx
89372	return c
89373}
89374
89375// Header returns an http.Header that can be modified by the caller to
89376// add HTTP headers to the request.
89377func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Header() http.Header {
89378	if c.header_ == nil {
89379		c.header_ = make(http.Header)
89380	}
89381	return c.header_
89382}
89383
89384func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) doRequest(alt string) (*http.Response, error) {
89385	reqHeaders := make(http.Header)
89386	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
89387	for k, v := range c.header_ {
89388		reqHeaders[k] = v
89389	}
89390	reqHeaders.Set("User-Agent", c.s.userAgent())
89391	var body io.Reader = nil
89392	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedinstanceintegritypolicy)
89393	if err != nil {
89394		return nil, err
89395	}
89396	reqHeaders.Set("Content-Type", "application/json")
89397	c.urlParams_.Set("alt", alt)
89398	c.urlParams_.Set("prettyPrint", "false")
89399	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy")
89400	urls += "?" + c.urlParams_.Encode()
89401	req, err := http.NewRequest("PATCH", urls, body)
89402	if err != nil {
89403		return nil, err
89404	}
89405	req.Header = reqHeaders
89406	googleapi.Expand(req.URL, map[string]string{
89407		"project":  c.project,
89408		"zone":     c.zone,
89409		"instance": c.instance,
89410	})
89411	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89412}
89413
89414// Do executes the "compute.instances.setShieldedInstanceIntegrityPolicy" call.
89415// Exactly one of *Operation or error will be non-nil. Any non-2xx
89416// status code is an error. Response headers are in either
89417// *Operation.ServerResponse.Header or (if a response was returned at
89418// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89419// to check whether the returned error was because
89420// http.StatusNotModified was returned.
89421func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
89422	gensupport.SetOptions(c.urlParams_, opts...)
89423	res, err := c.doRequest("json")
89424	if res != nil && res.StatusCode == http.StatusNotModified {
89425		if res.Body != nil {
89426			res.Body.Close()
89427		}
89428		return nil, &googleapi.Error{
89429			Code:   res.StatusCode,
89430			Header: res.Header,
89431		}
89432	}
89433	if err != nil {
89434		return nil, err
89435	}
89436	defer googleapi.CloseBody(res)
89437	if err := googleapi.CheckResponse(res); err != nil {
89438		return nil, err
89439	}
89440	ret := &Operation{
89441		ServerResponse: googleapi.ServerResponse{
89442			Header:         res.Header,
89443			HTTPStatusCode: res.StatusCode,
89444		},
89445	}
89446	target := &ret
89447	if err := gensupport.DecodeResponse(target, res); err != nil {
89448		return nil, err
89449	}
89450	return ret, nil
89451	// {
89452	//   "description": "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.",
89453	//   "httpMethod": "PATCH",
89454	//   "id": "compute.instances.setShieldedInstanceIntegrityPolicy",
89455	//   "parameterOrder": [
89456	//     "project",
89457	//     "zone",
89458	//     "instance"
89459	//   ],
89460	//   "parameters": {
89461	//     "instance": {
89462	//       "description": "Name or id of the instance scoping this request.",
89463	//       "location": "path",
89464	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89465	//       "required": true,
89466	//       "type": "string"
89467	//     },
89468	//     "project": {
89469	//       "description": "Project ID for this request.",
89470	//       "location": "path",
89471	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89472	//       "required": true,
89473	//       "type": "string"
89474	//     },
89475	//     "requestId": {
89476	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
89477	//       "location": "query",
89478	//       "type": "string"
89479	//     },
89480	//     "zone": {
89481	//       "description": "The name of the zone for this request.",
89482	//       "location": "path",
89483	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89484	//       "required": true,
89485	//       "type": "string"
89486	//     }
89487	//   },
89488	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy",
89489	//   "request": {
89490	//     "$ref": "ShieldedInstanceIntegrityPolicy"
89491	//   },
89492	//   "response": {
89493	//     "$ref": "Operation"
89494	//   },
89495	//   "scopes": [
89496	//     "https://www.googleapis.com/auth/cloud-platform",
89497	//     "https://www.googleapis.com/auth/compute"
89498	//   ]
89499	// }
89500
89501}
89502
89503// method id "compute.instances.setTags":
89504
89505type InstancesSetTagsCall struct {
89506	s          *Service
89507	project    string
89508	zone       string
89509	instance   string
89510	tags       *Tags
89511	urlParams_ gensupport.URLParams
89512	ctx_       context.Context
89513	header_    http.Header
89514}
89515
89516// SetTags: Sets network tags for the specified instance to the data
89517// included in the request.
89518//
89519// - instance: Name of the instance scoping this request.
89520// - project: Project ID for this request.
89521// - zone: The name of the zone for this request.
89522// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setTags
89523func (r *InstancesService) SetTags(project string, zone string, instance string, tags *Tags) *InstancesSetTagsCall {
89524	c := &InstancesSetTagsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89525	c.project = project
89526	c.zone = zone
89527	c.instance = instance
89528	c.tags = tags
89529	return c
89530}
89531
89532// RequestId sets the optional parameter "requestId": An optional
89533// request ID to identify requests. Specify a unique request ID so that
89534// if you must retry your request, the server will know to ignore the
89535// request if it has already been completed.
89536//
89537// For example, consider a situation where you make an initial request
89538// and the request times out. If you make the request again with the
89539// same request ID, the server can check if original operation with the
89540// same request ID was received, and if so, will ignore the second
89541// request. This prevents clients from accidentally creating duplicate
89542// commitments.
89543//
89544// The request ID must be a valid UUID with the exception that zero UUID
89545// is not supported (00000000-0000-0000-0000-000000000000).
89546func (c *InstancesSetTagsCall) RequestId(requestId string) *InstancesSetTagsCall {
89547	c.urlParams_.Set("requestId", requestId)
89548	return c
89549}
89550
89551// Fields allows partial responses to be retrieved. See
89552// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89553// for more information.
89554func (c *InstancesSetTagsCall) Fields(s ...googleapi.Field) *InstancesSetTagsCall {
89555	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89556	return c
89557}
89558
89559// Context sets the context to be used in this call's Do method. Any
89560// pending HTTP request will be aborted if the provided context is
89561// canceled.
89562func (c *InstancesSetTagsCall) Context(ctx context.Context) *InstancesSetTagsCall {
89563	c.ctx_ = ctx
89564	return c
89565}
89566
89567// Header returns an http.Header that can be modified by the caller to
89568// add HTTP headers to the request.
89569func (c *InstancesSetTagsCall) Header() http.Header {
89570	if c.header_ == nil {
89571		c.header_ = make(http.Header)
89572	}
89573	return c.header_
89574}
89575
89576func (c *InstancesSetTagsCall) doRequest(alt string) (*http.Response, error) {
89577	reqHeaders := make(http.Header)
89578	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
89579	for k, v := range c.header_ {
89580		reqHeaders[k] = v
89581	}
89582	reqHeaders.Set("User-Agent", c.s.userAgent())
89583	var body io.Reader = nil
89584	body, err := googleapi.WithoutDataWrapper.JSONReader(c.tags)
89585	if err != nil {
89586		return nil, err
89587	}
89588	reqHeaders.Set("Content-Type", "application/json")
89589	c.urlParams_.Set("alt", alt)
89590	c.urlParams_.Set("prettyPrint", "false")
89591	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/setTags")
89592	urls += "?" + c.urlParams_.Encode()
89593	req, err := http.NewRequest("POST", urls, body)
89594	if err != nil {
89595		return nil, err
89596	}
89597	req.Header = reqHeaders
89598	googleapi.Expand(req.URL, map[string]string{
89599		"project":  c.project,
89600		"zone":     c.zone,
89601		"instance": c.instance,
89602	})
89603	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89604}
89605
89606// Do executes the "compute.instances.setTags" call.
89607// Exactly one of *Operation or error will be non-nil. Any non-2xx
89608// status code is an error. Response headers are in either
89609// *Operation.ServerResponse.Header or (if a response was returned at
89610// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89611// to check whether the returned error was because
89612// http.StatusNotModified was returned.
89613func (c *InstancesSetTagsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
89614	gensupport.SetOptions(c.urlParams_, opts...)
89615	res, err := c.doRequest("json")
89616	if res != nil && res.StatusCode == http.StatusNotModified {
89617		if res.Body != nil {
89618			res.Body.Close()
89619		}
89620		return nil, &googleapi.Error{
89621			Code:   res.StatusCode,
89622			Header: res.Header,
89623		}
89624	}
89625	if err != nil {
89626		return nil, err
89627	}
89628	defer googleapi.CloseBody(res)
89629	if err := googleapi.CheckResponse(res); err != nil {
89630		return nil, err
89631	}
89632	ret := &Operation{
89633		ServerResponse: googleapi.ServerResponse{
89634			Header:         res.Header,
89635			HTTPStatusCode: res.StatusCode,
89636		},
89637	}
89638	target := &ret
89639	if err := gensupport.DecodeResponse(target, res); err != nil {
89640		return nil, err
89641	}
89642	return ret, nil
89643	// {
89644	//   "description": "Sets network tags for the specified instance to the data included in the request.",
89645	//   "httpMethod": "POST",
89646	//   "id": "compute.instances.setTags",
89647	//   "parameterOrder": [
89648	//     "project",
89649	//     "zone",
89650	//     "instance"
89651	//   ],
89652	//   "parameters": {
89653	//     "instance": {
89654	//       "description": "Name of the instance scoping this request.",
89655	//       "location": "path",
89656	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89657	//       "required": true,
89658	//       "type": "string"
89659	//     },
89660	//     "project": {
89661	//       "description": "Project ID for this request.",
89662	//       "location": "path",
89663	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89664	//       "required": true,
89665	//       "type": "string"
89666	//     },
89667	//     "requestId": {
89668	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
89669	//       "location": "query",
89670	//       "type": "string"
89671	//     },
89672	//     "zone": {
89673	//       "description": "The name of the zone for this request.",
89674	//       "location": "path",
89675	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89676	//       "required": true,
89677	//       "type": "string"
89678	//     }
89679	//   },
89680	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/setTags",
89681	//   "request": {
89682	//     "$ref": "Tags"
89683	//   },
89684	//   "response": {
89685	//     "$ref": "Operation"
89686	//   },
89687	//   "scopes": [
89688	//     "https://www.googleapis.com/auth/cloud-platform",
89689	//     "https://www.googleapis.com/auth/compute"
89690	//   ]
89691	// }
89692
89693}
89694
89695// method id "compute.instances.simulateMaintenanceEvent":
89696
89697type InstancesSimulateMaintenanceEventCall struct {
89698	s          *Service
89699	project    string
89700	zone       string
89701	instance   string
89702	urlParams_ gensupport.URLParams
89703	ctx_       context.Context
89704	header_    http.Header
89705}
89706
89707// SimulateMaintenanceEvent: Simulates a maintenance event on the
89708// instance.
89709//
89710// - instance: Name of the instance scoping this request.
89711// - project: Project ID for this request.
89712// - zone: The name of the zone for this request.
89713func (r *InstancesService) SimulateMaintenanceEvent(project string, zone string, instance string) *InstancesSimulateMaintenanceEventCall {
89714	c := &InstancesSimulateMaintenanceEventCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89715	c.project = project
89716	c.zone = zone
89717	c.instance = instance
89718	return c
89719}
89720
89721// Fields allows partial responses to be retrieved. See
89722// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89723// for more information.
89724func (c *InstancesSimulateMaintenanceEventCall) Fields(s ...googleapi.Field) *InstancesSimulateMaintenanceEventCall {
89725	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89726	return c
89727}
89728
89729// Context sets the context to be used in this call's Do method. Any
89730// pending HTTP request will be aborted if the provided context is
89731// canceled.
89732func (c *InstancesSimulateMaintenanceEventCall) Context(ctx context.Context) *InstancesSimulateMaintenanceEventCall {
89733	c.ctx_ = ctx
89734	return c
89735}
89736
89737// Header returns an http.Header that can be modified by the caller to
89738// add HTTP headers to the request.
89739func (c *InstancesSimulateMaintenanceEventCall) Header() http.Header {
89740	if c.header_ == nil {
89741		c.header_ = make(http.Header)
89742	}
89743	return c.header_
89744}
89745
89746func (c *InstancesSimulateMaintenanceEventCall) doRequest(alt string) (*http.Response, error) {
89747	reqHeaders := make(http.Header)
89748	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
89749	for k, v := range c.header_ {
89750		reqHeaders[k] = v
89751	}
89752	reqHeaders.Set("User-Agent", c.s.userAgent())
89753	var body io.Reader = nil
89754	c.urlParams_.Set("alt", alt)
89755	c.urlParams_.Set("prettyPrint", "false")
89756	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent")
89757	urls += "?" + c.urlParams_.Encode()
89758	req, err := http.NewRequest("POST", urls, body)
89759	if err != nil {
89760		return nil, err
89761	}
89762	req.Header = reqHeaders
89763	googleapi.Expand(req.URL, map[string]string{
89764		"project":  c.project,
89765		"zone":     c.zone,
89766		"instance": c.instance,
89767	})
89768	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89769}
89770
89771// Do executes the "compute.instances.simulateMaintenanceEvent" call.
89772// Exactly one of *Operation or error will be non-nil. Any non-2xx
89773// status code is an error. Response headers are in either
89774// *Operation.ServerResponse.Header or (if a response was returned at
89775// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89776// to check whether the returned error was because
89777// http.StatusNotModified was returned.
89778func (c *InstancesSimulateMaintenanceEventCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
89779	gensupport.SetOptions(c.urlParams_, opts...)
89780	res, err := c.doRequest("json")
89781	if res != nil && res.StatusCode == http.StatusNotModified {
89782		if res.Body != nil {
89783			res.Body.Close()
89784		}
89785		return nil, &googleapi.Error{
89786			Code:   res.StatusCode,
89787			Header: res.Header,
89788		}
89789	}
89790	if err != nil {
89791		return nil, err
89792	}
89793	defer googleapi.CloseBody(res)
89794	if err := googleapi.CheckResponse(res); err != nil {
89795		return nil, err
89796	}
89797	ret := &Operation{
89798		ServerResponse: googleapi.ServerResponse{
89799			Header:         res.Header,
89800			HTTPStatusCode: res.StatusCode,
89801		},
89802	}
89803	target := &ret
89804	if err := gensupport.DecodeResponse(target, res); err != nil {
89805		return nil, err
89806	}
89807	return ret, nil
89808	// {
89809	//   "description": "Simulates a maintenance event on the instance.",
89810	//   "httpMethod": "POST",
89811	//   "id": "compute.instances.simulateMaintenanceEvent",
89812	//   "parameterOrder": [
89813	//     "project",
89814	//     "zone",
89815	//     "instance"
89816	//   ],
89817	//   "parameters": {
89818	//     "instance": {
89819	//       "description": "Name of the instance scoping this request.",
89820	//       "location": "path",
89821	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89822	//       "required": true,
89823	//       "type": "string"
89824	//     },
89825	//     "project": {
89826	//       "description": "Project ID for this request.",
89827	//       "location": "path",
89828	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89829	//       "required": true,
89830	//       "type": "string"
89831	//     },
89832	//     "zone": {
89833	//       "description": "The name of the zone for this request.",
89834	//       "location": "path",
89835	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
89836	//       "required": true,
89837	//       "type": "string"
89838	//     }
89839	//   },
89840	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent",
89841	//   "response": {
89842	//     "$ref": "Operation"
89843	//   },
89844	//   "scopes": [
89845	//     "https://www.googleapis.com/auth/cloud-platform",
89846	//     "https://www.googleapis.com/auth/compute"
89847	//   ]
89848	// }
89849
89850}
89851
89852// method id "compute.instances.start":
89853
89854type InstancesStartCall struct {
89855	s          *Service
89856	project    string
89857	zone       string
89858	instance   string
89859	urlParams_ gensupport.URLParams
89860	ctx_       context.Context
89861	header_    http.Header
89862}
89863
89864// Start: Starts an instance that was stopped using the instances().stop
89865// method. For more information, see Restart an instance.
89866//
89867// - instance: Name of the instance resource to start.
89868// - project: Project ID for this request.
89869// - zone: The name of the zone for this request.
89870// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/start
89871func (r *InstancesService) Start(project string, zone string, instance string) *InstancesStartCall {
89872	c := &InstancesStartCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89873	c.project = project
89874	c.zone = zone
89875	c.instance = instance
89876	return c
89877}
89878
89879// RequestId sets the optional parameter "requestId": An optional
89880// request ID to identify requests. Specify a unique request ID so that
89881// if you must retry your request, the server will know to ignore the
89882// request if it has already been completed.
89883//
89884// For example, consider a situation where you make an initial request
89885// and the request times out. If you make the request again with the
89886// same request ID, the server can check if original operation with the
89887// same request ID was received, and if so, will ignore the second
89888// request. This prevents clients from accidentally creating duplicate
89889// commitments.
89890//
89891// The request ID must be a valid UUID with the exception that zero UUID
89892// is not supported (00000000-0000-0000-0000-000000000000).
89893func (c *InstancesStartCall) RequestId(requestId string) *InstancesStartCall {
89894	c.urlParams_.Set("requestId", requestId)
89895	return c
89896}
89897
89898// Fields allows partial responses to be retrieved. See
89899// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89900// for more information.
89901func (c *InstancesStartCall) Fields(s ...googleapi.Field) *InstancesStartCall {
89902	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89903	return c
89904}
89905
89906// Context sets the context to be used in this call's Do method. Any
89907// pending HTTP request will be aborted if the provided context is
89908// canceled.
89909func (c *InstancesStartCall) Context(ctx context.Context) *InstancesStartCall {
89910	c.ctx_ = ctx
89911	return c
89912}
89913
89914// Header returns an http.Header that can be modified by the caller to
89915// add HTTP headers to the request.
89916func (c *InstancesStartCall) Header() http.Header {
89917	if c.header_ == nil {
89918		c.header_ = make(http.Header)
89919	}
89920	return c.header_
89921}
89922
89923func (c *InstancesStartCall) doRequest(alt string) (*http.Response, error) {
89924	reqHeaders := make(http.Header)
89925	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
89926	for k, v := range c.header_ {
89927		reqHeaders[k] = v
89928	}
89929	reqHeaders.Set("User-Agent", c.s.userAgent())
89930	var body io.Reader = nil
89931	c.urlParams_.Set("alt", alt)
89932	c.urlParams_.Set("prettyPrint", "false")
89933	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/start")
89934	urls += "?" + c.urlParams_.Encode()
89935	req, err := http.NewRequest("POST", urls, body)
89936	if err != nil {
89937		return nil, err
89938	}
89939	req.Header = reqHeaders
89940	googleapi.Expand(req.URL, map[string]string{
89941		"project":  c.project,
89942		"zone":     c.zone,
89943		"instance": c.instance,
89944	})
89945	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89946}
89947
89948// Do executes the "compute.instances.start" call.
89949// Exactly one of *Operation or error will be non-nil. Any non-2xx
89950// status code is an error. Response headers are in either
89951// *Operation.ServerResponse.Header or (if a response was returned at
89952// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89953// to check whether the returned error was because
89954// http.StatusNotModified was returned.
89955func (c *InstancesStartCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
89956	gensupport.SetOptions(c.urlParams_, opts...)
89957	res, err := c.doRequest("json")
89958	if res != nil && res.StatusCode == http.StatusNotModified {
89959		if res.Body != nil {
89960			res.Body.Close()
89961		}
89962		return nil, &googleapi.Error{
89963			Code:   res.StatusCode,
89964			Header: res.Header,
89965		}
89966	}
89967	if err != nil {
89968		return nil, err
89969	}
89970	defer googleapi.CloseBody(res)
89971	if err := googleapi.CheckResponse(res); err != nil {
89972		return nil, err
89973	}
89974	ret := &Operation{
89975		ServerResponse: googleapi.ServerResponse{
89976			Header:         res.Header,
89977			HTTPStatusCode: res.StatusCode,
89978		},
89979	}
89980	target := &ret
89981	if err := gensupport.DecodeResponse(target, res); err != nil {
89982		return nil, err
89983	}
89984	return ret, nil
89985	// {
89986	//   "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.",
89987	//   "httpMethod": "POST",
89988	//   "id": "compute.instances.start",
89989	//   "parameterOrder": [
89990	//     "project",
89991	//     "zone",
89992	//     "instance"
89993	//   ],
89994	//   "parameters": {
89995	//     "instance": {
89996	//       "description": "Name of the instance resource to start.",
89997	//       "location": "path",
89998	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89999	//       "required": true,
90000	//       "type": "string"
90001	//     },
90002	//     "project": {
90003	//       "description": "Project ID for this request.",
90004	//       "location": "path",
90005	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90006	//       "required": true,
90007	//       "type": "string"
90008	//     },
90009	//     "requestId": {
90010	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
90011	//       "location": "query",
90012	//       "type": "string"
90013	//     },
90014	//     "zone": {
90015	//       "description": "The name of the zone for this request.",
90016	//       "location": "path",
90017	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90018	//       "required": true,
90019	//       "type": "string"
90020	//     }
90021	//   },
90022	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/start",
90023	//   "response": {
90024	//     "$ref": "Operation"
90025	//   },
90026	//   "scopes": [
90027	//     "https://www.googleapis.com/auth/cloud-platform",
90028	//     "https://www.googleapis.com/auth/compute"
90029	//   ]
90030	// }
90031
90032}
90033
90034// method id "compute.instances.startWithEncryptionKey":
90035
90036type InstancesStartWithEncryptionKeyCall struct {
90037	s                                      *Service
90038	project                                string
90039	zone                                   string
90040	instance                               string
90041	instancesstartwithencryptionkeyrequest *InstancesStartWithEncryptionKeyRequest
90042	urlParams_                             gensupport.URLParams
90043	ctx_                                   context.Context
90044	header_                                http.Header
90045}
90046
90047// StartWithEncryptionKey: Starts an instance that was stopped using the
90048// instances().stop method. For more information, see Restart an
90049// instance.
90050//
90051// - instance: Name of the instance resource to start.
90052// - project: Project ID for this request.
90053// - zone: The name of the zone for this request.
90054func (r *InstancesService) StartWithEncryptionKey(project string, zone string, instance string, instancesstartwithencryptionkeyrequest *InstancesStartWithEncryptionKeyRequest) *InstancesStartWithEncryptionKeyCall {
90055	c := &InstancesStartWithEncryptionKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90056	c.project = project
90057	c.zone = zone
90058	c.instance = instance
90059	c.instancesstartwithencryptionkeyrequest = instancesstartwithencryptionkeyrequest
90060	return c
90061}
90062
90063// RequestId sets the optional parameter "requestId": An optional
90064// request ID to identify requests. Specify a unique request ID so that
90065// if you must retry your request, the server will know to ignore the
90066// request if it has already been completed.
90067//
90068// For example, consider a situation where you make an initial request
90069// and the request times out. If you make the request again with the
90070// same request ID, the server can check if original operation with the
90071// same request ID was received, and if so, will ignore the second
90072// request. This prevents clients from accidentally creating duplicate
90073// commitments.
90074//
90075// The request ID must be a valid UUID with the exception that zero UUID
90076// is not supported (00000000-0000-0000-0000-000000000000).
90077func (c *InstancesStartWithEncryptionKeyCall) RequestId(requestId string) *InstancesStartWithEncryptionKeyCall {
90078	c.urlParams_.Set("requestId", requestId)
90079	return c
90080}
90081
90082// Fields allows partial responses to be retrieved. See
90083// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90084// for more information.
90085func (c *InstancesStartWithEncryptionKeyCall) Fields(s ...googleapi.Field) *InstancesStartWithEncryptionKeyCall {
90086	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90087	return c
90088}
90089
90090// Context sets the context to be used in this call's Do method. Any
90091// pending HTTP request will be aborted if the provided context is
90092// canceled.
90093func (c *InstancesStartWithEncryptionKeyCall) Context(ctx context.Context) *InstancesStartWithEncryptionKeyCall {
90094	c.ctx_ = ctx
90095	return c
90096}
90097
90098// Header returns an http.Header that can be modified by the caller to
90099// add HTTP headers to the request.
90100func (c *InstancesStartWithEncryptionKeyCall) Header() http.Header {
90101	if c.header_ == nil {
90102		c.header_ = make(http.Header)
90103	}
90104	return c.header_
90105}
90106
90107func (c *InstancesStartWithEncryptionKeyCall) doRequest(alt string) (*http.Response, error) {
90108	reqHeaders := make(http.Header)
90109	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
90110	for k, v := range c.header_ {
90111		reqHeaders[k] = v
90112	}
90113	reqHeaders.Set("User-Agent", c.s.userAgent())
90114	var body io.Reader = nil
90115	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesstartwithencryptionkeyrequest)
90116	if err != nil {
90117		return nil, err
90118	}
90119	reqHeaders.Set("Content-Type", "application/json")
90120	c.urlParams_.Set("alt", alt)
90121	c.urlParams_.Set("prettyPrint", "false")
90122	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey")
90123	urls += "?" + c.urlParams_.Encode()
90124	req, err := http.NewRequest("POST", urls, body)
90125	if err != nil {
90126		return nil, err
90127	}
90128	req.Header = reqHeaders
90129	googleapi.Expand(req.URL, map[string]string{
90130		"project":  c.project,
90131		"zone":     c.zone,
90132		"instance": c.instance,
90133	})
90134	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90135}
90136
90137// Do executes the "compute.instances.startWithEncryptionKey" call.
90138// Exactly one of *Operation or error will be non-nil. Any non-2xx
90139// status code is an error. Response headers are in either
90140// *Operation.ServerResponse.Header or (if a response was returned at
90141// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90142// to check whether the returned error was because
90143// http.StatusNotModified was returned.
90144func (c *InstancesStartWithEncryptionKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
90145	gensupport.SetOptions(c.urlParams_, opts...)
90146	res, err := c.doRequest("json")
90147	if res != nil && res.StatusCode == http.StatusNotModified {
90148		if res.Body != nil {
90149			res.Body.Close()
90150		}
90151		return nil, &googleapi.Error{
90152			Code:   res.StatusCode,
90153			Header: res.Header,
90154		}
90155	}
90156	if err != nil {
90157		return nil, err
90158	}
90159	defer googleapi.CloseBody(res)
90160	if err := googleapi.CheckResponse(res); err != nil {
90161		return nil, err
90162	}
90163	ret := &Operation{
90164		ServerResponse: googleapi.ServerResponse{
90165			Header:         res.Header,
90166			HTTPStatusCode: res.StatusCode,
90167		},
90168	}
90169	target := &ret
90170	if err := gensupport.DecodeResponse(target, res); err != nil {
90171		return nil, err
90172	}
90173	return ret, nil
90174	// {
90175	//   "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.",
90176	//   "httpMethod": "POST",
90177	//   "id": "compute.instances.startWithEncryptionKey",
90178	//   "parameterOrder": [
90179	//     "project",
90180	//     "zone",
90181	//     "instance"
90182	//   ],
90183	//   "parameters": {
90184	//     "instance": {
90185	//       "description": "Name of the instance resource to start.",
90186	//       "location": "path",
90187	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90188	//       "required": true,
90189	//       "type": "string"
90190	//     },
90191	//     "project": {
90192	//       "description": "Project ID for this request.",
90193	//       "location": "path",
90194	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90195	//       "required": true,
90196	//       "type": "string"
90197	//     },
90198	//     "requestId": {
90199	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
90200	//       "location": "query",
90201	//       "type": "string"
90202	//     },
90203	//     "zone": {
90204	//       "description": "The name of the zone for this request.",
90205	//       "location": "path",
90206	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90207	//       "required": true,
90208	//       "type": "string"
90209	//     }
90210	//   },
90211	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey",
90212	//   "request": {
90213	//     "$ref": "InstancesStartWithEncryptionKeyRequest"
90214	//   },
90215	//   "response": {
90216	//     "$ref": "Operation"
90217	//   },
90218	//   "scopes": [
90219	//     "https://www.googleapis.com/auth/cloud-platform",
90220	//     "https://www.googleapis.com/auth/compute"
90221	//   ]
90222	// }
90223
90224}
90225
90226// method id "compute.instances.stop":
90227
90228type InstancesStopCall struct {
90229	s          *Service
90230	project    string
90231	zone       string
90232	instance   string
90233	urlParams_ gensupport.URLParams
90234	ctx_       context.Context
90235	header_    http.Header
90236}
90237
90238// Stop: Stops a running instance, shutting it down cleanly, and allows
90239// you to restart the instance at a later time. Stopped instances do not
90240// incur VM usage charges while they are stopped. However, resources
90241// that the VM is using, such as persistent disks and static IP
90242// addresses, will continue to be charged until they are deleted. For
90243// more information, see Stopping an instance.
90244//
90245// - instance: Name of the instance resource to stop.
90246// - project: Project ID for this request.
90247// - zone: The name of the zone for this request.
90248// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/stop
90249func (r *InstancesService) Stop(project string, zone string, instance string) *InstancesStopCall {
90250	c := &InstancesStopCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90251	c.project = project
90252	c.zone = zone
90253	c.instance = instance
90254	return c
90255}
90256
90257// RequestId sets the optional parameter "requestId": An optional
90258// request ID to identify requests. Specify a unique request ID so that
90259// if you must retry your request, the server will know to ignore the
90260// request if it has already been completed.
90261//
90262// For example, consider a situation where you make an initial request
90263// and the request times out. If you make the request again with the
90264// same request ID, the server can check if original operation with the
90265// same request ID was received, and if so, will ignore the second
90266// request. This prevents clients from accidentally creating duplicate
90267// commitments.
90268//
90269// The request ID must be a valid UUID with the exception that zero UUID
90270// is not supported (00000000-0000-0000-0000-000000000000).
90271func (c *InstancesStopCall) RequestId(requestId string) *InstancesStopCall {
90272	c.urlParams_.Set("requestId", requestId)
90273	return c
90274}
90275
90276// Fields allows partial responses to be retrieved. See
90277// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90278// for more information.
90279func (c *InstancesStopCall) Fields(s ...googleapi.Field) *InstancesStopCall {
90280	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90281	return c
90282}
90283
90284// Context sets the context to be used in this call's Do method. Any
90285// pending HTTP request will be aborted if the provided context is
90286// canceled.
90287func (c *InstancesStopCall) Context(ctx context.Context) *InstancesStopCall {
90288	c.ctx_ = ctx
90289	return c
90290}
90291
90292// Header returns an http.Header that can be modified by the caller to
90293// add HTTP headers to the request.
90294func (c *InstancesStopCall) Header() http.Header {
90295	if c.header_ == nil {
90296		c.header_ = make(http.Header)
90297	}
90298	return c.header_
90299}
90300
90301func (c *InstancesStopCall) doRequest(alt string) (*http.Response, error) {
90302	reqHeaders := make(http.Header)
90303	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
90304	for k, v := range c.header_ {
90305		reqHeaders[k] = v
90306	}
90307	reqHeaders.Set("User-Agent", c.s.userAgent())
90308	var body io.Reader = nil
90309	c.urlParams_.Set("alt", alt)
90310	c.urlParams_.Set("prettyPrint", "false")
90311	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/stop")
90312	urls += "?" + c.urlParams_.Encode()
90313	req, err := http.NewRequest("POST", urls, body)
90314	if err != nil {
90315		return nil, err
90316	}
90317	req.Header = reqHeaders
90318	googleapi.Expand(req.URL, map[string]string{
90319		"project":  c.project,
90320		"zone":     c.zone,
90321		"instance": c.instance,
90322	})
90323	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90324}
90325
90326// Do executes the "compute.instances.stop" call.
90327// Exactly one of *Operation or error will be non-nil. Any non-2xx
90328// status code is an error. Response headers are in either
90329// *Operation.ServerResponse.Header or (if a response was returned at
90330// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90331// to check whether the returned error was because
90332// http.StatusNotModified was returned.
90333func (c *InstancesStopCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
90334	gensupport.SetOptions(c.urlParams_, opts...)
90335	res, err := c.doRequest("json")
90336	if res != nil && res.StatusCode == http.StatusNotModified {
90337		if res.Body != nil {
90338			res.Body.Close()
90339		}
90340		return nil, &googleapi.Error{
90341			Code:   res.StatusCode,
90342			Header: res.Header,
90343		}
90344	}
90345	if err != nil {
90346		return nil, err
90347	}
90348	defer googleapi.CloseBody(res)
90349	if err := googleapi.CheckResponse(res); err != nil {
90350		return nil, err
90351	}
90352	ret := &Operation{
90353		ServerResponse: googleapi.ServerResponse{
90354			Header:         res.Header,
90355			HTTPStatusCode: res.StatusCode,
90356		},
90357	}
90358	target := &ret
90359	if err := gensupport.DecodeResponse(target, res); err != nil {
90360		return nil, err
90361	}
90362	return ret, nil
90363	// {
90364	//   "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.",
90365	//   "httpMethod": "POST",
90366	//   "id": "compute.instances.stop",
90367	//   "parameterOrder": [
90368	//     "project",
90369	//     "zone",
90370	//     "instance"
90371	//   ],
90372	//   "parameters": {
90373	//     "instance": {
90374	//       "description": "Name of the instance resource to stop.",
90375	//       "location": "path",
90376	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90377	//       "required": true,
90378	//       "type": "string"
90379	//     },
90380	//     "project": {
90381	//       "description": "Project ID for this request.",
90382	//       "location": "path",
90383	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90384	//       "required": true,
90385	//       "type": "string"
90386	//     },
90387	//     "requestId": {
90388	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
90389	//       "location": "query",
90390	//       "type": "string"
90391	//     },
90392	//     "zone": {
90393	//       "description": "The name of the zone for this request.",
90394	//       "location": "path",
90395	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90396	//       "required": true,
90397	//       "type": "string"
90398	//     }
90399	//   },
90400	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/stop",
90401	//   "response": {
90402	//     "$ref": "Operation"
90403	//   },
90404	//   "scopes": [
90405	//     "https://www.googleapis.com/auth/cloud-platform",
90406	//     "https://www.googleapis.com/auth/compute"
90407	//   ]
90408	// }
90409
90410}
90411
90412// method id "compute.instances.testIamPermissions":
90413
90414type InstancesTestIamPermissionsCall struct {
90415	s                      *Service
90416	project                string
90417	zone                   string
90418	resource               string
90419	testpermissionsrequest *TestPermissionsRequest
90420	urlParams_             gensupport.URLParams
90421	ctx_                   context.Context
90422	header_                http.Header
90423}
90424
90425// TestIamPermissions: Returns permissions that a caller has on the
90426// specified resource.
90427//
90428// - project: Project ID for this request.
90429// - resource: Name or id of the resource for this request.
90430// - zone: The name of the zone for this request.
90431func (r *InstancesService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstancesTestIamPermissionsCall {
90432	c := &InstancesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90433	c.project = project
90434	c.zone = zone
90435	c.resource = resource
90436	c.testpermissionsrequest = testpermissionsrequest
90437	return c
90438}
90439
90440// Fields allows partial responses to be retrieved. See
90441// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90442// for more information.
90443func (c *InstancesTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstancesTestIamPermissionsCall {
90444	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90445	return c
90446}
90447
90448// Context sets the context to be used in this call's Do method. Any
90449// pending HTTP request will be aborted if the provided context is
90450// canceled.
90451func (c *InstancesTestIamPermissionsCall) Context(ctx context.Context) *InstancesTestIamPermissionsCall {
90452	c.ctx_ = ctx
90453	return c
90454}
90455
90456// Header returns an http.Header that can be modified by the caller to
90457// add HTTP headers to the request.
90458func (c *InstancesTestIamPermissionsCall) Header() http.Header {
90459	if c.header_ == nil {
90460		c.header_ = make(http.Header)
90461	}
90462	return c.header_
90463}
90464
90465func (c *InstancesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
90466	reqHeaders := make(http.Header)
90467	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
90468	for k, v := range c.header_ {
90469		reqHeaders[k] = v
90470	}
90471	reqHeaders.Set("User-Agent", c.s.userAgent())
90472	var body io.Reader = nil
90473	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
90474	if err != nil {
90475		return nil, err
90476	}
90477	reqHeaders.Set("Content-Type", "application/json")
90478	c.urlParams_.Set("alt", alt)
90479	c.urlParams_.Set("prettyPrint", "false")
90480	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{resource}/testIamPermissions")
90481	urls += "?" + c.urlParams_.Encode()
90482	req, err := http.NewRequest("POST", urls, body)
90483	if err != nil {
90484		return nil, err
90485	}
90486	req.Header = reqHeaders
90487	googleapi.Expand(req.URL, map[string]string{
90488		"project":  c.project,
90489		"zone":     c.zone,
90490		"resource": c.resource,
90491	})
90492	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90493}
90494
90495// Do executes the "compute.instances.testIamPermissions" call.
90496// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
90497// non-2xx status code is an error. Response headers are in either
90498// *TestPermissionsResponse.ServerResponse.Header or (if a response was
90499// returned at all) in error.(*googleapi.Error).Header. Use
90500// googleapi.IsNotModified to check whether the returned error was
90501// because http.StatusNotModified was returned.
90502func (c *InstancesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
90503	gensupport.SetOptions(c.urlParams_, opts...)
90504	res, err := c.doRequest("json")
90505	if res != nil && res.StatusCode == http.StatusNotModified {
90506		if res.Body != nil {
90507			res.Body.Close()
90508		}
90509		return nil, &googleapi.Error{
90510			Code:   res.StatusCode,
90511			Header: res.Header,
90512		}
90513	}
90514	if err != nil {
90515		return nil, err
90516	}
90517	defer googleapi.CloseBody(res)
90518	if err := googleapi.CheckResponse(res); err != nil {
90519		return nil, err
90520	}
90521	ret := &TestPermissionsResponse{
90522		ServerResponse: googleapi.ServerResponse{
90523			Header:         res.Header,
90524			HTTPStatusCode: res.StatusCode,
90525		},
90526	}
90527	target := &ret
90528	if err := gensupport.DecodeResponse(target, res); err != nil {
90529		return nil, err
90530	}
90531	return ret, nil
90532	// {
90533	//   "description": "Returns permissions that a caller has on the specified resource.",
90534	//   "httpMethod": "POST",
90535	//   "id": "compute.instances.testIamPermissions",
90536	//   "parameterOrder": [
90537	//     "project",
90538	//     "zone",
90539	//     "resource"
90540	//   ],
90541	//   "parameters": {
90542	//     "project": {
90543	//       "description": "Project ID for this request.",
90544	//       "location": "path",
90545	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90546	//       "required": true,
90547	//       "type": "string"
90548	//     },
90549	//     "resource": {
90550	//       "description": "Name or id of the resource for this request.",
90551	//       "location": "path",
90552	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90553	//       "required": true,
90554	//       "type": "string"
90555	//     },
90556	//     "zone": {
90557	//       "description": "The name of the zone for this request.",
90558	//       "location": "path",
90559	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90560	//       "required": true,
90561	//       "type": "string"
90562	//     }
90563	//   },
90564	//   "path": "projects/{project}/zones/{zone}/instances/{resource}/testIamPermissions",
90565	//   "request": {
90566	//     "$ref": "TestPermissionsRequest"
90567	//   },
90568	//   "response": {
90569	//     "$ref": "TestPermissionsResponse"
90570	//   },
90571	//   "scopes": [
90572	//     "https://www.googleapis.com/auth/cloud-platform",
90573	//     "https://www.googleapis.com/auth/compute",
90574	//     "https://www.googleapis.com/auth/compute.readonly"
90575	//   ]
90576	// }
90577
90578}
90579
90580// method id "compute.instances.update":
90581
90582type InstancesUpdateCall struct {
90583	s          *Service
90584	project    string
90585	zone       string
90586	instance   string
90587	instance2  *Instance
90588	urlParams_ gensupport.URLParams
90589	ctx_       context.Context
90590	header_    http.Header
90591}
90592
90593// Update: Updates an instance only if the necessary resources are
90594// available. This method can update only a specific set of instance
90595// properties. See  Updating a running instance for a list of updatable
90596// instance properties.
90597//
90598// - instance: Name of the instance resource to update.
90599// - project: Project ID for this request.
90600// - zone: The name of the zone for this request.
90601func (r *InstancesService) Update(project string, zone string, instance string, instance2 *Instance) *InstancesUpdateCall {
90602	c := &InstancesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90603	c.project = project
90604	c.zone = zone
90605	c.instance = instance
90606	c.instance2 = instance2
90607	return c
90608}
90609
90610// MinimalAction sets the optional parameter "minimalAction": Specifies
90611// the action to take when updating an instance even if the updated
90612// properties do not require it. If not specified, then Compute Engine
90613// acts based on the minimum action that the updated properties require.
90614//
90615// Possible values:
90616//   "INVALID"
90617//   "NO_EFFECT"
90618//   "REFRESH"
90619//   "RESTART"
90620func (c *InstancesUpdateCall) MinimalAction(minimalAction string) *InstancesUpdateCall {
90621	c.urlParams_.Set("minimalAction", minimalAction)
90622	return c
90623}
90624
90625// MostDisruptiveAllowedAction sets the optional parameter
90626// "mostDisruptiveAllowedAction": Specifies the most disruptive action
90627// that can be taken on the instance as part of the update. Compute
90628// Engine returns an error if the instance properties require a more
90629// disruptive action as part of the instance update. Valid options from
90630// lowest to highest are NO_EFFECT, REFRESH, and RESTART.
90631//
90632// Possible values:
90633//   "INVALID"
90634//   "NO_EFFECT"
90635//   "REFRESH"
90636//   "RESTART"
90637func (c *InstancesUpdateCall) MostDisruptiveAllowedAction(mostDisruptiveAllowedAction string) *InstancesUpdateCall {
90638	c.urlParams_.Set("mostDisruptiveAllowedAction", mostDisruptiveAllowedAction)
90639	return c
90640}
90641
90642// RequestId sets the optional parameter "requestId": An optional
90643// request ID to identify requests. Specify a unique request ID so that
90644// if you must retry your request, the server will know to ignore the
90645// request if it has already been completed.
90646//
90647// For example, consider a situation where you make an initial request
90648// and the request times out. If you make the request again with the
90649// same request ID, the server can check if original operation with the
90650// same request ID was received, and if so, will ignore the second
90651// request. This prevents clients from accidentally creating duplicate
90652// commitments.
90653//
90654// The request ID must be a valid UUID with the exception that zero UUID
90655// is not supported (00000000-0000-0000-0000-000000000000).
90656func (c *InstancesUpdateCall) RequestId(requestId string) *InstancesUpdateCall {
90657	c.urlParams_.Set("requestId", requestId)
90658	return c
90659}
90660
90661// Fields allows partial responses to be retrieved. See
90662// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90663// for more information.
90664func (c *InstancesUpdateCall) Fields(s ...googleapi.Field) *InstancesUpdateCall {
90665	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90666	return c
90667}
90668
90669// Context sets the context to be used in this call's Do method. Any
90670// pending HTTP request will be aborted if the provided context is
90671// canceled.
90672func (c *InstancesUpdateCall) Context(ctx context.Context) *InstancesUpdateCall {
90673	c.ctx_ = ctx
90674	return c
90675}
90676
90677// Header returns an http.Header that can be modified by the caller to
90678// add HTTP headers to the request.
90679func (c *InstancesUpdateCall) Header() http.Header {
90680	if c.header_ == nil {
90681		c.header_ = make(http.Header)
90682	}
90683	return c.header_
90684}
90685
90686func (c *InstancesUpdateCall) doRequest(alt string) (*http.Response, error) {
90687	reqHeaders := make(http.Header)
90688	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
90689	for k, v := range c.header_ {
90690		reqHeaders[k] = v
90691	}
90692	reqHeaders.Set("User-Agent", c.s.userAgent())
90693	var body io.Reader = nil
90694	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instance2)
90695	if err != nil {
90696		return nil, err
90697	}
90698	reqHeaders.Set("Content-Type", "application/json")
90699	c.urlParams_.Set("alt", alt)
90700	c.urlParams_.Set("prettyPrint", "false")
90701	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}")
90702	urls += "?" + c.urlParams_.Encode()
90703	req, err := http.NewRequest("PUT", urls, body)
90704	if err != nil {
90705		return nil, err
90706	}
90707	req.Header = reqHeaders
90708	googleapi.Expand(req.URL, map[string]string{
90709		"project":  c.project,
90710		"zone":     c.zone,
90711		"instance": c.instance,
90712	})
90713	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90714}
90715
90716// Do executes the "compute.instances.update" call.
90717// Exactly one of *Operation or error will be non-nil. Any non-2xx
90718// status code is an error. Response headers are in either
90719// *Operation.ServerResponse.Header or (if a response was returned at
90720// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90721// to check whether the returned error was because
90722// http.StatusNotModified was returned.
90723func (c *InstancesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
90724	gensupport.SetOptions(c.urlParams_, opts...)
90725	res, err := c.doRequest("json")
90726	if res != nil && res.StatusCode == http.StatusNotModified {
90727		if res.Body != nil {
90728			res.Body.Close()
90729		}
90730		return nil, &googleapi.Error{
90731			Code:   res.StatusCode,
90732			Header: res.Header,
90733		}
90734	}
90735	if err != nil {
90736		return nil, err
90737	}
90738	defer googleapi.CloseBody(res)
90739	if err := googleapi.CheckResponse(res); err != nil {
90740		return nil, err
90741	}
90742	ret := &Operation{
90743		ServerResponse: googleapi.ServerResponse{
90744			Header:         res.Header,
90745			HTTPStatusCode: res.StatusCode,
90746		},
90747	}
90748	target := &ret
90749	if err := gensupport.DecodeResponse(target, res); err != nil {
90750		return nil, err
90751	}
90752	return ret, nil
90753	// {
90754	//   "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.",
90755	//   "httpMethod": "PUT",
90756	//   "id": "compute.instances.update",
90757	//   "parameterOrder": [
90758	//     "project",
90759	//     "zone",
90760	//     "instance"
90761	//   ],
90762	//   "parameters": {
90763	//     "instance": {
90764	//       "description": "Name of the instance resource to update.",
90765	//       "location": "path",
90766	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90767	//       "required": true,
90768	//       "type": "string"
90769	//     },
90770	//     "minimalAction": {
90771	//       "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.",
90772	//       "enum": [
90773	//         "INVALID",
90774	//         "NO_EFFECT",
90775	//         "REFRESH",
90776	//         "RESTART"
90777	//       ],
90778	//       "enumDescriptions": [
90779	//         "",
90780	//         "",
90781	//         "",
90782	//         ""
90783	//       ],
90784	//       "location": "query",
90785	//       "type": "string"
90786	//     },
90787	//     "mostDisruptiveAllowedAction": {
90788	//       "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.",
90789	//       "enum": [
90790	//         "INVALID",
90791	//         "NO_EFFECT",
90792	//         "REFRESH",
90793	//         "RESTART"
90794	//       ],
90795	//       "enumDescriptions": [
90796	//         "",
90797	//         "",
90798	//         "",
90799	//         ""
90800	//       ],
90801	//       "location": "query",
90802	//       "type": "string"
90803	//     },
90804	//     "project": {
90805	//       "description": "Project ID for this request.",
90806	//       "location": "path",
90807	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90808	//       "required": true,
90809	//       "type": "string"
90810	//     },
90811	//     "requestId": {
90812	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
90813	//       "location": "query",
90814	//       "type": "string"
90815	//     },
90816	//     "zone": {
90817	//       "description": "The name of the zone for this request.",
90818	//       "location": "path",
90819	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
90820	//       "required": true,
90821	//       "type": "string"
90822	//     }
90823	//   },
90824	//   "path": "projects/{project}/zones/{zone}/instances/{instance}",
90825	//   "request": {
90826	//     "$ref": "Instance"
90827	//   },
90828	//   "response": {
90829	//     "$ref": "Operation"
90830	//   },
90831	//   "scopes": [
90832	//     "https://www.googleapis.com/auth/cloud-platform",
90833	//     "https://www.googleapis.com/auth/compute"
90834	//   ]
90835	// }
90836
90837}
90838
90839// method id "compute.instances.updateAccessConfig":
90840
90841type InstancesUpdateAccessConfigCall struct {
90842	s            *Service
90843	project      string
90844	zone         string
90845	instance     string
90846	accessconfig *AccessConfig
90847	urlParams_   gensupport.URLParams
90848	ctx_         context.Context
90849	header_      http.Header
90850}
90851
90852// UpdateAccessConfig: Updates the specified access config from an
90853// instance's network interface with the data included in the request.
90854// This method supports PATCH semantics and uses the JSON merge patch
90855// format and processing rules.
90856//
90857// - instance: The instance name for this request.
90858// - networkInterface: The name of the network interface where the
90859//   access config is attached.
90860// - project: Project ID for this request.
90861// - zone: The name of the zone for this request.
90862func (r *InstancesService) UpdateAccessConfig(project string, zone string, instance string, networkInterface string, accessconfig *AccessConfig) *InstancesUpdateAccessConfigCall {
90863	c := &InstancesUpdateAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90864	c.project = project
90865	c.zone = zone
90866	c.instance = instance
90867	c.urlParams_.Set("networkInterface", networkInterface)
90868	c.accessconfig = accessconfig
90869	return c
90870}
90871
90872// RequestId sets the optional parameter "requestId": An optional
90873// request ID to identify requests. Specify a unique request ID so that
90874// if you must retry your request, the server will know to ignore the
90875// request if it has already been completed.
90876//
90877// For example, consider a situation where you make an initial request
90878// and the request times out. If you make the request again with the
90879// same request ID, the server can check if original operation with the
90880// same request ID was received, and if so, will ignore the second
90881// request. This prevents clients from accidentally creating duplicate
90882// commitments.
90883//
90884// The request ID must be a valid UUID with the exception that zero UUID
90885// is not supported (00000000-0000-0000-0000-000000000000).
90886func (c *InstancesUpdateAccessConfigCall) RequestId(requestId string) *InstancesUpdateAccessConfigCall {
90887	c.urlParams_.Set("requestId", requestId)
90888	return c
90889}
90890
90891// Fields allows partial responses to be retrieved. See
90892// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90893// for more information.
90894func (c *InstancesUpdateAccessConfigCall) Fields(s ...googleapi.Field) *InstancesUpdateAccessConfigCall {
90895	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90896	return c
90897}
90898
90899// Context sets the context to be used in this call's Do method. Any
90900// pending HTTP request will be aborted if the provided context is
90901// canceled.
90902func (c *InstancesUpdateAccessConfigCall) Context(ctx context.Context) *InstancesUpdateAccessConfigCall {
90903	c.ctx_ = ctx
90904	return c
90905}
90906
90907// Header returns an http.Header that can be modified by the caller to
90908// add HTTP headers to the request.
90909func (c *InstancesUpdateAccessConfigCall) Header() http.Header {
90910	if c.header_ == nil {
90911		c.header_ = make(http.Header)
90912	}
90913	return c.header_
90914}
90915
90916func (c *InstancesUpdateAccessConfigCall) doRequest(alt string) (*http.Response, error) {
90917	reqHeaders := make(http.Header)
90918	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
90919	for k, v := range c.header_ {
90920		reqHeaders[k] = v
90921	}
90922	reqHeaders.Set("User-Agent", c.s.userAgent())
90923	var body io.Reader = nil
90924	body, err := googleapi.WithoutDataWrapper.JSONReader(c.accessconfig)
90925	if err != nil {
90926		return nil, err
90927	}
90928	reqHeaders.Set("Content-Type", "application/json")
90929	c.urlParams_.Set("alt", alt)
90930	c.urlParams_.Set("prettyPrint", "false")
90931	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/updateAccessConfig")
90932	urls += "?" + c.urlParams_.Encode()
90933	req, err := http.NewRequest("POST", urls, body)
90934	if err != nil {
90935		return nil, err
90936	}
90937	req.Header = reqHeaders
90938	googleapi.Expand(req.URL, map[string]string{
90939		"project":  c.project,
90940		"zone":     c.zone,
90941		"instance": c.instance,
90942	})
90943	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90944}
90945
90946// Do executes the "compute.instances.updateAccessConfig" call.
90947// Exactly one of *Operation or error will be non-nil. Any non-2xx
90948// status code is an error. Response headers are in either
90949// *Operation.ServerResponse.Header or (if a response was returned at
90950// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90951// to check whether the returned error was because
90952// http.StatusNotModified was returned.
90953func (c *InstancesUpdateAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
90954	gensupport.SetOptions(c.urlParams_, opts...)
90955	res, err := c.doRequest("json")
90956	if res != nil && res.StatusCode == http.StatusNotModified {
90957		if res.Body != nil {
90958			res.Body.Close()
90959		}
90960		return nil, &googleapi.Error{
90961			Code:   res.StatusCode,
90962			Header: res.Header,
90963		}
90964	}
90965	if err != nil {
90966		return nil, err
90967	}
90968	defer googleapi.CloseBody(res)
90969	if err := googleapi.CheckResponse(res); err != nil {
90970		return nil, err
90971	}
90972	ret := &Operation{
90973		ServerResponse: googleapi.ServerResponse{
90974			Header:         res.Header,
90975			HTTPStatusCode: res.StatusCode,
90976		},
90977	}
90978	target := &ret
90979	if err := gensupport.DecodeResponse(target, res); err != nil {
90980		return nil, err
90981	}
90982	return ret, nil
90983	// {
90984	//   "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.",
90985	//   "httpMethod": "POST",
90986	//   "id": "compute.instances.updateAccessConfig",
90987	//   "parameterOrder": [
90988	//     "project",
90989	//     "zone",
90990	//     "instance",
90991	//     "networkInterface"
90992	//   ],
90993	//   "parameters": {
90994	//     "instance": {
90995	//       "description": "The instance name for this request.",
90996	//       "location": "path",
90997	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90998	//       "required": true,
90999	//       "type": "string"
91000	//     },
91001	//     "networkInterface": {
91002	//       "description": "The name of the network interface where the access config is attached.",
91003	//       "location": "query",
91004	//       "required": true,
91005	//       "type": "string"
91006	//     },
91007	//     "project": {
91008	//       "description": "Project ID for this request.",
91009	//       "location": "path",
91010	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91011	//       "required": true,
91012	//       "type": "string"
91013	//     },
91014	//     "requestId": {
91015	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
91016	//       "location": "query",
91017	//       "type": "string"
91018	//     },
91019	//     "zone": {
91020	//       "description": "The name of the zone for this request.",
91021	//       "location": "path",
91022	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91023	//       "required": true,
91024	//       "type": "string"
91025	//     }
91026	//   },
91027	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/updateAccessConfig",
91028	//   "request": {
91029	//     "$ref": "AccessConfig"
91030	//   },
91031	//   "response": {
91032	//     "$ref": "Operation"
91033	//   },
91034	//   "scopes": [
91035	//     "https://www.googleapis.com/auth/cloud-platform",
91036	//     "https://www.googleapis.com/auth/compute"
91037	//   ]
91038	// }
91039
91040}
91041
91042// method id "compute.instances.updateDisplayDevice":
91043
91044type InstancesUpdateDisplayDeviceCall struct {
91045	s             *Service
91046	project       string
91047	zone          string
91048	instance      string
91049	displaydevice *DisplayDevice
91050	urlParams_    gensupport.URLParams
91051	ctx_          context.Context
91052	header_       http.Header
91053}
91054
91055// UpdateDisplayDevice: Updates the Display config for a VM instance.
91056// You can only use this method on a stopped VM instance. This method
91057// supports PATCH semantics and uses the JSON merge patch format and
91058// processing rules.
91059//
91060// - instance: Name of the instance scoping this request.
91061// - project: Project ID for this request.
91062// - zone: The name of the zone for this request.
91063func (r *InstancesService) UpdateDisplayDevice(project string, zone string, instance string, displaydevice *DisplayDevice) *InstancesUpdateDisplayDeviceCall {
91064	c := &InstancesUpdateDisplayDeviceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91065	c.project = project
91066	c.zone = zone
91067	c.instance = instance
91068	c.displaydevice = displaydevice
91069	return c
91070}
91071
91072// RequestId sets the optional parameter "requestId": An optional
91073// request ID to identify requests. Specify a unique request ID so that
91074// if you must retry your request, the server will know to ignore the
91075// request if it has already been completed.
91076//
91077// For example, consider a situation where you make an initial request
91078// and the request times out. If you make the request again with the
91079// same request ID, the server can check if original operation with the
91080// same request ID was received, and if so, will ignore the second
91081// request. This prevents clients from accidentally creating duplicate
91082// commitments.
91083//
91084// The request ID must be a valid UUID with the exception that zero UUID
91085// is not supported (00000000-0000-0000-0000-000000000000).
91086func (c *InstancesUpdateDisplayDeviceCall) RequestId(requestId string) *InstancesUpdateDisplayDeviceCall {
91087	c.urlParams_.Set("requestId", requestId)
91088	return c
91089}
91090
91091// Fields allows partial responses to be retrieved. See
91092// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91093// for more information.
91094func (c *InstancesUpdateDisplayDeviceCall) Fields(s ...googleapi.Field) *InstancesUpdateDisplayDeviceCall {
91095	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91096	return c
91097}
91098
91099// Context sets the context to be used in this call's Do method. Any
91100// pending HTTP request will be aborted if the provided context is
91101// canceled.
91102func (c *InstancesUpdateDisplayDeviceCall) Context(ctx context.Context) *InstancesUpdateDisplayDeviceCall {
91103	c.ctx_ = ctx
91104	return c
91105}
91106
91107// Header returns an http.Header that can be modified by the caller to
91108// add HTTP headers to the request.
91109func (c *InstancesUpdateDisplayDeviceCall) Header() http.Header {
91110	if c.header_ == nil {
91111		c.header_ = make(http.Header)
91112	}
91113	return c.header_
91114}
91115
91116func (c *InstancesUpdateDisplayDeviceCall) doRequest(alt string) (*http.Response, error) {
91117	reqHeaders := make(http.Header)
91118	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
91119	for k, v := range c.header_ {
91120		reqHeaders[k] = v
91121	}
91122	reqHeaders.Set("User-Agent", c.s.userAgent())
91123	var body io.Reader = nil
91124	body, err := googleapi.WithoutDataWrapper.JSONReader(c.displaydevice)
91125	if err != nil {
91126		return nil, err
91127	}
91128	reqHeaders.Set("Content-Type", "application/json")
91129	c.urlParams_.Set("alt", alt)
91130	c.urlParams_.Set("prettyPrint", "false")
91131	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/updateDisplayDevice")
91132	urls += "?" + c.urlParams_.Encode()
91133	req, err := http.NewRequest("PATCH", urls, body)
91134	if err != nil {
91135		return nil, err
91136	}
91137	req.Header = reqHeaders
91138	googleapi.Expand(req.URL, map[string]string{
91139		"project":  c.project,
91140		"zone":     c.zone,
91141		"instance": c.instance,
91142	})
91143	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91144}
91145
91146// Do executes the "compute.instances.updateDisplayDevice" call.
91147// Exactly one of *Operation or error will be non-nil. Any non-2xx
91148// status code is an error. Response headers are in either
91149// *Operation.ServerResponse.Header or (if a response was returned at
91150// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
91151// to check whether the returned error was because
91152// http.StatusNotModified was returned.
91153func (c *InstancesUpdateDisplayDeviceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
91154	gensupport.SetOptions(c.urlParams_, opts...)
91155	res, err := c.doRequest("json")
91156	if res != nil && res.StatusCode == http.StatusNotModified {
91157		if res.Body != nil {
91158			res.Body.Close()
91159		}
91160		return nil, &googleapi.Error{
91161			Code:   res.StatusCode,
91162			Header: res.Header,
91163		}
91164	}
91165	if err != nil {
91166		return nil, err
91167	}
91168	defer googleapi.CloseBody(res)
91169	if err := googleapi.CheckResponse(res); err != nil {
91170		return nil, err
91171	}
91172	ret := &Operation{
91173		ServerResponse: googleapi.ServerResponse{
91174			Header:         res.Header,
91175			HTTPStatusCode: res.StatusCode,
91176		},
91177	}
91178	target := &ret
91179	if err := gensupport.DecodeResponse(target, res); err != nil {
91180		return nil, err
91181	}
91182	return ret, nil
91183	// {
91184	//   "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.",
91185	//   "httpMethod": "PATCH",
91186	//   "id": "compute.instances.updateDisplayDevice",
91187	//   "parameterOrder": [
91188	//     "project",
91189	//     "zone",
91190	//     "instance"
91191	//   ],
91192	//   "parameters": {
91193	//     "instance": {
91194	//       "description": "Name of the instance scoping this request.",
91195	//       "location": "path",
91196	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91197	//       "required": true,
91198	//       "type": "string"
91199	//     },
91200	//     "project": {
91201	//       "description": "Project ID for this request.",
91202	//       "location": "path",
91203	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91204	//       "required": true,
91205	//       "type": "string"
91206	//     },
91207	//     "requestId": {
91208	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
91209	//       "location": "query",
91210	//       "type": "string"
91211	//     },
91212	//     "zone": {
91213	//       "description": "The name of the zone for this request.",
91214	//       "location": "path",
91215	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91216	//       "required": true,
91217	//       "type": "string"
91218	//     }
91219	//   },
91220	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/updateDisplayDevice",
91221	//   "request": {
91222	//     "$ref": "DisplayDevice"
91223	//   },
91224	//   "response": {
91225	//     "$ref": "Operation"
91226	//   },
91227	//   "scopes": [
91228	//     "https://www.googleapis.com/auth/cloud-platform",
91229	//     "https://www.googleapis.com/auth/compute"
91230	//   ]
91231	// }
91232
91233}
91234
91235// method id "compute.instances.updateNetworkInterface":
91236
91237type InstancesUpdateNetworkInterfaceCall struct {
91238	s                *Service
91239	project          string
91240	zone             string
91241	instance         string
91242	networkinterface *NetworkInterface
91243	urlParams_       gensupport.URLParams
91244	ctx_             context.Context
91245	header_          http.Header
91246}
91247
91248// UpdateNetworkInterface: Updates an instance's network interface. This
91249// method can only update an interface's alias IP range and attached
91250// network. See Modifying alias IP ranges for an existing instance for
91251// instructions on changing alias IP ranges. See Migrating a VM between
91252// networks for instructions on migrating an interface. This method
91253// follows PATCH semantics.
91254//
91255// - instance: The instance name for this request.
91256// - networkInterface: The name of the network interface to update.
91257// - project: Project ID for this request.
91258// - zone: The name of the zone for this request.
91259func (r *InstancesService) UpdateNetworkInterface(project string, zone string, instance string, networkInterface string, networkinterface *NetworkInterface) *InstancesUpdateNetworkInterfaceCall {
91260	c := &InstancesUpdateNetworkInterfaceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91261	c.project = project
91262	c.zone = zone
91263	c.instance = instance
91264	c.urlParams_.Set("networkInterface", networkInterface)
91265	c.networkinterface = networkinterface
91266	return c
91267}
91268
91269// RequestId sets the optional parameter "requestId": An optional
91270// request ID to identify requests. Specify a unique request ID so that
91271// if you must retry your request, the server will know to ignore the
91272// request if it has already been completed.
91273//
91274// For example, consider a situation where you make an initial request
91275// and the request times out. If you make the request again with the
91276// same request ID, the server can check if original operation with the
91277// same request ID was received, and if so, will ignore the second
91278// request. This prevents clients from accidentally creating duplicate
91279// commitments.
91280//
91281// The request ID must be a valid UUID with the exception that zero UUID
91282// is not supported (00000000-0000-0000-0000-000000000000).
91283func (c *InstancesUpdateNetworkInterfaceCall) RequestId(requestId string) *InstancesUpdateNetworkInterfaceCall {
91284	c.urlParams_.Set("requestId", requestId)
91285	return c
91286}
91287
91288// Fields allows partial responses to be retrieved. See
91289// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91290// for more information.
91291func (c *InstancesUpdateNetworkInterfaceCall) Fields(s ...googleapi.Field) *InstancesUpdateNetworkInterfaceCall {
91292	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91293	return c
91294}
91295
91296// Context sets the context to be used in this call's Do method. Any
91297// pending HTTP request will be aborted if the provided context is
91298// canceled.
91299func (c *InstancesUpdateNetworkInterfaceCall) Context(ctx context.Context) *InstancesUpdateNetworkInterfaceCall {
91300	c.ctx_ = ctx
91301	return c
91302}
91303
91304// Header returns an http.Header that can be modified by the caller to
91305// add HTTP headers to the request.
91306func (c *InstancesUpdateNetworkInterfaceCall) Header() http.Header {
91307	if c.header_ == nil {
91308		c.header_ = make(http.Header)
91309	}
91310	return c.header_
91311}
91312
91313func (c *InstancesUpdateNetworkInterfaceCall) doRequest(alt string) (*http.Response, error) {
91314	reqHeaders := make(http.Header)
91315	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
91316	for k, v := range c.header_ {
91317		reqHeaders[k] = v
91318	}
91319	reqHeaders.Set("User-Agent", c.s.userAgent())
91320	var body io.Reader = nil
91321	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkinterface)
91322	if err != nil {
91323		return nil, err
91324	}
91325	reqHeaders.Set("Content-Type", "application/json")
91326	c.urlParams_.Set("alt", alt)
91327	c.urlParams_.Set("prettyPrint", "false")
91328	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/updateNetworkInterface")
91329	urls += "?" + c.urlParams_.Encode()
91330	req, err := http.NewRequest("PATCH", urls, body)
91331	if err != nil {
91332		return nil, err
91333	}
91334	req.Header = reqHeaders
91335	googleapi.Expand(req.URL, map[string]string{
91336		"project":  c.project,
91337		"zone":     c.zone,
91338		"instance": c.instance,
91339	})
91340	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91341}
91342
91343// Do executes the "compute.instances.updateNetworkInterface" call.
91344// Exactly one of *Operation or error will be non-nil. Any non-2xx
91345// status code is an error. Response headers are in either
91346// *Operation.ServerResponse.Header or (if a response was returned at
91347// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
91348// to check whether the returned error was because
91349// http.StatusNotModified was returned.
91350func (c *InstancesUpdateNetworkInterfaceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
91351	gensupport.SetOptions(c.urlParams_, opts...)
91352	res, err := c.doRequest("json")
91353	if res != nil && res.StatusCode == http.StatusNotModified {
91354		if res.Body != nil {
91355			res.Body.Close()
91356		}
91357		return nil, &googleapi.Error{
91358			Code:   res.StatusCode,
91359			Header: res.Header,
91360		}
91361	}
91362	if err != nil {
91363		return nil, err
91364	}
91365	defer googleapi.CloseBody(res)
91366	if err := googleapi.CheckResponse(res); err != nil {
91367		return nil, err
91368	}
91369	ret := &Operation{
91370		ServerResponse: googleapi.ServerResponse{
91371			Header:         res.Header,
91372			HTTPStatusCode: res.StatusCode,
91373		},
91374	}
91375	target := &ret
91376	if err := gensupport.DecodeResponse(target, res); err != nil {
91377		return nil, err
91378	}
91379	return ret, nil
91380	// {
91381	//   "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.",
91382	//   "httpMethod": "PATCH",
91383	//   "id": "compute.instances.updateNetworkInterface",
91384	//   "parameterOrder": [
91385	//     "project",
91386	//     "zone",
91387	//     "instance",
91388	//     "networkInterface"
91389	//   ],
91390	//   "parameters": {
91391	//     "instance": {
91392	//       "description": "The instance name for this request.",
91393	//       "location": "path",
91394	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91395	//       "required": true,
91396	//       "type": "string"
91397	//     },
91398	//     "networkInterface": {
91399	//       "description": "The name of the network interface to update.",
91400	//       "location": "query",
91401	//       "required": true,
91402	//       "type": "string"
91403	//     },
91404	//     "project": {
91405	//       "description": "Project ID for this request.",
91406	//       "location": "path",
91407	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91408	//       "required": true,
91409	//       "type": "string"
91410	//     },
91411	//     "requestId": {
91412	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
91413	//       "location": "query",
91414	//       "type": "string"
91415	//     },
91416	//     "zone": {
91417	//       "description": "The name of the zone for this request.",
91418	//       "location": "path",
91419	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91420	//       "required": true,
91421	//       "type": "string"
91422	//     }
91423	//   },
91424	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/updateNetworkInterface",
91425	//   "request": {
91426	//     "$ref": "NetworkInterface"
91427	//   },
91428	//   "response": {
91429	//     "$ref": "Operation"
91430	//   },
91431	//   "scopes": [
91432	//     "https://www.googleapis.com/auth/cloud-platform",
91433	//     "https://www.googleapis.com/auth/compute"
91434	//   ]
91435	// }
91436
91437}
91438
91439// method id "compute.instances.updateShieldedInstanceConfig":
91440
91441type InstancesUpdateShieldedInstanceConfigCall struct {
91442	s                      *Service
91443	project                string
91444	zone                   string
91445	instance               string
91446	shieldedinstanceconfig *ShieldedInstanceConfig
91447	urlParams_             gensupport.URLParams
91448	ctx_                   context.Context
91449	header_                http.Header
91450}
91451
91452// UpdateShieldedInstanceConfig: Updates the Shielded Instance config
91453// for an instance. You can only use this method on a stopped instance.
91454// This method supports PATCH semantics and uses the JSON merge patch
91455// format and processing rules.
91456//
91457// - instance: Name or id of the instance scoping this request.
91458// - project: Project ID for this request.
91459// - zone: The name of the zone for this request.
91460func (r *InstancesService) UpdateShieldedInstanceConfig(project string, zone string, instance string, shieldedinstanceconfig *ShieldedInstanceConfig) *InstancesUpdateShieldedInstanceConfigCall {
91461	c := &InstancesUpdateShieldedInstanceConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91462	c.project = project
91463	c.zone = zone
91464	c.instance = instance
91465	c.shieldedinstanceconfig = shieldedinstanceconfig
91466	return c
91467}
91468
91469// RequestId sets the optional parameter "requestId": An optional
91470// request ID to identify requests. Specify a unique request ID so that
91471// if you must retry your request, the server will know to ignore the
91472// request if it has already been completed.
91473//
91474// For example, consider a situation where you make an initial request
91475// and the request times out. If you make the request again with the
91476// same request ID, the server can check if original operation with the
91477// same request ID was received, and if so, will ignore the second
91478// request. This prevents clients from accidentally creating duplicate
91479// commitments.
91480//
91481// The request ID must be a valid UUID with the exception that zero UUID
91482// is not supported (00000000-0000-0000-0000-000000000000).
91483func (c *InstancesUpdateShieldedInstanceConfigCall) RequestId(requestId string) *InstancesUpdateShieldedInstanceConfigCall {
91484	c.urlParams_.Set("requestId", requestId)
91485	return c
91486}
91487
91488// Fields allows partial responses to be retrieved. See
91489// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91490// for more information.
91491func (c *InstancesUpdateShieldedInstanceConfigCall) Fields(s ...googleapi.Field) *InstancesUpdateShieldedInstanceConfigCall {
91492	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91493	return c
91494}
91495
91496// Context sets the context to be used in this call's Do method. Any
91497// pending HTTP request will be aborted if the provided context is
91498// canceled.
91499func (c *InstancesUpdateShieldedInstanceConfigCall) Context(ctx context.Context) *InstancesUpdateShieldedInstanceConfigCall {
91500	c.ctx_ = ctx
91501	return c
91502}
91503
91504// Header returns an http.Header that can be modified by the caller to
91505// add HTTP headers to the request.
91506func (c *InstancesUpdateShieldedInstanceConfigCall) Header() http.Header {
91507	if c.header_ == nil {
91508		c.header_ = make(http.Header)
91509	}
91510	return c.header_
91511}
91512
91513func (c *InstancesUpdateShieldedInstanceConfigCall) doRequest(alt string) (*http.Response, error) {
91514	reqHeaders := make(http.Header)
91515	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
91516	for k, v := range c.header_ {
91517		reqHeaders[k] = v
91518	}
91519	reqHeaders.Set("User-Agent", c.s.userAgent())
91520	var body io.Reader = nil
91521	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedinstanceconfig)
91522	if err != nil {
91523		return nil, err
91524	}
91525	reqHeaders.Set("Content-Type", "application/json")
91526	c.urlParams_.Set("alt", alt)
91527	c.urlParams_.Set("prettyPrint", "false")
91528	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig")
91529	urls += "?" + c.urlParams_.Encode()
91530	req, err := http.NewRequest("PATCH", urls, body)
91531	if err != nil {
91532		return nil, err
91533	}
91534	req.Header = reqHeaders
91535	googleapi.Expand(req.URL, map[string]string{
91536		"project":  c.project,
91537		"zone":     c.zone,
91538		"instance": c.instance,
91539	})
91540	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91541}
91542
91543// Do executes the "compute.instances.updateShieldedInstanceConfig" call.
91544// Exactly one of *Operation or error will be non-nil. Any non-2xx
91545// status code is an error. Response headers are in either
91546// *Operation.ServerResponse.Header or (if a response was returned at
91547// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
91548// to check whether the returned error was because
91549// http.StatusNotModified was returned.
91550func (c *InstancesUpdateShieldedInstanceConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
91551	gensupport.SetOptions(c.urlParams_, opts...)
91552	res, err := c.doRequest("json")
91553	if res != nil && res.StatusCode == http.StatusNotModified {
91554		if res.Body != nil {
91555			res.Body.Close()
91556		}
91557		return nil, &googleapi.Error{
91558			Code:   res.StatusCode,
91559			Header: res.Header,
91560		}
91561	}
91562	if err != nil {
91563		return nil, err
91564	}
91565	defer googleapi.CloseBody(res)
91566	if err := googleapi.CheckResponse(res); err != nil {
91567		return nil, err
91568	}
91569	ret := &Operation{
91570		ServerResponse: googleapi.ServerResponse{
91571			Header:         res.Header,
91572			HTTPStatusCode: res.StatusCode,
91573		},
91574	}
91575	target := &ret
91576	if err := gensupport.DecodeResponse(target, res); err != nil {
91577		return nil, err
91578	}
91579	return ret, nil
91580	// {
91581	//   "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.",
91582	//   "httpMethod": "PATCH",
91583	//   "id": "compute.instances.updateShieldedInstanceConfig",
91584	//   "parameterOrder": [
91585	//     "project",
91586	//     "zone",
91587	//     "instance"
91588	//   ],
91589	//   "parameters": {
91590	//     "instance": {
91591	//       "description": "Name or id of the instance scoping this request.",
91592	//       "location": "path",
91593	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91594	//       "required": true,
91595	//       "type": "string"
91596	//     },
91597	//     "project": {
91598	//       "description": "Project ID for this request.",
91599	//       "location": "path",
91600	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91601	//       "required": true,
91602	//       "type": "string"
91603	//     },
91604	//     "requestId": {
91605	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
91606	//       "location": "query",
91607	//       "type": "string"
91608	//     },
91609	//     "zone": {
91610	//       "description": "The name of the zone for this request.",
91611	//       "location": "path",
91612	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91613	//       "required": true,
91614	//       "type": "string"
91615	//     }
91616	//   },
91617	//   "path": "projects/{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig",
91618	//   "request": {
91619	//     "$ref": "ShieldedInstanceConfig"
91620	//   },
91621	//   "response": {
91622	//     "$ref": "Operation"
91623	//   },
91624	//   "scopes": [
91625	//     "https://www.googleapis.com/auth/cloud-platform",
91626	//     "https://www.googleapis.com/auth/compute"
91627	//   ]
91628	// }
91629
91630}
91631
91632// method id "compute.interconnectAttachments.aggregatedList":
91633
91634type InterconnectAttachmentsAggregatedListCall struct {
91635	s            *Service
91636	project      string
91637	urlParams_   gensupport.URLParams
91638	ifNoneMatch_ string
91639	ctx_         context.Context
91640	header_      http.Header
91641}
91642
91643// AggregatedList: Retrieves an aggregated list of interconnect
91644// attachments.
91645//
91646// - project: Project ID for this request.
91647func (r *InterconnectAttachmentsService) AggregatedList(project string) *InterconnectAttachmentsAggregatedListCall {
91648	c := &InterconnectAttachmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91649	c.project = project
91650	return c
91651}
91652
91653// Filter sets the optional parameter "filter": A filter expression that
91654// filters resources listed in the response. The expression must specify
91655// the field name, a comparison operator, and the value that you want to
91656// use for filtering. The value must be a string, a number, or a
91657// boolean. The comparison operator must be either `=`, `!=`, `>`, or
91658// `<`.
91659//
91660// For example, if you are filtering Compute Engine instances, you can
91661// exclude instances named `example-instance` by specifying `name !=
91662// example-instance`.
91663//
91664// You can also filter nested fields. For example, you could specify
91665// `scheduling.automaticRestart = false` to include instances only if
91666// they are not scheduled for automatic restarts. You can use filtering
91667// on nested fields to filter based on resource labels.
91668//
91669// To filter on multiple expressions, provide each separate expression
91670// within parentheses. For example: ``` (scheduling.automaticRestart =
91671// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
91672// is an `AND` expression. However, you can include `AND` and `OR`
91673// expressions explicitly. For example: ``` (cpuPlatform = "Intel
91674// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
91675// (scheduling.automaticRestart = true) ```
91676func (c *InterconnectAttachmentsAggregatedListCall) Filter(filter string) *InterconnectAttachmentsAggregatedListCall {
91677	c.urlParams_.Set("filter", filter)
91678	return c
91679}
91680
91681// IncludeAllScopes sets the optional parameter "includeAllScopes":
91682// Indicates whether every visible scope for each scope type (zone,
91683// region, global) should be included in the response. For new resource
91684// types added after this field, the flag has no effect as new resource
91685// types will always include every visible scope for each scope type in
91686// response. For resource types which predate this field, if this flag
91687// is omitted or false, only scopes of the scope types where the
91688// resource type is expected to be found will be included.
91689func (c *InterconnectAttachmentsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InterconnectAttachmentsAggregatedListCall {
91690	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
91691	return c
91692}
91693
91694// MaxResults sets the optional parameter "maxResults": The maximum
91695// number of results per page that should be returned. If the number of
91696// available results is larger than `maxResults`, Compute Engine returns
91697// a `nextPageToken` that can be used to get the next page of results in
91698// subsequent list requests. Acceptable values are `0` to `500`,
91699// inclusive. (Default: `500`)
91700func (c *InterconnectAttachmentsAggregatedListCall) MaxResults(maxResults int64) *InterconnectAttachmentsAggregatedListCall {
91701	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
91702	return c
91703}
91704
91705// OrderBy sets the optional parameter "orderBy": Sorts list results by
91706// a certain order. By default, results are returned in alphanumerical
91707// order based on the resource name.
91708//
91709// You can also sort results in descending order based on the creation
91710// timestamp using `orderBy="creationTimestamp desc". This sorts
91711// results based on the `creationTimestamp` field in reverse
91712// chronological order (newest result first). Use this to sort resources
91713// like operations so that the newest operation is returned
91714// first.
91715//
91716// Currently, only sorting by `name` or `creationTimestamp desc` is
91717// supported.
91718func (c *InterconnectAttachmentsAggregatedListCall) OrderBy(orderBy string) *InterconnectAttachmentsAggregatedListCall {
91719	c.urlParams_.Set("orderBy", orderBy)
91720	return c
91721}
91722
91723// PageToken sets the optional parameter "pageToken": Specifies a page
91724// token to use. Set `pageToken` to the `nextPageToken` returned by a
91725// previous list request to get the next page of results.
91726func (c *InterconnectAttachmentsAggregatedListCall) PageToken(pageToken string) *InterconnectAttachmentsAggregatedListCall {
91727	c.urlParams_.Set("pageToken", pageToken)
91728	return c
91729}
91730
91731// ReturnPartialSuccess sets the optional parameter
91732// "returnPartialSuccess": Opt-in for partial success behavior which
91733// provides partial results in case of failure. The default value is
91734// false.
91735func (c *InterconnectAttachmentsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InterconnectAttachmentsAggregatedListCall {
91736	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
91737	return c
91738}
91739
91740// Fields allows partial responses to be retrieved. See
91741// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91742// for more information.
91743func (c *InterconnectAttachmentsAggregatedListCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsAggregatedListCall {
91744	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91745	return c
91746}
91747
91748// IfNoneMatch sets the optional parameter which makes the operation
91749// fail if the object's ETag matches the given value. This is useful for
91750// getting updates only after the object has changed since the last
91751// request. Use googleapi.IsNotModified to check whether the response
91752// error from Do is the result of In-None-Match.
91753func (c *InterconnectAttachmentsAggregatedListCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsAggregatedListCall {
91754	c.ifNoneMatch_ = entityTag
91755	return c
91756}
91757
91758// Context sets the context to be used in this call's Do method. Any
91759// pending HTTP request will be aborted if the provided context is
91760// canceled.
91761func (c *InterconnectAttachmentsAggregatedListCall) Context(ctx context.Context) *InterconnectAttachmentsAggregatedListCall {
91762	c.ctx_ = ctx
91763	return c
91764}
91765
91766// Header returns an http.Header that can be modified by the caller to
91767// add HTTP headers to the request.
91768func (c *InterconnectAttachmentsAggregatedListCall) Header() http.Header {
91769	if c.header_ == nil {
91770		c.header_ = make(http.Header)
91771	}
91772	return c.header_
91773}
91774
91775func (c *InterconnectAttachmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
91776	reqHeaders := make(http.Header)
91777	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
91778	for k, v := range c.header_ {
91779		reqHeaders[k] = v
91780	}
91781	reqHeaders.Set("User-Agent", c.s.userAgent())
91782	if c.ifNoneMatch_ != "" {
91783		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
91784	}
91785	var body io.Reader = nil
91786	c.urlParams_.Set("alt", alt)
91787	c.urlParams_.Set("prettyPrint", "false")
91788	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/interconnectAttachments")
91789	urls += "?" + c.urlParams_.Encode()
91790	req, err := http.NewRequest("GET", urls, body)
91791	if err != nil {
91792		return nil, err
91793	}
91794	req.Header = reqHeaders
91795	googleapi.Expand(req.URL, map[string]string{
91796		"project": c.project,
91797	})
91798	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91799}
91800
91801// Do executes the "compute.interconnectAttachments.aggregatedList" call.
91802// Exactly one of *InterconnectAttachmentAggregatedList or error will be
91803// non-nil. Any non-2xx status code is an error. Response headers are in
91804// either *InterconnectAttachmentAggregatedList.ServerResponse.Header or
91805// (if a response was returned at all) in
91806// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
91807// whether the returned error was because http.StatusNotModified was
91808// returned.
91809func (c *InterconnectAttachmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachmentAggregatedList, error) {
91810	gensupport.SetOptions(c.urlParams_, opts...)
91811	res, err := c.doRequest("json")
91812	if res != nil && res.StatusCode == http.StatusNotModified {
91813		if res.Body != nil {
91814			res.Body.Close()
91815		}
91816		return nil, &googleapi.Error{
91817			Code:   res.StatusCode,
91818			Header: res.Header,
91819		}
91820	}
91821	if err != nil {
91822		return nil, err
91823	}
91824	defer googleapi.CloseBody(res)
91825	if err := googleapi.CheckResponse(res); err != nil {
91826		return nil, err
91827	}
91828	ret := &InterconnectAttachmentAggregatedList{
91829		ServerResponse: googleapi.ServerResponse{
91830			Header:         res.Header,
91831			HTTPStatusCode: res.StatusCode,
91832		},
91833	}
91834	target := &ret
91835	if err := gensupport.DecodeResponse(target, res); err != nil {
91836		return nil, err
91837	}
91838	return ret, nil
91839	// {
91840	//   "description": "Retrieves an aggregated list of interconnect attachments.",
91841	//   "httpMethod": "GET",
91842	//   "id": "compute.interconnectAttachments.aggregatedList",
91843	//   "parameterOrder": [
91844	//     "project"
91845	//   ],
91846	//   "parameters": {
91847	//     "filter": {
91848	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
91849	//       "location": "query",
91850	//       "type": "string"
91851	//     },
91852	//     "includeAllScopes": {
91853	//       "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.",
91854	//       "location": "query",
91855	//       "type": "boolean"
91856	//     },
91857	//     "maxResults": {
91858	//       "default": "500",
91859	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
91860	//       "format": "uint32",
91861	//       "location": "query",
91862	//       "minimum": "0",
91863	//       "type": "integer"
91864	//     },
91865	//     "orderBy": {
91866	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
91867	//       "location": "query",
91868	//       "type": "string"
91869	//     },
91870	//     "pageToken": {
91871	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
91872	//       "location": "query",
91873	//       "type": "string"
91874	//     },
91875	//     "project": {
91876	//       "description": "Project ID for this request.",
91877	//       "location": "path",
91878	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91879	//       "required": true,
91880	//       "type": "string"
91881	//     },
91882	//     "returnPartialSuccess": {
91883	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
91884	//       "location": "query",
91885	//       "type": "boolean"
91886	//     }
91887	//   },
91888	//   "path": "projects/{project}/aggregated/interconnectAttachments",
91889	//   "response": {
91890	//     "$ref": "InterconnectAttachmentAggregatedList"
91891	//   },
91892	//   "scopes": [
91893	//     "https://www.googleapis.com/auth/cloud-platform",
91894	//     "https://www.googleapis.com/auth/compute",
91895	//     "https://www.googleapis.com/auth/compute.readonly"
91896	//   ]
91897	// }
91898
91899}
91900
91901// Pages invokes f for each page of results.
91902// A non-nil error returned from f will halt the iteration.
91903// The provided context supersedes any context provided to the Context method.
91904func (c *InterconnectAttachmentsAggregatedListCall) Pages(ctx context.Context, f func(*InterconnectAttachmentAggregatedList) error) error {
91905	c.ctx_ = ctx
91906	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
91907	for {
91908		x, err := c.Do()
91909		if err != nil {
91910			return err
91911		}
91912		if err := f(x); err != nil {
91913			return err
91914		}
91915		if x.NextPageToken == "" {
91916			return nil
91917		}
91918		c.PageToken(x.NextPageToken)
91919	}
91920}
91921
91922// method id "compute.interconnectAttachments.delete":
91923
91924type InterconnectAttachmentsDeleteCall struct {
91925	s                      *Service
91926	project                string
91927	region                 string
91928	interconnectAttachment string
91929	urlParams_             gensupport.URLParams
91930	ctx_                   context.Context
91931	header_                http.Header
91932}
91933
91934// Delete: Deletes the specified interconnect attachment.
91935//
91936// - interconnectAttachment: Name of the interconnect attachment to
91937//   delete.
91938// - project: Project ID for this request.
91939// - region: Name of the region for this request.
91940func (r *InterconnectAttachmentsService) Delete(project string, region string, interconnectAttachment string) *InterconnectAttachmentsDeleteCall {
91941	c := &InterconnectAttachmentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91942	c.project = project
91943	c.region = region
91944	c.interconnectAttachment = interconnectAttachment
91945	return c
91946}
91947
91948// RequestId sets the optional parameter "requestId": An optional
91949// request ID to identify requests. Specify a unique request ID so that
91950// if you must retry your request, the server will know to ignore the
91951// request if it has already been completed.
91952//
91953// For example, consider a situation where you make an initial request
91954// and the request times out. If you make the request again with the
91955// same request ID, the server can check if original operation with the
91956// same request ID was received, and if so, will ignore the second
91957// request. This prevents clients from accidentally creating duplicate
91958// commitments.
91959//
91960// The request ID must be a valid UUID with the exception that zero UUID
91961// is not supported (00000000-0000-0000-0000-000000000000).
91962func (c *InterconnectAttachmentsDeleteCall) RequestId(requestId string) *InterconnectAttachmentsDeleteCall {
91963	c.urlParams_.Set("requestId", requestId)
91964	return c
91965}
91966
91967// Fields allows partial responses to be retrieved. See
91968// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91969// for more information.
91970func (c *InterconnectAttachmentsDeleteCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsDeleteCall {
91971	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91972	return c
91973}
91974
91975// Context sets the context to be used in this call's Do method. Any
91976// pending HTTP request will be aborted if the provided context is
91977// canceled.
91978func (c *InterconnectAttachmentsDeleteCall) Context(ctx context.Context) *InterconnectAttachmentsDeleteCall {
91979	c.ctx_ = ctx
91980	return c
91981}
91982
91983// Header returns an http.Header that can be modified by the caller to
91984// add HTTP headers to the request.
91985func (c *InterconnectAttachmentsDeleteCall) Header() http.Header {
91986	if c.header_ == nil {
91987		c.header_ = make(http.Header)
91988	}
91989	return c.header_
91990}
91991
91992func (c *InterconnectAttachmentsDeleteCall) doRequest(alt string) (*http.Response, error) {
91993	reqHeaders := make(http.Header)
91994	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
91995	for k, v := range c.header_ {
91996		reqHeaders[k] = v
91997	}
91998	reqHeaders.Set("User-Agent", c.s.userAgent())
91999	var body io.Reader = nil
92000	c.urlParams_.Set("alt", alt)
92001	c.urlParams_.Set("prettyPrint", "false")
92002	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
92003	urls += "?" + c.urlParams_.Encode()
92004	req, err := http.NewRequest("DELETE", urls, body)
92005	if err != nil {
92006		return nil, err
92007	}
92008	req.Header = reqHeaders
92009	googleapi.Expand(req.URL, map[string]string{
92010		"project":                c.project,
92011		"region":                 c.region,
92012		"interconnectAttachment": c.interconnectAttachment,
92013	})
92014	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92015}
92016
92017// Do executes the "compute.interconnectAttachments.delete" call.
92018// Exactly one of *Operation or error will be non-nil. Any non-2xx
92019// status code is an error. Response headers are in either
92020// *Operation.ServerResponse.Header or (if a response was returned at
92021// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92022// to check whether the returned error was because
92023// http.StatusNotModified was returned.
92024func (c *InterconnectAttachmentsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92025	gensupport.SetOptions(c.urlParams_, opts...)
92026	res, err := c.doRequest("json")
92027	if res != nil && res.StatusCode == http.StatusNotModified {
92028		if res.Body != nil {
92029			res.Body.Close()
92030		}
92031		return nil, &googleapi.Error{
92032			Code:   res.StatusCode,
92033			Header: res.Header,
92034		}
92035	}
92036	if err != nil {
92037		return nil, err
92038	}
92039	defer googleapi.CloseBody(res)
92040	if err := googleapi.CheckResponse(res); err != nil {
92041		return nil, err
92042	}
92043	ret := &Operation{
92044		ServerResponse: googleapi.ServerResponse{
92045			Header:         res.Header,
92046			HTTPStatusCode: res.StatusCode,
92047		},
92048	}
92049	target := &ret
92050	if err := gensupport.DecodeResponse(target, res); err != nil {
92051		return nil, err
92052	}
92053	return ret, nil
92054	// {
92055	//   "description": "Deletes the specified interconnect attachment.",
92056	//   "httpMethod": "DELETE",
92057	//   "id": "compute.interconnectAttachments.delete",
92058	//   "parameterOrder": [
92059	//     "project",
92060	//     "region",
92061	//     "interconnectAttachment"
92062	//   ],
92063	//   "parameters": {
92064	//     "interconnectAttachment": {
92065	//       "description": "Name of the interconnect attachment to delete.",
92066	//       "location": "path",
92067	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92068	//       "required": true,
92069	//       "type": "string"
92070	//     },
92071	//     "project": {
92072	//       "description": "Project ID for this request.",
92073	//       "location": "path",
92074	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92075	//       "required": true,
92076	//       "type": "string"
92077	//     },
92078	//     "region": {
92079	//       "description": "Name of the region for this request.",
92080	//       "location": "path",
92081	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92082	//       "required": true,
92083	//       "type": "string"
92084	//     },
92085	//     "requestId": {
92086	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
92087	//       "location": "query",
92088	//       "type": "string"
92089	//     }
92090	//   },
92091	//   "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
92092	//   "response": {
92093	//     "$ref": "Operation"
92094	//   },
92095	//   "scopes": [
92096	//     "https://www.googleapis.com/auth/cloud-platform",
92097	//     "https://www.googleapis.com/auth/compute"
92098	//   ]
92099	// }
92100
92101}
92102
92103// method id "compute.interconnectAttachments.get":
92104
92105type InterconnectAttachmentsGetCall struct {
92106	s                      *Service
92107	project                string
92108	region                 string
92109	interconnectAttachment string
92110	urlParams_             gensupport.URLParams
92111	ifNoneMatch_           string
92112	ctx_                   context.Context
92113	header_                http.Header
92114}
92115
92116// Get: Returns the specified interconnect attachment.
92117//
92118// - interconnectAttachment: Name of the interconnect attachment to
92119//   return.
92120// - project: Project ID for this request.
92121// - region: Name of the region for this request.
92122func (r *InterconnectAttachmentsService) Get(project string, region string, interconnectAttachment string) *InterconnectAttachmentsGetCall {
92123	c := &InterconnectAttachmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92124	c.project = project
92125	c.region = region
92126	c.interconnectAttachment = interconnectAttachment
92127	return c
92128}
92129
92130// Fields allows partial responses to be retrieved. See
92131// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92132// for more information.
92133func (c *InterconnectAttachmentsGetCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsGetCall {
92134	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92135	return c
92136}
92137
92138// IfNoneMatch sets the optional parameter which makes the operation
92139// fail if the object's ETag matches the given value. This is useful for
92140// getting updates only after the object has changed since the last
92141// request. Use googleapi.IsNotModified to check whether the response
92142// error from Do is the result of In-None-Match.
92143func (c *InterconnectAttachmentsGetCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsGetCall {
92144	c.ifNoneMatch_ = entityTag
92145	return c
92146}
92147
92148// Context sets the context to be used in this call's Do method. Any
92149// pending HTTP request will be aborted if the provided context is
92150// canceled.
92151func (c *InterconnectAttachmentsGetCall) Context(ctx context.Context) *InterconnectAttachmentsGetCall {
92152	c.ctx_ = ctx
92153	return c
92154}
92155
92156// Header returns an http.Header that can be modified by the caller to
92157// add HTTP headers to the request.
92158func (c *InterconnectAttachmentsGetCall) Header() http.Header {
92159	if c.header_ == nil {
92160		c.header_ = make(http.Header)
92161	}
92162	return c.header_
92163}
92164
92165func (c *InterconnectAttachmentsGetCall) doRequest(alt string) (*http.Response, error) {
92166	reqHeaders := make(http.Header)
92167	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
92168	for k, v := range c.header_ {
92169		reqHeaders[k] = v
92170	}
92171	reqHeaders.Set("User-Agent", c.s.userAgent())
92172	if c.ifNoneMatch_ != "" {
92173		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
92174	}
92175	var body io.Reader = nil
92176	c.urlParams_.Set("alt", alt)
92177	c.urlParams_.Set("prettyPrint", "false")
92178	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
92179	urls += "?" + c.urlParams_.Encode()
92180	req, err := http.NewRequest("GET", urls, body)
92181	if err != nil {
92182		return nil, err
92183	}
92184	req.Header = reqHeaders
92185	googleapi.Expand(req.URL, map[string]string{
92186		"project":                c.project,
92187		"region":                 c.region,
92188		"interconnectAttachment": c.interconnectAttachment,
92189	})
92190	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92191}
92192
92193// Do executes the "compute.interconnectAttachments.get" call.
92194// Exactly one of *InterconnectAttachment or error will be non-nil. Any
92195// non-2xx status code is an error. Response headers are in either
92196// *InterconnectAttachment.ServerResponse.Header or (if a response was
92197// returned at all) in error.(*googleapi.Error).Header. Use
92198// googleapi.IsNotModified to check whether the returned error was
92199// because http.StatusNotModified was returned.
92200func (c *InterconnectAttachmentsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachment, error) {
92201	gensupport.SetOptions(c.urlParams_, opts...)
92202	res, err := c.doRequest("json")
92203	if res != nil && res.StatusCode == http.StatusNotModified {
92204		if res.Body != nil {
92205			res.Body.Close()
92206		}
92207		return nil, &googleapi.Error{
92208			Code:   res.StatusCode,
92209			Header: res.Header,
92210		}
92211	}
92212	if err != nil {
92213		return nil, err
92214	}
92215	defer googleapi.CloseBody(res)
92216	if err := googleapi.CheckResponse(res); err != nil {
92217		return nil, err
92218	}
92219	ret := &InterconnectAttachment{
92220		ServerResponse: googleapi.ServerResponse{
92221			Header:         res.Header,
92222			HTTPStatusCode: res.StatusCode,
92223		},
92224	}
92225	target := &ret
92226	if err := gensupport.DecodeResponse(target, res); err != nil {
92227		return nil, err
92228	}
92229	return ret, nil
92230	// {
92231	//   "description": "Returns the specified interconnect attachment.",
92232	//   "httpMethod": "GET",
92233	//   "id": "compute.interconnectAttachments.get",
92234	//   "parameterOrder": [
92235	//     "project",
92236	//     "region",
92237	//     "interconnectAttachment"
92238	//   ],
92239	//   "parameters": {
92240	//     "interconnectAttachment": {
92241	//       "description": "Name of the interconnect attachment to return.",
92242	//       "location": "path",
92243	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92244	//       "required": true,
92245	//       "type": "string"
92246	//     },
92247	//     "project": {
92248	//       "description": "Project ID for this request.",
92249	//       "location": "path",
92250	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92251	//       "required": true,
92252	//       "type": "string"
92253	//     },
92254	//     "region": {
92255	//       "description": "Name of the region for this request.",
92256	//       "location": "path",
92257	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92258	//       "required": true,
92259	//       "type": "string"
92260	//     }
92261	//   },
92262	//   "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
92263	//   "response": {
92264	//     "$ref": "InterconnectAttachment"
92265	//   },
92266	//   "scopes": [
92267	//     "https://www.googleapis.com/auth/cloud-platform",
92268	//     "https://www.googleapis.com/auth/compute",
92269	//     "https://www.googleapis.com/auth/compute.readonly"
92270	//   ]
92271	// }
92272
92273}
92274
92275// method id "compute.interconnectAttachments.insert":
92276
92277type InterconnectAttachmentsInsertCall struct {
92278	s                      *Service
92279	project                string
92280	region                 string
92281	interconnectattachment *InterconnectAttachment
92282	urlParams_             gensupport.URLParams
92283	ctx_                   context.Context
92284	header_                http.Header
92285}
92286
92287// Insert: Creates an InterconnectAttachment in the specified project
92288// using the data included in the request.
92289//
92290// - project: Project ID for this request.
92291// - region: Name of the region for this request.
92292func (r *InterconnectAttachmentsService) Insert(project string, region string, interconnectattachment *InterconnectAttachment) *InterconnectAttachmentsInsertCall {
92293	c := &InterconnectAttachmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92294	c.project = project
92295	c.region = region
92296	c.interconnectattachment = interconnectattachment
92297	return c
92298}
92299
92300// RequestId sets the optional parameter "requestId": An optional
92301// request ID to identify requests. Specify a unique request ID so that
92302// if you must retry your request, the server will know to ignore the
92303// request if it has already been completed.
92304//
92305// For example, consider a situation where you make an initial request
92306// and the request times out. If you make the request again with the
92307// same request ID, the server can check if original operation with the
92308// same request ID was received, and if so, will ignore the second
92309// request. This prevents clients from accidentally creating duplicate
92310// commitments.
92311//
92312// The request ID must be a valid UUID with the exception that zero UUID
92313// is not supported (00000000-0000-0000-0000-000000000000).
92314func (c *InterconnectAttachmentsInsertCall) RequestId(requestId string) *InterconnectAttachmentsInsertCall {
92315	c.urlParams_.Set("requestId", requestId)
92316	return c
92317}
92318
92319// ValidateOnly sets the optional parameter "validateOnly": If true, the
92320// request will not be committed.
92321func (c *InterconnectAttachmentsInsertCall) ValidateOnly(validateOnly bool) *InterconnectAttachmentsInsertCall {
92322	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
92323	return c
92324}
92325
92326// Fields allows partial responses to be retrieved. See
92327// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92328// for more information.
92329func (c *InterconnectAttachmentsInsertCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsInsertCall {
92330	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92331	return c
92332}
92333
92334// Context sets the context to be used in this call's Do method. Any
92335// pending HTTP request will be aborted if the provided context is
92336// canceled.
92337func (c *InterconnectAttachmentsInsertCall) Context(ctx context.Context) *InterconnectAttachmentsInsertCall {
92338	c.ctx_ = ctx
92339	return c
92340}
92341
92342// Header returns an http.Header that can be modified by the caller to
92343// add HTTP headers to the request.
92344func (c *InterconnectAttachmentsInsertCall) Header() http.Header {
92345	if c.header_ == nil {
92346		c.header_ = make(http.Header)
92347	}
92348	return c.header_
92349}
92350
92351func (c *InterconnectAttachmentsInsertCall) doRequest(alt string) (*http.Response, error) {
92352	reqHeaders := make(http.Header)
92353	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
92354	for k, v := range c.header_ {
92355		reqHeaders[k] = v
92356	}
92357	reqHeaders.Set("User-Agent", c.s.userAgent())
92358	var body io.Reader = nil
92359	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnectattachment)
92360	if err != nil {
92361		return nil, err
92362	}
92363	reqHeaders.Set("Content-Type", "application/json")
92364	c.urlParams_.Set("alt", alt)
92365	c.urlParams_.Set("prettyPrint", "false")
92366	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments")
92367	urls += "?" + c.urlParams_.Encode()
92368	req, err := http.NewRequest("POST", urls, body)
92369	if err != nil {
92370		return nil, err
92371	}
92372	req.Header = reqHeaders
92373	googleapi.Expand(req.URL, map[string]string{
92374		"project": c.project,
92375		"region":  c.region,
92376	})
92377	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92378}
92379
92380// Do executes the "compute.interconnectAttachments.insert" call.
92381// Exactly one of *Operation or error will be non-nil. Any non-2xx
92382// status code is an error. Response headers are in either
92383// *Operation.ServerResponse.Header or (if a response was returned at
92384// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92385// to check whether the returned error was because
92386// http.StatusNotModified was returned.
92387func (c *InterconnectAttachmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92388	gensupport.SetOptions(c.urlParams_, opts...)
92389	res, err := c.doRequest("json")
92390	if res != nil && res.StatusCode == http.StatusNotModified {
92391		if res.Body != nil {
92392			res.Body.Close()
92393		}
92394		return nil, &googleapi.Error{
92395			Code:   res.StatusCode,
92396			Header: res.Header,
92397		}
92398	}
92399	if err != nil {
92400		return nil, err
92401	}
92402	defer googleapi.CloseBody(res)
92403	if err := googleapi.CheckResponse(res); err != nil {
92404		return nil, err
92405	}
92406	ret := &Operation{
92407		ServerResponse: googleapi.ServerResponse{
92408			Header:         res.Header,
92409			HTTPStatusCode: res.StatusCode,
92410		},
92411	}
92412	target := &ret
92413	if err := gensupport.DecodeResponse(target, res); err != nil {
92414		return nil, err
92415	}
92416	return ret, nil
92417	// {
92418	//   "description": "Creates an InterconnectAttachment in the specified project using the data included in the request.",
92419	//   "httpMethod": "POST",
92420	//   "id": "compute.interconnectAttachments.insert",
92421	//   "parameterOrder": [
92422	//     "project",
92423	//     "region"
92424	//   ],
92425	//   "parameters": {
92426	//     "project": {
92427	//       "description": "Project ID for this request.",
92428	//       "location": "path",
92429	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92430	//       "required": true,
92431	//       "type": "string"
92432	//     },
92433	//     "region": {
92434	//       "description": "Name of the region for this request.",
92435	//       "location": "path",
92436	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92437	//       "required": true,
92438	//       "type": "string"
92439	//     },
92440	//     "requestId": {
92441	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
92442	//       "location": "query",
92443	//       "type": "string"
92444	//     },
92445	//     "validateOnly": {
92446	//       "description": "If true, the request will not be committed.",
92447	//       "location": "query",
92448	//       "type": "boolean"
92449	//     }
92450	//   },
92451	//   "path": "projects/{project}/regions/{region}/interconnectAttachments",
92452	//   "request": {
92453	//     "$ref": "InterconnectAttachment"
92454	//   },
92455	//   "response": {
92456	//     "$ref": "Operation"
92457	//   },
92458	//   "scopes": [
92459	//     "https://www.googleapis.com/auth/cloud-platform",
92460	//     "https://www.googleapis.com/auth/compute"
92461	//   ]
92462	// }
92463
92464}
92465
92466// method id "compute.interconnectAttachments.list":
92467
92468type InterconnectAttachmentsListCall struct {
92469	s            *Service
92470	project      string
92471	region       string
92472	urlParams_   gensupport.URLParams
92473	ifNoneMatch_ string
92474	ctx_         context.Context
92475	header_      http.Header
92476}
92477
92478// List: Retrieves the list of interconnect attachments contained within
92479// the specified region.
92480//
92481// - project: Project ID for this request.
92482// - region: Name of the region for this request.
92483func (r *InterconnectAttachmentsService) List(project string, region string) *InterconnectAttachmentsListCall {
92484	c := &InterconnectAttachmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92485	c.project = project
92486	c.region = region
92487	return c
92488}
92489
92490// Filter sets the optional parameter "filter": A filter expression that
92491// filters resources listed in the response. The expression must specify
92492// the field name, a comparison operator, and the value that you want to
92493// use for filtering. The value must be a string, a number, or a
92494// boolean. The comparison operator must be either `=`, `!=`, `>`, or
92495// `<`.
92496//
92497// For example, if you are filtering Compute Engine instances, you can
92498// exclude instances named `example-instance` by specifying `name !=
92499// example-instance`.
92500//
92501// You can also filter nested fields. For example, you could specify
92502// `scheduling.automaticRestart = false` to include instances only if
92503// they are not scheduled for automatic restarts. You can use filtering
92504// on nested fields to filter based on resource labels.
92505//
92506// To filter on multiple expressions, provide each separate expression
92507// within parentheses. For example: ``` (scheduling.automaticRestart =
92508// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
92509// is an `AND` expression. However, you can include `AND` and `OR`
92510// expressions explicitly. For example: ``` (cpuPlatform = "Intel
92511// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
92512// (scheduling.automaticRestart = true) ```
92513func (c *InterconnectAttachmentsListCall) Filter(filter string) *InterconnectAttachmentsListCall {
92514	c.urlParams_.Set("filter", filter)
92515	return c
92516}
92517
92518// MaxResults sets the optional parameter "maxResults": The maximum
92519// number of results per page that should be returned. If the number of
92520// available results is larger than `maxResults`, Compute Engine returns
92521// a `nextPageToken` that can be used to get the next page of results in
92522// subsequent list requests. Acceptable values are `0` to `500`,
92523// inclusive. (Default: `500`)
92524func (c *InterconnectAttachmentsListCall) MaxResults(maxResults int64) *InterconnectAttachmentsListCall {
92525	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
92526	return c
92527}
92528
92529// OrderBy sets the optional parameter "orderBy": Sorts list results by
92530// a certain order. By default, results are returned in alphanumerical
92531// order based on the resource name.
92532//
92533// You can also sort results in descending order based on the creation
92534// timestamp using `orderBy="creationTimestamp desc". This sorts
92535// results based on the `creationTimestamp` field in reverse
92536// chronological order (newest result first). Use this to sort resources
92537// like operations so that the newest operation is returned
92538// first.
92539//
92540// Currently, only sorting by `name` or `creationTimestamp desc` is
92541// supported.
92542func (c *InterconnectAttachmentsListCall) OrderBy(orderBy string) *InterconnectAttachmentsListCall {
92543	c.urlParams_.Set("orderBy", orderBy)
92544	return c
92545}
92546
92547// PageToken sets the optional parameter "pageToken": Specifies a page
92548// token to use. Set `pageToken` to the `nextPageToken` returned by a
92549// previous list request to get the next page of results.
92550func (c *InterconnectAttachmentsListCall) PageToken(pageToken string) *InterconnectAttachmentsListCall {
92551	c.urlParams_.Set("pageToken", pageToken)
92552	return c
92553}
92554
92555// ReturnPartialSuccess sets the optional parameter
92556// "returnPartialSuccess": Opt-in for partial success behavior which
92557// provides partial results in case of failure. The default value is
92558// false.
92559func (c *InterconnectAttachmentsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InterconnectAttachmentsListCall {
92560	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
92561	return c
92562}
92563
92564// Fields allows partial responses to be retrieved. See
92565// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92566// for more information.
92567func (c *InterconnectAttachmentsListCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsListCall {
92568	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92569	return c
92570}
92571
92572// IfNoneMatch sets the optional parameter which makes the operation
92573// fail if the object's ETag matches the given value. This is useful for
92574// getting updates only after the object has changed since the last
92575// request. Use googleapi.IsNotModified to check whether the response
92576// error from Do is the result of In-None-Match.
92577func (c *InterconnectAttachmentsListCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsListCall {
92578	c.ifNoneMatch_ = entityTag
92579	return c
92580}
92581
92582// Context sets the context to be used in this call's Do method. Any
92583// pending HTTP request will be aborted if the provided context is
92584// canceled.
92585func (c *InterconnectAttachmentsListCall) Context(ctx context.Context) *InterconnectAttachmentsListCall {
92586	c.ctx_ = ctx
92587	return c
92588}
92589
92590// Header returns an http.Header that can be modified by the caller to
92591// add HTTP headers to the request.
92592func (c *InterconnectAttachmentsListCall) Header() http.Header {
92593	if c.header_ == nil {
92594		c.header_ = make(http.Header)
92595	}
92596	return c.header_
92597}
92598
92599func (c *InterconnectAttachmentsListCall) doRequest(alt string) (*http.Response, error) {
92600	reqHeaders := make(http.Header)
92601	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
92602	for k, v := range c.header_ {
92603		reqHeaders[k] = v
92604	}
92605	reqHeaders.Set("User-Agent", c.s.userAgent())
92606	if c.ifNoneMatch_ != "" {
92607		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
92608	}
92609	var body io.Reader = nil
92610	c.urlParams_.Set("alt", alt)
92611	c.urlParams_.Set("prettyPrint", "false")
92612	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments")
92613	urls += "?" + c.urlParams_.Encode()
92614	req, err := http.NewRequest("GET", urls, body)
92615	if err != nil {
92616		return nil, err
92617	}
92618	req.Header = reqHeaders
92619	googleapi.Expand(req.URL, map[string]string{
92620		"project": c.project,
92621		"region":  c.region,
92622	})
92623	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92624}
92625
92626// Do executes the "compute.interconnectAttachments.list" call.
92627// Exactly one of *InterconnectAttachmentList or error will be non-nil.
92628// Any non-2xx status code is an error. Response headers are in either
92629// *InterconnectAttachmentList.ServerResponse.Header or (if a response
92630// was returned at all) in error.(*googleapi.Error).Header. Use
92631// googleapi.IsNotModified to check whether the returned error was
92632// because http.StatusNotModified was returned.
92633func (c *InterconnectAttachmentsListCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachmentList, error) {
92634	gensupport.SetOptions(c.urlParams_, opts...)
92635	res, err := c.doRequest("json")
92636	if res != nil && res.StatusCode == http.StatusNotModified {
92637		if res.Body != nil {
92638			res.Body.Close()
92639		}
92640		return nil, &googleapi.Error{
92641			Code:   res.StatusCode,
92642			Header: res.Header,
92643		}
92644	}
92645	if err != nil {
92646		return nil, err
92647	}
92648	defer googleapi.CloseBody(res)
92649	if err := googleapi.CheckResponse(res); err != nil {
92650		return nil, err
92651	}
92652	ret := &InterconnectAttachmentList{
92653		ServerResponse: googleapi.ServerResponse{
92654			Header:         res.Header,
92655			HTTPStatusCode: res.StatusCode,
92656		},
92657	}
92658	target := &ret
92659	if err := gensupport.DecodeResponse(target, res); err != nil {
92660		return nil, err
92661	}
92662	return ret, nil
92663	// {
92664	//   "description": "Retrieves the list of interconnect attachments contained within the specified region.",
92665	//   "httpMethod": "GET",
92666	//   "id": "compute.interconnectAttachments.list",
92667	//   "parameterOrder": [
92668	//     "project",
92669	//     "region"
92670	//   ],
92671	//   "parameters": {
92672	//     "filter": {
92673	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
92674	//       "location": "query",
92675	//       "type": "string"
92676	//     },
92677	//     "maxResults": {
92678	//       "default": "500",
92679	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
92680	//       "format": "uint32",
92681	//       "location": "query",
92682	//       "minimum": "0",
92683	//       "type": "integer"
92684	//     },
92685	//     "orderBy": {
92686	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
92687	//       "location": "query",
92688	//       "type": "string"
92689	//     },
92690	//     "pageToken": {
92691	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
92692	//       "location": "query",
92693	//       "type": "string"
92694	//     },
92695	//     "project": {
92696	//       "description": "Project ID for this request.",
92697	//       "location": "path",
92698	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92699	//       "required": true,
92700	//       "type": "string"
92701	//     },
92702	//     "region": {
92703	//       "description": "Name of the region for this request.",
92704	//       "location": "path",
92705	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92706	//       "required": true,
92707	//       "type": "string"
92708	//     },
92709	//     "returnPartialSuccess": {
92710	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
92711	//       "location": "query",
92712	//       "type": "boolean"
92713	//     }
92714	//   },
92715	//   "path": "projects/{project}/regions/{region}/interconnectAttachments",
92716	//   "response": {
92717	//     "$ref": "InterconnectAttachmentList"
92718	//   },
92719	//   "scopes": [
92720	//     "https://www.googleapis.com/auth/cloud-platform",
92721	//     "https://www.googleapis.com/auth/compute",
92722	//     "https://www.googleapis.com/auth/compute.readonly"
92723	//   ]
92724	// }
92725
92726}
92727
92728// Pages invokes f for each page of results.
92729// A non-nil error returned from f will halt the iteration.
92730// The provided context supersedes any context provided to the Context method.
92731func (c *InterconnectAttachmentsListCall) Pages(ctx context.Context, f func(*InterconnectAttachmentList) error) error {
92732	c.ctx_ = ctx
92733	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
92734	for {
92735		x, err := c.Do()
92736		if err != nil {
92737			return err
92738		}
92739		if err := f(x); err != nil {
92740			return err
92741		}
92742		if x.NextPageToken == "" {
92743			return nil
92744		}
92745		c.PageToken(x.NextPageToken)
92746	}
92747}
92748
92749// method id "compute.interconnectAttachments.patch":
92750
92751type InterconnectAttachmentsPatchCall struct {
92752	s                      *Service
92753	project                string
92754	region                 string
92755	interconnectAttachment string
92756	interconnectattachment *InterconnectAttachment
92757	urlParams_             gensupport.URLParams
92758	ctx_                   context.Context
92759	header_                http.Header
92760}
92761
92762// Patch: Updates the specified interconnect attachment with the data
92763// included in the request. This method supports PATCH semantics and
92764// uses the JSON merge patch format and processing rules.
92765//
92766// - interconnectAttachment: Name of the interconnect attachment to
92767//   patch.
92768// - project: Project ID for this request.
92769// - region: Name of the region scoping this request.
92770func (r *InterconnectAttachmentsService) Patch(project string, region string, interconnectAttachment string, interconnectattachment *InterconnectAttachment) *InterconnectAttachmentsPatchCall {
92771	c := &InterconnectAttachmentsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92772	c.project = project
92773	c.region = region
92774	c.interconnectAttachment = interconnectAttachment
92775	c.interconnectattachment = interconnectattachment
92776	return c
92777}
92778
92779// RequestId sets the optional parameter "requestId": An optional
92780// request ID to identify requests. Specify a unique request ID so that
92781// if you must retry your request, the server will know to ignore the
92782// request if it has already been completed.
92783//
92784// For example, consider a situation where you make an initial request
92785// and the request times out. If you make the request again with the
92786// same request ID, the server can check if original operation with the
92787// same request ID was received, and if so, will ignore the second
92788// request. This prevents clients from accidentally creating duplicate
92789// commitments.
92790//
92791// The request ID must be a valid UUID with the exception that zero UUID
92792// is not supported (00000000-0000-0000-0000-000000000000).
92793func (c *InterconnectAttachmentsPatchCall) RequestId(requestId string) *InterconnectAttachmentsPatchCall {
92794	c.urlParams_.Set("requestId", requestId)
92795	return c
92796}
92797
92798// Fields allows partial responses to be retrieved. See
92799// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92800// for more information.
92801func (c *InterconnectAttachmentsPatchCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsPatchCall {
92802	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92803	return c
92804}
92805
92806// Context sets the context to be used in this call's Do method. Any
92807// pending HTTP request will be aborted if the provided context is
92808// canceled.
92809func (c *InterconnectAttachmentsPatchCall) Context(ctx context.Context) *InterconnectAttachmentsPatchCall {
92810	c.ctx_ = ctx
92811	return c
92812}
92813
92814// Header returns an http.Header that can be modified by the caller to
92815// add HTTP headers to the request.
92816func (c *InterconnectAttachmentsPatchCall) Header() http.Header {
92817	if c.header_ == nil {
92818		c.header_ = make(http.Header)
92819	}
92820	return c.header_
92821}
92822
92823func (c *InterconnectAttachmentsPatchCall) doRequest(alt string) (*http.Response, error) {
92824	reqHeaders := make(http.Header)
92825	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
92826	for k, v := range c.header_ {
92827		reqHeaders[k] = v
92828	}
92829	reqHeaders.Set("User-Agent", c.s.userAgent())
92830	var body io.Reader = nil
92831	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnectattachment)
92832	if err != nil {
92833		return nil, err
92834	}
92835	reqHeaders.Set("Content-Type", "application/json")
92836	c.urlParams_.Set("alt", alt)
92837	c.urlParams_.Set("prettyPrint", "false")
92838	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
92839	urls += "?" + c.urlParams_.Encode()
92840	req, err := http.NewRequest("PATCH", urls, body)
92841	if err != nil {
92842		return nil, err
92843	}
92844	req.Header = reqHeaders
92845	googleapi.Expand(req.URL, map[string]string{
92846		"project":                c.project,
92847		"region":                 c.region,
92848		"interconnectAttachment": c.interconnectAttachment,
92849	})
92850	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92851}
92852
92853// Do executes the "compute.interconnectAttachments.patch" call.
92854// Exactly one of *Operation or error will be non-nil. Any non-2xx
92855// status code is an error. Response headers are in either
92856// *Operation.ServerResponse.Header or (if a response was returned at
92857// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92858// to check whether the returned error was because
92859// http.StatusNotModified was returned.
92860func (c *InterconnectAttachmentsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92861	gensupport.SetOptions(c.urlParams_, opts...)
92862	res, err := c.doRequest("json")
92863	if res != nil && res.StatusCode == http.StatusNotModified {
92864		if res.Body != nil {
92865			res.Body.Close()
92866		}
92867		return nil, &googleapi.Error{
92868			Code:   res.StatusCode,
92869			Header: res.Header,
92870		}
92871	}
92872	if err != nil {
92873		return nil, err
92874	}
92875	defer googleapi.CloseBody(res)
92876	if err := googleapi.CheckResponse(res); err != nil {
92877		return nil, err
92878	}
92879	ret := &Operation{
92880		ServerResponse: googleapi.ServerResponse{
92881			Header:         res.Header,
92882			HTTPStatusCode: res.StatusCode,
92883		},
92884	}
92885	target := &ret
92886	if err := gensupport.DecodeResponse(target, res); err != nil {
92887		return nil, err
92888	}
92889	return ret, nil
92890	// {
92891	//   "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.",
92892	//   "httpMethod": "PATCH",
92893	//   "id": "compute.interconnectAttachments.patch",
92894	//   "parameterOrder": [
92895	//     "project",
92896	//     "region",
92897	//     "interconnectAttachment"
92898	//   ],
92899	//   "parameters": {
92900	//     "interconnectAttachment": {
92901	//       "description": "Name of the interconnect attachment to patch.",
92902	//       "location": "path",
92903	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
92904	//       "required": true,
92905	//       "type": "string"
92906	//     },
92907	//     "project": {
92908	//       "description": "Project ID for this request.",
92909	//       "location": "path",
92910	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92911	//       "required": true,
92912	//       "type": "string"
92913	//     },
92914	//     "region": {
92915	//       "description": "Name of the region scoping this request.",
92916	//       "location": "path",
92917	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
92918	//       "required": true,
92919	//       "type": "string"
92920	//     },
92921	//     "requestId": {
92922	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
92923	//       "location": "query",
92924	//       "type": "string"
92925	//     }
92926	//   },
92927	//   "path": "projects/{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
92928	//   "request": {
92929	//     "$ref": "InterconnectAttachment"
92930	//   },
92931	//   "response": {
92932	//     "$ref": "Operation"
92933	//   },
92934	//   "scopes": [
92935	//     "https://www.googleapis.com/auth/cloud-platform",
92936	//     "https://www.googleapis.com/auth/compute"
92937	//   ]
92938	// }
92939
92940}
92941
92942// method id "compute.interconnectLocations.get":
92943
92944type InterconnectLocationsGetCall struct {
92945	s                    *Service
92946	project              string
92947	interconnectLocation string
92948	urlParams_           gensupport.URLParams
92949	ifNoneMatch_         string
92950	ctx_                 context.Context
92951	header_              http.Header
92952}
92953
92954// Get: Returns the details for the specified interconnect location.
92955// Gets a list of available interconnect locations by making a list()
92956// request.
92957//
92958// - interconnectLocation: Name of the interconnect location to return.
92959// - project: Project ID for this request.
92960func (r *InterconnectLocationsService) Get(project string, interconnectLocation string) *InterconnectLocationsGetCall {
92961	c := &InterconnectLocationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92962	c.project = project
92963	c.interconnectLocation = interconnectLocation
92964	return c
92965}
92966
92967// Fields allows partial responses to be retrieved. See
92968// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92969// for more information.
92970func (c *InterconnectLocationsGetCall) Fields(s ...googleapi.Field) *InterconnectLocationsGetCall {
92971	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92972	return c
92973}
92974
92975// IfNoneMatch sets the optional parameter which makes the operation
92976// fail if the object's ETag matches the given value. This is useful for
92977// getting updates only after the object has changed since the last
92978// request. Use googleapi.IsNotModified to check whether the response
92979// error from Do is the result of In-None-Match.
92980func (c *InterconnectLocationsGetCall) IfNoneMatch(entityTag string) *InterconnectLocationsGetCall {
92981	c.ifNoneMatch_ = entityTag
92982	return c
92983}
92984
92985// Context sets the context to be used in this call's Do method. Any
92986// pending HTTP request will be aborted if the provided context is
92987// canceled.
92988func (c *InterconnectLocationsGetCall) Context(ctx context.Context) *InterconnectLocationsGetCall {
92989	c.ctx_ = ctx
92990	return c
92991}
92992
92993// Header returns an http.Header that can be modified by the caller to
92994// add HTTP headers to the request.
92995func (c *InterconnectLocationsGetCall) Header() http.Header {
92996	if c.header_ == nil {
92997		c.header_ = make(http.Header)
92998	}
92999	return c.header_
93000}
93001
93002func (c *InterconnectLocationsGetCall) doRequest(alt string) (*http.Response, error) {
93003	reqHeaders := make(http.Header)
93004	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
93005	for k, v := range c.header_ {
93006		reqHeaders[k] = v
93007	}
93008	reqHeaders.Set("User-Agent", c.s.userAgent())
93009	if c.ifNoneMatch_ != "" {
93010		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
93011	}
93012	var body io.Reader = nil
93013	c.urlParams_.Set("alt", alt)
93014	c.urlParams_.Set("prettyPrint", "false")
93015	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnectLocations/{interconnectLocation}")
93016	urls += "?" + c.urlParams_.Encode()
93017	req, err := http.NewRequest("GET", urls, body)
93018	if err != nil {
93019		return nil, err
93020	}
93021	req.Header = reqHeaders
93022	googleapi.Expand(req.URL, map[string]string{
93023		"project":              c.project,
93024		"interconnectLocation": c.interconnectLocation,
93025	})
93026	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93027}
93028
93029// Do executes the "compute.interconnectLocations.get" call.
93030// Exactly one of *InterconnectLocation or error will be non-nil. Any
93031// non-2xx status code is an error. Response headers are in either
93032// *InterconnectLocation.ServerResponse.Header or (if a response was
93033// returned at all) in error.(*googleapi.Error).Header. Use
93034// googleapi.IsNotModified to check whether the returned error was
93035// because http.StatusNotModified was returned.
93036func (c *InterconnectLocationsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectLocation, error) {
93037	gensupport.SetOptions(c.urlParams_, opts...)
93038	res, err := c.doRequest("json")
93039	if res != nil && res.StatusCode == http.StatusNotModified {
93040		if res.Body != nil {
93041			res.Body.Close()
93042		}
93043		return nil, &googleapi.Error{
93044			Code:   res.StatusCode,
93045			Header: res.Header,
93046		}
93047	}
93048	if err != nil {
93049		return nil, err
93050	}
93051	defer googleapi.CloseBody(res)
93052	if err := googleapi.CheckResponse(res); err != nil {
93053		return nil, err
93054	}
93055	ret := &InterconnectLocation{
93056		ServerResponse: googleapi.ServerResponse{
93057			Header:         res.Header,
93058			HTTPStatusCode: res.StatusCode,
93059		},
93060	}
93061	target := &ret
93062	if err := gensupport.DecodeResponse(target, res); err != nil {
93063		return nil, err
93064	}
93065	return ret, nil
93066	// {
93067	//   "description": "Returns the details for the specified interconnect location. Gets a list of available interconnect locations by making a list() request.",
93068	//   "httpMethod": "GET",
93069	//   "id": "compute.interconnectLocations.get",
93070	//   "parameterOrder": [
93071	//     "project",
93072	//     "interconnectLocation"
93073	//   ],
93074	//   "parameters": {
93075	//     "interconnectLocation": {
93076	//       "description": "Name of the interconnect location to return.",
93077	//       "location": "path",
93078	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93079	//       "required": true,
93080	//       "type": "string"
93081	//     },
93082	//     "project": {
93083	//       "description": "Project ID for this request.",
93084	//       "location": "path",
93085	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93086	//       "required": true,
93087	//       "type": "string"
93088	//     }
93089	//   },
93090	//   "path": "projects/{project}/global/interconnectLocations/{interconnectLocation}",
93091	//   "response": {
93092	//     "$ref": "InterconnectLocation"
93093	//   },
93094	//   "scopes": [
93095	//     "https://www.googleapis.com/auth/cloud-platform",
93096	//     "https://www.googleapis.com/auth/compute",
93097	//     "https://www.googleapis.com/auth/compute.readonly"
93098	//   ]
93099	// }
93100
93101}
93102
93103// method id "compute.interconnectLocations.list":
93104
93105type InterconnectLocationsListCall struct {
93106	s            *Service
93107	project      string
93108	urlParams_   gensupport.URLParams
93109	ifNoneMatch_ string
93110	ctx_         context.Context
93111	header_      http.Header
93112}
93113
93114// List: Retrieves the list of interconnect locations available to the
93115// specified project.
93116//
93117// - project: Project ID for this request.
93118func (r *InterconnectLocationsService) List(project string) *InterconnectLocationsListCall {
93119	c := &InterconnectLocationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93120	c.project = project
93121	return c
93122}
93123
93124// Filter sets the optional parameter "filter": A filter expression that
93125// filters resources listed in the response. The expression must specify
93126// the field name, a comparison operator, and the value that you want to
93127// use for filtering. The value must be a string, a number, or a
93128// boolean. The comparison operator must be either `=`, `!=`, `>`, or
93129// `<`.
93130//
93131// For example, if you are filtering Compute Engine instances, you can
93132// exclude instances named `example-instance` by specifying `name !=
93133// example-instance`.
93134//
93135// You can also filter nested fields. For example, you could specify
93136// `scheduling.automaticRestart = false` to include instances only if
93137// they are not scheduled for automatic restarts. You can use filtering
93138// on nested fields to filter based on resource labels.
93139//
93140// To filter on multiple expressions, provide each separate expression
93141// within parentheses. For example: ``` (scheduling.automaticRestart =
93142// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
93143// is an `AND` expression. However, you can include `AND` and `OR`
93144// expressions explicitly. For example: ``` (cpuPlatform = "Intel
93145// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
93146// (scheduling.automaticRestart = true) ```
93147func (c *InterconnectLocationsListCall) Filter(filter string) *InterconnectLocationsListCall {
93148	c.urlParams_.Set("filter", filter)
93149	return c
93150}
93151
93152// MaxResults sets the optional parameter "maxResults": The maximum
93153// number of results per page that should be returned. If the number of
93154// available results is larger than `maxResults`, Compute Engine returns
93155// a `nextPageToken` that can be used to get the next page of results in
93156// subsequent list requests. Acceptable values are `0` to `500`,
93157// inclusive. (Default: `500`)
93158func (c *InterconnectLocationsListCall) MaxResults(maxResults int64) *InterconnectLocationsListCall {
93159	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
93160	return c
93161}
93162
93163// OrderBy sets the optional parameter "orderBy": Sorts list results by
93164// a certain order. By default, results are returned in alphanumerical
93165// order based on the resource name.
93166//
93167// You can also sort results in descending order based on the creation
93168// timestamp using `orderBy="creationTimestamp desc". This sorts
93169// results based on the `creationTimestamp` field in reverse
93170// chronological order (newest result first). Use this to sort resources
93171// like operations so that the newest operation is returned
93172// first.
93173//
93174// Currently, only sorting by `name` or `creationTimestamp desc` is
93175// supported.
93176func (c *InterconnectLocationsListCall) OrderBy(orderBy string) *InterconnectLocationsListCall {
93177	c.urlParams_.Set("orderBy", orderBy)
93178	return c
93179}
93180
93181// PageToken sets the optional parameter "pageToken": Specifies a page
93182// token to use. Set `pageToken` to the `nextPageToken` returned by a
93183// previous list request to get the next page of results.
93184func (c *InterconnectLocationsListCall) PageToken(pageToken string) *InterconnectLocationsListCall {
93185	c.urlParams_.Set("pageToken", pageToken)
93186	return c
93187}
93188
93189// ReturnPartialSuccess sets the optional parameter
93190// "returnPartialSuccess": Opt-in for partial success behavior which
93191// provides partial results in case of failure. The default value is
93192// false.
93193func (c *InterconnectLocationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InterconnectLocationsListCall {
93194	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
93195	return c
93196}
93197
93198// Fields allows partial responses to be retrieved. See
93199// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93200// for more information.
93201func (c *InterconnectLocationsListCall) Fields(s ...googleapi.Field) *InterconnectLocationsListCall {
93202	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93203	return c
93204}
93205
93206// IfNoneMatch sets the optional parameter which makes the operation
93207// fail if the object's ETag matches the given value. This is useful for
93208// getting updates only after the object has changed since the last
93209// request. Use googleapi.IsNotModified to check whether the response
93210// error from Do is the result of In-None-Match.
93211func (c *InterconnectLocationsListCall) IfNoneMatch(entityTag string) *InterconnectLocationsListCall {
93212	c.ifNoneMatch_ = entityTag
93213	return c
93214}
93215
93216// Context sets the context to be used in this call's Do method. Any
93217// pending HTTP request will be aborted if the provided context is
93218// canceled.
93219func (c *InterconnectLocationsListCall) Context(ctx context.Context) *InterconnectLocationsListCall {
93220	c.ctx_ = ctx
93221	return c
93222}
93223
93224// Header returns an http.Header that can be modified by the caller to
93225// add HTTP headers to the request.
93226func (c *InterconnectLocationsListCall) Header() http.Header {
93227	if c.header_ == nil {
93228		c.header_ = make(http.Header)
93229	}
93230	return c.header_
93231}
93232
93233func (c *InterconnectLocationsListCall) doRequest(alt string) (*http.Response, error) {
93234	reqHeaders := make(http.Header)
93235	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
93236	for k, v := range c.header_ {
93237		reqHeaders[k] = v
93238	}
93239	reqHeaders.Set("User-Agent", c.s.userAgent())
93240	if c.ifNoneMatch_ != "" {
93241		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
93242	}
93243	var body io.Reader = nil
93244	c.urlParams_.Set("alt", alt)
93245	c.urlParams_.Set("prettyPrint", "false")
93246	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnectLocations")
93247	urls += "?" + c.urlParams_.Encode()
93248	req, err := http.NewRequest("GET", urls, body)
93249	if err != nil {
93250		return nil, err
93251	}
93252	req.Header = reqHeaders
93253	googleapi.Expand(req.URL, map[string]string{
93254		"project": c.project,
93255	})
93256	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93257}
93258
93259// Do executes the "compute.interconnectLocations.list" call.
93260// Exactly one of *InterconnectLocationList or error will be non-nil.
93261// Any non-2xx status code is an error. Response headers are in either
93262// *InterconnectLocationList.ServerResponse.Header or (if a response was
93263// returned at all) in error.(*googleapi.Error).Header. Use
93264// googleapi.IsNotModified to check whether the returned error was
93265// because http.StatusNotModified was returned.
93266func (c *InterconnectLocationsListCall) Do(opts ...googleapi.CallOption) (*InterconnectLocationList, error) {
93267	gensupport.SetOptions(c.urlParams_, opts...)
93268	res, err := c.doRequest("json")
93269	if res != nil && res.StatusCode == http.StatusNotModified {
93270		if res.Body != nil {
93271			res.Body.Close()
93272		}
93273		return nil, &googleapi.Error{
93274			Code:   res.StatusCode,
93275			Header: res.Header,
93276		}
93277	}
93278	if err != nil {
93279		return nil, err
93280	}
93281	defer googleapi.CloseBody(res)
93282	if err := googleapi.CheckResponse(res); err != nil {
93283		return nil, err
93284	}
93285	ret := &InterconnectLocationList{
93286		ServerResponse: googleapi.ServerResponse{
93287			Header:         res.Header,
93288			HTTPStatusCode: res.StatusCode,
93289		},
93290	}
93291	target := &ret
93292	if err := gensupport.DecodeResponse(target, res); err != nil {
93293		return nil, err
93294	}
93295	return ret, nil
93296	// {
93297	//   "description": "Retrieves the list of interconnect locations available to the specified project.",
93298	//   "httpMethod": "GET",
93299	//   "id": "compute.interconnectLocations.list",
93300	//   "parameterOrder": [
93301	//     "project"
93302	//   ],
93303	//   "parameters": {
93304	//     "filter": {
93305	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
93306	//       "location": "query",
93307	//       "type": "string"
93308	//     },
93309	//     "maxResults": {
93310	//       "default": "500",
93311	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
93312	//       "format": "uint32",
93313	//       "location": "query",
93314	//       "minimum": "0",
93315	//       "type": "integer"
93316	//     },
93317	//     "orderBy": {
93318	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
93319	//       "location": "query",
93320	//       "type": "string"
93321	//     },
93322	//     "pageToken": {
93323	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
93324	//       "location": "query",
93325	//       "type": "string"
93326	//     },
93327	//     "project": {
93328	//       "description": "Project ID for this request.",
93329	//       "location": "path",
93330	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93331	//       "required": true,
93332	//       "type": "string"
93333	//     },
93334	//     "returnPartialSuccess": {
93335	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
93336	//       "location": "query",
93337	//       "type": "boolean"
93338	//     }
93339	//   },
93340	//   "path": "projects/{project}/global/interconnectLocations",
93341	//   "response": {
93342	//     "$ref": "InterconnectLocationList"
93343	//   },
93344	//   "scopes": [
93345	//     "https://www.googleapis.com/auth/cloud-platform",
93346	//     "https://www.googleapis.com/auth/compute",
93347	//     "https://www.googleapis.com/auth/compute.readonly"
93348	//   ]
93349	// }
93350
93351}
93352
93353// Pages invokes f for each page of results.
93354// A non-nil error returned from f will halt the iteration.
93355// The provided context supersedes any context provided to the Context method.
93356func (c *InterconnectLocationsListCall) Pages(ctx context.Context, f func(*InterconnectLocationList) error) error {
93357	c.ctx_ = ctx
93358	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
93359	for {
93360		x, err := c.Do()
93361		if err != nil {
93362			return err
93363		}
93364		if err := f(x); err != nil {
93365			return err
93366		}
93367		if x.NextPageToken == "" {
93368			return nil
93369		}
93370		c.PageToken(x.NextPageToken)
93371	}
93372}
93373
93374// method id "compute.interconnects.delete":
93375
93376type InterconnectsDeleteCall struct {
93377	s            *Service
93378	project      string
93379	interconnect string
93380	urlParams_   gensupport.URLParams
93381	ctx_         context.Context
93382	header_      http.Header
93383}
93384
93385// Delete: Deletes the specified interconnect.
93386//
93387// - interconnect: Name of the interconnect to delete.
93388// - project: Project ID for this request.
93389func (r *InterconnectsService) Delete(project string, interconnect string) *InterconnectsDeleteCall {
93390	c := &InterconnectsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93391	c.project = project
93392	c.interconnect = interconnect
93393	return c
93394}
93395
93396// RequestId sets the optional parameter "requestId": An optional
93397// request ID to identify requests. Specify a unique request ID so that
93398// if you must retry your request, the server will know to ignore the
93399// request if it has already been completed.
93400//
93401// For example, consider a situation where you make an initial request
93402// and the request times out. If you make the request again with the
93403// same request ID, the server can check if original operation with the
93404// same request ID was received, and if so, will ignore the second
93405// request. This prevents clients from accidentally creating duplicate
93406// commitments.
93407//
93408// The request ID must be a valid UUID with the exception that zero UUID
93409// is not supported (00000000-0000-0000-0000-000000000000).
93410func (c *InterconnectsDeleteCall) RequestId(requestId string) *InterconnectsDeleteCall {
93411	c.urlParams_.Set("requestId", requestId)
93412	return c
93413}
93414
93415// Fields allows partial responses to be retrieved. See
93416// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93417// for more information.
93418func (c *InterconnectsDeleteCall) Fields(s ...googleapi.Field) *InterconnectsDeleteCall {
93419	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93420	return c
93421}
93422
93423// Context sets the context to be used in this call's Do method. Any
93424// pending HTTP request will be aborted if the provided context is
93425// canceled.
93426func (c *InterconnectsDeleteCall) Context(ctx context.Context) *InterconnectsDeleteCall {
93427	c.ctx_ = ctx
93428	return c
93429}
93430
93431// Header returns an http.Header that can be modified by the caller to
93432// add HTTP headers to the request.
93433func (c *InterconnectsDeleteCall) Header() http.Header {
93434	if c.header_ == nil {
93435		c.header_ = make(http.Header)
93436	}
93437	return c.header_
93438}
93439
93440func (c *InterconnectsDeleteCall) doRequest(alt string) (*http.Response, error) {
93441	reqHeaders := make(http.Header)
93442	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
93443	for k, v := range c.header_ {
93444		reqHeaders[k] = v
93445	}
93446	reqHeaders.Set("User-Agent", c.s.userAgent())
93447	var body io.Reader = nil
93448	c.urlParams_.Set("alt", alt)
93449	c.urlParams_.Set("prettyPrint", "false")
93450	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects/{interconnect}")
93451	urls += "?" + c.urlParams_.Encode()
93452	req, err := http.NewRequest("DELETE", urls, body)
93453	if err != nil {
93454		return nil, err
93455	}
93456	req.Header = reqHeaders
93457	googleapi.Expand(req.URL, map[string]string{
93458		"project":      c.project,
93459		"interconnect": c.interconnect,
93460	})
93461	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93462}
93463
93464// Do executes the "compute.interconnects.delete" call.
93465// Exactly one of *Operation or error will be non-nil. Any non-2xx
93466// status code is an error. Response headers are in either
93467// *Operation.ServerResponse.Header or (if a response was returned at
93468// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
93469// to check whether the returned error was because
93470// http.StatusNotModified was returned.
93471func (c *InterconnectsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
93472	gensupport.SetOptions(c.urlParams_, opts...)
93473	res, err := c.doRequest("json")
93474	if res != nil && res.StatusCode == http.StatusNotModified {
93475		if res.Body != nil {
93476			res.Body.Close()
93477		}
93478		return nil, &googleapi.Error{
93479			Code:   res.StatusCode,
93480			Header: res.Header,
93481		}
93482	}
93483	if err != nil {
93484		return nil, err
93485	}
93486	defer googleapi.CloseBody(res)
93487	if err := googleapi.CheckResponse(res); err != nil {
93488		return nil, err
93489	}
93490	ret := &Operation{
93491		ServerResponse: googleapi.ServerResponse{
93492			Header:         res.Header,
93493			HTTPStatusCode: res.StatusCode,
93494		},
93495	}
93496	target := &ret
93497	if err := gensupport.DecodeResponse(target, res); err != nil {
93498		return nil, err
93499	}
93500	return ret, nil
93501	// {
93502	//   "description": "Deletes the specified interconnect.",
93503	//   "httpMethod": "DELETE",
93504	//   "id": "compute.interconnects.delete",
93505	//   "parameterOrder": [
93506	//     "project",
93507	//     "interconnect"
93508	//   ],
93509	//   "parameters": {
93510	//     "interconnect": {
93511	//       "description": "Name of the interconnect to delete.",
93512	//       "location": "path",
93513	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93514	//       "required": true,
93515	//       "type": "string"
93516	//     },
93517	//     "project": {
93518	//       "description": "Project ID for this request.",
93519	//       "location": "path",
93520	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93521	//       "required": true,
93522	//       "type": "string"
93523	//     },
93524	//     "requestId": {
93525	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
93526	//       "location": "query",
93527	//       "type": "string"
93528	//     }
93529	//   },
93530	//   "path": "projects/{project}/global/interconnects/{interconnect}",
93531	//   "response": {
93532	//     "$ref": "Operation"
93533	//   },
93534	//   "scopes": [
93535	//     "https://www.googleapis.com/auth/cloud-platform",
93536	//     "https://www.googleapis.com/auth/compute"
93537	//   ]
93538	// }
93539
93540}
93541
93542// method id "compute.interconnects.get":
93543
93544type InterconnectsGetCall struct {
93545	s            *Service
93546	project      string
93547	interconnect string
93548	urlParams_   gensupport.URLParams
93549	ifNoneMatch_ string
93550	ctx_         context.Context
93551	header_      http.Header
93552}
93553
93554// Get: Returns the specified interconnect. Get a list of available
93555// interconnects by making a list() request.
93556//
93557// - interconnect: Name of the interconnect to return.
93558// - project: Project ID for this request.
93559func (r *InterconnectsService) Get(project string, interconnect string) *InterconnectsGetCall {
93560	c := &InterconnectsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93561	c.project = project
93562	c.interconnect = interconnect
93563	return c
93564}
93565
93566// Fields allows partial responses to be retrieved. See
93567// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93568// for more information.
93569func (c *InterconnectsGetCall) Fields(s ...googleapi.Field) *InterconnectsGetCall {
93570	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93571	return c
93572}
93573
93574// IfNoneMatch sets the optional parameter which makes the operation
93575// fail if the object's ETag matches the given value. This is useful for
93576// getting updates only after the object has changed since the last
93577// request. Use googleapi.IsNotModified to check whether the response
93578// error from Do is the result of In-None-Match.
93579func (c *InterconnectsGetCall) IfNoneMatch(entityTag string) *InterconnectsGetCall {
93580	c.ifNoneMatch_ = entityTag
93581	return c
93582}
93583
93584// Context sets the context to be used in this call's Do method. Any
93585// pending HTTP request will be aborted if the provided context is
93586// canceled.
93587func (c *InterconnectsGetCall) Context(ctx context.Context) *InterconnectsGetCall {
93588	c.ctx_ = ctx
93589	return c
93590}
93591
93592// Header returns an http.Header that can be modified by the caller to
93593// add HTTP headers to the request.
93594func (c *InterconnectsGetCall) Header() http.Header {
93595	if c.header_ == nil {
93596		c.header_ = make(http.Header)
93597	}
93598	return c.header_
93599}
93600
93601func (c *InterconnectsGetCall) doRequest(alt string) (*http.Response, error) {
93602	reqHeaders := make(http.Header)
93603	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
93604	for k, v := range c.header_ {
93605		reqHeaders[k] = v
93606	}
93607	reqHeaders.Set("User-Agent", c.s.userAgent())
93608	if c.ifNoneMatch_ != "" {
93609		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
93610	}
93611	var body io.Reader = nil
93612	c.urlParams_.Set("alt", alt)
93613	c.urlParams_.Set("prettyPrint", "false")
93614	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects/{interconnect}")
93615	urls += "?" + c.urlParams_.Encode()
93616	req, err := http.NewRequest("GET", urls, body)
93617	if err != nil {
93618		return nil, err
93619	}
93620	req.Header = reqHeaders
93621	googleapi.Expand(req.URL, map[string]string{
93622		"project":      c.project,
93623		"interconnect": c.interconnect,
93624	})
93625	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93626}
93627
93628// Do executes the "compute.interconnects.get" call.
93629// Exactly one of *Interconnect or error will be non-nil. Any non-2xx
93630// status code is an error. Response headers are in either
93631// *Interconnect.ServerResponse.Header or (if a response was returned at
93632// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
93633// to check whether the returned error was because
93634// http.StatusNotModified was returned.
93635func (c *InterconnectsGetCall) Do(opts ...googleapi.CallOption) (*Interconnect, error) {
93636	gensupport.SetOptions(c.urlParams_, opts...)
93637	res, err := c.doRequest("json")
93638	if res != nil && res.StatusCode == http.StatusNotModified {
93639		if res.Body != nil {
93640			res.Body.Close()
93641		}
93642		return nil, &googleapi.Error{
93643			Code:   res.StatusCode,
93644			Header: res.Header,
93645		}
93646	}
93647	if err != nil {
93648		return nil, err
93649	}
93650	defer googleapi.CloseBody(res)
93651	if err := googleapi.CheckResponse(res); err != nil {
93652		return nil, err
93653	}
93654	ret := &Interconnect{
93655		ServerResponse: googleapi.ServerResponse{
93656			Header:         res.Header,
93657			HTTPStatusCode: res.StatusCode,
93658		},
93659	}
93660	target := &ret
93661	if err := gensupport.DecodeResponse(target, res); err != nil {
93662		return nil, err
93663	}
93664	return ret, nil
93665	// {
93666	//   "description": "Returns the specified interconnect. Get a list of available interconnects by making a list() request.",
93667	//   "httpMethod": "GET",
93668	//   "id": "compute.interconnects.get",
93669	//   "parameterOrder": [
93670	//     "project",
93671	//     "interconnect"
93672	//   ],
93673	//   "parameters": {
93674	//     "interconnect": {
93675	//       "description": "Name of the interconnect to return.",
93676	//       "location": "path",
93677	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93678	//       "required": true,
93679	//       "type": "string"
93680	//     },
93681	//     "project": {
93682	//       "description": "Project ID for this request.",
93683	//       "location": "path",
93684	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93685	//       "required": true,
93686	//       "type": "string"
93687	//     }
93688	//   },
93689	//   "path": "projects/{project}/global/interconnects/{interconnect}",
93690	//   "response": {
93691	//     "$ref": "Interconnect"
93692	//   },
93693	//   "scopes": [
93694	//     "https://www.googleapis.com/auth/cloud-platform",
93695	//     "https://www.googleapis.com/auth/compute",
93696	//     "https://www.googleapis.com/auth/compute.readonly"
93697	//   ]
93698	// }
93699
93700}
93701
93702// method id "compute.interconnects.getDiagnostics":
93703
93704type InterconnectsGetDiagnosticsCall struct {
93705	s            *Service
93706	project      string
93707	interconnect string
93708	urlParams_   gensupport.URLParams
93709	ifNoneMatch_ string
93710	ctx_         context.Context
93711	header_      http.Header
93712}
93713
93714// GetDiagnostics: Returns the interconnectDiagnostics for the specified
93715// interconnect.
93716//
93717// - interconnect: Name of the interconnect resource to query.
93718// - project: Project ID for this request.
93719func (r *InterconnectsService) GetDiagnostics(project string, interconnect string) *InterconnectsGetDiagnosticsCall {
93720	c := &InterconnectsGetDiagnosticsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93721	c.project = project
93722	c.interconnect = interconnect
93723	return c
93724}
93725
93726// Fields allows partial responses to be retrieved. See
93727// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93728// for more information.
93729func (c *InterconnectsGetDiagnosticsCall) Fields(s ...googleapi.Field) *InterconnectsGetDiagnosticsCall {
93730	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93731	return c
93732}
93733
93734// IfNoneMatch sets the optional parameter which makes the operation
93735// fail if the object's ETag matches the given value. This is useful for
93736// getting updates only after the object has changed since the last
93737// request. Use googleapi.IsNotModified to check whether the response
93738// error from Do is the result of In-None-Match.
93739func (c *InterconnectsGetDiagnosticsCall) IfNoneMatch(entityTag string) *InterconnectsGetDiagnosticsCall {
93740	c.ifNoneMatch_ = entityTag
93741	return c
93742}
93743
93744// Context sets the context to be used in this call's Do method. Any
93745// pending HTTP request will be aborted if the provided context is
93746// canceled.
93747func (c *InterconnectsGetDiagnosticsCall) Context(ctx context.Context) *InterconnectsGetDiagnosticsCall {
93748	c.ctx_ = ctx
93749	return c
93750}
93751
93752// Header returns an http.Header that can be modified by the caller to
93753// add HTTP headers to the request.
93754func (c *InterconnectsGetDiagnosticsCall) Header() http.Header {
93755	if c.header_ == nil {
93756		c.header_ = make(http.Header)
93757	}
93758	return c.header_
93759}
93760
93761func (c *InterconnectsGetDiagnosticsCall) doRequest(alt string) (*http.Response, error) {
93762	reqHeaders := make(http.Header)
93763	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
93764	for k, v := range c.header_ {
93765		reqHeaders[k] = v
93766	}
93767	reqHeaders.Set("User-Agent", c.s.userAgent())
93768	if c.ifNoneMatch_ != "" {
93769		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
93770	}
93771	var body io.Reader = nil
93772	c.urlParams_.Set("alt", alt)
93773	c.urlParams_.Set("prettyPrint", "false")
93774	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects/{interconnect}/getDiagnostics")
93775	urls += "?" + c.urlParams_.Encode()
93776	req, err := http.NewRequest("GET", urls, body)
93777	if err != nil {
93778		return nil, err
93779	}
93780	req.Header = reqHeaders
93781	googleapi.Expand(req.URL, map[string]string{
93782		"project":      c.project,
93783		"interconnect": c.interconnect,
93784	})
93785	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93786}
93787
93788// Do executes the "compute.interconnects.getDiagnostics" call.
93789// Exactly one of *InterconnectsGetDiagnosticsResponse or error will be
93790// non-nil. Any non-2xx status code is an error. Response headers are in
93791// either *InterconnectsGetDiagnosticsResponse.ServerResponse.Header or
93792// (if a response was returned at all) in
93793// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
93794// whether the returned error was because http.StatusNotModified was
93795// returned.
93796func (c *InterconnectsGetDiagnosticsCall) Do(opts ...googleapi.CallOption) (*InterconnectsGetDiagnosticsResponse, error) {
93797	gensupport.SetOptions(c.urlParams_, opts...)
93798	res, err := c.doRequest("json")
93799	if res != nil && res.StatusCode == http.StatusNotModified {
93800		if res.Body != nil {
93801			res.Body.Close()
93802		}
93803		return nil, &googleapi.Error{
93804			Code:   res.StatusCode,
93805			Header: res.Header,
93806		}
93807	}
93808	if err != nil {
93809		return nil, err
93810	}
93811	defer googleapi.CloseBody(res)
93812	if err := googleapi.CheckResponse(res); err != nil {
93813		return nil, err
93814	}
93815	ret := &InterconnectsGetDiagnosticsResponse{
93816		ServerResponse: googleapi.ServerResponse{
93817			Header:         res.Header,
93818			HTTPStatusCode: res.StatusCode,
93819		},
93820	}
93821	target := &ret
93822	if err := gensupport.DecodeResponse(target, res); err != nil {
93823		return nil, err
93824	}
93825	return ret, nil
93826	// {
93827	//   "description": "Returns the interconnectDiagnostics for the specified interconnect.",
93828	//   "httpMethod": "GET",
93829	//   "id": "compute.interconnects.getDiagnostics",
93830	//   "parameterOrder": [
93831	//     "project",
93832	//     "interconnect"
93833	//   ],
93834	//   "parameters": {
93835	//     "interconnect": {
93836	//       "description": "Name of the interconnect resource to query.",
93837	//       "location": "path",
93838	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93839	//       "required": true,
93840	//       "type": "string"
93841	//     },
93842	//     "project": {
93843	//       "description": "Project ID for this request.",
93844	//       "location": "path",
93845	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93846	//       "required": true,
93847	//       "type": "string"
93848	//     }
93849	//   },
93850	//   "path": "projects/{project}/global/interconnects/{interconnect}/getDiagnostics",
93851	//   "response": {
93852	//     "$ref": "InterconnectsGetDiagnosticsResponse"
93853	//   },
93854	//   "scopes": [
93855	//     "https://www.googleapis.com/auth/cloud-platform",
93856	//     "https://www.googleapis.com/auth/compute",
93857	//     "https://www.googleapis.com/auth/compute.readonly"
93858	//   ]
93859	// }
93860
93861}
93862
93863// method id "compute.interconnects.insert":
93864
93865type InterconnectsInsertCall struct {
93866	s            *Service
93867	project      string
93868	interconnect *Interconnect
93869	urlParams_   gensupport.URLParams
93870	ctx_         context.Context
93871	header_      http.Header
93872}
93873
93874// Insert: Creates a Interconnect in the specified project using the
93875// data included in the request.
93876//
93877// - project: Project ID for this request.
93878func (r *InterconnectsService) Insert(project string, interconnect *Interconnect) *InterconnectsInsertCall {
93879	c := &InterconnectsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93880	c.project = project
93881	c.interconnect = interconnect
93882	return c
93883}
93884
93885// RequestId sets the optional parameter "requestId": An optional
93886// request ID to identify requests. Specify a unique request ID so that
93887// if you must retry your request, the server will know to ignore the
93888// request if it has already been completed.
93889//
93890// For example, consider a situation where you make an initial request
93891// and the request times out. If you make the request again with the
93892// same request ID, the server can check if original operation with the
93893// same request ID was received, and if so, will ignore the second
93894// request. This prevents clients from accidentally creating duplicate
93895// commitments.
93896//
93897// The request ID must be a valid UUID with the exception that zero UUID
93898// is not supported (00000000-0000-0000-0000-000000000000).
93899func (c *InterconnectsInsertCall) RequestId(requestId string) *InterconnectsInsertCall {
93900	c.urlParams_.Set("requestId", requestId)
93901	return c
93902}
93903
93904// Fields allows partial responses to be retrieved. See
93905// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93906// for more information.
93907func (c *InterconnectsInsertCall) Fields(s ...googleapi.Field) *InterconnectsInsertCall {
93908	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93909	return c
93910}
93911
93912// Context sets the context to be used in this call's Do method. Any
93913// pending HTTP request will be aborted if the provided context is
93914// canceled.
93915func (c *InterconnectsInsertCall) Context(ctx context.Context) *InterconnectsInsertCall {
93916	c.ctx_ = ctx
93917	return c
93918}
93919
93920// Header returns an http.Header that can be modified by the caller to
93921// add HTTP headers to the request.
93922func (c *InterconnectsInsertCall) Header() http.Header {
93923	if c.header_ == nil {
93924		c.header_ = make(http.Header)
93925	}
93926	return c.header_
93927}
93928
93929func (c *InterconnectsInsertCall) doRequest(alt string) (*http.Response, error) {
93930	reqHeaders := make(http.Header)
93931	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
93932	for k, v := range c.header_ {
93933		reqHeaders[k] = v
93934	}
93935	reqHeaders.Set("User-Agent", c.s.userAgent())
93936	var body io.Reader = nil
93937	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnect)
93938	if err != nil {
93939		return nil, err
93940	}
93941	reqHeaders.Set("Content-Type", "application/json")
93942	c.urlParams_.Set("alt", alt)
93943	c.urlParams_.Set("prettyPrint", "false")
93944	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects")
93945	urls += "?" + c.urlParams_.Encode()
93946	req, err := http.NewRequest("POST", urls, body)
93947	if err != nil {
93948		return nil, err
93949	}
93950	req.Header = reqHeaders
93951	googleapi.Expand(req.URL, map[string]string{
93952		"project": c.project,
93953	})
93954	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93955}
93956
93957// Do executes the "compute.interconnects.insert" call.
93958// Exactly one of *Operation or error will be non-nil. Any non-2xx
93959// status code is an error. Response headers are in either
93960// *Operation.ServerResponse.Header or (if a response was returned at
93961// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
93962// to check whether the returned error was because
93963// http.StatusNotModified was returned.
93964func (c *InterconnectsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
93965	gensupport.SetOptions(c.urlParams_, opts...)
93966	res, err := c.doRequest("json")
93967	if res != nil && res.StatusCode == http.StatusNotModified {
93968		if res.Body != nil {
93969			res.Body.Close()
93970		}
93971		return nil, &googleapi.Error{
93972			Code:   res.StatusCode,
93973			Header: res.Header,
93974		}
93975	}
93976	if err != nil {
93977		return nil, err
93978	}
93979	defer googleapi.CloseBody(res)
93980	if err := googleapi.CheckResponse(res); err != nil {
93981		return nil, err
93982	}
93983	ret := &Operation{
93984		ServerResponse: googleapi.ServerResponse{
93985			Header:         res.Header,
93986			HTTPStatusCode: res.StatusCode,
93987		},
93988	}
93989	target := &ret
93990	if err := gensupport.DecodeResponse(target, res); err != nil {
93991		return nil, err
93992	}
93993	return ret, nil
93994	// {
93995	//   "description": "Creates a Interconnect in the specified project using the data included in the request.",
93996	//   "httpMethod": "POST",
93997	//   "id": "compute.interconnects.insert",
93998	//   "parameterOrder": [
93999	//     "project"
94000	//   ],
94001	//   "parameters": {
94002	//     "project": {
94003	//       "description": "Project ID for this request.",
94004	//       "location": "path",
94005	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94006	//       "required": true,
94007	//       "type": "string"
94008	//     },
94009	//     "requestId": {
94010	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
94011	//       "location": "query",
94012	//       "type": "string"
94013	//     }
94014	//   },
94015	//   "path": "projects/{project}/global/interconnects",
94016	//   "request": {
94017	//     "$ref": "Interconnect"
94018	//   },
94019	//   "response": {
94020	//     "$ref": "Operation"
94021	//   },
94022	//   "scopes": [
94023	//     "https://www.googleapis.com/auth/cloud-platform",
94024	//     "https://www.googleapis.com/auth/compute"
94025	//   ]
94026	// }
94027
94028}
94029
94030// method id "compute.interconnects.list":
94031
94032type InterconnectsListCall struct {
94033	s            *Service
94034	project      string
94035	urlParams_   gensupport.URLParams
94036	ifNoneMatch_ string
94037	ctx_         context.Context
94038	header_      http.Header
94039}
94040
94041// List: Retrieves the list of interconnect available to the specified
94042// project.
94043//
94044// - project: Project ID for this request.
94045func (r *InterconnectsService) List(project string) *InterconnectsListCall {
94046	c := &InterconnectsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94047	c.project = project
94048	return c
94049}
94050
94051// Filter sets the optional parameter "filter": A filter expression that
94052// filters resources listed in the response. The expression must specify
94053// the field name, a comparison operator, and the value that you want to
94054// use for filtering. The value must be a string, a number, or a
94055// boolean. The comparison operator must be either `=`, `!=`, `>`, or
94056// `<`.
94057//
94058// For example, if you are filtering Compute Engine instances, you can
94059// exclude instances named `example-instance` by specifying `name !=
94060// example-instance`.
94061//
94062// You can also filter nested fields. For example, you could specify
94063// `scheduling.automaticRestart = false` to include instances only if
94064// they are not scheduled for automatic restarts. You can use filtering
94065// on nested fields to filter based on resource labels.
94066//
94067// To filter on multiple expressions, provide each separate expression
94068// within parentheses. For example: ``` (scheduling.automaticRestart =
94069// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
94070// is an `AND` expression. However, you can include `AND` and `OR`
94071// expressions explicitly. For example: ``` (cpuPlatform = "Intel
94072// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
94073// (scheduling.automaticRestart = true) ```
94074func (c *InterconnectsListCall) Filter(filter string) *InterconnectsListCall {
94075	c.urlParams_.Set("filter", filter)
94076	return c
94077}
94078
94079// MaxResults sets the optional parameter "maxResults": The maximum
94080// number of results per page that should be returned. If the number of
94081// available results is larger than `maxResults`, Compute Engine returns
94082// a `nextPageToken` that can be used to get the next page of results in
94083// subsequent list requests. Acceptable values are `0` to `500`,
94084// inclusive. (Default: `500`)
94085func (c *InterconnectsListCall) MaxResults(maxResults int64) *InterconnectsListCall {
94086	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
94087	return c
94088}
94089
94090// OrderBy sets the optional parameter "orderBy": Sorts list results by
94091// a certain order. By default, results are returned in alphanumerical
94092// order based on the resource name.
94093//
94094// You can also sort results in descending order based on the creation
94095// timestamp using `orderBy="creationTimestamp desc". This sorts
94096// results based on the `creationTimestamp` field in reverse
94097// chronological order (newest result first). Use this to sort resources
94098// like operations so that the newest operation is returned
94099// first.
94100//
94101// Currently, only sorting by `name` or `creationTimestamp desc` is
94102// supported.
94103func (c *InterconnectsListCall) OrderBy(orderBy string) *InterconnectsListCall {
94104	c.urlParams_.Set("orderBy", orderBy)
94105	return c
94106}
94107
94108// PageToken sets the optional parameter "pageToken": Specifies a page
94109// token to use. Set `pageToken` to the `nextPageToken` returned by a
94110// previous list request to get the next page of results.
94111func (c *InterconnectsListCall) PageToken(pageToken string) *InterconnectsListCall {
94112	c.urlParams_.Set("pageToken", pageToken)
94113	return c
94114}
94115
94116// ReturnPartialSuccess sets the optional parameter
94117// "returnPartialSuccess": Opt-in for partial success behavior which
94118// provides partial results in case of failure. The default value is
94119// false.
94120func (c *InterconnectsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *InterconnectsListCall {
94121	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
94122	return c
94123}
94124
94125// Fields allows partial responses to be retrieved. See
94126// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94127// for more information.
94128func (c *InterconnectsListCall) Fields(s ...googleapi.Field) *InterconnectsListCall {
94129	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94130	return c
94131}
94132
94133// IfNoneMatch sets the optional parameter which makes the operation
94134// fail if the object's ETag matches the given value. This is useful for
94135// getting updates only after the object has changed since the last
94136// request. Use googleapi.IsNotModified to check whether the response
94137// error from Do is the result of In-None-Match.
94138func (c *InterconnectsListCall) IfNoneMatch(entityTag string) *InterconnectsListCall {
94139	c.ifNoneMatch_ = entityTag
94140	return c
94141}
94142
94143// Context sets the context to be used in this call's Do method. Any
94144// pending HTTP request will be aborted if the provided context is
94145// canceled.
94146func (c *InterconnectsListCall) Context(ctx context.Context) *InterconnectsListCall {
94147	c.ctx_ = ctx
94148	return c
94149}
94150
94151// Header returns an http.Header that can be modified by the caller to
94152// add HTTP headers to the request.
94153func (c *InterconnectsListCall) Header() http.Header {
94154	if c.header_ == nil {
94155		c.header_ = make(http.Header)
94156	}
94157	return c.header_
94158}
94159
94160func (c *InterconnectsListCall) doRequest(alt string) (*http.Response, error) {
94161	reqHeaders := make(http.Header)
94162	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
94163	for k, v := range c.header_ {
94164		reqHeaders[k] = v
94165	}
94166	reqHeaders.Set("User-Agent", c.s.userAgent())
94167	if c.ifNoneMatch_ != "" {
94168		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
94169	}
94170	var body io.Reader = nil
94171	c.urlParams_.Set("alt", alt)
94172	c.urlParams_.Set("prettyPrint", "false")
94173	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects")
94174	urls += "?" + c.urlParams_.Encode()
94175	req, err := http.NewRequest("GET", urls, body)
94176	if err != nil {
94177		return nil, err
94178	}
94179	req.Header = reqHeaders
94180	googleapi.Expand(req.URL, map[string]string{
94181		"project": c.project,
94182	})
94183	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94184}
94185
94186// Do executes the "compute.interconnects.list" call.
94187// Exactly one of *InterconnectList or error will be non-nil. Any
94188// non-2xx status code is an error. Response headers are in either
94189// *InterconnectList.ServerResponse.Header or (if a response was
94190// returned at all) in error.(*googleapi.Error).Header. Use
94191// googleapi.IsNotModified to check whether the returned error was
94192// because http.StatusNotModified was returned.
94193func (c *InterconnectsListCall) Do(opts ...googleapi.CallOption) (*InterconnectList, error) {
94194	gensupport.SetOptions(c.urlParams_, opts...)
94195	res, err := c.doRequest("json")
94196	if res != nil && res.StatusCode == http.StatusNotModified {
94197		if res.Body != nil {
94198			res.Body.Close()
94199		}
94200		return nil, &googleapi.Error{
94201			Code:   res.StatusCode,
94202			Header: res.Header,
94203		}
94204	}
94205	if err != nil {
94206		return nil, err
94207	}
94208	defer googleapi.CloseBody(res)
94209	if err := googleapi.CheckResponse(res); err != nil {
94210		return nil, err
94211	}
94212	ret := &InterconnectList{
94213		ServerResponse: googleapi.ServerResponse{
94214			Header:         res.Header,
94215			HTTPStatusCode: res.StatusCode,
94216		},
94217	}
94218	target := &ret
94219	if err := gensupport.DecodeResponse(target, res); err != nil {
94220		return nil, err
94221	}
94222	return ret, nil
94223	// {
94224	//   "description": "Retrieves the list of interconnect available to the specified project.",
94225	//   "httpMethod": "GET",
94226	//   "id": "compute.interconnects.list",
94227	//   "parameterOrder": [
94228	//     "project"
94229	//   ],
94230	//   "parameters": {
94231	//     "filter": {
94232	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
94233	//       "location": "query",
94234	//       "type": "string"
94235	//     },
94236	//     "maxResults": {
94237	//       "default": "500",
94238	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
94239	//       "format": "uint32",
94240	//       "location": "query",
94241	//       "minimum": "0",
94242	//       "type": "integer"
94243	//     },
94244	//     "orderBy": {
94245	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
94246	//       "location": "query",
94247	//       "type": "string"
94248	//     },
94249	//     "pageToken": {
94250	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
94251	//       "location": "query",
94252	//       "type": "string"
94253	//     },
94254	//     "project": {
94255	//       "description": "Project ID for this request.",
94256	//       "location": "path",
94257	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94258	//       "required": true,
94259	//       "type": "string"
94260	//     },
94261	//     "returnPartialSuccess": {
94262	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
94263	//       "location": "query",
94264	//       "type": "boolean"
94265	//     }
94266	//   },
94267	//   "path": "projects/{project}/global/interconnects",
94268	//   "response": {
94269	//     "$ref": "InterconnectList"
94270	//   },
94271	//   "scopes": [
94272	//     "https://www.googleapis.com/auth/cloud-platform",
94273	//     "https://www.googleapis.com/auth/compute",
94274	//     "https://www.googleapis.com/auth/compute.readonly"
94275	//   ]
94276	// }
94277
94278}
94279
94280// Pages invokes f for each page of results.
94281// A non-nil error returned from f will halt the iteration.
94282// The provided context supersedes any context provided to the Context method.
94283func (c *InterconnectsListCall) Pages(ctx context.Context, f func(*InterconnectList) error) error {
94284	c.ctx_ = ctx
94285	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
94286	for {
94287		x, err := c.Do()
94288		if err != nil {
94289			return err
94290		}
94291		if err := f(x); err != nil {
94292			return err
94293		}
94294		if x.NextPageToken == "" {
94295			return nil
94296		}
94297		c.PageToken(x.NextPageToken)
94298	}
94299}
94300
94301// method id "compute.interconnects.patch":
94302
94303type InterconnectsPatchCall struct {
94304	s             *Service
94305	project       string
94306	interconnect  string
94307	interconnect2 *Interconnect
94308	urlParams_    gensupport.URLParams
94309	ctx_          context.Context
94310	header_       http.Header
94311}
94312
94313// Patch: Updates the specified interconnect with the data included in
94314// the request. This method supports PATCH semantics and uses the JSON
94315// merge patch format and processing rules.
94316//
94317// - interconnect: Name of the interconnect to update.
94318// - project: Project ID for this request.
94319func (r *InterconnectsService) Patch(project string, interconnect string, interconnect2 *Interconnect) *InterconnectsPatchCall {
94320	c := &InterconnectsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94321	c.project = project
94322	c.interconnect = interconnect
94323	c.interconnect2 = interconnect2
94324	return c
94325}
94326
94327// RequestId sets the optional parameter "requestId": An optional
94328// request ID to identify requests. Specify a unique request ID so that
94329// if you must retry your request, the server will know to ignore the
94330// request if it has already been completed.
94331//
94332// For example, consider a situation where you make an initial request
94333// and the request times out. If you make the request again with the
94334// same request ID, the server can check if original operation with the
94335// same request ID was received, and if so, will ignore the second
94336// request. This prevents clients from accidentally creating duplicate
94337// commitments.
94338//
94339// The request ID must be a valid UUID with the exception that zero UUID
94340// is not supported (00000000-0000-0000-0000-000000000000).
94341func (c *InterconnectsPatchCall) RequestId(requestId string) *InterconnectsPatchCall {
94342	c.urlParams_.Set("requestId", requestId)
94343	return c
94344}
94345
94346// Fields allows partial responses to be retrieved. See
94347// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94348// for more information.
94349func (c *InterconnectsPatchCall) Fields(s ...googleapi.Field) *InterconnectsPatchCall {
94350	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94351	return c
94352}
94353
94354// Context sets the context to be used in this call's Do method. Any
94355// pending HTTP request will be aborted if the provided context is
94356// canceled.
94357func (c *InterconnectsPatchCall) Context(ctx context.Context) *InterconnectsPatchCall {
94358	c.ctx_ = ctx
94359	return c
94360}
94361
94362// Header returns an http.Header that can be modified by the caller to
94363// add HTTP headers to the request.
94364func (c *InterconnectsPatchCall) Header() http.Header {
94365	if c.header_ == nil {
94366		c.header_ = make(http.Header)
94367	}
94368	return c.header_
94369}
94370
94371func (c *InterconnectsPatchCall) doRequest(alt string) (*http.Response, error) {
94372	reqHeaders := make(http.Header)
94373	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
94374	for k, v := range c.header_ {
94375		reqHeaders[k] = v
94376	}
94377	reqHeaders.Set("User-Agent", c.s.userAgent())
94378	var body io.Reader = nil
94379	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnect2)
94380	if err != nil {
94381		return nil, err
94382	}
94383	reqHeaders.Set("Content-Type", "application/json")
94384	c.urlParams_.Set("alt", alt)
94385	c.urlParams_.Set("prettyPrint", "false")
94386	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/interconnects/{interconnect}")
94387	urls += "?" + c.urlParams_.Encode()
94388	req, err := http.NewRequest("PATCH", urls, body)
94389	if err != nil {
94390		return nil, err
94391	}
94392	req.Header = reqHeaders
94393	googleapi.Expand(req.URL, map[string]string{
94394		"project":      c.project,
94395		"interconnect": c.interconnect,
94396	})
94397	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94398}
94399
94400// Do executes the "compute.interconnects.patch" call.
94401// Exactly one of *Operation or error will be non-nil. Any non-2xx
94402// status code is an error. Response headers are in either
94403// *Operation.ServerResponse.Header or (if a response was returned at
94404// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94405// to check whether the returned error was because
94406// http.StatusNotModified was returned.
94407func (c *InterconnectsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
94408	gensupport.SetOptions(c.urlParams_, opts...)
94409	res, err := c.doRequest("json")
94410	if res != nil && res.StatusCode == http.StatusNotModified {
94411		if res.Body != nil {
94412			res.Body.Close()
94413		}
94414		return nil, &googleapi.Error{
94415			Code:   res.StatusCode,
94416			Header: res.Header,
94417		}
94418	}
94419	if err != nil {
94420		return nil, err
94421	}
94422	defer googleapi.CloseBody(res)
94423	if err := googleapi.CheckResponse(res); err != nil {
94424		return nil, err
94425	}
94426	ret := &Operation{
94427		ServerResponse: googleapi.ServerResponse{
94428			Header:         res.Header,
94429			HTTPStatusCode: res.StatusCode,
94430		},
94431	}
94432	target := &ret
94433	if err := gensupport.DecodeResponse(target, res); err != nil {
94434		return nil, err
94435	}
94436	return ret, nil
94437	// {
94438	//   "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.",
94439	//   "httpMethod": "PATCH",
94440	//   "id": "compute.interconnects.patch",
94441	//   "parameterOrder": [
94442	//     "project",
94443	//     "interconnect"
94444	//   ],
94445	//   "parameters": {
94446	//     "interconnect": {
94447	//       "description": "Name of the interconnect to update.",
94448	//       "location": "path",
94449	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94450	//       "required": true,
94451	//       "type": "string"
94452	//     },
94453	//     "project": {
94454	//       "description": "Project ID for this request.",
94455	//       "location": "path",
94456	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94457	//       "required": true,
94458	//       "type": "string"
94459	//     },
94460	//     "requestId": {
94461	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
94462	//       "location": "query",
94463	//       "type": "string"
94464	//     }
94465	//   },
94466	//   "path": "projects/{project}/global/interconnects/{interconnect}",
94467	//   "request": {
94468	//     "$ref": "Interconnect"
94469	//   },
94470	//   "response": {
94471	//     "$ref": "Operation"
94472	//   },
94473	//   "scopes": [
94474	//     "https://www.googleapis.com/auth/cloud-platform",
94475	//     "https://www.googleapis.com/auth/compute"
94476	//   ]
94477	// }
94478
94479}
94480
94481// method id "compute.licenseCodes.get":
94482
94483type LicenseCodesGetCall struct {
94484	s            *Service
94485	project      string
94486	licenseCode  string
94487	urlParams_   gensupport.URLParams
94488	ifNoneMatch_ string
94489	ctx_         context.Context
94490	header_      http.Header
94491}
94492
94493// Get: Return a specified license code. License codes are mirrored
94494// across all projects that have permissions to read the License Code.
94495// Caution This resource is intended for use only by third-party
94496// partners who are creating Cloud Marketplace images.
94497//
94498// - licenseCode: Number corresponding to the License code resource to
94499//   return.
94500// - project: Project ID for this request.
94501func (r *LicenseCodesService) Get(project string, licenseCode string) *LicenseCodesGetCall {
94502	c := &LicenseCodesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94503	c.project = project
94504	c.licenseCode = licenseCode
94505	return c
94506}
94507
94508// Fields allows partial responses to be retrieved. See
94509// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94510// for more information.
94511func (c *LicenseCodesGetCall) Fields(s ...googleapi.Field) *LicenseCodesGetCall {
94512	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94513	return c
94514}
94515
94516// IfNoneMatch sets the optional parameter which makes the operation
94517// fail if the object's ETag matches the given value. This is useful for
94518// getting updates only after the object has changed since the last
94519// request. Use googleapi.IsNotModified to check whether the response
94520// error from Do is the result of In-None-Match.
94521func (c *LicenseCodesGetCall) IfNoneMatch(entityTag string) *LicenseCodesGetCall {
94522	c.ifNoneMatch_ = entityTag
94523	return c
94524}
94525
94526// Context sets the context to be used in this call's Do method. Any
94527// pending HTTP request will be aborted if the provided context is
94528// canceled.
94529func (c *LicenseCodesGetCall) Context(ctx context.Context) *LicenseCodesGetCall {
94530	c.ctx_ = ctx
94531	return c
94532}
94533
94534// Header returns an http.Header that can be modified by the caller to
94535// add HTTP headers to the request.
94536func (c *LicenseCodesGetCall) Header() http.Header {
94537	if c.header_ == nil {
94538		c.header_ = make(http.Header)
94539	}
94540	return c.header_
94541}
94542
94543func (c *LicenseCodesGetCall) doRequest(alt string) (*http.Response, error) {
94544	reqHeaders := make(http.Header)
94545	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
94546	for k, v := range c.header_ {
94547		reqHeaders[k] = v
94548	}
94549	reqHeaders.Set("User-Agent", c.s.userAgent())
94550	if c.ifNoneMatch_ != "" {
94551		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
94552	}
94553	var body io.Reader = nil
94554	c.urlParams_.Set("alt", alt)
94555	c.urlParams_.Set("prettyPrint", "false")
94556	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenseCodes/{licenseCode}")
94557	urls += "?" + c.urlParams_.Encode()
94558	req, err := http.NewRequest("GET", urls, body)
94559	if err != nil {
94560		return nil, err
94561	}
94562	req.Header = reqHeaders
94563	googleapi.Expand(req.URL, map[string]string{
94564		"project":     c.project,
94565		"licenseCode": c.licenseCode,
94566	})
94567	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94568}
94569
94570// Do executes the "compute.licenseCodes.get" call.
94571// Exactly one of *LicenseCode or error will be non-nil. Any non-2xx
94572// status code is an error. Response headers are in either
94573// *LicenseCode.ServerResponse.Header or (if a response was returned at
94574// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94575// to check whether the returned error was because
94576// http.StatusNotModified was returned.
94577func (c *LicenseCodesGetCall) Do(opts ...googleapi.CallOption) (*LicenseCode, error) {
94578	gensupport.SetOptions(c.urlParams_, opts...)
94579	res, err := c.doRequest("json")
94580	if res != nil && res.StatusCode == http.StatusNotModified {
94581		if res.Body != nil {
94582			res.Body.Close()
94583		}
94584		return nil, &googleapi.Error{
94585			Code:   res.StatusCode,
94586			Header: res.Header,
94587		}
94588	}
94589	if err != nil {
94590		return nil, err
94591	}
94592	defer googleapi.CloseBody(res)
94593	if err := googleapi.CheckResponse(res); err != nil {
94594		return nil, err
94595	}
94596	ret := &LicenseCode{
94597		ServerResponse: googleapi.ServerResponse{
94598			Header:         res.Header,
94599			HTTPStatusCode: res.StatusCode,
94600		},
94601	}
94602	target := &ret
94603	if err := gensupport.DecodeResponse(target, res); err != nil {
94604		return nil, err
94605	}
94606	return ret, nil
94607	// {
94608	//   "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.",
94609	//   "httpMethod": "GET",
94610	//   "id": "compute.licenseCodes.get",
94611	//   "parameterOrder": [
94612	//     "project",
94613	//     "licenseCode"
94614	//   ],
94615	//   "parameters": {
94616	//     "licenseCode": {
94617	//       "description": "Number corresponding to the License code resource to return.",
94618	//       "location": "path",
94619	//       "pattern": "[0-9]{0,61}?",
94620	//       "required": true,
94621	//       "type": "string"
94622	//     },
94623	//     "project": {
94624	//       "description": "Project ID for this request.",
94625	//       "location": "path",
94626	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94627	//       "required": true,
94628	//       "type": "string"
94629	//     }
94630	//   },
94631	//   "path": "projects/{project}/global/licenseCodes/{licenseCode}",
94632	//   "response": {
94633	//     "$ref": "LicenseCode"
94634	//   },
94635	//   "scopes": [
94636	//     "https://www.googleapis.com/auth/cloud-platform",
94637	//     "https://www.googleapis.com/auth/compute",
94638	//     "https://www.googleapis.com/auth/compute.readonly"
94639	//   ]
94640	// }
94641
94642}
94643
94644// method id "compute.licenseCodes.testIamPermissions":
94645
94646type LicenseCodesTestIamPermissionsCall struct {
94647	s                      *Service
94648	project                string
94649	resource               string
94650	testpermissionsrequest *TestPermissionsRequest
94651	urlParams_             gensupport.URLParams
94652	ctx_                   context.Context
94653	header_                http.Header
94654}
94655
94656// TestIamPermissions: Returns permissions that a caller has on the
94657// specified resource.  Caution This resource is intended for use only
94658// by third-party partners who are creating Cloud Marketplace images.
94659//
94660// - project: Project ID for this request.
94661// - resource: Name or id of the resource for this request.
94662func (r *LicenseCodesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *LicenseCodesTestIamPermissionsCall {
94663	c := &LicenseCodesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94664	c.project = project
94665	c.resource = resource
94666	c.testpermissionsrequest = testpermissionsrequest
94667	return c
94668}
94669
94670// Fields allows partial responses to be retrieved. See
94671// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94672// for more information.
94673func (c *LicenseCodesTestIamPermissionsCall) Fields(s ...googleapi.Field) *LicenseCodesTestIamPermissionsCall {
94674	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94675	return c
94676}
94677
94678// Context sets the context to be used in this call's Do method. Any
94679// pending HTTP request will be aborted if the provided context is
94680// canceled.
94681func (c *LicenseCodesTestIamPermissionsCall) Context(ctx context.Context) *LicenseCodesTestIamPermissionsCall {
94682	c.ctx_ = ctx
94683	return c
94684}
94685
94686// Header returns an http.Header that can be modified by the caller to
94687// add HTTP headers to the request.
94688func (c *LicenseCodesTestIamPermissionsCall) Header() http.Header {
94689	if c.header_ == nil {
94690		c.header_ = make(http.Header)
94691	}
94692	return c.header_
94693}
94694
94695func (c *LicenseCodesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
94696	reqHeaders := make(http.Header)
94697	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
94698	for k, v := range c.header_ {
94699		reqHeaders[k] = v
94700	}
94701	reqHeaders.Set("User-Agent", c.s.userAgent())
94702	var body io.Reader = nil
94703	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
94704	if err != nil {
94705		return nil, err
94706	}
94707	reqHeaders.Set("Content-Type", "application/json")
94708	c.urlParams_.Set("alt", alt)
94709	c.urlParams_.Set("prettyPrint", "false")
94710	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenseCodes/{resource}/testIamPermissions")
94711	urls += "?" + c.urlParams_.Encode()
94712	req, err := http.NewRequest("POST", urls, body)
94713	if err != nil {
94714		return nil, err
94715	}
94716	req.Header = reqHeaders
94717	googleapi.Expand(req.URL, map[string]string{
94718		"project":  c.project,
94719		"resource": c.resource,
94720	})
94721	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94722}
94723
94724// Do executes the "compute.licenseCodes.testIamPermissions" call.
94725// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
94726// non-2xx status code is an error. Response headers are in either
94727// *TestPermissionsResponse.ServerResponse.Header or (if a response was
94728// returned at all) in error.(*googleapi.Error).Header. Use
94729// googleapi.IsNotModified to check whether the returned error was
94730// because http.StatusNotModified was returned.
94731func (c *LicenseCodesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
94732	gensupport.SetOptions(c.urlParams_, opts...)
94733	res, err := c.doRequest("json")
94734	if res != nil && res.StatusCode == http.StatusNotModified {
94735		if res.Body != nil {
94736			res.Body.Close()
94737		}
94738		return nil, &googleapi.Error{
94739			Code:   res.StatusCode,
94740			Header: res.Header,
94741		}
94742	}
94743	if err != nil {
94744		return nil, err
94745	}
94746	defer googleapi.CloseBody(res)
94747	if err := googleapi.CheckResponse(res); err != nil {
94748		return nil, err
94749	}
94750	ret := &TestPermissionsResponse{
94751		ServerResponse: googleapi.ServerResponse{
94752			Header:         res.Header,
94753			HTTPStatusCode: res.StatusCode,
94754		},
94755	}
94756	target := &ret
94757	if err := gensupport.DecodeResponse(target, res); err != nil {
94758		return nil, err
94759	}
94760	return ret, nil
94761	// {
94762	//   "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.",
94763	//   "httpMethod": "POST",
94764	//   "id": "compute.licenseCodes.testIamPermissions",
94765	//   "parameterOrder": [
94766	//     "project",
94767	//     "resource"
94768	//   ],
94769	//   "parameters": {
94770	//     "project": {
94771	//       "description": "Project ID for this request.",
94772	//       "location": "path",
94773	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94774	//       "required": true,
94775	//       "type": "string"
94776	//     },
94777	//     "resource": {
94778	//       "description": "Name or id of the resource for this request.",
94779	//       "location": "path",
94780	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94781	//       "required": true,
94782	//       "type": "string"
94783	//     }
94784	//   },
94785	//   "path": "projects/{project}/global/licenseCodes/{resource}/testIamPermissions",
94786	//   "request": {
94787	//     "$ref": "TestPermissionsRequest"
94788	//   },
94789	//   "response": {
94790	//     "$ref": "TestPermissionsResponse"
94791	//   },
94792	//   "scopes": [
94793	//     "https://www.googleapis.com/auth/cloud-platform",
94794	//     "https://www.googleapis.com/auth/compute",
94795	//     "https://www.googleapis.com/auth/compute.readonly"
94796	//   ]
94797	// }
94798
94799}
94800
94801// method id "compute.licenses.delete":
94802
94803type LicensesDeleteCall struct {
94804	s          *Service
94805	project    string
94806	license    string
94807	urlParams_ gensupport.URLParams
94808	ctx_       context.Context
94809	header_    http.Header
94810}
94811
94812// Delete: Deletes the specified license.  Caution This resource is
94813// intended for use only by third-party partners who are creating Cloud
94814// Marketplace images.
94815//
94816// - license: Name of the license resource to delete.
94817// - project: Project ID for this request.
94818func (r *LicensesService) Delete(project string, license string) *LicensesDeleteCall {
94819	c := &LicensesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94820	c.project = project
94821	c.license = license
94822	return c
94823}
94824
94825// RequestId sets the optional parameter "requestId": An optional
94826// request ID to identify requests. Specify a unique request ID so that
94827// if you must retry your request, the server will know to ignore the
94828// request if it has already been completed.
94829//
94830// For example, consider a situation where you make an initial request
94831// and the request times out. If you make the request again with the
94832// same request ID, the server can check if original operation with the
94833// same request ID was received, and if so, will ignore the second
94834// request. This prevents clients from accidentally creating duplicate
94835// commitments.
94836//
94837// The request ID must be a valid UUID with the exception that zero UUID
94838// is not supported (00000000-0000-0000-0000-000000000000).
94839func (c *LicensesDeleteCall) RequestId(requestId string) *LicensesDeleteCall {
94840	c.urlParams_.Set("requestId", requestId)
94841	return c
94842}
94843
94844// Fields allows partial responses to be retrieved. See
94845// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94846// for more information.
94847func (c *LicensesDeleteCall) Fields(s ...googleapi.Field) *LicensesDeleteCall {
94848	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94849	return c
94850}
94851
94852// Context sets the context to be used in this call's Do method. Any
94853// pending HTTP request will be aborted if the provided context is
94854// canceled.
94855func (c *LicensesDeleteCall) Context(ctx context.Context) *LicensesDeleteCall {
94856	c.ctx_ = ctx
94857	return c
94858}
94859
94860// Header returns an http.Header that can be modified by the caller to
94861// add HTTP headers to the request.
94862func (c *LicensesDeleteCall) Header() http.Header {
94863	if c.header_ == nil {
94864		c.header_ = make(http.Header)
94865	}
94866	return c.header_
94867}
94868
94869func (c *LicensesDeleteCall) doRequest(alt string) (*http.Response, error) {
94870	reqHeaders := make(http.Header)
94871	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
94872	for k, v := range c.header_ {
94873		reqHeaders[k] = v
94874	}
94875	reqHeaders.Set("User-Agent", c.s.userAgent())
94876	var body io.Reader = nil
94877	c.urlParams_.Set("alt", alt)
94878	c.urlParams_.Set("prettyPrint", "false")
94879	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses/{license}")
94880	urls += "?" + c.urlParams_.Encode()
94881	req, err := http.NewRequest("DELETE", urls, body)
94882	if err != nil {
94883		return nil, err
94884	}
94885	req.Header = reqHeaders
94886	googleapi.Expand(req.URL, map[string]string{
94887		"project": c.project,
94888		"license": c.license,
94889	})
94890	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94891}
94892
94893// Do executes the "compute.licenses.delete" call.
94894// Exactly one of *Operation or error will be non-nil. Any non-2xx
94895// status code is an error. Response headers are in either
94896// *Operation.ServerResponse.Header or (if a response was returned at
94897// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94898// to check whether the returned error was because
94899// http.StatusNotModified was returned.
94900func (c *LicensesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
94901	gensupport.SetOptions(c.urlParams_, opts...)
94902	res, err := c.doRequest("json")
94903	if res != nil && res.StatusCode == http.StatusNotModified {
94904		if res.Body != nil {
94905			res.Body.Close()
94906		}
94907		return nil, &googleapi.Error{
94908			Code:   res.StatusCode,
94909			Header: res.Header,
94910		}
94911	}
94912	if err != nil {
94913		return nil, err
94914	}
94915	defer googleapi.CloseBody(res)
94916	if err := googleapi.CheckResponse(res); err != nil {
94917		return nil, err
94918	}
94919	ret := &Operation{
94920		ServerResponse: googleapi.ServerResponse{
94921			Header:         res.Header,
94922			HTTPStatusCode: res.StatusCode,
94923		},
94924	}
94925	target := &ret
94926	if err := gensupport.DecodeResponse(target, res); err != nil {
94927		return nil, err
94928	}
94929	return ret, nil
94930	// {
94931	//   "description": "Deletes the specified license.  Caution This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.",
94932	//   "httpMethod": "DELETE",
94933	//   "id": "compute.licenses.delete",
94934	//   "parameterOrder": [
94935	//     "project",
94936	//     "license"
94937	//   ],
94938	//   "parameters": {
94939	//     "license": {
94940	//       "description": "Name of the license resource to delete.",
94941	//       "location": "path",
94942	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94943	//       "required": true,
94944	//       "type": "string"
94945	//     },
94946	//     "project": {
94947	//       "description": "Project ID for this request.",
94948	//       "location": "path",
94949	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94950	//       "required": true,
94951	//       "type": "string"
94952	//     },
94953	//     "requestId": {
94954	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
94955	//       "location": "query",
94956	//       "type": "string"
94957	//     }
94958	//   },
94959	//   "path": "projects/{project}/global/licenses/{license}",
94960	//   "response": {
94961	//     "$ref": "Operation"
94962	//   },
94963	//   "scopes": [
94964	//     "https://www.googleapis.com/auth/cloud-platform",
94965	//     "https://www.googleapis.com/auth/compute"
94966	//   ]
94967	// }
94968
94969}
94970
94971// method id "compute.licenses.get":
94972
94973type LicensesGetCall struct {
94974	s            *Service
94975	project      string
94976	license      string
94977	urlParams_   gensupport.URLParams
94978	ifNoneMatch_ string
94979	ctx_         context.Context
94980	header_      http.Header
94981}
94982
94983// Get: Returns the specified License resource.  Caution This resource
94984// is intended for use only by third-party partners who are creating
94985// Cloud Marketplace images.
94986//
94987// - license: Name of the License resource to return.
94988// - project: Project ID for this request.
94989// For details, see https://cloud.google.com/compute/docs/reference/latest/licenses/get
94990func (r *LicensesService) Get(project string, license string) *LicensesGetCall {
94991	c := &LicensesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94992	c.project = project
94993	c.license = license
94994	return c
94995}
94996
94997// Fields allows partial responses to be retrieved. See
94998// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94999// for more information.
95000func (c *LicensesGetCall) Fields(s ...googleapi.Field) *LicensesGetCall {
95001	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95002	return c
95003}
95004
95005// IfNoneMatch sets the optional parameter which makes the operation
95006// fail if the object's ETag matches the given value. This is useful for
95007// getting updates only after the object has changed since the last
95008// request. Use googleapi.IsNotModified to check whether the response
95009// error from Do is the result of In-None-Match.
95010func (c *LicensesGetCall) IfNoneMatch(entityTag string) *LicensesGetCall {
95011	c.ifNoneMatch_ = entityTag
95012	return c
95013}
95014
95015// Context sets the context to be used in this call's Do method. Any
95016// pending HTTP request will be aborted if the provided context is
95017// canceled.
95018func (c *LicensesGetCall) Context(ctx context.Context) *LicensesGetCall {
95019	c.ctx_ = ctx
95020	return c
95021}
95022
95023// Header returns an http.Header that can be modified by the caller to
95024// add HTTP headers to the request.
95025func (c *LicensesGetCall) Header() http.Header {
95026	if c.header_ == nil {
95027		c.header_ = make(http.Header)
95028	}
95029	return c.header_
95030}
95031
95032func (c *LicensesGetCall) doRequest(alt string) (*http.Response, error) {
95033	reqHeaders := make(http.Header)
95034	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
95035	for k, v := range c.header_ {
95036		reqHeaders[k] = v
95037	}
95038	reqHeaders.Set("User-Agent", c.s.userAgent())
95039	if c.ifNoneMatch_ != "" {
95040		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
95041	}
95042	var body io.Reader = nil
95043	c.urlParams_.Set("alt", alt)
95044	c.urlParams_.Set("prettyPrint", "false")
95045	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses/{license}")
95046	urls += "?" + c.urlParams_.Encode()
95047	req, err := http.NewRequest("GET", urls, body)
95048	if err != nil {
95049		return nil, err
95050	}
95051	req.Header = reqHeaders
95052	googleapi.Expand(req.URL, map[string]string{
95053		"project": c.project,
95054		"license": c.license,
95055	})
95056	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95057}
95058
95059// Do executes the "compute.licenses.get" call.
95060// Exactly one of *License or error will be non-nil. Any non-2xx status
95061// code is an error. Response headers are in either
95062// *License.ServerResponse.Header or (if a response was returned at all)
95063// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
95064// check whether the returned error was because http.StatusNotModified
95065// was returned.
95066func (c *LicensesGetCall) Do(opts ...googleapi.CallOption) (*License, error) {
95067	gensupport.SetOptions(c.urlParams_, opts...)
95068	res, err := c.doRequest("json")
95069	if res != nil && res.StatusCode == http.StatusNotModified {
95070		if res.Body != nil {
95071			res.Body.Close()
95072		}
95073		return nil, &googleapi.Error{
95074			Code:   res.StatusCode,
95075			Header: res.Header,
95076		}
95077	}
95078	if err != nil {
95079		return nil, err
95080	}
95081	defer googleapi.CloseBody(res)
95082	if err := googleapi.CheckResponse(res); err != nil {
95083		return nil, err
95084	}
95085	ret := &License{
95086		ServerResponse: googleapi.ServerResponse{
95087			Header:         res.Header,
95088			HTTPStatusCode: res.StatusCode,
95089		},
95090	}
95091	target := &ret
95092	if err := gensupport.DecodeResponse(target, res); err != nil {
95093		return nil, err
95094	}
95095	return ret, nil
95096	// {
95097	//   "description": "Returns the specified License resource.  Caution This resource is intended for use only by third-party partners who are creating Cloud Marketplace images.",
95098	//   "httpMethod": "GET",
95099	//   "id": "compute.licenses.get",
95100	//   "parameterOrder": [
95101	//     "project",
95102	//     "license"
95103	//   ],
95104	//   "parameters": {
95105	//     "license": {
95106	//       "description": "Name of the License resource to return.",
95107	//       "location": "path",
95108	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95109	//       "required": true,
95110	//       "type": "string"
95111	//     },
95112	//     "project": {
95113	//       "description": "Project ID for this request.",
95114	//       "location": "path",
95115	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95116	//       "required": true,
95117	//       "type": "string"
95118	//     }
95119	//   },
95120	//   "path": "projects/{project}/global/licenses/{license}",
95121	//   "response": {
95122	//     "$ref": "License"
95123	//   },
95124	//   "scopes": [
95125	//     "https://www.googleapis.com/auth/cloud-platform",
95126	//     "https://www.googleapis.com/auth/compute",
95127	//     "https://www.googleapis.com/auth/compute.readonly"
95128	//   ]
95129	// }
95130
95131}
95132
95133// method id "compute.licenses.getIamPolicy":
95134
95135type LicensesGetIamPolicyCall struct {
95136	s            *Service
95137	project      string
95138	resource     string
95139	urlParams_   gensupport.URLParams
95140	ifNoneMatch_ string
95141	ctx_         context.Context
95142	header_      http.Header
95143}
95144
95145// GetIamPolicy: Gets the access control policy for a resource. May be
95146// empty if no such policy or resource exists.  Caution This resource is
95147// intended for use only by third-party partners who are creating Cloud
95148// Marketplace images.
95149//
95150// - project: Project ID for this request.
95151// - resource: Name or id of the resource for this request.
95152func (r *LicensesService) GetIamPolicy(project string, resource string) *LicensesGetIamPolicyCall {
95153	c := &LicensesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95154	c.project = project
95155	c.resource = resource
95156	return c
95157}
95158
95159// OptionsRequestedPolicyVersion sets the optional parameter
95160// "optionsRequestedPolicyVersion": Requested IAM Policy version.
95161func (c *LicensesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *LicensesGetIamPolicyCall {
95162	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
95163	return c
95164}
95165
95166// Fields allows partial responses to be retrieved. See
95167// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95168// for more information.
95169func (c *LicensesGetIamPolicyCall) Fields(s ...googleapi.Field) *LicensesGetIamPolicyCall {
95170	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95171	return c
95172}
95173
95174// IfNoneMatch sets the optional parameter which makes the operation
95175// fail if the object's ETag matches the given value. This is useful for
95176// getting updates only after the object has changed since the last
95177// request. Use googleapi.IsNotModified to check whether the response
95178// error from Do is the result of In-None-Match.
95179func (c *LicensesGetIamPolicyCall) IfNoneMatch(entityTag string) *LicensesGetIamPolicyCall {
95180	c.ifNoneMatch_ = entityTag
95181	return c
95182}
95183
95184// Context sets the context to be used in this call's Do method. Any
95185// pending HTTP request will be aborted if the provided context is
95186// canceled.
95187func (c *LicensesGetIamPolicyCall) Context(ctx context.Context) *LicensesGetIamPolicyCall {
95188	c.ctx_ = ctx
95189	return c
95190}
95191
95192// Header returns an http.Header that can be modified by the caller to
95193// add HTTP headers to the request.
95194func (c *LicensesGetIamPolicyCall) Header() http.Header {
95195	if c.header_ == nil {
95196		c.header_ = make(http.Header)
95197	}
95198	return c.header_
95199}
95200
95201func (c *LicensesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
95202	reqHeaders := make(http.Header)
95203	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
95204	for k, v := range c.header_ {
95205		reqHeaders[k] = v
95206	}
95207	reqHeaders.Set("User-Agent", c.s.userAgent())
95208	if c.ifNoneMatch_ != "" {
95209		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
95210	}
95211	var body io.Reader = nil
95212	c.urlParams_.Set("alt", alt)
95213	c.urlParams_.Set("prettyPrint", "false")
95214	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses/{resource}/getIamPolicy")
95215	urls += "?" + c.urlParams_.Encode()
95216	req, err := http.NewRequest("GET", urls, body)
95217	if err != nil {
95218		return nil, err
95219	}
95220	req.Header = reqHeaders
95221	googleapi.Expand(req.URL, map[string]string{
95222		"project":  c.project,
95223		"resource": c.resource,
95224	})
95225	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95226}
95227
95228// Do executes the "compute.licenses.getIamPolicy" call.
95229// Exactly one of *Policy or error will be non-nil. Any non-2xx status
95230// code is an error. Response headers are in either
95231// *Policy.ServerResponse.Header or (if a response was returned at all)
95232// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
95233// check whether the returned error was because http.StatusNotModified
95234// was returned.
95235func (c *LicensesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
95236	gensupport.SetOptions(c.urlParams_, opts...)
95237	res, err := c.doRequest("json")
95238	if res != nil && res.StatusCode == http.StatusNotModified {
95239		if res.Body != nil {
95240			res.Body.Close()
95241		}
95242		return nil, &googleapi.Error{
95243			Code:   res.StatusCode,
95244			Header: res.Header,
95245		}
95246	}
95247	if err != nil {
95248		return nil, err
95249	}
95250	defer googleapi.CloseBody(res)
95251	if err := googleapi.CheckResponse(res); err != nil {
95252		return nil, err
95253	}
95254	ret := &Policy{
95255		ServerResponse: googleapi.ServerResponse{
95256			Header:         res.Header,
95257			HTTPStatusCode: res.StatusCode,
95258		},
95259	}
95260	target := &ret
95261	if err := gensupport.DecodeResponse(target, res); err != nil {
95262		return nil, err
95263	}
95264	return ret, nil
95265	// {
95266	//   "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.",
95267	//   "httpMethod": "GET",
95268	//   "id": "compute.licenses.getIamPolicy",
95269	//   "parameterOrder": [
95270	//     "project",
95271	//     "resource"
95272	//   ],
95273	//   "parameters": {
95274	//     "optionsRequestedPolicyVersion": {
95275	//       "description": "Requested IAM Policy version.",
95276	//       "format": "int32",
95277	//       "location": "query",
95278	//       "type": "integer"
95279	//     },
95280	//     "project": {
95281	//       "description": "Project ID for this request.",
95282	//       "location": "path",
95283	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95284	//       "required": true,
95285	//       "type": "string"
95286	//     },
95287	//     "resource": {
95288	//       "description": "Name or id of the resource for this request.",
95289	//       "location": "path",
95290	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95291	//       "required": true,
95292	//       "type": "string"
95293	//     }
95294	//   },
95295	//   "path": "projects/{project}/global/licenses/{resource}/getIamPolicy",
95296	//   "response": {
95297	//     "$ref": "Policy"
95298	//   },
95299	//   "scopes": [
95300	//     "https://www.googleapis.com/auth/cloud-platform",
95301	//     "https://www.googleapis.com/auth/compute",
95302	//     "https://www.googleapis.com/auth/compute.readonly"
95303	//   ]
95304	// }
95305
95306}
95307
95308// method id "compute.licenses.insert":
95309
95310type LicensesInsertCall struct {
95311	s          *Service
95312	project    string
95313	license    *License
95314	urlParams_ gensupport.URLParams
95315	ctx_       context.Context
95316	header_    http.Header
95317}
95318
95319// Insert: Create a License resource in the specified project.  Caution
95320// This resource is intended for use only by third-party partners who
95321// are creating Cloud Marketplace images.
95322//
95323// - project: Project ID for this request.
95324func (r *LicensesService) Insert(project string, license *License) *LicensesInsertCall {
95325	c := &LicensesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95326	c.project = project
95327	c.license = license
95328	return c
95329}
95330
95331// RequestId sets the optional parameter "requestId": An optional
95332// request ID to identify requests. Specify a unique request ID so that
95333// if you must retry your request, the server will know to ignore the
95334// request if it has already been completed.
95335//
95336// For example, consider a situation where you make an initial request
95337// and the request times out. If you make the request again with the
95338// same request ID, the server can check if original operation with the
95339// same request ID was received, and if so, will ignore the second
95340// request. This prevents clients from accidentally creating duplicate
95341// commitments.
95342//
95343// The request ID must be a valid UUID with the exception that zero UUID
95344// is not supported (00000000-0000-0000-0000-000000000000).
95345func (c *LicensesInsertCall) RequestId(requestId string) *LicensesInsertCall {
95346	c.urlParams_.Set("requestId", requestId)
95347	return c
95348}
95349
95350// Fields allows partial responses to be retrieved. See
95351// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95352// for more information.
95353func (c *LicensesInsertCall) Fields(s ...googleapi.Field) *LicensesInsertCall {
95354	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95355	return c
95356}
95357
95358// Context sets the context to be used in this call's Do method. Any
95359// pending HTTP request will be aborted if the provided context is
95360// canceled.
95361func (c *LicensesInsertCall) Context(ctx context.Context) *LicensesInsertCall {
95362	c.ctx_ = ctx
95363	return c
95364}
95365
95366// Header returns an http.Header that can be modified by the caller to
95367// add HTTP headers to the request.
95368func (c *LicensesInsertCall) Header() http.Header {
95369	if c.header_ == nil {
95370		c.header_ = make(http.Header)
95371	}
95372	return c.header_
95373}
95374
95375func (c *LicensesInsertCall) doRequest(alt string) (*http.Response, error) {
95376	reqHeaders := make(http.Header)
95377	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
95378	for k, v := range c.header_ {
95379		reqHeaders[k] = v
95380	}
95381	reqHeaders.Set("User-Agent", c.s.userAgent())
95382	var body io.Reader = nil
95383	body, err := googleapi.WithoutDataWrapper.JSONReader(c.license)
95384	if err != nil {
95385		return nil, err
95386	}
95387	reqHeaders.Set("Content-Type", "application/json")
95388	c.urlParams_.Set("alt", alt)
95389	c.urlParams_.Set("prettyPrint", "false")
95390	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses")
95391	urls += "?" + c.urlParams_.Encode()
95392	req, err := http.NewRequest("POST", urls, body)
95393	if err != nil {
95394		return nil, err
95395	}
95396	req.Header = reqHeaders
95397	googleapi.Expand(req.URL, map[string]string{
95398		"project": c.project,
95399	})
95400	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95401}
95402
95403// Do executes the "compute.licenses.insert" call.
95404// Exactly one of *Operation or error will be non-nil. Any non-2xx
95405// status code is an error. Response headers are in either
95406// *Operation.ServerResponse.Header or (if a response was returned at
95407// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95408// to check whether the returned error was because
95409// http.StatusNotModified was returned.
95410func (c *LicensesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95411	gensupport.SetOptions(c.urlParams_, opts...)
95412	res, err := c.doRequest("json")
95413	if res != nil && res.StatusCode == http.StatusNotModified {
95414		if res.Body != nil {
95415			res.Body.Close()
95416		}
95417		return nil, &googleapi.Error{
95418			Code:   res.StatusCode,
95419			Header: res.Header,
95420		}
95421	}
95422	if err != nil {
95423		return nil, err
95424	}
95425	defer googleapi.CloseBody(res)
95426	if err := googleapi.CheckResponse(res); err != nil {
95427		return nil, err
95428	}
95429	ret := &Operation{
95430		ServerResponse: googleapi.ServerResponse{
95431			Header:         res.Header,
95432			HTTPStatusCode: res.StatusCode,
95433		},
95434	}
95435	target := &ret
95436	if err := gensupport.DecodeResponse(target, res); err != nil {
95437		return nil, err
95438	}
95439	return ret, nil
95440	// {
95441	//   "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.",
95442	//   "httpMethod": "POST",
95443	//   "id": "compute.licenses.insert",
95444	//   "parameterOrder": [
95445	//     "project"
95446	//   ],
95447	//   "parameters": {
95448	//     "project": {
95449	//       "description": "Project ID for this request.",
95450	//       "location": "path",
95451	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95452	//       "required": true,
95453	//       "type": "string"
95454	//     },
95455	//     "requestId": {
95456	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
95457	//       "location": "query",
95458	//       "type": "string"
95459	//     }
95460	//   },
95461	//   "path": "projects/{project}/global/licenses",
95462	//   "request": {
95463	//     "$ref": "License"
95464	//   },
95465	//   "response": {
95466	//     "$ref": "Operation"
95467	//   },
95468	//   "scopes": [
95469	//     "https://www.googleapis.com/auth/cloud-platform",
95470	//     "https://www.googleapis.com/auth/compute",
95471	//     "https://www.googleapis.com/auth/devstorage.full_control",
95472	//     "https://www.googleapis.com/auth/devstorage.read_only",
95473	//     "https://www.googleapis.com/auth/devstorage.read_write"
95474	//   ]
95475	// }
95476
95477}
95478
95479// method id "compute.licenses.list":
95480
95481type LicensesListCall struct {
95482	s            *Service
95483	project      string
95484	urlParams_   gensupport.URLParams
95485	ifNoneMatch_ string
95486	ctx_         context.Context
95487	header_      http.Header
95488}
95489
95490// List: Retrieves the list of licenses available in the specified
95491// project. This method does not get any licenses that belong to other
95492// projects, including licenses attached to publicly-available images,
95493// like Debian 9. If you want to get a list of publicly-available
95494// licenses, use this method to make a request to the respective image
95495// project, such as debian-cloud or windows-cloud.  Caution This
95496// resource is intended for use only by third-party partners who are
95497// creating Cloud Marketplace images.
95498//
95499// - project: Project ID for this request.
95500func (r *LicensesService) List(project string) *LicensesListCall {
95501	c := &LicensesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95502	c.project = project
95503	return c
95504}
95505
95506// Filter sets the optional parameter "filter": A filter expression that
95507// filters resources listed in the response. The expression must specify
95508// the field name, a comparison operator, and the value that you want to
95509// use for filtering. The value must be a string, a number, or a
95510// boolean. The comparison operator must be either `=`, `!=`, `>`, or
95511// `<`.
95512//
95513// For example, if you are filtering Compute Engine instances, you can
95514// exclude instances named `example-instance` by specifying `name !=
95515// example-instance`.
95516//
95517// You can also filter nested fields. For example, you could specify
95518// `scheduling.automaticRestart = false` to include instances only if
95519// they are not scheduled for automatic restarts. You can use filtering
95520// on nested fields to filter based on resource labels.
95521//
95522// To filter on multiple expressions, provide each separate expression
95523// within parentheses. For example: ``` (scheduling.automaticRestart =
95524// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
95525// is an `AND` expression. However, you can include `AND` and `OR`
95526// expressions explicitly. For example: ``` (cpuPlatform = "Intel
95527// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
95528// (scheduling.automaticRestart = true) ```
95529func (c *LicensesListCall) Filter(filter string) *LicensesListCall {
95530	c.urlParams_.Set("filter", filter)
95531	return c
95532}
95533
95534// MaxResults sets the optional parameter "maxResults": The maximum
95535// number of results per page that should be returned. If the number of
95536// available results is larger than `maxResults`, Compute Engine returns
95537// a `nextPageToken` that can be used to get the next page of results in
95538// subsequent list requests. Acceptable values are `0` to `500`,
95539// inclusive. (Default: `500`)
95540func (c *LicensesListCall) MaxResults(maxResults int64) *LicensesListCall {
95541	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
95542	return c
95543}
95544
95545// OrderBy sets the optional parameter "orderBy": Sorts list results by
95546// a certain order. By default, results are returned in alphanumerical
95547// order based on the resource name.
95548//
95549// You can also sort results in descending order based on the creation
95550// timestamp using `orderBy="creationTimestamp desc". This sorts
95551// results based on the `creationTimestamp` field in reverse
95552// chronological order (newest result first). Use this to sort resources
95553// like operations so that the newest operation is returned
95554// first.
95555//
95556// Currently, only sorting by `name` or `creationTimestamp desc` is
95557// supported.
95558func (c *LicensesListCall) OrderBy(orderBy string) *LicensesListCall {
95559	c.urlParams_.Set("orderBy", orderBy)
95560	return c
95561}
95562
95563// PageToken sets the optional parameter "pageToken": Specifies a page
95564// token to use. Set `pageToken` to the `nextPageToken` returned by a
95565// previous list request to get the next page of results.
95566func (c *LicensesListCall) PageToken(pageToken string) *LicensesListCall {
95567	c.urlParams_.Set("pageToken", pageToken)
95568	return c
95569}
95570
95571// ReturnPartialSuccess sets the optional parameter
95572// "returnPartialSuccess": Opt-in for partial success behavior which
95573// provides partial results in case of failure. The default value is
95574// false.
95575func (c *LicensesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *LicensesListCall {
95576	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
95577	return c
95578}
95579
95580// Fields allows partial responses to be retrieved. See
95581// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95582// for more information.
95583func (c *LicensesListCall) Fields(s ...googleapi.Field) *LicensesListCall {
95584	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95585	return c
95586}
95587
95588// IfNoneMatch sets the optional parameter which makes the operation
95589// fail if the object's ETag matches the given value. This is useful for
95590// getting updates only after the object has changed since the last
95591// request. Use googleapi.IsNotModified to check whether the response
95592// error from Do is the result of In-None-Match.
95593func (c *LicensesListCall) IfNoneMatch(entityTag string) *LicensesListCall {
95594	c.ifNoneMatch_ = entityTag
95595	return c
95596}
95597
95598// Context sets the context to be used in this call's Do method. Any
95599// pending HTTP request will be aborted if the provided context is
95600// canceled.
95601func (c *LicensesListCall) Context(ctx context.Context) *LicensesListCall {
95602	c.ctx_ = ctx
95603	return c
95604}
95605
95606// Header returns an http.Header that can be modified by the caller to
95607// add HTTP headers to the request.
95608func (c *LicensesListCall) Header() http.Header {
95609	if c.header_ == nil {
95610		c.header_ = make(http.Header)
95611	}
95612	return c.header_
95613}
95614
95615func (c *LicensesListCall) doRequest(alt string) (*http.Response, error) {
95616	reqHeaders := make(http.Header)
95617	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
95618	for k, v := range c.header_ {
95619		reqHeaders[k] = v
95620	}
95621	reqHeaders.Set("User-Agent", c.s.userAgent())
95622	if c.ifNoneMatch_ != "" {
95623		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
95624	}
95625	var body io.Reader = nil
95626	c.urlParams_.Set("alt", alt)
95627	c.urlParams_.Set("prettyPrint", "false")
95628	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses")
95629	urls += "?" + c.urlParams_.Encode()
95630	req, err := http.NewRequest("GET", urls, body)
95631	if err != nil {
95632		return nil, err
95633	}
95634	req.Header = reqHeaders
95635	googleapi.Expand(req.URL, map[string]string{
95636		"project": c.project,
95637	})
95638	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95639}
95640
95641// Do executes the "compute.licenses.list" call.
95642// Exactly one of *LicensesListResponse or error will be non-nil. Any
95643// non-2xx status code is an error. Response headers are in either
95644// *LicensesListResponse.ServerResponse.Header or (if a response was
95645// returned at all) in error.(*googleapi.Error).Header. Use
95646// googleapi.IsNotModified to check whether the returned error was
95647// because http.StatusNotModified was returned.
95648func (c *LicensesListCall) Do(opts ...googleapi.CallOption) (*LicensesListResponse, error) {
95649	gensupport.SetOptions(c.urlParams_, opts...)
95650	res, err := c.doRequest("json")
95651	if res != nil && res.StatusCode == http.StatusNotModified {
95652		if res.Body != nil {
95653			res.Body.Close()
95654		}
95655		return nil, &googleapi.Error{
95656			Code:   res.StatusCode,
95657			Header: res.Header,
95658		}
95659	}
95660	if err != nil {
95661		return nil, err
95662	}
95663	defer googleapi.CloseBody(res)
95664	if err := googleapi.CheckResponse(res); err != nil {
95665		return nil, err
95666	}
95667	ret := &LicensesListResponse{
95668		ServerResponse: googleapi.ServerResponse{
95669			Header:         res.Header,
95670			HTTPStatusCode: res.StatusCode,
95671		},
95672	}
95673	target := &ret
95674	if err := gensupport.DecodeResponse(target, res); err != nil {
95675		return nil, err
95676	}
95677	return ret, nil
95678	// {
95679	//   "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.",
95680	//   "httpMethod": "GET",
95681	//   "id": "compute.licenses.list",
95682	//   "parameterOrder": [
95683	//     "project"
95684	//   ],
95685	//   "parameters": {
95686	//     "filter": {
95687	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
95688	//       "location": "query",
95689	//       "type": "string"
95690	//     },
95691	//     "maxResults": {
95692	//       "default": "500",
95693	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
95694	//       "format": "uint32",
95695	//       "location": "query",
95696	//       "minimum": "0",
95697	//       "type": "integer"
95698	//     },
95699	//     "orderBy": {
95700	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
95701	//       "location": "query",
95702	//       "type": "string"
95703	//     },
95704	//     "pageToken": {
95705	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
95706	//       "location": "query",
95707	//       "type": "string"
95708	//     },
95709	//     "project": {
95710	//       "description": "Project ID for this request.",
95711	//       "location": "path",
95712	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95713	//       "required": true,
95714	//       "type": "string"
95715	//     },
95716	//     "returnPartialSuccess": {
95717	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
95718	//       "location": "query",
95719	//       "type": "boolean"
95720	//     }
95721	//   },
95722	//   "path": "projects/{project}/global/licenses",
95723	//   "response": {
95724	//     "$ref": "LicensesListResponse"
95725	//   },
95726	//   "scopes": [
95727	//     "https://www.googleapis.com/auth/cloud-platform",
95728	//     "https://www.googleapis.com/auth/compute",
95729	//     "https://www.googleapis.com/auth/compute.readonly"
95730	//   ]
95731	// }
95732
95733}
95734
95735// Pages invokes f for each page of results.
95736// A non-nil error returned from f will halt the iteration.
95737// The provided context supersedes any context provided to the Context method.
95738func (c *LicensesListCall) Pages(ctx context.Context, f func(*LicensesListResponse) error) error {
95739	c.ctx_ = ctx
95740	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
95741	for {
95742		x, err := c.Do()
95743		if err != nil {
95744			return err
95745		}
95746		if err := f(x); err != nil {
95747			return err
95748		}
95749		if x.NextPageToken == "" {
95750			return nil
95751		}
95752		c.PageToken(x.NextPageToken)
95753	}
95754}
95755
95756// method id "compute.licenses.setIamPolicy":
95757
95758type LicensesSetIamPolicyCall struct {
95759	s                      *Service
95760	project                string
95761	resource               string
95762	globalsetpolicyrequest *GlobalSetPolicyRequest
95763	urlParams_             gensupport.URLParams
95764	ctx_                   context.Context
95765	header_                http.Header
95766}
95767
95768// SetIamPolicy: Sets the access control policy on the specified
95769// resource. Replaces any existing policy.  Caution This resource is
95770// intended for use only by third-party partners who are creating Cloud
95771// Marketplace images.
95772//
95773// - project: Project ID for this request.
95774// - resource: Name or id of the resource for this request.
95775func (r *LicensesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *LicensesSetIamPolicyCall {
95776	c := &LicensesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95777	c.project = project
95778	c.resource = resource
95779	c.globalsetpolicyrequest = globalsetpolicyrequest
95780	return c
95781}
95782
95783// Fields allows partial responses to be retrieved. See
95784// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95785// for more information.
95786func (c *LicensesSetIamPolicyCall) Fields(s ...googleapi.Field) *LicensesSetIamPolicyCall {
95787	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95788	return c
95789}
95790
95791// Context sets the context to be used in this call's Do method. Any
95792// pending HTTP request will be aborted if the provided context is
95793// canceled.
95794func (c *LicensesSetIamPolicyCall) Context(ctx context.Context) *LicensesSetIamPolicyCall {
95795	c.ctx_ = ctx
95796	return c
95797}
95798
95799// Header returns an http.Header that can be modified by the caller to
95800// add HTTP headers to the request.
95801func (c *LicensesSetIamPolicyCall) Header() http.Header {
95802	if c.header_ == nil {
95803		c.header_ = make(http.Header)
95804	}
95805	return c.header_
95806}
95807
95808func (c *LicensesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
95809	reqHeaders := make(http.Header)
95810	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
95811	for k, v := range c.header_ {
95812		reqHeaders[k] = v
95813	}
95814	reqHeaders.Set("User-Agent", c.s.userAgent())
95815	var body io.Reader = nil
95816	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
95817	if err != nil {
95818		return nil, err
95819	}
95820	reqHeaders.Set("Content-Type", "application/json")
95821	c.urlParams_.Set("alt", alt)
95822	c.urlParams_.Set("prettyPrint", "false")
95823	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses/{resource}/setIamPolicy")
95824	urls += "?" + c.urlParams_.Encode()
95825	req, err := http.NewRequest("POST", urls, body)
95826	if err != nil {
95827		return nil, err
95828	}
95829	req.Header = reqHeaders
95830	googleapi.Expand(req.URL, map[string]string{
95831		"project":  c.project,
95832		"resource": c.resource,
95833	})
95834	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95835}
95836
95837// Do executes the "compute.licenses.setIamPolicy" call.
95838// Exactly one of *Policy or error will be non-nil. Any non-2xx status
95839// code is an error. Response headers are in either
95840// *Policy.ServerResponse.Header or (if a response was returned at all)
95841// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
95842// check whether the returned error was because http.StatusNotModified
95843// was returned.
95844func (c *LicensesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
95845	gensupport.SetOptions(c.urlParams_, opts...)
95846	res, err := c.doRequest("json")
95847	if res != nil && res.StatusCode == http.StatusNotModified {
95848		if res.Body != nil {
95849			res.Body.Close()
95850		}
95851		return nil, &googleapi.Error{
95852			Code:   res.StatusCode,
95853			Header: res.Header,
95854		}
95855	}
95856	if err != nil {
95857		return nil, err
95858	}
95859	defer googleapi.CloseBody(res)
95860	if err := googleapi.CheckResponse(res); err != nil {
95861		return nil, err
95862	}
95863	ret := &Policy{
95864		ServerResponse: googleapi.ServerResponse{
95865			Header:         res.Header,
95866			HTTPStatusCode: res.StatusCode,
95867		},
95868	}
95869	target := &ret
95870	if err := gensupport.DecodeResponse(target, res); err != nil {
95871		return nil, err
95872	}
95873	return ret, nil
95874	// {
95875	//   "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.",
95876	//   "httpMethod": "POST",
95877	//   "id": "compute.licenses.setIamPolicy",
95878	//   "parameterOrder": [
95879	//     "project",
95880	//     "resource"
95881	//   ],
95882	//   "parameters": {
95883	//     "project": {
95884	//       "description": "Project ID for this request.",
95885	//       "location": "path",
95886	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95887	//       "required": true,
95888	//       "type": "string"
95889	//     },
95890	//     "resource": {
95891	//       "description": "Name or id of the resource for this request.",
95892	//       "location": "path",
95893	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95894	//       "required": true,
95895	//       "type": "string"
95896	//     }
95897	//   },
95898	//   "path": "projects/{project}/global/licenses/{resource}/setIamPolicy",
95899	//   "request": {
95900	//     "$ref": "GlobalSetPolicyRequest"
95901	//   },
95902	//   "response": {
95903	//     "$ref": "Policy"
95904	//   },
95905	//   "scopes": [
95906	//     "https://www.googleapis.com/auth/cloud-platform",
95907	//     "https://www.googleapis.com/auth/compute"
95908	//   ]
95909	// }
95910
95911}
95912
95913// method id "compute.licenses.testIamPermissions":
95914
95915type LicensesTestIamPermissionsCall struct {
95916	s                      *Service
95917	project                string
95918	resource               string
95919	testpermissionsrequest *TestPermissionsRequest
95920	urlParams_             gensupport.URLParams
95921	ctx_                   context.Context
95922	header_                http.Header
95923}
95924
95925// TestIamPermissions: Returns permissions that a caller has on the
95926// specified resource.  Caution This resource is intended for use only
95927// by third-party partners who are creating Cloud Marketplace images.
95928//
95929// - project: Project ID for this request.
95930// - resource: Name or id of the resource for this request.
95931func (r *LicensesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *LicensesTestIamPermissionsCall {
95932	c := &LicensesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95933	c.project = project
95934	c.resource = resource
95935	c.testpermissionsrequest = testpermissionsrequest
95936	return c
95937}
95938
95939// Fields allows partial responses to be retrieved. See
95940// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95941// for more information.
95942func (c *LicensesTestIamPermissionsCall) Fields(s ...googleapi.Field) *LicensesTestIamPermissionsCall {
95943	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95944	return c
95945}
95946
95947// Context sets the context to be used in this call's Do method. Any
95948// pending HTTP request will be aborted if the provided context is
95949// canceled.
95950func (c *LicensesTestIamPermissionsCall) Context(ctx context.Context) *LicensesTestIamPermissionsCall {
95951	c.ctx_ = ctx
95952	return c
95953}
95954
95955// Header returns an http.Header that can be modified by the caller to
95956// add HTTP headers to the request.
95957func (c *LicensesTestIamPermissionsCall) Header() http.Header {
95958	if c.header_ == nil {
95959		c.header_ = make(http.Header)
95960	}
95961	return c.header_
95962}
95963
95964func (c *LicensesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
95965	reqHeaders := make(http.Header)
95966	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
95967	for k, v := range c.header_ {
95968		reqHeaders[k] = v
95969	}
95970	reqHeaders.Set("User-Agent", c.s.userAgent())
95971	var body io.Reader = nil
95972	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
95973	if err != nil {
95974		return nil, err
95975	}
95976	reqHeaders.Set("Content-Type", "application/json")
95977	c.urlParams_.Set("alt", alt)
95978	c.urlParams_.Set("prettyPrint", "false")
95979	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/licenses/{resource}/testIamPermissions")
95980	urls += "?" + c.urlParams_.Encode()
95981	req, err := http.NewRequest("POST", urls, body)
95982	if err != nil {
95983		return nil, err
95984	}
95985	req.Header = reqHeaders
95986	googleapi.Expand(req.URL, map[string]string{
95987		"project":  c.project,
95988		"resource": c.resource,
95989	})
95990	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95991}
95992
95993// Do executes the "compute.licenses.testIamPermissions" call.
95994// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
95995// non-2xx status code is an error. Response headers are in either
95996// *TestPermissionsResponse.ServerResponse.Header or (if a response was
95997// returned at all) in error.(*googleapi.Error).Header. Use
95998// googleapi.IsNotModified to check whether the returned error was
95999// because http.StatusNotModified was returned.
96000func (c *LicensesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
96001	gensupport.SetOptions(c.urlParams_, opts...)
96002	res, err := c.doRequest("json")
96003	if res != nil && res.StatusCode == http.StatusNotModified {
96004		if res.Body != nil {
96005			res.Body.Close()
96006		}
96007		return nil, &googleapi.Error{
96008			Code:   res.StatusCode,
96009			Header: res.Header,
96010		}
96011	}
96012	if err != nil {
96013		return nil, err
96014	}
96015	defer googleapi.CloseBody(res)
96016	if err := googleapi.CheckResponse(res); err != nil {
96017		return nil, err
96018	}
96019	ret := &TestPermissionsResponse{
96020		ServerResponse: googleapi.ServerResponse{
96021			Header:         res.Header,
96022			HTTPStatusCode: res.StatusCode,
96023		},
96024	}
96025	target := &ret
96026	if err := gensupport.DecodeResponse(target, res); err != nil {
96027		return nil, err
96028	}
96029	return ret, nil
96030	// {
96031	//   "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.",
96032	//   "httpMethod": "POST",
96033	//   "id": "compute.licenses.testIamPermissions",
96034	//   "parameterOrder": [
96035	//     "project",
96036	//     "resource"
96037	//   ],
96038	//   "parameters": {
96039	//     "project": {
96040	//       "description": "Project ID for this request.",
96041	//       "location": "path",
96042	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96043	//       "required": true,
96044	//       "type": "string"
96045	//     },
96046	//     "resource": {
96047	//       "description": "Name or id of the resource for this request.",
96048	//       "location": "path",
96049	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96050	//       "required": true,
96051	//       "type": "string"
96052	//     }
96053	//   },
96054	//   "path": "projects/{project}/global/licenses/{resource}/testIamPermissions",
96055	//   "request": {
96056	//     "$ref": "TestPermissionsRequest"
96057	//   },
96058	//   "response": {
96059	//     "$ref": "TestPermissionsResponse"
96060	//   },
96061	//   "scopes": [
96062	//     "https://www.googleapis.com/auth/cloud-platform",
96063	//     "https://www.googleapis.com/auth/compute",
96064	//     "https://www.googleapis.com/auth/compute.readonly"
96065	//   ]
96066	// }
96067
96068}
96069
96070// method id "compute.machineTypes.aggregatedList":
96071
96072type MachineTypesAggregatedListCall struct {
96073	s            *Service
96074	project      string
96075	urlParams_   gensupport.URLParams
96076	ifNoneMatch_ string
96077	ctx_         context.Context
96078	header_      http.Header
96079}
96080
96081// AggregatedList: Retrieves an aggregated list of machine types.
96082//
96083// - project: Project ID for this request.
96084// For details, see https://cloud.google.com/compute/docs/reference/latest/machineTypes/aggregatedList
96085func (r *MachineTypesService) AggregatedList(project string) *MachineTypesAggregatedListCall {
96086	c := &MachineTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96087	c.project = project
96088	return c
96089}
96090
96091// Filter sets the optional parameter "filter": A filter expression that
96092// filters resources listed in the response. The expression must specify
96093// the field name, a comparison operator, and the value that you want to
96094// use for filtering. The value must be a string, a number, or a
96095// boolean. The comparison operator must be either `=`, `!=`, `>`, or
96096// `<`.
96097//
96098// For example, if you are filtering Compute Engine instances, you can
96099// exclude instances named `example-instance` by specifying `name !=
96100// example-instance`.
96101//
96102// You can also filter nested fields. For example, you could specify
96103// `scheduling.automaticRestart = false` to include instances only if
96104// they are not scheduled for automatic restarts. You can use filtering
96105// on nested fields to filter based on resource labels.
96106//
96107// To filter on multiple expressions, provide each separate expression
96108// within parentheses. For example: ``` (scheduling.automaticRestart =
96109// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
96110// is an `AND` expression. However, you can include `AND` and `OR`
96111// expressions explicitly. For example: ``` (cpuPlatform = "Intel
96112// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
96113// (scheduling.automaticRestart = true) ```
96114func (c *MachineTypesAggregatedListCall) Filter(filter string) *MachineTypesAggregatedListCall {
96115	c.urlParams_.Set("filter", filter)
96116	return c
96117}
96118
96119// IncludeAllScopes sets the optional parameter "includeAllScopes":
96120// Indicates whether every visible scope for each scope type (zone,
96121// region, global) should be included in the response. For new resource
96122// types added after this field, the flag has no effect as new resource
96123// types will always include every visible scope for each scope type in
96124// response. For resource types which predate this field, if this flag
96125// is omitted or false, only scopes of the scope types where the
96126// resource type is expected to be found will be included.
96127func (c *MachineTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *MachineTypesAggregatedListCall {
96128	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
96129	return c
96130}
96131
96132// MaxResults sets the optional parameter "maxResults": The maximum
96133// number of results per page that should be returned. If the number of
96134// available results is larger than `maxResults`, Compute Engine returns
96135// a `nextPageToken` that can be used to get the next page of results in
96136// subsequent list requests. Acceptable values are `0` to `500`,
96137// inclusive. (Default: `500`)
96138func (c *MachineTypesAggregatedListCall) MaxResults(maxResults int64) *MachineTypesAggregatedListCall {
96139	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
96140	return c
96141}
96142
96143// OrderBy sets the optional parameter "orderBy": Sorts list results by
96144// a certain order. By default, results are returned in alphanumerical
96145// order based on the resource name.
96146//
96147// You can also sort results in descending order based on the creation
96148// timestamp using `orderBy="creationTimestamp desc". This sorts
96149// results based on the `creationTimestamp` field in reverse
96150// chronological order (newest result first). Use this to sort resources
96151// like operations so that the newest operation is returned
96152// first.
96153//
96154// Currently, only sorting by `name` or `creationTimestamp desc` is
96155// supported.
96156func (c *MachineTypesAggregatedListCall) OrderBy(orderBy string) *MachineTypesAggregatedListCall {
96157	c.urlParams_.Set("orderBy", orderBy)
96158	return c
96159}
96160
96161// PageToken sets the optional parameter "pageToken": Specifies a page
96162// token to use. Set `pageToken` to the `nextPageToken` returned by a
96163// previous list request to get the next page of results.
96164func (c *MachineTypesAggregatedListCall) PageToken(pageToken string) *MachineTypesAggregatedListCall {
96165	c.urlParams_.Set("pageToken", pageToken)
96166	return c
96167}
96168
96169// ReturnPartialSuccess sets the optional parameter
96170// "returnPartialSuccess": Opt-in for partial success behavior which
96171// provides partial results in case of failure. The default value is
96172// false.
96173func (c *MachineTypesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *MachineTypesAggregatedListCall {
96174	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
96175	return c
96176}
96177
96178// Fields allows partial responses to be retrieved. See
96179// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96180// for more information.
96181func (c *MachineTypesAggregatedListCall) Fields(s ...googleapi.Field) *MachineTypesAggregatedListCall {
96182	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96183	return c
96184}
96185
96186// IfNoneMatch sets the optional parameter which makes the operation
96187// fail if the object's ETag matches the given value. This is useful for
96188// getting updates only after the object has changed since the last
96189// request. Use googleapi.IsNotModified to check whether the response
96190// error from Do is the result of In-None-Match.
96191func (c *MachineTypesAggregatedListCall) IfNoneMatch(entityTag string) *MachineTypesAggregatedListCall {
96192	c.ifNoneMatch_ = entityTag
96193	return c
96194}
96195
96196// Context sets the context to be used in this call's Do method. Any
96197// pending HTTP request will be aborted if the provided context is
96198// canceled.
96199func (c *MachineTypesAggregatedListCall) Context(ctx context.Context) *MachineTypesAggregatedListCall {
96200	c.ctx_ = ctx
96201	return c
96202}
96203
96204// Header returns an http.Header that can be modified by the caller to
96205// add HTTP headers to the request.
96206func (c *MachineTypesAggregatedListCall) Header() http.Header {
96207	if c.header_ == nil {
96208		c.header_ = make(http.Header)
96209	}
96210	return c.header_
96211}
96212
96213func (c *MachineTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
96214	reqHeaders := make(http.Header)
96215	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
96216	for k, v := range c.header_ {
96217		reqHeaders[k] = v
96218	}
96219	reqHeaders.Set("User-Agent", c.s.userAgent())
96220	if c.ifNoneMatch_ != "" {
96221		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
96222	}
96223	var body io.Reader = nil
96224	c.urlParams_.Set("alt", alt)
96225	c.urlParams_.Set("prettyPrint", "false")
96226	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/machineTypes")
96227	urls += "?" + c.urlParams_.Encode()
96228	req, err := http.NewRequest("GET", urls, body)
96229	if err != nil {
96230		return nil, err
96231	}
96232	req.Header = reqHeaders
96233	googleapi.Expand(req.URL, map[string]string{
96234		"project": c.project,
96235	})
96236	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96237}
96238
96239// Do executes the "compute.machineTypes.aggregatedList" call.
96240// Exactly one of *MachineTypeAggregatedList or error will be non-nil.
96241// Any non-2xx status code is an error. Response headers are in either
96242// *MachineTypeAggregatedList.ServerResponse.Header or (if a response
96243// was returned at all) in error.(*googleapi.Error).Header. Use
96244// googleapi.IsNotModified to check whether the returned error was
96245// because http.StatusNotModified was returned.
96246func (c *MachineTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*MachineTypeAggregatedList, error) {
96247	gensupport.SetOptions(c.urlParams_, opts...)
96248	res, err := c.doRequest("json")
96249	if res != nil && res.StatusCode == http.StatusNotModified {
96250		if res.Body != nil {
96251			res.Body.Close()
96252		}
96253		return nil, &googleapi.Error{
96254			Code:   res.StatusCode,
96255			Header: res.Header,
96256		}
96257	}
96258	if err != nil {
96259		return nil, err
96260	}
96261	defer googleapi.CloseBody(res)
96262	if err := googleapi.CheckResponse(res); err != nil {
96263		return nil, err
96264	}
96265	ret := &MachineTypeAggregatedList{
96266		ServerResponse: googleapi.ServerResponse{
96267			Header:         res.Header,
96268			HTTPStatusCode: res.StatusCode,
96269		},
96270	}
96271	target := &ret
96272	if err := gensupport.DecodeResponse(target, res); err != nil {
96273		return nil, err
96274	}
96275	return ret, nil
96276	// {
96277	//   "description": "Retrieves an aggregated list of machine types.",
96278	//   "httpMethod": "GET",
96279	//   "id": "compute.machineTypes.aggregatedList",
96280	//   "parameterOrder": [
96281	//     "project"
96282	//   ],
96283	//   "parameters": {
96284	//     "filter": {
96285	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
96286	//       "location": "query",
96287	//       "type": "string"
96288	//     },
96289	//     "includeAllScopes": {
96290	//       "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.",
96291	//       "location": "query",
96292	//       "type": "boolean"
96293	//     },
96294	//     "maxResults": {
96295	//       "default": "500",
96296	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
96297	//       "format": "uint32",
96298	//       "location": "query",
96299	//       "minimum": "0",
96300	//       "type": "integer"
96301	//     },
96302	//     "orderBy": {
96303	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
96304	//       "location": "query",
96305	//       "type": "string"
96306	//     },
96307	//     "pageToken": {
96308	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
96309	//       "location": "query",
96310	//       "type": "string"
96311	//     },
96312	//     "project": {
96313	//       "description": "Project ID for this request.",
96314	//       "location": "path",
96315	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96316	//       "required": true,
96317	//       "type": "string"
96318	//     },
96319	//     "returnPartialSuccess": {
96320	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
96321	//       "location": "query",
96322	//       "type": "boolean"
96323	//     }
96324	//   },
96325	//   "path": "projects/{project}/aggregated/machineTypes",
96326	//   "response": {
96327	//     "$ref": "MachineTypeAggregatedList"
96328	//   },
96329	//   "scopes": [
96330	//     "https://www.googleapis.com/auth/cloud-platform",
96331	//     "https://www.googleapis.com/auth/compute",
96332	//     "https://www.googleapis.com/auth/compute.readonly"
96333	//   ]
96334	// }
96335
96336}
96337
96338// Pages invokes f for each page of results.
96339// A non-nil error returned from f will halt the iteration.
96340// The provided context supersedes any context provided to the Context method.
96341func (c *MachineTypesAggregatedListCall) Pages(ctx context.Context, f func(*MachineTypeAggregatedList) error) error {
96342	c.ctx_ = ctx
96343	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
96344	for {
96345		x, err := c.Do()
96346		if err != nil {
96347			return err
96348		}
96349		if err := f(x); err != nil {
96350			return err
96351		}
96352		if x.NextPageToken == "" {
96353			return nil
96354		}
96355		c.PageToken(x.NextPageToken)
96356	}
96357}
96358
96359// method id "compute.machineTypes.get":
96360
96361type MachineTypesGetCall struct {
96362	s            *Service
96363	project      string
96364	zone         string
96365	machineType  string
96366	urlParams_   gensupport.URLParams
96367	ifNoneMatch_ string
96368	ctx_         context.Context
96369	header_      http.Header
96370}
96371
96372// Get: Returns the specified machine type. Gets a list of available
96373// machine types by making a list() request.
96374//
96375// - machineType: Name of the machine type to return.
96376// - project: Project ID for this request.
96377// - zone: The name of the zone for this request.
96378// For details, see https://cloud.google.com/compute/docs/reference/latest/machineTypes/get
96379func (r *MachineTypesService) Get(project string, zone string, machineType string) *MachineTypesGetCall {
96380	c := &MachineTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96381	c.project = project
96382	c.zone = zone
96383	c.machineType = machineType
96384	return c
96385}
96386
96387// Fields allows partial responses to be retrieved. See
96388// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96389// for more information.
96390func (c *MachineTypesGetCall) Fields(s ...googleapi.Field) *MachineTypesGetCall {
96391	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96392	return c
96393}
96394
96395// IfNoneMatch sets the optional parameter which makes the operation
96396// fail if the object's ETag matches the given value. This is useful for
96397// getting updates only after the object has changed since the last
96398// request. Use googleapi.IsNotModified to check whether the response
96399// error from Do is the result of In-None-Match.
96400func (c *MachineTypesGetCall) IfNoneMatch(entityTag string) *MachineTypesGetCall {
96401	c.ifNoneMatch_ = entityTag
96402	return c
96403}
96404
96405// Context sets the context to be used in this call's Do method. Any
96406// pending HTTP request will be aborted if the provided context is
96407// canceled.
96408func (c *MachineTypesGetCall) Context(ctx context.Context) *MachineTypesGetCall {
96409	c.ctx_ = ctx
96410	return c
96411}
96412
96413// Header returns an http.Header that can be modified by the caller to
96414// add HTTP headers to the request.
96415func (c *MachineTypesGetCall) Header() http.Header {
96416	if c.header_ == nil {
96417		c.header_ = make(http.Header)
96418	}
96419	return c.header_
96420}
96421
96422func (c *MachineTypesGetCall) doRequest(alt string) (*http.Response, error) {
96423	reqHeaders := make(http.Header)
96424	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
96425	for k, v := range c.header_ {
96426		reqHeaders[k] = v
96427	}
96428	reqHeaders.Set("User-Agent", c.s.userAgent())
96429	if c.ifNoneMatch_ != "" {
96430		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
96431	}
96432	var body io.Reader = nil
96433	c.urlParams_.Set("alt", alt)
96434	c.urlParams_.Set("prettyPrint", "false")
96435	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/machineTypes/{machineType}")
96436	urls += "?" + c.urlParams_.Encode()
96437	req, err := http.NewRequest("GET", urls, body)
96438	if err != nil {
96439		return nil, err
96440	}
96441	req.Header = reqHeaders
96442	googleapi.Expand(req.URL, map[string]string{
96443		"project":     c.project,
96444		"zone":        c.zone,
96445		"machineType": c.machineType,
96446	})
96447	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96448}
96449
96450// Do executes the "compute.machineTypes.get" call.
96451// Exactly one of *MachineType or error will be non-nil. Any non-2xx
96452// status code is an error. Response headers are in either
96453// *MachineType.ServerResponse.Header or (if a response was returned at
96454// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
96455// to check whether the returned error was because
96456// http.StatusNotModified was returned.
96457func (c *MachineTypesGetCall) Do(opts ...googleapi.CallOption) (*MachineType, error) {
96458	gensupport.SetOptions(c.urlParams_, opts...)
96459	res, err := c.doRequest("json")
96460	if res != nil && res.StatusCode == http.StatusNotModified {
96461		if res.Body != nil {
96462			res.Body.Close()
96463		}
96464		return nil, &googleapi.Error{
96465			Code:   res.StatusCode,
96466			Header: res.Header,
96467		}
96468	}
96469	if err != nil {
96470		return nil, err
96471	}
96472	defer googleapi.CloseBody(res)
96473	if err := googleapi.CheckResponse(res); err != nil {
96474		return nil, err
96475	}
96476	ret := &MachineType{
96477		ServerResponse: googleapi.ServerResponse{
96478			Header:         res.Header,
96479			HTTPStatusCode: res.StatusCode,
96480		},
96481	}
96482	target := &ret
96483	if err := gensupport.DecodeResponse(target, res); err != nil {
96484		return nil, err
96485	}
96486	return ret, nil
96487	// {
96488	//   "description": "Returns the specified machine type. Gets a list of available machine types by making a list() request.",
96489	//   "httpMethod": "GET",
96490	//   "id": "compute.machineTypes.get",
96491	//   "parameterOrder": [
96492	//     "project",
96493	//     "zone",
96494	//     "machineType"
96495	//   ],
96496	//   "parameters": {
96497	//     "machineType": {
96498	//       "description": "Name of the machine type to return.",
96499	//       "location": "path",
96500	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96501	//       "required": true,
96502	//       "type": "string"
96503	//     },
96504	//     "project": {
96505	//       "description": "Project ID for this request.",
96506	//       "location": "path",
96507	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96508	//       "required": true,
96509	//       "type": "string"
96510	//     },
96511	//     "zone": {
96512	//       "description": "The name of the zone for this request.",
96513	//       "location": "path",
96514	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96515	//       "required": true,
96516	//       "type": "string"
96517	//     }
96518	//   },
96519	//   "path": "projects/{project}/zones/{zone}/machineTypes/{machineType}",
96520	//   "response": {
96521	//     "$ref": "MachineType"
96522	//   },
96523	//   "scopes": [
96524	//     "https://www.googleapis.com/auth/cloud-platform",
96525	//     "https://www.googleapis.com/auth/compute",
96526	//     "https://www.googleapis.com/auth/compute.readonly"
96527	//   ]
96528	// }
96529
96530}
96531
96532// method id "compute.machineTypes.list":
96533
96534type MachineTypesListCall struct {
96535	s            *Service
96536	project      string
96537	zone         string
96538	urlParams_   gensupport.URLParams
96539	ifNoneMatch_ string
96540	ctx_         context.Context
96541	header_      http.Header
96542}
96543
96544// List: Retrieves a list of machine types available to the specified
96545// project.
96546//
96547// - project: Project ID for this request.
96548// - zone: The name of the zone for this request.
96549// For details, see https://cloud.google.com/compute/docs/reference/latest/machineTypes/list
96550func (r *MachineTypesService) List(project string, zone string) *MachineTypesListCall {
96551	c := &MachineTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96552	c.project = project
96553	c.zone = zone
96554	return c
96555}
96556
96557// Filter sets the optional parameter "filter": A filter expression that
96558// filters resources listed in the response. The expression must specify
96559// the field name, a comparison operator, and the value that you want to
96560// use for filtering. The value must be a string, a number, or a
96561// boolean. The comparison operator must be either `=`, `!=`, `>`, or
96562// `<`.
96563//
96564// For example, if you are filtering Compute Engine instances, you can
96565// exclude instances named `example-instance` by specifying `name !=
96566// example-instance`.
96567//
96568// You can also filter nested fields. For example, you could specify
96569// `scheduling.automaticRestart = false` to include instances only if
96570// they are not scheduled for automatic restarts. You can use filtering
96571// on nested fields to filter based on resource labels.
96572//
96573// To filter on multiple expressions, provide each separate expression
96574// within parentheses. For example: ``` (scheduling.automaticRestart =
96575// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
96576// is an `AND` expression. However, you can include `AND` and `OR`
96577// expressions explicitly. For example: ``` (cpuPlatform = "Intel
96578// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
96579// (scheduling.automaticRestart = true) ```
96580func (c *MachineTypesListCall) Filter(filter string) *MachineTypesListCall {
96581	c.urlParams_.Set("filter", filter)
96582	return c
96583}
96584
96585// MaxResults sets the optional parameter "maxResults": The maximum
96586// number of results per page that should be returned. If the number of
96587// available results is larger than `maxResults`, Compute Engine returns
96588// a `nextPageToken` that can be used to get the next page of results in
96589// subsequent list requests. Acceptable values are `0` to `500`,
96590// inclusive. (Default: `500`)
96591func (c *MachineTypesListCall) MaxResults(maxResults int64) *MachineTypesListCall {
96592	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
96593	return c
96594}
96595
96596// OrderBy sets the optional parameter "orderBy": Sorts list results by
96597// a certain order. By default, results are returned in alphanumerical
96598// order based on the resource name.
96599//
96600// You can also sort results in descending order based on the creation
96601// timestamp using `orderBy="creationTimestamp desc". This sorts
96602// results based on the `creationTimestamp` field in reverse
96603// chronological order (newest result first). Use this to sort resources
96604// like operations so that the newest operation is returned
96605// first.
96606//
96607// Currently, only sorting by `name` or `creationTimestamp desc` is
96608// supported.
96609func (c *MachineTypesListCall) OrderBy(orderBy string) *MachineTypesListCall {
96610	c.urlParams_.Set("orderBy", orderBy)
96611	return c
96612}
96613
96614// PageToken sets the optional parameter "pageToken": Specifies a page
96615// token to use. Set `pageToken` to the `nextPageToken` returned by a
96616// previous list request to get the next page of results.
96617func (c *MachineTypesListCall) PageToken(pageToken string) *MachineTypesListCall {
96618	c.urlParams_.Set("pageToken", pageToken)
96619	return c
96620}
96621
96622// ReturnPartialSuccess sets the optional parameter
96623// "returnPartialSuccess": Opt-in for partial success behavior which
96624// provides partial results in case of failure. The default value is
96625// false.
96626func (c *MachineTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *MachineTypesListCall {
96627	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
96628	return c
96629}
96630
96631// Fields allows partial responses to be retrieved. See
96632// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96633// for more information.
96634func (c *MachineTypesListCall) Fields(s ...googleapi.Field) *MachineTypesListCall {
96635	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96636	return c
96637}
96638
96639// IfNoneMatch sets the optional parameter which makes the operation
96640// fail if the object's ETag matches the given value. This is useful for
96641// getting updates only after the object has changed since the last
96642// request. Use googleapi.IsNotModified to check whether the response
96643// error from Do is the result of In-None-Match.
96644func (c *MachineTypesListCall) IfNoneMatch(entityTag string) *MachineTypesListCall {
96645	c.ifNoneMatch_ = entityTag
96646	return c
96647}
96648
96649// Context sets the context to be used in this call's Do method. Any
96650// pending HTTP request will be aborted if the provided context is
96651// canceled.
96652func (c *MachineTypesListCall) Context(ctx context.Context) *MachineTypesListCall {
96653	c.ctx_ = ctx
96654	return c
96655}
96656
96657// Header returns an http.Header that can be modified by the caller to
96658// add HTTP headers to the request.
96659func (c *MachineTypesListCall) Header() http.Header {
96660	if c.header_ == nil {
96661		c.header_ = make(http.Header)
96662	}
96663	return c.header_
96664}
96665
96666func (c *MachineTypesListCall) doRequest(alt string) (*http.Response, error) {
96667	reqHeaders := make(http.Header)
96668	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
96669	for k, v := range c.header_ {
96670		reqHeaders[k] = v
96671	}
96672	reqHeaders.Set("User-Agent", c.s.userAgent())
96673	if c.ifNoneMatch_ != "" {
96674		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
96675	}
96676	var body io.Reader = nil
96677	c.urlParams_.Set("alt", alt)
96678	c.urlParams_.Set("prettyPrint", "false")
96679	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/machineTypes")
96680	urls += "?" + c.urlParams_.Encode()
96681	req, err := http.NewRequest("GET", urls, body)
96682	if err != nil {
96683		return nil, err
96684	}
96685	req.Header = reqHeaders
96686	googleapi.Expand(req.URL, map[string]string{
96687		"project": c.project,
96688		"zone":    c.zone,
96689	})
96690	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96691}
96692
96693// Do executes the "compute.machineTypes.list" call.
96694// Exactly one of *MachineTypeList or error will be non-nil. Any non-2xx
96695// status code is an error. Response headers are in either
96696// *MachineTypeList.ServerResponse.Header or (if a response was returned
96697// at all) in error.(*googleapi.Error).Header. Use
96698// googleapi.IsNotModified to check whether the returned error was
96699// because http.StatusNotModified was returned.
96700func (c *MachineTypesListCall) Do(opts ...googleapi.CallOption) (*MachineTypeList, error) {
96701	gensupport.SetOptions(c.urlParams_, opts...)
96702	res, err := c.doRequest("json")
96703	if res != nil && res.StatusCode == http.StatusNotModified {
96704		if res.Body != nil {
96705			res.Body.Close()
96706		}
96707		return nil, &googleapi.Error{
96708			Code:   res.StatusCode,
96709			Header: res.Header,
96710		}
96711	}
96712	if err != nil {
96713		return nil, err
96714	}
96715	defer googleapi.CloseBody(res)
96716	if err := googleapi.CheckResponse(res); err != nil {
96717		return nil, err
96718	}
96719	ret := &MachineTypeList{
96720		ServerResponse: googleapi.ServerResponse{
96721			Header:         res.Header,
96722			HTTPStatusCode: res.StatusCode,
96723		},
96724	}
96725	target := &ret
96726	if err := gensupport.DecodeResponse(target, res); err != nil {
96727		return nil, err
96728	}
96729	return ret, nil
96730	// {
96731	//   "description": "Retrieves a list of machine types available to the specified project.",
96732	//   "httpMethod": "GET",
96733	//   "id": "compute.machineTypes.list",
96734	//   "parameterOrder": [
96735	//     "project",
96736	//     "zone"
96737	//   ],
96738	//   "parameters": {
96739	//     "filter": {
96740	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
96741	//       "location": "query",
96742	//       "type": "string"
96743	//     },
96744	//     "maxResults": {
96745	//       "default": "500",
96746	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
96747	//       "format": "uint32",
96748	//       "location": "query",
96749	//       "minimum": "0",
96750	//       "type": "integer"
96751	//     },
96752	//     "orderBy": {
96753	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
96754	//       "location": "query",
96755	//       "type": "string"
96756	//     },
96757	//     "pageToken": {
96758	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
96759	//       "location": "query",
96760	//       "type": "string"
96761	//     },
96762	//     "project": {
96763	//       "description": "Project ID for this request.",
96764	//       "location": "path",
96765	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96766	//       "required": true,
96767	//       "type": "string"
96768	//     },
96769	//     "returnPartialSuccess": {
96770	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
96771	//       "location": "query",
96772	//       "type": "boolean"
96773	//     },
96774	//     "zone": {
96775	//       "description": "The name of the zone for this request.",
96776	//       "location": "path",
96777	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96778	//       "required": true,
96779	//       "type": "string"
96780	//     }
96781	//   },
96782	//   "path": "projects/{project}/zones/{zone}/machineTypes",
96783	//   "response": {
96784	//     "$ref": "MachineTypeList"
96785	//   },
96786	//   "scopes": [
96787	//     "https://www.googleapis.com/auth/cloud-platform",
96788	//     "https://www.googleapis.com/auth/compute",
96789	//     "https://www.googleapis.com/auth/compute.readonly"
96790	//   ]
96791	// }
96792
96793}
96794
96795// Pages invokes f for each page of results.
96796// A non-nil error returned from f will halt the iteration.
96797// The provided context supersedes any context provided to the Context method.
96798func (c *MachineTypesListCall) Pages(ctx context.Context, f func(*MachineTypeList) error) error {
96799	c.ctx_ = ctx
96800	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
96801	for {
96802		x, err := c.Do()
96803		if err != nil {
96804			return err
96805		}
96806		if err := f(x); err != nil {
96807			return err
96808		}
96809		if x.NextPageToken == "" {
96810			return nil
96811		}
96812		c.PageToken(x.NextPageToken)
96813	}
96814}
96815
96816// method id "compute.networkEndpointGroups.aggregatedList":
96817
96818type NetworkEndpointGroupsAggregatedListCall struct {
96819	s            *Service
96820	project      string
96821	urlParams_   gensupport.URLParams
96822	ifNoneMatch_ string
96823	ctx_         context.Context
96824	header_      http.Header
96825}
96826
96827// AggregatedList: Retrieves the list of network endpoint groups and
96828// sorts them by zone.
96829//
96830// - project: Project ID for this request.
96831func (r *NetworkEndpointGroupsService) AggregatedList(project string) *NetworkEndpointGroupsAggregatedListCall {
96832	c := &NetworkEndpointGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96833	c.project = project
96834	return c
96835}
96836
96837// Filter sets the optional parameter "filter": A filter expression that
96838// filters resources listed in the response. The expression must specify
96839// the field name, a comparison operator, and the value that you want to
96840// use for filtering. The value must be a string, a number, or a
96841// boolean. The comparison operator must be either `=`, `!=`, `>`, or
96842// `<`.
96843//
96844// For example, if you are filtering Compute Engine instances, you can
96845// exclude instances named `example-instance` by specifying `name !=
96846// example-instance`.
96847//
96848// You can also filter nested fields. For example, you could specify
96849// `scheduling.automaticRestart = false` to include instances only if
96850// they are not scheduled for automatic restarts. You can use filtering
96851// on nested fields to filter based on resource labels.
96852//
96853// To filter on multiple expressions, provide each separate expression
96854// within parentheses. For example: ``` (scheduling.automaticRestart =
96855// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
96856// is an `AND` expression. However, you can include `AND` and `OR`
96857// expressions explicitly. For example: ``` (cpuPlatform = "Intel
96858// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
96859// (scheduling.automaticRestart = true) ```
96860func (c *NetworkEndpointGroupsAggregatedListCall) Filter(filter string) *NetworkEndpointGroupsAggregatedListCall {
96861	c.urlParams_.Set("filter", filter)
96862	return c
96863}
96864
96865// IncludeAllScopes sets the optional parameter "includeAllScopes":
96866// Indicates whether every visible scope for each scope type (zone,
96867// region, global) should be included in the response. For new resource
96868// types added after this field, the flag has no effect as new resource
96869// types will always include every visible scope for each scope type in
96870// response. For resource types which predate this field, if this flag
96871// is omitted or false, only scopes of the scope types where the
96872// resource type is expected to be found will be included.
96873func (c *NetworkEndpointGroupsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NetworkEndpointGroupsAggregatedListCall {
96874	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
96875	return c
96876}
96877
96878// MaxResults sets the optional parameter "maxResults": The maximum
96879// number of results per page that should be returned. If the number of
96880// available results is larger than `maxResults`, Compute Engine returns
96881// a `nextPageToken` that can be used to get the next page of results in
96882// subsequent list requests. Acceptable values are `0` to `500`,
96883// inclusive. (Default: `500`)
96884func (c *NetworkEndpointGroupsAggregatedListCall) MaxResults(maxResults int64) *NetworkEndpointGroupsAggregatedListCall {
96885	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
96886	return c
96887}
96888
96889// OrderBy sets the optional parameter "orderBy": Sorts list results by
96890// a certain order. By default, results are returned in alphanumerical
96891// order based on the resource name.
96892//
96893// You can also sort results in descending order based on the creation
96894// timestamp using `orderBy="creationTimestamp desc". This sorts
96895// results based on the `creationTimestamp` field in reverse
96896// chronological order (newest result first). Use this to sort resources
96897// like operations so that the newest operation is returned
96898// first.
96899//
96900// Currently, only sorting by `name` or `creationTimestamp desc` is
96901// supported.
96902func (c *NetworkEndpointGroupsAggregatedListCall) OrderBy(orderBy string) *NetworkEndpointGroupsAggregatedListCall {
96903	c.urlParams_.Set("orderBy", orderBy)
96904	return c
96905}
96906
96907// PageToken sets the optional parameter "pageToken": Specifies a page
96908// token to use. Set `pageToken` to the `nextPageToken` returned by a
96909// previous list request to get the next page of results.
96910func (c *NetworkEndpointGroupsAggregatedListCall) PageToken(pageToken string) *NetworkEndpointGroupsAggregatedListCall {
96911	c.urlParams_.Set("pageToken", pageToken)
96912	return c
96913}
96914
96915// ReturnPartialSuccess sets the optional parameter
96916// "returnPartialSuccess": Opt-in for partial success behavior which
96917// provides partial results in case of failure. The default value is
96918// false.
96919func (c *NetworkEndpointGroupsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworkEndpointGroupsAggregatedListCall {
96920	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
96921	return c
96922}
96923
96924// Fields allows partial responses to be retrieved. See
96925// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96926// for more information.
96927func (c *NetworkEndpointGroupsAggregatedListCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsAggregatedListCall {
96928	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96929	return c
96930}
96931
96932// IfNoneMatch sets the optional parameter which makes the operation
96933// fail if the object's ETag matches the given value. This is useful for
96934// getting updates only after the object has changed since the last
96935// request. Use googleapi.IsNotModified to check whether the response
96936// error from Do is the result of In-None-Match.
96937func (c *NetworkEndpointGroupsAggregatedListCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsAggregatedListCall {
96938	c.ifNoneMatch_ = entityTag
96939	return c
96940}
96941
96942// Context sets the context to be used in this call's Do method. Any
96943// pending HTTP request will be aborted if the provided context is
96944// canceled.
96945func (c *NetworkEndpointGroupsAggregatedListCall) Context(ctx context.Context) *NetworkEndpointGroupsAggregatedListCall {
96946	c.ctx_ = ctx
96947	return c
96948}
96949
96950// Header returns an http.Header that can be modified by the caller to
96951// add HTTP headers to the request.
96952func (c *NetworkEndpointGroupsAggregatedListCall) Header() http.Header {
96953	if c.header_ == nil {
96954		c.header_ = make(http.Header)
96955	}
96956	return c.header_
96957}
96958
96959func (c *NetworkEndpointGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
96960	reqHeaders := make(http.Header)
96961	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
96962	for k, v := range c.header_ {
96963		reqHeaders[k] = v
96964	}
96965	reqHeaders.Set("User-Agent", c.s.userAgent())
96966	if c.ifNoneMatch_ != "" {
96967		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
96968	}
96969	var body io.Reader = nil
96970	c.urlParams_.Set("alt", alt)
96971	c.urlParams_.Set("prettyPrint", "false")
96972	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/networkEndpointGroups")
96973	urls += "?" + c.urlParams_.Encode()
96974	req, err := http.NewRequest("GET", urls, body)
96975	if err != nil {
96976		return nil, err
96977	}
96978	req.Header = reqHeaders
96979	googleapi.Expand(req.URL, map[string]string{
96980		"project": c.project,
96981	})
96982	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96983}
96984
96985// Do executes the "compute.networkEndpointGroups.aggregatedList" call.
96986// Exactly one of *NetworkEndpointGroupAggregatedList or error will be
96987// non-nil. Any non-2xx status code is an error. Response headers are in
96988// either *NetworkEndpointGroupAggregatedList.ServerResponse.Header or
96989// (if a response was returned at all) in
96990// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
96991// whether the returned error was because http.StatusNotModified was
96992// returned.
96993func (c *NetworkEndpointGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupAggregatedList, error) {
96994	gensupport.SetOptions(c.urlParams_, opts...)
96995	res, err := c.doRequest("json")
96996	if res != nil && res.StatusCode == http.StatusNotModified {
96997		if res.Body != nil {
96998			res.Body.Close()
96999		}
97000		return nil, &googleapi.Error{
97001			Code:   res.StatusCode,
97002			Header: res.Header,
97003		}
97004	}
97005	if err != nil {
97006		return nil, err
97007	}
97008	defer googleapi.CloseBody(res)
97009	if err := googleapi.CheckResponse(res); err != nil {
97010		return nil, err
97011	}
97012	ret := &NetworkEndpointGroupAggregatedList{
97013		ServerResponse: googleapi.ServerResponse{
97014			Header:         res.Header,
97015			HTTPStatusCode: res.StatusCode,
97016		},
97017	}
97018	target := &ret
97019	if err := gensupport.DecodeResponse(target, res); err != nil {
97020		return nil, err
97021	}
97022	return ret, nil
97023	// {
97024	//   "description": "Retrieves the list of network endpoint groups and sorts them by zone.",
97025	//   "httpMethod": "GET",
97026	//   "id": "compute.networkEndpointGroups.aggregatedList",
97027	//   "parameterOrder": [
97028	//     "project"
97029	//   ],
97030	//   "parameters": {
97031	//     "filter": {
97032	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
97033	//       "location": "query",
97034	//       "type": "string"
97035	//     },
97036	//     "includeAllScopes": {
97037	//       "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.",
97038	//       "location": "query",
97039	//       "type": "boolean"
97040	//     },
97041	//     "maxResults": {
97042	//       "default": "500",
97043	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
97044	//       "format": "uint32",
97045	//       "location": "query",
97046	//       "minimum": "0",
97047	//       "type": "integer"
97048	//     },
97049	//     "orderBy": {
97050	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
97051	//       "location": "query",
97052	//       "type": "string"
97053	//     },
97054	//     "pageToken": {
97055	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
97056	//       "location": "query",
97057	//       "type": "string"
97058	//     },
97059	//     "project": {
97060	//       "description": "Project ID for this request.",
97061	//       "location": "path",
97062	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97063	//       "required": true,
97064	//       "type": "string"
97065	//     },
97066	//     "returnPartialSuccess": {
97067	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
97068	//       "location": "query",
97069	//       "type": "boolean"
97070	//     }
97071	//   },
97072	//   "path": "projects/{project}/aggregated/networkEndpointGroups",
97073	//   "response": {
97074	//     "$ref": "NetworkEndpointGroupAggregatedList"
97075	//   },
97076	//   "scopes": [
97077	//     "https://www.googleapis.com/auth/cloud-platform",
97078	//     "https://www.googleapis.com/auth/compute",
97079	//     "https://www.googleapis.com/auth/compute.readonly"
97080	//   ]
97081	// }
97082
97083}
97084
97085// Pages invokes f for each page of results.
97086// A non-nil error returned from f will halt the iteration.
97087// The provided context supersedes any context provided to the Context method.
97088func (c *NetworkEndpointGroupsAggregatedListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupAggregatedList) error) error {
97089	c.ctx_ = ctx
97090	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
97091	for {
97092		x, err := c.Do()
97093		if err != nil {
97094			return err
97095		}
97096		if err := f(x); err != nil {
97097			return err
97098		}
97099		if x.NextPageToken == "" {
97100			return nil
97101		}
97102		c.PageToken(x.NextPageToken)
97103	}
97104}
97105
97106// method id "compute.networkEndpointGroups.attachNetworkEndpoints":
97107
97108type NetworkEndpointGroupsAttachNetworkEndpointsCall struct {
97109	s                                           *Service
97110	project                                     string
97111	zone                                        string
97112	networkEndpointGroup                        string
97113	networkendpointgroupsattachendpointsrequest *NetworkEndpointGroupsAttachEndpointsRequest
97114	urlParams_                                  gensupport.URLParams
97115	ctx_                                        context.Context
97116	header_                                     http.Header
97117}
97118
97119// AttachNetworkEndpoints: Attach a list of network endpoints to the
97120// specified network endpoint group.
97121//
97122// - networkEndpointGroup: The name of the network endpoint group where
97123//   you are attaching network endpoints to. It should comply with
97124//   RFC1035.
97125// - project: Project ID for this request.
97126// - zone: The name of the zone where the network endpoint group is
97127//   located. It should comply with RFC1035.
97128func (r *NetworkEndpointGroupsService) AttachNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupsattachendpointsrequest *NetworkEndpointGroupsAttachEndpointsRequest) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
97129	c := &NetworkEndpointGroupsAttachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97130	c.project = project
97131	c.zone = zone
97132	c.networkEndpointGroup = networkEndpointGroup
97133	c.networkendpointgroupsattachendpointsrequest = networkendpointgroupsattachendpointsrequest
97134	return c
97135}
97136
97137// RequestId sets the optional parameter "requestId": An optional
97138// request ID to identify requests. Specify a unique request ID so that
97139// if you must retry your request, the server will know to ignore the
97140// request if it has already been completed.
97141//
97142// For example, consider a situation where you make an initial request
97143// and the request times out. If you make the request again with the
97144// same request ID, the server can check if original operation with the
97145// same request ID was received, and if so, will ignore the second
97146// request. This prevents clients from accidentally creating duplicate
97147// commitments.
97148//
97149// The request ID must be a valid UUID with the exception that zero UUID
97150// is not supported (00000000-0000-0000-0000-000000000000).
97151func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) RequestId(requestId string) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
97152	c.urlParams_.Set("requestId", requestId)
97153	return c
97154}
97155
97156// Fields allows partial responses to be retrieved. See
97157// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97158// for more information.
97159func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
97160	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97161	return c
97162}
97163
97164// Context sets the context to be used in this call's Do method. Any
97165// pending HTTP request will be aborted if the provided context is
97166// canceled.
97167func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
97168	c.ctx_ = ctx
97169	return c
97170}
97171
97172// Header returns an http.Header that can be modified by the caller to
97173// add HTTP headers to the request.
97174func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Header() http.Header {
97175	if c.header_ == nil {
97176		c.header_ = make(http.Header)
97177	}
97178	return c.header_
97179}
97180
97181func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
97182	reqHeaders := make(http.Header)
97183	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
97184	for k, v := range c.header_ {
97185		reqHeaders[k] = v
97186	}
97187	reqHeaders.Set("User-Agent", c.s.userAgent())
97188	var body io.Reader = nil
97189	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupsattachendpointsrequest)
97190	if err != nil {
97191		return nil, err
97192	}
97193	reqHeaders.Set("Content-Type", "application/json")
97194	c.urlParams_.Set("alt", alt)
97195	c.urlParams_.Set("prettyPrint", "false")
97196	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints")
97197	urls += "?" + c.urlParams_.Encode()
97198	req, err := http.NewRequest("POST", urls, body)
97199	if err != nil {
97200		return nil, err
97201	}
97202	req.Header = reqHeaders
97203	googleapi.Expand(req.URL, map[string]string{
97204		"project":              c.project,
97205		"zone":                 c.zone,
97206		"networkEndpointGroup": c.networkEndpointGroup,
97207	})
97208	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97209}
97210
97211// Do executes the "compute.networkEndpointGroups.attachNetworkEndpoints" call.
97212// Exactly one of *Operation or error will be non-nil. Any non-2xx
97213// status code is an error. Response headers are in either
97214// *Operation.ServerResponse.Header or (if a response was returned at
97215// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
97216// to check whether the returned error was because
97217// http.StatusNotModified was returned.
97218func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
97219	gensupport.SetOptions(c.urlParams_, opts...)
97220	res, err := c.doRequest("json")
97221	if res != nil && res.StatusCode == http.StatusNotModified {
97222		if res.Body != nil {
97223			res.Body.Close()
97224		}
97225		return nil, &googleapi.Error{
97226			Code:   res.StatusCode,
97227			Header: res.Header,
97228		}
97229	}
97230	if err != nil {
97231		return nil, err
97232	}
97233	defer googleapi.CloseBody(res)
97234	if err := googleapi.CheckResponse(res); err != nil {
97235		return nil, err
97236	}
97237	ret := &Operation{
97238		ServerResponse: googleapi.ServerResponse{
97239			Header:         res.Header,
97240			HTTPStatusCode: res.StatusCode,
97241		},
97242	}
97243	target := &ret
97244	if err := gensupport.DecodeResponse(target, res); err != nil {
97245		return nil, err
97246	}
97247	return ret, nil
97248	// {
97249	//   "description": "Attach a list of network endpoints to the specified network endpoint group.",
97250	//   "httpMethod": "POST",
97251	//   "id": "compute.networkEndpointGroups.attachNetworkEndpoints",
97252	//   "parameterOrder": [
97253	//     "project",
97254	//     "zone",
97255	//     "networkEndpointGroup"
97256	//   ],
97257	//   "parameters": {
97258	//     "networkEndpointGroup": {
97259	//       "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.",
97260	//       "location": "path",
97261	//       "required": true,
97262	//       "type": "string"
97263	//     },
97264	//     "project": {
97265	//       "description": "Project ID for this request.",
97266	//       "location": "path",
97267	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97268	//       "required": true,
97269	//       "type": "string"
97270	//     },
97271	//     "requestId": {
97272	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
97273	//       "location": "query",
97274	//       "type": "string"
97275	//     },
97276	//     "zone": {
97277	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
97278	//       "location": "path",
97279	//       "required": true,
97280	//       "type": "string"
97281	//     }
97282	//   },
97283	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints",
97284	//   "request": {
97285	//     "$ref": "NetworkEndpointGroupsAttachEndpointsRequest"
97286	//   },
97287	//   "response": {
97288	//     "$ref": "Operation"
97289	//   },
97290	//   "scopes": [
97291	//     "https://www.googleapis.com/auth/cloud-platform",
97292	//     "https://www.googleapis.com/auth/compute"
97293	//   ]
97294	// }
97295
97296}
97297
97298// method id "compute.networkEndpointGroups.delete":
97299
97300type NetworkEndpointGroupsDeleteCall struct {
97301	s                    *Service
97302	project              string
97303	zone                 string
97304	networkEndpointGroup string
97305	urlParams_           gensupport.URLParams
97306	ctx_                 context.Context
97307	header_              http.Header
97308}
97309
97310// Delete: Deletes the specified network endpoint group. The network
97311// endpoints in the NEG and the VM instances they belong to are not
97312// terminated when the NEG is deleted. Note that the NEG cannot be
97313// deleted if there are backend services referencing it.
97314//
97315// - networkEndpointGroup: The name of the network endpoint group to
97316//   delete. It should comply with RFC1035.
97317// - project: Project ID for this request.
97318// - zone: The name of the zone where the network endpoint group is
97319//   located. It should comply with RFC1035.
97320func (r *NetworkEndpointGroupsService) Delete(project string, zone string, networkEndpointGroup string) *NetworkEndpointGroupsDeleteCall {
97321	c := &NetworkEndpointGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97322	c.project = project
97323	c.zone = zone
97324	c.networkEndpointGroup = networkEndpointGroup
97325	return c
97326}
97327
97328// RequestId sets the optional parameter "requestId": An optional
97329// request ID to identify requests. Specify a unique request ID so that
97330// if you must retry your request, the server will know to ignore the
97331// request if it has already been completed.
97332//
97333// For example, consider a situation where you make an initial request
97334// and the request times out. If you make the request again with the
97335// same request ID, the server can check if original operation with the
97336// same request ID was received, and if so, will ignore the second
97337// request. This prevents clients from accidentally creating duplicate
97338// commitments.
97339//
97340// The request ID must be a valid UUID with the exception that zero UUID
97341// is not supported (00000000-0000-0000-0000-000000000000).
97342func (c *NetworkEndpointGroupsDeleteCall) RequestId(requestId string) *NetworkEndpointGroupsDeleteCall {
97343	c.urlParams_.Set("requestId", requestId)
97344	return c
97345}
97346
97347// Fields allows partial responses to be retrieved. See
97348// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97349// for more information.
97350func (c *NetworkEndpointGroupsDeleteCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsDeleteCall {
97351	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97352	return c
97353}
97354
97355// Context sets the context to be used in this call's Do method. Any
97356// pending HTTP request will be aborted if the provided context is
97357// canceled.
97358func (c *NetworkEndpointGroupsDeleteCall) Context(ctx context.Context) *NetworkEndpointGroupsDeleteCall {
97359	c.ctx_ = ctx
97360	return c
97361}
97362
97363// Header returns an http.Header that can be modified by the caller to
97364// add HTTP headers to the request.
97365func (c *NetworkEndpointGroupsDeleteCall) Header() http.Header {
97366	if c.header_ == nil {
97367		c.header_ = make(http.Header)
97368	}
97369	return c.header_
97370}
97371
97372func (c *NetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
97373	reqHeaders := make(http.Header)
97374	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
97375	for k, v := range c.header_ {
97376		reqHeaders[k] = v
97377	}
97378	reqHeaders.Set("User-Agent", c.s.userAgent())
97379	var body io.Reader = nil
97380	c.urlParams_.Set("alt", alt)
97381	c.urlParams_.Set("prettyPrint", "false")
97382	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}")
97383	urls += "?" + c.urlParams_.Encode()
97384	req, err := http.NewRequest("DELETE", urls, body)
97385	if err != nil {
97386		return nil, err
97387	}
97388	req.Header = reqHeaders
97389	googleapi.Expand(req.URL, map[string]string{
97390		"project":              c.project,
97391		"zone":                 c.zone,
97392		"networkEndpointGroup": c.networkEndpointGroup,
97393	})
97394	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97395}
97396
97397// Do executes the "compute.networkEndpointGroups.delete" call.
97398// Exactly one of *Operation or error will be non-nil. Any non-2xx
97399// status code is an error. Response headers are in either
97400// *Operation.ServerResponse.Header or (if a response was returned at
97401// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
97402// to check whether the returned error was because
97403// http.StatusNotModified was returned.
97404func (c *NetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
97405	gensupport.SetOptions(c.urlParams_, opts...)
97406	res, err := c.doRequest("json")
97407	if res != nil && res.StatusCode == http.StatusNotModified {
97408		if res.Body != nil {
97409			res.Body.Close()
97410		}
97411		return nil, &googleapi.Error{
97412			Code:   res.StatusCode,
97413			Header: res.Header,
97414		}
97415	}
97416	if err != nil {
97417		return nil, err
97418	}
97419	defer googleapi.CloseBody(res)
97420	if err := googleapi.CheckResponse(res); err != nil {
97421		return nil, err
97422	}
97423	ret := &Operation{
97424		ServerResponse: googleapi.ServerResponse{
97425			Header:         res.Header,
97426			HTTPStatusCode: res.StatusCode,
97427		},
97428	}
97429	target := &ret
97430	if err := gensupport.DecodeResponse(target, res); err != nil {
97431		return nil, err
97432	}
97433	return ret, nil
97434	// {
97435	//   "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.",
97436	//   "httpMethod": "DELETE",
97437	//   "id": "compute.networkEndpointGroups.delete",
97438	//   "parameterOrder": [
97439	//     "project",
97440	//     "zone",
97441	//     "networkEndpointGroup"
97442	//   ],
97443	//   "parameters": {
97444	//     "networkEndpointGroup": {
97445	//       "description": "The name of the network endpoint group to delete. It should comply with RFC1035.",
97446	//       "location": "path",
97447	//       "required": true,
97448	//       "type": "string"
97449	//     },
97450	//     "project": {
97451	//       "description": "Project ID for this request.",
97452	//       "location": "path",
97453	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97454	//       "required": true,
97455	//       "type": "string"
97456	//     },
97457	//     "requestId": {
97458	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
97459	//       "location": "query",
97460	//       "type": "string"
97461	//     },
97462	//     "zone": {
97463	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
97464	//       "location": "path",
97465	//       "required": true,
97466	//       "type": "string"
97467	//     }
97468	//   },
97469	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}",
97470	//   "response": {
97471	//     "$ref": "Operation"
97472	//   },
97473	//   "scopes": [
97474	//     "https://www.googleapis.com/auth/cloud-platform",
97475	//     "https://www.googleapis.com/auth/compute"
97476	//   ]
97477	// }
97478
97479}
97480
97481// method id "compute.networkEndpointGroups.detachNetworkEndpoints":
97482
97483type NetworkEndpointGroupsDetachNetworkEndpointsCall struct {
97484	s                                           *Service
97485	project                                     string
97486	zone                                        string
97487	networkEndpointGroup                        string
97488	networkendpointgroupsdetachendpointsrequest *NetworkEndpointGroupsDetachEndpointsRequest
97489	urlParams_                                  gensupport.URLParams
97490	ctx_                                        context.Context
97491	header_                                     http.Header
97492}
97493
97494// DetachNetworkEndpoints: Detach a list of network endpoints from the
97495// specified network endpoint group.
97496//
97497// - networkEndpointGroup: The name of the network endpoint group where
97498//   you are removing network endpoints. It should comply with RFC1035.
97499// - project: Project ID for this request.
97500// - zone: The name of the zone where the network endpoint group is
97501//   located. It should comply with RFC1035.
97502func (r *NetworkEndpointGroupsService) DetachNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupsdetachendpointsrequest *NetworkEndpointGroupsDetachEndpointsRequest) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
97503	c := &NetworkEndpointGroupsDetachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97504	c.project = project
97505	c.zone = zone
97506	c.networkEndpointGroup = networkEndpointGroup
97507	c.networkendpointgroupsdetachendpointsrequest = networkendpointgroupsdetachendpointsrequest
97508	return c
97509}
97510
97511// RequestId sets the optional parameter "requestId": An optional
97512// request ID to identify requests. Specify a unique request ID so that
97513// if you must retry your request, the server will know to ignore the
97514// request if it has already been completed.
97515//
97516// For example, consider a situation where you make an initial request
97517// and the request times out. If you make the request again with the
97518// same request ID, the server can check if original operation with the
97519// same request ID was received, and if so, will ignore the second
97520// request. This prevents clients from accidentally creating duplicate
97521// commitments.
97522//
97523// The request ID must be a valid UUID with the exception that zero UUID
97524// is not supported (00000000-0000-0000-0000-000000000000).
97525func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) RequestId(requestId string) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
97526	c.urlParams_.Set("requestId", requestId)
97527	return c
97528}
97529
97530// Fields allows partial responses to be retrieved. See
97531// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97532// for more information.
97533func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
97534	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97535	return c
97536}
97537
97538// Context sets the context to be used in this call's Do method. Any
97539// pending HTTP request will be aborted if the provided context is
97540// canceled.
97541func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
97542	c.ctx_ = ctx
97543	return c
97544}
97545
97546// Header returns an http.Header that can be modified by the caller to
97547// add HTTP headers to the request.
97548func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Header() http.Header {
97549	if c.header_ == nil {
97550		c.header_ = make(http.Header)
97551	}
97552	return c.header_
97553}
97554
97555func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
97556	reqHeaders := make(http.Header)
97557	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
97558	for k, v := range c.header_ {
97559		reqHeaders[k] = v
97560	}
97561	reqHeaders.Set("User-Agent", c.s.userAgent())
97562	var body io.Reader = nil
97563	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupsdetachendpointsrequest)
97564	if err != nil {
97565		return nil, err
97566	}
97567	reqHeaders.Set("Content-Type", "application/json")
97568	c.urlParams_.Set("alt", alt)
97569	c.urlParams_.Set("prettyPrint", "false")
97570	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints")
97571	urls += "?" + c.urlParams_.Encode()
97572	req, err := http.NewRequest("POST", urls, body)
97573	if err != nil {
97574		return nil, err
97575	}
97576	req.Header = reqHeaders
97577	googleapi.Expand(req.URL, map[string]string{
97578		"project":              c.project,
97579		"zone":                 c.zone,
97580		"networkEndpointGroup": c.networkEndpointGroup,
97581	})
97582	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97583}
97584
97585// Do executes the "compute.networkEndpointGroups.detachNetworkEndpoints" call.
97586// Exactly one of *Operation or error will be non-nil. Any non-2xx
97587// status code is an error. Response headers are in either
97588// *Operation.ServerResponse.Header or (if a response was returned at
97589// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
97590// to check whether the returned error was because
97591// http.StatusNotModified was returned.
97592func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
97593	gensupport.SetOptions(c.urlParams_, opts...)
97594	res, err := c.doRequest("json")
97595	if res != nil && res.StatusCode == http.StatusNotModified {
97596		if res.Body != nil {
97597			res.Body.Close()
97598		}
97599		return nil, &googleapi.Error{
97600			Code:   res.StatusCode,
97601			Header: res.Header,
97602		}
97603	}
97604	if err != nil {
97605		return nil, err
97606	}
97607	defer googleapi.CloseBody(res)
97608	if err := googleapi.CheckResponse(res); err != nil {
97609		return nil, err
97610	}
97611	ret := &Operation{
97612		ServerResponse: googleapi.ServerResponse{
97613			Header:         res.Header,
97614			HTTPStatusCode: res.StatusCode,
97615		},
97616	}
97617	target := &ret
97618	if err := gensupport.DecodeResponse(target, res); err != nil {
97619		return nil, err
97620	}
97621	return ret, nil
97622	// {
97623	//   "description": "Detach a list of network endpoints from the specified network endpoint group.",
97624	//   "httpMethod": "POST",
97625	//   "id": "compute.networkEndpointGroups.detachNetworkEndpoints",
97626	//   "parameterOrder": [
97627	//     "project",
97628	//     "zone",
97629	//     "networkEndpointGroup"
97630	//   ],
97631	//   "parameters": {
97632	//     "networkEndpointGroup": {
97633	//       "description": "The name of the network endpoint group where you are removing network endpoints. It should comply with RFC1035.",
97634	//       "location": "path",
97635	//       "required": true,
97636	//       "type": "string"
97637	//     },
97638	//     "project": {
97639	//       "description": "Project ID for this request.",
97640	//       "location": "path",
97641	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97642	//       "required": true,
97643	//       "type": "string"
97644	//     },
97645	//     "requestId": {
97646	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
97647	//       "location": "query",
97648	//       "type": "string"
97649	//     },
97650	//     "zone": {
97651	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
97652	//       "location": "path",
97653	//       "required": true,
97654	//       "type": "string"
97655	//     }
97656	//   },
97657	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints",
97658	//   "request": {
97659	//     "$ref": "NetworkEndpointGroupsDetachEndpointsRequest"
97660	//   },
97661	//   "response": {
97662	//     "$ref": "Operation"
97663	//   },
97664	//   "scopes": [
97665	//     "https://www.googleapis.com/auth/cloud-platform",
97666	//     "https://www.googleapis.com/auth/compute"
97667	//   ]
97668	// }
97669
97670}
97671
97672// method id "compute.networkEndpointGroups.get":
97673
97674type NetworkEndpointGroupsGetCall struct {
97675	s                    *Service
97676	project              string
97677	zone                 string
97678	networkEndpointGroup string
97679	urlParams_           gensupport.URLParams
97680	ifNoneMatch_         string
97681	ctx_                 context.Context
97682	header_              http.Header
97683}
97684
97685// Get: Returns the specified network endpoint group. Gets a list of
97686// available network endpoint groups by making a list() request.
97687//
97688// - networkEndpointGroup: The name of the network endpoint group. It
97689//   should comply with RFC1035.
97690// - project: Project ID for this request.
97691// - zone: The name of the zone where the network endpoint group is
97692//   located. It should comply with RFC1035.
97693func (r *NetworkEndpointGroupsService) Get(project string, zone string, networkEndpointGroup string) *NetworkEndpointGroupsGetCall {
97694	c := &NetworkEndpointGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97695	c.project = project
97696	c.zone = zone
97697	c.networkEndpointGroup = networkEndpointGroup
97698	return c
97699}
97700
97701// Fields allows partial responses to be retrieved. See
97702// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97703// for more information.
97704func (c *NetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsGetCall {
97705	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97706	return c
97707}
97708
97709// IfNoneMatch sets the optional parameter which makes the operation
97710// fail if the object's ETag matches the given value. This is useful for
97711// getting updates only after the object has changed since the last
97712// request. Use googleapi.IsNotModified to check whether the response
97713// error from Do is the result of In-None-Match.
97714func (c *NetworkEndpointGroupsGetCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsGetCall {
97715	c.ifNoneMatch_ = entityTag
97716	return c
97717}
97718
97719// Context sets the context to be used in this call's Do method. Any
97720// pending HTTP request will be aborted if the provided context is
97721// canceled.
97722func (c *NetworkEndpointGroupsGetCall) Context(ctx context.Context) *NetworkEndpointGroupsGetCall {
97723	c.ctx_ = ctx
97724	return c
97725}
97726
97727// Header returns an http.Header that can be modified by the caller to
97728// add HTTP headers to the request.
97729func (c *NetworkEndpointGroupsGetCall) Header() http.Header {
97730	if c.header_ == nil {
97731		c.header_ = make(http.Header)
97732	}
97733	return c.header_
97734}
97735
97736func (c *NetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Response, error) {
97737	reqHeaders := make(http.Header)
97738	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
97739	for k, v := range c.header_ {
97740		reqHeaders[k] = v
97741	}
97742	reqHeaders.Set("User-Agent", c.s.userAgent())
97743	if c.ifNoneMatch_ != "" {
97744		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
97745	}
97746	var body io.Reader = nil
97747	c.urlParams_.Set("alt", alt)
97748	c.urlParams_.Set("prettyPrint", "false")
97749	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}")
97750	urls += "?" + c.urlParams_.Encode()
97751	req, err := http.NewRequest("GET", urls, body)
97752	if err != nil {
97753		return nil, err
97754	}
97755	req.Header = reqHeaders
97756	googleapi.Expand(req.URL, map[string]string{
97757		"project":              c.project,
97758		"zone":                 c.zone,
97759		"networkEndpointGroup": c.networkEndpointGroup,
97760	})
97761	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97762}
97763
97764// Do executes the "compute.networkEndpointGroups.get" call.
97765// Exactly one of *NetworkEndpointGroup or error will be non-nil. Any
97766// non-2xx status code is an error. Response headers are in either
97767// *NetworkEndpointGroup.ServerResponse.Header or (if a response was
97768// returned at all) in error.(*googleapi.Error).Header. Use
97769// googleapi.IsNotModified to check whether the returned error was
97770// because http.StatusNotModified was returned.
97771func (c *NetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroup, error) {
97772	gensupport.SetOptions(c.urlParams_, opts...)
97773	res, err := c.doRequest("json")
97774	if res != nil && res.StatusCode == http.StatusNotModified {
97775		if res.Body != nil {
97776			res.Body.Close()
97777		}
97778		return nil, &googleapi.Error{
97779			Code:   res.StatusCode,
97780			Header: res.Header,
97781		}
97782	}
97783	if err != nil {
97784		return nil, err
97785	}
97786	defer googleapi.CloseBody(res)
97787	if err := googleapi.CheckResponse(res); err != nil {
97788		return nil, err
97789	}
97790	ret := &NetworkEndpointGroup{
97791		ServerResponse: googleapi.ServerResponse{
97792			Header:         res.Header,
97793			HTTPStatusCode: res.StatusCode,
97794		},
97795	}
97796	target := &ret
97797	if err := gensupport.DecodeResponse(target, res); err != nil {
97798		return nil, err
97799	}
97800	return ret, nil
97801	// {
97802	//   "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.",
97803	//   "httpMethod": "GET",
97804	//   "id": "compute.networkEndpointGroups.get",
97805	//   "parameterOrder": [
97806	//     "project",
97807	//     "zone",
97808	//     "networkEndpointGroup"
97809	//   ],
97810	//   "parameters": {
97811	//     "networkEndpointGroup": {
97812	//       "description": "The name of the network endpoint group. It should comply with RFC1035.",
97813	//       "location": "path",
97814	//       "required": true,
97815	//       "type": "string"
97816	//     },
97817	//     "project": {
97818	//       "description": "Project ID for this request.",
97819	//       "location": "path",
97820	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97821	//       "required": true,
97822	//       "type": "string"
97823	//     },
97824	//     "zone": {
97825	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
97826	//       "location": "path",
97827	//       "required": true,
97828	//       "type": "string"
97829	//     }
97830	//   },
97831	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}",
97832	//   "response": {
97833	//     "$ref": "NetworkEndpointGroup"
97834	//   },
97835	//   "scopes": [
97836	//     "https://www.googleapis.com/auth/cloud-platform",
97837	//     "https://www.googleapis.com/auth/compute",
97838	//     "https://www.googleapis.com/auth/compute.readonly"
97839	//   ]
97840	// }
97841
97842}
97843
97844// method id "compute.networkEndpointGroups.insert":
97845
97846type NetworkEndpointGroupsInsertCall struct {
97847	s                    *Service
97848	project              string
97849	zone                 string
97850	networkendpointgroup *NetworkEndpointGroup
97851	urlParams_           gensupport.URLParams
97852	ctx_                 context.Context
97853	header_              http.Header
97854}
97855
97856// Insert: Creates a network endpoint group in the specified project
97857// using the parameters that are included in the request.
97858//
97859// - project: Project ID for this request.
97860// - zone: The name of the zone where you want to create the network
97861//   endpoint group. It should comply with RFC1035.
97862func (r *NetworkEndpointGroupsService) Insert(project string, zone string, networkendpointgroup *NetworkEndpointGroup) *NetworkEndpointGroupsInsertCall {
97863	c := &NetworkEndpointGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97864	c.project = project
97865	c.zone = zone
97866	c.networkendpointgroup = networkendpointgroup
97867	return c
97868}
97869
97870// RequestId sets the optional parameter "requestId": An optional
97871// request ID to identify requests. Specify a unique request ID so that
97872// if you must retry your request, the server will know to ignore the
97873// request if it has already been completed.
97874//
97875// For example, consider a situation where you make an initial request
97876// and the request times out. If you make the request again with the
97877// same request ID, the server can check if original operation with the
97878// same request ID was received, and if so, will ignore the second
97879// request. This prevents clients from accidentally creating duplicate
97880// commitments.
97881//
97882// The request ID must be a valid UUID with the exception that zero UUID
97883// is not supported (00000000-0000-0000-0000-000000000000).
97884func (c *NetworkEndpointGroupsInsertCall) RequestId(requestId string) *NetworkEndpointGroupsInsertCall {
97885	c.urlParams_.Set("requestId", requestId)
97886	return c
97887}
97888
97889// Fields allows partial responses to be retrieved. See
97890// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97891// for more information.
97892func (c *NetworkEndpointGroupsInsertCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsInsertCall {
97893	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97894	return c
97895}
97896
97897// Context sets the context to be used in this call's Do method. Any
97898// pending HTTP request will be aborted if the provided context is
97899// canceled.
97900func (c *NetworkEndpointGroupsInsertCall) Context(ctx context.Context) *NetworkEndpointGroupsInsertCall {
97901	c.ctx_ = ctx
97902	return c
97903}
97904
97905// Header returns an http.Header that can be modified by the caller to
97906// add HTTP headers to the request.
97907func (c *NetworkEndpointGroupsInsertCall) Header() http.Header {
97908	if c.header_ == nil {
97909		c.header_ = make(http.Header)
97910	}
97911	return c.header_
97912}
97913
97914func (c *NetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
97915	reqHeaders := make(http.Header)
97916	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
97917	for k, v := range c.header_ {
97918		reqHeaders[k] = v
97919	}
97920	reqHeaders.Set("User-Agent", c.s.userAgent())
97921	var body io.Reader = nil
97922	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroup)
97923	if err != nil {
97924		return nil, err
97925	}
97926	reqHeaders.Set("Content-Type", "application/json")
97927	c.urlParams_.Set("alt", alt)
97928	c.urlParams_.Set("prettyPrint", "false")
97929	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups")
97930	urls += "?" + c.urlParams_.Encode()
97931	req, err := http.NewRequest("POST", urls, body)
97932	if err != nil {
97933		return nil, err
97934	}
97935	req.Header = reqHeaders
97936	googleapi.Expand(req.URL, map[string]string{
97937		"project": c.project,
97938		"zone":    c.zone,
97939	})
97940	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97941}
97942
97943// Do executes the "compute.networkEndpointGroups.insert" call.
97944// Exactly one of *Operation or error will be non-nil. Any non-2xx
97945// status code is an error. Response headers are in either
97946// *Operation.ServerResponse.Header or (if a response was returned at
97947// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
97948// to check whether the returned error was because
97949// http.StatusNotModified was returned.
97950func (c *NetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
97951	gensupport.SetOptions(c.urlParams_, opts...)
97952	res, err := c.doRequest("json")
97953	if res != nil && res.StatusCode == http.StatusNotModified {
97954		if res.Body != nil {
97955			res.Body.Close()
97956		}
97957		return nil, &googleapi.Error{
97958			Code:   res.StatusCode,
97959			Header: res.Header,
97960		}
97961	}
97962	if err != nil {
97963		return nil, err
97964	}
97965	defer googleapi.CloseBody(res)
97966	if err := googleapi.CheckResponse(res); err != nil {
97967		return nil, err
97968	}
97969	ret := &Operation{
97970		ServerResponse: googleapi.ServerResponse{
97971			Header:         res.Header,
97972			HTTPStatusCode: res.StatusCode,
97973		},
97974	}
97975	target := &ret
97976	if err := gensupport.DecodeResponse(target, res); err != nil {
97977		return nil, err
97978	}
97979	return ret, nil
97980	// {
97981	//   "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.",
97982	//   "httpMethod": "POST",
97983	//   "id": "compute.networkEndpointGroups.insert",
97984	//   "parameterOrder": [
97985	//     "project",
97986	//     "zone"
97987	//   ],
97988	//   "parameters": {
97989	//     "project": {
97990	//       "description": "Project ID for this request.",
97991	//       "location": "path",
97992	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97993	//       "required": true,
97994	//       "type": "string"
97995	//     },
97996	//     "requestId": {
97997	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
97998	//       "location": "query",
97999	//       "type": "string"
98000	//     },
98001	//     "zone": {
98002	//       "description": "The name of the zone where you want to create the network endpoint group. It should comply with RFC1035.",
98003	//       "location": "path",
98004	//       "required": true,
98005	//       "type": "string"
98006	//     }
98007	//   },
98008	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups",
98009	//   "request": {
98010	//     "$ref": "NetworkEndpointGroup"
98011	//   },
98012	//   "response": {
98013	//     "$ref": "Operation"
98014	//   },
98015	//   "scopes": [
98016	//     "https://www.googleapis.com/auth/cloud-platform",
98017	//     "https://www.googleapis.com/auth/compute"
98018	//   ]
98019	// }
98020
98021}
98022
98023// method id "compute.networkEndpointGroups.list":
98024
98025type NetworkEndpointGroupsListCall struct {
98026	s            *Service
98027	project      string
98028	zone         string
98029	urlParams_   gensupport.URLParams
98030	ifNoneMatch_ string
98031	ctx_         context.Context
98032	header_      http.Header
98033}
98034
98035// List: Retrieves the list of network endpoint groups that are located
98036// in the specified project and zone.
98037//
98038// - project: Project ID for this request.
98039// - zone: The name of the zone where the network endpoint group is
98040//   located. It should comply with RFC1035.
98041func (r *NetworkEndpointGroupsService) List(project string, zone string) *NetworkEndpointGroupsListCall {
98042	c := &NetworkEndpointGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98043	c.project = project
98044	c.zone = zone
98045	return c
98046}
98047
98048// Filter sets the optional parameter "filter": A filter expression that
98049// filters resources listed in the response. The expression must specify
98050// the field name, a comparison operator, and the value that you want to
98051// use for filtering. The value must be a string, a number, or a
98052// boolean. The comparison operator must be either `=`, `!=`, `>`, or
98053// `<`.
98054//
98055// For example, if you are filtering Compute Engine instances, you can
98056// exclude instances named `example-instance` by specifying `name !=
98057// example-instance`.
98058//
98059// You can also filter nested fields. For example, you could specify
98060// `scheduling.automaticRestart = false` to include instances only if
98061// they are not scheduled for automatic restarts. You can use filtering
98062// on nested fields to filter based on resource labels.
98063//
98064// To filter on multiple expressions, provide each separate expression
98065// within parentheses. For example: ``` (scheduling.automaticRestart =
98066// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
98067// is an `AND` expression. However, you can include `AND` and `OR`
98068// expressions explicitly. For example: ``` (cpuPlatform = "Intel
98069// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
98070// (scheduling.automaticRestart = true) ```
98071func (c *NetworkEndpointGroupsListCall) Filter(filter string) *NetworkEndpointGroupsListCall {
98072	c.urlParams_.Set("filter", filter)
98073	return c
98074}
98075
98076// MaxResults sets the optional parameter "maxResults": The maximum
98077// number of results per page that should be returned. If the number of
98078// available results is larger than `maxResults`, Compute Engine returns
98079// a `nextPageToken` that can be used to get the next page of results in
98080// subsequent list requests. Acceptable values are `0` to `500`,
98081// inclusive. (Default: `500`)
98082func (c *NetworkEndpointGroupsListCall) MaxResults(maxResults int64) *NetworkEndpointGroupsListCall {
98083	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
98084	return c
98085}
98086
98087// OrderBy sets the optional parameter "orderBy": Sorts list results by
98088// a certain order. By default, results are returned in alphanumerical
98089// order based on the resource name.
98090//
98091// You can also sort results in descending order based on the creation
98092// timestamp using `orderBy="creationTimestamp desc". This sorts
98093// results based on the `creationTimestamp` field in reverse
98094// chronological order (newest result first). Use this to sort resources
98095// like operations so that the newest operation is returned
98096// first.
98097//
98098// Currently, only sorting by `name` or `creationTimestamp desc` is
98099// supported.
98100func (c *NetworkEndpointGroupsListCall) OrderBy(orderBy string) *NetworkEndpointGroupsListCall {
98101	c.urlParams_.Set("orderBy", orderBy)
98102	return c
98103}
98104
98105// PageToken sets the optional parameter "pageToken": Specifies a page
98106// token to use. Set `pageToken` to the `nextPageToken` returned by a
98107// previous list request to get the next page of results.
98108func (c *NetworkEndpointGroupsListCall) PageToken(pageToken string) *NetworkEndpointGroupsListCall {
98109	c.urlParams_.Set("pageToken", pageToken)
98110	return c
98111}
98112
98113// ReturnPartialSuccess sets the optional parameter
98114// "returnPartialSuccess": Opt-in for partial success behavior which
98115// provides partial results in case of failure. The default value is
98116// false.
98117func (c *NetworkEndpointGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworkEndpointGroupsListCall {
98118	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
98119	return c
98120}
98121
98122// Fields allows partial responses to be retrieved. See
98123// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98124// for more information.
98125func (c *NetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsListCall {
98126	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98127	return c
98128}
98129
98130// IfNoneMatch sets the optional parameter which makes the operation
98131// fail if the object's ETag matches the given value. This is useful for
98132// getting updates only after the object has changed since the last
98133// request. Use googleapi.IsNotModified to check whether the response
98134// error from Do is the result of In-None-Match.
98135func (c *NetworkEndpointGroupsListCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsListCall {
98136	c.ifNoneMatch_ = entityTag
98137	return c
98138}
98139
98140// Context sets the context to be used in this call's Do method. Any
98141// pending HTTP request will be aborted if the provided context is
98142// canceled.
98143func (c *NetworkEndpointGroupsListCall) Context(ctx context.Context) *NetworkEndpointGroupsListCall {
98144	c.ctx_ = ctx
98145	return c
98146}
98147
98148// Header returns an http.Header that can be modified by the caller to
98149// add HTTP headers to the request.
98150func (c *NetworkEndpointGroupsListCall) Header() http.Header {
98151	if c.header_ == nil {
98152		c.header_ = make(http.Header)
98153	}
98154	return c.header_
98155}
98156
98157func (c *NetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, error) {
98158	reqHeaders := make(http.Header)
98159	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
98160	for k, v := range c.header_ {
98161		reqHeaders[k] = v
98162	}
98163	reqHeaders.Set("User-Agent", c.s.userAgent())
98164	if c.ifNoneMatch_ != "" {
98165		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
98166	}
98167	var body io.Reader = nil
98168	c.urlParams_.Set("alt", alt)
98169	c.urlParams_.Set("prettyPrint", "false")
98170	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups")
98171	urls += "?" + c.urlParams_.Encode()
98172	req, err := http.NewRequest("GET", urls, body)
98173	if err != nil {
98174		return nil, err
98175	}
98176	req.Header = reqHeaders
98177	googleapi.Expand(req.URL, map[string]string{
98178		"project": c.project,
98179		"zone":    c.zone,
98180	})
98181	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98182}
98183
98184// Do executes the "compute.networkEndpointGroups.list" call.
98185// Exactly one of *NetworkEndpointGroupList or error will be non-nil.
98186// Any non-2xx status code is an error. Response headers are in either
98187// *NetworkEndpointGroupList.ServerResponse.Header or (if a response was
98188// returned at all) in error.(*googleapi.Error).Header. Use
98189// googleapi.IsNotModified to check whether the returned error was
98190// because http.StatusNotModified was returned.
98191func (c *NetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupList, error) {
98192	gensupport.SetOptions(c.urlParams_, opts...)
98193	res, err := c.doRequest("json")
98194	if res != nil && res.StatusCode == http.StatusNotModified {
98195		if res.Body != nil {
98196			res.Body.Close()
98197		}
98198		return nil, &googleapi.Error{
98199			Code:   res.StatusCode,
98200			Header: res.Header,
98201		}
98202	}
98203	if err != nil {
98204		return nil, err
98205	}
98206	defer googleapi.CloseBody(res)
98207	if err := googleapi.CheckResponse(res); err != nil {
98208		return nil, err
98209	}
98210	ret := &NetworkEndpointGroupList{
98211		ServerResponse: googleapi.ServerResponse{
98212			Header:         res.Header,
98213			HTTPStatusCode: res.StatusCode,
98214		},
98215	}
98216	target := &ret
98217	if err := gensupport.DecodeResponse(target, res); err != nil {
98218		return nil, err
98219	}
98220	return ret, nil
98221	// {
98222	//   "description": "Retrieves the list of network endpoint groups that are located in the specified project and zone.",
98223	//   "httpMethod": "GET",
98224	//   "id": "compute.networkEndpointGroups.list",
98225	//   "parameterOrder": [
98226	//     "project",
98227	//     "zone"
98228	//   ],
98229	//   "parameters": {
98230	//     "filter": {
98231	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
98232	//       "location": "query",
98233	//       "type": "string"
98234	//     },
98235	//     "maxResults": {
98236	//       "default": "500",
98237	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
98238	//       "format": "uint32",
98239	//       "location": "query",
98240	//       "minimum": "0",
98241	//       "type": "integer"
98242	//     },
98243	//     "orderBy": {
98244	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
98245	//       "location": "query",
98246	//       "type": "string"
98247	//     },
98248	//     "pageToken": {
98249	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
98250	//       "location": "query",
98251	//       "type": "string"
98252	//     },
98253	//     "project": {
98254	//       "description": "Project ID for this request.",
98255	//       "location": "path",
98256	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98257	//       "required": true,
98258	//       "type": "string"
98259	//     },
98260	//     "returnPartialSuccess": {
98261	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
98262	//       "location": "query",
98263	//       "type": "boolean"
98264	//     },
98265	//     "zone": {
98266	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
98267	//       "location": "path",
98268	//       "required": true,
98269	//       "type": "string"
98270	//     }
98271	//   },
98272	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups",
98273	//   "response": {
98274	//     "$ref": "NetworkEndpointGroupList"
98275	//   },
98276	//   "scopes": [
98277	//     "https://www.googleapis.com/auth/cloud-platform",
98278	//     "https://www.googleapis.com/auth/compute",
98279	//     "https://www.googleapis.com/auth/compute.readonly"
98280	//   ]
98281	// }
98282
98283}
98284
98285// Pages invokes f for each page of results.
98286// A non-nil error returned from f will halt the iteration.
98287// The provided context supersedes any context provided to the Context method.
98288func (c *NetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupList) error) error {
98289	c.ctx_ = ctx
98290	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
98291	for {
98292		x, err := c.Do()
98293		if err != nil {
98294			return err
98295		}
98296		if err := f(x); err != nil {
98297			return err
98298		}
98299		if x.NextPageToken == "" {
98300			return nil
98301		}
98302		c.PageToken(x.NextPageToken)
98303	}
98304}
98305
98306// method id "compute.networkEndpointGroups.listNetworkEndpoints":
98307
98308type NetworkEndpointGroupsListNetworkEndpointsCall struct {
98309	s                                         *Service
98310	project                                   string
98311	zone                                      string
98312	networkEndpointGroup                      string
98313	networkendpointgroupslistendpointsrequest *NetworkEndpointGroupsListEndpointsRequest
98314	urlParams_                                gensupport.URLParams
98315	ctx_                                      context.Context
98316	header_                                   http.Header
98317}
98318
98319// ListNetworkEndpoints: Lists the network endpoints in the specified
98320// network endpoint group.
98321//
98322// - networkEndpointGroup: The name of the network endpoint group from
98323//   which you want to generate a list of included network endpoints. It
98324//   should comply with RFC1035.
98325// - project: Project ID for this request.
98326// - zone: The name of the zone where the network endpoint group is
98327//   located. It should comply with RFC1035.
98328func (r *NetworkEndpointGroupsService) ListNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupslistendpointsrequest *NetworkEndpointGroupsListEndpointsRequest) *NetworkEndpointGroupsListNetworkEndpointsCall {
98329	c := &NetworkEndpointGroupsListNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98330	c.project = project
98331	c.zone = zone
98332	c.networkEndpointGroup = networkEndpointGroup
98333	c.networkendpointgroupslistendpointsrequest = networkendpointgroupslistendpointsrequest
98334	return c
98335}
98336
98337// Filter sets the optional parameter "filter": A filter expression that
98338// filters resources listed in the response. The expression must specify
98339// the field name, a comparison operator, and the value that you want to
98340// use for filtering. The value must be a string, a number, or a
98341// boolean. The comparison operator must be either `=`, `!=`, `>`, or
98342// `<`.
98343//
98344// For example, if you are filtering Compute Engine instances, you can
98345// exclude instances named `example-instance` by specifying `name !=
98346// example-instance`.
98347//
98348// You can also filter nested fields. For example, you could specify
98349// `scheduling.automaticRestart = false` to include instances only if
98350// they are not scheduled for automatic restarts. You can use filtering
98351// on nested fields to filter based on resource labels.
98352//
98353// To filter on multiple expressions, provide each separate expression
98354// within parentheses. For example: ``` (scheduling.automaticRestart =
98355// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
98356// is an `AND` expression. However, you can include `AND` and `OR`
98357// expressions explicitly. For example: ``` (cpuPlatform = "Intel
98358// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
98359// (scheduling.automaticRestart = true) ```
98360func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Filter(filter string) *NetworkEndpointGroupsListNetworkEndpointsCall {
98361	c.urlParams_.Set("filter", filter)
98362	return c
98363}
98364
98365// MaxResults sets the optional parameter "maxResults": The maximum
98366// number of results per page that should be returned. If the number of
98367// available results is larger than `maxResults`, Compute Engine returns
98368// a `nextPageToken` that can be used to get the next page of results in
98369// subsequent list requests. Acceptable values are `0` to `500`,
98370// inclusive. (Default: `500`)
98371func (c *NetworkEndpointGroupsListNetworkEndpointsCall) MaxResults(maxResults int64) *NetworkEndpointGroupsListNetworkEndpointsCall {
98372	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
98373	return c
98374}
98375
98376// OrderBy sets the optional parameter "orderBy": Sorts list results by
98377// a certain order. By default, results are returned in alphanumerical
98378// order based on the resource name.
98379//
98380// You can also sort results in descending order based on the creation
98381// timestamp using `orderBy="creationTimestamp desc". This sorts
98382// results based on the `creationTimestamp` field in reverse
98383// chronological order (newest result first). Use this to sort resources
98384// like operations so that the newest operation is returned
98385// first.
98386//
98387// Currently, only sorting by `name` or `creationTimestamp desc` is
98388// supported.
98389func (c *NetworkEndpointGroupsListNetworkEndpointsCall) OrderBy(orderBy string) *NetworkEndpointGroupsListNetworkEndpointsCall {
98390	c.urlParams_.Set("orderBy", orderBy)
98391	return c
98392}
98393
98394// PageToken sets the optional parameter "pageToken": Specifies a page
98395// token to use. Set `pageToken` to the `nextPageToken` returned by a
98396// previous list request to get the next page of results.
98397func (c *NetworkEndpointGroupsListNetworkEndpointsCall) PageToken(pageToken string) *NetworkEndpointGroupsListNetworkEndpointsCall {
98398	c.urlParams_.Set("pageToken", pageToken)
98399	return c
98400}
98401
98402// ReturnPartialSuccess sets the optional parameter
98403// "returnPartialSuccess": Opt-in for partial success behavior which
98404// provides partial results in case of failure. The default value is
98405// false.
98406func (c *NetworkEndpointGroupsListNetworkEndpointsCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworkEndpointGroupsListNetworkEndpointsCall {
98407	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
98408	return c
98409}
98410
98411// Fields allows partial responses to be retrieved. See
98412// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98413// for more information.
98414func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsListNetworkEndpointsCall {
98415	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98416	return c
98417}
98418
98419// Context sets the context to be used in this call's Do method. Any
98420// pending HTTP request will be aborted if the provided context is
98421// canceled.
98422func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsListNetworkEndpointsCall {
98423	c.ctx_ = ctx
98424	return c
98425}
98426
98427// Header returns an http.Header that can be modified by the caller to
98428// add HTTP headers to the request.
98429func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Header() http.Header {
98430	if c.header_ == nil {
98431		c.header_ = make(http.Header)
98432	}
98433	return c.header_
98434}
98435
98436func (c *NetworkEndpointGroupsListNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
98437	reqHeaders := make(http.Header)
98438	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
98439	for k, v := range c.header_ {
98440		reqHeaders[k] = v
98441	}
98442	reqHeaders.Set("User-Agent", c.s.userAgent())
98443	var body io.Reader = nil
98444	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupslistendpointsrequest)
98445	if err != nil {
98446		return nil, err
98447	}
98448	reqHeaders.Set("Content-Type", "application/json")
98449	c.urlParams_.Set("alt", alt)
98450	c.urlParams_.Set("prettyPrint", "false")
98451	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints")
98452	urls += "?" + c.urlParams_.Encode()
98453	req, err := http.NewRequest("POST", urls, body)
98454	if err != nil {
98455		return nil, err
98456	}
98457	req.Header = reqHeaders
98458	googleapi.Expand(req.URL, map[string]string{
98459		"project":              c.project,
98460		"zone":                 c.zone,
98461		"networkEndpointGroup": c.networkEndpointGroup,
98462	})
98463	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98464}
98465
98466// Do executes the "compute.networkEndpointGroups.listNetworkEndpoints" call.
98467// Exactly one of *NetworkEndpointGroupsListNetworkEndpoints or error
98468// will be non-nil. Any non-2xx status code is an error. Response
98469// headers are in either
98470// *NetworkEndpointGroupsListNetworkEndpoints.ServerResponse.Header or
98471// (if a response was returned at all) in
98472// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
98473// whether the returned error was because http.StatusNotModified was
98474// returned.
98475func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupsListNetworkEndpoints, error) {
98476	gensupport.SetOptions(c.urlParams_, opts...)
98477	res, err := c.doRequest("json")
98478	if res != nil && res.StatusCode == http.StatusNotModified {
98479		if res.Body != nil {
98480			res.Body.Close()
98481		}
98482		return nil, &googleapi.Error{
98483			Code:   res.StatusCode,
98484			Header: res.Header,
98485		}
98486	}
98487	if err != nil {
98488		return nil, err
98489	}
98490	defer googleapi.CloseBody(res)
98491	if err := googleapi.CheckResponse(res); err != nil {
98492		return nil, err
98493	}
98494	ret := &NetworkEndpointGroupsListNetworkEndpoints{
98495		ServerResponse: googleapi.ServerResponse{
98496			Header:         res.Header,
98497			HTTPStatusCode: res.StatusCode,
98498		},
98499	}
98500	target := &ret
98501	if err := gensupport.DecodeResponse(target, res); err != nil {
98502		return nil, err
98503	}
98504	return ret, nil
98505	// {
98506	//   "description": "Lists the network endpoints in the specified network endpoint group.",
98507	//   "httpMethod": "POST",
98508	//   "id": "compute.networkEndpointGroups.listNetworkEndpoints",
98509	//   "parameterOrder": [
98510	//     "project",
98511	//     "zone",
98512	//     "networkEndpointGroup"
98513	//   ],
98514	//   "parameters": {
98515	//     "filter": {
98516	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
98517	//       "location": "query",
98518	//       "type": "string"
98519	//     },
98520	//     "maxResults": {
98521	//       "default": "500",
98522	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
98523	//       "format": "uint32",
98524	//       "location": "query",
98525	//       "minimum": "0",
98526	//       "type": "integer"
98527	//     },
98528	//     "networkEndpointGroup": {
98529	//       "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.",
98530	//       "location": "path",
98531	//       "required": true,
98532	//       "type": "string"
98533	//     },
98534	//     "orderBy": {
98535	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
98536	//       "location": "query",
98537	//       "type": "string"
98538	//     },
98539	//     "pageToken": {
98540	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
98541	//       "location": "query",
98542	//       "type": "string"
98543	//     },
98544	//     "project": {
98545	//       "description": "Project ID for this request.",
98546	//       "location": "path",
98547	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98548	//       "required": true,
98549	//       "type": "string"
98550	//     },
98551	//     "returnPartialSuccess": {
98552	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
98553	//       "location": "query",
98554	//       "type": "boolean"
98555	//     },
98556	//     "zone": {
98557	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
98558	//       "location": "path",
98559	//       "required": true,
98560	//       "type": "string"
98561	//     }
98562	//   },
98563	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints",
98564	//   "request": {
98565	//     "$ref": "NetworkEndpointGroupsListEndpointsRequest"
98566	//   },
98567	//   "response": {
98568	//     "$ref": "NetworkEndpointGroupsListNetworkEndpoints"
98569	//   },
98570	//   "scopes": [
98571	//     "https://www.googleapis.com/auth/cloud-platform",
98572	//     "https://www.googleapis.com/auth/compute",
98573	//     "https://www.googleapis.com/auth/compute.readonly"
98574	//   ]
98575	// }
98576
98577}
98578
98579// Pages invokes f for each page of results.
98580// A non-nil error returned from f will halt the iteration.
98581// The provided context supersedes any context provided to the Context method.
98582func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupsListNetworkEndpoints) error) error {
98583	c.ctx_ = ctx
98584	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
98585	for {
98586		x, err := c.Do()
98587		if err != nil {
98588			return err
98589		}
98590		if err := f(x); err != nil {
98591			return err
98592		}
98593		if x.NextPageToken == "" {
98594			return nil
98595		}
98596		c.PageToken(x.NextPageToken)
98597	}
98598}
98599
98600// method id "compute.networkEndpointGroups.testIamPermissions":
98601
98602type NetworkEndpointGroupsTestIamPermissionsCall struct {
98603	s                      *Service
98604	project                string
98605	zone                   string
98606	resource               string
98607	testpermissionsrequest *TestPermissionsRequest
98608	urlParams_             gensupport.URLParams
98609	ctx_                   context.Context
98610	header_                http.Header
98611}
98612
98613// TestIamPermissions: Returns permissions that a caller has on the
98614// specified resource.
98615//
98616// - project: Project ID for this request.
98617// - resource: Name or id of the resource for this request.
98618// - zone: The name of the zone for this request.
98619func (r *NetworkEndpointGroupsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *NetworkEndpointGroupsTestIamPermissionsCall {
98620	c := &NetworkEndpointGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98621	c.project = project
98622	c.zone = zone
98623	c.resource = resource
98624	c.testpermissionsrequest = testpermissionsrequest
98625	return c
98626}
98627
98628// Fields allows partial responses to be retrieved. See
98629// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98630// for more information.
98631func (c *NetworkEndpointGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsTestIamPermissionsCall {
98632	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98633	return c
98634}
98635
98636// Context sets the context to be used in this call's Do method. Any
98637// pending HTTP request will be aborted if the provided context is
98638// canceled.
98639func (c *NetworkEndpointGroupsTestIamPermissionsCall) Context(ctx context.Context) *NetworkEndpointGroupsTestIamPermissionsCall {
98640	c.ctx_ = ctx
98641	return c
98642}
98643
98644// Header returns an http.Header that can be modified by the caller to
98645// add HTTP headers to the request.
98646func (c *NetworkEndpointGroupsTestIamPermissionsCall) Header() http.Header {
98647	if c.header_ == nil {
98648		c.header_ = make(http.Header)
98649	}
98650	return c.header_
98651}
98652
98653func (c *NetworkEndpointGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
98654	reqHeaders := make(http.Header)
98655	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
98656	for k, v := range c.header_ {
98657		reqHeaders[k] = v
98658	}
98659	reqHeaders.Set("User-Agent", c.s.userAgent())
98660	var body io.Reader = nil
98661	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
98662	if err != nil {
98663		return nil, err
98664	}
98665	reqHeaders.Set("Content-Type", "application/json")
98666	c.urlParams_.Set("alt", alt)
98667	c.urlParams_.Set("prettyPrint", "false")
98668	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions")
98669	urls += "?" + c.urlParams_.Encode()
98670	req, err := http.NewRequest("POST", urls, body)
98671	if err != nil {
98672		return nil, err
98673	}
98674	req.Header = reqHeaders
98675	googleapi.Expand(req.URL, map[string]string{
98676		"project":  c.project,
98677		"zone":     c.zone,
98678		"resource": c.resource,
98679	})
98680	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98681}
98682
98683// Do executes the "compute.networkEndpointGroups.testIamPermissions" call.
98684// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
98685// non-2xx status code is an error. Response headers are in either
98686// *TestPermissionsResponse.ServerResponse.Header or (if a response was
98687// returned at all) in error.(*googleapi.Error).Header. Use
98688// googleapi.IsNotModified to check whether the returned error was
98689// because http.StatusNotModified was returned.
98690func (c *NetworkEndpointGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
98691	gensupport.SetOptions(c.urlParams_, opts...)
98692	res, err := c.doRequest("json")
98693	if res != nil && res.StatusCode == http.StatusNotModified {
98694		if res.Body != nil {
98695			res.Body.Close()
98696		}
98697		return nil, &googleapi.Error{
98698			Code:   res.StatusCode,
98699			Header: res.Header,
98700		}
98701	}
98702	if err != nil {
98703		return nil, err
98704	}
98705	defer googleapi.CloseBody(res)
98706	if err := googleapi.CheckResponse(res); err != nil {
98707		return nil, err
98708	}
98709	ret := &TestPermissionsResponse{
98710		ServerResponse: googleapi.ServerResponse{
98711			Header:         res.Header,
98712			HTTPStatusCode: res.StatusCode,
98713		},
98714	}
98715	target := &ret
98716	if err := gensupport.DecodeResponse(target, res); err != nil {
98717		return nil, err
98718	}
98719	return ret, nil
98720	// {
98721	//   "description": "Returns permissions that a caller has on the specified resource.",
98722	//   "httpMethod": "POST",
98723	//   "id": "compute.networkEndpointGroups.testIamPermissions",
98724	//   "parameterOrder": [
98725	//     "project",
98726	//     "zone",
98727	//     "resource"
98728	//   ],
98729	//   "parameters": {
98730	//     "project": {
98731	//       "description": "Project ID for this request.",
98732	//       "location": "path",
98733	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98734	//       "required": true,
98735	//       "type": "string"
98736	//     },
98737	//     "resource": {
98738	//       "description": "Name or id of the resource for this request.",
98739	//       "location": "path",
98740	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98741	//       "required": true,
98742	//       "type": "string"
98743	//     },
98744	//     "zone": {
98745	//       "description": "The name of the zone for this request.",
98746	//       "location": "path",
98747	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
98748	//       "required": true,
98749	//       "type": "string"
98750	//     }
98751	//   },
98752	//   "path": "projects/{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions",
98753	//   "request": {
98754	//     "$ref": "TestPermissionsRequest"
98755	//   },
98756	//   "response": {
98757	//     "$ref": "TestPermissionsResponse"
98758	//   },
98759	//   "scopes": [
98760	//     "https://www.googleapis.com/auth/cloud-platform",
98761	//     "https://www.googleapis.com/auth/compute",
98762	//     "https://www.googleapis.com/auth/compute.readonly"
98763	//   ]
98764	// }
98765
98766}
98767
98768// method id "compute.networks.addPeering":
98769
98770type NetworksAddPeeringCall struct {
98771	s                         *Service
98772	project                   string
98773	network                   string
98774	networksaddpeeringrequest *NetworksAddPeeringRequest
98775	urlParams_                gensupport.URLParams
98776	ctx_                      context.Context
98777	header_                   http.Header
98778}
98779
98780// AddPeering: Adds a peering to the specified network.
98781//
98782// - network: Name of the network resource to add peering to.
98783// - project: Project ID for this request.
98784func (r *NetworksService) AddPeering(project string, network string, networksaddpeeringrequest *NetworksAddPeeringRequest) *NetworksAddPeeringCall {
98785	c := &NetworksAddPeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98786	c.project = project
98787	c.network = network
98788	c.networksaddpeeringrequest = networksaddpeeringrequest
98789	return c
98790}
98791
98792// RequestId sets the optional parameter "requestId": An optional
98793// request ID to identify requests. Specify a unique request ID so that
98794// if you must retry your request, the server will know to ignore the
98795// request if it has already been completed.
98796//
98797// For example, consider a situation where you make an initial request
98798// and the request times out. If you make the request again with the
98799// same request ID, the server can check if original operation with the
98800// same request ID was received, and if so, will ignore the second
98801// request. This prevents clients from accidentally creating duplicate
98802// commitments.
98803//
98804// The request ID must be a valid UUID with the exception that zero UUID
98805// is not supported (00000000-0000-0000-0000-000000000000).
98806func (c *NetworksAddPeeringCall) RequestId(requestId string) *NetworksAddPeeringCall {
98807	c.urlParams_.Set("requestId", requestId)
98808	return c
98809}
98810
98811// Fields allows partial responses to be retrieved. See
98812// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98813// for more information.
98814func (c *NetworksAddPeeringCall) Fields(s ...googleapi.Field) *NetworksAddPeeringCall {
98815	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98816	return c
98817}
98818
98819// Context sets the context to be used in this call's Do method. Any
98820// pending HTTP request will be aborted if the provided context is
98821// canceled.
98822func (c *NetworksAddPeeringCall) Context(ctx context.Context) *NetworksAddPeeringCall {
98823	c.ctx_ = ctx
98824	return c
98825}
98826
98827// Header returns an http.Header that can be modified by the caller to
98828// add HTTP headers to the request.
98829func (c *NetworksAddPeeringCall) Header() http.Header {
98830	if c.header_ == nil {
98831		c.header_ = make(http.Header)
98832	}
98833	return c.header_
98834}
98835
98836func (c *NetworksAddPeeringCall) doRequest(alt string) (*http.Response, error) {
98837	reqHeaders := make(http.Header)
98838	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
98839	for k, v := range c.header_ {
98840		reqHeaders[k] = v
98841	}
98842	reqHeaders.Set("User-Agent", c.s.userAgent())
98843	var body io.Reader = nil
98844	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksaddpeeringrequest)
98845	if err != nil {
98846		return nil, err
98847	}
98848	reqHeaders.Set("Content-Type", "application/json")
98849	c.urlParams_.Set("alt", alt)
98850	c.urlParams_.Set("prettyPrint", "false")
98851	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/addPeering")
98852	urls += "?" + c.urlParams_.Encode()
98853	req, err := http.NewRequest("POST", urls, body)
98854	if err != nil {
98855		return nil, err
98856	}
98857	req.Header = reqHeaders
98858	googleapi.Expand(req.URL, map[string]string{
98859		"project": c.project,
98860		"network": c.network,
98861	})
98862	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98863}
98864
98865// Do executes the "compute.networks.addPeering" call.
98866// Exactly one of *Operation or error will be non-nil. Any non-2xx
98867// status code is an error. Response headers are in either
98868// *Operation.ServerResponse.Header or (if a response was returned at
98869// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
98870// to check whether the returned error was because
98871// http.StatusNotModified was returned.
98872func (c *NetworksAddPeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
98873	gensupport.SetOptions(c.urlParams_, opts...)
98874	res, err := c.doRequest("json")
98875	if res != nil && res.StatusCode == http.StatusNotModified {
98876		if res.Body != nil {
98877			res.Body.Close()
98878		}
98879		return nil, &googleapi.Error{
98880			Code:   res.StatusCode,
98881			Header: res.Header,
98882		}
98883	}
98884	if err != nil {
98885		return nil, err
98886	}
98887	defer googleapi.CloseBody(res)
98888	if err := googleapi.CheckResponse(res); err != nil {
98889		return nil, err
98890	}
98891	ret := &Operation{
98892		ServerResponse: googleapi.ServerResponse{
98893			Header:         res.Header,
98894			HTTPStatusCode: res.StatusCode,
98895		},
98896	}
98897	target := &ret
98898	if err := gensupport.DecodeResponse(target, res); err != nil {
98899		return nil, err
98900	}
98901	return ret, nil
98902	// {
98903	//   "description": "Adds a peering to the specified network.",
98904	//   "httpMethod": "POST",
98905	//   "id": "compute.networks.addPeering",
98906	//   "parameterOrder": [
98907	//     "project",
98908	//     "network"
98909	//   ],
98910	//   "parameters": {
98911	//     "network": {
98912	//       "description": "Name of the network resource to add peering to.",
98913	//       "location": "path",
98914	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98915	//       "required": true,
98916	//       "type": "string"
98917	//     },
98918	//     "project": {
98919	//       "description": "Project ID for this request.",
98920	//       "location": "path",
98921	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98922	//       "required": true,
98923	//       "type": "string"
98924	//     },
98925	//     "requestId": {
98926	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
98927	//       "location": "query",
98928	//       "type": "string"
98929	//     }
98930	//   },
98931	//   "path": "projects/{project}/global/networks/{network}/addPeering",
98932	//   "request": {
98933	//     "$ref": "NetworksAddPeeringRequest"
98934	//   },
98935	//   "response": {
98936	//     "$ref": "Operation"
98937	//   },
98938	//   "scopes": [
98939	//     "https://www.googleapis.com/auth/cloud-platform",
98940	//     "https://www.googleapis.com/auth/compute"
98941	//   ]
98942	// }
98943
98944}
98945
98946// method id "compute.networks.delete":
98947
98948type NetworksDeleteCall struct {
98949	s          *Service
98950	project    string
98951	network    string
98952	urlParams_ gensupport.URLParams
98953	ctx_       context.Context
98954	header_    http.Header
98955}
98956
98957// Delete: Deletes the specified network.
98958//
98959// - network: Name of the network to delete.
98960// - project: Project ID for this request.
98961// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/delete
98962func (r *NetworksService) Delete(project string, network string) *NetworksDeleteCall {
98963	c := &NetworksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98964	c.project = project
98965	c.network = network
98966	return c
98967}
98968
98969// RequestId sets the optional parameter "requestId": An optional
98970// request ID to identify requests. Specify a unique request ID so that
98971// if you must retry your request, the server will know to ignore the
98972// request if it has already been completed.
98973//
98974// For example, consider a situation where you make an initial request
98975// and the request times out. If you make the request again with the
98976// same request ID, the server can check if original operation with the
98977// same request ID was received, and if so, will ignore the second
98978// request. This prevents clients from accidentally creating duplicate
98979// commitments.
98980//
98981// The request ID must be a valid UUID with the exception that zero UUID
98982// is not supported (00000000-0000-0000-0000-000000000000).
98983func (c *NetworksDeleteCall) RequestId(requestId string) *NetworksDeleteCall {
98984	c.urlParams_.Set("requestId", requestId)
98985	return c
98986}
98987
98988// Fields allows partial responses to be retrieved. See
98989// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98990// for more information.
98991func (c *NetworksDeleteCall) Fields(s ...googleapi.Field) *NetworksDeleteCall {
98992	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98993	return c
98994}
98995
98996// Context sets the context to be used in this call's Do method. Any
98997// pending HTTP request will be aborted if the provided context is
98998// canceled.
98999func (c *NetworksDeleteCall) Context(ctx context.Context) *NetworksDeleteCall {
99000	c.ctx_ = ctx
99001	return c
99002}
99003
99004// Header returns an http.Header that can be modified by the caller to
99005// add HTTP headers to the request.
99006func (c *NetworksDeleteCall) Header() http.Header {
99007	if c.header_ == nil {
99008		c.header_ = make(http.Header)
99009	}
99010	return c.header_
99011}
99012
99013func (c *NetworksDeleteCall) doRequest(alt string) (*http.Response, error) {
99014	reqHeaders := make(http.Header)
99015	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
99016	for k, v := range c.header_ {
99017		reqHeaders[k] = v
99018	}
99019	reqHeaders.Set("User-Agent", c.s.userAgent())
99020	var body io.Reader = nil
99021	c.urlParams_.Set("alt", alt)
99022	c.urlParams_.Set("prettyPrint", "false")
99023	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}")
99024	urls += "?" + c.urlParams_.Encode()
99025	req, err := http.NewRequest("DELETE", urls, body)
99026	if err != nil {
99027		return nil, err
99028	}
99029	req.Header = reqHeaders
99030	googleapi.Expand(req.URL, map[string]string{
99031		"project": c.project,
99032		"network": c.network,
99033	})
99034	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99035}
99036
99037// Do executes the "compute.networks.delete" call.
99038// Exactly one of *Operation or error will be non-nil. Any non-2xx
99039// status code is an error. Response headers are in either
99040// *Operation.ServerResponse.Header or (if a response was returned at
99041// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
99042// to check whether the returned error was because
99043// http.StatusNotModified was returned.
99044func (c *NetworksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
99045	gensupport.SetOptions(c.urlParams_, opts...)
99046	res, err := c.doRequest("json")
99047	if res != nil && res.StatusCode == http.StatusNotModified {
99048		if res.Body != nil {
99049			res.Body.Close()
99050		}
99051		return nil, &googleapi.Error{
99052			Code:   res.StatusCode,
99053			Header: res.Header,
99054		}
99055	}
99056	if err != nil {
99057		return nil, err
99058	}
99059	defer googleapi.CloseBody(res)
99060	if err := googleapi.CheckResponse(res); err != nil {
99061		return nil, err
99062	}
99063	ret := &Operation{
99064		ServerResponse: googleapi.ServerResponse{
99065			Header:         res.Header,
99066			HTTPStatusCode: res.StatusCode,
99067		},
99068	}
99069	target := &ret
99070	if err := gensupport.DecodeResponse(target, res); err != nil {
99071		return nil, err
99072	}
99073	return ret, nil
99074	// {
99075	//   "description": "Deletes the specified network.",
99076	//   "httpMethod": "DELETE",
99077	//   "id": "compute.networks.delete",
99078	//   "parameterOrder": [
99079	//     "project",
99080	//     "network"
99081	//   ],
99082	//   "parameters": {
99083	//     "network": {
99084	//       "description": "Name of the network to delete.",
99085	//       "location": "path",
99086	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99087	//       "required": true,
99088	//       "type": "string"
99089	//     },
99090	//     "project": {
99091	//       "description": "Project ID for this request.",
99092	//       "location": "path",
99093	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99094	//       "required": true,
99095	//       "type": "string"
99096	//     },
99097	//     "requestId": {
99098	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
99099	//       "location": "query",
99100	//       "type": "string"
99101	//     }
99102	//   },
99103	//   "path": "projects/{project}/global/networks/{network}",
99104	//   "response": {
99105	//     "$ref": "Operation"
99106	//   },
99107	//   "scopes": [
99108	//     "https://www.googleapis.com/auth/cloud-platform",
99109	//     "https://www.googleapis.com/auth/compute"
99110	//   ]
99111	// }
99112
99113}
99114
99115// method id "compute.networks.get":
99116
99117type NetworksGetCall struct {
99118	s            *Service
99119	project      string
99120	network      string
99121	urlParams_   gensupport.URLParams
99122	ifNoneMatch_ string
99123	ctx_         context.Context
99124	header_      http.Header
99125}
99126
99127// Get: Returns the specified network. Gets a list of available networks
99128// by making a list() request.
99129//
99130// - network: Name of the network to return.
99131// - project: Project ID for this request.
99132// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/get
99133func (r *NetworksService) Get(project string, network string) *NetworksGetCall {
99134	c := &NetworksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99135	c.project = project
99136	c.network = network
99137	return c
99138}
99139
99140// Fields allows partial responses to be retrieved. See
99141// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99142// for more information.
99143func (c *NetworksGetCall) Fields(s ...googleapi.Field) *NetworksGetCall {
99144	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99145	return c
99146}
99147
99148// IfNoneMatch sets the optional parameter which makes the operation
99149// fail if the object's ETag matches the given value. This is useful for
99150// getting updates only after the object has changed since the last
99151// request. Use googleapi.IsNotModified to check whether the response
99152// error from Do is the result of In-None-Match.
99153func (c *NetworksGetCall) IfNoneMatch(entityTag string) *NetworksGetCall {
99154	c.ifNoneMatch_ = entityTag
99155	return c
99156}
99157
99158// Context sets the context to be used in this call's Do method. Any
99159// pending HTTP request will be aborted if the provided context is
99160// canceled.
99161func (c *NetworksGetCall) Context(ctx context.Context) *NetworksGetCall {
99162	c.ctx_ = ctx
99163	return c
99164}
99165
99166// Header returns an http.Header that can be modified by the caller to
99167// add HTTP headers to the request.
99168func (c *NetworksGetCall) Header() http.Header {
99169	if c.header_ == nil {
99170		c.header_ = make(http.Header)
99171	}
99172	return c.header_
99173}
99174
99175func (c *NetworksGetCall) doRequest(alt string) (*http.Response, error) {
99176	reqHeaders := make(http.Header)
99177	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
99178	for k, v := range c.header_ {
99179		reqHeaders[k] = v
99180	}
99181	reqHeaders.Set("User-Agent", c.s.userAgent())
99182	if c.ifNoneMatch_ != "" {
99183		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
99184	}
99185	var body io.Reader = nil
99186	c.urlParams_.Set("alt", alt)
99187	c.urlParams_.Set("prettyPrint", "false")
99188	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}")
99189	urls += "?" + c.urlParams_.Encode()
99190	req, err := http.NewRequest("GET", urls, body)
99191	if err != nil {
99192		return nil, err
99193	}
99194	req.Header = reqHeaders
99195	googleapi.Expand(req.URL, map[string]string{
99196		"project": c.project,
99197		"network": c.network,
99198	})
99199	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99200}
99201
99202// Do executes the "compute.networks.get" call.
99203// Exactly one of *Network or error will be non-nil. Any non-2xx status
99204// code is an error. Response headers are in either
99205// *Network.ServerResponse.Header or (if a response was returned at all)
99206// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
99207// check whether the returned error was because http.StatusNotModified
99208// was returned.
99209func (c *NetworksGetCall) Do(opts ...googleapi.CallOption) (*Network, error) {
99210	gensupport.SetOptions(c.urlParams_, opts...)
99211	res, err := c.doRequest("json")
99212	if res != nil && res.StatusCode == http.StatusNotModified {
99213		if res.Body != nil {
99214			res.Body.Close()
99215		}
99216		return nil, &googleapi.Error{
99217			Code:   res.StatusCode,
99218			Header: res.Header,
99219		}
99220	}
99221	if err != nil {
99222		return nil, err
99223	}
99224	defer googleapi.CloseBody(res)
99225	if err := googleapi.CheckResponse(res); err != nil {
99226		return nil, err
99227	}
99228	ret := &Network{
99229		ServerResponse: googleapi.ServerResponse{
99230			Header:         res.Header,
99231			HTTPStatusCode: res.StatusCode,
99232		},
99233	}
99234	target := &ret
99235	if err := gensupport.DecodeResponse(target, res); err != nil {
99236		return nil, err
99237	}
99238	return ret, nil
99239	// {
99240	//   "description": "Returns the specified network. Gets a list of available networks by making a list() request.",
99241	//   "httpMethod": "GET",
99242	//   "id": "compute.networks.get",
99243	//   "parameterOrder": [
99244	//     "project",
99245	//     "network"
99246	//   ],
99247	//   "parameters": {
99248	//     "network": {
99249	//       "description": "Name of the network to return.",
99250	//       "location": "path",
99251	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99252	//       "required": true,
99253	//       "type": "string"
99254	//     },
99255	//     "project": {
99256	//       "description": "Project ID for this request.",
99257	//       "location": "path",
99258	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99259	//       "required": true,
99260	//       "type": "string"
99261	//     }
99262	//   },
99263	//   "path": "projects/{project}/global/networks/{network}",
99264	//   "response": {
99265	//     "$ref": "Network"
99266	//   },
99267	//   "scopes": [
99268	//     "https://www.googleapis.com/auth/cloud-platform",
99269	//     "https://www.googleapis.com/auth/compute",
99270	//     "https://www.googleapis.com/auth/compute.readonly"
99271	//   ]
99272	// }
99273
99274}
99275
99276// method id "compute.networks.getEffectiveFirewalls":
99277
99278type NetworksGetEffectiveFirewallsCall struct {
99279	s            *Service
99280	project      string
99281	network      string
99282	urlParams_   gensupport.URLParams
99283	ifNoneMatch_ string
99284	ctx_         context.Context
99285	header_      http.Header
99286}
99287
99288// GetEffectiveFirewalls: Returns the effective firewalls on a given
99289// network.
99290//
99291// - network: Name of the network for this request.
99292// - project: Project ID for this request.
99293func (r *NetworksService) GetEffectiveFirewalls(project string, network string) *NetworksGetEffectiveFirewallsCall {
99294	c := &NetworksGetEffectiveFirewallsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99295	c.project = project
99296	c.network = network
99297	return c
99298}
99299
99300// Fields allows partial responses to be retrieved. See
99301// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99302// for more information.
99303func (c *NetworksGetEffectiveFirewallsCall) Fields(s ...googleapi.Field) *NetworksGetEffectiveFirewallsCall {
99304	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99305	return c
99306}
99307
99308// IfNoneMatch sets the optional parameter which makes the operation
99309// fail if the object's ETag matches the given value. This is useful for
99310// getting updates only after the object has changed since the last
99311// request. Use googleapi.IsNotModified to check whether the response
99312// error from Do is the result of In-None-Match.
99313func (c *NetworksGetEffectiveFirewallsCall) IfNoneMatch(entityTag string) *NetworksGetEffectiveFirewallsCall {
99314	c.ifNoneMatch_ = entityTag
99315	return c
99316}
99317
99318// Context sets the context to be used in this call's Do method. Any
99319// pending HTTP request will be aborted if the provided context is
99320// canceled.
99321func (c *NetworksGetEffectiveFirewallsCall) Context(ctx context.Context) *NetworksGetEffectiveFirewallsCall {
99322	c.ctx_ = ctx
99323	return c
99324}
99325
99326// Header returns an http.Header that can be modified by the caller to
99327// add HTTP headers to the request.
99328func (c *NetworksGetEffectiveFirewallsCall) Header() http.Header {
99329	if c.header_ == nil {
99330		c.header_ = make(http.Header)
99331	}
99332	return c.header_
99333}
99334
99335func (c *NetworksGetEffectiveFirewallsCall) doRequest(alt string) (*http.Response, error) {
99336	reqHeaders := make(http.Header)
99337	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
99338	for k, v := range c.header_ {
99339		reqHeaders[k] = v
99340	}
99341	reqHeaders.Set("User-Agent", c.s.userAgent())
99342	if c.ifNoneMatch_ != "" {
99343		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
99344	}
99345	var body io.Reader = nil
99346	c.urlParams_.Set("alt", alt)
99347	c.urlParams_.Set("prettyPrint", "false")
99348	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/getEffectiveFirewalls")
99349	urls += "?" + c.urlParams_.Encode()
99350	req, err := http.NewRequest("GET", urls, body)
99351	if err != nil {
99352		return nil, err
99353	}
99354	req.Header = reqHeaders
99355	googleapi.Expand(req.URL, map[string]string{
99356		"project": c.project,
99357		"network": c.network,
99358	})
99359	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99360}
99361
99362// Do executes the "compute.networks.getEffectiveFirewalls" call.
99363// Exactly one of *NetworksGetEffectiveFirewallsResponse or error will
99364// be non-nil. Any non-2xx status code is an error. Response headers are
99365// in either
99366// *NetworksGetEffectiveFirewallsResponse.ServerResponse.Header or (if a
99367// response was returned at all) in error.(*googleapi.Error).Header. Use
99368// googleapi.IsNotModified to check whether the returned error was
99369// because http.StatusNotModified was returned.
99370func (c *NetworksGetEffectiveFirewallsCall) Do(opts ...googleapi.CallOption) (*NetworksGetEffectiveFirewallsResponse, error) {
99371	gensupport.SetOptions(c.urlParams_, opts...)
99372	res, err := c.doRequest("json")
99373	if res != nil && res.StatusCode == http.StatusNotModified {
99374		if res.Body != nil {
99375			res.Body.Close()
99376		}
99377		return nil, &googleapi.Error{
99378			Code:   res.StatusCode,
99379			Header: res.Header,
99380		}
99381	}
99382	if err != nil {
99383		return nil, err
99384	}
99385	defer googleapi.CloseBody(res)
99386	if err := googleapi.CheckResponse(res); err != nil {
99387		return nil, err
99388	}
99389	ret := &NetworksGetEffectiveFirewallsResponse{
99390		ServerResponse: googleapi.ServerResponse{
99391			Header:         res.Header,
99392			HTTPStatusCode: res.StatusCode,
99393		},
99394	}
99395	target := &ret
99396	if err := gensupport.DecodeResponse(target, res); err != nil {
99397		return nil, err
99398	}
99399	return ret, nil
99400	// {
99401	//   "description": "Returns the effective firewalls on a given network.",
99402	//   "httpMethod": "GET",
99403	//   "id": "compute.networks.getEffectiveFirewalls",
99404	//   "parameterOrder": [
99405	//     "project",
99406	//     "network"
99407	//   ],
99408	//   "parameters": {
99409	//     "network": {
99410	//       "description": "Name of the network for this request.",
99411	//       "location": "path",
99412	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
99413	//       "required": true,
99414	//       "type": "string"
99415	//     },
99416	//     "project": {
99417	//       "description": "Project ID for this request.",
99418	//       "location": "path",
99419	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99420	//       "required": true,
99421	//       "type": "string"
99422	//     }
99423	//   },
99424	//   "path": "projects/{project}/global/networks/{network}/getEffectiveFirewalls",
99425	//   "response": {
99426	//     "$ref": "NetworksGetEffectiveFirewallsResponse"
99427	//   },
99428	//   "scopes": [
99429	//     "https://www.googleapis.com/auth/cloud-platform",
99430	//     "https://www.googleapis.com/auth/compute",
99431	//     "https://www.googleapis.com/auth/compute.readonly"
99432	//   ]
99433	// }
99434
99435}
99436
99437// method id "compute.networks.insert":
99438
99439type NetworksInsertCall struct {
99440	s          *Service
99441	project    string
99442	network    *Network
99443	urlParams_ gensupport.URLParams
99444	ctx_       context.Context
99445	header_    http.Header
99446}
99447
99448// Insert: Creates a network in the specified project using the data
99449// included in the request.
99450//
99451// - project: Project ID for this request.
99452// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/insert
99453func (r *NetworksService) Insert(project string, network *Network) *NetworksInsertCall {
99454	c := &NetworksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99455	c.project = project
99456	c.network = network
99457	return c
99458}
99459
99460// RequestId sets the optional parameter "requestId": An optional
99461// request ID to identify requests. Specify a unique request ID so that
99462// if you must retry your request, the server will know to ignore the
99463// request if it has already been completed.
99464//
99465// For example, consider a situation where you make an initial request
99466// and the request times out. If you make the request again with the
99467// same request ID, the server can check if original operation with the
99468// same request ID was received, and if so, will ignore the second
99469// request. This prevents clients from accidentally creating duplicate
99470// commitments.
99471//
99472// The request ID must be a valid UUID with the exception that zero UUID
99473// is not supported (00000000-0000-0000-0000-000000000000).
99474func (c *NetworksInsertCall) RequestId(requestId string) *NetworksInsertCall {
99475	c.urlParams_.Set("requestId", requestId)
99476	return c
99477}
99478
99479// Fields allows partial responses to be retrieved. See
99480// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99481// for more information.
99482func (c *NetworksInsertCall) Fields(s ...googleapi.Field) *NetworksInsertCall {
99483	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99484	return c
99485}
99486
99487// Context sets the context to be used in this call's Do method. Any
99488// pending HTTP request will be aborted if the provided context is
99489// canceled.
99490func (c *NetworksInsertCall) Context(ctx context.Context) *NetworksInsertCall {
99491	c.ctx_ = ctx
99492	return c
99493}
99494
99495// Header returns an http.Header that can be modified by the caller to
99496// add HTTP headers to the request.
99497func (c *NetworksInsertCall) Header() http.Header {
99498	if c.header_ == nil {
99499		c.header_ = make(http.Header)
99500	}
99501	return c.header_
99502}
99503
99504func (c *NetworksInsertCall) doRequest(alt string) (*http.Response, error) {
99505	reqHeaders := make(http.Header)
99506	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
99507	for k, v := range c.header_ {
99508		reqHeaders[k] = v
99509	}
99510	reqHeaders.Set("User-Agent", c.s.userAgent())
99511	var body io.Reader = nil
99512	body, err := googleapi.WithoutDataWrapper.JSONReader(c.network)
99513	if err != nil {
99514		return nil, err
99515	}
99516	reqHeaders.Set("Content-Type", "application/json")
99517	c.urlParams_.Set("alt", alt)
99518	c.urlParams_.Set("prettyPrint", "false")
99519	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks")
99520	urls += "?" + c.urlParams_.Encode()
99521	req, err := http.NewRequest("POST", urls, body)
99522	if err != nil {
99523		return nil, err
99524	}
99525	req.Header = reqHeaders
99526	googleapi.Expand(req.URL, map[string]string{
99527		"project": c.project,
99528	})
99529	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99530}
99531
99532// Do executes the "compute.networks.insert" call.
99533// Exactly one of *Operation or error will be non-nil. Any non-2xx
99534// status code is an error. Response headers are in either
99535// *Operation.ServerResponse.Header or (if a response was returned at
99536// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
99537// to check whether the returned error was because
99538// http.StatusNotModified was returned.
99539func (c *NetworksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
99540	gensupport.SetOptions(c.urlParams_, opts...)
99541	res, err := c.doRequest("json")
99542	if res != nil && res.StatusCode == http.StatusNotModified {
99543		if res.Body != nil {
99544			res.Body.Close()
99545		}
99546		return nil, &googleapi.Error{
99547			Code:   res.StatusCode,
99548			Header: res.Header,
99549		}
99550	}
99551	if err != nil {
99552		return nil, err
99553	}
99554	defer googleapi.CloseBody(res)
99555	if err := googleapi.CheckResponse(res); err != nil {
99556		return nil, err
99557	}
99558	ret := &Operation{
99559		ServerResponse: googleapi.ServerResponse{
99560			Header:         res.Header,
99561			HTTPStatusCode: res.StatusCode,
99562		},
99563	}
99564	target := &ret
99565	if err := gensupport.DecodeResponse(target, res); err != nil {
99566		return nil, err
99567	}
99568	return ret, nil
99569	// {
99570	//   "description": "Creates a network in the specified project using the data included in the request.",
99571	//   "httpMethod": "POST",
99572	//   "id": "compute.networks.insert",
99573	//   "parameterOrder": [
99574	//     "project"
99575	//   ],
99576	//   "parameters": {
99577	//     "project": {
99578	//       "description": "Project ID for this request.",
99579	//       "location": "path",
99580	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99581	//       "required": true,
99582	//       "type": "string"
99583	//     },
99584	//     "requestId": {
99585	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
99586	//       "location": "query",
99587	//       "type": "string"
99588	//     }
99589	//   },
99590	//   "path": "projects/{project}/global/networks",
99591	//   "request": {
99592	//     "$ref": "Network"
99593	//   },
99594	//   "response": {
99595	//     "$ref": "Operation"
99596	//   },
99597	//   "scopes": [
99598	//     "https://www.googleapis.com/auth/cloud-platform",
99599	//     "https://www.googleapis.com/auth/compute"
99600	//   ]
99601	// }
99602
99603}
99604
99605// method id "compute.networks.list":
99606
99607type NetworksListCall struct {
99608	s            *Service
99609	project      string
99610	urlParams_   gensupport.URLParams
99611	ifNoneMatch_ string
99612	ctx_         context.Context
99613	header_      http.Header
99614}
99615
99616// List: Retrieves the list of networks available to the specified
99617// project.
99618//
99619// - project: Project ID for this request.
99620// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/list
99621func (r *NetworksService) List(project string) *NetworksListCall {
99622	c := &NetworksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99623	c.project = project
99624	return c
99625}
99626
99627// Filter sets the optional parameter "filter": A filter expression that
99628// filters resources listed in the response. The expression must specify
99629// the field name, a comparison operator, and the value that you want to
99630// use for filtering. The value must be a string, a number, or a
99631// boolean. The comparison operator must be either `=`, `!=`, `>`, or
99632// `<`.
99633//
99634// For example, if you are filtering Compute Engine instances, you can
99635// exclude instances named `example-instance` by specifying `name !=
99636// example-instance`.
99637//
99638// You can also filter nested fields. For example, you could specify
99639// `scheduling.automaticRestart = false` to include instances only if
99640// they are not scheduled for automatic restarts. You can use filtering
99641// on nested fields to filter based on resource labels.
99642//
99643// To filter on multiple expressions, provide each separate expression
99644// within parentheses. For example: ``` (scheduling.automaticRestart =
99645// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
99646// is an `AND` expression. However, you can include `AND` and `OR`
99647// expressions explicitly. For example: ``` (cpuPlatform = "Intel
99648// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
99649// (scheduling.automaticRestart = true) ```
99650func (c *NetworksListCall) Filter(filter string) *NetworksListCall {
99651	c.urlParams_.Set("filter", filter)
99652	return c
99653}
99654
99655// MaxResults sets the optional parameter "maxResults": The maximum
99656// number of results per page that should be returned. If the number of
99657// available results is larger than `maxResults`, Compute Engine returns
99658// a `nextPageToken` that can be used to get the next page of results in
99659// subsequent list requests. Acceptable values are `0` to `500`,
99660// inclusive. (Default: `500`)
99661func (c *NetworksListCall) MaxResults(maxResults int64) *NetworksListCall {
99662	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
99663	return c
99664}
99665
99666// OrderBy sets the optional parameter "orderBy": Sorts list results by
99667// a certain order. By default, results are returned in alphanumerical
99668// order based on the resource name.
99669//
99670// You can also sort results in descending order based on the creation
99671// timestamp using `orderBy="creationTimestamp desc". This sorts
99672// results based on the `creationTimestamp` field in reverse
99673// chronological order (newest result first). Use this to sort resources
99674// like operations so that the newest operation is returned
99675// first.
99676//
99677// Currently, only sorting by `name` or `creationTimestamp desc` is
99678// supported.
99679func (c *NetworksListCall) OrderBy(orderBy string) *NetworksListCall {
99680	c.urlParams_.Set("orderBy", orderBy)
99681	return c
99682}
99683
99684// PageToken sets the optional parameter "pageToken": Specifies a page
99685// token to use. Set `pageToken` to the `nextPageToken` returned by a
99686// previous list request to get the next page of results.
99687func (c *NetworksListCall) PageToken(pageToken string) *NetworksListCall {
99688	c.urlParams_.Set("pageToken", pageToken)
99689	return c
99690}
99691
99692// ReturnPartialSuccess sets the optional parameter
99693// "returnPartialSuccess": Opt-in for partial success behavior which
99694// provides partial results in case of failure. The default value is
99695// false.
99696func (c *NetworksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworksListCall {
99697	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
99698	return c
99699}
99700
99701// Fields allows partial responses to be retrieved. See
99702// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99703// for more information.
99704func (c *NetworksListCall) Fields(s ...googleapi.Field) *NetworksListCall {
99705	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99706	return c
99707}
99708
99709// IfNoneMatch sets the optional parameter which makes the operation
99710// fail if the object's ETag matches the given value. This is useful for
99711// getting updates only after the object has changed since the last
99712// request. Use googleapi.IsNotModified to check whether the response
99713// error from Do is the result of In-None-Match.
99714func (c *NetworksListCall) IfNoneMatch(entityTag string) *NetworksListCall {
99715	c.ifNoneMatch_ = entityTag
99716	return c
99717}
99718
99719// Context sets the context to be used in this call's Do method. Any
99720// pending HTTP request will be aborted if the provided context is
99721// canceled.
99722func (c *NetworksListCall) Context(ctx context.Context) *NetworksListCall {
99723	c.ctx_ = ctx
99724	return c
99725}
99726
99727// Header returns an http.Header that can be modified by the caller to
99728// add HTTP headers to the request.
99729func (c *NetworksListCall) Header() http.Header {
99730	if c.header_ == nil {
99731		c.header_ = make(http.Header)
99732	}
99733	return c.header_
99734}
99735
99736func (c *NetworksListCall) doRequest(alt string) (*http.Response, error) {
99737	reqHeaders := make(http.Header)
99738	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
99739	for k, v := range c.header_ {
99740		reqHeaders[k] = v
99741	}
99742	reqHeaders.Set("User-Agent", c.s.userAgent())
99743	if c.ifNoneMatch_ != "" {
99744		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
99745	}
99746	var body io.Reader = nil
99747	c.urlParams_.Set("alt", alt)
99748	c.urlParams_.Set("prettyPrint", "false")
99749	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks")
99750	urls += "?" + c.urlParams_.Encode()
99751	req, err := http.NewRequest("GET", urls, body)
99752	if err != nil {
99753		return nil, err
99754	}
99755	req.Header = reqHeaders
99756	googleapi.Expand(req.URL, map[string]string{
99757		"project": c.project,
99758	})
99759	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99760}
99761
99762// Do executes the "compute.networks.list" call.
99763// Exactly one of *NetworkList or error will be non-nil. Any non-2xx
99764// status code is an error. Response headers are in either
99765// *NetworkList.ServerResponse.Header or (if a response was returned at
99766// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
99767// to check whether the returned error was because
99768// http.StatusNotModified was returned.
99769func (c *NetworksListCall) Do(opts ...googleapi.CallOption) (*NetworkList, error) {
99770	gensupport.SetOptions(c.urlParams_, opts...)
99771	res, err := c.doRequest("json")
99772	if res != nil && res.StatusCode == http.StatusNotModified {
99773		if res.Body != nil {
99774			res.Body.Close()
99775		}
99776		return nil, &googleapi.Error{
99777			Code:   res.StatusCode,
99778			Header: res.Header,
99779		}
99780	}
99781	if err != nil {
99782		return nil, err
99783	}
99784	defer googleapi.CloseBody(res)
99785	if err := googleapi.CheckResponse(res); err != nil {
99786		return nil, err
99787	}
99788	ret := &NetworkList{
99789		ServerResponse: googleapi.ServerResponse{
99790			Header:         res.Header,
99791			HTTPStatusCode: res.StatusCode,
99792		},
99793	}
99794	target := &ret
99795	if err := gensupport.DecodeResponse(target, res); err != nil {
99796		return nil, err
99797	}
99798	return ret, nil
99799	// {
99800	//   "description": "Retrieves the list of networks available to the specified project.",
99801	//   "httpMethod": "GET",
99802	//   "id": "compute.networks.list",
99803	//   "parameterOrder": [
99804	//     "project"
99805	//   ],
99806	//   "parameters": {
99807	//     "filter": {
99808	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
99809	//       "location": "query",
99810	//       "type": "string"
99811	//     },
99812	//     "maxResults": {
99813	//       "default": "500",
99814	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
99815	//       "format": "uint32",
99816	//       "location": "query",
99817	//       "minimum": "0",
99818	//       "type": "integer"
99819	//     },
99820	//     "orderBy": {
99821	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
99822	//       "location": "query",
99823	//       "type": "string"
99824	//     },
99825	//     "pageToken": {
99826	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
99827	//       "location": "query",
99828	//       "type": "string"
99829	//     },
99830	//     "project": {
99831	//       "description": "Project ID for this request.",
99832	//       "location": "path",
99833	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99834	//       "required": true,
99835	//       "type": "string"
99836	//     },
99837	//     "returnPartialSuccess": {
99838	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
99839	//       "location": "query",
99840	//       "type": "boolean"
99841	//     }
99842	//   },
99843	//   "path": "projects/{project}/global/networks",
99844	//   "response": {
99845	//     "$ref": "NetworkList"
99846	//   },
99847	//   "scopes": [
99848	//     "https://www.googleapis.com/auth/cloud-platform",
99849	//     "https://www.googleapis.com/auth/compute",
99850	//     "https://www.googleapis.com/auth/compute.readonly"
99851	//   ]
99852	// }
99853
99854}
99855
99856// Pages invokes f for each page of results.
99857// A non-nil error returned from f will halt the iteration.
99858// The provided context supersedes any context provided to the Context method.
99859func (c *NetworksListCall) Pages(ctx context.Context, f func(*NetworkList) error) error {
99860	c.ctx_ = ctx
99861	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
99862	for {
99863		x, err := c.Do()
99864		if err != nil {
99865			return err
99866		}
99867		if err := f(x); err != nil {
99868			return err
99869		}
99870		if x.NextPageToken == "" {
99871			return nil
99872		}
99873		c.PageToken(x.NextPageToken)
99874	}
99875}
99876
99877// method id "compute.networks.listPeeringRoutes":
99878
99879type NetworksListPeeringRoutesCall struct {
99880	s            *Service
99881	project      string
99882	network      string
99883	urlParams_   gensupport.URLParams
99884	ifNoneMatch_ string
99885	ctx_         context.Context
99886	header_      http.Header
99887}
99888
99889// ListPeeringRoutes: Lists the peering routes exchanged over peering
99890// connection.
99891//
99892// - network: Name of the network for this request.
99893// - project: Project ID for this request.
99894func (r *NetworksService) ListPeeringRoutes(project string, network string) *NetworksListPeeringRoutesCall {
99895	c := &NetworksListPeeringRoutesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99896	c.project = project
99897	c.network = network
99898	return c
99899}
99900
99901// Direction sets the optional parameter "direction": The direction of
99902// the exchanged routes.
99903//
99904// Possible values:
99905//   "INCOMING"
99906//   "OUTGOING"
99907func (c *NetworksListPeeringRoutesCall) Direction(direction string) *NetworksListPeeringRoutesCall {
99908	c.urlParams_.Set("direction", direction)
99909	return c
99910}
99911
99912// Filter sets the optional parameter "filter": A filter expression that
99913// filters resources listed in the response. The expression must specify
99914// the field name, a comparison operator, and the value that you want to
99915// use for filtering. The value must be a string, a number, or a
99916// boolean. The comparison operator must be either `=`, `!=`, `>`, or
99917// `<`.
99918//
99919// For example, if you are filtering Compute Engine instances, you can
99920// exclude instances named `example-instance` by specifying `name !=
99921// example-instance`.
99922//
99923// You can also filter nested fields. For example, you could specify
99924// `scheduling.automaticRestart = false` to include instances only if
99925// they are not scheduled for automatic restarts. You can use filtering
99926// on nested fields to filter based on resource labels.
99927//
99928// To filter on multiple expressions, provide each separate expression
99929// within parentheses. For example: ``` (scheduling.automaticRestart =
99930// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
99931// is an `AND` expression. However, you can include `AND` and `OR`
99932// expressions explicitly. For example: ``` (cpuPlatform = "Intel
99933// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
99934// (scheduling.automaticRestart = true) ```
99935func (c *NetworksListPeeringRoutesCall) Filter(filter string) *NetworksListPeeringRoutesCall {
99936	c.urlParams_.Set("filter", filter)
99937	return c
99938}
99939
99940// MaxResults sets the optional parameter "maxResults": The maximum
99941// number of results per page that should be returned. If the number of
99942// available results is larger than `maxResults`, Compute Engine returns
99943// a `nextPageToken` that can be used to get the next page of results in
99944// subsequent list requests. Acceptable values are `0` to `500`,
99945// inclusive. (Default: `500`)
99946func (c *NetworksListPeeringRoutesCall) MaxResults(maxResults int64) *NetworksListPeeringRoutesCall {
99947	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
99948	return c
99949}
99950
99951// OrderBy sets the optional parameter "orderBy": Sorts list results by
99952// a certain order. By default, results are returned in alphanumerical
99953// order based on the resource name.
99954//
99955// You can also sort results in descending order based on the creation
99956// timestamp using `orderBy="creationTimestamp desc". This sorts
99957// results based on the `creationTimestamp` field in reverse
99958// chronological order (newest result first). Use this to sort resources
99959// like operations so that the newest operation is returned
99960// first.
99961//
99962// Currently, only sorting by `name` or `creationTimestamp desc` is
99963// supported.
99964func (c *NetworksListPeeringRoutesCall) OrderBy(orderBy string) *NetworksListPeeringRoutesCall {
99965	c.urlParams_.Set("orderBy", orderBy)
99966	return c
99967}
99968
99969// PageToken sets the optional parameter "pageToken": Specifies a page
99970// token to use. Set `pageToken` to the `nextPageToken` returned by a
99971// previous list request to get the next page of results.
99972func (c *NetworksListPeeringRoutesCall) PageToken(pageToken string) *NetworksListPeeringRoutesCall {
99973	c.urlParams_.Set("pageToken", pageToken)
99974	return c
99975}
99976
99977// PeeringName sets the optional parameter "peeringName": The response
99978// will show routes exchanged over the given peering connection.
99979func (c *NetworksListPeeringRoutesCall) PeeringName(peeringName string) *NetworksListPeeringRoutesCall {
99980	c.urlParams_.Set("peeringName", peeringName)
99981	return c
99982}
99983
99984// Region sets the optional parameter "region": The region of the
99985// request. The response will include all subnet routes, static routes
99986// and dynamic routes in the region.
99987func (c *NetworksListPeeringRoutesCall) Region(region string) *NetworksListPeeringRoutesCall {
99988	c.urlParams_.Set("region", region)
99989	return c
99990}
99991
99992// ReturnPartialSuccess sets the optional parameter
99993// "returnPartialSuccess": Opt-in for partial success behavior which
99994// provides partial results in case of failure. The default value is
99995// false.
99996func (c *NetworksListPeeringRoutesCall) ReturnPartialSuccess(returnPartialSuccess bool) *NetworksListPeeringRoutesCall {
99997	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
99998	return c
99999}
100000
100001// Fields allows partial responses to be retrieved. See
100002// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100003// for more information.
100004func (c *NetworksListPeeringRoutesCall) Fields(s ...googleapi.Field) *NetworksListPeeringRoutesCall {
100005	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100006	return c
100007}
100008
100009// IfNoneMatch sets the optional parameter which makes the operation
100010// fail if the object's ETag matches the given value. This is useful for
100011// getting updates only after the object has changed since the last
100012// request. Use googleapi.IsNotModified to check whether the response
100013// error from Do is the result of In-None-Match.
100014func (c *NetworksListPeeringRoutesCall) IfNoneMatch(entityTag string) *NetworksListPeeringRoutesCall {
100015	c.ifNoneMatch_ = entityTag
100016	return c
100017}
100018
100019// Context sets the context to be used in this call's Do method. Any
100020// pending HTTP request will be aborted if the provided context is
100021// canceled.
100022func (c *NetworksListPeeringRoutesCall) Context(ctx context.Context) *NetworksListPeeringRoutesCall {
100023	c.ctx_ = ctx
100024	return c
100025}
100026
100027// Header returns an http.Header that can be modified by the caller to
100028// add HTTP headers to the request.
100029func (c *NetworksListPeeringRoutesCall) Header() http.Header {
100030	if c.header_ == nil {
100031		c.header_ = make(http.Header)
100032	}
100033	return c.header_
100034}
100035
100036func (c *NetworksListPeeringRoutesCall) doRequest(alt string) (*http.Response, error) {
100037	reqHeaders := make(http.Header)
100038	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
100039	for k, v := range c.header_ {
100040		reqHeaders[k] = v
100041	}
100042	reqHeaders.Set("User-Agent", c.s.userAgent())
100043	if c.ifNoneMatch_ != "" {
100044		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
100045	}
100046	var body io.Reader = nil
100047	c.urlParams_.Set("alt", alt)
100048	c.urlParams_.Set("prettyPrint", "false")
100049	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/listPeeringRoutes")
100050	urls += "?" + c.urlParams_.Encode()
100051	req, err := http.NewRequest("GET", urls, body)
100052	if err != nil {
100053		return nil, err
100054	}
100055	req.Header = reqHeaders
100056	googleapi.Expand(req.URL, map[string]string{
100057		"project": c.project,
100058		"network": c.network,
100059	})
100060	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100061}
100062
100063// Do executes the "compute.networks.listPeeringRoutes" call.
100064// Exactly one of *ExchangedPeeringRoutesList or error will be non-nil.
100065// Any non-2xx status code is an error. Response headers are in either
100066// *ExchangedPeeringRoutesList.ServerResponse.Header or (if a response
100067// was returned at all) in error.(*googleapi.Error).Header. Use
100068// googleapi.IsNotModified to check whether the returned error was
100069// because http.StatusNotModified was returned.
100070func (c *NetworksListPeeringRoutesCall) Do(opts ...googleapi.CallOption) (*ExchangedPeeringRoutesList, error) {
100071	gensupport.SetOptions(c.urlParams_, opts...)
100072	res, err := c.doRequest("json")
100073	if res != nil && res.StatusCode == http.StatusNotModified {
100074		if res.Body != nil {
100075			res.Body.Close()
100076		}
100077		return nil, &googleapi.Error{
100078			Code:   res.StatusCode,
100079			Header: res.Header,
100080		}
100081	}
100082	if err != nil {
100083		return nil, err
100084	}
100085	defer googleapi.CloseBody(res)
100086	if err := googleapi.CheckResponse(res); err != nil {
100087		return nil, err
100088	}
100089	ret := &ExchangedPeeringRoutesList{
100090		ServerResponse: googleapi.ServerResponse{
100091			Header:         res.Header,
100092			HTTPStatusCode: res.StatusCode,
100093		},
100094	}
100095	target := &ret
100096	if err := gensupport.DecodeResponse(target, res); err != nil {
100097		return nil, err
100098	}
100099	return ret, nil
100100	// {
100101	//   "description": "Lists the peering routes exchanged over peering connection.",
100102	//   "httpMethod": "GET",
100103	//   "id": "compute.networks.listPeeringRoutes",
100104	//   "parameterOrder": [
100105	//     "project",
100106	//     "network"
100107	//   ],
100108	//   "parameters": {
100109	//     "direction": {
100110	//       "description": "The direction of the exchanged routes.",
100111	//       "enum": [
100112	//         "INCOMING",
100113	//         "OUTGOING"
100114	//       ],
100115	//       "enumDescriptions": [
100116	//         "",
100117	//         ""
100118	//       ],
100119	//       "location": "query",
100120	//       "type": "string"
100121	//     },
100122	//     "filter": {
100123	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
100124	//       "location": "query",
100125	//       "type": "string"
100126	//     },
100127	//     "maxResults": {
100128	//       "default": "500",
100129	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
100130	//       "format": "uint32",
100131	//       "location": "query",
100132	//       "minimum": "0",
100133	//       "type": "integer"
100134	//     },
100135	//     "network": {
100136	//       "description": "Name of the network for this request.",
100137	//       "location": "path",
100138	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
100139	//       "required": true,
100140	//       "type": "string"
100141	//     },
100142	//     "orderBy": {
100143	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
100144	//       "location": "query",
100145	//       "type": "string"
100146	//     },
100147	//     "pageToken": {
100148	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
100149	//       "location": "query",
100150	//       "type": "string"
100151	//     },
100152	//     "peeringName": {
100153	//       "description": "The response will show routes exchanged over the given peering connection.",
100154	//       "location": "query",
100155	//       "type": "string"
100156	//     },
100157	//     "project": {
100158	//       "description": "Project ID for this request.",
100159	//       "location": "path",
100160	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100161	//       "required": true,
100162	//       "type": "string"
100163	//     },
100164	//     "region": {
100165	//       "description": "The region of the request. The response will include all subnet routes, static routes and dynamic routes in the region.",
100166	//       "location": "query",
100167	//       "type": "string"
100168	//     },
100169	//     "returnPartialSuccess": {
100170	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
100171	//       "location": "query",
100172	//       "type": "boolean"
100173	//     }
100174	//   },
100175	//   "path": "projects/{project}/global/networks/{network}/listPeeringRoutes",
100176	//   "response": {
100177	//     "$ref": "ExchangedPeeringRoutesList"
100178	//   },
100179	//   "scopes": [
100180	//     "https://www.googleapis.com/auth/cloud-platform",
100181	//     "https://www.googleapis.com/auth/compute",
100182	//     "https://www.googleapis.com/auth/compute.readonly"
100183	//   ]
100184	// }
100185
100186}
100187
100188// Pages invokes f for each page of results.
100189// A non-nil error returned from f will halt the iteration.
100190// The provided context supersedes any context provided to the Context method.
100191func (c *NetworksListPeeringRoutesCall) Pages(ctx context.Context, f func(*ExchangedPeeringRoutesList) error) error {
100192	c.ctx_ = ctx
100193	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
100194	for {
100195		x, err := c.Do()
100196		if err != nil {
100197			return err
100198		}
100199		if err := f(x); err != nil {
100200			return err
100201		}
100202		if x.NextPageToken == "" {
100203			return nil
100204		}
100205		c.PageToken(x.NextPageToken)
100206	}
100207}
100208
100209// method id "compute.networks.patch":
100210
100211type NetworksPatchCall struct {
100212	s          *Service
100213	project    string
100214	network    string
100215	network2   *Network
100216	urlParams_ gensupport.URLParams
100217	ctx_       context.Context
100218	header_    http.Header
100219}
100220
100221// Patch: Patches the specified network with the data included in the
100222// request. Only the following fields can be modified:
100223// routingConfig.routingMode.
100224//
100225// - network: Name of the network to update.
100226// - project: Project ID for this request.
100227func (r *NetworksService) Patch(project string, network string, network2 *Network) *NetworksPatchCall {
100228	c := &NetworksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100229	c.project = project
100230	c.network = network
100231	c.network2 = network2
100232	return c
100233}
100234
100235// RequestId sets the optional parameter "requestId": An optional
100236// request ID to identify requests. Specify a unique request ID so that
100237// if you must retry your request, the server will know to ignore the
100238// request if it has already been completed.
100239//
100240// For example, consider a situation where you make an initial request
100241// and the request times out. If you make the request again with the
100242// same request ID, the server can check if original operation with the
100243// same request ID was received, and if so, will ignore the second
100244// request. This prevents clients from accidentally creating duplicate
100245// commitments.
100246//
100247// The request ID must be a valid UUID with the exception that zero UUID
100248// is not supported (00000000-0000-0000-0000-000000000000).
100249func (c *NetworksPatchCall) RequestId(requestId string) *NetworksPatchCall {
100250	c.urlParams_.Set("requestId", requestId)
100251	return c
100252}
100253
100254// Fields allows partial responses to be retrieved. See
100255// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100256// for more information.
100257func (c *NetworksPatchCall) Fields(s ...googleapi.Field) *NetworksPatchCall {
100258	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100259	return c
100260}
100261
100262// Context sets the context to be used in this call's Do method. Any
100263// pending HTTP request will be aborted if the provided context is
100264// canceled.
100265func (c *NetworksPatchCall) Context(ctx context.Context) *NetworksPatchCall {
100266	c.ctx_ = ctx
100267	return c
100268}
100269
100270// Header returns an http.Header that can be modified by the caller to
100271// add HTTP headers to the request.
100272func (c *NetworksPatchCall) Header() http.Header {
100273	if c.header_ == nil {
100274		c.header_ = make(http.Header)
100275	}
100276	return c.header_
100277}
100278
100279func (c *NetworksPatchCall) doRequest(alt string) (*http.Response, error) {
100280	reqHeaders := make(http.Header)
100281	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
100282	for k, v := range c.header_ {
100283		reqHeaders[k] = v
100284	}
100285	reqHeaders.Set("User-Agent", c.s.userAgent())
100286	var body io.Reader = nil
100287	body, err := googleapi.WithoutDataWrapper.JSONReader(c.network2)
100288	if err != nil {
100289		return nil, err
100290	}
100291	reqHeaders.Set("Content-Type", "application/json")
100292	c.urlParams_.Set("alt", alt)
100293	c.urlParams_.Set("prettyPrint", "false")
100294	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}")
100295	urls += "?" + c.urlParams_.Encode()
100296	req, err := http.NewRequest("PATCH", urls, body)
100297	if err != nil {
100298		return nil, err
100299	}
100300	req.Header = reqHeaders
100301	googleapi.Expand(req.URL, map[string]string{
100302		"project": c.project,
100303		"network": c.network,
100304	})
100305	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100306}
100307
100308// Do executes the "compute.networks.patch" call.
100309// Exactly one of *Operation or error will be non-nil. Any non-2xx
100310// status code is an error. Response headers are in either
100311// *Operation.ServerResponse.Header or (if a response was returned at
100312// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
100313// to check whether the returned error was because
100314// http.StatusNotModified was returned.
100315func (c *NetworksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
100316	gensupport.SetOptions(c.urlParams_, opts...)
100317	res, err := c.doRequest("json")
100318	if res != nil && res.StatusCode == http.StatusNotModified {
100319		if res.Body != nil {
100320			res.Body.Close()
100321		}
100322		return nil, &googleapi.Error{
100323			Code:   res.StatusCode,
100324			Header: res.Header,
100325		}
100326	}
100327	if err != nil {
100328		return nil, err
100329	}
100330	defer googleapi.CloseBody(res)
100331	if err := googleapi.CheckResponse(res); err != nil {
100332		return nil, err
100333	}
100334	ret := &Operation{
100335		ServerResponse: googleapi.ServerResponse{
100336			Header:         res.Header,
100337			HTTPStatusCode: res.StatusCode,
100338		},
100339	}
100340	target := &ret
100341	if err := gensupport.DecodeResponse(target, res); err != nil {
100342		return nil, err
100343	}
100344	return ret, nil
100345	// {
100346	//   "description": "Patches the specified network with the data included in the request. Only the following fields can be modified: routingConfig.routingMode.",
100347	//   "httpMethod": "PATCH",
100348	//   "id": "compute.networks.patch",
100349	//   "parameterOrder": [
100350	//     "project",
100351	//     "network"
100352	//   ],
100353	//   "parameters": {
100354	//     "network": {
100355	//       "description": "Name of the network to update.",
100356	//       "location": "path",
100357	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
100358	//       "required": true,
100359	//       "type": "string"
100360	//     },
100361	//     "project": {
100362	//       "description": "Project ID for this request.",
100363	//       "location": "path",
100364	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100365	//       "required": true,
100366	//       "type": "string"
100367	//     },
100368	//     "requestId": {
100369	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
100370	//       "location": "query",
100371	//       "type": "string"
100372	//     }
100373	//   },
100374	//   "path": "projects/{project}/global/networks/{network}",
100375	//   "request": {
100376	//     "$ref": "Network"
100377	//   },
100378	//   "response": {
100379	//     "$ref": "Operation"
100380	//   },
100381	//   "scopes": [
100382	//     "https://www.googleapis.com/auth/cloud-platform",
100383	//     "https://www.googleapis.com/auth/compute"
100384	//   ]
100385	// }
100386
100387}
100388
100389// method id "compute.networks.removePeering":
100390
100391type NetworksRemovePeeringCall struct {
100392	s                            *Service
100393	project                      string
100394	network                      string
100395	networksremovepeeringrequest *NetworksRemovePeeringRequest
100396	urlParams_                   gensupport.URLParams
100397	ctx_                         context.Context
100398	header_                      http.Header
100399}
100400
100401// RemovePeering: Removes a peering from the specified network.
100402//
100403// - network: Name of the network resource to remove peering from.
100404// - project: Project ID for this request.
100405func (r *NetworksService) RemovePeering(project string, network string, networksremovepeeringrequest *NetworksRemovePeeringRequest) *NetworksRemovePeeringCall {
100406	c := &NetworksRemovePeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100407	c.project = project
100408	c.network = network
100409	c.networksremovepeeringrequest = networksremovepeeringrequest
100410	return c
100411}
100412
100413// RequestId sets the optional parameter "requestId": An optional
100414// request ID to identify requests. Specify a unique request ID so that
100415// if you must retry your request, the server will know to ignore the
100416// request if it has already been completed.
100417//
100418// For example, consider a situation where you make an initial request
100419// and the request times out. If you make the request again with the
100420// same request ID, the server can check if original operation with the
100421// same request ID was received, and if so, will ignore the second
100422// request. This prevents clients from accidentally creating duplicate
100423// commitments.
100424//
100425// The request ID must be a valid UUID with the exception that zero UUID
100426// is not supported (00000000-0000-0000-0000-000000000000).
100427func (c *NetworksRemovePeeringCall) RequestId(requestId string) *NetworksRemovePeeringCall {
100428	c.urlParams_.Set("requestId", requestId)
100429	return c
100430}
100431
100432// Fields allows partial responses to be retrieved. See
100433// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100434// for more information.
100435func (c *NetworksRemovePeeringCall) Fields(s ...googleapi.Field) *NetworksRemovePeeringCall {
100436	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100437	return c
100438}
100439
100440// Context sets the context to be used in this call's Do method. Any
100441// pending HTTP request will be aborted if the provided context is
100442// canceled.
100443func (c *NetworksRemovePeeringCall) Context(ctx context.Context) *NetworksRemovePeeringCall {
100444	c.ctx_ = ctx
100445	return c
100446}
100447
100448// Header returns an http.Header that can be modified by the caller to
100449// add HTTP headers to the request.
100450func (c *NetworksRemovePeeringCall) Header() http.Header {
100451	if c.header_ == nil {
100452		c.header_ = make(http.Header)
100453	}
100454	return c.header_
100455}
100456
100457func (c *NetworksRemovePeeringCall) doRequest(alt string) (*http.Response, error) {
100458	reqHeaders := make(http.Header)
100459	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
100460	for k, v := range c.header_ {
100461		reqHeaders[k] = v
100462	}
100463	reqHeaders.Set("User-Agent", c.s.userAgent())
100464	var body io.Reader = nil
100465	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksremovepeeringrequest)
100466	if err != nil {
100467		return nil, err
100468	}
100469	reqHeaders.Set("Content-Type", "application/json")
100470	c.urlParams_.Set("alt", alt)
100471	c.urlParams_.Set("prettyPrint", "false")
100472	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/removePeering")
100473	urls += "?" + c.urlParams_.Encode()
100474	req, err := http.NewRequest("POST", urls, body)
100475	if err != nil {
100476		return nil, err
100477	}
100478	req.Header = reqHeaders
100479	googleapi.Expand(req.URL, map[string]string{
100480		"project": c.project,
100481		"network": c.network,
100482	})
100483	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100484}
100485
100486// Do executes the "compute.networks.removePeering" call.
100487// Exactly one of *Operation or error will be non-nil. Any non-2xx
100488// status code is an error. Response headers are in either
100489// *Operation.ServerResponse.Header or (if a response was returned at
100490// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
100491// to check whether the returned error was because
100492// http.StatusNotModified was returned.
100493func (c *NetworksRemovePeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
100494	gensupport.SetOptions(c.urlParams_, opts...)
100495	res, err := c.doRequest("json")
100496	if res != nil && res.StatusCode == http.StatusNotModified {
100497		if res.Body != nil {
100498			res.Body.Close()
100499		}
100500		return nil, &googleapi.Error{
100501			Code:   res.StatusCode,
100502			Header: res.Header,
100503		}
100504	}
100505	if err != nil {
100506		return nil, err
100507	}
100508	defer googleapi.CloseBody(res)
100509	if err := googleapi.CheckResponse(res); err != nil {
100510		return nil, err
100511	}
100512	ret := &Operation{
100513		ServerResponse: googleapi.ServerResponse{
100514			Header:         res.Header,
100515			HTTPStatusCode: res.StatusCode,
100516		},
100517	}
100518	target := &ret
100519	if err := gensupport.DecodeResponse(target, res); err != nil {
100520		return nil, err
100521	}
100522	return ret, nil
100523	// {
100524	//   "description": "Removes a peering from the specified network.",
100525	//   "httpMethod": "POST",
100526	//   "id": "compute.networks.removePeering",
100527	//   "parameterOrder": [
100528	//     "project",
100529	//     "network"
100530	//   ],
100531	//   "parameters": {
100532	//     "network": {
100533	//       "description": "Name of the network resource to remove peering from.",
100534	//       "location": "path",
100535	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
100536	//       "required": true,
100537	//       "type": "string"
100538	//     },
100539	//     "project": {
100540	//       "description": "Project ID for this request.",
100541	//       "location": "path",
100542	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100543	//       "required": true,
100544	//       "type": "string"
100545	//     },
100546	//     "requestId": {
100547	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
100548	//       "location": "query",
100549	//       "type": "string"
100550	//     }
100551	//   },
100552	//   "path": "projects/{project}/global/networks/{network}/removePeering",
100553	//   "request": {
100554	//     "$ref": "NetworksRemovePeeringRequest"
100555	//   },
100556	//   "response": {
100557	//     "$ref": "Operation"
100558	//   },
100559	//   "scopes": [
100560	//     "https://www.googleapis.com/auth/cloud-platform",
100561	//     "https://www.googleapis.com/auth/compute"
100562	//   ]
100563	// }
100564
100565}
100566
100567// method id "compute.networks.switchToCustomMode":
100568
100569type NetworksSwitchToCustomModeCall struct {
100570	s          *Service
100571	project    string
100572	network    string
100573	urlParams_ gensupport.URLParams
100574	ctx_       context.Context
100575	header_    http.Header
100576}
100577
100578// SwitchToCustomMode: Switches the network mode from auto subnet mode
100579// to custom subnet mode.
100580//
100581// - network: Name of the network to be updated.
100582// - project: Project ID for this request.
100583func (r *NetworksService) SwitchToCustomMode(project string, network string) *NetworksSwitchToCustomModeCall {
100584	c := &NetworksSwitchToCustomModeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100585	c.project = project
100586	c.network = network
100587	return c
100588}
100589
100590// RequestId sets the optional parameter "requestId": An optional
100591// request ID to identify requests. Specify a unique request ID so that
100592// if you must retry your request, the server will know to ignore the
100593// request if it has already been completed.
100594//
100595// For example, consider a situation where you make an initial request
100596// and the request times out. If you make the request again with the
100597// same request ID, the server can check if original operation with the
100598// same request ID was received, and if so, will ignore the second
100599// request. This prevents clients from accidentally creating duplicate
100600// commitments.
100601//
100602// The request ID must be a valid UUID with the exception that zero UUID
100603// is not supported (00000000-0000-0000-0000-000000000000).
100604func (c *NetworksSwitchToCustomModeCall) RequestId(requestId string) *NetworksSwitchToCustomModeCall {
100605	c.urlParams_.Set("requestId", requestId)
100606	return c
100607}
100608
100609// Fields allows partial responses to be retrieved. See
100610// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100611// for more information.
100612func (c *NetworksSwitchToCustomModeCall) Fields(s ...googleapi.Field) *NetworksSwitchToCustomModeCall {
100613	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100614	return c
100615}
100616
100617// Context sets the context to be used in this call's Do method. Any
100618// pending HTTP request will be aborted if the provided context is
100619// canceled.
100620func (c *NetworksSwitchToCustomModeCall) Context(ctx context.Context) *NetworksSwitchToCustomModeCall {
100621	c.ctx_ = ctx
100622	return c
100623}
100624
100625// Header returns an http.Header that can be modified by the caller to
100626// add HTTP headers to the request.
100627func (c *NetworksSwitchToCustomModeCall) Header() http.Header {
100628	if c.header_ == nil {
100629		c.header_ = make(http.Header)
100630	}
100631	return c.header_
100632}
100633
100634func (c *NetworksSwitchToCustomModeCall) doRequest(alt string) (*http.Response, error) {
100635	reqHeaders := make(http.Header)
100636	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
100637	for k, v := range c.header_ {
100638		reqHeaders[k] = v
100639	}
100640	reqHeaders.Set("User-Agent", c.s.userAgent())
100641	var body io.Reader = nil
100642	c.urlParams_.Set("alt", alt)
100643	c.urlParams_.Set("prettyPrint", "false")
100644	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/switchToCustomMode")
100645	urls += "?" + c.urlParams_.Encode()
100646	req, err := http.NewRequest("POST", urls, body)
100647	if err != nil {
100648		return nil, err
100649	}
100650	req.Header = reqHeaders
100651	googleapi.Expand(req.URL, map[string]string{
100652		"project": c.project,
100653		"network": c.network,
100654	})
100655	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100656}
100657
100658// Do executes the "compute.networks.switchToCustomMode" call.
100659// Exactly one of *Operation or error will be non-nil. Any non-2xx
100660// status code is an error. Response headers are in either
100661// *Operation.ServerResponse.Header or (if a response was returned at
100662// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
100663// to check whether the returned error was because
100664// http.StatusNotModified was returned.
100665func (c *NetworksSwitchToCustomModeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
100666	gensupport.SetOptions(c.urlParams_, opts...)
100667	res, err := c.doRequest("json")
100668	if res != nil && res.StatusCode == http.StatusNotModified {
100669		if res.Body != nil {
100670			res.Body.Close()
100671		}
100672		return nil, &googleapi.Error{
100673			Code:   res.StatusCode,
100674			Header: res.Header,
100675		}
100676	}
100677	if err != nil {
100678		return nil, err
100679	}
100680	defer googleapi.CloseBody(res)
100681	if err := googleapi.CheckResponse(res); err != nil {
100682		return nil, err
100683	}
100684	ret := &Operation{
100685		ServerResponse: googleapi.ServerResponse{
100686			Header:         res.Header,
100687			HTTPStatusCode: res.StatusCode,
100688		},
100689	}
100690	target := &ret
100691	if err := gensupport.DecodeResponse(target, res); err != nil {
100692		return nil, err
100693	}
100694	return ret, nil
100695	// {
100696	//   "description": "Switches the network mode from auto subnet mode to custom subnet mode.",
100697	//   "httpMethod": "POST",
100698	//   "id": "compute.networks.switchToCustomMode",
100699	//   "parameterOrder": [
100700	//     "project",
100701	//     "network"
100702	//   ],
100703	//   "parameters": {
100704	//     "network": {
100705	//       "description": "Name of the network to be updated.",
100706	//       "location": "path",
100707	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
100708	//       "required": true,
100709	//       "type": "string"
100710	//     },
100711	//     "project": {
100712	//       "description": "Project ID for this request.",
100713	//       "location": "path",
100714	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100715	//       "required": true,
100716	//       "type": "string"
100717	//     },
100718	//     "requestId": {
100719	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
100720	//       "location": "query",
100721	//       "type": "string"
100722	//     }
100723	//   },
100724	//   "path": "projects/{project}/global/networks/{network}/switchToCustomMode",
100725	//   "response": {
100726	//     "$ref": "Operation"
100727	//   },
100728	//   "scopes": [
100729	//     "https://www.googleapis.com/auth/cloud-platform",
100730	//     "https://www.googleapis.com/auth/compute"
100731	//   ]
100732	// }
100733
100734}
100735
100736// method id "compute.networks.updatePeering":
100737
100738type NetworksUpdatePeeringCall struct {
100739	s                            *Service
100740	project                      string
100741	network                      string
100742	networksupdatepeeringrequest *NetworksUpdatePeeringRequest
100743	urlParams_                   gensupport.URLParams
100744	ctx_                         context.Context
100745	header_                      http.Header
100746}
100747
100748// UpdatePeering: Updates the specified network peering with the data
100749// included in the request Only the following fields can be modified:
100750// NetworkPeering.export_custom_routes, and
100751// NetworkPeering.import_custom_routes
100752//
100753// - network: Name of the network resource which the updated peering is
100754//   belonging to.
100755// - project: Project ID for this request.
100756func (r *NetworksService) UpdatePeering(project string, network string, networksupdatepeeringrequest *NetworksUpdatePeeringRequest) *NetworksUpdatePeeringCall {
100757	c := &NetworksUpdatePeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100758	c.project = project
100759	c.network = network
100760	c.networksupdatepeeringrequest = networksupdatepeeringrequest
100761	return c
100762}
100763
100764// RequestId sets the optional parameter "requestId": An optional
100765// request ID to identify requests. Specify a unique request ID so that
100766// if you must retry your request, the server will know to ignore the
100767// request if it has already been completed.
100768//
100769// For example, consider a situation where you make an initial request
100770// and the request times out. If you make the request again with the
100771// same request ID, the server can check if original operation with the
100772// same request ID was received, and if so, will ignore the second
100773// request. This prevents clients from accidentally creating duplicate
100774// commitments.
100775//
100776// The request ID must be a valid UUID with the exception that zero UUID
100777// is not supported (00000000-0000-0000-0000-000000000000).
100778func (c *NetworksUpdatePeeringCall) RequestId(requestId string) *NetworksUpdatePeeringCall {
100779	c.urlParams_.Set("requestId", requestId)
100780	return c
100781}
100782
100783// Fields allows partial responses to be retrieved. See
100784// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100785// for more information.
100786func (c *NetworksUpdatePeeringCall) Fields(s ...googleapi.Field) *NetworksUpdatePeeringCall {
100787	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100788	return c
100789}
100790
100791// Context sets the context to be used in this call's Do method. Any
100792// pending HTTP request will be aborted if the provided context is
100793// canceled.
100794func (c *NetworksUpdatePeeringCall) Context(ctx context.Context) *NetworksUpdatePeeringCall {
100795	c.ctx_ = ctx
100796	return c
100797}
100798
100799// Header returns an http.Header that can be modified by the caller to
100800// add HTTP headers to the request.
100801func (c *NetworksUpdatePeeringCall) Header() http.Header {
100802	if c.header_ == nil {
100803		c.header_ = make(http.Header)
100804	}
100805	return c.header_
100806}
100807
100808func (c *NetworksUpdatePeeringCall) doRequest(alt string) (*http.Response, error) {
100809	reqHeaders := make(http.Header)
100810	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
100811	for k, v := range c.header_ {
100812		reqHeaders[k] = v
100813	}
100814	reqHeaders.Set("User-Agent", c.s.userAgent())
100815	var body io.Reader = nil
100816	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksupdatepeeringrequest)
100817	if err != nil {
100818		return nil, err
100819	}
100820	reqHeaders.Set("Content-Type", "application/json")
100821	c.urlParams_.Set("alt", alt)
100822	c.urlParams_.Set("prettyPrint", "false")
100823	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/networks/{network}/updatePeering")
100824	urls += "?" + c.urlParams_.Encode()
100825	req, err := http.NewRequest("PATCH", urls, body)
100826	if err != nil {
100827		return nil, err
100828	}
100829	req.Header = reqHeaders
100830	googleapi.Expand(req.URL, map[string]string{
100831		"project": c.project,
100832		"network": c.network,
100833	})
100834	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100835}
100836
100837// Do executes the "compute.networks.updatePeering" call.
100838// Exactly one of *Operation or error will be non-nil. Any non-2xx
100839// status code is an error. Response headers are in either
100840// *Operation.ServerResponse.Header or (if a response was returned at
100841// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
100842// to check whether the returned error was because
100843// http.StatusNotModified was returned.
100844func (c *NetworksUpdatePeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
100845	gensupport.SetOptions(c.urlParams_, opts...)
100846	res, err := c.doRequest("json")
100847	if res != nil && res.StatusCode == http.StatusNotModified {
100848		if res.Body != nil {
100849			res.Body.Close()
100850		}
100851		return nil, &googleapi.Error{
100852			Code:   res.StatusCode,
100853			Header: res.Header,
100854		}
100855	}
100856	if err != nil {
100857		return nil, err
100858	}
100859	defer googleapi.CloseBody(res)
100860	if err := googleapi.CheckResponse(res); err != nil {
100861		return nil, err
100862	}
100863	ret := &Operation{
100864		ServerResponse: googleapi.ServerResponse{
100865			Header:         res.Header,
100866			HTTPStatusCode: res.StatusCode,
100867		},
100868	}
100869	target := &ret
100870	if err := gensupport.DecodeResponse(target, res); err != nil {
100871		return nil, err
100872	}
100873	return ret, nil
100874	// {
100875	//   "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",
100876	//   "httpMethod": "PATCH",
100877	//   "id": "compute.networks.updatePeering",
100878	//   "parameterOrder": [
100879	//     "project",
100880	//     "network"
100881	//   ],
100882	//   "parameters": {
100883	//     "network": {
100884	//       "description": "Name of the network resource which the updated peering is belonging to.",
100885	//       "location": "path",
100886	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
100887	//       "required": true,
100888	//       "type": "string"
100889	//     },
100890	//     "project": {
100891	//       "description": "Project ID for this request.",
100892	//       "location": "path",
100893	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100894	//       "required": true,
100895	//       "type": "string"
100896	//     },
100897	//     "requestId": {
100898	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
100899	//       "location": "query",
100900	//       "type": "string"
100901	//     }
100902	//   },
100903	//   "path": "projects/{project}/global/networks/{network}/updatePeering",
100904	//   "request": {
100905	//     "$ref": "NetworksUpdatePeeringRequest"
100906	//   },
100907	//   "response": {
100908	//     "$ref": "Operation"
100909	//   },
100910	//   "scopes": [
100911	//     "https://www.googleapis.com/auth/cloud-platform",
100912	//     "https://www.googleapis.com/auth/compute"
100913	//   ]
100914	// }
100915
100916}
100917
100918// method id "compute.nodeGroups.addNodes":
100919
100920type NodeGroupsAddNodesCall struct {
100921	s                         *Service
100922	project                   string
100923	zone                      string
100924	nodeGroup                 string
100925	nodegroupsaddnodesrequest *NodeGroupsAddNodesRequest
100926	urlParams_                gensupport.URLParams
100927	ctx_                      context.Context
100928	header_                   http.Header
100929}
100930
100931// AddNodes: Adds specified number of nodes to the node group.
100932//
100933// - nodeGroup: Name of the NodeGroup resource.
100934// - project: Project ID for this request.
100935// - zone: The name of the zone for this request.
100936func (r *NodeGroupsService) AddNodes(project string, zone string, nodeGroup string, nodegroupsaddnodesrequest *NodeGroupsAddNodesRequest) *NodeGroupsAddNodesCall {
100937	c := &NodeGroupsAddNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100938	c.project = project
100939	c.zone = zone
100940	c.nodeGroup = nodeGroup
100941	c.nodegroupsaddnodesrequest = nodegroupsaddnodesrequest
100942	return c
100943}
100944
100945// RequestId sets the optional parameter "requestId": An optional
100946// request ID to identify requests. Specify a unique request ID so that
100947// if you must retry your request, the server will know to ignore the
100948// request if it has already been completed.
100949//
100950// For example, consider a situation where you make an initial request
100951// and the request times out. If you make the request again with the
100952// same request ID, the server can check if original operation with the
100953// same request ID was received, and if so, will ignore the second
100954// request. This prevents clients from accidentally creating duplicate
100955// commitments.
100956//
100957// The request ID must be a valid UUID with the exception that zero UUID
100958// is not supported (00000000-0000-0000-0000-000000000000).
100959func (c *NodeGroupsAddNodesCall) RequestId(requestId string) *NodeGroupsAddNodesCall {
100960	c.urlParams_.Set("requestId", requestId)
100961	return c
100962}
100963
100964// Fields allows partial responses to be retrieved. See
100965// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100966// for more information.
100967func (c *NodeGroupsAddNodesCall) Fields(s ...googleapi.Field) *NodeGroupsAddNodesCall {
100968	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100969	return c
100970}
100971
100972// Context sets the context to be used in this call's Do method. Any
100973// pending HTTP request will be aborted if the provided context is
100974// canceled.
100975func (c *NodeGroupsAddNodesCall) Context(ctx context.Context) *NodeGroupsAddNodesCall {
100976	c.ctx_ = ctx
100977	return c
100978}
100979
100980// Header returns an http.Header that can be modified by the caller to
100981// add HTTP headers to the request.
100982func (c *NodeGroupsAddNodesCall) Header() http.Header {
100983	if c.header_ == nil {
100984		c.header_ = make(http.Header)
100985	}
100986	return c.header_
100987}
100988
100989func (c *NodeGroupsAddNodesCall) doRequest(alt string) (*http.Response, error) {
100990	reqHeaders := make(http.Header)
100991	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
100992	for k, v := range c.header_ {
100993		reqHeaders[k] = v
100994	}
100995	reqHeaders.Set("User-Agent", c.s.userAgent())
100996	var body io.Reader = nil
100997	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupsaddnodesrequest)
100998	if err != nil {
100999		return nil, err
101000	}
101001	reqHeaders.Set("Content-Type", "application/json")
101002	c.urlParams_.Set("alt", alt)
101003	c.urlParams_.Set("prettyPrint", "false")
101004	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes")
101005	urls += "?" + c.urlParams_.Encode()
101006	req, err := http.NewRequest("POST", urls, body)
101007	if err != nil {
101008		return nil, err
101009	}
101010	req.Header = reqHeaders
101011	googleapi.Expand(req.URL, map[string]string{
101012		"project":   c.project,
101013		"zone":      c.zone,
101014		"nodeGroup": c.nodeGroup,
101015	})
101016	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101017}
101018
101019// Do executes the "compute.nodeGroups.addNodes" call.
101020// Exactly one of *Operation or error will be non-nil. Any non-2xx
101021// status code is an error. Response headers are in either
101022// *Operation.ServerResponse.Header or (if a response was returned at
101023// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
101024// to check whether the returned error was because
101025// http.StatusNotModified was returned.
101026func (c *NodeGroupsAddNodesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
101027	gensupport.SetOptions(c.urlParams_, opts...)
101028	res, err := c.doRequest("json")
101029	if res != nil && res.StatusCode == http.StatusNotModified {
101030		if res.Body != nil {
101031			res.Body.Close()
101032		}
101033		return nil, &googleapi.Error{
101034			Code:   res.StatusCode,
101035			Header: res.Header,
101036		}
101037	}
101038	if err != nil {
101039		return nil, err
101040	}
101041	defer googleapi.CloseBody(res)
101042	if err := googleapi.CheckResponse(res); err != nil {
101043		return nil, err
101044	}
101045	ret := &Operation{
101046		ServerResponse: googleapi.ServerResponse{
101047			Header:         res.Header,
101048			HTTPStatusCode: res.StatusCode,
101049		},
101050	}
101051	target := &ret
101052	if err := gensupport.DecodeResponse(target, res); err != nil {
101053		return nil, err
101054	}
101055	return ret, nil
101056	// {
101057	//   "description": "Adds specified number of nodes to the node group.",
101058	//   "httpMethod": "POST",
101059	//   "id": "compute.nodeGroups.addNodes",
101060	//   "parameterOrder": [
101061	//     "project",
101062	//     "zone",
101063	//     "nodeGroup"
101064	//   ],
101065	//   "parameters": {
101066	//     "nodeGroup": {
101067	//       "description": "Name of the NodeGroup resource.",
101068	//       "location": "path",
101069	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
101070	//       "required": true,
101071	//       "type": "string"
101072	//     },
101073	//     "project": {
101074	//       "description": "Project ID for this request.",
101075	//       "location": "path",
101076	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101077	//       "required": true,
101078	//       "type": "string"
101079	//     },
101080	//     "requestId": {
101081	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
101082	//       "location": "query",
101083	//       "type": "string"
101084	//     },
101085	//     "zone": {
101086	//       "description": "The name of the zone for this request.",
101087	//       "location": "path",
101088	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
101089	//       "required": true,
101090	//       "type": "string"
101091	//     }
101092	//   },
101093	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes",
101094	//   "request": {
101095	//     "$ref": "NodeGroupsAddNodesRequest"
101096	//   },
101097	//   "response": {
101098	//     "$ref": "Operation"
101099	//   },
101100	//   "scopes": [
101101	//     "https://www.googleapis.com/auth/cloud-platform",
101102	//     "https://www.googleapis.com/auth/compute"
101103	//   ]
101104	// }
101105
101106}
101107
101108// method id "compute.nodeGroups.aggregatedList":
101109
101110type NodeGroupsAggregatedListCall struct {
101111	s            *Service
101112	project      string
101113	urlParams_   gensupport.URLParams
101114	ifNoneMatch_ string
101115	ctx_         context.Context
101116	header_      http.Header
101117}
101118
101119// AggregatedList: Retrieves an aggregated list of node groups. Note:
101120// use nodeGroups.listNodes for more details about each group.
101121//
101122// - project: Project ID for this request.
101123func (r *NodeGroupsService) AggregatedList(project string) *NodeGroupsAggregatedListCall {
101124	c := &NodeGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101125	c.project = project
101126	return c
101127}
101128
101129// Filter sets the optional parameter "filter": A filter expression that
101130// filters resources listed in the response. The expression must specify
101131// the field name, a comparison operator, and the value that you want to
101132// use for filtering. The value must be a string, a number, or a
101133// boolean. The comparison operator must be either `=`, `!=`, `>`, or
101134// `<`.
101135//
101136// For example, if you are filtering Compute Engine instances, you can
101137// exclude instances named `example-instance` by specifying `name !=
101138// example-instance`.
101139//
101140// You can also filter nested fields. For example, you could specify
101141// `scheduling.automaticRestart = false` to include instances only if
101142// they are not scheduled for automatic restarts. You can use filtering
101143// on nested fields to filter based on resource labels.
101144//
101145// To filter on multiple expressions, provide each separate expression
101146// within parentheses. For example: ``` (scheduling.automaticRestart =
101147// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
101148// is an `AND` expression. However, you can include `AND` and `OR`
101149// expressions explicitly. For example: ``` (cpuPlatform = "Intel
101150// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
101151// (scheduling.automaticRestart = true) ```
101152func (c *NodeGroupsAggregatedListCall) Filter(filter string) *NodeGroupsAggregatedListCall {
101153	c.urlParams_.Set("filter", filter)
101154	return c
101155}
101156
101157// IncludeAllScopes sets the optional parameter "includeAllScopes":
101158// Indicates whether every visible scope for each scope type (zone,
101159// region, global) should be included in the response. For new resource
101160// types added after this field, the flag has no effect as new resource
101161// types will always include every visible scope for each scope type in
101162// response. For resource types which predate this field, if this flag
101163// is omitted or false, only scopes of the scope types where the
101164// resource type is expected to be found will be included.
101165func (c *NodeGroupsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NodeGroupsAggregatedListCall {
101166	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
101167	return c
101168}
101169
101170// MaxResults sets the optional parameter "maxResults": The maximum
101171// number of results per page that should be returned. If the number of
101172// available results is larger than `maxResults`, Compute Engine returns
101173// a `nextPageToken` that can be used to get the next page of results in
101174// subsequent list requests. Acceptable values are `0` to `500`,
101175// inclusive. (Default: `500`)
101176func (c *NodeGroupsAggregatedListCall) MaxResults(maxResults int64) *NodeGroupsAggregatedListCall {
101177	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
101178	return c
101179}
101180
101181// OrderBy sets the optional parameter "orderBy": Sorts list results by
101182// a certain order. By default, results are returned in alphanumerical
101183// order based on the resource name.
101184//
101185// You can also sort results in descending order based on the creation
101186// timestamp using `orderBy="creationTimestamp desc". This sorts
101187// results based on the `creationTimestamp` field in reverse
101188// chronological order (newest result first). Use this to sort resources
101189// like operations so that the newest operation is returned
101190// first.
101191//
101192// Currently, only sorting by `name` or `creationTimestamp desc` is
101193// supported.
101194func (c *NodeGroupsAggregatedListCall) OrderBy(orderBy string) *NodeGroupsAggregatedListCall {
101195	c.urlParams_.Set("orderBy", orderBy)
101196	return c
101197}
101198
101199// PageToken sets the optional parameter "pageToken": Specifies a page
101200// token to use. Set `pageToken` to the `nextPageToken` returned by a
101201// previous list request to get the next page of results.
101202func (c *NodeGroupsAggregatedListCall) PageToken(pageToken string) *NodeGroupsAggregatedListCall {
101203	c.urlParams_.Set("pageToken", pageToken)
101204	return c
101205}
101206
101207// ReturnPartialSuccess sets the optional parameter
101208// "returnPartialSuccess": Opt-in for partial success behavior which
101209// provides partial results in case of failure. The default value is
101210// false.
101211func (c *NodeGroupsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeGroupsAggregatedListCall {
101212	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
101213	return c
101214}
101215
101216// Fields allows partial responses to be retrieved. See
101217// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101218// for more information.
101219func (c *NodeGroupsAggregatedListCall) Fields(s ...googleapi.Field) *NodeGroupsAggregatedListCall {
101220	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101221	return c
101222}
101223
101224// IfNoneMatch sets the optional parameter which makes the operation
101225// fail if the object's ETag matches the given value. This is useful for
101226// getting updates only after the object has changed since the last
101227// request. Use googleapi.IsNotModified to check whether the response
101228// error from Do is the result of In-None-Match.
101229func (c *NodeGroupsAggregatedListCall) IfNoneMatch(entityTag string) *NodeGroupsAggregatedListCall {
101230	c.ifNoneMatch_ = entityTag
101231	return c
101232}
101233
101234// Context sets the context to be used in this call's Do method. Any
101235// pending HTTP request will be aborted if the provided context is
101236// canceled.
101237func (c *NodeGroupsAggregatedListCall) Context(ctx context.Context) *NodeGroupsAggregatedListCall {
101238	c.ctx_ = ctx
101239	return c
101240}
101241
101242// Header returns an http.Header that can be modified by the caller to
101243// add HTTP headers to the request.
101244func (c *NodeGroupsAggregatedListCall) Header() http.Header {
101245	if c.header_ == nil {
101246		c.header_ = make(http.Header)
101247	}
101248	return c.header_
101249}
101250
101251func (c *NodeGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
101252	reqHeaders := make(http.Header)
101253	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
101254	for k, v := range c.header_ {
101255		reqHeaders[k] = v
101256	}
101257	reqHeaders.Set("User-Agent", c.s.userAgent())
101258	if c.ifNoneMatch_ != "" {
101259		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
101260	}
101261	var body io.Reader = nil
101262	c.urlParams_.Set("alt", alt)
101263	c.urlParams_.Set("prettyPrint", "false")
101264	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/nodeGroups")
101265	urls += "?" + c.urlParams_.Encode()
101266	req, err := http.NewRequest("GET", urls, body)
101267	if err != nil {
101268		return nil, err
101269	}
101270	req.Header = reqHeaders
101271	googleapi.Expand(req.URL, map[string]string{
101272		"project": c.project,
101273	})
101274	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101275}
101276
101277// Do executes the "compute.nodeGroups.aggregatedList" call.
101278// Exactly one of *NodeGroupAggregatedList or error will be non-nil. Any
101279// non-2xx status code is an error. Response headers are in either
101280// *NodeGroupAggregatedList.ServerResponse.Header or (if a response was
101281// returned at all) in error.(*googleapi.Error).Header. Use
101282// googleapi.IsNotModified to check whether the returned error was
101283// because http.StatusNotModified was returned.
101284func (c *NodeGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeGroupAggregatedList, error) {
101285	gensupport.SetOptions(c.urlParams_, opts...)
101286	res, err := c.doRequest("json")
101287	if res != nil && res.StatusCode == http.StatusNotModified {
101288		if res.Body != nil {
101289			res.Body.Close()
101290		}
101291		return nil, &googleapi.Error{
101292			Code:   res.StatusCode,
101293			Header: res.Header,
101294		}
101295	}
101296	if err != nil {
101297		return nil, err
101298	}
101299	defer googleapi.CloseBody(res)
101300	if err := googleapi.CheckResponse(res); err != nil {
101301		return nil, err
101302	}
101303	ret := &NodeGroupAggregatedList{
101304		ServerResponse: googleapi.ServerResponse{
101305			Header:         res.Header,
101306			HTTPStatusCode: res.StatusCode,
101307		},
101308	}
101309	target := &ret
101310	if err := gensupport.DecodeResponse(target, res); err != nil {
101311		return nil, err
101312	}
101313	return ret, nil
101314	// {
101315	//   "description": "Retrieves an aggregated list of node groups. Note: use nodeGroups.listNodes for more details about each group.",
101316	//   "httpMethod": "GET",
101317	//   "id": "compute.nodeGroups.aggregatedList",
101318	//   "parameterOrder": [
101319	//     "project"
101320	//   ],
101321	//   "parameters": {
101322	//     "filter": {
101323	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
101324	//       "location": "query",
101325	//       "type": "string"
101326	//     },
101327	//     "includeAllScopes": {
101328	//       "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.",
101329	//       "location": "query",
101330	//       "type": "boolean"
101331	//     },
101332	//     "maxResults": {
101333	//       "default": "500",
101334	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
101335	//       "format": "uint32",
101336	//       "location": "query",
101337	//       "minimum": "0",
101338	//       "type": "integer"
101339	//     },
101340	//     "orderBy": {
101341	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
101342	//       "location": "query",
101343	//       "type": "string"
101344	//     },
101345	//     "pageToken": {
101346	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
101347	//       "location": "query",
101348	//       "type": "string"
101349	//     },
101350	//     "project": {
101351	//       "description": "Project ID for this request.",
101352	//       "location": "path",
101353	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101354	//       "required": true,
101355	//       "type": "string"
101356	//     },
101357	//     "returnPartialSuccess": {
101358	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
101359	//       "location": "query",
101360	//       "type": "boolean"
101361	//     }
101362	//   },
101363	//   "path": "projects/{project}/aggregated/nodeGroups",
101364	//   "response": {
101365	//     "$ref": "NodeGroupAggregatedList"
101366	//   },
101367	//   "scopes": [
101368	//     "https://www.googleapis.com/auth/cloud-platform",
101369	//     "https://www.googleapis.com/auth/compute",
101370	//     "https://www.googleapis.com/auth/compute.readonly"
101371	//   ]
101372	// }
101373
101374}
101375
101376// Pages invokes f for each page of results.
101377// A non-nil error returned from f will halt the iteration.
101378// The provided context supersedes any context provided to the Context method.
101379func (c *NodeGroupsAggregatedListCall) Pages(ctx context.Context, f func(*NodeGroupAggregatedList) error) error {
101380	c.ctx_ = ctx
101381	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
101382	for {
101383		x, err := c.Do()
101384		if err != nil {
101385			return err
101386		}
101387		if err := f(x); err != nil {
101388			return err
101389		}
101390		if x.NextPageToken == "" {
101391			return nil
101392		}
101393		c.PageToken(x.NextPageToken)
101394	}
101395}
101396
101397// method id "compute.nodeGroups.delete":
101398
101399type NodeGroupsDeleteCall struct {
101400	s          *Service
101401	project    string
101402	zone       string
101403	nodeGroup  string
101404	urlParams_ gensupport.URLParams
101405	ctx_       context.Context
101406	header_    http.Header
101407}
101408
101409// Delete: Deletes the specified NodeGroup resource.
101410//
101411// - nodeGroup: Name of the NodeGroup resource to delete.
101412// - project: Project ID for this request.
101413// - zone: The name of the zone for this request.
101414func (r *NodeGroupsService) Delete(project string, zone string, nodeGroup string) *NodeGroupsDeleteCall {
101415	c := &NodeGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101416	c.project = project
101417	c.zone = zone
101418	c.nodeGroup = nodeGroup
101419	return c
101420}
101421
101422// RequestId sets the optional parameter "requestId": An optional
101423// request ID to identify requests. Specify a unique request ID so that
101424// if you must retry your request, the server will know to ignore the
101425// request if it has already been completed.
101426//
101427// For example, consider a situation where you make an initial request
101428// and the request times out. If you make the request again with the
101429// same request ID, the server can check if original operation with the
101430// same request ID was received, and if so, will ignore the second
101431// request. This prevents clients from accidentally creating duplicate
101432// commitments.
101433//
101434// The request ID must be a valid UUID with the exception that zero UUID
101435// is not supported (00000000-0000-0000-0000-000000000000).
101436func (c *NodeGroupsDeleteCall) RequestId(requestId string) *NodeGroupsDeleteCall {
101437	c.urlParams_.Set("requestId", requestId)
101438	return c
101439}
101440
101441// Fields allows partial responses to be retrieved. See
101442// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101443// for more information.
101444func (c *NodeGroupsDeleteCall) Fields(s ...googleapi.Field) *NodeGroupsDeleteCall {
101445	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101446	return c
101447}
101448
101449// Context sets the context to be used in this call's Do method. Any
101450// pending HTTP request will be aborted if the provided context is
101451// canceled.
101452func (c *NodeGroupsDeleteCall) Context(ctx context.Context) *NodeGroupsDeleteCall {
101453	c.ctx_ = ctx
101454	return c
101455}
101456
101457// Header returns an http.Header that can be modified by the caller to
101458// add HTTP headers to the request.
101459func (c *NodeGroupsDeleteCall) Header() http.Header {
101460	if c.header_ == nil {
101461		c.header_ = make(http.Header)
101462	}
101463	return c.header_
101464}
101465
101466func (c *NodeGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
101467	reqHeaders := make(http.Header)
101468	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
101469	for k, v := range c.header_ {
101470		reqHeaders[k] = v
101471	}
101472	reqHeaders.Set("User-Agent", c.s.userAgent())
101473	var body io.Reader = nil
101474	c.urlParams_.Set("alt", alt)
101475	c.urlParams_.Set("prettyPrint", "false")
101476	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}")
101477	urls += "?" + c.urlParams_.Encode()
101478	req, err := http.NewRequest("DELETE", urls, body)
101479	if err != nil {
101480		return nil, err
101481	}
101482	req.Header = reqHeaders
101483	googleapi.Expand(req.URL, map[string]string{
101484		"project":   c.project,
101485		"zone":      c.zone,
101486		"nodeGroup": c.nodeGroup,
101487	})
101488	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101489}
101490
101491// Do executes the "compute.nodeGroups.delete" call.
101492// Exactly one of *Operation or error will be non-nil. Any non-2xx
101493// status code is an error. Response headers are in either
101494// *Operation.ServerResponse.Header or (if a response was returned at
101495// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
101496// to check whether the returned error was because
101497// http.StatusNotModified was returned.
101498func (c *NodeGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
101499	gensupport.SetOptions(c.urlParams_, opts...)
101500	res, err := c.doRequest("json")
101501	if res != nil && res.StatusCode == http.StatusNotModified {
101502		if res.Body != nil {
101503			res.Body.Close()
101504		}
101505		return nil, &googleapi.Error{
101506			Code:   res.StatusCode,
101507			Header: res.Header,
101508		}
101509	}
101510	if err != nil {
101511		return nil, err
101512	}
101513	defer googleapi.CloseBody(res)
101514	if err := googleapi.CheckResponse(res); err != nil {
101515		return nil, err
101516	}
101517	ret := &Operation{
101518		ServerResponse: googleapi.ServerResponse{
101519			Header:         res.Header,
101520			HTTPStatusCode: res.StatusCode,
101521		},
101522	}
101523	target := &ret
101524	if err := gensupport.DecodeResponse(target, res); err != nil {
101525		return nil, err
101526	}
101527	return ret, nil
101528	// {
101529	//   "description": "Deletes the specified NodeGroup resource.",
101530	//   "httpMethod": "DELETE",
101531	//   "id": "compute.nodeGroups.delete",
101532	//   "parameterOrder": [
101533	//     "project",
101534	//     "zone",
101535	//     "nodeGroup"
101536	//   ],
101537	//   "parameters": {
101538	//     "nodeGroup": {
101539	//       "description": "Name of the NodeGroup resource to delete.",
101540	//       "location": "path",
101541	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
101542	//       "required": true,
101543	//       "type": "string"
101544	//     },
101545	//     "project": {
101546	//       "description": "Project ID for this request.",
101547	//       "location": "path",
101548	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101549	//       "required": true,
101550	//       "type": "string"
101551	//     },
101552	//     "requestId": {
101553	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
101554	//       "location": "query",
101555	//       "type": "string"
101556	//     },
101557	//     "zone": {
101558	//       "description": "The name of the zone for this request.",
101559	//       "location": "path",
101560	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
101561	//       "required": true,
101562	//       "type": "string"
101563	//     }
101564	//   },
101565	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}",
101566	//   "response": {
101567	//     "$ref": "Operation"
101568	//   },
101569	//   "scopes": [
101570	//     "https://www.googleapis.com/auth/cloud-platform",
101571	//     "https://www.googleapis.com/auth/compute"
101572	//   ]
101573	// }
101574
101575}
101576
101577// method id "compute.nodeGroups.deleteNodes":
101578
101579type NodeGroupsDeleteNodesCall struct {
101580	s                            *Service
101581	project                      string
101582	zone                         string
101583	nodeGroup                    string
101584	nodegroupsdeletenodesrequest *NodeGroupsDeleteNodesRequest
101585	urlParams_                   gensupport.URLParams
101586	ctx_                         context.Context
101587	header_                      http.Header
101588}
101589
101590// DeleteNodes: Deletes specified nodes from the node group.
101591//
101592// - nodeGroup: Name of the NodeGroup resource whose nodes will be
101593//   deleted.
101594// - project: Project ID for this request.
101595// - zone: The name of the zone for this request.
101596func (r *NodeGroupsService) DeleteNodes(project string, zone string, nodeGroup string, nodegroupsdeletenodesrequest *NodeGroupsDeleteNodesRequest) *NodeGroupsDeleteNodesCall {
101597	c := &NodeGroupsDeleteNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101598	c.project = project
101599	c.zone = zone
101600	c.nodeGroup = nodeGroup
101601	c.nodegroupsdeletenodesrequest = nodegroupsdeletenodesrequest
101602	return c
101603}
101604
101605// RequestId sets the optional parameter "requestId": An optional
101606// request ID to identify requests. Specify a unique request ID so that
101607// if you must retry your request, the server will know to ignore the
101608// request if it has already been completed.
101609//
101610// For example, consider a situation where you make an initial request
101611// and the request times out. If you make the request again with the
101612// same request ID, the server can check if original operation with the
101613// same request ID was received, and if so, will ignore the second
101614// request. This prevents clients from accidentally creating duplicate
101615// commitments.
101616//
101617// The request ID must be a valid UUID with the exception that zero UUID
101618// is not supported (00000000-0000-0000-0000-000000000000).
101619func (c *NodeGroupsDeleteNodesCall) RequestId(requestId string) *NodeGroupsDeleteNodesCall {
101620	c.urlParams_.Set("requestId", requestId)
101621	return c
101622}
101623
101624// Fields allows partial responses to be retrieved. See
101625// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101626// for more information.
101627func (c *NodeGroupsDeleteNodesCall) Fields(s ...googleapi.Field) *NodeGroupsDeleteNodesCall {
101628	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101629	return c
101630}
101631
101632// Context sets the context to be used in this call's Do method. Any
101633// pending HTTP request will be aborted if the provided context is
101634// canceled.
101635func (c *NodeGroupsDeleteNodesCall) Context(ctx context.Context) *NodeGroupsDeleteNodesCall {
101636	c.ctx_ = ctx
101637	return c
101638}
101639
101640// Header returns an http.Header that can be modified by the caller to
101641// add HTTP headers to the request.
101642func (c *NodeGroupsDeleteNodesCall) Header() http.Header {
101643	if c.header_ == nil {
101644		c.header_ = make(http.Header)
101645	}
101646	return c.header_
101647}
101648
101649func (c *NodeGroupsDeleteNodesCall) doRequest(alt string) (*http.Response, error) {
101650	reqHeaders := make(http.Header)
101651	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
101652	for k, v := range c.header_ {
101653		reqHeaders[k] = v
101654	}
101655	reqHeaders.Set("User-Agent", c.s.userAgent())
101656	var body io.Reader = nil
101657	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupsdeletenodesrequest)
101658	if err != nil {
101659		return nil, err
101660	}
101661	reqHeaders.Set("Content-Type", "application/json")
101662	c.urlParams_.Set("alt", alt)
101663	c.urlParams_.Set("prettyPrint", "false")
101664	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes")
101665	urls += "?" + c.urlParams_.Encode()
101666	req, err := http.NewRequest("POST", urls, body)
101667	if err != nil {
101668		return nil, err
101669	}
101670	req.Header = reqHeaders
101671	googleapi.Expand(req.URL, map[string]string{
101672		"project":   c.project,
101673		"zone":      c.zone,
101674		"nodeGroup": c.nodeGroup,
101675	})
101676	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101677}
101678
101679// Do executes the "compute.nodeGroups.deleteNodes" call.
101680// Exactly one of *Operation or error will be non-nil. Any non-2xx
101681// status code is an error. Response headers are in either
101682// *Operation.ServerResponse.Header or (if a response was returned at
101683// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
101684// to check whether the returned error was because
101685// http.StatusNotModified was returned.
101686func (c *NodeGroupsDeleteNodesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
101687	gensupport.SetOptions(c.urlParams_, opts...)
101688	res, err := c.doRequest("json")
101689	if res != nil && res.StatusCode == http.StatusNotModified {
101690		if res.Body != nil {
101691			res.Body.Close()
101692		}
101693		return nil, &googleapi.Error{
101694			Code:   res.StatusCode,
101695			Header: res.Header,
101696		}
101697	}
101698	if err != nil {
101699		return nil, err
101700	}
101701	defer googleapi.CloseBody(res)
101702	if err := googleapi.CheckResponse(res); err != nil {
101703		return nil, err
101704	}
101705	ret := &Operation{
101706		ServerResponse: googleapi.ServerResponse{
101707			Header:         res.Header,
101708			HTTPStatusCode: res.StatusCode,
101709		},
101710	}
101711	target := &ret
101712	if err := gensupport.DecodeResponse(target, res); err != nil {
101713		return nil, err
101714	}
101715	return ret, nil
101716	// {
101717	//   "description": "Deletes specified nodes from the node group.",
101718	//   "httpMethod": "POST",
101719	//   "id": "compute.nodeGroups.deleteNodes",
101720	//   "parameterOrder": [
101721	//     "project",
101722	//     "zone",
101723	//     "nodeGroup"
101724	//   ],
101725	//   "parameters": {
101726	//     "nodeGroup": {
101727	//       "description": "Name of the NodeGroup resource whose nodes will be deleted.",
101728	//       "location": "path",
101729	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
101730	//       "required": true,
101731	//       "type": "string"
101732	//     },
101733	//     "project": {
101734	//       "description": "Project ID for this request.",
101735	//       "location": "path",
101736	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101737	//       "required": true,
101738	//       "type": "string"
101739	//     },
101740	//     "requestId": {
101741	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
101742	//       "location": "query",
101743	//       "type": "string"
101744	//     },
101745	//     "zone": {
101746	//       "description": "The name of the zone for this request.",
101747	//       "location": "path",
101748	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
101749	//       "required": true,
101750	//       "type": "string"
101751	//     }
101752	//   },
101753	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes",
101754	//   "request": {
101755	//     "$ref": "NodeGroupsDeleteNodesRequest"
101756	//   },
101757	//   "response": {
101758	//     "$ref": "Operation"
101759	//   },
101760	//   "scopes": [
101761	//     "https://www.googleapis.com/auth/cloud-platform",
101762	//     "https://www.googleapis.com/auth/compute"
101763	//   ]
101764	// }
101765
101766}
101767
101768// method id "compute.nodeGroups.get":
101769
101770type NodeGroupsGetCall struct {
101771	s            *Service
101772	project      string
101773	zone         string
101774	nodeGroup    string
101775	urlParams_   gensupport.URLParams
101776	ifNoneMatch_ string
101777	ctx_         context.Context
101778	header_      http.Header
101779}
101780
101781// Get: Returns the specified NodeGroup. Get a list of available
101782// NodeGroups by making a list() request. Note: the "nodes" field should
101783// not be used. Use nodeGroups.listNodes instead.
101784//
101785// - nodeGroup: Name of the node group to return.
101786// - project: Project ID for this request.
101787// - zone: The name of the zone for this request.
101788func (r *NodeGroupsService) Get(project string, zone string, nodeGroup string) *NodeGroupsGetCall {
101789	c := &NodeGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101790	c.project = project
101791	c.zone = zone
101792	c.nodeGroup = nodeGroup
101793	return c
101794}
101795
101796// Fields allows partial responses to be retrieved. See
101797// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101798// for more information.
101799func (c *NodeGroupsGetCall) Fields(s ...googleapi.Field) *NodeGroupsGetCall {
101800	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101801	return c
101802}
101803
101804// IfNoneMatch sets the optional parameter which makes the operation
101805// fail if the object's ETag matches the given value. This is useful for
101806// getting updates only after the object has changed since the last
101807// request. Use googleapi.IsNotModified to check whether the response
101808// error from Do is the result of In-None-Match.
101809func (c *NodeGroupsGetCall) IfNoneMatch(entityTag string) *NodeGroupsGetCall {
101810	c.ifNoneMatch_ = entityTag
101811	return c
101812}
101813
101814// Context sets the context to be used in this call's Do method. Any
101815// pending HTTP request will be aborted if the provided context is
101816// canceled.
101817func (c *NodeGroupsGetCall) Context(ctx context.Context) *NodeGroupsGetCall {
101818	c.ctx_ = ctx
101819	return c
101820}
101821
101822// Header returns an http.Header that can be modified by the caller to
101823// add HTTP headers to the request.
101824func (c *NodeGroupsGetCall) Header() http.Header {
101825	if c.header_ == nil {
101826		c.header_ = make(http.Header)
101827	}
101828	return c.header_
101829}
101830
101831func (c *NodeGroupsGetCall) doRequest(alt string) (*http.Response, error) {
101832	reqHeaders := make(http.Header)
101833	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
101834	for k, v := range c.header_ {
101835		reqHeaders[k] = v
101836	}
101837	reqHeaders.Set("User-Agent", c.s.userAgent())
101838	if c.ifNoneMatch_ != "" {
101839		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
101840	}
101841	var body io.Reader = nil
101842	c.urlParams_.Set("alt", alt)
101843	c.urlParams_.Set("prettyPrint", "false")
101844	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}")
101845	urls += "?" + c.urlParams_.Encode()
101846	req, err := http.NewRequest("GET", urls, body)
101847	if err != nil {
101848		return nil, err
101849	}
101850	req.Header = reqHeaders
101851	googleapi.Expand(req.URL, map[string]string{
101852		"project":   c.project,
101853		"zone":      c.zone,
101854		"nodeGroup": c.nodeGroup,
101855	})
101856	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101857}
101858
101859// Do executes the "compute.nodeGroups.get" call.
101860// Exactly one of *NodeGroup or error will be non-nil. Any non-2xx
101861// status code is an error. Response headers are in either
101862// *NodeGroup.ServerResponse.Header or (if a response was returned at
101863// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
101864// to check whether the returned error was because
101865// http.StatusNotModified was returned.
101866func (c *NodeGroupsGetCall) Do(opts ...googleapi.CallOption) (*NodeGroup, error) {
101867	gensupport.SetOptions(c.urlParams_, opts...)
101868	res, err := c.doRequest("json")
101869	if res != nil && res.StatusCode == http.StatusNotModified {
101870		if res.Body != nil {
101871			res.Body.Close()
101872		}
101873		return nil, &googleapi.Error{
101874			Code:   res.StatusCode,
101875			Header: res.Header,
101876		}
101877	}
101878	if err != nil {
101879		return nil, err
101880	}
101881	defer googleapi.CloseBody(res)
101882	if err := googleapi.CheckResponse(res); err != nil {
101883		return nil, err
101884	}
101885	ret := &NodeGroup{
101886		ServerResponse: googleapi.ServerResponse{
101887			Header:         res.Header,
101888			HTTPStatusCode: res.StatusCode,
101889		},
101890	}
101891	target := &ret
101892	if err := gensupport.DecodeResponse(target, res); err != nil {
101893		return nil, err
101894	}
101895	return ret, nil
101896	// {
101897	//   "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.",
101898	//   "httpMethod": "GET",
101899	//   "id": "compute.nodeGroups.get",
101900	//   "parameterOrder": [
101901	//     "project",
101902	//     "zone",
101903	//     "nodeGroup"
101904	//   ],
101905	//   "parameters": {
101906	//     "nodeGroup": {
101907	//       "description": "Name of the node group to return.",
101908	//       "location": "path",
101909	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
101910	//       "required": true,
101911	//       "type": "string"
101912	//     },
101913	//     "project": {
101914	//       "description": "Project ID for this request.",
101915	//       "location": "path",
101916	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101917	//       "required": true,
101918	//       "type": "string"
101919	//     },
101920	//     "zone": {
101921	//       "description": "The name of the zone for this request.",
101922	//       "location": "path",
101923	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
101924	//       "required": true,
101925	//       "type": "string"
101926	//     }
101927	//   },
101928	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}",
101929	//   "response": {
101930	//     "$ref": "NodeGroup"
101931	//   },
101932	//   "scopes": [
101933	//     "https://www.googleapis.com/auth/cloud-platform",
101934	//     "https://www.googleapis.com/auth/compute",
101935	//     "https://www.googleapis.com/auth/compute.readonly"
101936	//   ]
101937	// }
101938
101939}
101940
101941// method id "compute.nodeGroups.getIamPolicy":
101942
101943type NodeGroupsGetIamPolicyCall struct {
101944	s            *Service
101945	project      string
101946	zone         string
101947	resource     string
101948	urlParams_   gensupport.URLParams
101949	ifNoneMatch_ string
101950	ctx_         context.Context
101951	header_      http.Header
101952}
101953
101954// GetIamPolicy: Gets the access control policy for a resource. May be
101955// empty if no such policy or resource exists.
101956//
101957// - project: Project ID for this request.
101958// - resource: Name or id of the resource for this request.
101959// - zone: The name of the zone for this request.
101960func (r *NodeGroupsService) GetIamPolicy(project string, zone string, resource string) *NodeGroupsGetIamPolicyCall {
101961	c := &NodeGroupsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101962	c.project = project
101963	c.zone = zone
101964	c.resource = resource
101965	return c
101966}
101967
101968// OptionsRequestedPolicyVersion sets the optional parameter
101969// "optionsRequestedPolicyVersion": Requested IAM Policy version.
101970func (c *NodeGroupsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *NodeGroupsGetIamPolicyCall {
101971	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
101972	return c
101973}
101974
101975// Fields allows partial responses to be retrieved. See
101976// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101977// for more information.
101978func (c *NodeGroupsGetIamPolicyCall) Fields(s ...googleapi.Field) *NodeGroupsGetIamPolicyCall {
101979	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101980	return c
101981}
101982
101983// IfNoneMatch sets the optional parameter which makes the operation
101984// fail if the object's ETag matches the given value. This is useful for
101985// getting updates only after the object has changed since the last
101986// request. Use googleapi.IsNotModified to check whether the response
101987// error from Do is the result of In-None-Match.
101988func (c *NodeGroupsGetIamPolicyCall) IfNoneMatch(entityTag string) *NodeGroupsGetIamPolicyCall {
101989	c.ifNoneMatch_ = entityTag
101990	return c
101991}
101992
101993// Context sets the context to be used in this call's Do method. Any
101994// pending HTTP request will be aborted if the provided context is
101995// canceled.
101996func (c *NodeGroupsGetIamPolicyCall) Context(ctx context.Context) *NodeGroupsGetIamPolicyCall {
101997	c.ctx_ = ctx
101998	return c
101999}
102000
102001// Header returns an http.Header that can be modified by the caller to
102002// add HTTP headers to the request.
102003func (c *NodeGroupsGetIamPolicyCall) Header() http.Header {
102004	if c.header_ == nil {
102005		c.header_ = make(http.Header)
102006	}
102007	return c.header_
102008}
102009
102010func (c *NodeGroupsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
102011	reqHeaders := make(http.Header)
102012	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
102013	for k, v := range c.header_ {
102014		reqHeaders[k] = v
102015	}
102016	reqHeaders.Set("User-Agent", c.s.userAgent())
102017	if c.ifNoneMatch_ != "" {
102018		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
102019	}
102020	var body io.Reader = nil
102021	c.urlParams_.Set("alt", alt)
102022	c.urlParams_.Set("prettyPrint", "false")
102023	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy")
102024	urls += "?" + c.urlParams_.Encode()
102025	req, err := http.NewRequest("GET", urls, body)
102026	if err != nil {
102027		return nil, err
102028	}
102029	req.Header = reqHeaders
102030	googleapi.Expand(req.URL, map[string]string{
102031		"project":  c.project,
102032		"zone":     c.zone,
102033		"resource": c.resource,
102034	})
102035	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102036}
102037
102038// Do executes the "compute.nodeGroups.getIamPolicy" call.
102039// Exactly one of *Policy or error will be non-nil. Any non-2xx status
102040// code is an error. Response headers are in either
102041// *Policy.ServerResponse.Header or (if a response was returned at all)
102042// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
102043// check whether the returned error was because http.StatusNotModified
102044// was returned.
102045func (c *NodeGroupsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
102046	gensupport.SetOptions(c.urlParams_, opts...)
102047	res, err := c.doRequest("json")
102048	if res != nil && res.StatusCode == http.StatusNotModified {
102049		if res.Body != nil {
102050			res.Body.Close()
102051		}
102052		return nil, &googleapi.Error{
102053			Code:   res.StatusCode,
102054			Header: res.Header,
102055		}
102056	}
102057	if err != nil {
102058		return nil, err
102059	}
102060	defer googleapi.CloseBody(res)
102061	if err := googleapi.CheckResponse(res); err != nil {
102062		return nil, err
102063	}
102064	ret := &Policy{
102065		ServerResponse: googleapi.ServerResponse{
102066			Header:         res.Header,
102067			HTTPStatusCode: res.StatusCode,
102068		},
102069	}
102070	target := &ret
102071	if err := gensupport.DecodeResponse(target, res); err != nil {
102072		return nil, err
102073	}
102074	return ret, nil
102075	// {
102076	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
102077	//   "httpMethod": "GET",
102078	//   "id": "compute.nodeGroups.getIamPolicy",
102079	//   "parameterOrder": [
102080	//     "project",
102081	//     "zone",
102082	//     "resource"
102083	//   ],
102084	//   "parameters": {
102085	//     "optionsRequestedPolicyVersion": {
102086	//       "description": "Requested IAM Policy version.",
102087	//       "format": "int32",
102088	//       "location": "query",
102089	//       "type": "integer"
102090	//     },
102091	//     "project": {
102092	//       "description": "Project ID for this request.",
102093	//       "location": "path",
102094	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102095	//       "required": true,
102096	//       "type": "string"
102097	//     },
102098	//     "resource": {
102099	//       "description": "Name or id of the resource for this request.",
102100	//       "location": "path",
102101	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
102102	//       "required": true,
102103	//       "type": "string"
102104	//     },
102105	//     "zone": {
102106	//       "description": "The name of the zone for this request.",
102107	//       "location": "path",
102108	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
102109	//       "required": true,
102110	//       "type": "string"
102111	//     }
102112	//   },
102113	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy",
102114	//   "response": {
102115	//     "$ref": "Policy"
102116	//   },
102117	//   "scopes": [
102118	//     "https://www.googleapis.com/auth/cloud-platform",
102119	//     "https://www.googleapis.com/auth/compute",
102120	//     "https://www.googleapis.com/auth/compute.readonly"
102121	//   ]
102122	// }
102123
102124}
102125
102126// method id "compute.nodeGroups.insert":
102127
102128type NodeGroupsInsertCall struct {
102129	s          *Service
102130	project    string
102131	zone       string
102132	nodegroup  *NodeGroup
102133	urlParams_ gensupport.URLParams
102134	ctx_       context.Context
102135	header_    http.Header
102136}
102137
102138// Insert: Creates a NodeGroup resource in the specified project using
102139// the data included in the request.
102140//
102141// - initialNodeCount: Initial count of nodes in the node group.
102142// - project: Project ID for this request.
102143// - zone: The name of the zone for this request.
102144func (r *NodeGroupsService) Insert(project string, zone string, initialNodeCount int64, nodegroup *NodeGroup) *NodeGroupsInsertCall {
102145	c := &NodeGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102146	c.project = project
102147	c.zone = zone
102148	c.urlParams_.Set("initialNodeCount", fmt.Sprint(initialNodeCount))
102149	c.nodegroup = nodegroup
102150	return c
102151}
102152
102153// RequestId sets the optional parameter "requestId": An optional
102154// request ID to identify requests. Specify a unique request ID so that
102155// if you must retry your request, the server will know to ignore the
102156// request if it has already been completed.
102157//
102158// For example, consider a situation where you make an initial request
102159// and the request times out. If you make the request again with the
102160// same request ID, the server can check if original operation with the
102161// same request ID was received, and if so, will ignore the second
102162// request. This prevents clients from accidentally creating duplicate
102163// commitments.
102164//
102165// The request ID must be a valid UUID with the exception that zero UUID
102166// is not supported (00000000-0000-0000-0000-000000000000).
102167func (c *NodeGroupsInsertCall) RequestId(requestId string) *NodeGroupsInsertCall {
102168	c.urlParams_.Set("requestId", requestId)
102169	return c
102170}
102171
102172// Fields allows partial responses to be retrieved. See
102173// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102174// for more information.
102175func (c *NodeGroupsInsertCall) Fields(s ...googleapi.Field) *NodeGroupsInsertCall {
102176	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102177	return c
102178}
102179
102180// Context sets the context to be used in this call's Do method. Any
102181// pending HTTP request will be aborted if the provided context is
102182// canceled.
102183func (c *NodeGroupsInsertCall) Context(ctx context.Context) *NodeGroupsInsertCall {
102184	c.ctx_ = ctx
102185	return c
102186}
102187
102188// Header returns an http.Header that can be modified by the caller to
102189// add HTTP headers to the request.
102190func (c *NodeGroupsInsertCall) Header() http.Header {
102191	if c.header_ == nil {
102192		c.header_ = make(http.Header)
102193	}
102194	return c.header_
102195}
102196
102197func (c *NodeGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
102198	reqHeaders := make(http.Header)
102199	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
102200	for k, v := range c.header_ {
102201		reqHeaders[k] = v
102202	}
102203	reqHeaders.Set("User-Agent", c.s.userAgent())
102204	var body io.Reader = nil
102205	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroup)
102206	if err != nil {
102207		return nil, err
102208	}
102209	reqHeaders.Set("Content-Type", "application/json")
102210	c.urlParams_.Set("alt", alt)
102211	c.urlParams_.Set("prettyPrint", "false")
102212	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups")
102213	urls += "?" + c.urlParams_.Encode()
102214	req, err := http.NewRequest("POST", urls, body)
102215	if err != nil {
102216		return nil, err
102217	}
102218	req.Header = reqHeaders
102219	googleapi.Expand(req.URL, map[string]string{
102220		"project": c.project,
102221		"zone":    c.zone,
102222	})
102223	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102224}
102225
102226// Do executes the "compute.nodeGroups.insert" call.
102227// Exactly one of *Operation or error will be non-nil. Any non-2xx
102228// status code is an error. Response headers are in either
102229// *Operation.ServerResponse.Header or (if a response was returned at
102230// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
102231// to check whether the returned error was because
102232// http.StatusNotModified was returned.
102233func (c *NodeGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
102234	gensupport.SetOptions(c.urlParams_, opts...)
102235	res, err := c.doRequest("json")
102236	if res != nil && res.StatusCode == http.StatusNotModified {
102237		if res.Body != nil {
102238			res.Body.Close()
102239		}
102240		return nil, &googleapi.Error{
102241			Code:   res.StatusCode,
102242			Header: res.Header,
102243		}
102244	}
102245	if err != nil {
102246		return nil, err
102247	}
102248	defer googleapi.CloseBody(res)
102249	if err := googleapi.CheckResponse(res); err != nil {
102250		return nil, err
102251	}
102252	ret := &Operation{
102253		ServerResponse: googleapi.ServerResponse{
102254			Header:         res.Header,
102255			HTTPStatusCode: res.StatusCode,
102256		},
102257	}
102258	target := &ret
102259	if err := gensupport.DecodeResponse(target, res); err != nil {
102260		return nil, err
102261	}
102262	return ret, nil
102263	// {
102264	//   "description": "Creates a NodeGroup resource in the specified project using the data included in the request.",
102265	//   "httpMethod": "POST",
102266	//   "id": "compute.nodeGroups.insert",
102267	//   "parameterOrder": [
102268	//     "project",
102269	//     "zone",
102270	//     "initialNodeCount"
102271	//   ],
102272	//   "parameters": {
102273	//     "initialNodeCount": {
102274	//       "description": "Initial count of nodes in the node group.",
102275	//       "format": "int32",
102276	//       "location": "query",
102277	//       "required": true,
102278	//       "type": "integer"
102279	//     },
102280	//     "project": {
102281	//       "description": "Project ID for this request.",
102282	//       "location": "path",
102283	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102284	//       "required": true,
102285	//       "type": "string"
102286	//     },
102287	//     "requestId": {
102288	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
102289	//       "location": "query",
102290	//       "type": "string"
102291	//     },
102292	//     "zone": {
102293	//       "description": "The name of the zone for this request.",
102294	//       "location": "path",
102295	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
102296	//       "required": true,
102297	//       "type": "string"
102298	//     }
102299	//   },
102300	//   "path": "projects/{project}/zones/{zone}/nodeGroups",
102301	//   "request": {
102302	//     "$ref": "NodeGroup"
102303	//   },
102304	//   "response": {
102305	//     "$ref": "Operation"
102306	//   },
102307	//   "scopes": [
102308	//     "https://www.googleapis.com/auth/cloud-platform",
102309	//     "https://www.googleapis.com/auth/compute"
102310	//   ]
102311	// }
102312
102313}
102314
102315// method id "compute.nodeGroups.list":
102316
102317type NodeGroupsListCall struct {
102318	s            *Service
102319	project      string
102320	zone         string
102321	urlParams_   gensupport.URLParams
102322	ifNoneMatch_ string
102323	ctx_         context.Context
102324	header_      http.Header
102325}
102326
102327// List: Retrieves a list of node groups available to the specified
102328// project. Note: use nodeGroups.listNodes for more details about each
102329// group.
102330//
102331// - project: Project ID for this request.
102332// - zone: The name of the zone for this request.
102333func (r *NodeGroupsService) List(project string, zone string) *NodeGroupsListCall {
102334	c := &NodeGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102335	c.project = project
102336	c.zone = zone
102337	return c
102338}
102339
102340// Filter sets the optional parameter "filter": A filter expression that
102341// filters resources listed in the response. The expression must specify
102342// the field name, a comparison operator, and the value that you want to
102343// use for filtering. The value must be a string, a number, or a
102344// boolean. The comparison operator must be either `=`, `!=`, `>`, or
102345// `<`.
102346//
102347// For example, if you are filtering Compute Engine instances, you can
102348// exclude instances named `example-instance` by specifying `name !=
102349// example-instance`.
102350//
102351// You can also filter nested fields. For example, you could specify
102352// `scheduling.automaticRestart = false` to include instances only if
102353// they are not scheduled for automatic restarts. You can use filtering
102354// on nested fields to filter based on resource labels.
102355//
102356// To filter on multiple expressions, provide each separate expression
102357// within parentheses. For example: ``` (scheduling.automaticRestart =
102358// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
102359// is an `AND` expression. However, you can include `AND` and `OR`
102360// expressions explicitly. For example: ``` (cpuPlatform = "Intel
102361// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
102362// (scheduling.automaticRestart = true) ```
102363func (c *NodeGroupsListCall) Filter(filter string) *NodeGroupsListCall {
102364	c.urlParams_.Set("filter", filter)
102365	return c
102366}
102367
102368// MaxResults sets the optional parameter "maxResults": The maximum
102369// number of results per page that should be returned. If the number of
102370// available results is larger than `maxResults`, Compute Engine returns
102371// a `nextPageToken` that can be used to get the next page of results in
102372// subsequent list requests. Acceptable values are `0` to `500`,
102373// inclusive. (Default: `500`)
102374func (c *NodeGroupsListCall) MaxResults(maxResults int64) *NodeGroupsListCall {
102375	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
102376	return c
102377}
102378
102379// OrderBy sets the optional parameter "orderBy": Sorts list results by
102380// a certain order. By default, results are returned in alphanumerical
102381// order based on the resource name.
102382//
102383// You can also sort results in descending order based on the creation
102384// timestamp using `orderBy="creationTimestamp desc". This sorts
102385// results based on the `creationTimestamp` field in reverse
102386// chronological order (newest result first). Use this to sort resources
102387// like operations so that the newest operation is returned
102388// first.
102389//
102390// Currently, only sorting by `name` or `creationTimestamp desc` is
102391// supported.
102392func (c *NodeGroupsListCall) OrderBy(orderBy string) *NodeGroupsListCall {
102393	c.urlParams_.Set("orderBy", orderBy)
102394	return c
102395}
102396
102397// PageToken sets the optional parameter "pageToken": Specifies a page
102398// token to use. Set `pageToken` to the `nextPageToken` returned by a
102399// previous list request to get the next page of results.
102400func (c *NodeGroupsListCall) PageToken(pageToken string) *NodeGroupsListCall {
102401	c.urlParams_.Set("pageToken", pageToken)
102402	return c
102403}
102404
102405// ReturnPartialSuccess sets the optional parameter
102406// "returnPartialSuccess": Opt-in for partial success behavior which
102407// provides partial results in case of failure. The default value is
102408// false.
102409func (c *NodeGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeGroupsListCall {
102410	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
102411	return c
102412}
102413
102414// Fields allows partial responses to be retrieved. See
102415// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102416// for more information.
102417func (c *NodeGroupsListCall) Fields(s ...googleapi.Field) *NodeGroupsListCall {
102418	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102419	return c
102420}
102421
102422// IfNoneMatch sets the optional parameter which makes the operation
102423// fail if the object's ETag matches the given value. This is useful for
102424// getting updates only after the object has changed since the last
102425// request. Use googleapi.IsNotModified to check whether the response
102426// error from Do is the result of In-None-Match.
102427func (c *NodeGroupsListCall) IfNoneMatch(entityTag string) *NodeGroupsListCall {
102428	c.ifNoneMatch_ = entityTag
102429	return c
102430}
102431
102432// Context sets the context to be used in this call's Do method. Any
102433// pending HTTP request will be aborted if the provided context is
102434// canceled.
102435func (c *NodeGroupsListCall) Context(ctx context.Context) *NodeGroupsListCall {
102436	c.ctx_ = ctx
102437	return c
102438}
102439
102440// Header returns an http.Header that can be modified by the caller to
102441// add HTTP headers to the request.
102442func (c *NodeGroupsListCall) Header() http.Header {
102443	if c.header_ == nil {
102444		c.header_ = make(http.Header)
102445	}
102446	return c.header_
102447}
102448
102449func (c *NodeGroupsListCall) doRequest(alt string) (*http.Response, error) {
102450	reqHeaders := make(http.Header)
102451	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
102452	for k, v := range c.header_ {
102453		reqHeaders[k] = v
102454	}
102455	reqHeaders.Set("User-Agent", c.s.userAgent())
102456	if c.ifNoneMatch_ != "" {
102457		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
102458	}
102459	var body io.Reader = nil
102460	c.urlParams_.Set("alt", alt)
102461	c.urlParams_.Set("prettyPrint", "false")
102462	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups")
102463	urls += "?" + c.urlParams_.Encode()
102464	req, err := http.NewRequest("GET", urls, body)
102465	if err != nil {
102466		return nil, err
102467	}
102468	req.Header = reqHeaders
102469	googleapi.Expand(req.URL, map[string]string{
102470		"project": c.project,
102471		"zone":    c.zone,
102472	})
102473	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102474}
102475
102476// Do executes the "compute.nodeGroups.list" call.
102477// Exactly one of *NodeGroupList or error will be non-nil. Any non-2xx
102478// status code is an error. Response headers are in either
102479// *NodeGroupList.ServerResponse.Header or (if a response was returned
102480// at all) in error.(*googleapi.Error).Header. Use
102481// googleapi.IsNotModified to check whether the returned error was
102482// because http.StatusNotModified was returned.
102483func (c *NodeGroupsListCall) Do(opts ...googleapi.CallOption) (*NodeGroupList, error) {
102484	gensupport.SetOptions(c.urlParams_, opts...)
102485	res, err := c.doRequest("json")
102486	if res != nil && res.StatusCode == http.StatusNotModified {
102487		if res.Body != nil {
102488			res.Body.Close()
102489		}
102490		return nil, &googleapi.Error{
102491			Code:   res.StatusCode,
102492			Header: res.Header,
102493		}
102494	}
102495	if err != nil {
102496		return nil, err
102497	}
102498	defer googleapi.CloseBody(res)
102499	if err := googleapi.CheckResponse(res); err != nil {
102500		return nil, err
102501	}
102502	ret := &NodeGroupList{
102503		ServerResponse: googleapi.ServerResponse{
102504			Header:         res.Header,
102505			HTTPStatusCode: res.StatusCode,
102506		},
102507	}
102508	target := &ret
102509	if err := gensupport.DecodeResponse(target, res); err != nil {
102510		return nil, err
102511	}
102512	return ret, nil
102513	// {
102514	//   "description": "Retrieves a list of node groups available to the specified project. Note: use nodeGroups.listNodes for more details about each group.",
102515	//   "httpMethod": "GET",
102516	//   "id": "compute.nodeGroups.list",
102517	//   "parameterOrder": [
102518	//     "project",
102519	//     "zone"
102520	//   ],
102521	//   "parameters": {
102522	//     "filter": {
102523	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
102524	//       "location": "query",
102525	//       "type": "string"
102526	//     },
102527	//     "maxResults": {
102528	//       "default": "500",
102529	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
102530	//       "format": "uint32",
102531	//       "location": "query",
102532	//       "minimum": "0",
102533	//       "type": "integer"
102534	//     },
102535	//     "orderBy": {
102536	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
102537	//       "location": "query",
102538	//       "type": "string"
102539	//     },
102540	//     "pageToken": {
102541	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
102542	//       "location": "query",
102543	//       "type": "string"
102544	//     },
102545	//     "project": {
102546	//       "description": "Project ID for this request.",
102547	//       "location": "path",
102548	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102549	//       "required": true,
102550	//       "type": "string"
102551	//     },
102552	//     "returnPartialSuccess": {
102553	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
102554	//       "location": "query",
102555	//       "type": "boolean"
102556	//     },
102557	//     "zone": {
102558	//       "description": "The name of the zone for this request.",
102559	//       "location": "path",
102560	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
102561	//       "required": true,
102562	//       "type": "string"
102563	//     }
102564	//   },
102565	//   "path": "projects/{project}/zones/{zone}/nodeGroups",
102566	//   "response": {
102567	//     "$ref": "NodeGroupList"
102568	//   },
102569	//   "scopes": [
102570	//     "https://www.googleapis.com/auth/cloud-platform",
102571	//     "https://www.googleapis.com/auth/compute",
102572	//     "https://www.googleapis.com/auth/compute.readonly"
102573	//   ]
102574	// }
102575
102576}
102577
102578// Pages invokes f for each page of results.
102579// A non-nil error returned from f will halt the iteration.
102580// The provided context supersedes any context provided to the Context method.
102581func (c *NodeGroupsListCall) Pages(ctx context.Context, f func(*NodeGroupList) error) error {
102582	c.ctx_ = ctx
102583	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
102584	for {
102585		x, err := c.Do()
102586		if err != nil {
102587			return err
102588		}
102589		if err := f(x); err != nil {
102590			return err
102591		}
102592		if x.NextPageToken == "" {
102593			return nil
102594		}
102595		c.PageToken(x.NextPageToken)
102596	}
102597}
102598
102599// method id "compute.nodeGroups.listNodes":
102600
102601type NodeGroupsListNodesCall struct {
102602	s          *Service
102603	project    string
102604	zone       string
102605	nodeGroup  string
102606	urlParams_ gensupport.URLParams
102607	ctx_       context.Context
102608	header_    http.Header
102609}
102610
102611// ListNodes: Lists nodes in the node group.
102612//
102613// - nodeGroup: Name of the NodeGroup resource whose nodes you want to
102614//   list.
102615// - project: Project ID for this request.
102616// - zone: The name of the zone for this request.
102617func (r *NodeGroupsService) ListNodes(project string, zone string, nodeGroup string) *NodeGroupsListNodesCall {
102618	c := &NodeGroupsListNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102619	c.project = project
102620	c.zone = zone
102621	c.nodeGroup = nodeGroup
102622	return c
102623}
102624
102625// Filter sets the optional parameter "filter": A filter expression that
102626// filters resources listed in the response. The expression must specify
102627// the field name, a comparison operator, and the value that you want to
102628// use for filtering. The value must be a string, a number, or a
102629// boolean. The comparison operator must be either `=`, `!=`, `>`, or
102630// `<`.
102631//
102632// For example, if you are filtering Compute Engine instances, you can
102633// exclude instances named `example-instance` by specifying `name !=
102634// example-instance`.
102635//
102636// You can also filter nested fields. For example, you could specify
102637// `scheduling.automaticRestart = false` to include instances only if
102638// they are not scheduled for automatic restarts. You can use filtering
102639// on nested fields to filter based on resource labels.
102640//
102641// To filter on multiple expressions, provide each separate expression
102642// within parentheses. For example: ``` (scheduling.automaticRestart =
102643// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
102644// is an `AND` expression. However, you can include `AND` and `OR`
102645// expressions explicitly. For example: ``` (cpuPlatform = "Intel
102646// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
102647// (scheduling.automaticRestart = true) ```
102648func (c *NodeGroupsListNodesCall) Filter(filter string) *NodeGroupsListNodesCall {
102649	c.urlParams_.Set("filter", filter)
102650	return c
102651}
102652
102653// MaxResults sets the optional parameter "maxResults": The maximum
102654// number of results per page that should be returned. If the number of
102655// available results is larger than `maxResults`, Compute Engine returns
102656// a `nextPageToken` that can be used to get the next page of results in
102657// subsequent list requests. Acceptable values are `0` to `500`,
102658// inclusive. (Default: `500`)
102659func (c *NodeGroupsListNodesCall) MaxResults(maxResults int64) *NodeGroupsListNodesCall {
102660	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
102661	return c
102662}
102663
102664// OrderBy sets the optional parameter "orderBy": Sorts list results by
102665// a certain order. By default, results are returned in alphanumerical
102666// order based on the resource name.
102667//
102668// You can also sort results in descending order based on the creation
102669// timestamp using `orderBy="creationTimestamp desc". This sorts
102670// results based on the `creationTimestamp` field in reverse
102671// chronological order (newest result first). Use this to sort resources
102672// like operations so that the newest operation is returned
102673// first.
102674//
102675// Currently, only sorting by `name` or `creationTimestamp desc` is
102676// supported.
102677func (c *NodeGroupsListNodesCall) OrderBy(orderBy string) *NodeGroupsListNodesCall {
102678	c.urlParams_.Set("orderBy", orderBy)
102679	return c
102680}
102681
102682// PageToken sets the optional parameter "pageToken": Specifies a page
102683// token to use. Set `pageToken` to the `nextPageToken` returned by a
102684// previous list request to get the next page of results.
102685func (c *NodeGroupsListNodesCall) PageToken(pageToken string) *NodeGroupsListNodesCall {
102686	c.urlParams_.Set("pageToken", pageToken)
102687	return c
102688}
102689
102690// ReturnPartialSuccess sets the optional parameter
102691// "returnPartialSuccess": Opt-in for partial success behavior which
102692// provides partial results in case of failure. The default value is
102693// false.
102694func (c *NodeGroupsListNodesCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeGroupsListNodesCall {
102695	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
102696	return c
102697}
102698
102699// Fields allows partial responses to be retrieved. See
102700// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102701// for more information.
102702func (c *NodeGroupsListNodesCall) Fields(s ...googleapi.Field) *NodeGroupsListNodesCall {
102703	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102704	return c
102705}
102706
102707// Context sets the context to be used in this call's Do method. Any
102708// pending HTTP request will be aborted if the provided context is
102709// canceled.
102710func (c *NodeGroupsListNodesCall) Context(ctx context.Context) *NodeGroupsListNodesCall {
102711	c.ctx_ = ctx
102712	return c
102713}
102714
102715// Header returns an http.Header that can be modified by the caller to
102716// add HTTP headers to the request.
102717func (c *NodeGroupsListNodesCall) Header() http.Header {
102718	if c.header_ == nil {
102719		c.header_ = make(http.Header)
102720	}
102721	return c.header_
102722}
102723
102724func (c *NodeGroupsListNodesCall) doRequest(alt string) (*http.Response, error) {
102725	reqHeaders := make(http.Header)
102726	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
102727	for k, v := range c.header_ {
102728		reqHeaders[k] = v
102729	}
102730	reqHeaders.Set("User-Agent", c.s.userAgent())
102731	var body io.Reader = nil
102732	c.urlParams_.Set("alt", alt)
102733	c.urlParams_.Set("prettyPrint", "false")
102734	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes")
102735	urls += "?" + c.urlParams_.Encode()
102736	req, err := http.NewRequest("POST", urls, body)
102737	if err != nil {
102738		return nil, err
102739	}
102740	req.Header = reqHeaders
102741	googleapi.Expand(req.URL, map[string]string{
102742		"project":   c.project,
102743		"zone":      c.zone,
102744		"nodeGroup": c.nodeGroup,
102745	})
102746	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102747}
102748
102749// Do executes the "compute.nodeGroups.listNodes" call.
102750// Exactly one of *NodeGroupsListNodes or error will be non-nil. Any
102751// non-2xx status code is an error. Response headers are in either
102752// *NodeGroupsListNodes.ServerResponse.Header or (if a response was
102753// returned at all) in error.(*googleapi.Error).Header. Use
102754// googleapi.IsNotModified to check whether the returned error was
102755// because http.StatusNotModified was returned.
102756func (c *NodeGroupsListNodesCall) Do(opts ...googleapi.CallOption) (*NodeGroupsListNodes, error) {
102757	gensupport.SetOptions(c.urlParams_, opts...)
102758	res, err := c.doRequest("json")
102759	if res != nil && res.StatusCode == http.StatusNotModified {
102760		if res.Body != nil {
102761			res.Body.Close()
102762		}
102763		return nil, &googleapi.Error{
102764			Code:   res.StatusCode,
102765			Header: res.Header,
102766		}
102767	}
102768	if err != nil {
102769		return nil, err
102770	}
102771	defer googleapi.CloseBody(res)
102772	if err := googleapi.CheckResponse(res); err != nil {
102773		return nil, err
102774	}
102775	ret := &NodeGroupsListNodes{
102776		ServerResponse: googleapi.ServerResponse{
102777			Header:         res.Header,
102778			HTTPStatusCode: res.StatusCode,
102779		},
102780	}
102781	target := &ret
102782	if err := gensupport.DecodeResponse(target, res); err != nil {
102783		return nil, err
102784	}
102785	return ret, nil
102786	// {
102787	//   "description": "Lists nodes in the node group.",
102788	//   "httpMethod": "POST",
102789	//   "id": "compute.nodeGroups.listNodes",
102790	//   "parameterOrder": [
102791	//     "project",
102792	//     "zone",
102793	//     "nodeGroup"
102794	//   ],
102795	//   "parameters": {
102796	//     "filter": {
102797	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
102798	//       "location": "query",
102799	//       "type": "string"
102800	//     },
102801	//     "maxResults": {
102802	//       "default": "500",
102803	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
102804	//       "format": "uint32",
102805	//       "location": "query",
102806	//       "minimum": "0",
102807	//       "type": "integer"
102808	//     },
102809	//     "nodeGroup": {
102810	//       "description": "Name of the NodeGroup resource whose nodes you want to list.",
102811	//       "location": "path",
102812	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
102813	//       "required": true,
102814	//       "type": "string"
102815	//     },
102816	//     "orderBy": {
102817	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
102818	//       "location": "query",
102819	//       "type": "string"
102820	//     },
102821	//     "pageToken": {
102822	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
102823	//       "location": "query",
102824	//       "type": "string"
102825	//     },
102826	//     "project": {
102827	//       "description": "Project ID for this request.",
102828	//       "location": "path",
102829	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102830	//       "required": true,
102831	//       "type": "string"
102832	//     },
102833	//     "returnPartialSuccess": {
102834	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
102835	//       "location": "query",
102836	//       "type": "boolean"
102837	//     },
102838	//     "zone": {
102839	//       "description": "The name of the zone for this request.",
102840	//       "location": "path",
102841	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
102842	//       "required": true,
102843	//       "type": "string"
102844	//     }
102845	//   },
102846	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes",
102847	//   "response": {
102848	//     "$ref": "NodeGroupsListNodes"
102849	//   },
102850	//   "scopes": [
102851	//     "https://www.googleapis.com/auth/cloud-platform",
102852	//     "https://www.googleapis.com/auth/compute",
102853	//     "https://www.googleapis.com/auth/compute.readonly"
102854	//   ]
102855	// }
102856
102857}
102858
102859// Pages invokes f for each page of results.
102860// A non-nil error returned from f will halt the iteration.
102861// The provided context supersedes any context provided to the Context method.
102862func (c *NodeGroupsListNodesCall) Pages(ctx context.Context, f func(*NodeGroupsListNodes) error) error {
102863	c.ctx_ = ctx
102864	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
102865	for {
102866		x, err := c.Do()
102867		if err != nil {
102868			return err
102869		}
102870		if err := f(x); err != nil {
102871			return err
102872		}
102873		if x.NextPageToken == "" {
102874			return nil
102875		}
102876		c.PageToken(x.NextPageToken)
102877	}
102878}
102879
102880// method id "compute.nodeGroups.patch":
102881
102882type NodeGroupsPatchCall struct {
102883	s          *Service
102884	project    string
102885	zone       string
102886	nodeGroup  string
102887	nodegroup  *NodeGroup
102888	urlParams_ gensupport.URLParams
102889	ctx_       context.Context
102890	header_    http.Header
102891}
102892
102893// Patch: Updates the specified node group.
102894//
102895// - nodeGroup: Name of the NodeGroup resource to update.
102896// - project: Project ID for this request.
102897// - zone: The name of the zone for this request.
102898func (r *NodeGroupsService) Patch(project string, zone string, nodeGroup string, nodegroup *NodeGroup) *NodeGroupsPatchCall {
102899	c := &NodeGroupsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102900	c.project = project
102901	c.zone = zone
102902	c.nodeGroup = nodeGroup
102903	c.nodegroup = nodegroup
102904	return c
102905}
102906
102907// RequestId sets the optional parameter "requestId": An optional
102908// request ID to identify requests. Specify a unique request ID so that
102909// if you must retry your request, the server will know to ignore the
102910// request if it has already been completed.
102911//
102912// For example, consider a situation where you make an initial request
102913// and the request times out. If you make the request again with the
102914// same request ID, the server can check if original operation with the
102915// same request ID was received, and if so, will ignore the second
102916// request. This prevents clients from accidentally creating duplicate
102917// commitments.
102918//
102919// The request ID must be a valid UUID with the exception that zero UUID
102920// is not supported (00000000-0000-0000-0000-000000000000).
102921func (c *NodeGroupsPatchCall) RequestId(requestId string) *NodeGroupsPatchCall {
102922	c.urlParams_.Set("requestId", requestId)
102923	return c
102924}
102925
102926// Fields allows partial responses to be retrieved. See
102927// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102928// for more information.
102929func (c *NodeGroupsPatchCall) Fields(s ...googleapi.Field) *NodeGroupsPatchCall {
102930	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102931	return c
102932}
102933
102934// Context sets the context to be used in this call's Do method. Any
102935// pending HTTP request will be aborted if the provided context is
102936// canceled.
102937func (c *NodeGroupsPatchCall) Context(ctx context.Context) *NodeGroupsPatchCall {
102938	c.ctx_ = ctx
102939	return c
102940}
102941
102942// Header returns an http.Header that can be modified by the caller to
102943// add HTTP headers to the request.
102944func (c *NodeGroupsPatchCall) Header() http.Header {
102945	if c.header_ == nil {
102946		c.header_ = make(http.Header)
102947	}
102948	return c.header_
102949}
102950
102951func (c *NodeGroupsPatchCall) doRequest(alt string) (*http.Response, error) {
102952	reqHeaders := make(http.Header)
102953	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
102954	for k, v := range c.header_ {
102955		reqHeaders[k] = v
102956	}
102957	reqHeaders.Set("User-Agent", c.s.userAgent())
102958	var body io.Reader = nil
102959	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroup)
102960	if err != nil {
102961		return nil, err
102962	}
102963	reqHeaders.Set("Content-Type", "application/json")
102964	c.urlParams_.Set("alt", alt)
102965	c.urlParams_.Set("prettyPrint", "false")
102966	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}")
102967	urls += "?" + c.urlParams_.Encode()
102968	req, err := http.NewRequest("PATCH", urls, body)
102969	if err != nil {
102970		return nil, err
102971	}
102972	req.Header = reqHeaders
102973	googleapi.Expand(req.URL, map[string]string{
102974		"project":   c.project,
102975		"zone":      c.zone,
102976		"nodeGroup": c.nodeGroup,
102977	})
102978	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102979}
102980
102981// Do executes the "compute.nodeGroups.patch" call.
102982// Exactly one of *Operation or error will be non-nil. Any non-2xx
102983// status code is an error. Response headers are in either
102984// *Operation.ServerResponse.Header or (if a response was returned at
102985// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
102986// to check whether the returned error was because
102987// http.StatusNotModified was returned.
102988func (c *NodeGroupsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
102989	gensupport.SetOptions(c.urlParams_, opts...)
102990	res, err := c.doRequest("json")
102991	if res != nil && res.StatusCode == http.StatusNotModified {
102992		if res.Body != nil {
102993			res.Body.Close()
102994		}
102995		return nil, &googleapi.Error{
102996			Code:   res.StatusCode,
102997			Header: res.Header,
102998		}
102999	}
103000	if err != nil {
103001		return nil, err
103002	}
103003	defer googleapi.CloseBody(res)
103004	if err := googleapi.CheckResponse(res); err != nil {
103005		return nil, err
103006	}
103007	ret := &Operation{
103008		ServerResponse: googleapi.ServerResponse{
103009			Header:         res.Header,
103010			HTTPStatusCode: res.StatusCode,
103011		},
103012	}
103013	target := &ret
103014	if err := gensupport.DecodeResponse(target, res); err != nil {
103015		return nil, err
103016	}
103017	return ret, nil
103018	// {
103019	//   "description": "Updates the specified node group.",
103020	//   "httpMethod": "PATCH",
103021	//   "id": "compute.nodeGroups.patch",
103022	//   "parameterOrder": [
103023	//     "project",
103024	//     "zone",
103025	//     "nodeGroup"
103026	//   ],
103027	//   "parameters": {
103028	//     "nodeGroup": {
103029	//       "description": "Name of the NodeGroup resource to update.",
103030	//       "location": "path",
103031	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
103032	//       "required": true,
103033	//       "type": "string"
103034	//     },
103035	//     "project": {
103036	//       "description": "Project ID for this request.",
103037	//       "location": "path",
103038	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103039	//       "required": true,
103040	//       "type": "string"
103041	//     },
103042	//     "requestId": {
103043	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
103044	//       "location": "query",
103045	//       "type": "string"
103046	//     },
103047	//     "zone": {
103048	//       "description": "The name of the zone for this request.",
103049	//       "location": "path",
103050	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
103051	//       "required": true,
103052	//       "type": "string"
103053	//     }
103054	//   },
103055	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}",
103056	//   "request": {
103057	//     "$ref": "NodeGroup"
103058	//   },
103059	//   "response": {
103060	//     "$ref": "Operation"
103061	//   },
103062	//   "scopes": [
103063	//     "https://www.googleapis.com/auth/cloud-platform",
103064	//     "https://www.googleapis.com/auth/compute"
103065	//   ]
103066	// }
103067
103068}
103069
103070// method id "compute.nodeGroups.setIamPolicy":
103071
103072type NodeGroupsSetIamPolicyCall struct {
103073	s                    *Service
103074	project              string
103075	zone                 string
103076	resource             string
103077	zonesetpolicyrequest *ZoneSetPolicyRequest
103078	urlParams_           gensupport.URLParams
103079	ctx_                 context.Context
103080	header_              http.Header
103081}
103082
103083// SetIamPolicy: Sets the access control policy on the specified
103084// resource. Replaces any existing policy.
103085//
103086// - project: Project ID for this request.
103087// - resource: Name or id of the resource for this request.
103088// - zone: The name of the zone for this request.
103089func (r *NodeGroupsService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *NodeGroupsSetIamPolicyCall {
103090	c := &NodeGroupsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103091	c.project = project
103092	c.zone = zone
103093	c.resource = resource
103094	c.zonesetpolicyrequest = zonesetpolicyrequest
103095	return c
103096}
103097
103098// Fields allows partial responses to be retrieved. See
103099// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103100// for more information.
103101func (c *NodeGroupsSetIamPolicyCall) Fields(s ...googleapi.Field) *NodeGroupsSetIamPolicyCall {
103102	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103103	return c
103104}
103105
103106// Context sets the context to be used in this call's Do method. Any
103107// pending HTTP request will be aborted if the provided context is
103108// canceled.
103109func (c *NodeGroupsSetIamPolicyCall) Context(ctx context.Context) *NodeGroupsSetIamPolicyCall {
103110	c.ctx_ = ctx
103111	return c
103112}
103113
103114// Header returns an http.Header that can be modified by the caller to
103115// add HTTP headers to the request.
103116func (c *NodeGroupsSetIamPolicyCall) Header() http.Header {
103117	if c.header_ == nil {
103118		c.header_ = make(http.Header)
103119	}
103120	return c.header_
103121}
103122
103123func (c *NodeGroupsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
103124	reqHeaders := make(http.Header)
103125	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
103126	for k, v := range c.header_ {
103127		reqHeaders[k] = v
103128	}
103129	reqHeaders.Set("User-Agent", c.s.userAgent())
103130	var body io.Reader = nil
103131	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
103132	if err != nil {
103133		return nil, err
103134	}
103135	reqHeaders.Set("Content-Type", "application/json")
103136	c.urlParams_.Set("alt", alt)
103137	c.urlParams_.Set("prettyPrint", "false")
103138	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy")
103139	urls += "?" + c.urlParams_.Encode()
103140	req, err := http.NewRequest("POST", urls, body)
103141	if err != nil {
103142		return nil, err
103143	}
103144	req.Header = reqHeaders
103145	googleapi.Expand(req.URL, map[string]string{
103146		"project":  c.project,
103147		"zone":     c.zone,
103148		"resource": c.resource,
103149	})
103150	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103151}
103152
103153// Do executes the "compute.nodeGroups.setIamPolicy" call.
103154// Exactly one of *Policy or error will be non-nil. Any non-2xx status
103155// code is an error. Response headers are in either
103156// *Policy.ServerResponse.Header or (if a response was returned at all)
103157// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
103158// check whether the returned error was because http.StatusNotModified
103159// was returned.
103160func (c *NodeGroupsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
103161	gensupport.SetOptions(c.urlParams_, opts...)
103162	res, err := c.doRequest("json")
103163	if res != nil && res.StatusCode == http.StatusNotModified {
103164		if res.Body != nil {
103165			res.Body.Close()
103166		}
103167		return nil, &googleapi.Error{
103168			Code:   res.StatusCode,
103169			Header: res.Header,
103170		}
103171	}
103172	if err != nil {
103173		return nil, err
103174	}
103175	defer googleapi.CloseBody(res)
103176	if err := googleapi.CheckResponse(res); err != nil {
103177		return nil, err
103178	}
103179	ret := &Policy{
103180		ServerResponse: googleapi.ServerResponse{
103181			Header:         res.Header,
103182			HTTPStatusCode: res.StatusCode,
103183		},
103184	}
103185	target := &ret
103186	if err := gensupport.DecodeResponse(target, res); err != nil {
103187		return nil, err
103188	}
103189	return ret, nil
103190	// {
103191	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
103192	//   "httpMethod": "POST",
103193	//   "id": "compute.nodeGroups.setIamPolicy",
103194	//   "parameterOrder": [
103195	//     "project",
103196	//     "zone",
103197	//     "resource"
103198	//   ],
103199	//   "parameters": {
103200	//     "project": {
103201	//       "description": "Project ID for this request.",
103202	//       "location": "path",
103203	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103204	//       "required": true,
103205	//       "type": "string"
103206	//     },
103207	//     "resource": {
103208	//       "description": "Name or id of the resource for this request.",
103209	//       "location": "path",
103210	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
103211	//       "required": true,
103212	//       "type": "string"
103213	//     },
103214	//     "zone": {
103215	//       "description": "The name of the zone for this request.",
103216	//       "location": "path",
103217	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
103218	//       "required": true,
103219	//       "type": "string"
103220	//     }
103221	//   },
103222	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy",
103223	//   "request": {
103224	//     "$ref": "ZoneSetPolicyRequest"
103225	//   },
103226	//   "response": {
103227	//     "$ref": "Policy"
103228	//   },
103229	//   "scopes": [
103230	//     "https://www.googleapis.com/auth/cloud-platform",
103231	//     "https://www.googleapis.com/auth/compute"
103232	//   ]
103233	// }
103234
103235}
103236
103237// method id "compute.nodeGroups.setNodeTemplate":
103238
103239type NodeGroupsSetNodeTemplateCall struct {
103240	s                                *Service
103241	project                          string
103242	zone                             string
103243	nodeGroup                        string
103244	nodegroupssetnodetemplaterequest *NodeGroupsSetNodeTemplateRequest
103245	urlParams_                       gensupport.URLParams
103246	ctx_                             context.Context
103247	header_                          http.Header
103248}
103249
103250// SetNodeTemplate: Updates the node template of the node group.
103251//
103252// - nodeGroup: Name of the NodeGroup resource to update.
103253// - project: Project ID for this request.
103254// - zone: The name of the zone for this request.
103255func (r *NodeGroupsService) SetNodeTemplate(project string, zone string, nodeGroup string, nodegroupssetnodetemplaterequest *NodeGroupsSetNodeTemplateRequest) *NodeGroupsSetNodeTemplateCall {
103256	c := &NodeGroupsSetNodeTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103257	c.project = project
103258	c.zone = zone
103259	c.nodeGroup = nodeGroup
103260	c.nodegroupssetnodetemplaterequest = nodegroupssetnodetemplaterequest
103261	return c
103262}
103263
103264// RequestId sets the optional parameter "requestId": An optional
103265// request ID to identify requests. Specify a unique request ID so that
103266// if you must retry your request, the server will know to ignore the
103267// request if it has already been completed.
103268//
103269// For example, consider a situation where you make an initial request
103270// and the request times out. If you make the request again with the
103271// same request ID, the server can check if original operation with the
103272// same request ID was received, and if so, will ignore the second
103273// request. This prevents clients from accidentally creating duplicate
103274// commitments.
103275//
103276// The request ID must be a valid UUID with the exception that zero UUID
103277// is not supported (00000000-0000-0000-0000-000000000000).
103278func (c *NodeGroupsSetNodeTemplateCall) RequestId(requestId string) *NodeGroupsSetNodeTemplateCall {
103279	c.urlParams_.Set("requestId", requestId)
103280	return c
103281}
103282
103283// Fields allows partial responses to be retrieved. See
103284// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103285// for more information.
103286func (c *NodeGroupsSetNodeTemplateCall) Fields(s ...googleapi.Field) *NodeGroupsSetNodeTemplateCall {
103287	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103288	return c
103289}
103290
103291// Context sets the context to be used in this call's Do method. Any
103292// pending HTTP request will be aborted if the provided context is
103293// canceled.
103294func (c *NodeGroupsSetNodeTemplateCall) Context(ctx context.Context) *NodeGroupsSetNodeTemplateCall {
103295	c.ctx_ = ctx
103296	return c
103297}
103298
103299// Header returns an http.Header that can be modified by the caller to
103300// add HTTP headers to the request.
103301func (c *NodeGroupsSetNodeTemplateCall) Header() http.Header {
103302	if c.header_ == nil {
103303		c.header_ = make(http.Header)
103304	}
103305	return c.header_
103306}
103307
103308func (c *NodeGroupsSetNodeTemplateCall) doRequest(alt string) (*http.Response, error) {
103309	reqHeaders := make(http.Header)
103310	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
103311	for k, v := range c.header_ {
103312		reqHeaders[k] = v
103313	}
103314	reqHeaders.Set("User-Agent", c.s.userAgent())
103315	var body io.Reader = nil
103316	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupssetnodetemplaterequest)
103317	if err != nil {
103318		return nil, err
103319	}
103320	reqHeaders.Set("Content-Type", "application/json")
103321	c.urlParams_.Set("alt", alt)
103322	c.urlParams_.Set("prettyPrint", "false")
103323	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate")
103324	urls += "?" + c.urlParams_.Encode()
103325	req, err := http.NewRequest("POST", urls, body)
103326	if err != nil {
103327		return nil, err
103328	}
103329	req.Header = reqHeaders
103330	googleapi.Expand(req.URL, map[string]string{
103331		"project":   c.project,
103332		"zone":      c.zone,
103333		"nodeGroup": c.nodeGroup,
103334	})
103335	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103336}
103337
103338// Do executes the "compute.nodeGroups.setNodeTemplate" call.
103339// Exactly one of *Operation or error will be non-nil. Any non-2xx
103340// status code is an error. Response headers are in either
103341// *Operation.ServerResponse.Header or (if a response was returned at
103342// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103343// to check whether the returned error was because
103344// http.StatusNotModified was returned.
103345func (c *NodeGroupsSetNodeTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
103346	gensupport.SetOptions(c.urlParams_, opts...)
103347	res, err := c.doRequest("json")
103348	if res != nil && res.StatusCode == http.StatusNotModified {
103349		if res.Body != nil {
103350			res.Body.Close()
103351		}
103352		return nil, &googleapi.Error{
103353			Code:   res.StatusCode,
103354			Header: res.Header,
103355		}
103356	}
103357	if err != nil {
103358		return nil, err
103359	}
103360	defer googleapi.CloseBody(res)
103361	if err := googleapi.CheckResponse(res); err != nil {
103362		return nil, err
103363	}
103364	ret := &Operation{
103365		ServerResponse: googleapi.ServerResponse{
103366			Header:         res.Header,
103367			HTTPStatusCode: res.StatusCode,
103368		},
103369	}
103370	target := &ret
103371	if err := gensupport.DecodeResponse(target, res); err != nil {
103372		return nil, err
103373	}
103374	return ret, nil
103375	// {
103376	//   "description": "Updates the node template of the node group.",
103377	//   "httpMethod": "POST",
103378	//   "id": "compute.nodeGroups.setNodeTemplate",
103379	//   "parameterOrder": [
103380	//     "project",
103381	//     "zone",
103382	//     "nodeGroup"
103383	//   ],
103384	//   "parameters": {
103385	//     "nodeGroup": {
103386	//       "description": "Name of the NodeGroup resource to update.",
103387	//       "location": "path",
103388	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
103389	//       "required": true,
103390	//       "type": "string"
103391	//     },
103392	//     "project": {
103393	//       "description": "Project ID for this request.",
103394	//       "location": "path",
103395	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103396	//       "required": true,
103397	//       "type": "string"
103398	//     },
103399	//     "requestId": {
103400	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
103401	//       "location": "query",
103402	//       "type": "string"
103403	//     },
103404	//     "zone": {
103405	//       "description": "The name of the zone for this request.",
103406	//       "location": "path",
103407	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
103408	//       "required": true,
103409	//       "type": "string"
103410	//     }
103411	//   },
103412	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate",
103413	//   "request": {
103414	//     "$ref": "NodeGroupsSetNodeTemplateRequest"
103415	//   },
103416	//   "response": {
103417	//     "$ref": "Operation"
103418	//   },
103419	//   "scopes": [
103420	//     "https://www.googleapis.com/auth/cloud-platform",
103421	//     "https://www.googleapis.com/auth/compute"
103422	//   ]
103423	// }
103424
103425}
103426
103427// method id "compute.nodeGroups.testIamPermissions":
103428
103429type NodeGroupsTestIamPermissionsCall struct {
103430	s                      *Service
103431	project                string
103432	zone                   string
103433	resource               string
103434	testpermissionsrequest *TestPermissionsRequest
103435	urlParams_             gensupport.URLParams
103436	ctx_                   context.Context
103437	header_                http.Header
103438}
103439
103440// TestIamPermissions: Returns permissions that a caller has on the
103441// specified resource.
103442//
103443// - project: Project ID for this request.
103444// - resource: Name or id of the resource for this request.
103445// - zone: The name of the zone for this request.
103446func (r *NodeGroupsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *NodeGroupsTestIamPermissionsCall {
103447	c := &NodeGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103448	c.project = project
103449	c.zone = zone
103450	c.resource = resource
103451	c.testpermissionsrequest = testpermissionsrequest
103452	return c
103453}
103454
103455// Fields allows partial responses to be retrieved. See
103456// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103457// for more information.
103458func (c *NodeGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *NodeGroupsTestIamPermissionsCall {
103459	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103460	return c
103461}
103462
103463// Context sets the context to be used in this call's Do method. Any
103464// pending HTTP request will be aborted if the provided context is
103465// canceled.
103466func (c *NodeGroupsTestIamPermissionsCall) Context(ctx context.Context) *NodeGroupsTestIamPermissionsCall {
103467	c.ctx_ = ctx
103468	return c
103469}
103470
103471// Header returns an http.Header that can be modified by the caller to
103472// add HTTP headers to the request.
103473func (c *NodeGroupsTestIamPermissionsCall) Header() http.Header {
103474	if c.header_ == nil {
103475		c.header_ = make(http.Header)
103476	}
103477	return c.header_
103478}
103479
103480func (c *NodeGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
103481	reqHeaders := make(http.Header)
103482	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
103483	for k, v := range c.header_ {
103484		reqHeaders[k] = v
103485	}
103486	reqHeaders.Set("User-Agent", c.s.userAgent())
103487	var body io.Reader = nil
103488	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
103489	if err != nil {
103490		return nil, err
103491	}
103492	reqHeaders.Set("Content-Type", "application/json")
103493	c.urlParams_.Set("alt", alt)
103494	c.urlParams_.Set("prettyPrint", "false")
103495	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions")
103496	urls += "?" + c.urlParams_.Encode()
103497	req, err := http.NewRequest("POST", urls, body)
103498	if err != nil {
103499		return nil, err
103500	}
103501	req.Header = reqHeaders
103502	googleapi.Expand(req.URL, map[string]string{
103503		"project":  c.project,
103504		"zone":     c.zone,
103505		"resource": c.resource,
103506	})
103507	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103508}
103509
103510// Do executes the "compute.nodeGroups.testIamPermissions" call.
103511// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
103512// non-2xx status code is an error. Response headers are in either
103513// *TestPermissionsResponse.ServerResponse.Header or (if a response was
103514// returned at all) in error.(*googleapi.Error).Header. Use
103515// googleapi.IsNotModified to check whether the returned error was
103516// because http.StatusNotModified was returned.
103517func (c *NodeGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
103518	gensupport.SetOptions(c.urlParams_, opts...)
103519	res, err := c.doRequest("json")
103520	if res != nil && res.StatusCode == http.StatusNotModified {
103521		if res.Body != nil {
103522			res.Body.Close()
103523		}
103524		return nil, &googleapi.Error{
103525			Code:   res.StatusCode,
103526			Header: res.Header,
103527		}
103528	}
103529	if err != nil {
103530		return nil, err
103531	}
103532	defer googleapi.CloseBody(res)
103533	if err := googleapi.CheckResponse(res); err != nil {
103534		return nil, err
103535	}
103536	ret := &TestPermissionsResponse{
103537		ServerResponse: googleapi.ServerResponse{
103538			Header:         res.Header,
103539			HTTPStatusCode: res.StatusCode,
103540		},
103541	}
103542	target := &ret
103543	if err := gensupport.DecodeResponse(target, res); err != nil {
103544		return nil, err
103545	}
103546	return ret, nil
103547	// {
103548	//   "description": "Returns permissions that a caller has on the specified resource.",
103549	//   "httpMethod": "POST",
103550	//   "id": "compute.nodeGroups.testIamPermissions",
103551	//   "parameterOrder": [
103552	//     "project",
103553	//     "zone",
103554	//     "resource"
103555	//   ],
103556	//   "parameters": {
103557	//     "project": {
103558	//       "description": "Project ID for this request.",
103559	//       "location": "path",
103560	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103561	//       "required": true,
103562	//       "type": "string"
103563	//     },
103564	//     "resource": {
103565	//       "description": "Name or id of the resource for this request.",
103566	//       "location": "path",
103567	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
103568	//       "required": true,
103569	//       "type": "string"
103570	//     },
103571	//     "zone": {
103572	//       "description": "The name of the zone for this request.",
103573	//       "location": "path",
103574	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
103575	//       "required": true,
103576	//       "type": "string"
103577	//     }
103578	//   },
103579	//   "path": "projects/{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions",
103580	//   "request": {
103581	//     "$ref": "TestPermissionsRequest"
103582	//   },
103583	//   "response": {
103584	//     "$ref": "TestPermissionsResponse"
103585	//   },
103586	//   "scopes": [
103587	//     "https://www.googleapis.com/auth/cloud-platform",
103588	//     "https://www.googleapis.com/auth/compute",
103589	//     "https://www.googleapis.com/auth/compute.readonly"
103590	//   ]
103591	// }
103592
103593}
103594
103595// method id "compute.nodeTemplates.aggregatedList":
103596
103597type NodeTemplatesAggregatedListCall struct {
103598	s            *Service
103599	project      string
103600	urlParams_   gensupport.URLParams
103601	ifNoneMatch_ string
103602	ctx_         context.Context
103603	header_      http.Header
103604}
103605
103606// AggregatedList: Retrieves an aggregated list of node templates.
103607//
103608// - project: Project ID for this request.
103609func (r *NodeTemplatesService) AggregatedList(project string) *NodeTemplatesAggregatedListCall {
103610	c := &NodeTemplatesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103611	c.project = project
103612	return c
103613}
103614
103615// Filter sets the optional parameter "filter": A filter expression that
103616// filters resources listed in the response. The expression must specify
103617// the field name, a comparison operator, and the value that you want to
103618// use for filtering. The value must be a string, a number, or a
103619// boolean. The comparison operator must be either `=`, `!=`, `>`, or
103620// `<`.
103621//
103622// For example, if you are filtering Compute Engine instances, you can
103623// exclude instances named `example-instance` by specifying `name !=
103624// example-instance`.
103625//
103626// You can also filter nested fields. For example, you could specify
103627// `scheduling.automaticRestart = false` to include instances only if
103628// they are not scheduled for automatic restarts. You can use filtering
103629// on nested fields to filter based on resource labels.
103630//
103631// To filter on multiple expressions, provide each separate expression
103632// within parentheses. For example: ``` (scheduling.automaticRestart =
103633// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
103634// is an `AND` expression. However, you can include `AND` and `OR`
103635// expressions explicitly. For example: ``` (cpuPlatform = "Intel
103636// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
103637// (scheduling.automaticRestart = true) ```
103638func (c *NodeTemplatesAggregatedListCall) Filter(filter string) *NodeTemplatesAggregatedListCall {
103639	c.urlParams_.Set("filter", filter)
103640	return c
103641}
103642
103643// IncludeAllScopes sets the optional parameter "includeAllScopes":
103644// Indicates whether every visible scope for each scope type (zone,
103645// region, global) should be included in the response. For new resource
103646// types added after this field, the flag has no effect as new resource
103647// types will always include every visible scope for each scope type in
103648// response. For resource types which predate this field, if this flag
103649// is omitted or false, only scopes of the scope types where the
103650// resource type is expected to be found will be included.
103651func (c *NodeTemplatesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NodeTemplatesAggregatedListCall {
103652	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
103653	return c
103654}
103655
103656// MaxResults sets the optional parameter "maxResults": The maximum
103657// number of results per page that should be returned. If the number of
103658// available results is larger than `maxResults`, Compute Engine returns
103659// a `nextPageToken` that can be used to get the next page of results in
103660// subsequent list requests. Acceptable values are `0` to `500`,
103661// inclusive. (Default: `500`)
103662func (c *NodeTemplatesAggregatedListCall) MaxResults(maxResults int64) *NodeTemplatesAggregatedListCall {
103663	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
103664	return c
103665}
103666
103667// OrderBy sets the optional parameter "orderBy": Sorts list results by
103668// a certain order. By default, results are returned in alphanumerical
103669// order based on the resource name.
103670//
103671// You can also sort results in descending order based on the creation
103672// timestamp using `orderBy="creationTimestamp desc". This sorts
103673// results based on the `creationTimestamp` field in reverse
103674// chronological order (newest result first). Use this to sort resources
103675// like operations so that the newest operation is returned
103676// first.
103677//
103678// Currently, only sorting by `name` or `creationTimestamp desc` is
103679// supported.
103680func (c *NodeTemplatesAggregatedListCall) OrderBy(orderBy string) *NodeTemplatesAggregatedListCall {
103681	c.urlParams_.Set("orderBy", orderBy)
103682	return c
103683}
103684
103685// PageToken sets the optional parameter "pageToken": Specifies a page
103686// token to use. Set `pageToken` to the `nextPageToken` returned by a
103687// previous list request to get the next page of results.
103688func (c *NodeTemplatesAggregatedListCall) PageToken(pageToken string) *NodeTemplatesAggregatedListCall {
103689	c.urlParams_.Set("pageToken", pageToken)
103690	return c
103691}
103692
103693// ReturnPartialSuccess sets the optional parameter
103694// "returnPartialSuccess": Opt-in for partial success behavior which
103695// provides partial results in case of failure. The default value is
103696// false.
103697func (c *NodeTemplatesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeTemplatesAggregatedListCall {
103698	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
103699	return c
103700}
103701
103702// Fields allows partial responses to be retrieved. See
103703// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103704// for more information.
103705func (c *NodeTemplatesAggregatedListCall) Fields(s ...googleapi.Field) *NodeTemplatesAggregatedListCall {
103706	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103707	return c
103708}
103709
103710// IfNoneMatch sets the optional parameter which makes the operation
103711// fail if the object's ETag matches the given value. This is useful for
103712// getting updates only after the object has changed since the last
103713// request. Use googleapi.IsNotModified to check whether the response
103714// error from Do is the result of In-None-Match.
103715func (c *NodeTemplatesAggregatedListCall) IfNoneMatch(entityTag string) *NodeTemplatesAggregatedListCall {
103716	c.ifNoneMatch_ = entityTag
103717	return c
103718}
103719
103720// Context sets the context to be used in this call's Do method. Any
103721// pending HTTP request will be aborted if the provided context is
103722// canceled.
103723func (c *NodeTemplatesAggregatedListCall) Context(ctx context.Context) *NodeTemplatesAggregatedListCall {
103724	c.ctx_ = ctx
103725	return c
103726}
103727
103728// Header returns an http.Header that can be modified by the caller to
103729// add HTTP headers to the request.
103730func (c *NodeTemplatesAggregatedListCall) Header() http.Header {
103731	if c.header_ == nil {
103732		c.header_ = make(http.Header)
103733	}
103734	return c.header_
103735}
103736
103737func (c *NodeTemplatesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
103738	reqHeaders := make(http.Header)
103739	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
103740	for k, v := range c.header_ {
103741		reqHeaders[k] = v
103742	}
103743	reqHeaders.Set("User-Agent", c.s.userAgent())
103744	if c.ifNoneMatch_ != "" {
103745		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
103746	}
103747	var body io.Reader = nil
103748	c.urlParams_.Set("alt", alt)
103749	c.urlParams_.Set("prettyPrint", "false")
103750	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/nodeTemplates")
103751	urls += "?" + c.urlParams_.Encode()
103752	req, err := http.NewRequest("GET", urls, body)
103753	if err != nil {
103754		return nil, err
103755	}
103756	req.Header = reqHeaders
103757	googleapi.Expand(req.URL, map[string]string{
103758		"project": c.project,
103759	})
103760	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103761}
103762
103763// Do executes the "compute.nodeTemplates.aggregatedList" call.
103764// Exactly one of *NodeTemplateAggregatedList or error will be non-nil.
103765// Any non-2xx status code is an error. Response headers are in either
103766// *NodeTemplateAggregatedList.ServerResponse.Header or (if a response
103767// was returned at all) in error.(*googleapi.Error).Header. Use
103768// googleapi.IsNotModified to check whether the returned error was
103769// because http.StatusNotModified was returned.
103770func (c *NodeTemplatesAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeTemplateAggregatedList, error) {
103771	gensupport.SetOptions(c.urlParams_, opts...)
103772	res, err := c.doRequest("json")
103773	if res != nil && res.StatusCode == http.StatusNotModified {
103774		if res.Body != nil {
103775			res.Body.Close()
103776		}
103777		return nil, &googleapi.Error{
103778			Code:   res.StatusCode,
103779			Header: res.Header,
103780		}
103781	}
103782	if err != nil {
103783		return nil, err
103784	}
103785	defer googleapi.CloseBody(res)
103786	if err := googleapi.CheckResponse(res); err != nil {
103787		return nil, err
103788	}
103789	ret := &NodeTemplateAggregatedList{
103790		ServerResponse: googleapi.ServerResponse{
103791			Header:         res.Header,
103792			HTTPStatusCode: res.StatusCode,
103793		},
103794	}
103795	target := &ret
103796	if err := gensupport.DecodeResponse(target, res); err != nil {
103797		return nil, err
103798	}
103799	return ret, nil
103800	// {
103801	//   "description": "Retrieves an aggregated list of node templates.",
103802	//   "httpMethod": "GET",
103803	//   "id": "compute.nodeTemplates.aggregatedList",
103804	//   "parameterOrder": [
103805	//     "project"
103806	//   ],
103807	//   "parameters": {
103808	//     "filter": {
103809	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
103810	//       "location": "query",
103811	//       "type": "string"
103812	//     },
103813	//     "includeAllScopes": {
103814	//       "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.",
103815	//       "location": "query",
103816	//       "type": "boolean"
103817	//     },
103818	//     "maxResults": {
103819	//       "default": "500",
103820	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
103821	//       "format": "uint32",
103822	//       "location": "query",
103823	//       "minimum": "0",
103824	//       "type": "integer"
103825	//     },
103826	//     "orderBy": {
103827	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
103828	//       "location": "query",
103829	//       "type": "string"
103830	//     },
103831	//     "pageToken": {
103832	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
103833	//       "location": "query",
103834	//       "type": "string"
103835	//     },
103836	//     "project": {
103837	//       "description": "Project ID for this request.",
103838	//       "location": "path",
103839	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103840	//       "required": true,
103841	//       "type": "string"
103842	//     },
103843	//     "returnPartialSuccess": {
103844	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
103845	//       "location": "query",
103846	//       "type": "boolean"
103847	//     }
103848	//   },
103849	//   "path": "projects/{project}/aggregated/nodeTemplates",
103850	//   "response": {
103851	//     "$ref": "NodeTemplateAggregatedList"
103852	//   },
103853	//   "scopes": [
103854	//     "https://www.googleapis.com/auth/cloud-platform",
103855	//     "https://www.googleapis.com/auth/compute",
103856	//     "https://www.googleapis.com/auth/compute.readonly"
103857	//   ]
103858	// }
103859
103860}
103861
103862// Pages invokes f for each page of results.
103863// A non-nil error returned from f will halt the iteration.
103864// The provided context supersedes any context provided to the Context method.
103865func (c *NodeTemplatesAggregatedListCall) Pages(ctx context.Context, f func(*NodeTemplateAggregatedList) error) error {
103866	c.ctx_ = ctx
103867	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
103868	for {
103869		x, err := c.Do()
103870		if err != nil {
103871			return err
103872		}
103873		if err := f(x); err != nil {
103874			return err
103875		}
103876		if x.NextPageToken == "" {
103877			return nil
103878		}
103879		c.PageToken(x.NextPageToken)
103880	}
103881}
103882
103883// method id "compute.nodeTemplates.delete":
103884
103885type NodeTemplatesDeleteCall struct {
103886	s            *Service
103887	project      string
103888	region       string
103889	nodeTemplate string
103890	urlParams_   gensupport.URLParams
103891	ctx_         context.Context
103892	header_      http.Header
103893}
103894
103895// Delete: Deletes the specified NodeTemplate resource.
103896//
103897// - nodeTemplate: Name of the NodeTemplate resource to delete.
103898// - project: Project ID for this request.
103899// - region: The name of the region for this request.
103900func (r *NodeTemplatesService) Delete(project string, region string, nodeTemplate string) *NodeTemplatesDeleteCall {
103901	c := &NodeTemplatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103902	c.project = project
103903	c.region = region
103904	c.nodeTemplate = nodeTemplate
103905	return c
103906}
103907
103908// RequestId sets the optional parameter "requestId": An optional
103909// request ID to identify requests. Specify a unique request ID so that
103910// if you must retry your request, the server will know to ignore the
103911// request if it has already been completed.
103912//
103913// For example, consider a situation where you make an initial request
103914// and the request times out. If you make the request again with the
103915// same request ID, the server can check if original operation with the
103916// same request ID was received, and if so, will ignore the second
103917// request. This prevents clients from accidentally creating duplicate
103918// commitments.
103919//
103920// The request ID must be a valid UUID with the exception that zero UUID
103921// is not supported (00000000-0000-0000-0000-000000000000).
103922func (c *NodeTemplatesDeleteCall) RequestId(requestId string) *NodeTemplatesDeleteCall {
103923	c.urlParams_.Set("requestId", requestId)
103924	return c
103925}
103926
103927// Fields allows partial responses to be retrieved. See
103928// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103929// for more information.
103930func (c *NodeTemplatesDeleteCall) Fields(s ...googleapi.Field) *NodeTemplatesDeleteCall {
103931	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103932	return c
103933}
103934
103935// Context sets the context to be used in this call's Do method. Any
103936// pending HTTP request will be aborted if the provided context is
103937// canceled.
103938func (c *NodeTemplatesDeleteCall) Context(ctx context.Context) *NodeTemplatesDeleteCall {
103939	c.ctx_ = ctx
103940	return c
103941}
103942
103943// Header returns an http.Header that can be modified by the caller to
103944// add HTTP headers to the request.
103945func (c *NodeTemplatesDeleteCall) Header() http.Header {
103946	if c.header_ == nil {
103947		c.header_ = make(http.Header)
103948	}
103949	return c.header_
103950}
103951
103952func (c *NodeTemplatesDeleteCall) doRequest(alt string) (*http.Response, error) {
103953	reqHeaders := make(http.Header)
103954	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
103955	for k, v := range c.header_ {
103956		reqHeaders[k] = v
103957	}
103958	reqHeaders.Set("User-Agent", c.s.userAgent())
103959	var body io.Reader = nil
103960	c.urlParams_.Set("alt", alt)
103961	c.urlParams_.Set("prettyPrint", "false")
103962	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}")
103963	urls += "?" + c.urlParams_.Encode()
103964	req, err := http.NewRequest("DELETE", urls, body)
103965	if err != nil {
103966		return nil, err
103967	}
103968	req.Header = reqHeaders
103969	googleapi.Expand(req.URL, map[string]string{
103970		"project":      c.project,
103971		"region":       c.region,
103972		"nodeTemplate": c.nodeTemplate,
103973	})
103974	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103975}
103976
103977// Do executes the "compute.nodeTemplates.delete" call.
103978// Exactly one of *Operation or error will be non-nil. Any non-2xx
103979// status code is an error. Response headers are in either
103980// *Operation.ServerResponse.Header or (if a response was returned at
103981// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103982// to check whether the returned error was because
103983// http.StatusNotModified was returned.
103984func (c *NodeTemplatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
103985	gensupport.SetOptions(c.urlParams_, opts...)
103986	res, err := c.doRequest("json")
103987	if res != nil && res.StatusCode == http.StatusNotModified {
103988		if res.Body != nil {
103989			res.Body.Close()
103990		}
103991		return nil, &googleapi.Error{
103992			Code:   res.StatusCode,
103993			Header: res.Header,
103994		}
103995	}
103996	if err != nil {
103997		return nil, err
103998	}
103999	defer googleapi.CloseBody(res)
104000	if err := googleapi.CheckResponse(res); err != nil {
104001		return nil, err
104002	}
104003	ret := &Operation{
104004		ServerResponse: googleapi.ServerResponse{
104005			Header:         res.Header,
104006			HTTPStatusCode: res.StatusCode,
104007		},
104008	}
104009	target := &ret
104010	if err := gensupport.DecodeResponse(target, res); err != nil {
104011		return nil, err
104012	}
104013	return ret, nil
104014	// {
104015	//   "description": "Deletes the specified NodeTemplate resource.",
104016	//   "httpMethod": "DELETE",
104017	//   "id": "compute.nodeTemplates.delete",
104018	//   "parameterOrder": [
104019	//     "project",
104020	//     "region",
104021	//     "nodeTemplate"
104022	//   ],
104023	//   "parameters": {
104024	//     "nodeTemplate": {
104025	//       "description": "Name of the NodeTemplate resource to delete.",
104026	//       "location": "path",
104027	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
104028	//       "required": true,
104029	//       "type": "string"
104030	//     },
104031	//     "project": {
104032	//       "description": "Project ID for this request.",
104033	//       "location": "path",
104034	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104035	//       "required": true,
104036	//       "type": "string"
104037	//     },
104038	//     "region": {
104039	//       "description": "The name of the region for this request.",
104040	//       "location": "path",
104041	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
104042	//       "required": true,
104043	//       "type": "string"
104044	//     },
104045	//     "requestId": {
104046	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
104047	//       "location": "query",
104048	//       "type": "string"
104049	//     }
104050	//   },
104051	//   "path": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}",
104052	//   "response": {
104053	//     "$ref": "Operation"
104054	//   },
104055	//   "scopes": [
104056	//     "https://www.googleapis.com/auth/cloud-platform",
104057	//     "https://www.googleapis.com/auth/compute"
104058	//   ]
104059	// }
104060
104061}
104062
104063// method id "compute.nodeTemplates.get":
104064
104065type NodeTemplatesGetCall struct {
104066	s            *Service
104067	project      string
104068	region       string
104069	nodeTemplate string
104070	urlParams_   gensupport.URLParams
104071	ifNoneMatch_ string
104072	ctx_         context.Context
104073	header_      http.Header
104074}
104075
104076// Get: Returns the specified node template. Gets a list of available
104077// node templates by making a list() request.
104078//
104079// - nodeTemplate: Name of the node template to return.
104080// - project: Project ID for this request.
104081// - region: The name of the region for this request.
104082func (r *NodeTemplatesService) Get(project string, region string, nodeTemplate string) *NodeTemplatesGetCall {
104083	c := &NodeTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104084	c.project = project
104085	c.region = region
104086	c.nodeTemplate = nodeTemplate
104087	return c
104088}
104089
104090// Fields allows partial responses to be retrieved. See
104091// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104092// for more information.
104093func (c *NodeTemplatesGetCall) Fields(s ...googleapi.Field) *NodeTemplatesGetCall {
104094	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104095	return c
104096}
104097
104098// IfNoneMatch sets the optional parameter which makes the operation
104099// fail if the object's ETag matches the given value. This is useful for
104100// getting updates only after the object has changed since the last
104101// request. Use googleapi.IsNotModified to check whether the response
104102// error from Do is the result of In-None-Match.
104103func (c *NodeTemplatesGetCall) IfNoneMatch(entityTag string) *NodeTemplatesGetCall {
104104	c.ifNoneMatch_ = entityTag
104105	return c
104106}
104107
104108// Context sets the context to be used in this call's Do method. Any
104109// pending HTTP request will be aborted if the provided context is
104110// canceled.
104111func (c *NodeTemplatesGetCall) Context(ctx context.Context) *NodeTemplatesGetCall {
104112	c.ctx_ = ctx
104113	return c
104114}
104115
104116// Header returns an http.Header that can be modified by the caller to
104117// add HTTP headers to the request.
104118func (c *NodeTemplatesGetCall) Header() http.Header {
104119	if c.header_ == nil {
104120		c.header_ = make(http.Header)
104121	}
104122	return c.header_
104123}
104124
104125func (c *NodeTemplatesGetCall) doRequest(alt string) (*http.Response, error) {
104126	reqHeaders := make(http.Header)
104127	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
104128	for k, v := range c.header_ {
104129		reqHeaders[k] = v
104130	}
104131	reqHeaders.Set("User-Agent", c.s.userAgent())
104132	if c.ifNoneMatch_ != "" {
104133		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
104134	}
104135	var body io.Reader = nil
104136	c.urlParams_.Set("alt", alt)
104137	c.urlParams_.Set("prettyPrint", "false")
104138	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}")
104139	urls += "?" + c.urlParams_.Encode()
104140	req, err := http.NewRequest("GET", urls, body)
104141	if err != nil {
104142		return nil, err
104143	}
104144	req.Header = reqHeaders
104145	googleapi.Expand(req.URL, map[string]string{
104146		"project":      c.project,
104147		"region":       c.region,
104148		"nodeTemplate": c.nodeTemplate,
104149	})
104150	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104151}
104152
104153// Do executes the "compute.nodeTemplates.get" call.
104154// Exactly one of *NodeTemplate or error will be non-nil. Any non-2xx
104155// status code is an error. Response headers are in either
104156// *NodeTemplate.ServerResponse.Header or (if a response was returned at
104157// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
104158// to check whether the returned error was because
104159// http.StatusNotModified was returned.
104160func (c *NodeTemplatesGetCall) Do(opts ...googleapi.CallOption) (*NodeTemplate, error) {
104161	gensupport.SetOptions(c.urlParams_, opts...)
104162	res, err := c.doRequest("json")
104163	if res != nil && res.StatusCode == http.StatusNotModified {
104164		if res.Body != nil {
104165			res.Body.Close()
104166		}
104167		return nil, &googleapi.Error{
104168			Code:   res.StatusCode,
104169			Header: res.Header,
104170		}
104171	}
104172	if err != nil {
104173		return nil, err
104174	}
104175	defer googleapi.CloseBody(res)
104176	if err := googleapi.CheckResponse(res); err != nil {
104177		return nil, err
104178	}
104179	ret := &NodeTemplate{
104180		ServerResponse: googleapi.ServerResponse{
104181			Header:         res.Header,
104182			HTTPStatusCode: res.StatusCode,
104183		},
104184	}
104185	target := &ret
104186	if err := gensupport.DecodeResponse(target, res); err != nil {
104187		return nil, err
104188	}
104189	return ret, nil
104190	// {
104191	//   "description": "Returns the specified node template. Gets a list of available node templates by making a list() request.",
104192	//   "httpMethod": "GET",
104193	//   "id": "compute.nodeTemplates.get",
104194	//   "parameterOrder": [
104195	//     "project",
104196	//     "region",
104197	//     "nodeTemplate"
104198	//   ],
104199	//   "parameters": {
104200	//     "nodeTemplate": {
104201	//       "description": "Name of the node template to return.",
104202	//       "location": "path",
104203	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
104204	//       "required": true,
104205	//       "type": "string"
104206	//     },
104207	//     "project": {
104208	//       "description": "Project ID for this request.",
104209	//       "location": "path",
104210	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104211	//       "required": true,
104212	//       "type": "string"
104213	//     },
104214	//     "region": {
104215	//       "description": "The name of the region for this request.",
104216	//       "location": "path",
104217	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
104218	//       "required": true,
104219	//       "type": "string"
104220	//     }
104221	//   },
104222	//   "path": "projects/{project}/regions/{region}/nodeTemplates/{nodeTemplate}",
104223	//   "response": {
104224	//     "$ref": "NodeTemplate"
104225	//   },
104226	//   "scopes": [
104227	//     "https://www.googleapis.com/auth/cloud-platform",
104228	//     "https://www.googleapis.com/auth/compute",
104229	//     "https://www.googleapis.com/auth/compute.readonly"
104230	//   ]
104231	// }
104232
104233}
104234
104235// method id "compute.nodeTemplates.getIamPolicy":
104236
104237type NodeTemplatesGetIamPolicyCall struct {
104238	s            *Service
104239	project      string
104240	region       string
104241	resource     string
104242	urlParams_   gensupport.URLParams
104243	ifNoneMatch_ string
104244	ctx_         context.Context
104245	header_      http.Header
104246}
104247
104248// GetIamPolicy: Gets the access control policy for a resource. May be
104249// empty if no such policy or resource exists.
104250//
104251// - project: Project ID for this request.
104252// - region: The name of the region for this request.
104253// - resource: Name or id of the resource for this request.
104254func (r *NodeTemplatesService) GetIamPolicy(project string, region string, resource string) *NodeTemplatesGetIamPolicyCall {
104255	c := &NodeTemplatesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104256	c.project = project
104257	c.region = region
104258	c.resource = resource
104259	return c
104260}
104261
104262// OptionsRequestedPolicyVersion sets the optional parameter
104263// "optionsRequestedPolicyVersion": Requested IAM Policy version.
104264func (c *NodeTemplatesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *NodeTemplatesGetIamPolicyCall {
104265	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
104266	return c
104267}
104268
104269// Fields allows partial responses to be retrieved. See
104270// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104271// for more information.
104272func (c *NodeTemplatesGetIamPolicyCall) Fields(s ...googleapi.Field) *NodeTemplatesGetIamPolicyCall {
104273	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104274	return c
104275}
104276
104277// IfNoneMatch sets the optional parameter which makes the operation
104278// fail if the object's ETag matches the given value. This is useful for
104279// getting updates only after the object has changed since the last
104280// request. Use googleapi.IsNotModified to check whether the response
104281// error from Do is the result of In-None-Match.
104282func (c *NodeTemplatesGetIamPolicyCall) IfNoneMatch(entityTag string) *NodeTemplatesGetIamPolicyCall {
104283	c.ifNoneMatch_ = entityTag
104284	return c
104285}
104286
104287// Context sets the context to be used in this call's Do method. Any
104288// pending HTTP request will be aborted if the provided context is
104289// canceled.
104290func (c *NodeTemplatesGetIamPolicyCall) Context(ctx context.Context) *NodeTemplatesGetIamPolicyCall {
104291	c.ctx_ = ctx
104292	return c
104293}
104294
104295// Header returns an http.Header that can be modified by the caller to
104296// add HTTP headers to the request.
104297func (c *NodeTemplatesGetIamPolicyCall) Header() http.Header {
104298	if c.header_ == nil {
104299		c.header_ = make(http.Header)
104300	}
104301	return c.header_
104302}
104303
104304func (c *NodeTemplatesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
104305	reqHeaders := make(http.Header)
104306	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
104307	for k, v := range c.header_ {
104308		reqHeaders[k] = v
104309	}
104310	reqHeaders.Set("User-Agent", c.s.userAgent())
104311	if c.ifNoneMatch_ != "" {
104312		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
104313	}
104314	var body io.Reader = nil
104315	c.urlParams_.Set("alt", alt)
104316	c.urlParams_.Set("prettyPrint", "false")
104317	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy")
104318	urls += "?" + c.urlParams_.Encode()
104319	req, err := http.NewRequest("GET", urls, body)
104320	if err != nil {
104321		return nil, err
104322	}
104323	req.Header = reqHeaders
104324	googleapi.Expand(req.URL, map[string]string{
104325		"project":  c.project,
104326		"region":   c.region,
104327		"resource": c.resource,
104328	})
104329	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104330}
104331
104332// Do executes the "compute.nodeTemplates.getIamPolicy" call.
104333// Exactly one of *Policy or error will be non-nil. Any non-2xx status
104334// code is an error. Response headers are in either
104335// *Policy.ServerResponse.Header or (if a response was returned at all)
104336// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
104337// check whether the returned error was because http.StatusNotModified
104338// was returned.
104339func (c *NodeTemplatesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
104340	gensupport.SetOptions(c.urlParams_, opts...)
104341	res, err := c.doRequest("json")
104342	if res != nil && res.StatusCode == http.StatusNotModified {
104343		if res.Body != nil {
104344			res.Body.Close()
104345		}
104346		return nil, &googleapi.Error{
104347			Code:   res.StatusCode,
104348			Header: res.Header,
104349		}
104350	}
104351	if err != nil {
104352		return nil, err
104353	}
104354	defer googleapi.CloseBody(res)
104355	if err := googleapi.CheckResponse(res); err != nil {
104356		return nil, err
104357	}
104358	ret := &Policy{
104359		ServerResponse: googleapi.ServerResponse{
104360			Header:         res.Header,
104361			HTTPStatusCode: res.StatusCode,
104362		},
104363	}
104364	target := &ret
104365	if err := gensupport.DecodeResponse(target, res); err != nil {
104366		return nil, err
104367	}
104368	return ret, nil
104369	// {
104370	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
104371	//   "httpMethod": "GET",
104372	//   "id": "compute.nodeTemplates.getIamPolicy",
104373	//   "parameterOrder": [
104374	//     "project",
104375	//     "region",
104376	//     "resource"
104377	//   ],
104378	//   "parameters": {
104379	//     "optionsRequestedPolicyVersion": {
104380	//       "description": "Requested IAM Policy version.",
104381	//       "format": "int32",
104382	//       "location": "query",
104383	//       "type": "integer"
104384	//     },
104385	//     "project": {
104386	//       "description": "Project ID for this request.",
104387	//       "location": "path",
104388	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104389	//       "required": true,
104390	//       "type": "string"
104391	//     },
104392	//     "region": {
104393	//       "description": "The name of the region for this request.",
104394	//       "location": "path",
104395	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
104396	//       "required": true,
104397	//       "type": "string"
104398	//     },
104399	//     "resource": {
104400	//       "description": "Name or id of the resource for this request.",
104401	//       "location": "path",
104402	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
104403	//       "required": true,
104404	//       "type": "string"
104405	//     }
104406	//   },
104407	//   "path": "projects/{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy",
104408	//   "response": {
104409	//     "$ref": "Policy"
104410	//   },
104411	//   "scopes": [
104412	//     "https://www.googleapis.com/auth/cloud-platform",
104413	//     "https://www.googleapis.com/auth/compute",
104414	//     "https://www.googleapis.com/auth/compute.readonly"
104415	//   ]
104416	// }
104417
104418}
104419
104420// method id "compute.nodeTemplates.insert":
104421
104422type NodeTemplatesInsertCall struct {
104423	s            *Service
104424	project      string
104425	region       string
104426	nodetemplate *NodeTemplate
104427	urlParams_   gensupport.URLParams
104428	ctx_         context.Context
104429	header_      http.Header
104430}
104431
104432// Insert: Creates a NodeTemplate resource in the specified project
104433// using the data included in the request.
104434//
104435// - project: Project ID for this request.
104436// - region: The name of the region for this request.
104437func (r *NodeTemplatesService) Insert(project string, region string, nodetemplate *NodeTemplate) *NodeTemplatesInsertCall {
104438	c := &NodeTemplatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104439	c.project = project
104440	c.region = region
104441	c.nodetemplate = nodetemplate
104442	return c
104443}
104444
104445// RequestId sets the optional parameter "requestId": An optional
104446// request ID to identify requests. Specify a unique request ID so that
104447// if you must retry your request, the server will know to ignore the
104448// request if it has already been completed.
104449//
104450// For example, consider a situation where you make an initial request
104451// and the request times out. If you make the request again with the
104452// same request ID, the server can check if original operation with the
104453// same request ID was received, and if so, will ignore the second
104454// request. This prevents clients from accidentally creating duplicate
104455// commitments.
104456//
104457// The request ID must be a valid UUID with the exception that zero UUID
104458// is not supported (00000000-0000-0000-0000-000000000000).
104459func (c *NodeTemplatesInsertCall) RequestId(requestId string) *NodeTemplatesInsertCall {
104460	c.urlParams_.Set("requestId", requestId)
104461	return c
104462}
104463
104464// Fields allows partial responses to be retrieved. See
104465// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104466// for more information.
104467func (c *NodeTemplatesInsertCall) Fields(s ...googleapi.Field) *NodeTemplatesInsertCall {
104468	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104469	return c
104470}
104471
104472// Context sets the context to be used in this call's Do method. Any
104473// pending HTTP request will be aborted if the provided context is
104474// canceled.
104475func (c *NodeTemplatesInsertCall) Context(ctx context.Context) *NodeTemplatesInsertCall {
104476	c.ctx_ = ctx
104477	return c
104478}
104479
104480// Header returns an http.Header that can be modified by the caller to
104481// add HTTP headers to the request.
104482func (c *NodeTemplatesInsertCall) Header() http.Header {
104483	if c.header_ == nil {
104484		c.header_ = make(http.Header)
104485	}
104486	return c.header_
104487}
104488
104489func (c *NodeTemplatesInsertCall) doRequest(alt string) (*http.Response, error) {
104490	reqHeaders := make(http.Header)
104491	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
104492	for k, v := range c.header_ {
104493		reqHeaders[k] = v
104494	}
104495	reqHeaders.Set("User-Agent", c.s.userAgent())
104496	var body io.Reader = nil
104497	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodetemplate)
104498	if err != nil {
104499		return nil, err
104500	}
104501	reqHeaders.Set("Content-Type", "application/json")
104502	c.urlParams_.Set("alt", alt)
104503	c.urlParams_.Set("prettyPrint", "false")
104504	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates")
104505	urls += "?" + c.urlParams_.Encode()
104506	req, err := http.NewRequest("POST", urls, body)
104507	if err != nil {
104508		return nil, err
104509	}
104510	req.Header = reqHeaders
104511	googleapi.Expand(req.URL, map[string]string{
104512		"project": c.project,
104513		"region":  c.region,
104514	})
104515	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104516}
104517
104518// Do executes the "compute.nodeTemplates.insert" call.
104519// Exactly one of *Operation or error will be non-nil. Any non-2xx
104520// status code is an error. Response headers are in either
104521// *Operation.ServerResponse.Header or (if a response was returned at
104522// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
104523// to check whether the returned error was because
104524// http.StatusNotModified was returned.
104525func (c *NodeTemplatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
104526	gensupport.SetOptions(c.urlParams_, opts...)
104527	res, err := c.doRequest("json")
104528	if res != nil && res.StatusCode == http.StatusNotModified {
104529		if res.Body != nil {
104530			res.Body.Close()
104531		}
104532		return nil, &googleapi.Error{
104533			Code:   res.StatusCode,
104534			Header: res.Header,
104535		}
104536	}
104537	if err != nil {
104538		return nil, err
104539	}
104540	defer googleapi.CloseBody(res)
104541	if err := googleapi.CheckResponse(res); err != nil {
104542		return nil, err
104543	}
104544	ret := &Operation{
104545		ServerResponse: googleapi.ServerResponse{
104546			Header:         res.Header,
104547			HTTPStatusCode: res.StatusCode,
104548		},
104549	}
104550	target := &ret
104551	if err := gensupport.DecodeResponse(target, res); err != nil {
104552		return nil, err
104553	}
104554	return ret, nil
104555	// {
104556	//   "description": "Creates a NodeTemplate resource in the specified project using the data included in the request.",
104557	//   "httpMethod": "POST",
104558	//   "id": "compute.nodeTemplates.insert",
104559	//   "parameterOrder": [
104560	//     "project",
104561	//     "region"
104562	//   ],
104563	//   "parameters": {
104564	//     "project": {
104565	//       "description": "Project ID for this request.",
104566	//       "location": "path",
104567	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104568	//       "required": true,
104569	//       "type": "string"
104570	//     },
104571	//     "region": {
104572	//       "description": "The name of the region for this request.",
104573	//       "location": "path",
104574	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
104575	//       "required": true,
104576	//       "type": "string"
104577	//     },
104578	//     "requestId": {
104579	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
104580	//       "location": "query",
104581	//       "type": "string"
104582	//     }
104583	//   },
104584	//   "path": "projects/{project}/regions/{region}/nodeTemplates",
104585	//   "request": {
104586	//     "$ref": "NodeTemplate"
104587	//   },
104588	//   "response": {
104589	//     "$ref": "Operation"
104590	//   },
104591	//   "scopes": [
104592	//     "https://www.googleapis.com/auth/cloud-platform",
104593	//     "https://www.googleapis.com/auth/compute"
104594	//   ]
104595	// }
104596
104597}
104598
104599// method id "compute.nodeTemplates.list":
104600
104601type NodeTemplatesListCall struct {
104602	s            *Service
104603	project      string
104604	region       string
104605	urlParams_   gensupport.URLParams
104606	ifNoneMatch_ string
104607	ctx_         context.Context
104608	header_      http.Header
104609}
104610
104611// List: Retrieves a list of node templates available to the specified
104612// project.
104613//
104614// - project: Project ID for this request.
104615// - region: The name of the region for this request.
104616func (r *NodeTemplatesService) List(project string, region string) *NodeTemplatesListCall {
104617	c := &NodeTemplatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104618	c.project = project
104619	c.region = region
104620	return c
104621}
104622
104623// Filter sets the optional parameter "filter": A filter expression that
104624// filters resources listed in the response. The expression must specify
104625// the field name, a comparison operator, and the value that you want to
104626// use for filtering. The value must be a string, a number, or a
104627// boolean. The comparison operator must be either `=`, `!=`, `>`, or
104628// `<`.
104629//
104630// For example, if you are filtering Compute Engine instances, you can
104631// exclude instances named `example-instance` by specifying `name !=
104632// example-instance`.
104633//
104634// You can also filter nested fields. For example, you could specify
104635// `scheduling.automaticRestart = false` to include instances only if
104636// they are not scheduled for automatic restarts. You can use filtering
104637// on nested fields to filter based on resource labels.
104638//
104639// To filter on multiple expressions, provide each separate expression
104640// within parentheses. For example: ``` (scheduling.automaticRestart =
104641// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
104642// is an `AND` expression. However, you can include `AND` and `OR`
104643// expressions explicitly. For example: ``` (cpuPlatform = "Intel
104644// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
104645// (scheduling.automaticRestart = true) ```
104646func (c *NodeTemplatesListCall) Filter(filter string) *NodeTemplatesListCall {
104647	c.urlParams_.Set("filter", filter)
104648	return c
104649}
104650
104651// MaxResults sets the optional parameter "maxResults": The maximum
104652// number of results per page that should be returned. If the number of
104653// available results is larger than `maxResults`, Compute Engine returns
104654// a `nextPageToken` that can be used to get the next page of results in
104655// subsequent list requests. Acceptable values are `0` to `500`,
104656// inclusive. (Default: `500`)
104657func (c *NodeTemplatesListCall) MaxResults(maxResults int64) *NodeTemplatesListCall {
104658	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
104659	return c
104660}
104661
104662// OrderBy sets the optional parameter "orderBy": Sorts list results by
104663// a certain order. By default, results are returned in alphanumerical
104664// order based on the resource name.
104665//
104666// You can also sort results in descending order based on the creation
104667// timestamp using `orderBy="creationTimestamp desc". This sorts
104668// results based on the `creationTimestamp` field in reverse
104669// chronological order (newest result first). Use this to sort resources
104670// like operations so that the newest operation is returned
104671// first.
104672//
104673// Currently, only sorting by `name` or `creationTimestamp desc` is
104674// supported.
104675func (c *NodeTemplatesListCall) OrderBy(orderBy string) *NodeTemplatesListCall {
104676	c.urlParams_.Set("orderBy", orderBy)
104677	return c
104678}
104679
104680// PageToken sets the optional parameter "pageToken": Specifies a page
104681// token to use. Set `pageToken` to the `nextPageToken` returned by a
104682// previous list request to get the next page of results.
104683func (c *NodeTemplatesListCall) PageToken(pageToken string) *NodeTemplatesListCall {
104684	c.urlParams_.Set("pageToken", pageToken)
104685	return c
104686}
104687
104688// ReturnPartialSuccess sets the optional parameter
104689// "returnPartialSuccess": Opt-in for partial success behavior which
104690// provides partial results in case of failure. The default value is
104691// false.
104692func (c *NodeTemplatesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeTemplatesListCall {
104693	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
104694	return c
104695}
104696
104697// Fields allows partial responses to be retrieved. See
104698// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104699// for more information.
104700func (c *NodeTemplatesListCall) Fields(s ...googleapi.Field) *NodeTemplatesListCall {
104701	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104702	return c
104703}
104704
104705// IfNoneMatch sets the optional parameter which makes the operation
104706// fail if the object's ETag matches the given value. This is useful for
104707// getting updates only after the object has changed since the last
104708// request. Use googleapi.IsNotModified to check whether the response
104709// error from Do is the result of In-None-Match.
104710func (c *NodeTemplatesListCall) IfNoneMatch(entityTag string) *NodeTemplatesListCall {
104711	c.ifNoneMatch_ = entityTag
104712	return c
104713}
104714
104715// Context sets the context to be used in this call's Do method. Any
104716// pending HTTP request will be aborted if the provided context is
104717// canceled.
104718func (c *NodeTemplatesListCall) Context(ctx context.Context) *NodeTemplatesListCall {
104719	c.ctx_ = ctx
104720	return c
104721}
104722
104723// Header returns an http.Header that can be modified by the caller to
104724// add HTTP headers to the request.
104725func (c *NodeTemplatesListCall) Header() http.Header {
104726	if c.header_ == nil {
104727		c.header_ = make(http.Header)
104728	}
104729	return c.header_
104730}
104731
104732func (c *NodeTemplatesListCall) doRequest(alt string) (*http.Response, error) {
104733	reqHeaders := make(http.Header)
104734	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
104735	for k, v := range c.header_ {
104736		reqHeaders[k] = v
104737	}
104738	reqHeaders.Set("User-Agent", c.s.userAgent())
104739	if c.ifNoneMatch_ != "" {
104740		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
104741	}
104742	var body io.Reader = nil
104743	c.urlParams_.Set("alt", alt)
104744	c.urlParams_.Set("prettyPrint", "false")
104745	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates")
104746	urls += "?" + c.urlParams_.Encode()
104747	req, err := http.NewRequest("GET", urls, body)
104748	if err != nil {
104749		return nil, err
104750	}
104751	req.Header = reqHeaders
104752	googleapi.Expand(req.URL, map[string]string{
104753		"project": c.project,
104754		"region":  c.region,
104755	})
104756	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104757}
104758
104759// Do executes the "compute.nodeTemplates.list" call.
104760// Exactly one of *NodeTemplateList or error will be non-nil. Any
104761// non-2xx status code is an error. Response headers are in either
104762// *NodeTemplateList.ServerResponse.Header or (if a response was
104763// returned at all) in error.(*googleapi.Error).Header. Use
104764// googleapi.IsNotModified to check whether the returned error was
104765// because http.StatusNotModified was returned.
104766func (c *NodeTemplatesListCall) Do(opts ...googleapi.CallOption) (*NodeTemplateList, error) {
104767	gensupport.SetOptions(c.urlParams_, opts...)
104768	res, err := c.doRequest("json")
104769	if res != nil && res.StatusCode == http.StatusNotModified {
104770		if res.Body != nil {
104771			res.Body.Close()
104772		}
104773		return nil, &googleapi.Error{
104774			Code:   res.StatusCode,
104775			Header: res.Header,
104776		}
104777	}
104778	if err != nil {
104779		return nil, err
104780	}
104781	defer googleapi.CloseBody(res)
104782	if err := googleapi.CheckResponse(res); err != nil {
104783		return nil, err
104784	}
104785	ret := &NodeTemplateList{
104786		ServerResponse: googleapi.ServerResponse{
104787			Header:         res.Header,
104788			HTTPStatusCode: res.StatusCode,
104789		},
104790	}
104791	target := &ret
104792	if err := gensupport.DecodeResponse(target, res); err != nil {
104793		return nil, err
104794	}
104795	return ret, nil
104796	// {
104797	//   "description": "Retrieves a list of node templates available to the specified project.",
104798	//   "httpMethod": "GET",
104799	//   "id": "compute.nodeTemplates.list",
104800	//   "parameterOrder": [
104801	//     "project",
104802	//     "region"
104803	//   ],
104804	//   "parameters": {
104805	//     "filter": {
104806	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
104807	//       "location": "query",
104808	//       "type": "string"
104809	//     },
104810	//     "maxResults": {
104811	//       "default": "500",
104812	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
104813	//       "format": "uint32",
104814	//       "location": "query",
104815	//       "minimum": "0",
104816	//       "type": "integer"
104817	//     },
104818	//     "orderBy": {
104819	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
104820	//       "location": "query",
104821	//       "type": "string"
104822	//     },
104823	//     "pageToken": {
104824	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
104825	//       "location": "query",
104826	//       "type": "string"
104827	//     },
104828	//     "project": {
104829	//       "description": "Project ID for this request.",
104830	//       "location": "path",
104831	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104832	//       "required": true,
104833	//       "type": "string"
104834	//     },
104835	//     "region": {
104836	//       "description": "The name of the region for this request.",
104837	//       "location": "path",
104838	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
104839	//       "required": true,
104840	//       "type": "string"
104841	//     },
104842	//     "returnPartialSuccess": {
104843	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
104844	//       "location": "query",
104845	//       "type": "boolean"
104846	//     }
104847	//   },
104848	//   "path": "projects/{project}/regions/{region}/nodeTemplates",
104849	//   "response": {
104850	//     "$ref": "NodeTemplateList"
104851	//   },
104852	//   "scopes": [
104853	//     "https://www.googleapis.com/auth/cloud-platform",
104854	//     "https://www.googleapis.com/auth/compute",
104855	//     "https://www.googleapis.com/auth/compute.readonly"
104856	//   ]
104857	// }
104858
104859}
104860
104861// Pages invokes f for each page of results.
104862// A non-nil error returned from f will halt the iteration.
104863// The provided context supersedes any context provided to the Context method.
104864func (c *NodeTemplatesListCall) Pages(ctx context.Context, f func(*NodeTemplateList) error) error {
104865	c.ctx_ = ctx
104866	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
104867	for {
104868		x, err := c.Do()
104869		if err != nil {
104870			return err
104871		}
104872		if err := f(x); err != nil {
104873			return err
104874		}
104875		if x.NextPageToken == "" {
104876			return nil
104877		}
104878		c.PageToken(x.NextPageToken)
104879	}
104880}
104881
104882// method id "compute.nodeTemplates.setIamPolicy":
104883
104884type NodeTemplatesSetIamPolicyCall struct {
104885	s                      *Service
104886	project                string
104887	region                 string
104888	resource               string
104889	regionsetpolicyrequest *RegionSetPolicyRequest
104890	urlParams_             gensupport.URLParams
104891	ctx_                   context.Context
104892	header_                http.Header
104893}
104894
104895// SetIamPolicy: Sets the access control policy on the specified
104896// resource. Replaces any existing policy.
104897//
104898// - project: Project ID for this request.
104899// - region: The name of the region for this request.
104900// - resource: Name or id of the resource for this request.
104901func (r *NodeTemplatesService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *NodeTemplatesSetIamPolicyCall {
104902	c := &NodeTemplatesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104903	c.project = project
104904	c.region = region
104905	c.resource = resource
104906	c.regionsetpolicyrequest = regionsetpolicyrequest
104907	return c
104908}
104909
104910// Fields allows partial responses to be retrieved. See
104911// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104912// for more information.
104913func (c *NodeTemplatesSetIamPolicyCall) Fields(s ...googleapi.Field) *NodeTemplatesSetIamPolicyCall {
104914	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104915	return c
104916}
104917
104918// Context sets the context to be used in this call's Do method. Any
104919// pending HTTP request will be aborted if the provided context is
104920// canceled.
104921func (c *NodeTemplatesSetIamPolicyCall) Context(ctx context.Context) *NodeTemplatesSetIamPolicyCall {
104922	c.ctx_ = ctx
104923	return c
104924}
104925
104926// Header returns an http.Header that can be modified by the caller to
104927// add HTTP headers to the request.
104928func (c *NodeTemplatesSetIamPolicyCall) Header() http.Header {
104929	if c.header_ == nil {
104930		c.header_ = make(http.Header)
104931	}
104932	return c.header_
104933}
104934
104935func (c *NodeTemplatesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
104936	reqHeaders := make(http.Header)
104937	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
104938	for k, v := range c.header_ {
104939		reqHeaders[k] = v
104940	}
104941	reqHeaders.Set("User-Agent", c.s.userAgent())
104942	var body io.Reader = nil
104943	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
104944	if err != nil {
104945		return nil, err
104946	}
104947	reqHeaders.Set("Content-Type", "application/json")
104948	c.urlParams_.Set("alt", alt)
104949	c.urlParams_.Set("prettyPrint", "false")
104950	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy")
104951	urls += "?" + c.urlParams_.Encode()
104952	req, err := http.NewRequest("POST", urls, body)
104953	if err != nil {
104954		return nil, err
104955	}
104956	req.Header = reqHeaders
104957	googleapi.Expand(req.URL, map[string]string{
104958		"project":  c.project,
104959		"region":   c.region,
104960		"resource": c.resource,
104961	})
104962	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104963}
104964
104965// Do executes the "compute.nodeTemplates.setIamPolicy" call.
104966// Exactly one of *Policy or error will be non-nil. Any non-2xx status
104967// code is an error. Response headers are in either
104968// *Policy.ServerResponse.Header or (if a response was returned at all)
104969// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
104970// check whether the returned error was because http.StatusNotModified
104971// was returned.
104972func (c *NodeTemplatesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
104973	gensupport.SetOptions(c.urlParams_, opts...)
104974	res, err := c.doRequest("json")
104975	if res != nil && res.StatusCode == http.StatusNotModified {
104976		if res.Body != nil {
104977			res.Body.Close()
104978		}
104979		return nil, &googleapi.Error{
104980			Code:   res.StatusCode,
104981			Header: res.Header,
104982		}
104983	}
104984	if err != nil {
104985		return nil, err
104986	}
104987	defer googleapi.CloseBody(res)
104988	if err := googleapi.CheckResponse(res); err != nil {
104989		return nil, err
104990	}
104991	ret := &Policy{
104992		ServerResponse: googleapi.ServerResponse{
104993			Header:         res.Header,
104994			HTTPStatusCode: res.StatusCode,
104995		},
104996	}
104997	target := &ret
104998	if err := gensupport.DecodeResponse(target, res); err != nil {
104999		return nil, err
105000	}
105001	return ret, nil
105002	// {
105003	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
105004	//   "httpMethod": "POST",
105005	//   "id": "compute.nodeTemplates.setIamPolicy",
105006	//   "parameterOrder": [
105007	//     "project",
105008	//     "region",
105009	//     "resource"
105010	//   ],
105011	//   "parameters": {
105012	//     "project": {
105013	//       "description": "Project ID for this request.",
105014	//       "location": "path",
105015	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105016	//       "required": true,
105017	//       "type": "string"
105018	//     },
105019	//     "region": {
105020	//       "description": "The name of the region for this request.",
105021	//       "location": "path",
105022	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
105023	//       "required": true,
105024	//       "type": "string"
105025	//     },
105026	//     "resource": {
105027	//       "description": "Name or id of the resource for this request.",
105028	//       "location": "path",
105029	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
105030	//       "required": true,
105031	//       "type": "string"
105032	//     }
105033	//   },
105034	//   "path": "projects/{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy",
105035	//   "request": {
105036	//     "$ref": "RegionSetPolicyRequest"
105037	//   },
105038	//   "response": {
105039	//     "$ref": "Policy"
105040	//   },
105041	//   "scopes": [
105042	//     "https://www.googleapis.com/auth/cloud-platform",
105043	//     "https://www.googleapis.com/auth/compute"
105044	//   ]
105045	// }
105046
105047}
105048
105049// method id "compute.nodeTemplates.testIamPermissions":
105050
105051type NodeTemplatesTestIamPermissionsCall struct {
105052	s                      *Service
105053	project                string
105054	region                 string
105055	resource               string
105056	testpermissionsrequest *TestPermissionsRequest
105057	urlParams_             gensupport.URLParams
105058	ctx_                   context.Context
105059	header_                http.Header
105060}
105061
105062// TestIamPermissions: Returns permissions that a caller has on the
105063// specified resource.
105064//
105065// - project: Project ID for this request.
105066// - region: The name of the region for this request.
105067// - resource: Name or id of the resource for this request.
105068func (r *NodeTemplatesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *NodeTemplatesTestIamPermissionsCall {
105069	c := &NodeTemplatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105070	c.project = project
105071	c.region = region
105072	c.resource = resource
105073	c.testpermissionsrequest = testpermissionsrequest
105074	return c
105075}
105076
105077// Fields allows partial responses to be retrieved. See
105078// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105079// for more information.
105080func (c *NodeTemplatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *NodeTemplatesTestIamPermissionsCall {
105081	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105082	return c
105083}
105084
105085// Context sets the context to be used in this call's Do method. Any
105086// pending HTTP request will be aborted if the provided context is
105087// canceled.
105088func (c *NodeTemplatesTestIamPermissionsCall) Context(ctx context.Context) *NodeTemplatesTestIamPermissionsCall {
105089	c.ctx_ = ctx
105090	return c
105091}
105092
105093// Header returns an http.Header that can be modified by the caller to
105094// add HTTP headers to the request.
105095func (c *NodeTemplatesTestIamPermissionsCall) Header() http.Header {
105096	if c.header_ == nil {
105097		c.header_ = make(http.Header)
105098	}
105099	return c.header_
105100}
105101
105102func (c *NodeTemplatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
105103	reqHeaders := make(http.Header)
105104	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
105105	for k, v := range c.header_ {
105106		reqHeaders[k] = v
105107	}
105108	reqHeaders.Set("User-Agent", c.s.userAgent())
105109	var body io.Reader = nil
105110	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
105111	if err != nil {
105112		return nil, err
105113	}
105114	reqHeaders.Set("Content-Type", "application/json")
105115	c.urlParams_.Set("alt", alt)
105116	c.urlParams_.Set("prettyPrint", "false")
105117	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions")
105118	urls += "?" + c.urlParams_.Encode()
105119	req, err := http.NewRequest("POST", urls, body)
105120	if err != nil {
105121		return nil, err
105122	}
105123	req.Header = reqHeaders
105124	googleapi.Expand(req.URL, map[string]string{
105125		"project":  c.project,
105126		"region":   c.region,
105127		"resource": c.resource,
105128	})
105129	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105130}
105131
105132// Do executes the "compute.nodeTemplates.testIamPermissions" call.
105133// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
105134// non-2xx status code is an error. Response headers are in either
105135// *TestPermissionsResponse.ServerResponse.Header or (if a response was
105136// returned at all) in error.(*googleapi.Error).Header. Use
105137// googleapi.IsNotModified to check whether the returned error was
105138// because http.StatusNotModified was returned.
105139func (c *NodeTemplatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
105140	gensupport.SetOptions(c.urlParams_, opts...)
105141	res, err := c.doRequest("json")
105142	if res != nil && res.StatusCode == http.StatusNotModified {
105143		if res.Body != nil {
105144			res.Body.Close()
105145		}
105146		return nil, &googleapi.Error{
105147			Code:   res.StatusCode,
105148			Header: res.Header,
105149		}
105150	}
105151	if err != nil {
105152		return nil, err
105153	}
105154	defer googleapi.CloseBody(res)
105155	if err := googleapi.CheckResponse(res); err != nil {
105156		return nil, err
105157	}
105158	ret := &TestPermissionsResponse{
105159		ServerResponse: googleapi.ServerResponse{
105160			Header:         res.Header,
105161			HTTPStatusCode: res.StatusCode,
105162		},
105163	}
105164	target := &ret
105165	if err := gensupport.DecodeResponse(target, res); err != nil {
105166		return nil, err
105167	}
105168	return ret, nil
105169	// {
105170	//   "description": "Returns permissions that a caller has on the specified resource.",
105171	//   "httpMethod": "POST",
105172	//   "id": "compute.nodeTemplates.testIamPermissions",
105173	//   "parameterOrder": [
105174	//     "project",
105175	//     "region",
105176	//     "resource"
105177	//   ],
105178	//   "parameters": {
105179	//     "project": {
105180	//       "description": "Project ID for this request.",
105181	//       "location": "path",
105182	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105183	//       "required": true,
105184	//       "type": "string"
105185	//     },
105186	//     "region": {
105187	//       "description": "The name of the region for this request.",
105188	//       "location": "path",
105189	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
105190	//       "required": true,
105191	//       "type": "string"
105192	//     },
105193	//     "resource": {
105194	//       "description": "Name or id of the resource for this request.",
105195	//       "location": "path",
105196	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
105197	//       "required": true,
105198	//       "type": "string"
105199	//     }
105200	//   },
105201	//   "path": "projects/{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions",
105202	//   "request": {
105203	//     "$ref": "TestPermissionsRequest"
105204	//   },
105205	//   "response": {
105206	//     "$ref": "TestPermissionsResponse"
105207	//   },
105208	//   "scopes": [
105209	//     "https://www.googleapis.com/auth/cloud-platform",
105210	//     "https://www.googleapis.com/auth/compute",
105211	//     "https://www.googleapis.com/auth/compute.readonly"
105212	//   ]
105213	// }
105214
105215}
105216
105217// method id "compute.nodeTypes.aggregatedList":
105218
105219type NodeTypesAggregatedListCall struct {
105220	s            *Service
105221	project      string
105222	urlParams_   gensupport.URLParams
105223	ifNoneMatch_ string
105224	ctx_         context.Context
105225	header_      http.Header
105226}
105227
105228// AggregatedList: Retrieves an aggregated list of node types.
105229//
105230// - project: Project ID for this request.
105231func (r *NodeTypesService) AggregatedList(project string) *NodeTypesAggregatedListCall {
105232	c := &NodeTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105233	c.project = project
105234	return c
105235}
105236
105237// Filter sets the optional parameter "filter": A filter expression that
105238// filters resources listed in the response. The expression must specify
105239// the field name, a comparison operator, and the value that you want to
105240// use for filtering. The value must be a string, a number, or a
105241// boolean. The comparison operator must be either `=`, `!=`, `>`, or
105242// `<`.
105243//
105244// For example, if you are filtering Compute Engine instances, you can
105245// exclude instances named `example-instance` by specifying `name !=
105246// example-instance`.
105247//
105248// You can also filter nested fields. For example, you could specify
105249// `scheduling.automaticRestart = false` to include instances only if
105250// they are not scheduled for automatic restarts. You can use filtering
105251// on nested fields to filter based on resource labels.
105252//
105253// To filter on multiple expressions, provide each separate expression
105254// within parentheses. For example: ``` (scheduling.automaticRestart =
105255// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
105256// is an `AND` expression. However, you can include `AND` and `OR`
105257// expressions explicitly. For example: ``` (cpuPlatform = "Intel
105258// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
105259// (scheduling.automaticRestart = true) ```
105260func (c *NodeTypesAggregatedListCall) Filter(filter string) *NodeTypesAggregatedListCall {
105261	c.urlParams_.Set("filter", filter)
105262	return c
105263}
105264
105265// IncludeAllScopes sets the optional parameter "includeAllScopes":
105266// Indicates whether every visible scope for each scope type (zone,
105267// region, global) should be included in the response. For new resource
105268// types added after this field, the flag has no effect as new resource
105269// types will always include every visible scope for each scope type in
105270// response. For resource types which predate this field, if this flag
105271// is omitted or false, only scopes of the scope types where the
105272// resource type is expected to be found will be included.
105273func (c *NodeTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NodeTypesAggregatedListCall {
105274	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
105275	return c
105276}
105277
105278// MaxResults sets the optional parameter "maxResults": The maximum
105279// number of results per page that should be returned. If the number of
105280// available results is larger than `maxResults`, Compute Engine returns
105281// a `nextPageToken` that can be used to get the next page of results in
105282// subsequent list requests. Acceptable values are `0` to `500`,
105283// inclusive. (Default: `500`)
105284func (c *NodeTypesAggregatedListCall) MaxResults(maxResults int64) *NodeTypesAggregatedListCall {
105285	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
105286	return c
105287}
105288
105289// OrderBy sets the optional parameter "orderBy": Sorts list results by
105290// a certain order. By default, results are returned in alphanumerical
105291// order based on the resource name.
105292//
105293// You can also sort results in descending order based on the creation
105294// timestamp using `orderBy="creationTimestamp desc". This sorts
105295// results based on the `creationTimestamp` field in reverse
105296// chronological order (newest result first). Use this to sort resources
105297// like operations so that the newest operation is returned
105298// first.
105299//
105300// Currently, only sorting by `name` or `creationTimestamp desc` is
105301// supported.
105302func (c *NodeTypesAggregatedListCall) OrderBy(orderBy string) *NodeTypesAggregatedListCall {
105303	c.urlParams_.Set("orderBy", orderBy)
105304	return c
105305}
105306
105307// PageToken sets the optional parameter "pageToken": Specifies a page
105308// token to use. Set `pageToken` to the `nextPageToken` returned by a
105309// previous list request to get the next page of results.
105310func (c *NodeTypesAggregatedListCall) PageToken(pageToken string) *NodeTypesAggregatedListCall {
105311	c.urlParams_.Set("pageToken", pageToken)
105312	return c
105313}
105314
105315// ReturnPartialSuccess sets the optional parameter
105316// "returnPartialSuccess": Opt-in for partial success behavior which
105317// provides partial results in case of failure. The default value is
105318// false.
105319func (c *NodeTypesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeTypesAggregatedListCall {
105320	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
105321	return c
105322}
105323
105324// Fields allows partial responses to be retrieved. See
105325// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105326// for more information.
105327func (c *NodeTypesAggregatedListCall) Fields(s ...googleapi.Field) *NodeTypesAggregatedListCall {
105328	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105329	return c
105330}
105331
105332// IfNoneMatch sets the optional parameter which makes the operation
105333// fail if the object's ETag matches the given value. This is useful for
105334// getting updates only after the object has changed since the last
105335// request. Use googleapi.IsNotModified to check whether the response
105336// error from Do is the result of In-None-Match.
105337func (c *NodeTypesAggregatedListCall) IfNoneMatch(entityTag string) *NodeTypesAggregatedListCall {
105338	c.ifNoneMatch_ = entityTag
105339	return c
105340}
105341
105342// Context sets the context to be used in this call's Do method. Any
105343// pending HTTP request will be aborted if the provided context is
105344// canceled.
105345func (c *NodeTypesAggregatedListCall) Context(ctx context.Context) *NodeTypesAggregatedListCall {
105346	c.ctx_ = ctx
105347	return c
105348}
105349
105350// Header returns an http.Header that can be modified by the caller to
105351// add HTTP headers to the request.
105352func (c *NodeTypesAggregatedListCall) Header() http.Header {
105353	if c.header_ == nil {
105354		c.header_ = make(http.Header)
105355	}
105356	return c.header_
105357}
105358
105359func (c *NodeTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
105360	reqHeaders := make(http.Header)
105361	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
105362	for k, v := range c.header_ {
105363		reqHeaders[k] = v
105364	}
105365	reqHeaders.Set("User-Agent", c.s.userAgent())
105366	if c.ifNoneMatch_ != "" {
105367		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
105368	}
105369	var body io.Reader = nil
105370	c.urlParams_.Set("alt", alt)
105371	c.urlParams_.Set("prettyPrint", "false")
105372	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/nodeTypes")
105373	urls += "?" + c.urlParams_.Encode()
105374	req, err := http.NewRequest("GET", urls, body)
105375	if err != nil {
105376		return nil, err
105377	}
105378	req.Header = reqHeaders
105379	googleapi.Expand(req.URL, map[string]string{
105380		"project": c.project,
105381	})
105382	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105383}
105384
105385// Do executes the "compute.nodeTypes.aggregatedList" call.
105386// Exactly one of *NodeTypeAggregatedList or error will be non-nil. Any
105387// non-2xx status code is an error. Response headers are in either
105388// *NodeTypeAggregatedList.ServerResponse.Header or (if a response was
105389// returned at all) in error.(*googleapi.Error).Header. Use
105390// googleapi.IsNotModified to check whether the returned error was
105391// because http.StatusNotModified was returned.
105392func (c *NodeTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeTypeAggregatedList, error) {
105393	gensupport.SetOptions(c.urlParams_, opts...)
105394	res, err := c.doRequest("json")
105395	if res != nil && res.StatusCode == http.StatusNotModified {
105396		if res.Body != nil {
105397			res.Body.Close()
105398		}
105399		return nil, &googleapi.Error{
105400			Code:   res.StatusCode,
105401			Header: res.Header,
105402		}
105403	}
105404	if err != nil {
105405		return nil, err
105406	}
105407	defer googleapi.CloseBody(res)
105408	if err := googleapi.CheckResponse(res); err != nil {
105409		return nil, err
105410	}
105411	ret := &NodeTypeAggregatedList{
105412		ServerResponse: googleapi.ServerResponse{
105413			Header:         res.Header,
105414			HTTPStatusCode: res.StatusCode,
105415		},
105416	}
105417	target := &ret
105418	if err := gensupport.DecodeResponse(target, res); err != nil {
105419		return nil, err
105420	}
105421	return ret, nil
105422	// {
105423	//   "description": "Retrieves an aggregated list of node types.",
105424	//   "httpMethod": "GET",
105425	//   "id": "compute.nodeTypes.aggregatedList",
105426	//   "parameterOrder": [
105427	//     "project"
105428	//   ],
105429	//   "parameters": {
105430	//     "filter": {
105431	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
105432	//       "location": "query",
105433	//       "type": "string"
105434	//     },
105435	//     "includeAllScopes": {
105436	//       "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.",
105437	//       "location": "query",
105438	//       "type": "boolean"
105439	//     },
105440	//     "maxResults": {
105441	//       "default": "500",
105442	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
105443	//       "format": "uint32",
105444	//       "location": "query",
105445	//       "minimum": "0",
105446	//       "type": "integer"
105447	//     },
105448	//     "orderBy": {
105449	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
105450	//       "location": "query",
105451	//       "type": "string"
105452	//     },
105453	//     "pageToken": {
105454	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
105455	//       "location": "query",
105456	//       "type": "string"
105457	//     },
105458	//     "project": {
105459	//       "description": "Project ID for this request.",
105460	//       "location": "path",
105461	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105462	//       "required": true,
105463	//       "type": "string"
105464	//     },
105465	//     "returnPartialSuccess": {
105466	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
105467	//       "location": "query",
105468	//       "type": "boolean"
105469	//     }
105470	//   },
105471	//   "path": "projects/{project}/aggregated/nodeTypes",
105472	//   "response": {
105473	//     "$ref": "NodeTypeAggregatedList"
105474	//   },
105475	//   "scopes": [
105476	//     "https://www.googleapis.com/auth/cloud-platform",
105477	//     "https://www.googleapis.com/auth/compute",
105478	//     "https://www.googleapis.com/auth/compute.readonly"
105479	//   ]
105480	// }
105481
105482}
105483
105484// Pages invokes f for each page of results.
105485// A non-nil error returned from f will halt the iteration.
105486// The provided context supersedes any context provided to the Context method.
105487func (c *NodeTypesAggregatedListCall) Pages(ctx context.Context, f func(*NodeTypeAggregatedList) error) error {
105488	c.ctx_ = ctx
105489	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
105490	for {
105491		x, err := c.Do()
105492		if err != nil {
105493			return err
105494		}
105495		if err := f(x); err != nil {
105496			return err
105497		}
105498		if x.NextPageToken == "" {
105499			return nil
105500		}
105501		c.PageToken(x.NextPageToken)
105502	}
105503}
105504
105505// method id "compute.nodeTypes.get":
105506
105507type NodeTypesGetCall struct {
105508	s            *Service
105509	project      string
105510	zone         string
105511	nodeType     string
105512	urlParams_   gensupport.URLParams
105513	ifNoneMatch_ string
105514	ctx_         context.Context
105515	header_      http.Header
105516}
105517
105518// Get: Returns the specified node type. Gets a list of available node
105519// types by making a list() request.
105520//
105521// - nodeType: Name of the node type to return.
105522// - project: Project ID for this request.
105523// - zone: The name of the zone for this request.
105524func (r *NodeTypesService) Get(project string, zone string, nodeType string) *NodeTypesGetCall {
105525	c := &NodeTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105526	c.project = project
105527	c.zone = zone
105528	c.nodeType = nodeType
105529	return c
105530}
105531
105532// Fields allows partial responses to be retrieved. See
105533// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105534// for more information.
105535func (c *NodeTypesGetCall) Fields(s ...googleapi.Field) *NodeTypesGetCall {
105536	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105537	return c
105538}
105539
105540// IfNoneMatch sets the optional parameter which makes the operation
105541// fail if the object's ETag matches the given value. This is useful for
105542// getting updates only after the object has changed since the last
105543// request. Use googleapi.IsNotModified to check whether the response
105544// error from Do is the result of In-None-Match.
105545func (c *NodeTypesGetCall) IfNoneMatch(entityTag string) *NodeTypesGetCall {
105546	c.ifNoneMatch_ = entityTag
105547	return c
105548}
105549
105550// Context sets the context to be used in this call's Do method. Any
105551// pending HTTP request will be aborted if the provided context is
105552// canceled.
105553func (c *NodeTypesGetCall) Context(ctx context.Context) *NodeTypesGetCall {
105554	c.ctx_ = ctx
105555	return c
105556}
105557
105558// Header returns an http.Header that can be modified by the caller to
105559// add HTTP headers to the request.
105560func (c *NodeTypesGetCall) Header() http.Header {
105561	if c.header_ == nil {
105562		c.header_ = make(http.Header)
105563	}
105564	return c.header_
105565}
105566
105567func (c *NodeTypesGetCall) doRequest(alt string) (*http.Response, error) {
105568	reqHeaders := make(http.Header)
105569	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
105570	for k, v := range c.header_ {
105571		reqHeaders[k] = v
105572	}
105573	reqHeaders.Set("User-Agent", c.s.userAgent())
105574	if c.ifNoneMatch_ != "" {
105575		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
105576	}
105577	var body io.Reader = nil
105578	c.urlParams_.Set("alt", alt)
105579	c.urlParams_.Set("prettyPrint", "false")
105580	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeTypes/{nodeType}")
105581	urls += "?" + c.urlParams_.Encode()
105582	req, err := http.NewRequest("GET", urls, body)
105583	if err != nil {
105584		return nil, err
105585	}
105586	req.Header = reqHeaders
105587	googleapi.Expand(req.URL, map[string]string{
105588		"project":  c.project,
105589		"zone":     c.zone,
105590		"nodeType": c.nodeType,
105591	})
105592	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105593}
105594
105595// Do executes the "compute.nodeTypes.get" call.
105596// Exactly one of *NodeType or error will be non-nil. Any non-2xx status
105597// code is an error. Response headers are in either
105598// *NodeType.ServerResponse.Header or (if a response was returned at
105599// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
105600// to check whether the returned error was because
105601// http.StatusNotModified was returned.
105602func (c *NodeTypesGetCall) Do(opts ...googleapi.CallOption) (*NodeType, error) {
105603	gensupport.SetOptions(c.urlParams_, opts...)
105604	res, err := c.doRequest("json")
105605	if res != nil && res.StatusCode == http.StatusNotModified {
105606		if res.Body != nil {
105607			res.Body.Close()
105608		}
105609		return nil, &googleapi.Error{
105610			Code:   res.StatusCode,
105611			Header: res.Header,
105612		}
105613	}
105614	if err != nil {
105615		return nil, err
105616	}
105617	defer googleapi.CloseBody(res)
105618	if err := googleapi.CheckResponse(res); err != nil {
105619		return nil, err
105620	}
105621	ret := &NodeType{
105622		ServerResponse: googleapi.ServerResponse{
105623			Header:         res.Header,
105624			HTTPStatusCode: res.StatusCode,
105625		},
105626	}
105627	target := &ret
105628	if err := gensupport.DecodeResponse(target, res); err != nil {
105629		return nil, err
105630	}
105631	return ret, nil
105632	// {
105633	//   "description": "Returns the specified node type. Gets a list of available node types by making a list() request.",
105634	//   "httpMethod": "GET",
105635	//   "id": "compute.nodeTypes.get",
105636	//   "parameterOrder": [
105637	//     "project",
105638	//     "zone",
105639	//     "nodeType"
105640	//   ],
105641	//   "parameters": {
105642	//     "nodeType": {
105643	//       "description": "Name of the node type to return.",
105644	//       "location": "path",
105645	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
105646	//       "required": true,
105647	//       "type": "string"
105648	//     },
105649	//     "project": {
105650	//       "description": "Project ID for this request.",
105651	//       "location": "path",
105652	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105653	//       "required": true,
105654	//       "type": "string"
105655	//     },
105656	//     "zone": {
105657	//       "description": "The name of the zone for this request.",
105658	//       "location": "path",
105659	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
105660	//       "required": true,
105661	//       "type": "string"
105662	//     }
105663	//   },
105664	//   "path": "projects/{project}/zones/{zone}/nodeTypes/{nodeType}",
105665	//   "response": {
105666	//     "$ref": "NodeType"
105667	//   },
105668	//   "scopes": [
105669	//     "https://www.googleapis.com/auth/cloud-platform",
105670	//     "https://www.googleapis.com/auth/compute",
105671	//     "https://www.googleapis.com/auth/compute.readonly"
105672	//   ]
105673	// }
105674
105675}
105676
105677// method id "compute.nodeTypes.list":
105678
105679type NodeTypesListCall struct {
105680	s            *Service
105681	project      string
105682	zone         string
105683	urlParams_   gensupport.URLParams
105684	ifNoneMatch_ string
105685	ctx_         context.Context
105686	header_      http.Header
105687}
105688
105689// List: Retrieves a list of node types available to the specified
105690// project.
105691//
105692// - project: Project ID for this request.
105693// - zone: The name of the zone for this request.
105694func (r *NodeTypesService) List(project string, zone string) *NodeTypesListCall {
105695	c := &NodeTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105696	c.project = project
105697	c.zone = zone
105698	return c
105699}
105700
105701// Filter sets the optional parameter "filter": A filter expression that
105702// filters resources listed in the response. The expression must specify
105703// the field name, a comparison operator, and the value that you want to
105704// use for filtering. The value must be a string, a number, or a
105705// boolean. The comparison operator must be either `=`, `!=`, `>`, or
105706// `<`.
105707//
105708// For example, if you are filtering Compute Engine instances, you can
105709// exclude instances named `example-instance` by specifying `name !=
105710// example-instance`.
105711//
105712// You can also filter nested fields. For example, you could specify
105713// `scheduling.automaticRestart = false` to include instances only if
105714// they are not scheduled for automatic restarts. You can use filtering
105715// on nested fields to filter based on resource labels.
105716//
105717// To filter on multiple expressions, provide each separate expression
105718// within parentheses. For example: ``` (scheduling.automaticRestart =
105719// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
105720// is an `AND` expression. However, you can include `AND` and `OR`
105721// expressions explicitly. For example: ``` (cpuPlatform = "Intel
105722// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
105723// (scheduling.automaticRestart = true) ```
105724func (c *NodeTypesListCall) Filter(filter string) *NodeTypesListCall {
105725	c.urlParams_.Set("filter", filter)
105726	return c
105727}
105728
105729// MaxResults sets the optional parameter "maxResults": The maximum
105730// number of results per page that should be returned. If the number of
105731// available results is larger than `maxResults`, Compute Engine returns
105732// a `nextPageToken` that can be used to get the next page of results in
105733// subsequent list requests. Acceptable values are `0` to `500`,
105734// inclusive. (Default: `500`)
105735func (c *NodeTypesListCall) MaxResults(maxResults int64) *NodeTypesListCall {
105736	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
105737	return c
105738}
105739
105740// OrderBy sets the optional parameter "orderBy": Sorts list results by
105741// a certain order. By default, results are returned in alphanumerical
105742// order based on the resource name.
105743//
105744// You can also sort results in descending order based on the creation
105745// timestamp using `orderBy="creationTimestamp desc". This sorts
105746// results based on the `creationTimestamp` field in reverse
105747// chronological order (newest result first). Use this to sort resources
105748// like operations so that the newest operation is returned
105749// first.
105750//
105751// Currently, only sorting by `name` or `creationTimestamp desc` is
105752// supported.
105753func (c *NodeTypesListCall) OrderBy(orderBy string) *NodeTypesListCall {
105754	c.urlParams_.Set("orderBy", orderBy)
105755	return c
105756}
105757
105758// PageToken sets the optional parameter "pageToken": Specifies a page
105759// token to use. Set `pageToken` to the `nextPageToken` returned by a
105760// previous list request to get the next page of results.
105761func (c *NodeTypesListCall) PageToken(pageToken string) *NodeTypesListCall {
105762	c.urlParams_.Set("pageToken", pageToken)
105763	return c
105764}
105765
105766// ReturnPartialSuccess sets the optional parameter
105767// "returnPartialSuccess": Opt-in for partial success behavior which
105768// provides partial results in case of failure. The default value is
105769// false.
105770func (c *NodeTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *NodeTypesListCall {
105771	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
105772	return c
105773}
105774
105775// Fields allows partial responses to be retrieved. See
105776// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105777// for more information.
105778func (c *NodeTypesListCall) Fields(s ...googleapi.Field) *NodeTypesListCall {
105779	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105780	return c
105781}
105782
105783// IfNoneMatch sets the optional parameter which makes the operation
105784// fail if the object's ETag matches the given value. This is useful for
105785// getting updates only after the object has changed since the last
105786// request. Use googleapi.IsNotModified to check whether the response
105787// error from Do is the result of In-None-Match.
105788func (c *NodeTypesListCall) IfNoneMatch(entityTag string) *NodeTypesListCall {
105789	c.ifNoneMatch_ = entityTag
105790	return c
105791}
105792
105793// Context sets the context to be used in this call's Do method. Any
105794// pending HTTP request will be aborted if the provided context is
105795// canceled.
105796func (c *NodeTypesListCall) Context(ctx context.Context) *NodeTypesListCall {
105797	c.ctx_ = ctx
105798	return c
105799}
105800
105801// Header returns an http.Header that can be modified by the caller to
105802// add HTTP headers to the request.
105803func (c *NodeTypesListCall) Header() http.Header {
105804	if c.header_ == nil {
105805		c.header_ = make(http.Header)
105806	}
105807	return c.header_
105808}
105809
105810func (c *NodeTypesListCall) doRequest(alt string) (*http.Response, error) {
105811	reqHeaders := make(http.Header)
105812	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
105813	for k, v := range c.header_ {
105814		reqHeaders[k] = v
105815	}
105816	reqHeaders.Set("User-Agent", c.s.userAgent())
105817	if c.ifNoneMatch_ != "" {
105818		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
105819	}
105820	var body io.Reader = nil
105821	c.urlParams_.Set("alt", alt)
105822	c.urlParams_.Set("prettyPrint", "false")
105823	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/nodeTypes")
105824	urls += "?" + c.urlParams_.Encode()
105825	req, err := http.NewRequest("GET", urls, body)
105826	if err != nil {
105827		return nil, err
105828	}
105829	req.Header = reqHeaders
105830	googleapi.Expand(req.URL, map[string]string{
105831		"project": c.project,
105832		"zone":    c.zone,
105833	})
105834	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105835}
105836
105837// Do executes the "compute.nodeTypes.list" call.
105838// Exactly one of *NodeTypeList or error will be non-nil. Any non-2xx
105839// status code is an error. Response headers are in either
105840// *NodeTypeList.ServerResponse.Header or (if a response was returned at
105841// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
105842// to check whether the returned error was because
105843// http.StatusNotModified was returned.
105844func (c *NodeTypesListCall) Do(opts ...googleapi.CallOption) (*NodeTypeList, error) {
105845	gensupport.SetOptions(c.urlParams_, opts...)
105846	res, err := c.doRequest("json")
105847	if res != nil && res.StatusCode == http.StatusNotModified {
105848		if res.Body != nil {
105849			res.Body.Close()
105850		}
105851		return nil, &googleapi.Error{
105852			Code:   res.StatusCode,
105853			Header: res.Header,
105854		}
105855	}
105856	if err != nil {
105857		return nil, err
105858	}
105859	defer googleapi.CloseBody(res)
105860	if err := googleapi.CheckResponse(res); err != nil {
105861		return nil, err
105862	}
105863	ret := &NodeTypeList{
105864		ServerResponse: googleapi.ServerResponse{
105865			Header:         res.Header,
105866			HTTPStatusCode: res.StatusCode,
105867		},
105868	}
105869	target := &ret
105870	if err := gensupport.DecodeResponse(target, res); err != nil {
105871		return nil, err
105872	}
105873	return ret, nil
105874	// {
105875	//   "description": "Retrieves a list of node types available to the specified project.",
105876	//   "httpMethod": "GET",
105877	//   "id": "compute.nodeTypes.list",
105878	//   "parameterOrder": [
105879	//     "project",
105880	//     "zone"
105881	//   ],
105882	//   "parameters": {
105883	//     "filter": {
105884	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
105885	//       "location": "query",
105886	//       "type": "string"
105887	//     },
105888	//     "maxResults": {
105889	//       "default": "500",
105890	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
105891	//       "format": "uint32",
105892	//       "location": "query",
105893	//       "minimum": "0",
105894	//       "type": "integer"
105895	//     },
105896	//     "orderBy": {
105897	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
105898	//       "location": "query",
105899	//       "type": "string"
105900	//     },
105901	//     "pageToken": {
105902	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
105903	//       "location": "query",
105904	//       "type": "string"
105905	//     },
105906	//     "project": {
105907	//       "description": "Project ID for this request.",
105908	//       "location": "path",
105909	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105910	//       "required": true,
105911	//       "type": "string"
105912	//     },
105913	//     "returnPartialSuccess": {
105914	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
105915	//       "location": "query",
105916	//       "type": "boolean"
105917	//     },
105918	//     "zone": {
105919	//       "description": "The name of the zone for this request.",
105920	//       "location": "path",
105921	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
105922	//       "required": true,
105923	//       "type": "string"
105924	//     }
105925	//   },
105926	//   "path": "projects/{project}/zones/{zone}/nodeTypes",
105927	//   "response": {
105928	//     "$ref": "NodeTypeList"
105929	//   },
105930	//   "scopes": [
105931	//     "https://www.googleapis.com/auth/cloud-platform",
105932	//     "https://www.googleapis.com/auth/compute",
105933	//     "https://www.googleapis.com/auth/compute.readonly"
105934	//   ]
105935	// }
105936
105937}
105938
105939// Pages invokes f for each page of results.
105940// A non-nil error returned from f will halt the iteration.
105941// The provided context supersedes any context provided to the Context method.
105942func (c *NodeTypesListCall) Pages(ctx context.Context, f func(*NodeTypeList) error) error {
105943	c.ctx_ = ctx
105944	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
105945	for {
105946		x, err := c.Do()
105947		if err != nil {
105948			return err
105949		}
105950		if err := f(x); err != nil {
105951			return err
105952		}
105953		if x.NextPageToken == "" {
105954			return nil
105955		}
105956		c.PageToken(x.NextPageToken)
105957	}
105958}
105959
105960// method id "compute.packetMirrorings.aggregatedList":
105961
105962type PacketMirroringsAggregatedListCall struct {
105963	s            *Service
105964	project      string
105965	urlParams_   gensupport.URLParams
105966	ifNoneMatch_ string
105967	ctx_         context.Context
105968	header_      http.Header
105969}
105970
105971// AggregatedList: Retrieves an aggregated list of packetMirrorings.
105972//
105973// - project: Project ID for this request.
105974func (r *PacketMirroringsService) AggregatedList(project string) *PacketMirroringsAggregatedListCall {
105975	c := &PacketMirroringsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105976	c.project = project
105977	return c
105978}
105979
105980// Filter sets the optional parameter "filter": A filter expression that
105981// filters resources listed in the response. The expression must specify
105982// the field name, a comparison operator, and the value that you want to
105983// use for filtering. The value must be a string, a number, or a
105984// boolean. The comparison operator must be either `=`, `!=`, `>`, or
105985// `<`.
105986//
105987// For example, if you are filtering Compute Engine instances, you can
105988// exclude instances named `example-instance` by specifying `name !=
105989// example-instance`.
105990//
105991// You can also filter nested fields. For example, you could specify
105992// `scheduling.automaticRestart = false` to include instances only if
105993// they are not scheduled for automatic restarts. You can use filtering
105994// on nested fields to filter based on resource labels.
105995//
105996// To filter on multiple expressions, provide each separate expression
105997// within parentheses. For example: ``` (scheduling.automaticRestart =
105998// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
105999// is an `AND` expression. However, you can include `AND` and `OR`
106000// expressions explicitly. For example: ``` (cpuPlatform = "Intel
106001// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
106002// (scheduling.automaticRestart = true) ```
106003func (c *PacketMirroringsAggregatedListCall) Filter(filter string) *PacketMirroringsAggregatedListCall {
106004	c.urlParams_.Set("filter", filter)
106005	return c
106006}
106007
106008// IncludeAllScopes sets the optional parameter "includeAllScopes":
106009// Indicates whether every visible scope for each scope type (zone,
106010// region, global) should be included in the response. For new resource
106011// types added after this field, the flag has no effect as new resource
106012// types will always include every visible scope for each scope type in
106013// response. For resource types which predate this field, if this flag
106014// is omitted or false, only scopes of the scope types where the
106015// resource type is expected to be found will be included.
106016func (c *PacketMirroringsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *PacketMirroringsAggregatedListCall {
106017	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
106018	return c
106019}
106020
106021// MaxResults sets the optional parameter "maxResults": The maximum
106022// number of results per page that should be returned. If the number of
106023// available results is larger than `maxResults`, Compute Engine returns
106024// a `nextPageToken` that can be used to get the next page of results in
106025// subsequent list requests. Acceptable values are `0` to `500`,
106026// inclusive. (Default: `500`)
106027func (c *PacketMirroringsAggregatedListCall) MaxResults(maxResults int64) *PacketMirroringsAggregatedListCall {
106028	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
106029	return c
106030}
106031
106032// OrderBy sets the optional parameter "orderBy": Sorts list results by
106033// a certain order. By default, results are returned in alphanumerical
106034// order based on the resource name.
106035//
106036// You can also sort results in descending order based on the creation
106037// timestamp using `orderBy="creationTimestamp desc". This sorts
106038// results based on the `creationTimestamp` field in reverse
106039// chronological order (newest result first). Use this to sort resources
106040// like operations so that the newest operation is returned
106041// first.
106042//
106043// Currently, only sorting by `name` or `creationTimestamp desc` is
106044// supported.
106045func (c *PacketMirroringsAggregatedListCall) OrderBy(orderBy string) *PacketMirroringsAggregatedListCall {
106046	c.urlParams_.Set("orderBy", orderBy)
106047	return c
106048}
106049
106050// PageToken sets the optional parameter "pageToken": Specifies a page
106051// token to use. Set `pageToken` to the `nextPageToken` returned by a
106052// previous list request to get the next page of results.
106053func (c *PacketMirroringsAggregatedListCall) PageToken(pageToken string) *PacketMirroringsAggregatedListCall {
106054	c.urlParams_.Set("pageToken", pageToken)
106055	return c
106056}
106057
106058// ReturnPartialSuccess sets the optional parameter
106059// "returnPartialSuccess": Opt-in for partial success behavior which
106060// provides partial results in case of failure. The default value is
106061// false.
106062func (c *PacketMirroringsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PacketMirroringsAggregatedListCall {
106063	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
106064	return c
106065}
106066
106067// Fields allows partial responses to be retrieved. See
106068// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106069// for more information.
106070func (c *PacketMirroringsAggregatedListCall) Fields(s ...googleapi.Field) *PacketMirroringsAggregatedListCall {
106071	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106072	return c
106073}
106074
106075// IfNoneMatch sets the optional parameter which makes the operation
106076// fail if the object's ETag matches the given value. This is useful for
106077// getting updates only after the object has changed since the last
106078// request. Use googleapi.IsNotModified to check whether the response
106079// error from Do is the result of In-None-Match.
106080func (c *PacketMirroringsAggregatedListCall) IfNoneMatch(entityTag string) *PacketMirroringsAggregatedListCall {
106081	c.ifNoneMatch_ = entityTag
106082	return c
106083}
106084
106085// Context sets the context to be used in this call's Do method. Any
106086// pending HTTP request will be aborted if the provided context is
106087// canceled.
106088func (c *PacketMirroringsAggregatedListCall) Context(ctx context.Context) *PacketMirroringsAggregatedListCall {
106089	c.ctx_ = ctx
106090	return c
106091}
106092
106093// Header returns an http.Header that can be modified by the caller to
106094// add HTTP headers to the request.
106095func (c *PacketMirroringsAggregatedListCall) Header() http.Header {
106096	if c.header_ == nil {
106097		c.header_ = make(http.Header)
106098	}
106099	return c.header_
106100}
106101
106102func (c *PacketMirroringsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
106103	reqHeaders := make(http.Header)
106104	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
106105	for k, v := range c.header_ {
106106		reqHeaders[k] = v
106107	}
106108	reqHeaders.Set("User-Agent", c.s.userAgent())
106109	if c.ifNoneMatch_ != "" {
106110		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
106111	}
106112	var body io.Reader = nil
106113	c.urlParams_.Set("alt", alt)
106114	c.urlParams_.Set("prettyPrint", "false")
106115	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/packetMirrorings")
106116	urls += "?" + c.urlParams_.Encode()
106117	req, err := http.NewRequest("GET", urls, body)
106118	if err != nil {
106119		return nil, err
106120	}
106121	req.Header = reqHeaders
106122	googleapi.Expand(req.URL, map[string]string{
106123		"project": c.project,
106124	})
106125	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106126}
106127
106128// Do executes the "compute.packetMirrorings.aggregatedList" call.
106129// Exactly one of *PacketMirroringAggregatedList or error will be
106130// non-nil. Any non-2xx status code is an error. Response headers are in
106131// either *PacketMirroringAggregatedList.ServerResponse.Header or (if a
106132// response was returned at all) in error.(*googleapi.Error).Header. Use
106133// googleapi.IsNotModified to check whether the returned error was
106134// because http.StatusNotModified was returned.
106135func (c *PacketMirroringsAggregatedListCall) Do(opts ...googleapi.CallOption) (*PacketMirroringAggregatedList, error) {
106136	gensupport.SetOptions(c.urlParams_, opts...)
106137	res, err := c.doRequest("json")
106138	if res != nil && res.StatusCode == http.StatusNotModified {
106139		if res.Body != nil {
106140			res.Body.Close()
106141		}
106142		return nil, &googleapi.Error{
106143			Code:   res.StatusCode,
106144			Header: res.Header,
106145		}
106146	}
106147	if err != nil {
106148		return nil, err
106149	}
106150	defer googleapi.CloseBody(res)
106151	if err := googleapi.CheckResponse(res); err != nil {
106152		return nil, err
106153	}
106154	ret := &PacketMirroringAggregatedList{
106155		ServerResponse: googleapi.ServerResponse{
106156			Header:         res.Header,
106157			HTTPStatusCode: res.StatusCode,
106158		},
106159	}
106160	target := &ret
106161	if err := gensupport.DecodeResponse(target, res); err != nil {
106162		return nil, err
106163	}
106164	return ret, nil
106165	// {
106166	//   "description": "Retrieves an aggregated list of packetMirrorings.",
106167	//   "httpMethod": "GET",
106168	//   "id": "compute.packetMirrorings.aggregatedList",
106169	//   "parameterOrder": [
106170	//     "project"
106171	//   ],
106172	//   "parameters": {
106173	//     "filter": {
106174	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
106175	//       "location": "query",
106176	//       "type": "string"
106177	//     },
106178	//     "includeAllScopes": {
106179	//       "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.",
106180	//       "location": "query",
106181	//       "type": "boolean"
106182	//     },
106183	//     "maxResults": {
106184	//       "default": "500",
106185	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
106186	//       "format": "uint32",
106187	//       "location": "query",
106188	//       "minimum": "0",
106189	//       "type": "integer"
106190	//     },
106191	//     "orderBy": {
106192	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
106193	//       "location": "query",
106194	//       "type": "string"
106195	//     },
106196	//     "pageToken": {
106197	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
106198	//       "location": "query",
106199	//       "type": "string"
106200	//     },
106201	//     "project": {
106202	//       "description": "Project ID for this request.",
106203	//       "location": "path",
106204	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106205	//       "required": true,
106206	//       "type": "string"
106207	//     },
106208	//     "returnPartialSuccess": {
106209	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
106210	//       "location": "query",
106211	//       "type": "boolean"
106212	//     }
106213	//   },
106214	//   "path": "projects/{project}/aggregated/packetMirrorings",
106215	//   "response": {
106216	//     "$ref": "PacketMirroringAggregatedList"
106217	//   },
106218	//   "scopes": [
106219	//     "https://www.googleapis.com/auth/cloud-platform",
106220	//     "https://www.googleapis.com/auth/compute",
106221	//     "https://www.googleapis.com/auth/compute.readonly"
106222	//   ]
106223	// }
106224
106225}
106226
106227// Pages invokes f for each page of results.
106228// A non-nil error returned from f will halt the iteration.
106229// The provided context supersedes any context provided to the Context method.
106230func (c *PacketMirroringsAggregatedListCall) Pages(ctx context.Context, f func(*PacketMirroringAggregatedList) error) error {
106231	c.ctx_ = ctx
106232	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
106233	for {
106234		x, err := c.Do()
106235		if err != nil {
106236			return err
106237		}
106238		if err := f(x); err != nil {
106239			return err
106240		}
106241		if x.NextPageToken == "" {
106242			return nil
106243		}
106244		c.PageToken(x.NextPageToken)
106245	}
106246}
106247
106248// method id "compute.packetMirrorings.delete":
106249
106250type PacketMirroringsDeleteCall struct {
106251	s               *Service
106252	project         string
106253	region          string
106254	packetMirroring string
106255	urlParams_      gensupport.URLParams
106256	ctx_            context.Context
106257	header_         http.Header
106258}
106259
106260// Delete: Deletes the specified PacketMirroring resource.
106261//
106262// - packetMirroring: Name of the PacketMirroring resource to delete.
106263// - project: Project ID for this request.
106264// - region: Name of the region for this request.
106265func (r *PacketMirroringsService) Delete(project string, region string, packetMirroring string) *PacketMirroringsDeleteCall {
106266	c := &PacketMirroringsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106267	c.project = project
106268	c.region = region
106269	c.packetMirroring = packetMirroring
106270	return c
106271}
106272
106273// RequestId sets the optional parameter "requestId": An optional
106274// request ID to identify requests. Specify a unique request ID so that
106275// if you must retry your request, the server will know to ignore the
106276// request if it has already been completed.
106277//
106278// For example, consider a situation where you make an initial request
106279// and the request times out. If you make the request again with the
106280// same request ID, the server can check if original operation with the
106281// same request ID was received, and if so, will ignore the second
106282// request. This prevents clients from accidentally creating duplicate
106283// commitments.
106284//
106285// The request ID must be a valid UUID with the exception that zero UUID
106286// is not supported (00000000-0000-0000-0000-000000000000).
106287func (c *PacketMirroringsDeleteCall) RequestId(requestId string) *PacketMirroringsDeleteCall {
106288	c.urlParams_.Set("requestId", requestId)
106289	return c
106290}
106291
106292// Fields allows partial responses to be retrieved. See
106293// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106294// for more information.
106295func (c *PacketMirroringsDeleteCall) Fields(s ...googleapi.Field) *PacketMirroringsDeleteCall {
106296	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106297	return c
106298}
106299
106300// Context sets the context to be used in this call's Do method. Any
106301// pending HTTP request will be aborted if the provided context is
106302// canceled.
106303func (c *PacketMirroringsDeleteCall) Context(ctx context.Context) *PacketMirroringsDeleteCall {
106304	c.ctx_ = ctx
106305	return c
106306}
106307
106308// Header returns an http.Header that can be modified by the caller to
106309// add HTTP headers to the request.
106310func (c *PacketMirroringsDeleteCall) Header() http.Header {
106311	if c.header_ == nil {
106312		c.header_ = make(http.Header)
106313	}
106314	return c.header_
106315}
106316
106317func (c *PacketMirroringsDeleteCall) doRequest(alt string) (*http.Response, error) {
106318	reqHeaders := make(http.Header)
106319	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
106320	for k, v := range c.header_ {
106321		reqHeaders[k] = v
106322	}
106323	reqHeaders.Set("User-Agent", c.s.userAgent())
106324	var body io.Reader = nil
106325	c.urlParams_.Set("alt", alt)
106326	c.urlParams_.Set("prettyPrint", "false")
106327	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}")
106328	urls += "?" + c.urlParams_.Encode()
106329	req, err := http.NewRequest("DELETE", urls, body)
106330	if err != nil {
106331		return nil, err
106332	}
106333	req.Header = reqHeaders
106334	googleapi.Expand(req.URL, map[string]string{
106335		"project":         c.project,
106336		"region":          c.region,
106337		"packetMirroring": c.packetMirroring,
106338	})
106339	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106340}
106341
106342// Do executes the "compute.packetMirrorings.delete" call.
106343// Exactly one of *Operation or error will be non-nil. Any non-2xx
106344// status code is an error. Response headers are in either
106345// *Operation.ServerResponse.Header or (if a response was returned at
106346// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
106347// to check whether the returned error was because
106348// http.StatusNotModified was returned.
106349func (c *PacketMirroringsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
106350	gensupport.SetOptions(c.urlParams_, opts...)
106351	res, err := c.doRequest("json")
106352	if res != nil && res.StatusCode == http.StatusNotModified {
106353		if res.Body != nil {
106354			res.Body.Close()
106355		}
106356		return nil, &googleapi.Error{
106357			Code:   res.StatusCode,
106358			Header: res.Header,
106359		}
106360	}
106361	if err != nil {
106362		return nil, err
106363	}
106364	defer googleapi.CloseBody(res)
106365	if err := googleapi.CheckResponse(res); err != nil {
106366		return nil, err
106367	}
106368	ret := &Operation{
106369		ServerResponse: googleapi.ServerResponse{
106370			Header:         res.Header,
106371			HTTPStatusCode: res.StatusCode,
106372		},
106373	}
106374	target := &ret
106375	if err := gensupport.DecodeResponse(target, res); err != nil {
106376		return nil, err
106377	}
106378	return ret, nil
106379	// {
106380	//   "description": "Deletes the specified PacketMirroring resource.",
106381	//   "httpMethod": "DELETE",
106382	//   "id": "compute.packetMirrorings.delete",
106383	//   "parameterOrder": [
106384	//     "project",
106385	//     "region",
106386	//     "packetMirroring"
106387	//   ],
106388	//   "parameters": {
106389	//     "packetMirroring": {
106390	//       "description": "Name of the PacketMirroring resource to delete.",
106391	//       "location": "path",
106392	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
106393	//       "required": true,
106394	//       "type": "string"
106395	//     },
106396	//     "project": {
106397	//       "description": "Project ID for this request.",
106398	//       "location": "path",
106399	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106400	//       "required": true,
106401	//       "type": "string"
106402	//     },
106403	//     "region": {
106404	//       "description": "Name of the region for this request.",
106405	//       "location": "path",
106406	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
106407	//       "required": true,
106408	//       "type": "string"
106409	//     },
106410	//     "requestId": {
106411	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
106412	//       "location": "query",
106413	//       "type": "string"
106414	//     }
106415	//   },
106416	//   "path": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}",
106417	//   "response": {
106418	//     "$ref": "Operation"
106419	//   },
106420	//   "scopes": [
106421	//     "https://www.googleapis.com/auth/cloud-platform",
106422	//     "https://www.googleapis.com/auth/compute"
106423	//   ]
106424	// }
106425
106426}
106427
106428// method id "compute.packetMirrorings.get":
106429
106430type PacketMirroringsGetCall struct {
106431	s               *Service
106432	project         string
106433	region          string
106434	packetMirroring string
106435	urlParams_      gensupport.URLParams
106436	ifNoneMatch_    string
106437	ctx_            context.Context
106438	header_         http.Header
106439}
106440
106441// Get: Returns the specified PacketMirroring resource.
106442//
106443// - packetMirroring: Name of the PacketMirroring resource to return.
106444// - project: Project ID for this request.
106445// - region: Name of the region for this request.
106446func (r *PacketMirroringsService) Get(project string, region string, packetMirroring string) *PacketMirroringsGetCall {
106447	c := &PacketMirroringsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106448	c.project = project
106449	c.region = region
106450	c.packetMirroring = packetMirroring
106451	return c
106452}
106453
106454// Fields allows partial responses to be retrieved. See
106455// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106456// for more information.
106457func (c *PacketMirroringsGetCall) Fields(s ...googleapi.Field) *PacketMirroringsGetCall {
106458	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106459	return c
106460}
106461
106462// IfNoneMatch sets the optional parameter which makes the operation
106463// fail if the object's ETag matches the given value. This is useful for
106464// getting updates only after the object has changed since the last
106465// request. Use googleapi.IsNotModified to check whether the response
106466// error from Do is the result of In-None-Match.
106467func (c *PacketMirroringsGetCall) IfNoneMatch(entityTag string) *PacketMirroringsGetCall {
106468	c.ifNoneMatch_ = entityTag
106469	return c
106470}
106471
106472// Context sets the context to be used in this call's Do method. Any
106473// pending HTTP request will be aborted if the provided context is
106474// canceled.
106475func (c *PacketMirroringsGetCall) Context(ctx context.Context) *PacketMirroringsGetCall {
106476	c.ctx_ = ctx
106477	return c
106478}
106479
106480// Header returns an http.Header that can be modified by the caller to
106481// add HTTP headers to the request.
106482func (c *PacketMirroringsGetCall) Header() http.Header {
106483	if c.header_ == nil {
106484		c.header_ = make(http.Header)
106485	}
106486	return c.header_
106487}
106488
106489func (c *PacketMirroringsGetCall) doRequest(alt string) (*http.Response, error) {
106490	reqHeaders := make(http.Header)
106491	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
106492	for k, v := range c.header_ {
106493		reqHeaders[k] = v
106494	}
106495	reqHeaders.Set("User-Agent", c.s.userAgent())
106496	if c.ifNoneMatch_ != "" {
106497		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
106498	}
106499	var body io.Reader = nil
106500	c.urlParams_.Set("alt", alt)
106501	c.urlParams_.Set("prettyPrint", "false")
106502	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}")
106503	urls += "?" + c.urlParams_.Encode()
106504	req, err := http.NewRequest("GET", urls, body)
106505	if err != nil {
106506		return nil, err
106507	}
106508	req.Header = reqHeaders
106509	googleapi.Expand(req.URL, map[string]string{
106510		"project":         c.project,
106511		"region":          c.region,
106512		"packetMirroring": c.packetMirroring,
106513	})
106514	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106515}
106516
106517// Do executes the "compute.packetMirrorings.get" call.
106518// Exactly one of *PacketMirroring or error will be non-nil. Any non-2xx
106519// status code is an error. Response headers are in either
106520// *PacketMirroring.ServerResponse.Header or (if a response was returned
106521// at all) in error.(*googleapi.Error).Header. Use
106522// googleapi.IsNotModified to check whether the returned error was
106523// because http.StatusNotModified was returned.
106524func (c *PacketMirroringsGetCall) Do(opts ...googleapi.CallOption) (*PacketMirroring, error) {
106525	gensupport.SetOptions(c.urlParams_, opts...)
106526	res, err := c.doRequest("json")
106527	if res != nil && res.StatusCode == http.StatusNotModified {
106528		if res.Body != nil {
106529			res.Body.Close()
106530		}
106531		return nil, &googleapi.Error{
106532			Code:   res.StatusCode,
106533			Header: res.Header,
106534		}
106535	}
106536	if err != nil {
106537		return nil, err
106538	}
106539	defer googleapi.CloseBody(res)
106540	if err := googleapi.CheckResponse(res); err != nil {
106541		return nil, err
106542	}
106543	ret := &PacketMirroring{
106544		ServerResponse: googleapi.ServerResponse{
106545			Header:         res.Header,
106546			HTTPStatusCode: res.StatusCode,
106547		},
106548	}
106549	target := &ret
106550	if err := gensupport.DecodeResponse(target, res); err != nil {
106551		return nil, err
106552	}
106553	return ret, nil
106554	// {
106555	//   "description": "Returns the specified PacketMirroring resource.",
106556	//   "httpMethod": "GET",
106557	//   "id": "compute.packetMirrorings.get",
106558	//   "parameterOrder": [
106559	//     "project",
106560	//     "region",
106561	//     "packetMirroring"
106562	//   ],
106563	//   "parameters": {
106564	//     "packetMirroring": {
106565	//       "description": "Name of the PacketMirroring resource to return.",
106566	//       "location": "path",
106567	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
106568	//       "required": true,
106569	//       "type": "string"
106570	//     },
106571	//     "project": {
106572	//       "description": "Project ID for this request.",
106573	//       "location": "path",
106574	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106575	//       "required": true,
106576	//       "type": "string"
106577	//     },
106578	//     "region": {
106579	//       "description": "Name of the region for this request.",
106580	//       "location": "path",
106581	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
106582	//       "required": true,
106583	//       "type": "string"
106584	//     }
106585	//   },
106586	//   "path": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}",
106587	//   "response": {
106588	//     "$ref": "PacketMirroring"
106589	//   },
106590	//   "scopes": [
106591	//     "https://www.googleapis.com/auth/cloud-platform",
106592	//     "https://www.googleapis.com/auth/compute",
106593	//     "https://www.googleapis.com/auth/compute.readonly"
106594	//   ]
106595	// }
106596
106597}
106598
106599// method id "compute.packetMirrorings.insert":
106600
106601type PacketMirroringsInsertCall struct {
106602	s               *Service
106603	project         string
106604	region          string
106605	packetmirroring *PacketMirroring
106606	urlParams_      gensupport.URLParams
106607	ctx_            context.Context
106608	header_         http.Header
106609}
106610
106611// Insert: Creates a PacketMirroring resource in the specified project
106612// and region using the data included in the request.
106613//
106614// - project: Project ID for this request.
106615// - region: Name of the region for this request.
106616func (r *PacketMirroringsService) Insert(project string, region string, packetmirroring *PacketMirroring) *PacketMirroringsInsertCall {
106617	c := &PacketMirroringsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106618	c.project = project
106619	c.region = region
106620	c.packetmirroring = packetmirroring
106621	return c
106622}
106623
106624// RequestId sets the optional parameter "requestId": An optional
106625// request ID to identify requests. Specify a unique request ID so that
106626// if you must retry your request, the server will know to ignore the
106627// request if it has already been completed.
106628//
106629// For example, consider a situation where you make an initial request
106630// and the request times out. If you make the request again with the
106631// same request ID, the server can check if original operation with the
106632// same request ID was received, and if so, will ignore the second
106633// request. This prevents clients from accidentally creating duplicate
106634// commitments.
106635//
106636// The request ID must be a valid UUID with the exception that zero UUID
106637// is not supported (00000000-0000-0000-0000-000000000000).
106638func (c *PacketMirroringsInsertCall) RequestId(requestId string) *PacketMirroringsInsertCall {
106639	c.urlParams_.Set("requestId", requestId)
106640	return c
106641}
106642
106643// Fields allows partial responses to be retrieved. See
106644// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106645// for more information.
106646func (c *PacketMirroringsInsertCall) Fields(s ...googleapi.Field) *PacketMirroringsInsertCall {
106647	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106648	return c
106649}
106650
106651// Context sets the context to be used in this call's Do method. Any
106652// pending HTTP request will be aborted if the provided context is
106653// canceled.
106654func (c *PacketMirroringsInsertCall) Context(ctx context.Context) *PacketMirroringsInsertCall {
106655	c.ctx_ = ctx
106656	return c
106657}
106658
106659// Header returns an http.Header that can be modified by the caller to
106660// add HTTP headers to the request.
106661func (c *PacketMirroringsInsertCall) Header() http.Header {
106662	if c.header_ == nil {
106663		c.header_ = make(http.Header)
106664	}
106665	return c.header_
106666}
106667
106668func (c *PacketMirroringsInsertCall) doRequest(alt string) (*http.Response, error) {
106669	reqHeaders := make(http.Header)
106670	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
106671	for k, v := range c.header_ {
106672		reqHeaders[k] = v
106673	}
106674	reqHeaders.Set("User-Agent", c.s.userAgent())
106675	var body io.Reader = nil
106676	body, err := googleapi.WithoutDataWrapper.JSONReader(c.packetmirroring)
106677	if err != nil {
106678		return nil, err
106679	}
106680	reqHeaders.Set("Content-Type", "application/json")
106681	c.urlParams_.Set("alt", alt)
106682	c.urlParams_.Set("prettyPrint", "false")
106683	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings")
106684	urls += "?" + c.urlParams_.Encode()
106685	req, err := http.NewRequest("POST", urls, body)
106686	if err != nil {
106687		return nil, err
106688	}
106689	req.Header = reqHeaders
106690	googleapi.Expand(req.URL, map[string]string{
106691		"project": c.project,
106692		"region":  c.region,
106693	})
106694	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106695}
106696
106697// Do executes the "compute.packetMirrorings.insert" call.
106698// Exactly one of *Operation or error will be non-nil. Any non-2xx
106699// status code is an error. Response headers are in either
106700// *Operation.ServerResponse.Header or (if a response was returned at
106701// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
106702// to check whether the returned error was because
106703// http.StatusNotModified was returned.
106704func (c *PacketMirroringsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
106705	gensupport.SetOptions(c.urlParams_, opts...)
106706	res, err := c.doRequest("json")
106707	if res != nil && res.StatusCode == http.StatusNotModified {
106708		if res.Body != nil {
106709			res.Body.Close()
106710		}
106711		return nil, &googleapi.Error{
106712			Code:   res.StatusCode,
106713			Header: res.Header,
106714		}
106715	}
106716	if err != nil {
106717		return nil, err
106718	}
106719	defer googleapi.CloseBody(res)
106720	if err := googleapi.CheckResponse(res); err != nil {
106721		return nil, err
106722	}
106723	ret := &Operation{
106724		ServerResponse: googleapi.ServerResponse{
106725			Header:         res.Header,
106726			HTTPStatusCode: res.StatusCode,
106727		},
106728	}
106729	target := &ret
106730	if err := gensupport.DecodeResponse(target, res); err != nil {
106731		return nil, err
106732	}
106733	return ret, nil
106734	// {
106735	//   "description": "Creates a PacketMirroring resource in the specified project and region using the data included in the request.",
106736	//   "httpMethod": "POST",
106737	//   "id": "compute.packetMirrorings.insert",
106738	//   "parameterOrder": [
106739	//     "project",
106740	//     "region"
106741	//   ],
106742	//   "parameters": {
106743	//     "project": {
106744	//       "description": "Project ID for this request.",
106745	//       "location": "path",
106746	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106747	//       "required": true,
106748	//       "type": "string"
106749	//     },
106750	//     "region": {
106751	//       "description": "Name of the region for this request.",
106752	//       "location": "path",
106753	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
106754	//       "required": true,
106755	//       "type": "string"
106756	//     },
106757	//     "requestId": {
106758	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
106759	//       "location": "query",
106760	//       "type": "string"
106761	//     }
106762	//   },
106763	//   "path": "projects/{project}/regions/{region}/packetMirrorings",
106764	//   "request": {
106765	//     "$ref": "PacketMirroring"
106766	//   },
106767	//   "response": {
106768	//     "$ref": "Operation"
106769	//   },
106770	//   "scopes": [
106771	//     "https://www.googleapis.com/auth/cloud-platform",
106772	//     "https://www.googleapis.com/auth/compute"
106773	//   ]
106774	// }
106775
106776}
106777
106778// method id "compute.packetMirrorings.list":
106779
106780type PacketMirroringsListCall struct {
106781	s            *Service
106782	project      string
106783	region       string
106784	urlParams_   gensupport.URLParams
106785	ifNoneMatch_ string
106786	ctx_         context.Context
106787	header_      http.Header
106788}
106789
106790// List: Retrieves a list of PacketMirroring resources available to the
106791// specified project and region.
106792//
106793// - project: Project ID for this request.
106794// - region: Name of the region for this request.
106795func (r *PacketMirroringsService) List(project string, region string) *PacketMirroringsListCall {
106796	c := &PacketMirroringsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106797	c.project = project
106798	c.region = region
106799	return c
106800}
106801
106802// Filter sets the optional parameter "filter": A filter expression that
106803// filters resources listed in the response. The expression must specify
106804// the field name, a comparison operator, and the value that you want to
106805// use for filtering. The value must be a string, a number, or a
106806// boolean. The comparison operator must be either `=`, `!=`, `>`, or
106807// `<`.
106808//
106809// For example, if you are filtering Compute Engine instances, you can
106810// exclude instances named `example-instance` by specifying `name !=
106811// example-instance`.
106812//
106813// You can also filter nested fields. For example, you could specify
106814// `scheduling.automaticRestart = false` to include instances only if
106815// they are not scheduled for automatic restarts. You can use filtering
106816// on nested fields to filter based on resource labels.
106817//
106818// To filter on multiple expressions, provide each separate expression
106819// within parentheses. For example: ``` (scheduling.automaticRestart =
106820// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
106821// is an `AND` expression. However, you can include `AND` and `OR`
106822// expressions explicitly. For example: ``` (cpuPlatform = "Intel
106823// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
106824// (scheduling.automaticRestart = true) ```
106825func (c *PacketMirroringsListCall) Filter(filter string) *PacketMirroringsListCall {
106826	c.urlParams_.Set("filter", filter)
106827	return c
106828}
106829
106830// MaxResults sets the optional parameter "maxResults": The maximum
106831// number of results per page that should be returned. If the number of
106832// available results is larger than `maxResults`, Compute Engine returns
106833// a `nextPageToken` that can be used to get the next page of results in
106834// subsequent list requests. Acceptable values are `0` to `500`,
106835// inclusive. (Default: `500`)
106836func (c *PacketMirroringsListCall) MaxResults(maxResults int64) *PacketMirroringsListCall {
106837	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
106838	return c
106839}
106840
106841// OrderBy sets the optional parameter "orderBy": Sorts list results by
106842// a certain order. By default, results are returned in alphanumerical
106843// order based on the resource name.
106844//
106845// You can also sort results in descending order based on the creation
106846// timestamp using `orderBy="creationTimestamp desc". This sorts
106847// results based on the `creationTimestamp` field in reverse
106848// chronological order (newest result first). Use this to sort resources
106849// like operations so that the newest operation is returned
106850// first.
106851//
106852// Currently, only sorting by `name` or `creationTimestamp desc` is
106853// supported.
106854func (c *PacketMirroringsListCall) OrderBy(orderBy string) *PacketMirroringsListCall {
106855	c.urlParams_.Set("orderBy", orderBy)
106856	return c
106857}
106858
106859// PageToken sets the optional parameter "pageToken": Specifies a page
106860// token to use. Set `pageToken` to the `nextPageToken` returned by a
106861// previous list request to get the next page of results.
106862func (c *PacketMirroringsListCall) PageToken(pageToken string) *PacketMirroringsListCall {
106863	c.urlParams_.Set("pageToken", pageToken)
106864	return c
106865}
106866
106867// ReturnPartialSuccess sets the optional parameter
106868// "returnPartialSuccess": Opt-in for partial success behavior which
106869// provides partial results in case of failure. The default value is
106870// false.
106871func (c *PacketMirroringsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PacketMirroringsListCall {
106872	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
106873	return c
106874}
106875
106876// Fields allows partial responses to be retrieved. See
106877// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106878// for more information.
106879func (c *PacketMirroringsListCall) Fields(s ...googleapi.Field) *PacketMirroringsListCall {
106880	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106881	return c
106882}
106883
106884// IfNoneMatch sets the optional parameter which makes the operation
106885// fail if the object's ETag matches the given value. This is useful for
106886// getting updates only after the object has changed since the last
106887// request. Use googleapi.IsNotModified to check whether the response
106888// error from Do is the result of In-None-Match.
106889func (c *PacketMirroringsListCall) IfNoneMatch(entityTag string) *PacketMirroringsListCall {
106890	c.ifNoneMatch_ = entityTag
106891	return c
106892}
106893
106894// Context sets the context to be used in this call's Do method. Any
106895// pending HTTP request will be aborted if the provided context is
106896// canceled.
106897func (c *PacketMirroringsListCall) Context(ctx context.Context) *PacketMirroringsListCall {
106898	c.ctx_ = ctx
106899	return c
106900}
106901
106902// Header returns an http.Header that can be modified by the caller to
106903// add HTTP headers to the request.
106904func (c *PacketMirroringsListCall) Header() http.Header {
106905	if c.header_ == nil {
106906		c.header_ = make(http.Header)
106907	}
106908	return c.header_
106909}
106910
106911func (c *PacketMirroringsListCall) doRequest(alt string) (*http.Response, error) {
106912	reqHeaders := make(http.Header)
106913	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
106914	for k, v := range c.header_ {
106915		reqHeaders[k] = v
106916	}
106917	reqHeaders.Set("User-Agent", c.s.userAgent())
106918	if c.ifNoneMatch_ != "" {
106919		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
106920	}
106921	var body io.Reader = nil
106922	c.urlParams_.Set("alt", alt)
106923	c.urlParams_.Set("prettyPrint", "false")
106924	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings")
106925	urls += "?" + c.urlParams_.Encode()
106926	req, err := http.NewRequest("GET", urls, body)
106927	if err != nil {
106928		return nil, err
106929	}
106930	req.Header = reqHeaders
106931	googleapi.Expand(req.URL, map[string]string{
106932		"project": c.project,
106933		"region":  c.region,
106934	})
106935	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106936}
106937
106938// Do executes the "compute.packetMirrorings.list" call.
106939// Exactly one of *PacketMirroringList or error will be non-nil. Any
106940// non-2xx status code is an error. Response headers are in either
106941// *PacketMirroringList.ServerResponse.Header or (if a response was
106942// returned at all) in error.(*googleapi.Error).Header. Use
106943// googleapi.IsNotModified to check whether the returned error was
106944// because http.StatusNotModified was returned.
106945func (c *PacketMirroringsListCall) Do(opts ...googleapi.CallOption) (*PacketMirroringList, error) {
106946	gensupport.SetOptions(c.urlParams_, opts...)
106947	res, err := c.doRequest("json")
106948	if res != nil && res.StatusCode == http.StatusNotModified {
106949		if res.Body != nil {
106950			res.Body.Close()
106951		}
106952		return nil, &googleapi.Error{
106953			Code:   res.StatusCode,
106954			Header: res.Header,
106955		}
106956	}
106957	if err != nil {
106958		return nil, err
106959	}
106960	defer googleapi.CloseBody(res)
106961	if err := googleapi.CheckResponse(res); err != nil {
106962		return nil, err
106963	}
106964	ret := &PacketMirroringList{
106965		ServerResponse: googleapi.ServerResponse{
106966			Header:         res.Header,
106967			HTTPStatusCode: res.StatusCode,
106968		},
106969	}
106970	target := &ret
106971	if err := gensupport.DecodeResponse(target, res); err != nil {
106972		return nil, err
106973	}
106974	return ret, nil
106975	// {
106976	//   "description": "Retrieves a list of PacketMirroring resources available to the specified project and region.",
106977	//   "httpMethod": "GET",
106978	//   "id": "compute.packetMirrorings.list",
106979	//   "parameterOrder": [
106980	//     "project",
106981	//     "region"
106982	//   ],
106983	//   "parameters": {
106984	//     "filter": {
106985	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
106986	//       "location": "query",
106987	//       "type": "string"
106988	//     },
106989	//     "maxResults": {
106990	//       "default": "500",
106991	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
106992	//       "format": "uint32",
106993	//       "location": "query",
106994	//       "minimum": "0",
106995	//       "type": "integer"
106996	//     },
106997	//     "orderBy": {
106998	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
106999	//       "location": "query",
107000	//       "type": "string"
107001	//     },
107002	//     "pageToken": {
107003	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
107004	//       "location": "query",
107005	//       "type": "string"
107006	//     },
107007	//     "project": {
107008	//       "description": "Project ID for this request.",
107009	//       "location": "path",
107010	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107011	//       "required": true,
107012	//       "type": "string"
107013	//     },
107014	//     "region": {
107015	//       "description": "Name of the region for this request.",
107016	//       "location": "path",
107017	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
107018	//       "required": true,
107019	//       "type": "string"
107020	//     },
107021	//     "returnPartialSuccess": {
107022	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
107023	//       "location": "query",
107024	//       "type": "boolean"
107025	//     }
107026	//   },
107027	//   "path": "projects/{project}/regions/{region}/packetMirrorings",
107028	//   "response": {
107029	//     "$ref": "PacketMirroringList"
107030	//   },
107031	//   "scopes": [
107032	//     "https://www.googleapis.com/auth/cloud-platform",
107033	//     "https://www.googleapis.com/auth/compute",
107034	//     "https://www.googleapis.com/auth/compute.readonly"
107035	//   ]
107036	// }
107037
107038}
107039
107040// Pages invokes f for each page of results.
107041// A non-nil error returned from f will halt the iteration.
107042// The provided context supersedes any context provided to the Context method.
107043func (c *PacketMirroringsListCall) Pages(ctx context.Context, f func(*PacketMirroringList) error) error {
107044	c.ctx_ = ctx
107045	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
107046	for {
107047		x, err := c.Do()
107048		if err != nil {
107049			return err
107050		}
107051		if err := f(x); err != nil {
107052			return err
107053		}
107054		if x.NextPageToken == "" {
107055			return nil
107056		}
107057		c.PageToken(x.NextPageToken)
107058	}
107059}
107060
107061// method id "compute.packetMirrorings.patch":
107062
107063type PacketMirroringsPatchCall struct {
107064	s               *Service
107065	project         string
107066	region          string
107067	packetMirroring string
107068	packetmirroring *PacketMirroring
107069	urlParams_      gensupport.URLParams
107070	ctx_            context.Context
107071	header_         http.Header
107072}
107073
107074// Patch: Patches the specified PacketMirroring resource with the data
107075// included in the request. This method supports PATCH semantics and
107076// uses JSON merge patch format and processing rules.
107077//
107078// - packetMirroring: Name of the PacketMirroring resource to patch.
107079// - project: Project ID for this request.
107080// - region: Name of the region for this request.
107081func (r *PacketMirroringsService) Patch(project string, region string, packetMirroring string, packetmirroring *PacketMirroring) *PacketMirroringsPatchCall {
107082	c := &PacketMirroringsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107083	c.project = project
107084	c.region = region
107085	c.packetMirroring = packetMirroring
107086	c.packetmirroring = packetmirroring
107087	return c
107088}
107089
107090// RequestId sets the optional parameter "requestId": An optional
107091// request ID to identify requests. Specify a unique request ID so that
107092// if you must retry your request, the server will know to ignore the
107093// request if it has already been completed.
107094//
107095// For example, consider a situation where you make an initial request
107096// and the request times out. If you make the request again with the
107097// same request ID, the server can check if original operation with the
107098// same request ID was received, and if so, will ignore the second
107099// request. This prevents clients from accidentally creating duplicate
107100// commitments.
107101//
107102// The request ID must be a valid UUID with the exception that zero UUID
107103// is not supported (00000000-0000-0000-0000-000000000000).
107104func (c *PacketMirroringsPatchCall) RequestId(requestId string) *PacketMirroringsPatchCall {
107105	c.urlParams_.Set("requestId", requestId)
107106	return c
107107}
107108
107109// Fields allows partial responses to be retrieved. See
107110// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107111// for more information.
107112func (c *PacketMirroringsPatchCall) Fields(s ...googleapi.Field) *PacketMirroringsPatchCall {
107113	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107114	return c
107115}
107116
107117// Context sets the context to be used in this call's Do method. Any
107118// pending HTTP request will be aborted if the provided context is
107119// canceled.
107120func (c *PacketMirroringsPatchCall) Context(ctx context.Context) *PacketMirroringsPatchCall {
107121	c.ctx_ = ctx
107122	return c
107123}
107124
107125// Header returns an http.Header that can be modified by the caller to
107126// add HTTP headers to the request.
107127func (c *PacketMirroringsPatchCall) Header() http.Header {
107128	if c.header_ == nil {
107129		c.header_ = make(http.Header)
107130	}
107131	return c.header_
107132}
107133
107134func (c *PacketMirroringsPatchCall) doRequest(alt string) (*http.Response, error) {
107135	reqHeaders := make(http.Header)
107136	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
107137	for k, v := range c.header_ {
107138		reqHeaders[k] = v
107139	}
107140	reqHeaders.Set("User-Agent", c.s.userAgent())
107141	var body io.Reader = nil
107142	body, err := googleapi.WithoutDataWrapper.JSONReader(c.packetmirroring)
107143	if err != nil {
107144		return nil, err
107145	}
107146	reqHeaders.Set("Content-Type", "application/json")
107147	c.urlParams_.Set("alt", alt)
107148	c.urlParams_.Set("prettyPrint", "false")
107149	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}")
107150	urls += "?" + c.urlParams_.Encode()
107151	req, err := http.NewRequest("PATCH", urls, body)
107152	if err != nil {
107153		return nil, err
107154	}
107155	req.Header = reqHeaders
107156	googleapi.Expand(req.URL, map[string]string{
107157		"project":         c.project,
107158		"region":          c.region,
107159		"packetMirroring": c.packetMirroring,
107160	})
107161	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107162}
107163
107164// Do executes the "compute.packetMirrorings.patch" call.
107165// Exactly one of *Operation or error will be non-nil. Any non-2xx
107166// status code is an error. Response headers are in either
107167// *Operation.ServerResponse.Header or (if a response was returned at
107168// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
107169// to check whether the returned error was because
107170// http.StatusNotModified was returned.
107171func (c *PacketMirroringsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
107172	gensupport.SetOptions(c.urlParams_, opts...)
107173	res, err := c.doRequest("json")
107174	if res != nil && res.StatusCode == http.StatusNotModified {
107175		if res.Body != nil {
107176			res.Body.Close()
107177		}
107178		return nil, &googleapi.Error{
107179			Code:   res.StatusCode,
107180			Header: res.Header,
107181		}
107182	}
107183	if err != nil {
107184		return nil, err
107185	}
107186	defer googleapi.CloseBody(res)
107187	if err := googleapi.CheckResponse(res); err != nil {
107188		return nil, err
107189	}
107190	ret := &Operation{
107191		ServerResponse: googleapi.ServerResponse{
107192			Header:         res.Header,
107193			HTTPStatusCode: res.StatusCode,
107194		},
107195	}
107196	target := &ret
107197	if err := gensupport.DecodeResponse(target, res); err != nil {
107198		return nil, err
107199	}
107200	return ret, nil
107201	// {
107202	//   "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.",
107203	//   "httpMethod": "PATCH",
107204	//   "id": "compute.packetMirrorings.patch",
107205	//   "parameterOrder": [
107206	//     "project",
107207	//     "region",
107208	//     "packetMirroring"
107209	//   ],
107210	//   "parameters": {
107211	//     "packetMirroring": {
107212	//       "description": "Name of the PacketMirroring resource to patch.",
107213	//       "location": "path",
107214	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107215	//       "required": true,
107216	//       "type": "string"
107217	//     },
107218	//     "project": {
107219	//       "description": "Project ID for this request.",
107220	//       "location": "path",
107221	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107222	//       "required": true,
107223	//       "type": "string"
107224	//     },
107225	//     "region": {
107226	//       "description": "Name of the region for this request.",
107227	//       "location": "path",
107228	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
107229	//       "required": true,
107230	//       "type": "string"
107231	//     },
107232	//     "requestId": {
107233	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
107234	//       "location": "query",
107235	//       "type": "string"
107236	//     }
107237	//   },
107238	//   "path": "projects/{project}/regions/{region}/packetMirrorings/{packetMirroring}",
107239	//   "request": {
107240	//     "$ref": "PacketMirroring"
107241	//   },
107242	//   "response": {
107243	//     "$ref": "Operation"
107244	//   },
107245	//   "scopes": [
107246	//     "https://www.googleapis.com/auth/cloud-platform",
107247	//     "https://www.googleapis.com/auth/compute"
107248	//   ]
107249	// }
107250
107251}
107252
107253// method id "compute.packetMirrorings.testIamPermissions":
107254
107255type PacketMirroringsTestIamPermissionsCall struct {
107256	s                      *Service
107257	project                string
107258	region                 string
107259	resource               string
107260	testpermissionsrequest *TestPermissionsRequest
107261	urlParams_             gensupport.URLParams
107262	ctx_                   context.Context
107263	header_                http.Header
107264}
107265
107266// TestIamPermissions: Returns permissions that a caller has on the
107267// specified resource.
107268//
107269// - project: Project ID for this request.
107270// - region: The name of the region for this request.
107271// - resource: Name or id of the resource for this request.
107272func (r *PacketMirroringsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *PacketMirroringsTestIamPermissionsCall {
107273	c := &PacketMirroringsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107274	c.project = project
107275	c.region = region
107276	c.resource = resource
107277	c.testpermissionsrequest = testpermissionsrequest
107278	return c
107279}
107280
107281// Fields allows partial responses to be retrieved. See
107282// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107283// for more information.
107284func (c *PacketMirroringsTestIamPermissionsCall) Fields(s ...googleapi.Field) *PacketMirroringsTestIamPermissionsCall {
107285	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107286	return c
107287}
107288
107289// Context sets the context to be used in this call's Do method. Any
107290// pending HTTP request will be aborted if the provided context is
107291// canceled.
107292func (c *PacketMirroringsTestIamPermissionsCall) Context(ctx context.Context) *PacketMirroringsTestIamPermissionsCall {
107293	c.ctx_ = ctx
107294	return c
107295}
107296
107297// Header returns an http.Header that can be modified by the caller to
107298// add HTTP headers to the request.
107299func (c *PacketMirroringsTestIamPermissionsCall) Header() http.Header {
107300	if c.header_ == nil {
107301		c.header_ = make(http.Header)
107302	}
107303	return c.header_
107304}
107305
107306func (c *PacketMirroringsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
107307	reqHeaders := make(http.Header)
107308	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
107309	for k, v := range c.header_ {
107310		reqHeaders[k] = v
107311	}
107312	reqHeaders.Set("User-Agent", c.s.userAgent())
107313	var body io.Reader = nil
107314	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
107315	if err != nil {
107316		return nil, err
107317	}
107318	reqHeaders.Set("Content-Type", "application/json")
107319	c.urlParams_.Set("alt", alt)
107320	c.urlParams_.Set("prettyPrint", "false")
107321	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions")
107322	urls += "?" + c.urlParams_.Encode()
107323	req, err := http.NewRequest("POST", urls, body)
107324	if err != nil {
107325		return nil, err
107326	}
107327	req.Header = reqHeaders
107328	googleapi.Expand(req.URL, map[string]string{
107329		"project":  c.project,
107330		"region":   c.region,
107331		"resource": c.resource,
107332	})
107333	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107334}
107335
107336// Do executes the "compute.packetMirrorings.testIamPermissions" call.
107337// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
107338// non-2xx status code is an error. Response headers are in either
107339// *TestPermissionsResponse.ServerResponse.Header or (if a response was
107340// returned at all) in error.(*googleapi.Error).Header. Use
107341// googleapi.IsNotModified to check whether the returned error was
107342// because http.StatusNotModified was returned.
107343func (c *PacketMirroringsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
107344	gensupport.SetOptions(c.urlParams_, opts...)
107345	res, err := c.doRequest("json")
107346	if res != nil && res.StatusCode == http.StatusNotModified {
107347		if res.Body != nil {
107348			res.Body.Close()
107349		}
107350		return nil, &googleapi.Error{
107351			Code:   res.StatusCode,
107352			Header: res.Header,
107353		}
107354	}
107355	if err != nil {
107356		return nil, err
107357	}
107358	defer googleapi.CloseBody(res)
107359	if err := googleapi.CheckResponse(res); err != nil {
107360		return nil, err
107361	}
107362	ret := &TestPermissionsResponse{
107363		ServerResponse: googleapi.ServerResponse{
107364			Header:         res.Header,
107365			HTTPStatusCode: res.StatusCode,
107366		},
107367	}
107368	target := &ret
107369	if err := gensupport.DecodeResponse(target, res); err != nil {
107370		return nil, err
107371	}
107372	return ret, nil
107373	// {
107374	//   "description": "Returns permissions that a caller has on the specified resource.",
107375	//   "httpMethod": "POST",
107376	//   "id": "compute.packetMirrorings.testIamPermissions",
107377	//   "parameterOrder": [
107378	//     "project",
107379	//     "region",
107380	//     "resource"
107381	//   ],
107382	//   "parameters": {
107383	//     "project": {
107384	//       "description": "Project ID for this request.",
107385	//       "location": "path",
107386	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107387	//       "required": true,
107388	//       "type": "string"
107389	//     },
107390	//     "region": {
107391	//       "description": "The name of the region for this request.",
107392	//       "location": "path",
107393	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
107394	//       "required": true,
107395	//       "type": "string"
107396	//     },
107397	//     "resource": {
107398	//       "description": "Name or id of the resource for this request.",
107399	//       "location": "path",
107400	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107401	//       "required": true,
107402	//       "type": "string"
107403	//     }
107404	//   },
107405	//   "path": "projects/{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions",
107406	//   "request": {
107407	//     "$ref": "TestPermissionsRequest"
107408	//   },
107409	//   "response": {
107410	//     "$ref": "TestPermissionsResponse"
107411	//   },
107412	//   "scopes": [
107413	//     "https://www.googleapis.com/auth/cloud-platform",
107414	//     "https://www.googleapis.com/auth/compute",
107415	//     "https://www.googleapis.com/auth/compute.readonly"
107416	//   ]
107417	// }
107418
107419}
107420
107421// method id "compute.projects.disableXpnHost":
107422
107423type ProjectsDisableXpnHostCall struct {
107424	s          *Service
107425	project    string
107426	urlParams_ gensupport.URLParams
107427	ctx_       context.Context
107428	header_    http.Header
107429}
107430
107431// DisableXpnHost: Disable this project as a shared VPC host project.
107432//
107433// - project: Project ID for this request.
107434func (r *ProjectsService) DisableXpnHost(project string) *ProjectsDisableXpnHostCall {
107435	c := &ProjectsDisableXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107436	c.project = project
107437	return c
107438}
107439
107440// RequestId sets the optional parameter "requestId": An optional
107441// request ID to identify requests. Specify a unique request ID so that
107442// if you must retry your request, the server will know to ignore the
107443// request if it has already been completed.
107444//
107445// For example, consider a situation where you make an initial request
107446// and the request times out. If you make the request again with the
107447// same request ID, the server can check if original operation with the
107448// same request ID was received, and if so, will ignore the second
107449// request. This prevents clients from accidentally creating duplicate
107450// commitments.
107451//
107452// The request ID must be a valid UUID with the exception that zero UUID
107453// is not supported (00000000-0000-0000-0000-000000000000).
107454func (c *ProjectsDisableXpnHostCall) RequestId(requestId string) *ProjectsDisableXpnHostCall {
107455	c.urlParams_.Set("requestId", requestId)
107456	return c
107457}
107458
107459// Fields allows partial responses to be retrieved. See
107460// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107461// for more information.
107462func (c *ProjectsDisableXpnHostCall) Fields(s ...googleapi.Field) *ProjectsDisableXpnHostCall {
107463	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107464	return c
107465}
107466
107467// Context sets the context to be used in this call's Do method. Any
107468// pending HTTP request will be aborted if the provided context is
107469// canceled.
107470func (c *ProjectsDisableXpnHostCall) Context(ctx context.Context) *ProjectsDisableXpnHostCall {
107471	c.ctx_ = ctx
107472	return c
107473}
107474
107475// Header returns an http.Header that can be modified by the caller to
107476// add HTTP headers to the request.
107477func (c *ProjectsDisableXpnHostCall) Header() http.Header {
107478	if c.header_ == nil {
107479		c.header_ = make(http.Header)
107480	}
107481	return c.header_
107482}
107483
107484func (c *ProjectsDisableXpnHostCall) doRequest(alt string) (*http.Response, error) {
107485	reqHeaders := make(http.Header)
107486	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
107487	for k, v := range c.header_ {
107488		reqHeaders[k] = v
107489	}
107490	reqHeaders.Set("User-Agent", c.s.userAgent())
107491	var body io.Reader = nil
107492	c.urlParams_.Set("alt", alt)
107493	c.urlParams_.Set("prettyPrint", "false")
107494	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/disableXpnHost")
107495	urls += "?" + c.urlParams_.Encode()
107496	req, err := http.NewRequest("POST", urls, body)
107497	if err != nil {
107498		return nil, err
107499	}
107500	req.Header = reqHeaders
107501	googleapi.Expand(req.URL, map[string]string{
107502		"project": c.project,
107503	})
107504	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107505}
107506
107507// Do executes the "compute.projects.disableXpnHost" call.
107508// Exactly one of *Operation or error will be non-nil. Any non-2xx
107509// status code is an error. Response headers are in either
107510// *Operation.ServerResponse.Header or (if a response was returned at
107511// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
107512// to check whether the returned error was because
107513// http.StatusNotModified was returned.
107514func (c *ProjectsDisableXpnHostCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
107515	gensupport.SetOptions(c.urlParams_, opts...)
107516	res, err := c.doRequest("json")
107517	if res != nil && res.StatusCode == http.StatusNotModified {
107518		if res.Body != nil {
107519			res.Body.Close()
107520		}
107521		return nil, &googleapi.Error{
107522			Code:   res.StatusCode,
107523			Header: res.Header,
107524		}
107525	}
107526	if err != nil {
107527		return nil, err
107528	}
107529	defer googleapi.CloseBody(res)
107530	if err := googleapi.CheckResponse(res); err != nil {
107531		return nil, err
107532	}
107533	ret := &Operation{
107534		ServerResponse: googleapi.ServerResponse{
107535			Header:         res.Header,
107536			HTTPStatusCode: res.StatusCode,
107537		},
107538	}
107539	target := &ret
107540	if err := gensupport.DecodeResponse(target, res); err != nil {
107541		return nil, err
107542	}
107543	return ret, nil
107544	// {
107545	//   "description": "Disable this project as a shared VPC host project.",
107546	//   "httpMethod": "POST",
107547	//   "id": "compute.projects.disableXpnHost",
107548	//   "parameterOrder": [
107549	//     "project"
107550	//   ],
107551	//   "parameters": {
107552	//     "project": {
107553	//       "description": "Project ID for this request.",
107554	//       "location": "path",
107555	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107556	//       "required": true,
107557	//       "type": "string"
107558	//     },
107559	//     "requestId": {
107560	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
107561	//       "location": "query",
107562	//       "type": "string"
107563	//     }
107564	//   },
107565	//   "path": "projects/{project}/disableXpnHost",
107566	//   "response": {
107567	//     "$ref": "Operation"
107568	//   },
107569	//   "scopes": [
107570	//     "https://www.googleapis.com/auth/cloud-platform",
107571	//     "https://www.googleapis.com/auth/compute"
107572	//   ]
107573	// }
107574
107575}
107576
107577// method id "compute.projects.disableXpnResource":
107578
107579type ProjectsDisableXpnResourceCall struct {
107580	s                                 *Service
107581	project                           string
107582	projectsdisablexpnresourcerequest *ProjectsDisableXpnResourceRequest
107583	urlParams_                        gensupport.URLParams
107584	ctx_                              context.Context
107585	header_                           http.Header
107586}
107587
107588// DisableXpnResource: Disable a service resource (also known as service
107589// project) associated with this host project.
107590//
107591// - project: Project ID for this request.
107592func (r *ProjectsService) DisableXpnResource(project string, projectsdisablexpnresourcerequest *ProjectsDisableXpnResourceRequest) *ProjectsDisableXpnResourceCall {
107593	c := &ProjectsDisableXpnResourceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107594	c.project = project
107595	c.projectsdisablexpnresourcerequest = projectsdisablexpnresourcerequest
107596	return c
107597}
107598
107599// RequestId sets the optional parameter "requestId": An optional
107600// request ID to identify requests. Specify a unique request ID so that
107601// if you must retry your request, the server will know to ignore the
107602// request if it has already been completed.
107603//
107604// For example, consider a situation where you make an initial request
107605// and the request times out. If you make the request again with the
107606// same request ID, the server can check if original operation with the
107607// same request ID was received, and if so, will ignore the second
107608// request. This prevents clients from accidentally creating duplicate
107609// commitments.
107610//
107611// The request ID must be a valid UUID with the exception that zero UUID
107612// is not supported (00000000-0000-0000-0000-000000000000).
107613func (c *ProjectsDisableXpnResourceCall) RequestId(requestId string) *ProjectsDisableXpnResourceCall {
107614	c.urlParams_.Set("requestId", requestId)
107615	return c
107616}
107617
107618// Fields allows partial responses to be retrieved. See
107619// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107620// for more information.
107621func (c *ProjectsDisableXpnResourceCall) Fields(s ...googleapi.Field) *ProjectsDisableXpnResourceCall {
107622	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107623	return c
107624}
107625
107626// Context sets the context to be used in this call's Do method. Any
107627// pending HTTP request will be aborted if the provided context is
107628// canceled.
107629func (c *ProjectsDisableXpnResourceCall) Context(ctx context.Context) *ProjectsDisableXpnResourceCall {
107630	c.ctx_ = ctx
107631	return c
107632}
107633
107634// Header returns an http.Header that can be modified by the caller to
107635// add HTTP headers to the request.
107636func (c *ProjectsDisableXpnResourceCall) Header() http.Header {
107637	if c.header_ == nil {
107638		c.header_ = make(http.Header)
107639	}
107640	return c.header_
107641}
107642
107643func (c *ProjectsDisableXpnResourceCall) doRequest(alt string) (*http.Response, error) {
107644	reqHeaders := make(http.Header)
107645	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
107646	for k, v := range c.header_ {
107647		reqHeaders[k] = v
107648	}
107649	reqHeaders.Set("User-Agent", c.s.userAgent())
107650	var body io.Reader = nil
107651	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectsdisablexpnresourcerequest)
107652	if err != nil {
107653		return nil, err
107654	}
107655	reqHeaders.Set("Content-Type", "application/json")
107656	c.urlParams_.Set("alt", alt)
107657	c.urlParams_.Set("prettyPrint", "false")
107658	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/disableXpnResource")
107659	urls += "?" + c.urlParams_.Encode()
107660	req, err := http.NewRequest("POST", urls, body)
107661	if err != nil {
107662		return nil, err
107663	}
107664	req.Header = reqHeaders
107665	googleapi.Expand(req.URL, map[string]string{
107666		"project": c.project,
107667	})
107668	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107669}
107670
107671// Do executes the "compute.projects.disableXpnResource" call.
107672// Exactly one of *Operation or error will be non-nil. Any non-2xx
107673// status code is an error. Response headers are in either
107674// *Operation.ServerResponse.Header or (if a response was returned at
107675// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
107676// to check whether the returned error was because
107677// http.StatusNotModified was returned.
107678func (c *ProjectsDisableXpnResourceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
107679	gensupport.SetOptions(c.urlParams_, opts...)
107680	res, err := c.doRequest("json")
107681	if res != nil && res.StatusCode == http.StatusNotModified {
107682		if res.Body != nil {
107683			res.Body.Close()
107684		}
107685		return nil, &googleapi.Error{
107686			Code:   res.StatusCode,
107687			Header: res.Header,
107688		}
107689	}
107690	if err != nil {
107691		return nil, err
107692	}
107693	defer googleapi.CloseBody(res)
107694	if err := googleapi.CheckResponse(res); err != nil {
107695		return nil, err
107696	}
107697	ret := &Operation{
107698		ServerResponse: googleapi.ServerResponse{
107699			Header:         res.Header,
107700			HTTPStatusCode: res.StatusCode,
107701		},
107702	}
107703	target := &ret
107704	if err := gensupport.DecodeResponse(target, res); err != nil {
107705		return nil, err
107706	}
107707	return ret, nil
107708	// {
107709	//   "description": "Disable a service resource (also known as service project) associated with this host project.",
107710	//   "httpMethod": "POST",
107711	//   "id": "compute.projects.disableXpnResource",
107712	//   "parameterOrder": [
107713	//     "project"
107714	//   ],
107715	//   "parameters": {
107716	//     "project": {
107717	//       "description": "Project ID for this request.",
107718	//       "location": "path",
107719	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107720	//       "required": true,
107721	//       "type": "string"
107722	//     },
107723	//     "requestId": {
107724	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
107725	//       "location": "query",
107726	//       "type": "string"
107727	//     }
107728	//   },
107729	//   "path": "projects/{project}/disableXpnResource",
107730	//   "request": {
107731	//     "$ref": "ProjectsDisableXpnResourceRequest"
107732	//   },
107733	//   "response": {
107734	//     "$ref": "Operation"
107735	//   },
107736	//   "scopes": [
107737	//     "https://www.googleapis.com/auth/cloud-platform",
107738	//     "https://www.googleapis.com/auth/compute"
107739	//   ]
107740	// }
107741
107742}
107743
107744// method id "compute.projects.enableXpnHost":
107745
107746type ProjectsEnableXpnHostCall struct {
107747	s          *Service
107748	project    string
107749	urlParams_ gensupport.URLParams
107750	ctx_       context.Context
107751	header_    http.Header
107752}
107753
107754// EnableXpnHost: Enable this project as a shared VPC host project.
107755//
107756// - project: Project ID for this request.
107757func (r *ProjectsService) EnableXpnHost(project string) *ProjectsEnableXpnHostCall {
107758	c := &ProjectsEnableXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107759	c.project = project
107760	return c
107761}
107762
107763// RequestId sets the optional parameter "requestId": An optional
107764// request ID to identify requests. Specify a unique request ID so that
107765// if you must retry your request, the server will know to ignore the
107766// request if it has already been completed.
107767//
107768// For example, consider a situation where you make an initial request
107769// and the request times out. If you make the request again with the
107770// same request ID, the server can check if original operation with the
107771// same request ID was received, and if so, will ignore the second
107772// request. This prevents clients from accidentally creating duplicate
107773// commitments.
107774//
107775// The request ID must be a valid UUID with the exception that zero UUID
107776// is not supported (00000000-0000-0000-0000-000000000000).
107777func (c *ProjectsEnableXpnHostCall) RequestId(requestId string) *ProjectsEnableXpnHostCall {
107778	c.urlParams_.Set("requestId", requestId)
107779	return c
107780}
107781
107782// Fields allows partial responses to be retrieved. See
107783// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107784// for more information.
107785func (c *ProjectsEnableXpnHostCall) Fields(s ...googleapi.Field) *ProjectsEnableXpnHostCall {
107786	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107787	return c
107788}
107789
107790// Context sets the context to be used in this call's Do method. Any
107791// pending HTTP request will be aborted if the provided context is
107792// canceled.
107793func (c *ProjectsEnableXpnHostCall) Context(ctx context.Context) *ProjectsEnableXpnHostCall {
107794	c.ctx_ = ctx
107795	return c
107796}
107797
107798// Header returns an http.Header that can be modified by the caller to
107799// add HTTP headers to the request.
107800func (c *ProjectsEnableXpnHostCall) Header() http.Header {
107801	if c.header_ == nil {
107802		c.header_ = make(http.Header)
107803	}
107804	return c.header_
107805}
107806
107807func (c *ProjectsEnableXpnHostCall) doRequest(alt string) (*http.Response, error) {
107808	reqHeaders := make(http.Header)
107809	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
107810	for k, v := range c.header_ {
107811		reqHeaders[k] = v
107812	}
107813	reqHeaders.Set("User-Agent", c.s.userAgent())
107814	var body io.Reader = nil
107815	c.urlParams_.Set("alt", alt)
107816	c.urlParams_.Set("prettyPrint", "false")
107817	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/enableXpnHost")
107818	urls += "?" + c.urlParams_.Encode()
107819	req, err := http.NewRequest("POST", urls, body)
107820	if err != nil {
107821		return nil, err
107822	}
107823	req.Header = reqHeaders
107824	googleapi.Expand(req.URL, map[string]string{
107825		"project": c.project,
107826	})
107827	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107828}
107829
107830// Do executes the "compute.projects.enableXpnHost" call.
107831// Exactly one of *Operation or error will be non-nil. Any non-2xx
107832// status code is an error. Response headers are in either
107833// *Operation.ServerResponse.Header or (if a response was returned at
107834// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
107835// to check whether the returned error was because
107836// http.StatusNotModified was returned.
107837func (c *ProjectsEnableXpnHostCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
107838	gensupport.SetOptions(c.urlParams_, opts...)
107839	res, err := c.doRequest("json")
107840	if res != nil && res.StatusCode == http.StatusNotModified {
107841		if res.Body != nil {
107842			res.Body.Close()
107843		}
107844		return nil, &googleapi.Error{
107845			Code:   res.StatusCode,
107846			Header: res.Header,
107847		}
107848	}
107849	if err != nil {
107850		return nil, err
107851	}
107852	defer googleapi.CloseBody(res)
107853	if err := googleapi.CheckResponse(res); err != nil {
107854		return nil, err
107855	}
107856	ret := &Operation{
107857		ServerResponse: googleapi.ServerResponse{
107858			Header:         res.Header,
107859			HTTPStatusCode: res.StatusCode,
107860		},
107861	}
107862	target := &ret
107863	if err := gensupport.DecodeResponse(target, res); err != nil {
107864		return nil, err
107865	}
107866	return ret, nil
107867	// {
107868	//   "description": "Enable this project as a shared VPC host project.",
107869	//   "httpMethod": "POST",
107870	//   "id": "compute.projects.enableXpnHost",
107871	//   "parameterOrder": [
107872	//     "project"
107873	//   ],
107874	//   "parameters": {
107875	//     "project": {
107876	//       "description": "Project ID for this request.",
107877	//       "location": "path",
107878	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107879	//       "required": true,
107880	//       "type": "string"
107881	//     },
107882	//     "requestId": {
107883	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
107884	//       "location": "query",
107885	//       "type": "string"
107886	//     }
107887	//   },
107888	//   "path": "projects/{project}/enableXpnHost",
107889	//   "response": {
107890	//     "$ref": "Operation"
107891	//   },
107892	//   "scopes": [
107893	//     "https://www.googleapis.com/auth/cloud-platform",
107894	//     "https://www.googleapis.com/auth/compute"
107895	//   ]
107896	// }
107897
107898}
107899
107900// method id "compute.projects.enableXpnResource":
107901
107902type ProjectsEnableXpnResourceCall struct {
107903	s                                *Service
107904	project                          string
107905	projectsenablexpnresourcerequest *ProjectsEnableXpnResourceRequest
107906	urlParams_                       gensupport.URLParams
107907	ctx_                             context.Context
107908	header_                          http.Header
107909}
107910
107911// EnableXpnResource: Enable service resource (a.k.a service project)
107912// for a host project, so that subnets in the host project can be used
107913// by instances in the service project.
107914//
107915// - project: Project ID for this request.
107916func (r *ProjectsService) EnableXpnResource(project string, projectsenablexpnresourcerequest *ProjectsEnableXpnResourceRequest) *ProjectsEnableXpnResourceCall {
107917	c := &ProjectsEnableXpnResourceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107918	c.project = project
107919	c.projectsenablexpnresourcerequest = projectsenablexpnresourcerequest
107920	return c
107921}
107922
107923// RequestId sets the optional parameter "requestId": An optional
107924// request ID to identify requests. Specify a unique request ID so that
107925// if you must retry your request, the server will know to ignore the
107926// request if it has already been completed.
107927//
107928// For example, consider a situation where you make an initial request
107929// and the request times out. If you make the request again with the
107930// same request ID, the server can check if original operation with the
107931// same request ID was received, and if so, will ignore the second
107932// request. This prevents clients from accidentally creating duplicate
107933// commitments.
107934//
107935// The request ID must be a valid UUID with the exception that zero UUID
107936// is not supported (00000000-0000-0000-0000-000000000000).
107937func (c *ProjectsEnableXpnResourceCall) RequestId(requestId string) *ProjectsEnableXpnResourceCall {
107938	c.urlParams_.Set("requestId", requestId)
107939	return c
107940}
107941
107942// Fields allows partial responses to be retrieved. See
107943// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107944// for more information.
107945func (c *ProjectsEnableXpnResourceCall) Fields(s ...googleapi.Field) *ProjectsEnableXpnResourceCall {
107946	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107947	return c
107948}
107949
107950// Context sets the context to be used in this call's Do method. Any
107951// pending HTTP request will be aborted if the provided context is
107952// canceled.
107953func (c *ProjectsEnableXpnResourceCall) Context(ctx context.Context) *ProjectsEnableXpnResourceCall {
107954	c.ctx_ = ctx
107955	return c
107956}
107957
107958// Header returns an http.Header that can be modified by the caller to
107959// add HTTP headers to the request.
107960func (c *ProjectsEnableXpnResourceCall) Header() http.Header {
107961	if c.header_ == nil {
107962		c.header_ = make(http.Header)
107963	}
107964	return c.header_
107965}
107966
107967func (c *ProjectsEnableXpnResourceCall) doRequest(alt string) (*http.Response, error) {
107968	reqHeaders := make(http.Header)
107969	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
107970	for k, v := range c.header_ {
107971		reqHeaders[k] = v
107972	}
107973	reqHeaders.Set("User-Agent", c.s.userAgent())
107974	var body io.Reader = nil
107975	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectsenablexpnresourcerequest)
107976	if err != nil {
107977		return nil, err
107978	}
107979	reqHeaders.Set("Content-Type", "application/json")
107980	c.urlParams_.Set("alt", alt)
107981	c.urlParams_.Set("prettyPrint", "false")
107982	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/enableXpnResource")
107983	urls += "?" + c.urlParams_.Encode()
107984	req, err := http.NewRequest("POST", urls, body)
107985	if err != nil {
107986		return nil, err
107987	}
107988	req.Header = reqHeaders
107989	googleapi.Expand(req.URL, map[string]string{
107990		"project": c.project,
107991	})
107992	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107993}
107994
107995// Do executes the "compute.projects.enableXpnResource" call.
107996// Exactly one of *Operation or error will be non-nil. Any non-2xx
107997// status code is an error. Response headers are in either
107998// *Operation.ServerResponse.Header or (if a response was returned at
107999// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
108000// to check whether the returned error was because
108001// http.StatusNotModified was returned.
108002func (c *ProjectsEnableXpnResourceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
108003	gensupport.SetOptions(c.urlParams_, opts...)
108004	res, err := c.doRequest("json")
108005	if res != nil && res.StatusCode == http.StatusNotModified {
108006		if res.Body != nil {
108007			res.Body.Close()
108008		}
108009		return nil, &googleapi.Error{
108010			Code:   res.StatusCode,
108011			Header: res.Header,
108012		}
108013	}
108014	if err != nil {
108015		return nil, err
108016	}
108017	defer googleapi.CloseBody(res)
108018	if err := googleapi.CheckResponse(res); err != nil {
108019		return nil, err
108020	}
108021	ret := &Operation{
108022		ServerResponse: googleapi.ServerResponse{
108023			Header:         res.Header,
108024			HTTPStatusCode: res.StatusCode,
108025		},
108026	}
108027	target := &ret
108028	if err := gensupport.DecodeResponse(target, res); err != nil {
108029		return nil, err
108030	}
108031	return ret, nil
108032	// {
108033	//   "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.",
108034	//   "httpMethod": "POST",
108035	//   "id": "compute.projects.enableXpnResource",
108036	//   "parameterOrder": [
108037	//     "project"
108038	//   ],
108039	//   "parameters": {
108040	//     "project": {
108041	//       "description": "Project ID for this request.",
108042	//       "location": "path",
108043	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108044	//       "required": true,
108045	//       "type": "string"
108046	//     },
108047	//     "requestId": {
108048	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
108049	//       "location": "query",
108050	//       "type": "string"
108051	//     }
108052	//   },
108053	//   "path": "projects/{project}/enableXpnResource",
108054	//   "request": {
108055	//     "$ref": "ProjectsEnableXpnResourceRequest"
108056	//   },
108057	//   "response": {
108058	//     "$ref": "Operation"
108059	//   },
108060	//   "scopes": [
108061	//     "https://www.googleapis.com/auth/cloud-platform",
108062	//     "https://www.googleapis.com/auth/compute"
108063	//   ]
108064	// }
108065
108066}
108067
108068// method id "compute.projects.get":
108069
108070type ProjectsGetCall struct {
108071	s            *Service
108072	project      string
108073	urlParams_   gensupport.URLParams
108074	ifNoneMatch_ string
108075	ctx_         context.Context
108076	header_      http.Header
108077}
108078
108079// Get: Returns the specified Project resource.
108080//
108081// - project: Project ID for this request.
108082// For details, see https://cloud.google.com/compute/docs/reference/latest/projects/get
108083func (r *ProjectsService) Get(project string) *ProjectsGetCall {
108084	c := &ProjectsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108085	c.project = project
108086	return c
108087}
108088
108089// Fields allows partial responses to be retrieved. See
108090// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108091// for more information.
108092func (c *ProjectsGetCall) Fields(s ...googleapi.Field) *ProjectsGetCall {
108093	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108094	return c
108095}
108096
108097// IfNoneMatch sets the optional parameter which makes the operation
108098// fail if the object's ETag matches the given value. This is useful for
108099// getting updates only after the object has changed since the last
108100// request. Use googleapi.IsNotModified to check whether the response
108101// error from Do is the result of In-None-Match.
108102func (c *ProjectsGetCall) IfNoneMatch(entityTag string) *ProjectsGetCall {
108103	c.ifNoneMatch_ = entityTag
108104	return c
108105}
108106
108107// Context sets the context to be used in this call's Do method. Any
108108// pending HTTP request will be aborted if the provided context is
108109// canceled.
108110func (c *ProjectsGetCall) Context(ctx context.Context) *ProjectsGetCall {
108111	c.ctx_ = ctx
108112	return c
108113}
108114
108115// Header returns an http.Header that can be modified by the caller to
108116// add HTTP headers to the request.
108117func (c *ProjectsGetCall) Header() http.Header {
108118	if c.header_ == nil {
108119		c.header_ = make(http.Header)
108120	}
108121	return c.header_
108122}
108123
108124func (c *ProjectsGetCall) doRequest(alt string) (*http.Response, error) {
108125	reqHeaders := make(http.Header)
108126	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
108127	for k, v := range c.header_ {
108128		reqHeaders[k] = v
108129	}
108130	reqHeaders.Set("User-Agent", c.s.userAgent())
108131	if c.ifNoneMatch_ != "" {
108132		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
108133	}
108134	var body io.Reader = nil
108135	c.urlParams_.Set("alt", alt)
108136	c.urlParams_.Set("prettyPrint", "false")
108137	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}")
108138	urls += "?" + c.urlParams_.Encode()
108139	req, err := http.NewRequest("GET", urls, body)
108140	if err != nil {
108141		return nil, err
108142	}
108143	req.Header = reqHeaders
108144	googleapi.Expand(req.URL, map[string]string{
108145		"project": c.project,
108146	})
108147	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108148}
108149
108150// Do executes the "compute.projects.get" call.
108151// Exactly one of *Project or error will be non-nil. Any non-2xx status
108152// code is an error. Response headers are in either
108153// *Project.ServerResponse.Header or (if a response was returned at all)
108154// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
108155// check whether the returned error was because http.StatusNotModified
108156// was returned.
108157func (c *ProjectsGetCall) Do(opts ...googleapi.CallOption) (*Project, error) {
108158	gensupport.SetOptions(c.urlParams_, opts...)
108159	res, err := c.doRequest("json")
108160	if res != nil && res.StatusCode == http.StatusNotModified {
108161		if res.Body != nil {
108162			res.Body.Close()
108163		}
108164		return nil, &googleapi.Error{
108165			Code:   res.StatusCode,
108166			Header: res.Header,
108167		}
108168	}
108169	if err != nil {
108170		return nil, err
108171	}
108172	defer googleapi.CloseBody(res)
108173	if err := googleapi.CheckResponse(res); err != nil {
108174		return nil, err
108175	}
108176	ret := &Project{
108177		ServerResponse: googleapi.ServerResponse{
108178			Header:         res.Header,
108179			HTTPStatusCode: res.StatusCode,
108180		},
108181	}
108182	target := &ret
108183	if err := gensupport.DecodeResponse(target, res); err != nil {
108184		return nil, err
108185	}
108186	return ret, nil
108187	// {
108188	//   "description": "Returns the specified Project resource.",
108189	//   "httpMethod": "GET",
108190	//   "id": "compute.projects.get",
108191	//   "parameterOrder": [
108192	//     "project"
108193	//   ],
108194	//   "parameters": {
108195	//     "project": {
108196	//       "description": "Project ID for this request.",
108197	//       "location": "path",
108198	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108199	//       "required": true,
108200	//       "type": "string"
108201	//     }
108202	//   },
108203	//   "path": "projects/{project}",
108204	//   "response": {
108205	//     "$ref": "Project"
108206	//   },
108207	//   "scopes": [
108208	//     "https://www.googleapis.com/auth/cloud-platform",
108209	//     "https://www.googleapis.com/auth/compute",
108210	//     "https://www.googleapis.com/auth/compute.readonly"
108211	//   ]
108212	// }
108213
108214}
108215
108216// method id "compute.projects.getXpnHost":
108217
108218type ProjectsGetXpnHostCall struct {
108219	s            *Service
108220	project      string
108221	urlParams_   gensupport.URLParams
108222	ifNoneMatch_ string
108223	ctx_         context.Context
108224	header_      http.Header
108225}
108226
108227// GetXpnHost: Gets the shared VPC host project that this project links
108228// to. May be empty if no link exists.
108229//
108230// - project: Project ID for this request.
108231func (r *ProjectsService) GetXpnHost(project string) *ProjectsGetXpnHostCall {
108232	c := &ProjectsGetXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108233	c.project = project
108234	return c
108235}
108236
108237// Fields allows partial responses to be retrieved. See
108238// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108239// for more information.
108240func (c *ProjectsGetXpnHostCall) Fields(s ...googleapi.Field) *ProjectsGetXpnHostCall {
108241	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108242	return c
108243}
108244
108245// IfNoneMatch sets the optional parameter which makes the operation
108246// fail if the object's ETag matches the given value. This is useful for
108247// getting updates only after the object has changed since the last
108248// request. Use googleapi.IsNotModified to check whether the response
108249// error from Do is the result of In-None-Match.
108250func (c *ProjectsGetXpnHostCall) IfNoneMatch(entityTag string) *ProjectsGetXpnHostCall {
108251	c.ifNoneMatch_ = entityTag
108252	return c
108253}
108254
108255// Context sets the context to be used in this call's Do method. Any
108256// pending HTTP request will be aborted if the provided context is
108257// canceled.
108258func (c *ProjectsGetXpnHostCall) Context(ctx context.Context) *ProjectsGetXpnHostCall {
108259	c.ctx_ = ctx
108260	return c
108261}
108262
108263// Header returns an http.Header that can be modified by the caller to
108264// add HTTP headers to the request.
108265func (c *ProjectsGetXpnHostCall) Header() http.Header {
108266	if c.header_ == nil {
108267		c.header_ = make(http.Header)
108268	}
108269	return c.header_
108270}
108271
108272func (c *ProjectsGetXpnHostCall) doRequest(alt string) (*http.Response, error) {
108273	reqHeaders := make(http.Header)
108274	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
108275	for k, v := range c.header_ {
108276		reqHeaders[k] = v
108277	}
108278	reqHeaders.Set("User-Agent", c.s.userAgent())
108279	if c.ifNoneMatch_ != "" {
108280		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
108281	}
108282	var body io.Reader = nil
108283	c.urlParams_.Set("alt", alt)
108284	c.urlParams_.Set("prettyPrint", "false")
108285	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/getXpnHost")
108286	urls += "?" + c.urlParams_.Encode()
108287	req, err := http.NewRequest("GET", urls, body)
108288	if err != nil {
108289		return nil, err
108290	}
108291	req.Header = reqHeaders
108292	googleapi.Expand(req.URL, map[string]string{
108293		"project": c.project,
108294	})
108295	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108296}
108297
108298// Do executes the "compute.projects.getXpnHost" call.
108299// Exactly one of *Project or error will be non-nil. Any non-2xx status
108300// code is an error. Response headers are in either
108301// *Project.ServerResponse.Header or (if a response was returned at all)
108302// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
108303// check whether the returned error was because http.StatusNotModified
108304// was returned.
108305func (c *ProjectsGetXpnHostCall) Do(opts ...googleapi.CallOption) (*Project, error) {
108306	gensupport.SetOptions(c.urlParams_, opts...)
108307	res, err := c.doRequest("json")
108308	if res != nil && res.StatusCode == http.StatusNotModified {
108309		if res.Body != nil {
108310			res.Body.Close()
108311		}
108312		return nil, &googleapi.Error{
108313			Code:   res.StatusCode,
108314			Header: res.Header,
108315		}
108316	}
108317	if err != nil {
108318		return nil, err
108319	}
108320	defer googleapi.CloseBody(res)
108321	if err := googleapi.CheckResponse(res); err != nil {
108322		return nil, err
108323	}
108324	ret := &Project{
108325		ServerResponse: googleapi.ServerResponse{
108326			Header:         res.Header,
108327			HTTPStatusCode: res.StatusCode,
108328		},
108329	}
108330	target := &ret
108331	if err := gensupport.DecodeResponse(target, res); err != nil {
108332		return nil, err
108333	}
108334	return ret, nil
108335	// {
108336	//   "description": "Gets the shared VPC host project that this project links to. May be empty if no link exists.",
108337	//   "httpMethod": "GET",
108338	//   "id": "compute.projects.getXpnHost",
108339	//   "parameterOrder": [
108340	//     "project"
108341	//   ],
108342	//   "parameters": {
108343	//     "project": {
108344	//       "description": "Project ID for this request.",
108345	//       "location": "path",
108346	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108347	//       "required": true,
108348	//       "type": "string"
108349	//     }
108350	//   },
108351	//   "path": "projects/{project}/getXpnHost",
108352	//   "response": {
108353	//     "$ref": "Project"
108354	//   },
108355	//   "scopes": [
108356	//     "https://www.googleapis.com/auth/cloud-platform",
108357	//     "https://www.googleapis.com/auth/compute"
108358	//   ]
108359	// }
108360
108361}
108362
108363// method id "compute.projects.getXpnResources":
108364
108365type ProjectsGetXpnResourcesCall struct {
108366	s            *Service
108367	project      string
108368	urlParams_   gensupport.URLParams
108369	ifNoneMatch_ string
108370	ctx_         context.Context
108371	header_      http.Header
108372}
108373
108374// GetXpnResources: Gets service resources (a.k.a service project)
108375// associated with this host project.
108376//
108377// - project: Project ID for this request.
108378func (r *ProjectsService) GetXpnResources(project string) *ProjectsGetXpnResourcesCall {
108379	c := &ProjectsGetXpnResourcesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108380	c.project = project
108381	return c
108382}
108383
108384// Filter sets the optional parameter "filter": A filter expression that
108385// filters resources listed in the response. The expression must specify
108386// the field name, a comparison operator, and the value that you want to
108387// use for filtering. The value must be a string, a number, or a
108388// boolean. The comparison operator must be either `=`, `!=`, `>`, or
108389// `<`.
108390//
108391// For example, if you are filtering Compute Engine instances, you can
108392// exclude instances named `example-instance` by specifying `name !=
108393// example-instance`.
108394//
108395// You can also filter nested fields. For example, you could specify
108396// `scheduling.automaticRestart = false` to include instances only if
108397// they are not scheduled for automatic restarts. You can use filtering
108398// on nested fields to filter based on resource labels.
108399//
108400// To filter on multiple expressions, provide each separate expression
108401// within parentheses. For example: ``` (scheduling.automaticRestart =
108402// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
108403// is an `AND` expression. However, you can include `AND` and `OR`
108404// expressions explicitly. For example: ``` (cpuPlatform = "Intel
108405// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
108406// (scheduling.automaticRestart = true) ```
108407func (c *ProjectsGetXpnResourcesCall) Filter(filter string) *ProjectsGetXpnResourcesCall {
108408	c.urlParams_.Set("filter", filter)
108409	return c
108410}
108411
108412// MaxResults sets the optional parameter "maxResults": The maximum
108413// number of results per page that should be returned. If the number of
108414// available results is larger than `maxResults`, Compute Engine returns
108415// a `nextPageToken` that can be used to get the next page of results in
108416// subsequent list requests. Acceptable values are `0` to `500`,
108417// inclusive. (Default: `500`)
108418func (c *ProjectsGetXpnResourcesCall) MaxResults(maxResults int64) *ProjectsGetXpnResourcesCall {
108419	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
108420	return c
108421}
108422
108423// OrderBy sets the optional parameter "orderBy": Sorts list results by
108424// a certain order. By default, results are returned in alphanumerical
108425// order based on the resource name.
108426//
108427// You can also sort results in descending order based on the creation
108428// timestamp using `orderBy="creationTimestamp desc". This sorts
108429// results based on the `creationTimestamp` field in reverse
108430// chronological order (newest result first). Use this to sort resources
108431// like operations so that the newest operation is returned
108432// first.
108433//
108434// Currently, only sorting by `name` or `creationTimestamp desc` is
108435// supported.
108436func (c *ProjectsGetXpnResourcesCall) OrderBy(orderBy string) *ProjectsGetXpnResourcesCall {
108437	c.urlParams_.Set("orderBy", orderBy)
108438	return c
108439}
108440
108441// PageToken sets the optional parameter "pageToken": Specifies a page
108442// token to use. Set `pageToken` to the `nextPageToken` returned by a
108443// previous list request to get the next page of results.
108444func (c *ProjectsGetXpnResourcesCall) PageToken(pageToken string) *ProjectsGetXpnResourcesCall {
108445	c.urlParams_.Set("pageToken", pageToken)
108446	return c
108447}
108448
108449// ReturnPartialSuccess sets the optional parameter
108450// "returnPartialSuccess": Opt-in for partial success behavior which
108451// provides partial results in case of failure. The default value is
108452// false.
108453func (c *ProjectsGetXpnResourcesCall) ReturnPartialSuccess(returnPartialSuccess bool) *ProjectsGetXpnResourcesCall {
108454	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
108455	return c
108456}
108457
108458// Fields allows partial responses to be retrieved. See
108459// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108460// for more information.
108461func (c *ProjectsGetXpnResourcesCall) Fields(s ...googleapi.Field) *ProjectsGetXpnResourcesCall {
108462	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108463	return c
108464}
108465
108466// IfNoneMatch sets the optional parameter which makes the operation
108467// fail if the object's ETag matches the given value. This is useful for
108468// getting updates only after the object has changed since the last
108469// request. Use googleapi.IsNotModified to check whether the response
108470// error from Do is the result of In-None-Match.
108471func (c *ProjectsGetXpnResourcesCall) IfNoneMatch(entityTag string) *ProjectsGetXpnResourcesCall {
108472	c.ifNoneMatch_ = entityTag
108473	return c
108474}
108475
108476// Context sets the context to be used in this call's Do method. Any
108477// pending HTTP request will be aborted if the provided context is
108478// canceled.
108479func (c *ProjectsGetXpnResourcesCall) Context(ctx context.Context) *ProjectsGetXpnResourcesCall {
108480	c.ctx_ = ctx
108481	return c
108482}
108483
108484// Header returns an http.Header that can be modified by the caller to
108485// add HTTP headers to the request.
108486func (c *ProjectsGetXpnResourcesCall) Header() http.Header {
108487	if c.header_ == nil {
108488		c.header_ = make(http.Header)
108489	}
108490	return c.header_
108491}
108492
108493func (c *ProjectsGetXpnResourcesCall) doRequest(alt string) (*http.Response, error) {
108494	reqHeaders := make(http.Header)
108495	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
108496	for k, v := range c.header_ {
108497		reqHeaders[k] = v
108498	}
108499	reqHeaders.Set("User-Agent", c.s.userAgent())
108500	if c.ifNoneMatch_ != "" {
108501		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
108502	}
108503	var body io.Reader = nil
108504	c.urlParams_.Set("alt", alt)
108505	c.urlParams_.Set("prettyPrint", "false")
108506	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/getXpnResources")
108507	urls += "?" + c.urlParams_.Encode()
108508	req, err := http.NewRequest("GET", urls, body)
108509	if err != nil {
108510		return nil, err
108511	}
108512	req.Header = reqHeaders
108513	googleapi.Expand(req.URL, map[string]string{
108514		"project": c.project,
108515	})
108516	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108517}
108518
108519// Do executes the "compute.projects.getXpnResources" call.
108520// Exactly one of *ProjectsGetXpnResources or error will be non-nil. Any
108521// non-2xx status code is an error. Response headers are in either
108522// *ProjectsGetXpnResources.ServerResponse.Header or (if a response was
108523// returned at all) in error.(*googleapi.Error).Header. Use
108524// googleapi.IsNotModified to check whether the returned error was
108525// because http.StatusNotModified was returned.
108526func (c *ProjectsGetXpnResourcesCall) Do(opts ...googleapi.CallOption) (*ProjectsGetXpnResources, error) {
108527	gensupport.SetOptions(c.urlParams_, opts...)
108528	res, err := c.doRequest("json")
108529	if res != nil && res.StatusCode == http.StatusNotModified {
108530		if res.Body != nil {
108531			res.Body.Close()
108532		}
108533		return nil, &googleapi.Error{
108534			Code:   res.StatusCode,
108535			Header: res.Header,
108536		}
108537	}
108538	if err != nil {
108539		return nil, err
108540	}
108541	defer googleapi.CloseBody(res)
108542	if err := googleapi.CheckResponse(res); err != nil {
108543		return nil, err
108544	}
108545	ret := &ProjectsGetXpnResources{
108546		ServerResponse: googleapi.ServerResponse{
108547			Header:         res.Header,
108548			HTTPStatusCode: res.StatusCode,
108549		},
108550	}
108551	target := &ret
108552	if err := gensupport.DecodeResponse(target, res); err != nil {
108553		return nil, err
108554	}
108555	return ret, nil
108556	// {
108557	//   "description": "Gets service resources (a.k.a service project) associated with this host project.",
108558	//   "httpMethod": "GET",
108559	//   "id": "compute.projects.getXpnResources",
108560	//   "parameterOrder": [
108561	//     "project"
108562	//   ],
108563	//   "parameters": {
108564	//     "filter": {
108565	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
108566	//       "location": "query",
108567	//       "type": "string"
108568	//     },
108569	//     "maxResults": {
108570	//       "default": "500",
108571	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
108572	//       "format": "uint32",
108573	//       "location": "query",
108574	//       "minimum": "0",
108575	//       "type": "integer"
108576	//     },
108577	//     "orderBy": {
108578	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
108579	//       "location": "query",
108580	//       "type": "string"
108581	//     },
108582	//     "pageToken": {
108583	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
108584	//       "location": "query",
108585	//       "type": "string"
108586	//     },
108587	//     "project": {
108588	//       "description": "Project ID for this request.",
108589	//       "location": "path",
108590	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108591	//       "required": true,
108592	//       "type": "string"
108593	//     },
108594	//     "returnPartialSuccess": {
108595	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
108596	//       "location": "query",
108597	//       "type": "boolean"
108598	//     }
108599	//   },
108600	//   "path": "projects/{project}/getXpnResources",
108601	//   "response": {
108602	//     "$ref": "ProjectsGetXpnResources"
108603	//   },
108604	//   "scopes": [
108605	//     "https://www.googleapis.com/auth/cloud-platform",
108606	//     "https://www.googleapis.com/auth/compute"
108607	//   ]
108608	// }
108609
108610}
108611
108612// Pages invokes f for each page of results.
108613// A non-nil error returned from f will halt the iteration.
108614// The provided context supersedes any context provided to the Context method.
108615func (c *ProjectsGetXpnResourcesCall) Pages(ctx context.Context, f func(*ProjectsGetXpnResources) error) error {
108616	c.ctx_ = ctx
108617	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
108618	for {
108619		x, err := c.Do()
108620		if err != nil {
108621			return err
108622		}
108623		if err := f(x); err != nil {
108624			return err
108625		}
108626		if x.NextPageToken == "" {
108627			return nil
108628		}
108629		c.PageToken(x.NextPageToken)
108630	}
108631}
108632
108633// method id "compute.projects.listXpnHosts":
108634
108635type ProjectsListXpnHostsCall struct {
108636	s                           *Service
108637	project                     string
108638	projectslistxpnhostsrequest *ProjectsListXpnHostsRequest
108639	urlParams_                  gensupport.URLParams
108640	ctx_                        context.Context
108641	header_                     http.Header
108642}
108643
108644// ListXpnHosts: Lists all shared VPC host projects visible to the user
108645// in an organization.
108646//
108647// - project: Project ID for this request.
108648func (r *ProjectsService) ListXpnHosts(project string, projectslistxpnhostsrequest *ProjectsListXpnHostsRequest) *ProjectsListXpnHostsCall {
108649	c := &ProjectsListXpnHostsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108650	c.project = project
108651	c.projectslistxpnhostsrequest = projectslistxpnhostsrequest
108652	return c
108653}
108654
108655// Filter sets the optional parameter "filter": A filter expression that
108656// filters resources listed in the response. The expression must specify
108657// the field name, a comparison operator, and the value that you want to
108658// use for filtering. The value must be a string, a number, or a
108659// boolean. The comparison operator must be either `=`, `!=`, `>`, or
108660// `<`.
108661//
108662// For example, if you are filtering Compute Engine instances, you can
108663// exclude instances named `example-instance` by specifying `name !=
108664// example-instance`.
108665//
108666// You can also filter nested fields. For example, you could specify
108667// `scheduling.automaticRestart = false` to include instances only if
108668// they are not scheduled for automatic restarts. You can use filtering
108669// on nested fields to filter based on resource labels.
108670//
108671// To filter on multiple expressions, provide each separate expression
108672// within parentheses. For example: ``` (scheduling.automaticRestart =
108673// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
108674// is an `AND` expression. However, you can include `AND` and `OR`
108675// expressions explicitly. For example: ``` (cpuPlatform = "Intel
108676// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
108677// (scheduling.automaticRestart = true) ```
108678func (c *ProjectsListXpnHostsCall) Filter(filter string) *ProjectsListXpnHostsCall {
108679	c.urlParams_.Set("filter", filter)
108680	return c
108681}
108682
108683// MaxResults sets the optional parameter "maxResults": The maximum
108684// number of results per page that should be returned. If the number of
108685// available results is larger than `maxResults`, Compute Engine returns
108686// a `nextPageToken` that can be used to get the next page of results in
108687// subsequent list requests. Acceptable values are `0` to `500`,
108688// inclusive. (Default: `500`)
108689func (c *ProjectsListXpnHostsCall) MaxResults(maxResults int64) *ProjectsListXpnHostsCall {
108690	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
108691	return c
108692}
108693
108694// OrderBy sets the optional parameter "orderBy": Sorts list results by
108695// a certain order. By default, results are returned in alphanumerical
108696// order based on the resource name.
108697//
108698// You can also sort results in descending order based on the creation
108699// timestamp using `orderBy="creationTimestamp desc". This sorts
108700// results based on the `creationTimestamp` field in reverse
108701// chronological order (newest result first). Use this to sort resources
108702// like operations so that the newest operation is returned
108703// first.
108704//
108705// Currently, only sorting by `name` or `creationTimestamp desc` is
108706// supported.
108707func (c *ProjectsListXpnHostsCall) OrderBy(orderBy string) *ProjectsListXpnHostsCall {
108708	c.urlParams_.Set("orderBy", orderBy)
108709	return c
108710}
108711
108712// PageToken sets the optional parameter "pageToken": Specifies a page
108713// token to use. Set `pageToken` to the `nextPageToken` returned by a
108714// previous list request to get the next page of results.
108715func (c *ProjectsListXpnHostsCall) PageToken(pageToken string) *ProjectsListXpnHostsCall {
108716	c.urlParams_.Set("pageToken", pageToken)
108717	return c
108718}
108719
108720// ReturnPartialSuccess sets the optional parameter
108721// "returnPartialSuccess": Opt-in for partial success behavior which
108722// provides partial results in case of failure. The default value is
108723// false.
108724func (c *ProjectsListXpnHostsCall) ReturnPartialSuccess(returnPartialSuccess bool) *ProjectsListXpnHostsCall {
108725	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
108726	return c
108727}
108728
108729// Fields allows partial responses to be retrieved. See
108730// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108731// for more information.
108732func (c *ProjectsListXpnHostsCall) Fields(s ...googleapi.Field) *ProjectsListXpnHostsCall {
108733	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108734	return c
108735}
108736
108737// Context sets the context to be used in this call's Do method. Any
108738// pending HTTP request will be aborted if the provided context is
108739// canceled.
108740func (c *ProjectsListXpnHostsCall) Context(ctx context.Context) *ProjectsListXpnHostsCall {
108741	c.ctx_ = ctx
108742	return c
108743}
108744
108745// Header returns an http.Header that can be modified by the caller to
108746// add HTTP headers to the request.
108747func (c *ProjectsListXpnHostsCall) Header() http.Header {
108748	if c.header_ == nil {
108749		c.header_ = make(http.Header)
108750	}
108751	return c.header_
108752}
108753
108754func (c *ProjectsListXpnHostsCall) doRequest(alt string) (*http.Response, error) {
108755	reqHeaders := make(http.Header)
108756	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
108757	for k, v := range c.header_ {
108758		reqHeaders[k] = v
108759	}
108760	reqHeaders.Set("User-Agent", c.s.userAgent())
108761	var body io.Reader = nil
108762	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectslistxpnhostsrequest)
108763	if err != nil {
108764		return nil, err
108765	}
108766	reqHeaders.Set("Content-Type", "application/json")
108767	c.urlParams_.Set("alt", alt)
108768	c.urlParams_.Set("prettyPrint", "false")
108769	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/listXpnHosts")
108770	urls += "?" + c.urlParams_.Encode()
108771	req, err := http.NewRequest("POST", urls, body)
108772	if err != nil {
108773		return nil, err
108774	}
108775	req.Header = reqHeaders
108776	googleapi.Expand(req.URL, map[string]string{
108777		"project": c.project,
108778	})
108779	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108780}
108781
108782// Do executes the "compute.projects.listXpnHosts" call.
108783// Exactly one of *XpnHostList or error will be non-nil. Any non-2xx
108784// status code is an error. Response headers are in either
108785// *XpnHostList.ServerResponse.Header or (if a response was returned at
108786// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
108787// to check whether the returned error was because
108788// http.StatusNotModified was returned.
108789func (c *ProjectsListXpnHostsCall) Do(opts ...googleapi.CallOption) (*XpnHostList, error) {
108790	gensupport.SetOptions(c.urlParams_, opts...)
108791	res, err := c.doRequest("json")
108792	if res != nil && res.StatusCode == http.StatusNotModified {
108793		if res.Body != nil {
108794			res.Body.Close()
108795		}
108796		return nil, &googleapi.Error{
108797			Code:   res.StatusCode,
108798			Header: res.Header,
108799		}
108800	}
108801	if err != nil {
108802		return nil, err
108803	}
108804	defer googleapi.CloseBody(res)
108805	if err := googleapi.CheckResponse(res); err != nil {
108806		return nil, err
108807	}
108808	ret := &XpnHostList{
108809		ServerResponse: googleapi.ServerResponse{
108810			Header:         res.Header,
108811			HTTPStatusCode: res.StatusCode,
108812		},
108813	}
108814	target := &ret
108815	if err := gensupport.DecodeResponse(target, res); err != nil {
108816		return nil, err
108817	}
108818	return ret, nil
108819	// {
108820	//   "description": "Lists all shared VPC host projects visible to the user in an organization.",
108821	//   "httpMethod": "POST",
108822	//   "id": "compute.projects.listXpnHosts",
108823	//   "parameterOrder": [
108824	//     "project"
108825	//   ],
108826	//   "parameters": {
108827	//     "filter": {
108828	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
108829	//       "location": "query",
108830	//       "type": "string"
108831	//     },
108832	//     "maxResults": {
108833	//       "default": "500",
108834	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
108835	//       "format": "uint32",
108836	//       "location": "query",
108837	//       "minimum": "0",
108838	//       "type": "integer"
108839	//     },
108840	//     "orderBy": {
108841	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
108842	//       "location": "query",
108843	//       "type": "string"
108844	//     },
108845	//     "pageToken": {
108846	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
108847	//       "location": "query",
108848	//       "type": "string"
108849	//     },
108850	//     "project": {
108851	//       "description": "Project ID for this request.",
108852	//       "location": "path",
108853	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108854	//       "required": true,
108855	//       "type": "string"
108856	//     },
108857	//     "returnPartialSuccess": {
108858	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
108859	//       "location": "query",
108860	//       "type": "boolean"
108861	//     }
108862	//   },
108863	//   "path": "projects/{project}/listXpnHosts",
108864	//   "request": {
108865	//     "$ref": "ProjectsListXpnHostsRequest"
108866	//   },
108867	//   "response": {
108868	//     "$ref": "XpnHostList"
108869	//   },
108870	//   "scopes": [
108871	//     "https://www.googleapis.com/auth/cloud-platform",
108872	//     "https://www.googleapis.com/auth/compute"
108873	//   ]
108874	// }
108875
108876}
108877
108878// Pages invokes f for each page of results.
108879// A non-nil error returned from f will halt the iteration.
108880// The provided context supersedes any context provided to the Context method.
108881func (c *ProjectsListXpnHostsCall) Pages(ctx context.Context, f func(*XpnHostList) error) error {
108882	c.ctx_ = ctx
108883	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
108884	for {
108885		x, err := c.Do()
108886		if err != nil {
108887			return err
108888		}
108889		if err := f(x); err != nil {
108890			return err
108891		}
108892		if x.NextPageToken == "" {
108893			return nil
108894		}
108895		c.PageToken(x.NextPageToken)
108896	}
108897}
108898
108899// method id "compute.projects.moveDisk":
108900
108901type ProjectsMoveDiskCall struct {
108902	s               *Service
108903	project         string
108904	diskmoverequest *DiskMoveRequest
108905	urlParams_      gensupport.URLParams
108906	ctx_            context.Context
108907	header_         http.Header
108908}
108909
108910// MoveDisk: Moves a persistent disk from one zone to another.
108911//
108912// - project: Project ID for this request.
108913func (r *ProjectsService) MoveDisk(project string, diskmoverequest *DiskMoveRequest) *ProjectsMoveDiskCall {
108914	c := &ProjectsMoveDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108915	c.project = project
108916	c.diskmoverequest = diskmoverequest
108917	return c
108918}
108919
108920// RequestId sets the optional parameter "requestId": An optional
108921// request ID to identify requests. Specify a unique request ID so that
108922// if you must retry your request, the server will know to ignore the
108923// request if it has already been completed.
108924//
108925// For example, consider a situation where you make an initial request
108926// and the request times out. If you make the request again with the
108927// same request ID, the server can check if original operation with the
108928// same request ID was received, and if so, will ignore the second
108929// request. This prevents clients from accidentally creating duplicate
108930// commitments.
108931//
108932// The request ID must be a valid UUID with the exception that zero UUID
108933// is not supported (00000000-0000-0000-0000-000000000000).
108934func (c *ProjectsMoveDiskCall) RequestId(requestId string) *ProjectsMoveDiskCall {
108935	c.urlParams_.Set("requestId", requestId)
108936	return c
108937}
108938
108939// Fields allows partial responses to be retrieved. See
108940// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108941// for more information.
108942func (c *ProjectsMoveDiskCall) Fields(s ...googleapi.Field) *ProjectsMoveDiskCall {
108943	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108944	return c
108945}
108946
108947// Context sets the context to be used in this call's Do method. Any
108948// pending HTTP request will be aborted if the provided context is
108949// canceled.
108950func (c *ProjectsMoveDiskCall) Context(ctx context.Context) *ProjectsMoveDiskCall {
108951	c.ctx_ = ctx
108952	return c
108953}
108954
108955// Header returns an http.Header that can be modified by the caller to
108956// add HTTP headers to the request.
108957func (c *ProjectsMoveDiskCall) Header() http.Header {
108958	if c.header_ == nil {
108959		c.header_ = make(http.Header)
108960	}
108961	return c.header_
108962}
108963
108964func (c *ProjectsMoveDiskCall) doRequest(alt string) (*http.Response, error) {
108965	reqHeaders := make(http.Header)
108966	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
108967	for k, v := range c.header_ {
108968		reqHeaders[k] = v
108969	}
108970	reqHeaders.Set("User-Agent", c.s.userAgent())
108971	var body io.Reader = nil
108972	body, err := googleapi.WithoutDataWrapper.JSONReader(c.diskmoverequest)
108973	if err != nil {
108974		return nil, err
108975	}
108976	reqHeaders.Set("Content-Type", "application/json")
108977	c.urlParams_.Set("alt", alt)
108978	c.urlParams_.Set("prettyPrint", "false")
108979	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/moveDisk")
108980	urls += "?" + c.urlParams_.Encode()
108981	req, err := http.NewRequest("POST", urls, body)
108982	if err != nil {
108983		return nil, err
108984	}
108985	req.Header = reqHeaders
108986	googleapi.Expand(req.URL, map[string]string{
108987		"project": c.project,
108988	})
108989	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108990}
108991
108992// Do executes the "compute.projects.moveDisk" call.
108993// Exactly one of *Operation or error will be non-nil. Any non-2xx
108994// status code is an error. Response headers are in either
108995// *Operation.ServerResponse.Header or (if a response was returned at
108996// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
108997// to check whether the returned error was because
108998// http.StatusNotModified was returned.
108999func (c *ProjectsMoveDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
109000	gensupport.SetOptions(c.urlParams_, opts...)
109001	res, err := c.doRequest("json")
109002	if res != nil && res.StatusCode == http.StatusNotModified {
109003		if res.Body != nil {
109004			res.Body.Close()
109005		}
109006		return nil, &googleapi.Error{
109007			Code:   res.StatusCode,
109008			Header: res.Header,
109009		}
109010	}
109011	if err != nil {
109012		return nil, err
109013	}
109014	defer googleapi.CloseBody(res)
109015	if err := googleapi.CheckResponse(res); err != nil {
109016		return nil, err
109017	}
109018	ret := &Operation{
109019		ServerResponse: googleapi.ServerResponse{
109020			Header:         res.Header,
109021			HTTPStatusCode: res.StatusCode,
109022		},
109023	}
109024	target := &ret
109025	if err := gensupport.DecodeResponse(target, res); err != nil {
109026		return nil, err
109027	}
109028	return ret, nil
109029	// {
109030	//   "description": "Moves a persistent disk from one zone to another.",
109031	//   "httpMethod": "POST",
109032	//   "id": "compute.projects.moveDisk",
109033	//   "parameterOrder": [
109034	//     "project"
109035	//   ],
109036	//   "parameters": {
109037	//     "project": {
109038	//       "description": "Project ID for this request.",
109039	//       "location": "path",
109040	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109041	//       "required": true,
109042	//       "type": "string"
109043	//     },
109044	//     "requestId": {
109045	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
109046	//       "location": "query",
109047	//       "type": "string"
109048	//     }
109049	//   },
109050	//   "path": "projects/{project}/moveDisk",
109051	//   "request": {
109052	//     "$ref": "DiskMoveRequest"
109053	//   },
109054	//   "response": {
109055	//     "$ref": "Operation"
109056	//   },
109057	//   "scopes": [
109058	//     "https://www.googleapis.com/auth/cloud-platform",
109059	//     "https://www.googleapis.com/auth/compute"
109060	//   ]
109061	// }
109062
109063}
109064
109065// method id "compute.projects.moveInstance":
109066
109067type ProjectsMoveInstanceCall struct {
109068	s                   *Service
109069	project             string
109070	instancemoverequest *InstanceMoveRequest
109071	urlParams_          gensupport.URLParams
109072	ctx_                context.Context
109073	header_             http.Header
109074}
109075
109076// MoveInstance: Moves an instance and its attached persistent disks
109077// from one zone to another.
109078//
109079// - project: Project ID for this request.
109080func (r *ProjectsService) MoveInstance(project string, instancemoverequest *InstanceMoveRequest) *ProjectsMoveInstanceCall {
109081	c := &ProjectsMoveInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109082	c.project = project
109083	c.instancemoverequest = instancemoverequest
109084	return c
109085}
109086
109087// RequestId sets the optional parameter "requestId": An optional
109088// request ID to identify requests. Specify a unique request ID so that
109089// if you must retry your request, the server will know to ignore the
109090// request if it has already been completed.
109091//
109092// For example, consider a situation where you make an initial request
109093// and the request times out. If you make the request again with the
109094// same request ID, the server can check if original operation with the
109095// same request ID was received, and if so, will ignore the second
109096// request. This prevents clients from accidentally creating duplicate
109097// commitments.
109098//
109099// The request ID must be a valid UUID with the exception that zero UUID
109100// is not supported (00000000-0000-0000-0000-000000000000).
109101func (c *ProjectsMoveInstanceCall) RequestId(requestId string) *ProjectsMoveInstanceCall {
109102	c.urlParams_.Set("requestId", requestId)
109103	return c
109104}
109105
109106// Fields allows partial responses to be retrieved. See
109107// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109108// for more information.
109109func (c *ProjectsMoveInstanceCall) Fields(s ...googleapi.Field) *ProjectsMoveInstanceCall {
109110	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109111	return c
109112}
109113
109114// Context sets the context to be used in this call's Do method. Any
109115// pending HTTP request will be aborted if the provided context is
109116// canceled.
109117func (c *ProjectsMoveInstanceCall) Context(ctx context.Context) *ProjectsMoveInstanceCall {
109118	c.ctx_ = ctx
109119	return c
109120}
109121
109122// Header returns an http.Header that can be modified by the caller to
109123// add HTTP headers to the request.
109124func (c *ProjectsMoveInstanceCall) Header() http.Header {
109125	if c.header_ == nil {
109126		c.header_ = make(http.Header)
109127	}
109128	return c.header_
109129}
109130
109131func (c *ProjectsMoveInstanceCall) doRequest(alt string) (*http.Response, error) {
109132	reqHeaders := make(http.Header)
109133	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
109134	for k, v := range c.header_ {
109135		reqHeaders[k] = v
109136	}
109137	reqHeaders.Set("User-Agent", c.s.userAgent())
109138	var body io.Reader = nil
109139	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancemoverequest)
109140	if err != nil {
109141		return nil, err
109142	}
109143	reqHeaders.Set("Content-Type", "application/json")
109144	c.urlParams_.Set("alt", alt)
109145	c.urlParams_.Set("prettyPrint", "false")
109146	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/moveInstance")
109147	urls += "?" + c.urlParams_.Encode()
109148	req, err := http.NewRequest("POST", urls, body)
109149	if err != nil {
109150		return nil, err
109151	}
109152	req.Header = reqHeaders
109153	googleapi.Expand(req.URL, map[string]string{
109154		"project": c.project,
109155	})
109156	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109157}
109158
109159// Do executes the "compute.projects.moveInstance" call.
109160// Exactly one of *Operation or error will be non-nil. Any non-2xx
109161// status code is an error. Response headers are in either
109162// *Operation.ServerResponse.Header or (if a response was returned at
109163// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
109164// to check whether the returned error was because
109165// http.StatusNotModified was returned.
109166func (c *ProjectsMoveInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
109167	gensupport.SetOptions(c.urlParams_, opts...)
109168	res, err := c.doRequest("json")
109169	if res != nil && res.StatusCode == http.StatusNotModified {
109170		if res.Body != nil {
109171			res.Body.Close()
109172		}
109173		return nil, &googleapi.Error{
109174			Code:   res.StatusCode,
109175			Header: res.Header,
109176		}
109177	}
109178	if err != nil {
109179		return nil, err
109180	}
109181	defer googleapi.CloseBody(res)
109182	if err := googleapi.CheckResponse(res); err != nil {
109183		return nil, err
109184	}
109185	ret := &Operation{
109186		ServerResponse: googleapi.ServerResponse{
109187			Header:         res.Header,
109188			HTTPStatusCode: res.StatusCode,
109189		},
109190	}
109191	target := &ret
109192	if err := gensupport.DecodeResponse(target, res); err != nil {
109193		return nil, err
109194	}
109195	return ret, nil
109196	// {
109197	//   "description": "Moves an instance and its attached persistent disks from one zone to another.",
109198	//   "httpMethod": "POST",
109199	//   "id": "compute.projects.moveInstance",
109200	//   "parameterOrder": [
109201	//     "project"
109202	//   ],
109203	//   "parameters": {
109204	//     "project": {
109205	//       "description": "Project ID for this request.",
109206	//       "location": "path",
109207	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109208	//       "required": true,
109209	//       "type": "string"
109210	//     },
109211	//     "requestId": {
109212	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
109213	//       "location": "query",
109214	//       "type": "string"
109215	//     }
109216	//   },
109217	//   "path": "projects/{project}/moveInstance",
109218	//   "request": {
109219	//     "$ref": "InstanceMoveRequest"
109220	//   },
109221	//   "response": {
109222	//     "$ref": "Operation"
109223	//   },
109224	//   "scopes": [
109225	//     "https://www.googleapis.com/auth/cloud-platform",
109226	//     "https://www.googleapis.com/auth/compute"
109227	//   ]
109228	// }
109229
109230}
109231
109232// method id "compute.projects.setCommonInstanceMetadata":
109233
109234type ProjectsSetCommonInstanceMetadataCall struct {
109235	s          *Service
109236	project    string
109237	metadata   *Metadata
109238	urlParams_ gensupport.URLParams
109239	ctx_       context.Context
109240	header_    http.Header
109241}
109242
109243// SetCommonInstanceMetadata: Sets metadata common to all instances
109244// within the specified project using the data included in the request.
109245//
109246// - project: Project ID for this request.
109247// For details, see https://cloud.google.com/compute/docs/reference/latest/projects/setCommonInstanceMetadata
109248func (r *ProjectsService) SetCommonInstanceMetadata(project string, metadata *Metadata) *ProjectsSetCommonInstanceMetadataCall {
109249	c := &ProjectsSetCommonInstanceMetadataCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109250	c.project = project
109251	c.metadata = metadata
109252	return c
109253}
109254
109255// RequestId sets the optional parameter "requestId": An optional
109256// request ID to identify requests. Specify a unique request ID so that
109257// if you must retry your request, the server will know to ignore the
109258// request if it has already been completed.
109259//
109260// For example, consider a situation where you make an initial request
109261// and the request times out. If you make the request again with the
109262// same request ID, the server can check if original operation with the
109263// same request ID was received, and if so, will ignore the second
109264// request. This prevents clients from accidentally creating duplicate
109265// commitments.
109266//
109267// The request ID must be a valid UUID with the exception that zero UUID
109268// is not supported (00000000-0000-0000-0000-000000000000).
109269func (c *ProjectsSetCommonInstanceMetadataCall) RequestId(requestId string) *ProjectsSetCommonInstanceMetadataCall {
109270	c.urlParams_.Set("requestId", requestId)
109271	return c
109272}
109273
109274// Fields allows partial responses to be retrieved. See
109275// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109276// for more information.
109277func (c *ProjectsSetCommonInstanceMetadataCall) Fields(s ...googleapi.Field) *ProjectsSetCommonInstanceMetadataCall {
109278	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109279	return c
109280}
109281
109282// Context sets the context to be used in this call's Do method. Any
109283// pending HTTP request will be aborted if the provided context is
109284// canceled.
109285func (c *ProjectsSetCommonInstanceMetadataCall) Context(ctx context.Context) *ProjectsSetCommonInstanceMetadataCall {
109286	c.ctx_ = ctx
109287	return c
109288}
109289
109290// Header returns an http.Header that can be modified by the caller to
109291// add HTTP headers to the request.
109292func (c *ProjectsSetCommonInstanceMetadataCall) Header() http.Header {
109293	if c.header_ == nil {
109294		c.header_ = make(http.Header)
109295	}
109296	return c.header_
109297}
109298
109299func (c *ProjectsSetCommonInstanceMetadataCall) doRequest(alt string) (*http.Response, error) {
109300	reqHeaders := make(http.Header)
109301	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
109302	for k, v := range c.header_ {
109303		reqHeaders[k] = v
109304	}
109305	reqHeaders.Set("User-Agent", c.s.userAgent())
109306	var body io.Reader = nil
109307	body, err := googleapi.WithoutDataWrapper.JSONReader(c.metadata)
109308	if err != nil {
109309		return nil, err
109310	}
109311	reqHeaders.Set("Content-Type", "application/json")
109312	c.urlParams_.Set("alt", alt)
109313	c.urlParams_.Set("prettyPrint", "false")
109314	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/setCommonInstanceMetadata")
109315	urls += "?" + c.urlParams_.Encode()
109316	req, err := http.NewRequest("POST", urls, body)
109317	if err != nil {
109318		return nil, err
109319	}
109320	req.Header = reqHeaders
109321	googleapi.Expand(req.URL, map[string]string{
109322		"project": c.project,
109323	})
109324	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109325}
109326
109327// Do executes the "compute.projects.setCommonInstanceMetadata" call.
109328// Exactly one of *Operation or error will be non-nil. Any non-2xx
109329// status code is an error. Response headers are in either
109330// *Operation.ServerResponse.Header or (if a response was returned at
109331// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
109332// to check whether the returned error was because
109333// http.StatusNotModified was returned.
109334func (c *ProjectsSetCommonInstanceMetadataCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
109335	gensupport.SetOptions(c.urlParams_, opts...)
109336	res, err := c.doRequest("json")
109337	if res != nil && res.StatusCode == http.StatusNotModified {
109338		if res.Body != nil {
109339			res.Body.Close()
109340		}
109341		return nil, &googleapi.Error{
109342			Code:   res.StatusCode,
109343			Header: res.Header,
109344		}
109345	}
109346	if err != nil {
109347		return nil, err
109348	}
109349	defer googleapi.CloseBody(res)
109350	if err := googleapi.CheckResponse(res); err != nil {
109351		return nil, err
109352	}
109353	ret := &Operation{
109354		ServerResponse: googleapi.ServerResponse{
109355			Header:         res.Header,
109356			HTTPStatusCode: res.StatusCode,
109357		},
109358	}
109359	target := &ret
109360	if err := gensupport.DecodeResponse(target, res); err != nil {
109361		return nil, err
109362	}
109363	return ret, nil
109364	// {
109365	//   "description": "Sets metadata common to all instances within the specified project using the data included in the request.",
109366	//   "httpMethod": "POST",
109367	//   "id": "compute.projects.setCommonInstanceMetadata",
109368	//   "parameterOrder": [
109369	//     "project"
109370	//   ],
109371	//   "parameters": {
109372	//     "project": {
109373	//       "description": "Project ID for this request.",
109374	//       "location": "path",
109375	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109376	//       "required": true,
109377	//       "type": "string"
109378	//     },
109379	//     "requestId": {
109380	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
109381	//       "location": "query",
109382	//       "type": "string"
109383	//     }
109384	//   },
109385	//   "path": "projects/{project}/setCommonInstanceMetadata",
109386	//   "request": {
109387	//     "$ref": "Metadata"
109388	//   },
109389	//   "response": {
109390	//     "$ref": "Operation"
109391	//   },
109392	//   "scopes": [
109393	//     "https://www.googleapis.com/auth/cloud-platform",
109394	//     "https://www.googleapis.com/auth/compute"
109395	//   ]
109396	// }
109397
109398}
109399
109400// method id "compute.projects.setDefaultNetworkTier":
109401
109402type ProjectsSetDefaultNetworkTierCall struct {
109403	s                                    *Service
109404	project                              string
109405	projectssetdefaultnetworktierrequest *ProjectsSetDefaultNetworkTierRequest
109406	urlParams_                           gensupport.URLParams
109407	ctx_                                 context.Context
109408	header_                              http.Header
109409}
109410
109411// SetDefaultNetworkTier: Sets the default network tier of the project.
109412// The default network tier is used when an
109413// address/forwardingRule/instance is created without specifying the
109414// network tier field.
109415//
109416// - project: Project ID for this request.
109417func (r *ProjectsService) SetDefaultNetworkTier(project string, projectssetdefaultnetworktierrequest *ProjectsSetDefaultNetworkTierRequest) *ProjectsSetDefaultNetworkTierCall {
109418	c := &ProjectsSetDefaultNetworkTierCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109419	c.project = project
109420	c.projectssetdefaultnetworktierrequest = projectssetdefaultnetworktierrequest
109421	return c
109422}
109423
109424// RequestId sets the optional parameter "requestId": An optional
109425// request ID to identify requests. Specify a unique request ID so that
109426// if you must retry your request, the server will know to ignore the
109427// request if it has already been completed.
109428//
109429// For example, consider a situation where you make an initial request
109430// and the request times out. If you make the request again with the
109431// same request ID, the server can check if original operation with the
109432// same request ID was received, and if so, will ignore the second
109433// request. This prevents clients from accidentally creating duplicate
109434// commitments.
109435//
109436// The request ID must be a valid UUID with the exception that zero UUID
109437// is not supported (00000000-0000-0000-0000-000000000000).
109438func (c *ProjectsSetDefaultNetworkTierCall) RequestId(requestId string) *ProjectsSetDefaultNetworkTierCall {
109439	c.urlParams_.Set("requestId", requestId)
109440	return c
109441}
109442
109443// Fields allows partial responses to be retrieved. See
109444// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109445// for more information.
109446func (c *ProjectsSetDefaultNetworkTierCall) Fields(s ...googleapi.Field) *ProjectsSetDefaultNetworkTierCall {
109447	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109448	return c
109449}
109450
109451// Context sets the context to be used in this call's Do method. Any
109452// pending HTTP request will be aborted if the provided context is
109453// canceled.
109454func (c *ProjectsSetDefaultNetworkTierCall) Context(ctx context.Context) *ProjectsSetDefaultNetworkTierCall {
109455	c.ctx_ = ctx
109456	return c
109457}
109458
109459// Header returns an http.Header that can be modified by the caller to
109460// add HTTP headers to the request.
109461func (c *ProjectsSetDefaultNetworkTierCall) Header() http.Header {
109462	if c.header_ == nil {
109463		c.header_ = make(http.Header)
109464	}
109465	return c.header_
109466}
109467
109468func (c *ProjectsSetDefaultNetworkTierCall) doRequest(alt string) (*http.Response, error) {
109469	reqHeaders := make(http.Header)
109470	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
109471	for k, v := range c.header_ {
109472		reqHeaders[k] = v
109473	}
109474	reqHeaders.Set("User-Agent", c.s.userAgent())
109475	var body io.Reader = nil
109476	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectssetdefaultnetworktierrequest)
109477	if err != nil {
109478		return nil, err
109479	}
109480	reqHeaders.Set("Content-Type", "application/json")
109481	c.urlParams_.Set("alt", alt)
109482	c.urlParams_.Set("prettyPrint", "false")
109483	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/setDefaultNetworkTier")
109484	urls += "?" + c.urlParams_.Encode()
109485	req, err := http.NewRequest("POST", urls, body)
109486	if err != nil {
109487		return nil, err
109488	}
109489	req.Header = reqHeaders
109490	googleapi.Expand(req.URL, map[string]string{
109491		"project": c.project,
109492	})
109493	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109494}
109495
109496// Do executes the "compute.projects.setDefaultNetworkTier" call.
109497// Exactly one of *Operation or error will be non-nil. Any non-2xx
109498// status code is an error. Response headers are in either
109499// *Operation.ServerResponse.Header or (if a response was returned at
109500// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
109501// to check whether the returned error was because
109502// http.StatusNotModified was returned.
109503func (c *ProjectsSetDefaultNetworkTierCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
109504	gensupport.SetOptions(c.urlParams_, opts...)
109505	res, err := c.doRequest("json")
109506	if res != nil && res.StatusCode == http.StatusNotModified {
109507		if res.Body != nil {
109508			res.Body.Close()
109509		}
109510		return nil, &googleapi.Error{
109511			Code:   res.StatusCode,
109512			Header: res.Header,
109513		}
109514	}
109515	if err != nil {
109516		return nil, err
109517	}
109518	defer googleapi.CloseBody(res)
109519	if err := googleapi.CheckResponse(res); err != nil {
109520		return nil, err
109521	}
109522	ret := &Operation{
109523		ServerResponse: googleapi.ServerResponse{
109524			Header:         res.Header,
109525			HTTPStatusCode: res.StatusCode,
109526		},
109527	}
109528	target := &ret
109529	if err := gensupport.DecodeResponse(target, res); err != nil {
109530		return nil, err
109531	}
109532	return ret, nil
109533	// {
109534	//   "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.",
109535	//   "httpMethod": "POST",
109536	//   "id": "compute.projects.setDefaultNetworkTier",
109537	//   "parameterOrder": [
109538	//     "project"
109539	//   ],
109540	//   "parameters": {
109541	//     "project": {
109542	//       "description": "Project ID for this request.",
109543	//       "location": "path",
109544	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109545	//       "required": true,
109546	//       "type": "string"
109547	//     },
109548	//     "requestId": {
109549	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
109550	//       "location": "query",
109551	//       "type": "string"
109552	//     }
109553	//   },
109554	//   "path": "projects/{project}/setDefaultNetworkTier",
109555	//   "request": {
109556	//     "$ref": "ProjectsSetDefaultNetworkTierRequest"
109557	//   },
109558	//   "response": {
109559	//     "$ref": "Operation"
109560	//   },
109561	//   "scopes": [
109562	//     "https://www.googleapis.com/auth/cloud-platform",
109563	//     "https://www.googleapis.com/auth/compute"
109564	//   ]
109565	// }
109566
109567}
109568
109569// method id "compute.projects.setUsageExportBucket":
109570
109571type ProjectsSetUsageExportBucketCall struct {
109572	s                   *Service
109573	project             string
109574	usageexportlocation *UsageExportLocation
109575	urlParams_          gensupport.URLParams
109576	ctx_                context.Context
109577	header_             http.Header
109578}
109579
109580// SetUsageExportBucket: Enables the usage export feature and sets the
109581// usage export bucket where reports are stored. If you provide an empty
109582// request body using this method, the usage export feature will be
109583// disabled.
109584//
109585// - project: Project ID for this request.
109586// For details, see https://cloud.google.com/compute/docs/reference/latest/projects/setUsageExportBucket
109587func (r *ProjectsService) SetUsageExportBucket(project string, usageexportlocation *UsageExportLocation) *ProjectsSetUsageExportBucketCall {
109588	c := &ProjectsSetUsageExportBucketCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109589	c.project = project
109590	c.usageexportlocation = usageexportlocation
109591	return c
109592}
109593
109594// RequestId sets the optional parameter "requestId": An optional
109595// request ID to identify requests. Specify a unique request ID so that
109596// if you must retry your request, the server will know to ignore the
109597// request if it has already been completed.
109598//
109599// For example, consider a situation where you make an initial request
109600// and the request times out. If you make the request again with the
109601// same request ID, the server can check if original operation with the
109602// same request ID was received, and if so, will ignore the second
109603// request. This prevents clients from accidentally creating duplicate
109604// commitments.
109605//
109606// The request ID must be a valid UUID with the exception that zero UUID
109607// is not supported (00000000-0000-0000-0000-000000000000).
109608func (c *ProjectsSetUsageExportBucketCall) RequestId(requestId string) *ProjectsSetUsageExportBucketCall {
109609	c.urlParams_.Set("requestId", requestId)
109610	return c
109611}
109612
109613// Fields allows partial responses to be retrieved. See
109614// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109615// for more information.
109616func (c *ProjectsSetUsageExportBucketCall) Fields(s ...googleapi.Field) *ProjectsSetUsageExportBucketCall {
109617	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109618	return c
109619}
109620
109621// Context sets the context to be used in this call's Do method. Any
109622// pending HTTP request will be aborted if the provided context is
109623// canceled.
109624func (c *ProjectsSetUsageExportBucketCall) Context(ctx context.Context) *ProjectsSetUsageExportBucketCall {
109625	c.ctx_ = ctx
109626	return c
109627}
109628
109629// Header returns an http.Header that can be modified by the caller to
109630// add HTTP headers to the request.
109631func (c *ProjectsSetUsageExportBucketCall) Header() http.Header {
109632	if c.header_ == nil {
109633		c.header_ = make(http.Header)
109634	}
109635	return c.header_
109636}
109637
109638func (c *ProjectsSetUsageExportBucketCall) doRequest(alt string) (*http.Response, error) {
109639	reqHeaders := make(http.Header)
109640	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
109641	for k, v := range c.header_ {
109642		reqHeaders[k] = v
109643	}
109644	reqHeaders.Set("User-Agent", c.s.userAgent())
109645	var body io.Reader = nil
109646	body, err := googleapi.WithoutDataWrapper.JSONReader(c.usageexportlocation)
109647	if err != nil {
109648		return nil, err
109649	}
109650	reqHeaders.Set("Content-Type", "application/json")
109651	c.urlParams_.Set("alt", alt)
109652	c.urlParams_.Set("prettyPrint", "false")
109653	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/setUsageExportBucket")
109654	urls += "?" + c.urlParams_.Encode()
109655	req, err := http.NewRequest("POST", urls, body)
109656	if err != nil {
109657		return nil, err
109658	}
109659	req.Header = reqHeaders
109660	googleapi.Expand(req.URL, map[string]string{
109661		"project": c.project,
109662	})
109663	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109664}
109665
109666// Do executes the "compute.projects.setUsageExportBucket" call.
109667// Exactly one of *Operation or error will be non-nil. Any non-2xx
109668// status code is an error. Response headers are in either
109669// *Operation.ServerResponse.Header or (if a response was returned at
109670// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
109671// to check whether the returned error was because
109672// http.StatusNotModified was returned.
109673func (c *ProjectsSetUsageExportBucketCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
109674	gensupport.SetOptions(c.urlParams_, opts...)
109675	res, err := c.doRequest("json")
109676	if res != nil && res.StatusCode == http.StatusNotModified {
109677		if res.Body != nil {
109678			res.Body.Close()
109679		}
109680		return nil, &googleapi.Error{
109681			Code:   res.StatusCode,
109682			Header: res.Header,
109683		}
109684	}
109685	if err != nil {
109686		return nil, err
109687	}
109688	defer googleapi.CloseBody(res)
109689	if err := googleapi.CheckResponse(res); err != nil {
109690		return nil, err
109691	}
109692	ret := &Operation{
109693		ServerResponse: googleapi.ServerResponse{
109694			Header:         res.Header,
109695			HTTPStatusCode: res.StatusCode,
109696		},
109697	}
109698	target := &ret
109699	if err := gensupport.DecodeResponse(target, res); err != nil {
109700		return nil, err
109701	}
109702	return ret, nil
109703	// {
109704	//   "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.",
109705	//   "httpMethod": "POST",
109706	//   "id": "compute.projects.setUsageExportBucket",
109707	//   "parameterOrder": [
109708	//     "project"
109709	//   ],
109710	//   "parameters": {
109711	//     "project": {
109712	//       "description": "Project ID for this request.",
109713	//       "location": "path",
109714	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109715	//       "required": true,
109716	//       "type": "string"
109717	//     },
109718	//     "requestId": {
109719	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
109720	//       "location": "query",
109721	//       "type": "string"
109722	//     }
109723	//   },
109724	//   "path": "projects/{project}/setUsageExportBucket",
109725	//   "request": {
109726	//     "$ref": "UsageExportLocation"
109727	//   },
109728	//   "response": {
109729	//     "$ref": "Operation"
109730	//   },
109731	//   "scopes": [
109732	//     "https://www.googleapis.com/auth/cloud-platform",
109733	//     "https://www.googleapis.com/auth/compute",
109734	//     "https://www.googleapis.com/auth/devstorage.full_control",
109735	//     "https://www.googleapis.com/auth/devstorage.read_only",
109736	//     "https://www.googleapis.com/auth/devstorage.read_write"
109737	//   ]
109738	// }
109739
109740}
109741
109742// method id "compute.publicAdvertisedPrefixes.delete":
109743
109744type PublicAdvertisedPrefixesDeleteCall struct {
109745	s                      *Service
109746	project                string
109747	publicAdvertisedPrefix string
109748	urlParams_             gensupport.URLParams
109749	ctx_                   context.Context
109750	header_                http.Header
109751}
109752
109753// Delete: Deletes the specified PublicAdvertisedPrefix
109754//
109755// - project: Project ID for this request.
109756// - publicAdvertisedPrefix: Name of the PublicAdvertisedPrefix resource
109757//   to delete.
109758func (r *PublicAdvertisedPrefixesService) Delete(project string, publicAdvertisedPrefix string) *PublicAdvertisedPrefixesDeleteCall {
109759	c := &PublicAdvertisedPrefixesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109760	c.project = project
109761	c.publicAdvertisedPrefix = publicAdvertisedPrefix
109762	return c
109763}
109764
109765// RequestId sets the optional parameter "requestId": An optional
109766// request ID to identify requests. Specify a unique request ID so that
109767// if you must retry your request, the server will know to ignore the
109768// request if it has already been completed.
109769//
109770// For example, consider a situation where you make an initial request
109771// and the request times out. If you make the request again with the
109772// same request ID, the server can check if original operation with the
109773// same request ID was received, and if so, will ignore the second
109774// request. This prevents clients from accidentally creating duplicate
109775// commitments.
109776//
109777// The request ID must be a valid UUID with the exception that zero UUID
109778// is not supported (00000000-0000-0000-0000-000000000000).
109779func (c *PublicAdvertisedPrefixesDeleteCall) RequestId(requestId string) *PublicAdvertisedPrefixesDeleteCall {
109780	c.urlParams_.Set("requestId", requestId)
109781	return c
109782}
109783
109784// Fields allows partial responses to be retrieved. See
109785// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109786// for more information.
109787func (c *PublicAdvertisedPrefixesDeleteCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesDeleteCall {
109788	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109789	return c
109790}
109791
109792// Context sets the context to be used in this call's Do method. Any
109793// pending HTTP request will be aborted if the provided context is
109794// canceled.
109795func (c *PublicAdvertisedPrefixesDeleteCall) Context(ctx context.Context) *PublicAdvertisedPrefixesDeleteCall {
109796	c.ctx_ = ctx
109797	return c
109798}
109799
109800// Header returns an http.Header that can be modified by the caller to
109801// add HTTP headers to the request.
109802func (c *PublicAdvertisedPrefixesDeleteCall) Header() http.Header {
109803	if c.header_ == nil {
109804		c.header_ = make(http.Header)
109805	}
109806	return c.header_
109807}
109808
109809func (c *PublicAdvertisedPrefixesDeleteCall) doRequest(alt string) (*http.Response, error) {
109810	reqHeaders := make(http.Header)
109811	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
109812	for k, v := range c.header_ {
109813		reqHeaders[k] = v
109814	}
109815	reqHeaders.Set("User-Agent", c.s.userAgent())
109816	var body io.Reader = nil
109817	c.urlParams_.Set("alt", alt)
109818	c.urlParams_.Set("prettyPrint", "false")
109819	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}")
109820	urls += "?" + c.urlParams_.Encode()
109821	req, err := http.NewRequest("DELETE", urls, body)
109822	if err != nil {
109823		return nil, err
109824	}
109825	req.Header = reqHeaders
109826	googleapi.Expand(req.URL, map[string]string{
109827		"project":                c.project,
109828		"publicAdvertisedPrefix": c.publicAdvertisedPrefix,
109829	})
109830	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109831}
109832
109833// Do executes the "compute.publicAdvertisedPrefixes.delete" call.
109834// Exactly one of *Operation or error will be non-nil. Any non-2xx
109835// status code is an error. Response headers are in either
109836// *Operation.ServerResponse.Header or (if a response was returned at
109837// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
109838// to check whether the returned error was because
109839// http.StatusNotModified was returned.
109840func (c *PublicAdvertisedPrefixesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
109841	gensupport.SetOptions(c.urlParams_, opts...)
109842	res, err := c.doRequest("json")
109843	if res != nil && res.StatusCode == http.StatusNotModified {
109844		if res.Body != nil {
109845			res.Body.Close()
109846		}
109847		return nil, &googleapi.Error{
109848			Code:   res.StatusCode,
109849			Header: res.Header,
109850		}
109851	}
109852	if err != nil {
109853		return nil, err
109854	}
109855	defer googleapi.CloseBody(res)
109856	if err := googleapi.CheckResponse(res); err != nil {
109857		return nil, err
109858	}
109859	ret := &Operation{
109860		ServerResponse: googleapi.ServerResponse{
109861			Header:         res.Header,
109862			HTTPStatusCode: res.StatusCode,
109863		},
109864	}
109865	target := &ret
109866	if err := gensupport.DecodeResponse(target, res); err != nil {
109867		return nil, err
109868	}
109869	return ret, nil
109870	// {
109871	//   "description": "Deletes the specified PublicAdvertisedPrefix",
109872	//   "httpMethod": "DELETE",
109873	//   "id": "compute.publicAdvertisedPrefixes.delete",
109874	//   "parameterOrder": [
109875	//     "project",
109876	//     "publicAdvertisedPrefix"
109877	//   ],
109878	//   "parameters": {
109879	//     "project": {
109880	//       "description": "Project ID for this request.",
109881	//       "location": "path",
109882	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109883	//       "required": true,
109884	//       "type": "string"
109885	//     },
109886	//     "publicAdvertisedPrefix": {
109887	//       "description": "Name of the PublicAdvertisedPrefix resource to delete.",
109888	//       "location": "path",
109889	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
109890	//       "required": true,
109891	//       "type": "string"
109892	//     },
109893	//     "requestId": {
109894	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
109895	//       "location": "query",
109896	//       "type": "string"
109897	//     }
109898	//   },
109899	//   "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}",
109900	//   "response": {
109901	//     "$ref": "Operation"
109902	//   },
109903	//   "scopes": [
109904	//     "https://www.googleapis.com/auth/cloud-platform",
109905	//     "https://www.googleapis.com/auth/compute"
109906	//   ]
109907	// }
109908
109909}
109910
109911// method id "compute.publicAdvertisedPrefixes.get":
109912
109913type PublicAdvertisedPrefixesGetCall struct {
109914	s                      *Service
109915	project                string
109916	publicAdvertisedPrefix string
109917	urlParams_             gensupport.URLParams
109918	ifNoneMatch_           string
109919	ctx_                   context.Context
109920	header_                http.Header
109921}
109922
109923// Get: Returns the specified PublicAdvertisedPrefix resource.
109924//
109925// - project: Project ID for this request.
109926// - publicAdvertisedPrefix: Name of the PublicAdvertisedPrefix resource
109927//   to return.
109928func (r *PublicAdvertisedPrefixesService) Get(project string, publicAdvertisedPrefix string) *PublicAdvertisedPrefixesGetCall {
109929	c := &PublicAdvertisedPrefixesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109930	c.project = project
109931	c.publicAdvertisedPrefix = publicAdvertisedPrefix
109932	return c
109933}
109934
109935// Fields allows partial responses to be retrieved. See
109936// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109937// for more information.
109938func (c *PublicAdvertisedPrefixesGetCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesGetCall {
109939	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109940	return c
109941}
109942
109943// IfNoneMatch sets the optional parameter which makes the operation
109944// fail if the object's ETag matches the given value. This is useful for
109945// getting updates only after the object has changed since the last
109946// request. Use googleapi.IsNotModified to check whether the response
109947// error from Do is the result of In-None-Match.
109948func (c *PublicAdvertisedPrefixesGetCall) IfNoneMatch(entityTag string) *PublicAdvertisedPrefixesGetCall {
109949	c.ifNoneMatch_ = entityTag
109950	return c
109951}
109952
109953// Context sets the context to be used in this call's Do method. Any
109954// pending HTTP request will be aborted if the provided context is
109955// canceled.
109956func (c *PublicAdvertisedPrefixesGetCall) Context(ctx context.Context) *PublicAdvertisedPrefixesGetCall {
109957	c.ctx_ = ctx
109958	return c
109959}
109960
109961// Header returns an http.Header that can be modified by the caller to
109962// add HTTP headers to the request.
109963func (c *PublicAdvertisedPrefixesGetCall) Header() http.Header {
109964	if c.header_ == nil {
109965		c.header_ = make(http.Header)
109966	}
109967	return c.header_
109968}
109969
109970func (c *PublicAdvertisedPrefixesGetCall) doRequest(alt string) (*http.Response, error) {
109971	reqHeaders := make(http.Header)
109972	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
109973	for k, v := range c.header_ {
109974		reqHeaders[k] = v
109975	}
109976	reqHeaders.Set("User-Agent", c.s.userAgent())
109977	if c.ifNoneMatch_ != "" {
109978		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
109979	}
109980	var body io.Reader = nil
109981	c.urlParams_.Set("alt", alt)
109982	c.urlParams_.Set("prettyPrint", "false")
109983	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}")
109984	urls += "?" + c.urlParams_.Encode()
109985	req, err := http.NewRequest("GET", urls, body)
109986	if err != nil {
109987		return nil, err
109988	}
109989	req.Header = reqHeaders
109990	googleapi.Expand(req.URL, map[string]string{
109991		"project":                c.project,
109992		"publicAdvertisedPrefix": c.publicAdvertisedPrefix,
109993	})
109994	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109995}
109996
109997// Do executes the "compute.publicAdvertisedPrefixes.get" call.
109998// Exactly one of *PublicAdvertisedPrefix or error will be non-nil. Any
109999// non-2xx status code is an error. Response headers are in either
110000// *PublicAdvertisedPrefix.ServerResponse.Header or (if a response was
110001// returned at all) in error.(*googleapi.Error).Header. Use
110002// googleapi.IsNotModified to check whether the returned error was
110003// because http.StatusNotModified was returned.
110004func (c *PublicAdvertisedPrefixesGetCall) Do(opts ...googleapi.CallOption) (*PublicAdvertisedPrefix, error) {
110005	gensupport.SetOptions(c.urlParams_, opts...)
110006	res, err := c.doRequest("json")
110007	if res != nil && res.StatusCode == http.StatusNotModified {
110008		if res.Body != nil {
110009			res.Body.Close()
110010		}
110011		return nil, &googleapi.Error{
110012			Code:   res.StatusCode,
110013			Header: res.Header,
110014		}
110015	}
110016	if err != nil {
110017		return nil, err
110018	}
110019	defer googleapi.CloseBody(res)
110020	if err := googleapi.CheckResponse(res); err != nil {
110021		return nil, err
110022	}
110023	ret := &PublicAdvertisedPrefix{
110024		ServerResponse: googleapi.ServerResponse{
110025			Header:         res.Header,
110026			HTTPStatusCode: res.StatusCode,
110027		},
110028	}
110029	target := &ret
110030	if err := gensupport.DecodeResponse(target, res); err != nil {
110031		return nil, err
110032	}
110033	return ret, nil
110034	// {
110035	//   "description": "Returns the specified PublicAdvertisedPrefix resource.",
110036	//   "httpMethod": "GET",
110037	//   "id": "compute.publicAdvertisedPrefixes.get",
110038	//   "parameterOrder": [
110039	//     "project",
110040	//     "publicAdvertisedPrefix"
110041	//   ],
110042	//   "parameters": {
110043	//     "project": {
110044	//       "description": "Project ID for this request.",
110045	//       "location": "path",
110046	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110047	//       "required": true,
110048	//       "type": "string"
110049	//     },
110050	//     "publicAdvertisedPrefix": {
110051	//       "description": "Name of the PublicAdvertisedPrefix resource to return.",
110052	//       "location": "path",
110053	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
110054	//       "required": true,
110055	//       "type": "string"
110056	//     }
110057	//   },
110058	//   "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}",
110059	//   "response": {
110060	//     "$ref": "PublicAdvertisedPrefix"
110061	//   },
110062	//   "scopes": [
110063	//     "https://www.googleapis.com/auth/cloud-platform",
110064	//     "https://www.googleapis.com/auth/compute",
110065	//     "https://www.googleapis.com/auth/compute.readonly"
110066	//   ]
110067	// }
110068
110069}
110070
110071// method id "compute.publicAdvertisedPrefixes.insert":
110072
110073type PublicAdvertisedPrefixesInsertCall struct {
110074	s                      *Service
110075	project                string
110076	publicadvertisedprefix *PublicAdvertisedPrefix
110077	urlParams_             gensupport.URLParams
110078	ctx_                   context.Context
110079	header_                http.Header
110080}
110081
110082// Insert: Creates a PublicAdvertisedPrefix in the specified project
110083// using the parameters that are included in the request.
110084//
110085// - project: Project ID for this request.
110086func (r *PublicAdvertisedPrefixesService) Insert(project string, publicadvertisedprefix *PublicAdvertisedPrefix) *PublicAdvertisedPrefixesInsertCall {
110087	c := &PublicAdvertisedPrefixesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110088	c.project = project
110089	c.publicadvertisedprefix = publicadvertisedprefix
110090	return c
110091}
110092
110093// RequestId sets the optional parameter "requestId": An optional
110094// request ID to identify requests. Specify a unique request ID so that
110095// if you must retry your request, the server will know to ignore the
110096// request if it has already been completed.
110097//
110098// For example, consider a situation where you make an initial request
110099// and the request times out. If you make the request again with the
110100// same request ID, the server can check if original operation with the
110101// same request ID was received, and if so, will ignore the second
110102// request. This prevents clients from accidentally creating duplicate
110103// commitments.
110104//
110105// The request ID must be a valid UUID with the exception that zero UUID
110106// is not supported (00000000-0000-0000-0000-000000000000).
110107func (c *PublicAdvertisedPrefixesInsertCall) RequestId(requestId string) *PublicAdvertisedPrefixesInsertCall {
110108	c.urlParams_.Set("requestId", requestId)
110109	return c
110110}
110111
110112// Fields allows partial responses to be retrieved. See
110113// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110114// for more information.
110115func (c *PublicAdvertisedPrefixesInsertCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesInsertCall {
110116	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110117	return c
110118}
110119
110120// Context sets the context to be used in this call's Do method. Any
110121// pending HTTP request will be aborted if the provided context is
110122// canceled.
110123func (c *PublicAdvertisedPrefixesInsertCall) Context(ctx context.Context) *PublicAdvertisedPrefixesInsertCall {
110124	c.ctx_ = ctx
110125	return c
110126}
110127
110128// Header returns an http.Header that can be modified by the caller to
110129// add HTTP headers to the request.
110130func (c *PublicAdvertisedPrefixesInsertCall) Header() http.Header {
110131	if c.header_ == nil {
110132		c.header_ = make(http.Header)
110133	}
110134	return c.header_
110135}
110136
110137func (c *PublicAdvertisedPrefixesInsertCall) doRequest(alt string) (*http.Response, error) {
110138	reqHeaders := make(http.Header)
110139	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
110140	for k, v := range c.header_ {
110141		reqHeaders[k] = v
110142	}
110143	reqHeaders.Set("User-Agent", c.s.userAgent())
110144	var body io.Reader = nil
110145	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicadvertisedprefix)
110146	if err != nil {
110147		return nil, err
110148	}
110149	reqHeaders.Set("Content-Type", "application/json")
110150	c.urlParams_.Set("alt", alt)
110151	c.urlParams_.Set("prettyPrint", "false")
110152	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes")
110153	urls += "?" + c.urlParams_.Encode()
110154	req, err := http.NewRequest("POST", urls, body)
110155	if err != nil {
110156		return nil, err
110157	}
110158	req.Header = reqHeaders
110159	googleapi.Expand(req.URL, map[string]string{
110160		"project": c.project,
110161	})
110162	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110163}
110164
110165// Do executes the "compute.publicAdvertisedPrefixes.insert" call.
110166// Exactly one of *Operation or error will be non-nil. Any non-2xx
110167// status code is an error. Response headers are in either
110168// *Operation.ServerResponse.Header or (if a response was returned at
110169// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
110170// to check whether the returned error was because
110171// http.StatusNotModified was returned.
110172func (c *PublicAdvertisedPrefixesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
110173	gensupport.SetOptions(c.urlParams_, opts...)
110174	res, err := c.doRequest("json")
110175	if res != nil && res.StatusCode == http.StatusNotModified {
110176		if res.Body != nil {
110177			res.Body.Close()
110178		}
110179		return nil, &googleapi.Error{
110180			Code:   res.StatusCode,
110181			Header: res.Header,
110182		}
110183	}
110184	if err != nil {
110185		return nil, err
110186	}
110187	defer googleapi.CloseBody(res)
110188	if err := googleapi.CheckResponse(res); err != nil {
110189		return nil, err
110190	}
110191	ret := &Operation{
110192		ServerResponse: googleapi.ServerResponse{
110193			Header:         res.Header,
110194			HTTPStatusCode: res.StatusCode,
110195		},
110196	}
110197	target := &ret
110198	if err := gensupport.DecodeResponse(target, res); err != nil {
110199		return nil, err
110200	}
110201	return ret, nil
110202	// {
110203	//   "description": "Creates a PublicAdvertisedPrefix in the specified project using the parameters that are included in the request.",
110204	//   "httpMethod": "POST",
110205	//   "id": "compute.publicAdvertisedPrefixes.insert",
110206	//   "parameterOrder": [
110207	//     "project"
110208	//   ],
110209	//   "parameters": {
110210	//     "project": {
110211	//       "description": "Project ID for this request.",
110212	//       "location": "path",
110213	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110214	//       "required": true,
110215	//       "type": "string"
110216	//     },
110217	//     "requestId": {
110218	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
110219	//       "location": "query",
110220	//       "type": "string"
110221	//     }
110222	//   },
110223	//   "path": "projects/{project}/global/publicAdvertisedPrefixes",
110224	//   "request": {
110225	//     "$ref": "PublicAdvertisedPrefix"
110226	//   },
110227	//   "response": {
110228	//     "$ref": "Operation"
110229	//   },
110230	//   "scopes": [
110231	//     "https://www.googleapis.com/auth/cloud-platform",
110232	//     "https://www.googleapis.com/auth/compute"
110233	//   ]
110234	// }
110235
110236}
110237
110238// method id "compute.publicAdvertisedPrefixes.list":
110239
110240type PublicAdvertisedPrefixesListCall struct {
110241	s            *Service
110242	project      string
110243	urlParams_   gensupport.URLParams
110244	ifNoneMatch_ string
110245	ctx_         context.Context
110246	header_      http.Header
110247}
110248
110249// List: Lists the PublicAdvertisedPrefixes for a project.
110250//
110251// - project: Project ID for this request.
110252func (r *PublicAdvertisedPrefixesService) List(project string) *PublicAdvertisedPrefixesListCall {
110253	c := &PublicAdvertisedPrefixesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110254	c.project = project
110255	return c
110256}
110257
110258// Filter sets the optional parameter "filter": A filter expression that
110259// filters resources listed in the response. The expression must specify
110260// the field name, a comparison operator, and the value that you want to
110261// use for filtering. The value must be a string, a number, or a
110262// boolean. The comparison operator must be either `=`, `!=`, `>`, or
110263// `<`.
110264//
110265// For example, if you are filtering Compute Engine instances, you can
110266// exclude instances named `example-instance` by specifying `name !=
110267// example-instance`.
110268//
110269// You can also filter nested fields. For example, you could specify
110270// `scheduling.automaticRestart = false` to include instances only if
110271// they are not scheduled for automatic restarts. You can use filtering
110272// on nested fields to filter based on resource labels.
110273//
110274// To filter on multiple expressions, provide each separate expression
110275// within parentheses. For example: ``` (scheduling.automaticRestart =
110276// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
110277// is an `AND` expression. However, you can include `AND` and `OR`
110278// expressions explicitly. For example: ``` (cpuPlatform = "Intel
110279// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
110280// (scheduling.automaticRestart = true) ```
110281func (c *PublicAdvertisedPrefixesListCall) Filter(filter string) *PublicAdvertisedPrefixesListCall {
110282	c.urlParams_.Set("filter", filter)
110283	return c
110284}
110285
110286// MaxResults sets the optional parameter "maxResults": The maximum
110287// number of results per page that should be returned. If the number of
110288// available results is larger than `maxResults`, Compute Engine returns
110289// a `nextPageToken` that can be used to get the next page of results in
110290// subsequent list requests. Acceptable values are `0` to `500`,
110291// inclusive. (Default: `500`)
110292func (c *PublicAdvertisedPrefixesListCall) MaxResults(maxResults int64) *PublicAdvertisedPrefixesListCall {
110293	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
110294	return c
110295}
110296
110297// OrderBy sets the optional parameter "orderBy": Sorts list results by
110298// a certain order. By default, results are returned in alphanumerical
110299// order based on the resource name.
110300//
110301// You can also sort results in descending order based on the creation
110302// timestamp using `orderBy="creationTimestamp desc". This sorts
110303// results based on the `creationTimestamp` field in reverse
110304// chronological order (newest result first). Use this to sort resources
110305// like operations so that the newest operation is returned
110306// first.
110307//
110308// Currently, only sorting by `name` or `creationTimestamp desc` is
110309// supported.
110310func (c *PublicAdvertisedPrefixesListCall) OrderBy(orderBy string) *PublicAdvertisedPrefixesListCall {
110311	c.urlParams_.Set("orderBy", orderBy)
110312	return c
110313}
110314
110315// PageToken sets the optional parameter "pageToken": Specifies a page
110316// token to use. Set `pageToken` to the `nextPageToken` returned by a
110317// previous list request to get the next page of results.
110318func (c *PublicAdvertisedPrefixesListCall) PageToken(pageToken string) *PublicAdvertisedPrefixesListCall {
110319	c.urlParams_.Set("pageToken", pageToken)
110320	return c
110321}
110322
110323// ReturnPartialSuccess sets the optional parameter
110324// "returnPartialSuccess": Opt-in for partial success behavior which
110325// provides partial results in case of failure. The default value is
110326// false.
110327func (c *PublicAdvertisedPrefixesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PublicAdvertisedPrefixesListCall {
110328	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
110329	return c
110330}
110331
110332// Fields allows partial responses to be retrieved. See
110333// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110334// for more information.
110335func (c *PublicAdvertisedPrefixesListCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesListCall {
110336	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110337	return c
110338}
110339
110340// IfNoneMatch sets the optional parameter which makes the operation
110341// fail if the object's ETag matches the given value. This is useful for
110342// getting updates only after the object has changed since the last
110343// request. Use googleapi.IsNotModified to check whether the response
110344// error from Do is the result of In-None-Match.
110345func (c *PublicAdvertisedPrefixesListCall) IfNoneMatch(entityTag string) *PublicAdvertisedPrefixesListCall {
110346	c.ifNoneMatch_ = entityTag
110347	return c
110348}
110349
110350// Context sets the context to be used in this call's Do method. Any
110351// pending HTTP request will be aborted if the provided context is
110352// canceled.
110353func (c *PublicAdvertisedPrefixesListCall) Context(ctx context.Context) *PublicAdvertisedPrefixesListCall {
110354	c.ctx_ = ctx
110355	return c
110356}
110357
110358// Header returns an http.Header that can be modified by the caller to
110359// add HTTP headers to the request.
110360func (c *PublicAdvertisedPrefixesListCall) Header() http.Header {
110361	if c.header_ == nil {
110362		c.header_ = make(http.Header)
110363	}
110364	return c.header_
110365}
110366
110367func (c *PublicAdvertisedPrefixesListCall) doRequest(alt string) (*http.Response, error) {
110368	reqHeaders := make(http.Header)
110369	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
110370	for k, v := range c.header_ {
110371		reqHeaders[k] = v
110372	}
110373	reqHeaders.Set("User-Agent", c.s.userAgent())
110374	if c.ifNoneMatch_ != "" {
110375		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
110376	}
110377	var body io.Reader = nil
110378	c.urlParams_.Set("alt", alt)
110379	c.urlParams_.Set("prettyPrint", "false")
110380	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes")
110381	urls += "?" + c.urlParams_.Encode()
110382	req, err := http.NewRequest("GET", urls, body)
110383	if err != nil {
110384		return nil, err
110385	}
110386	req.Header = reqHeaders
110387	googleapi.Expand(req.URL, map[string]string{
110388		"project": c.project,
110389	})
110390	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110391}
110392
110393// Do executes the "compute.publicAdvertisedPrefixes.list" call.
110394// Exactly one of *PublicAdvertisedPrefixList or error will be non-nil.
110395// Any non-2xx status code is an error. Response headers are in either
110396// *PublicAdvertisedPrefixList.ServerResponse.Header or (if a response
110397// was returned at all) in error.(*googleapi.Error).Header. Use
110398// googleapi.IsNotModified to check whether the returned error was
110399// because http.StatusNotModified was returned.
110400func (c *PublicAdvertisedPrefixesListCall) Do(opts ...googleapi.CallOption) (*PublicAdvertisedPrefixList, error) {
110401	gensupport.SetOptions(c.urlParams_, opts...)
110402	res, err := c.doRequest("json")
110403	if res != nil && res.StatusCode == http.StatusNotModified {
110404		if res.Body != nil {
110405			res.Body.Close()
110406		}
110407		return nil, &googleapi.Error{
110408			Code:   res.StatusCode,
110409			Header: res.Header,
110410		}
110411	}
110412	if err != nil {
110413		return nil, err
110414	}
110415	defer googleapi.CloseBody(res)
110416	if err := googleapi.CheckResponse(res); err != nil {
110417		return nil, err
110418	}
110419	ret := &PublicAdvertisedPrefixList{
110420		ServerResponse: googleapi.ServerResponse{
110421			Header:         res.Header,
110422			HTTPStatusCode: res.StatusCode,
110423		},
110424	}
110425	target := &ret
110426	if err := gensupport.DecodeResponse(target, res); err != nil {
110427		return nil, err
110428	}
110429	return ret, nil
110430	// {
110431	//   "description": "Lists the PublicAdvertisedPrefixes for a project.",
110432	//   "httpMethod": "GET",
110433	//   "id": "compute.publicAdvertisedPrefixes.list",
110434	//   "parameterOrder": [
110435	//     "project"
110436	//   ],
110437	//   "parameters": {
110438	//     "filter": {
110439	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
110440	//       "location": "query",
110441	//       "type": "string"
110442	//     },
110443	//     "maxResults": {
110444	//       "default": "500",
110445	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
110446	//       "format": "uint32",
110447	//       "location": "query",
110448	//       "minimum": "0",
110449	//       "type": "integer"
110450	//     },
110451	//     "orderBy": {
110452	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
110453	//       "location": "query",
110454	//       "type": "string"
110455	//     },
110456	//     "pageToken": {
110457	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
110458	//       "location": "query",
110459	//       "type": "string"
110460	//     },
110461	//     "project": {
110462	//       "description": "Project ID for this request.",
110463	//       "location": "path",
110464	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110465	//       "required": true,
110466	//       "type": "string"
110467	//     },
110468	//     "returnPartialSuccess": {
110469	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
110470	//       "location": "query",
110471	//       "type": "boolean"
110472	//     }
110473	//   },
110474	//   "path": "projects/{project}/global/publicAdvertisedPrefixes",
110475	//   "response": {
110476	//     "$ref": "PublicAdvertisedPrefixList"
110477	//   },
110478	//   "scopes": [
110479	//     "https://www.googleapis.com/auth/cloud-platform",
110480	//     "https://www.googleapis.com/auth/compute",
110481	//     "https://www.googleapis.com/auth/compute.readonly"
110482	//   ]
110483	// }
110484
110485}
110486
110487// Pages invokes f for each page of results.
110488// A non-nil error returned from f will halt the iteration.
110489// The provided context supersedes any context provided to the Context method.
110490func (c *PublicAdvertisedPrefixesListCall) Pages(ctx context.Context, f func(*PublicAdvertisedPrefixList) error) error {
110491	c.ctx_ = ctx
110492	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
110493	for {
110494		x, err := c.Do()
110495		if err != nil {
110496			return err
110497		}
110498		if err := f(x); err != nil {
110499			return err
110500		}
110501		if x.NextPageToken == "" {
110502			return nil
110503		}
110504		c.PageToken(x.NextPageToken)
110505	}
110506}
110507
110508// method id "compute.publicAdvertisedPrefixes.patch":
110509
110510type PublicAdvertisedPrefixesPatchCall struct {
110511	s                      *Service
110512	project                string
110513	publicAdvertisedPrefix string
110514	publicadvertisedprefix *PublicAdvertisedPrefix
110515	urlParams_             gensupport.URLParams
110516	ctx_                   context.Context
110517	header_                http.Header
110518}
110519
110520// Patch: Patches the specified Router resource with the data included
110521// in the request. This method supports PATCH semantics and uses JSON
110522// merge patch format and processing rules.
110523//
110524// - project: Project ID for this request.
110525// - publicAdvertisedPrefix: Name of the PublicAdvertisedPrefix resource
110526//   to patch.
110527func (r *PublicAdvertisedPrefixesService) Patch(project string, publicAdvertisedPrefix string, publicadvertisedprefix *PublicAdvertisedPrefix) *PublicAdvertisedPrefixesPatchCall {
110528	c := &PublicAdvertisedPrefixesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110529	c.project = project
110530	c.publicAdvertisedPrefix = publicAdvertisedPrefix
110531	c.publicadvertisedprefix = publicadvertisedprefix
110532	return c
110533}
110534
110535// RequestId sets the optional parameter "requestId": An optional
110536// request ID to identify requests. Specify a unique request ID so that
110537// if you must retry your request, the server will know to ignore the
110538// request if it has already been completed.
110539//
110540// For example, consider a situation where you make an initial request
110541// and the request times out. If you make the request again with the
110542// same request ID, the server can check if original operation with the
110543// same request ID was received, and if so, will ignore the second
110544// request. This prevents clients from accidentally creating duplicate
110545// commitments.
110546//
110547// The request ID must be a valid UUID with the exception that zero UUID
110548// is not supported (00000000-0000-0000-0000-000000000000).
110549func (c *PublicAdvertisedPrefixesPatchCall) RequestId(requestId string) *PublicAdvertisedPrefixesPatchCall {
110550	c.urlParams_.Set("requestId", requestId)
110551	return c
110552}
110553
110554// Fields allows partial responses to be retrieved. See
110555// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110556// for more information.
110557func (c *PublicAdvertisedPrefixesPatchCall) Fields(s ...googleapi.Field) *PublicAdvertisedPrefixesPatchCall {
110558	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110559	return c
110560}
110561
110562// Context sets the context to be used in this call's Do method. Any
110563// pending HTTP request will be aborted if the provided context is
110564// canceled.
110565func (c *PublicAdvertisedPrefixesPatchCall) Context(ctx context.Context) *PublicAdvertisedPrefixesPatchCall {
110566	c.ctx_ = ctx
110567	return c
110568}
110569
110570// Header returns an http.Header that can be modified by the caller to
110571// add HTTP headers to the request.
110572func (c *PublicAdvertisedPrefixesPatchCall) Header() http.Header {
110573	if c.header_ == nil {
110574		c.header_ = make(http.Header)
110575	}
110576	return c.header_
110577}
110578
110579func (c *PublicAdvertisedPrefixesPatchCall) doRequest(alt string) (*http.Response, error) {
110580	reqHeaders := make(http.Header)
110581	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
110582	for k, v := range c.header_ {
110583		reqHeaders[k] = v
110584	}
110585	reqHeaders.Set("User-Agent", c.s.userAgent())
110586	var body io.Reader = nil
110587	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicadvertisedprefix)
110588	if err != nil {
110589		return nil, err
110590	}
110591	reqHeaders.Set("Content-Type", "application/json")
110592	c.urlParams_.Set("alt", alt)
110593	c.urlParams_.Set("prettyPrint", "false")
110594	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}")
110595	urls += "?" + c.urlParams_.Encode()
110596	req, err := http.NewRequest("PATCH", urls, body)
110597	if err != nil {
110598		return nil, err
110599	}
110600	req.Header = reqHeaders
110601	googleapi.Expand(req.URL, map[string]string{
110602		"project":                c.project,
110603		"publicAdvertisedPrefix": c.publicAdvertisedPrefix,
110604	})
110605	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110606}
110607
110608// Do executes the "compute.publicAdvertisedPrefixes.patch" call.
110609// Exactly one of *Operation or error will be non-nil. Any non-2xx
110610// status code is an error. Response headers are in either
110611// *Operation.ServerResponse.Header or (if a response was returned at
110612// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
110613// to check whether the returned error was because
110614// http.StatusNotModified was returned.
110615func (c *PublicAdvertisedPrefixesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
110616	gensupport.SetOptions(c.urlParams_, opts...)
110617	res, err := c.doRequest("json")
110618	if res != nil && res.StatusCode == http.StatusNotModified {
110619		if res.Body != nil {
110620			res.Body.Close()
110621		}
110622		return nil, &googleapi.Error{
110623			Code:   res.StatusCode,
110624			Header: res.Header,
110625		}
110626	}
110627	if err != nil {
110628		return nil, err
110629	}
110630	defer googleapi.CloseBody(res)
110631	if err := googleapi.CheckResponse(res); err != nil {
110632		return nil, err
110633	}
110634	ret := &Operation{
110635		ServerResponse: googleapi.ServerResponse{
110636			Header:         res.Header,
110637			HTTPStatusCode: res.StatusCode,
110638		},
110639	}
110640	target := &ret
110641	if err := gensupport.DecodeResponse(target, res); err != nil {
110642		return nil, err
110643	}
110644	return ret, nil
110645	// {
110646	//   "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.",
110647	//   "httpMethod": "PATCH",
110648	//   "id": "compute.publicAdvertisedPrefixes.patch",
110649	//   "parameterOrder": [
110650	//     "project",
110651	//     "publicAdvertisedPrefix"
110652	//   ],
110653	//   "parameters": {
110654	//     "project": {
110655	//       "description": "Project ID for this request.",
110656	//       "location": "path",
110657	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110658	//       "required": true,
110659	//       "type": "string"
110660	//     },
110661	//     "publicAdvertisedPrefix": {
110662	//       "description": "Name of the PublicAdvertisedPrefix resource to patch.",
110663	//       "location": "path",
110664	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
110665	//       "required": true,
110666	//       "type": "string"
110667	//     },
110668	//     "requestId": {
110669	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
110670	//       "location": "query",
110671	//       "type": "string"
110672	//     }
110673	//   },
110674	//   "path": "projects/{project}/global/publicAdvertisedPrefixes/{publicAdvertisedPrefix}",
110675	//   "request": {
110676	//     "$ref": "PublicAdvertisedPrefix"
110677	//   },
110678	//   "response": {
110679	//     "$ref": "Operation"
110680	//   },
110681	//   "scopes": [
110682	//     "https://www.googleapis.com/auth/cloud-platform",
110683	//     "https://www.googleapis.com/auth/compute"
110684	//   ]
110685	// }
110686
110687}
110688
110689// method id "compute.publicDelegatedPrefixes.aggregatedList":
110690
110691type PublicDelegatedPrefixesAggregatedListCall struct {
110692	s            *Service
110693	project      string
110694	urlParams_   gensupport.URLParams
110695	ifNoneMatch_ string
110696	ctx_         context.Context
110697	header_      http.Header
110698}
110699
110700// AggregatedList: Lists all PublicDelegatedPrefix resources owned by
110701// the specific project across all scopes.
110702//
110703// - project: Name of the project scoping this request.
110704func (r *PublicDelegatedPrefixesService) AggregatedList(project string) *PublicDelegatedPrefixesAggregatedListCall {
110705	c := &PublicDelegatedPrefixesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110706	c.project = project
110707	return c
110708}
110709
110710// Filter sets the optional parameter "filter": A filter expression that
110711// filters resources listed in the response. The expression must specify
110712// the field name, a comparison operator, and the value that you want to
110713// use for filtering. The value must be a string, a number, or a
110714// boolean. The comparison operator must be either `=`, `!=`, `>`, or
110715// `<`.
110716//
110717// For example, if you are filtering Compute Engine instances, you can
110718// exclude instances named `example-instance` by specifying `name !=
110719// example-instance`.
110720//
110721// You can also filter nested fields. For example, you could specify
110722// `scheduling.automaticRestart = false` to include instances only if
110723// they are not scheduled for automatic restarts. You can use filtering
110724// on nested fields to filter based on resource labels.
110725//
110726// To filter on multiple expressions, provide each separate expression
110727// within parentheses. For example: ``` (scheduling.automaticRestart =
110728// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
110729// is an `AND` expression. However, you can include `AND` and `OR`
110730// expressions explicitly. For example: ``` (cpuPlatform = "Intel
110731// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
110732// (scheduling.automaticRestart = true) ```
110733func (c *PublicDelegatedPrefixesAggregatedListCall) Filter(filter string) *PublicDelegatedPrefixesAggregatedListCall {
110734	c.urlParams_.Set("filter", filter)
110735	return c
110736}
110737
110738// IncludeAllScopes sets the optional parameter "includeAllScopes":
110739// Indicates whether every visible scope for each scope type (zone,
110740// region, global) should be included in the response. For new resource
110741// types added after this field, the flag has no effect as new resource
110742// types will always include every visible scope for each scope type in
110743// response. For resource types which predate this field, if this flag
110744// is omitted or false, only scopes of the scope types where the
110745// resource type is expected to be found will be included.
110746func (c *PublicDelegatedPrefixesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *PublicDelegatedPrefixesAggregatedListCall {
110747	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
110748	return c
110749}
110750
110751// MaxResults sets the optional parameter "maxResults": The maximum
110752// number of results per page that should be returned. If the number of
110753// available results is larger than `maxResults`, Compute Engine returns
110754// a `nextPageToken` that can be used to get the next page of results in
110755// subsequent list requests. Acceptable values are `0` to `500`,
110756// inclusive. (Default: `500`)
110757func (c *PublicDelegatedPrefixesAggregatedListCall) MaxResults(maxResults int64) *PublicDelegatedPrefixesAggregatedListCall {
110758	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
110759	return c
110760}
110761
110762// OrderBy sets the optional parameter "orderBy": Sorts list results by
110763// a certain order. By default, results are returned in alphanumerical
110764// order based on the resource name.
110765//
110766// You can also sort results in descending order based on the creation
110767// timestamp using `orderBy="creationTimestamp desc". This sorts
110768// results based on the `creationTimestamp` field in reverse
110769// chronological order (newest result first). Use this to sort resources
110770// like operations so that the newest operation is returned
110771// first.
110772//
110773// Currently, only sorting by `name` or `creationTimestamp desc` is
110774// supported.
110775func (c *PublicDelegatedPrefixesAggregatedListCall) OrderBy(orderBy string) *PublicDelegatedPrefixesAggregatedListCall {
110776	c.urlParams_.Set("orderBy", orderBy)
110777	return c
110778}
110779
110780// PageToken sets the optional parameter "pageToken": Specifies a page
110781// token to use. Set `pageToken` to the `nextPageToken` returned by a
110782// previous list request to get the next page of results.
110783func (c *PublicDelegatedPrefixesAggregatedListCall) PageToken(pageToken string) *PublicDelegatedPrefixesAggregatedListCall {
110784	c.urlParams_.Set("pageToken", pageToken)
110785	return c
110786}
110787
110788// ReturnPartialSuccess sets the optional parameter
110789// "returnPartialSuccess": Opt-in for partial success behavior which
110790// provides partial results in case of failure. The default value is
110791// false.
110792func (c *PublicDelegatedPrefixesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PublicDelegatedPrefixesAggregatedListCall {
110793	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
110794	return c
110795}
110796
110797// Fields allows partial responses to be retrieved. See
110798// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110799// for more information.
110800func (c *PublicDelegatedPrefixesAggregatedListCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesAggregatedListCall {
110801	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110802	return c
110803}
110804
110805// IfNoneMatch sets the optional parameter which makes the operation
110806// fail if the object's ETag matches the given value. This is useful for
110807// getting updates only after the object has changed since the last
110808// request. Use googleapi.IsNotModified to check whether the response
110809// error from Do is the result of In-None-Match.
110810func (c *PublicDelegatedPrefixesAggregatedListCall) IfNoneMatch(entityTag string) *PublicDelegatedPrefixesAggregatedListCall {
110811	c.ifNoneMatch_ = entityTag
110812	return c
110813}
110814
110815// Context sets the context to be used in this call's Do method. Any
110816// pending HTTP request will be aborted if the provided context is
110817// canceled.
110818func (c *PublicDelegatedPrefixesAggregatedListCall) Context(ctx context.Context) *PublicDelegatedPrefixesAggregatedListCall {
110819	c.ctx_ = ctx
110820	return c
110821}
110822
110823// Header returns an http.Header that can be modified by the caller to
110824// add HTTP headers to the request.
110825func (c *PublicDelegatedPrefixesAggregatedListCall) Header() http.Header {
110826	if c.header_ == nil {
110827		c.header_ = make(http.Header)
110828	}
110829	return c.header_
110830}
110831
110832func (c *PublicDelegatedPrefixesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
110833	reqHeaders := make(http.Header)
110834	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
110835	for k, v := range c.header_ {
110836		reqHeaders[k] = v
110837	}
110838	reqHeaders.Set("User-Agent", c.s.userAgent())
110839	if c.ifNoneMatch_ != "" {
110840		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
110841	}
110842	var body io.Reader = nil
110843	c.urlParams_.Set("alt", alt)
110844	c.urlParams_.Set("prettyPrint", "false")
110845	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/publicDelegatedPrefixes")
110846	urls += "?" + c.urlParams_.Encode()
110847	req, err := http.NewRequest("GET", urls, body)
110848	if err != nil {
110849		return nil, err
110850	}
110851	req.Header = reqHeaders
110852	googleapi.Expand(req.URL, map[string]string{
110853		"project": c.project,
110854	})
110855	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110856}
110857
110858// Do executes the "compute.publicDelegatedPrefixes.aggregatedList" call.
110859// Exactly one of *PublicDelegatedPrefixAggregatedList or error will be
110860// non-nil. Any non-2xx status code is an error. Response headers are in
110861// either *PublicDelegatedPrefixAggregatedList.ServerResponse.Header or
110862// (if a response was returned at all) in
110863// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
110864// whether the returned error was because http.StatusNotModified was
110865// returned.
110866func (c *PublicDelegatedPrefixesAggregatedListCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefixAggregatedList, error) {
110867	gensupport.SetOptions(c.urlParams_, opts...)
110868	res, err := c.doRequest("json")
110869	if res != nil && res.StatusCode == http.StatusNotModified {
110870		if res.Body != nil {
110871			res.Body.Close()
110872		}
110873		return nil, &googleapi.Error{
110874			Code:   res.StatusCode,
110875			Header: res.Header,
110876		}
110877	}
110878	if err != nil {
110879		return nil, err
110880	}
110881	defer googleapi.CloseBody(res)
110882	if err := googleapi.CheckResponse(res); err != nil {
110883		return nil, err
110884	}
110885	ret := &PublicDelegatedPrefixAggregatedList{
110886		ServerResponse: googleapi.ServerResponse{
110887			Header:         res.Header,
110888			HTTPStatusCode: res.StatusCode,
110889		},
110890	}
110891	target := &ret
110892	if err := gensupport.DecodeResponse(target, res); err != nil {
110893		return nil, err
110894	}
110895	return ret, nil
110896	// {
110897	//   "description": "Lists all PublicDelegatedPrefix resources owned by the specific project across all scopes.",
110898	//   "httpMethod": "GET",
110899	//   "id": "compute.publicDelegatedPrefixes.aggregatedList",
110900	//   "parameterOrder": [
110901	//     "project"
110902	//   ],
110903	//   "parameters": {
110904	//     "filter": {
110905	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
110906	//       "location": "query",
110907	//       "type": "string"
110908	//     },
110909	//     "includeAllScopes": {
110910	//       "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.",
110911	//       "location": "query",
110912	//       "type": "boolean"
110913	//     },
110914	//     "maxResults": {
110915	//       "default": "500",
110916	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
110917	//       "format": "uint32",
110918	//       "location": "query",
110919	//       "minimum": "0",
110920	//       "type": "integer"
110921	//     },
110922	//     "orderBy": {
110923	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
110924	//       "location": "query",
110925	//       "type": "string"
110926	//     },
110927	//     "pageToken": {
110928	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
110929	//       "location": "query",
110930	//       "type": "string"
110931	//     },
110932	//     "project": {
110933	//       "description": "Name of the project scoping this request.",
110934	//       "location": "path",
110935	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110936	//       "required": true,
110937	//       "type": "string"
110938	//     },
110939	//     "returnPartialSuccess": {
110940	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
110941	//       "location": "query",
110942	//       "type": "boolean"
110943	//     }
110944	//   },
110945	//   "path": "projects/{project}/aggregated/publicDelegatedPrefixes",
110946	//   "response": {
110947	//     "$ref": "PublicDelegatedPrefixAggregatedList"
110948	//   },
110949	//   "scopes": [
110950	//     "https://www.googleapis.com/auth/cloud-platform",
110951	//     "https://www.googleapis.com/auth/compute",
110952	//     "https://www.googleapis.com/auth/compute.readonly"
110953	//   ]
110954	// }
110955
110956}
110957
110958// Pages invokes f for each page of results.
110959// A non-nil error returned from f will halt the iteration.
110960// The provided context supersedes any context provided to the Context method.
110961func (c *PublicDelegatedPrefixesAggregatedListCall) Pages(ctx context.Context, f func(*PublicDelegatedPrefixAggregatedList) error) error {
110962	c.ctx_ = ctx
110963	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
110964	for {
110965		x, err := c.Do()
110966		if err != nil {
110967			return err
110968		}
110969		if err := f(x); err != nil {
110970			return err
110971		}
110972		if x.NextPageToken == "" {
110973			return nil
110974		}
110975		c.PageToken(x.NextPageToken)
110976	}
110977}
110978
110979// method id "compute.publicDelegatedPrefixes.delete":
110980
110981type PublicDelegatedPrefixesDeleteCall struct {
110982	s                     *Service
110983	project               string
110984	region                string
110985	publicDelegatedPrefix string
110986	urlParams_            gensupport.URLParams
110987	ctx_                  context.Context
110988	header_               http.Header
110989}
110990
110991// Delete: Deletes the specified PublicDelegatedPrefix in the given
110992// region.
110993//
110994// - project: Project ID for this request.
110995// - publicDelegatedPrefix: Name of the PublicDelegatedPrefix resource
110996//   to delete.
110997// - region: Name of the region of this request.
110998func (r *PublicDelegatedPrefixesService) Delete(project string, region string, publicDelegatedPrefix string) *PublicDelegatedPrefixesDeleteCall {
110999	c := &PublicDelegatedPrefixesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111000	c.project = project
111001	c.region = region
111002	c.publicDelegatedPrefix = publicDelegatedPrefix
111003	return c
111004}
111005
111006// RequestId sets the optional parameter "requestId": An optional
111007// request ID to identify requests. Specify a unique request ID so that
111008// if you must retry your request, the server will know to ignore the
111009// request if it has already been completed.
111010//
111011// For example, consider a situation where you make an initial request
111012// and the request times out. If you make the request again with the
111013// same request ID, the server can check if original operation with the
111014// same request ID was received, and if so, will ignore the second
111015// request. This prevents clients from accidentally creating duplicate
111016// commitments.
111017//
111018// The request ID must be a valid UUID with the exception that zero UUID
111019// is not supported (00000000-0000-0000-0000-000000000000).
111020func (c *PublicDelegatedPrefixesDeleteCall) RequestId(requestId string) *PublicDelegatedPrefixesDeleteCall {
111021	c.urlParams_.Set("requestId", requestId)
111022	return c
111023}
111024
111025// Fields allows partial responses to be retrieved. See
111026// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111027// for more information.
111028func (c *PublicDelegatedPrefixesDeleteCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesDeleteCall {
111029	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111030	return c
111031}
111032
111033// Context sets the context to be used in this call's Do method. Any
111034// pending HTTP request will be aborted if the provided context is
111035// canceled.
111036func (c *PublicDelegatedPrefixesDeleteCall) Context(ctx context.Context) *PublicDelegatedPrefixesDeleteCall {
111037	c.ctx_ = ctx
111038	return c
111039}
111040
111041// Header returns an http.Header that can be modified by the caller to
111042// add HTTP headers to the request.
111043func (c *PublicDelegatedPrefixesDeleteCall) Header() http.Header {
111044	if c.header_ == nil {
111045		c.header_ = make(http.Header)
111046	}
111047	return c.header_
111048}
111049
111050func (c *PublicDelegatedPrefixesDeleteCall) doRequest(alt string) (*http.Response, error) {
111051	reqHeaders := make(http.Header)
111052	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
111053	for k, v := range c.header_ {
111054		reqHeaders[k] = v
111055	}
111056	reqHeaders.Set("User-Agent", c.s.userAgent())
111057	var body io.Reader = nil
111058	c.urlParams_.Set("alt", alt)
111059	c.urlParams_.Set("prettyPrint", "false")
111060	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}")
111061	urls += "?" + c.urlParams_.Encode()
111062	req, err := http.NewRequest("DELETE", urls, body)
111063	if err != nil {
111064		return nil, err
111065	}
111066	req.Header = reqHeaders
111067	googleapi.Expand(req.URL, map[string]string{
111068		"project":               c.project,
111069		"region":                c.region,
111070		"publicDelegatedPrefix": c.publicDelegatedPrefix,
111071	})
111072	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111073}
111074
111075// Do executes the "compute.publicDelegatedPrefixes.delete" call.
111076// Exactly one of *Operation or error will be non-nil. Any non-2xx
111077// status code is an error. Response headers are in either
111078// *Operation.ServerResponse.Header or (if a response was returned at
111079// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
111080// to check whether the returned error was because
111081// http.StatusNotModified was returned.
111082func (c *PublicDelegatedPrefixesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
111083	gensupport.SetOptions(c.urlParams_, opts...)
111084	res, err := c.doRequest("json")
111085	if res != nil && res.StatusCode == http.StatusNotModified {
111086		if res.Body != nil {
111087			res.Body.Close()
111088		}
111089		return nil, &googleapi.Error{
111090			Code:   res.StatusCode,
111091			Header: res.Header,
111092		}
111093	}
111094	if err != nil {
111095		return nil, err
111096	}
111097	defer googleapi.CloseBody(res)
111098	if err := googleapi.CheckResponse(res); err != nil {
111099		return nil, err
111100	}
111101	ret := &Operation{
111102		ServerResponse: googleapi.ServerResponse{
111103			Header:         res.Header,
111104			HTTPStatusCode: res.StatusCode,
111105		},
111106	}
111107	target := &ret
111108	if err := gensupport.DecodeResponse(target, res); err != nil {
111109		return nil, err
111110	}
111111	return ret, nil
111112	// {
111113	//   "description": "Deletes the specified PublicDelegatedPrefix in the given region.",
111114	//   "httpMethod": "DELETE",
111115	//   "id": "compute.publicDelegatedPrefixes.delete",
111116	//   "parameterOrder": [
111117	//     "project",
111118	//     "region",
111119	//     "publicDelegatedPrefix"
111120	//   ],
111121	//   "parameters": {
111122	//     "project": {
111123	//       "description": "Project ID for this request.",
111124	//       "location": "path",
111125	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111126	//       "required": true,
111127	//       "type": "string"
111128	//     },
111129	//     "publicDelegatedPrefix": {
111130	//       "description": "Name of the PublicDelegatedPrefix resource to delete.",
111131	//       "location": "path",
111132	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
111133	//       "required": true,
111134	//       "type": "string"
111135	//     },
111136	//     "region": {
111137	//       "description": "Name of the region of this request.",
111138	//       "location": "path",
111139	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
111140	//       "required": true,
111141	//       "type": "string"
111142	//     },
111143	//     "requestId": {
111144	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
111145	//       "location": "query",
111146	//       "type": "string"
111147	//     }
111148	//   },
111149	//   "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}",
111150	//   "response": {
111151	//     "$ref": "Operation"
111152	//   },
111153	//   "scopes": [
111154	//     "https://www.googleapis.com/auth/cloud-platform",
111155	//     "https://www.googleapis.com/auth/compute"
111156	//   ]
111157	// }
111158
111159}
111160
111161// method id "compute.publicDelegatedPrefixes.get":
111162
111163type PublicDelegatedPrefixesGetCall struct {
111164	s                     *Service
111165	project               string
111166	region                string
111167	publicDelegatedPrefix string
111168	urlParams_            gensupport.URLParams
111169	ifNoneMatch_          string
111170	ctx_                  context.Context
111171	header_               http.Header
111172}
111173
111174// Get: Returns the specified PublicDelegatedPrefix resource in the
111175// given region.
111176//
111177// - project: Project ID for this request.
111178// - publicDelegatedPrefix: Name of the PublicDelegatedPrefix resource
111179//   to return.
111180// - region: Name of the region of this request.
111181func (r *PublicDelegatedPrefixesService) Get(project string, region string, publicDelegatedPrefix string) *PublicDelegatedPrefixesGetCall {
111182	c := &PublicDelegatedPrefixesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111183	c.project = project
111184	c.region = region
111185	c.publicDelegatedPrefix = publicDelegatedPrefix
111186	return c
111187}
111188
111189// Fields allows partial responses to be retrieved. See
111190// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111191// for more information.
111192func (c *PublicDelegatedPrefixesGetCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesGetCall {
111193	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111194	return c
111195}
111196
111197// IfNoneMatch sets the optional parameter which makes the operation
111198// fail if the object's ETag matches the given value. This is useful for
111199// getting updates only after the object has changed since the last
111200// request. Use googleapi.IsNotModified to check whether the response
111201// error from Do is the result of In-None-Match.
111202func (c *PublicDelegatedPrefixesGetCall) IfNoneMatch(entityTag string) *PublicDelegatedPrefixesGetCall {
111203	c.ifNoneMatch_ = entityTag
111204	return c
111205}
111206
111207// Context sets the context to be used in this call's Do method. Any
111208// pending HTTP request will be aborted if the provided context is
111209// canceled.
111210func (c *PublicDelegatedPrefixesGetCall) Context(ctx context.Context) *PublicDelegatedPrefixesGetCall {
111211	c.ctx_ = ctx
111212	return c
111213}
111214
111215// Header returns an http.Header that can be modified by the caller to
111216// add HTTP headers to the request.
111217func (c *PublicDelegatedPrefixesGetCall) Header() http.Header {
111218	if c.header_ == nil {
111219		c.header_ = make(http.Header)
111220	}
111221	return c.header_
111222}
111223
111224func (c *PublicDelegatedPrefixesGetCall) doRequest(alt string) (*http.Response, error) {
111225	reqHeaders := make(http.Header)
111226	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
111227	for k, v := range c.header_ {
111228		reqHeaders[k] = v
111229	}
111230	reqHeaders.Set("User-Agent", c.s.userAgent())
111231	if c.ifNoneMatch_ != "" {
111232		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
111233	}
111234	var body io.Reader = nil
111235	c.urlParams_.Set("alt", alt)
111236	c.urlParams_.Set("prettyPrint", "false")
111237	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}")
111238	urls += "?" + c.urlParams_.Encode()
111239	req, err := http.NewRequest("GET", urls, body)
111240	if err != nil {
111241		return nil, err
111242	}
111243	req.Header = reqHeaders
111244	googleapi.Expand(req.URL, map[string]string{
111245		"project":               c.project,
111246		"region":                c.region,
111247		"publicDelegatedPrefix": c.publicDelegatedPrefix,
111248	})
111249	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111250}
111251
111252// Do executes the "compute.publicDelegatedPrefixes.get" call.
111253// Exactly one of *PublicDelegatedPrefix or error will be non-nil. Any
111254// non-2xx status code is an error. Response headers are in either
111255// *PublicDelegatedPrefix.ServerResponse.Header or (if a response was
111256// returned at all) in error.(*googleapi.Error).Header. Use
111257// googleapi.IsNotModified to check whether the returned error was
111258// because http.StatusNotModified was returned.
111259func (c *PublicDelegatedPrefixesGetCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefix, error) {
111260	gensupport.SetOptions(c.urlParams_, opts...)
111261	res, err := c.doRequest("json")
111262	if res != nil && res.StatusCode == http.StatusNotModified {
111263		if res.Body != nil {
111264			res.Body.Close()
111265		}
111266		return nil, &googleapi.Error{
111267			Code:   res.StatusCode,
111268			Header: res.Header,
111269		}
111270	}
111271	if err != nil {
111272		return nil, err
111273	}
111274	defer googleapi.CloseBody(res)
111275	if err := googleapi.CheckResponse(res); err != nil {
111276		return nil, err
111277	}
111278	ret := &PublicDelegatedPrefix{
111279		ServerResponse: googleapi.ServerResponse{
111280			Header:         res.Header,
111281			HTTPStatusCode: res.StatusCode,
111282		},
111283	}
111284	target := &ret
111285	if err := gensupport.DecodeResponse(target, res); err != nil {
111286		return nil, err
111287	}
111288	return ret, nil
111289	// {
111290	//   "description": "Returns the specified PublicDelegatedPrefix resource in the given region.",
111291	//   "httpMethod": "GET",
111292	//   "id": "compute.publicDelegatedPrefixes.get",
111293	//   "parameterOrder": [
111294	//     "project",
111295	//     "region",
111296	//     "publicDelegatedPrefix"
111297	//   ],
111298	//   "parameters": {
111299	//     "project": {
111300	//       "description": "Project ID for this request.",
111301	//       "location": "path",
111302	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111303	//       "required": true,
111304	//       "type": "string"
111305	//     },
111306	//     "publicDelegatedPrefix": {
111307	//       "description": "Name of the PublicDelegatedPrefix resource to return.",
111308	//       "location": "path",
111309	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
111310	//       "required": true,
111311	//       "type": "string"
111312	//     },
111313	//     "region": {
111314	//       "description": "Name of the region of this request.",
111315	//       "location": "path",
111316	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
111317	//       "required": true,
111318	//       "type": "string"
111319	//     }
111320	//   },
111321	//   "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}",
111322	//   "response": {
111323	//     "$ref": "PublicDelegatedPrefix"
111324	//   },
111325	//   "scopes": [
111326	//     "https://www.googleapis.com/auth/cloud-platform",
111327	//     "https://www.googleapis.com/auth/compute",
111328	//     "https://www.googleapis.com/auth/compute.readonly"
111329	//   ]
111330	// }
111331
111332}
111333
111334// method id "compute.publicDelegatedPrefixes.insert":
111335
111336type PublicDelegatedPrefixesInsertCall struct {
111337	s                     *Service
111338	project               string
111339	region                string
111340	publicdelegatedprefix *PublicDelegatedPrefix
111341	urlParams_            gensupport.URLParams
111342	ctx_                  context.Context
111343	header_               http.Header
111344}
111345
111346// Insert: Creates a PublicDelegatedPrefix in the specified project in
111347// the given region using the parameters that are included in the
111348// request.
111349//
111350// - project: Project ID for this request.
111351// - region: Name of the region of this request.
111352func (r *PublicDelegatedPrefixesService) Insert(project string, region string, publicdelegatedprefix *PublicDelegatedPrefix) *PublicDelegatedPrefixesInsertCall {
111353	c := &PublicDelegatedPrefixesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111354	c.project = project
111355	c.region = region
111356	c.publicdelegatedprefix = publicdelegatedprefix
111357	return c
111358}
111359
111360// RequestId sets the optional parameter "requestId": An optional
111361// request ID to identify requests. Specify a unique request ID so that
111362// if you must retry your request, the server will know to ignore the
111363// request if it has already been completed.
111364//
111365// For example, consider a situation where you make an initial request
111366// and the request times out. If you make the request again with the
111367// same request ID, the server can check if original operation with the
111368// same request ID was received, and if so, will ignore the second
111369// request. This prevents clients from accidentally creating duplicate
111370// commitments.
111371//
111372// The request ID must be a valid UUID with the exception that zero UUID
111373// is not supported (00000000-0000-0000-0000-000000000000).
111374func (c *PublicDelegatedPrefixesInsertCall) RequestId(requestId string) *PublicDelegatedPrefixesInsertCall {
111375	c.urlParams_.Set("requestId", requestId)
111376	return c
111377}
111378
111379// Fields allows partial responses to be retrieved. See
111380// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111381// for more information.
111382func (c *PublicDelegatedPrefixesInsertCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesInsertCall {
111383	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111384	return c
111385}
111386
111387// Context sets the context to be used in this call's Do method. Any
111388// pending HTTP request will be aborted if the provided context is
111389// canceled.
111390func (c *PublicDelegatedPrefixesInsertCall) Context(ctx context.Context) *PublicDelegatedPrefixesInsertCall {
111391	c.ctx_ = ctx
111392	return c
111393}
111394
111395// Header returns an http.Header that can be modified by the caller to
111396// add HTTP headers to the request.
111397func (c *PublicDelegatedPrefixesInsertCall) Header() http.Header {
111398	if c.header_ == nil {
111399		c.header_ = make(http.Header)
111400	}
111401	return c.header_
111402}
111403
111404func (c *PublicDelegatedPrefixesInsertCall) doRequest(alt string) (*http.Response, error) {
111405	reqHeaders := make(http.Header)
111406	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
111407	for k, v := range c.header_ {
111408		reqHeaders[k] = v
111409	}
111410	reqHeaders.Set("User-Agent", c.s.userAgent())
111411	var body io.Reader = nil
111412	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicdelegatedprefix)
111413	if err != nil {
111414		return nil, err
111415	}
111416	reqHeaders.Set("Content-Type", "application/json")
111417	c.urlParams_.Set("alt", alt)
111418	c.urlParams_.Set("prettyPrint", "false")
111419	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes")
111420	urls += "?" + c.urlParams_.Encode()
111421	req, err := http.NewRequest("POST", urls, body)
111422	if err != nil {
111423		return nil, err
111424	}
111425	req.Header = reqHeaders
111426	googleapi.Expand(req.URL, map[string]string{
111427		"project": c.project,
111428		"region":  c.region,
111429	})
111430	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111431}
111432
111433// Do executes the "compute.publicDelegatedPrefixes.insert" call.
111434// Exactly one of *Operation or error will be non-nil. Any non-2xx
111435// status code is an error. Response headers are in either
111436// *Operation.ServerResponse.Header or (if a response was returned at
111437// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
111438// to check whether the returned error was because
111439// http.StatusNotModified was returned.
111440func (c *PublicDelegatedPrefixesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
111441	gensupport.SetOptions(c.urlParams_, opts...)
111442	res, err := c.doRequest("json")
111443	if res != nil && res.StatusCode == http.StatusNotModified {
111444		if res.Body != nil {
111445			res.Body.Close()
111446		}
111447		return nil, &googleapi.Error{
111448			Code:   res.StatusCode,
111449			Header: res.Header,
111450		}
111451	}
111452	if err != nil {
111453		return nil, err
111454	}
111455	defer googleapi.CloseBody(res)
111456	if err := googleapi.CheckResponse(res); err != nil {
111457		return nil, err
111458	}
111459	ret := &Operation{
111460		ServerResponse: googleapi.ServerResponse{
111461			Header:         res.Header,
111462			HTTPStatusCode: res.StatusCode,
111463		},
111464	}
111465	target := &ret
111466	if err := gensupport.DecodeResponse(target, res); err != nil {
111467		return nil, err
111468	}
111469	return ret, nil
111470	// {
111471	//   "description": "Creates a PublicDelegatedPrefix in the specified project in the given region using the parameters that are included in the request.",
111472	//   "httpMethod": "POST",
111473	//   "id": "compute.publicDelegatedPrefixes.insert",
111474	//   "parameterOrder": [
111475	//     "project",
111476	//     "region"
111477	//   ],
111478	//   "parameters": {
111479	//     "project": {
111480	//       "description": "Project ID for this request.",
111481	//       "location": "path",
111482	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111483	//       "required": true,
111484	//       "type": "string"
111485	//     },
111486	//     "region": {
111487	//       "description": "Name of the region of this request.",
111488	//       "location": "path",
111489	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
111490	//       "required": true,
111491	//       "type": "string"
111492	//     },
111493	//     "requestId": {
111494	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
111495	//       "location": "query",
111496	//       "type": "string"
111497	//     }
111498	//   },
111499	//   "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes",
111500	//   "request": {
111501	//     "$ref": "PublicDelegatedPrefix"
111502	//   },
111503	//   "response": {
111504	//     "$ref": "Operation"
111505	//   },
111506	//   "scopes": [
111507	//     "https://www.googleapis.com/auth/cloud-platform",
111508	//     "https://www.googleapis.com/auth/compute"
111509	//   ]
111510	// }
111511
111512}
111513
111514// method id "compute.publicDelegatedPrefixes.list":
111515
111516type PublicDelegatedPrefixesListCall struct {
111517	s            *Service
111518	project      string
111519	region       string
111520	urlParams_   gensupport.URLParams
111521	ifNoneMatch_ string
111522	ctx_         context.Context
111523	header_      http.Header
111524}
111525
111526// List: Lists the PublicDelegatedPrefixes for a project in the given
111527// region.
111528//
111529// - project: Project ID for this request.
111530// - region: Name of the region of this request.
111531func (r *PublicDelegatedPrefixesService) List(project string, region string) *PublicDelegatedPrefixesListCall {
111532	c := &PublicDelegatedPrefixesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111533	c.project = project
111534	c.region = region
111535	return c
111536}
111537
111538// Filter sets the optional parameter "filter": A filter expression that
111539// filters resources listed in the response. The expression must specify
111540// the field name, a comparison operator, and the value that you want to
111541// use for filtering. The value must be a string, a number, or a
111542// boolean. The comparison operator must be either `=`, `!=`, `>`, or
111543// `<`.
111544//
111545// For example, if you are filtering Compute Engine instances, you can
111546// exclude instances named `example-instance` by specifying `name !=
111547// example-instance`.
111548//
111549// You can also filter nested fields. For example, you could specify
111550// `scheduling.automaticRestart = false` to include instances only if
111551// they are not scheduled for automatic restarts. You can use filtering
111552// on nested fields to filter based on resource labels.
111553//
111554// To filter on multiple expressions, provide each separate expression
111555// within parentheses. For example: ``` (scheduling.automaticRestart =
111556// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
111557// is an `AND` expression. However, you can include `AND` and `OR`
111558// expressions explicitly. For example: ``` (cpuPlatform = "Intel
111559// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
111560// (scheduling.automaticRestart = true) ```
111561func (c *PublicDelegatedPrefixesListCall) Filter(filter string) *PublicDelegatedPrefixesListCall {
111562	c.urlParams_.Set("filter", filter)
111563	return c
111564}
111565
111566// MaxResults sets the optional parameter "maxResults": The maximum
111567// number of results per page that should be returned. If the number of
111568// available results is larger than `maxResults`, Compute Engine returns
111569// a `nextPageToken` that can be used to get the next page of results in
111570// subsequent list requests. Acceptable values are `0` to `500`,
111571// inclusive. (Default: `500`)
111572func (c *PublicDelegatedPrefixesListCall) MaxResults(maxResults int64) *PublicDelegatedPrefixesListCall {
111573	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
111574	return c
111575}
111576
111577// OrderBy sets the optional parameter "orderBy": Sorts list results by
111578// a certain order. By default, results are returned in alphanumerical
111579// order based on the resource name.
111580//
111581// You can also sort results in descending order based on the creation
111582// timestamp using `orderBy="creationTimestamp desc". This sorts
111583// results based on the `creationTimestamp` field in reverse
111584// chronological order (newest result first). Use this to sort resources
111585// like operations so that the newest operation is returned
111586// first.
111587//
111588// Currently, only sorting by `name` or `creationTimestamp desc` is
111589// supported.
111590func (c *PublicDelegatedPrefixesListCall) OrderBy(orderBy string) *PublicDelegatedPrefixesListCall {
111591	c.urlParams_.Set("orderBy", orderBy)
111592	return c
111593}
111594
111595// PageToken sets the optional parameter "pageToken": Specifies a page
111596// token to use. Set `pageToken` to the `nextPageToken` returned by a
111597// previous list request to get the next page of results.
111598func (c *PublicDelegatedPrefixesListCall) PageToken(pageToken string) *PublicDelegatedPrefixesListCall {
111599	c.urlParams_.Set("pageToken", pageToken)
111600	return c
111601}
111602
111603// ReturnPartialSuccess sets the optional parameter
111604// "returnPartialSuccess": Opt-in for partial success behavior which
111605// provides partial results in case of failure. The default value is
111606// false.
111607func (c *PublicDelegatedPrefixesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *PublicDelegatedPrefixesListCall {
111608	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
111609	return c
111610}
111611
111612// Fields allows partial responses to be retrieved. See
111613// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111614// for more information.
111615func (c *PublicDelegatedPrefixesListCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesListCall {
111616	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111617	return c
111618}
111619
111620// IfNoneMatch sets the optional parameter which makes the operation
111621// fail if the object's ETag matches the given value. This is useful for
111622// getting updates only after the object has changed since the last
111623// request. Use googleapi.IsNotModified to check whether the response
111624// error from Do is the result of In-None-Match.
111625func (c *PublicDelegatedPrefixesListCall) IfNoneMatch(entityTag string) *PublicDelegatedPrefixesListCall {
111626	c.ifNoneMatch_ = entityTag
111627	return c
111628}
111629
111630// Context sets the context to be used in this call's Do method. Any
111631// pending HTTP request will be aborted if the provided context is
111632// canceled.
111633func (c *PublicDelegatedPrefixesListCall) Context(ctx context.Context) *PublicDelegatedPrefixesListCall {
111634	c.ctx_ = ctx
111635	return c
111636}
111637
111638// Header returns an http.Header that can be modified by the caller to
111639// add HTTP headers to the request.
111640func (c *PublicDelegatedPrefixesListCall) Header() http.Header {
111641	if c.header_ == nil {
111642		c.header_ = make(http.Header)
111643	}
111644	return c.header_
111645}
111646
111647func (c *PublicDelegatedPrefixesListCall) doRequest(alt string) (*http.Response, error) {
111648	reqHeaders := make(http.Header)
111649	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
111650	for k, v := range c.header_ {
111651		reqHeaders[k] = v
111652	}
111653	reqHeaders.Set("User-Agent", c.s.userAgent())
111654	if c.ifNoneMatch_ != "" {
111655		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
111656	}
111657	var body io.Reader = nil
111658	c.urlParams_.Set("alt", alt)
111659	c.urlParams_.Set("prettyPrint", "false")
111660	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes")
111661	urls += "?" + c.urlParams_.Encode()
111662	req, err := http.NewRequest("GET", urls, body)
111663	if err != nil {
111664		return nil, err
111665	}
111666	req.Header = reqHeaders
111667	googleapi.Expand(req.URL, map[string]string{
111668		"project": c.project,
111669		"region":  c.region,
111670	})
111671	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111672}
111673
111674// Do executes the "compute.publicDelegatedPrefixes.list" call.
111675// Exactly one of *PublicDelegatedPrefixList or error will be non-nil.
111676// Any non-2xx status code is an error. Response headers are in either
111677// *PublicDelegatedPrefixList.ServerResponse.Header or (if a response
111678// was returned at all) in error.(*googleapi.Error).Header. Use
111679// googleapi.IsNotModified to check whether the returned error was
111680// because http.StatusNotModified was returned.
111681func (c *PublicDelegatedPrefixesListCall) Do(opts ...googleapi.CallOption) (*PublicDelegatedPrefixList, error) {
111682	gensupport.SetOptions(c.urlParams_, opts...)
111683	res, err := c.doRequest("json")
111684	if res != nil && res.StatusCode == http.StatusNotModified {
111685		if res.Body != nil {
111686			res.Body.Close()
111687		}
111688		return nil, &googleapi.Error{
111689			Code:   res.StatusCode,
111690			Header: res.Header,
111691		}
111692	}
111693	if err != nil {
111694		return nil, err
111695	}
111696	defer googleapi.CloseBody(res)
111697	if err := googleapi.CheckResponse(res); err != nil {
111698		return nil, err
111699	}
111700	ret := &PublicDelegatedPrefixList{
111701		ServerResponse: googleapi.ServerResponse{
111702			Header:         res.Header,
111703			HTTPStatusCode: res.StatusCode,
111704		},
111705	}
111706	target := &ret
111707	if err := gensupport.DecodeResponse(target, res); err != nil {
111708		return nil, err
111709	}
111710	return ret, nil
111711	// {
111712	//   "description": "Lists the PublicDelegatedPrefixes for a project in the given region.",
111713	//   "httpMethod": "GET",
111714	//   "id": "compute.publicDelegatedPrefixes.list",
111715	//   "parameterOrder": [
111716	//     "project",
111717	//     "region"
111718	//   ],
111719	//   "parameters": {
111720	//     "filter": {
111721	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
111722	//       "location": "query",
111723	//       "type": "string"
111724	//     },
111725	//     "maxResults": {
111726	//       "default": "500",
111727	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
111728	//       "format": "uint32",
111729	//       "location": "query",
111730	//       "minimum": "0",
111731	//       "type": "integer"
111732	//     },
111733	//     "orderBy": {
111734	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
111735	//       "location": "query",
111736	//       "type": "string"
111737	//     },
111738	//     "pageToken": {
111739	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
111740	//       "location": "query",
111741	//       "type": "string"
111742	//     },
111743	//     "project": {
111744	//       "description": "Project ID for this request.",
111745	//       "location": "path",
111746	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111747	//       "required": true,
111748	//       "type": "string"
111749	//     },
111750	//     "region": {
111751	//       "description": "Name of the region of this request.",
111752	//       "location": "path",
111753	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
111754	//       "required": true,
111755	//       "type": "string"
111756	//     },
111757	//     "returnPartialSuccess": {
111758	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
111759	//       "location": "query",
111760	//       "type": "boolean"
111761	//     }
111762	//   },
111763	//   "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes",
111764	//   "response": {
111765	//     "$ref": "PublicDelegatedPrefixList"
111766	//   },
111767	//   "scopes": [
111768	//     "https://www.googleapis.com/auth/cloud-platform",
111769	//     "https://www.googleapis.com/auth/compute",
111770	//     "https://www.googleapis.com/auth/compute.readonly"
111771	//   ]
111772	// }
111773
111774}
111775
111776// Pages invokes f for each page of results.
111777// A non-nil error returned from f will halt the iteration.
111778// The provided context supersedes any context provided to the Context method.
111779func (c *PublicDelegatedPrefixesListCall) Pages(ctx context.Context, f func(*PublicDelegatedPrefixList) error) error {
111780	c.ctx_ = ctx
111781	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
111782	for {
111783		x, err := c.Do()
111784		if err != nil {
111785			return err
111786		}
111787		if err := f(x); err != nil {
111788			return err
111789		}
111790		if x.NextPageToken == "" {
111791			return nil
111792		}
111793		c.PageToken(x.NextPageToken)
111794	}
111795}
111796
111797// method id "compute.publicDelegatedPrefixes.patch":
111798
111799type PublicDelegatedPrefixesPatchCall struct {
111800	s                     *Service
111801	project               string
111802	region                string
111803	publicDelegatedPrefix string
111804	publicdelegatedprefix *PublicDelegatedPrefix
111805	urlParams_            gensupport.URLParams
111806	ctx_                  context.Context
111807	header_               http.Header
111808}
111809
111810// Patch: Patches the specified PublicDelegatedPrefix resource with the
111811// data included in the request. This method supports PATCH semantics
111812// and uses JSON merge patch format and processing rules.
111813//
111814// - project: Project ID for this request.
111815// - publicDelegatedPrefix: Name of the PublicDelegatedPrefix resource
111816//   to patch.
111817// - region: Name of the region for this request.
111818func (r *PublicDelegatedPrefixesService) Patch(project string, region string, publicDelegatedPrefix string, publicdelegatedprefix *PublicDelegatedPrefix) *PublicDelegatedPrefixesPatchCall {
111819	c := &PublicDelegatedPrefixesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111820	c.project = project
111821	c.region = region
111822	c.publicDelegatedPrefix = publicDelegatedPrefix
111823	c.publicdelegatedprefix = publicdelegatedprefix
111824	return c
111825}
111826
111827// RequestId sets the optional parameter "requestId": An optional
111828// request ID to identify requests. Specify a unique request ID so that
111829// if you must retry your request, the server will know to ignore the
111830// request if it has already been completed.
111831//
111832// For example, consider a situation where you make an initial request
111833// and the request times out. If you make the request again with the
111834// same request ID, the server can check if original operation with the
111835// same request ID was received, and if so, will ignore the second
111836// request. This prevents clients from accidentally creating duplicate
111837// commitments.
111838//
111839// The request ID must be a valid UUID with the exception that zero UUID
111840// is not supported (00000000-0000-0000-0000-000000000000).
111841func (c *PublicDelegatedPrefixesPatchCall) RequestId(requestId string) *PublicDelegatedPrefixesPatchCall {
111842	c.urlParams_.Set("requestId", requestId)
111843	return c
111844}
111845
111846// Fields allows partial responses to be retrieved. See
111847// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111848// for more information.
111849func (c *PublicDelegatedPrefixesPatchCall) Fields(s ...googleapi.Field) *PublicDelegatedPrefixesPatchCall {
111850	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111851	return c
111852}
111853
111854// Context sets the context to be used in this call's Do method. Any
111855// pending HTTP request will be aborted if the provided context is
111856// canceled.
111857func (c *PublicDelegatedPrefixesPatchCall) Context(ctx context.Context) *PublicDelegatedPrefixesPatchCall {
111858	c.ctx_ = ctx
111859	return c
111860}
111861
111862// Header returns an http.Header that can be modified by the caller to
111863// add HTTP headers to the request.
111864func (c *PublicDelegatedPrefixesPatchCall) Header() http.Header {
111865	if c.header_ == nil {
111866		c.header_ = make(http.Header)
111867	}
111868	return c.header_
111869}
111870
111871func (c *PublicDelegatedPrefixesPatchCall) doRequest(alt string) (*http.Response, error) {
111872	reqHeaders := make(http.Header)
111873	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
111874	for k, v := range c.header_ {
111875		reqHeaders[k] = v
111876	}
111877	reqHeaders.Set("User-Agent", c.s.userAgent())
111878	var body io.Reader = nil
111879	body, err := googleapi.WithoutDataWrapper.JSONReader(c.publicdelegatedprefix)
111880	if err != nil {
111881		return nil, err
111882	}
111883	reqHeaders.Set("Content-Type", "application/json")
111884	c.urlParams_.Set("alt", alt)
111885	c.urlParams_.Set("prettyPrint", "false")
111886	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}")
111887	urls += "?" + c.urlParams_.Encode()
111888	req, err := http.NewRequest("PATCH", urls, body)
111889	if err != nil {
111890		return nil, err
111891	}
111892	req.Header = reqHeaders
111893	googleapi.Expand(req.URL, map[string]string{
111894		"project":               c.project,
111895		"region":                c.region,
111896		"publicDelegatedPrefix": c.publicDelegatedPrefix,
111897	})
111898	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111899}
111900
111901// Do executes the "compute.publicDelegatedPrefixes.patch" call.
111902// Exactly one of *Operation or error will be non-nil. Any non-2xx
111903// status code is an error. Response headers are in either
111904// *Operation.ServerResponse.Header or (if a response was returned at
111905// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
111906// to check whether the returned error was because
111907// http.StatusNotModified was returned.
111908func (c *PublicDelegatedPrefixesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
111909	gensupport.SetOptions(c.urlParams_, opts...)
111910	res, err := c.doRequest("json")
111911	if res != nil && res.StatusCode == http.StatusNotModified {
111912		if res.Body != nil {
111913			res.Body.Close()
111914		}
111915		return nil, &googleapi.Error{
111916			Code:   res.StatusCode,
111917			Header: res.Header,
111918		}
111919	}
111920	if err != nil {
111921		return nil, err
111922	}
111923	defer googleapi.CloseBody(res)
111924	if err := googleapi.CheckResponse(res); err != nil {
111925		return nil, err
111926	}
111927	ret := &Operation{
111928		ServerResponse: googleapi.ServerResponse{
111929			Header:         res.Header,
111930			HTTPStatusCode: res.StatusCode,
111931		},
111932	}
111933	target := &ret
111934	if err := gensupport.DecodeResponse(target, res); err != nil {
111935		return nil, err
111936	}
111937	return ret, nil
111938	// {
111939	//   "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.",
111940	//   "httpMethod": "PATCH",
111941	//   "id": "compute.publicDelegatedPrefixes.patch",
111942	//   "parameterOrder": [
111943	//     "project",
111944	//     "region",
111945	//     "publicDelegatedPrefix"
111946	//   ],
111947	//   "parameters": {
111948	//     "project": {
111949	//       "description": "Project ID for this request.",
111950	//       "location": "path",
111951	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111952	//       "required": true,
111953	//       "type": "string"
111954	//     },
111955	//     "publicDelegatedPrefix": {
111956	//       "description": "Name of the PublicDelegatedPrefix resource to patch.",
111957	//       "location": "path",
111958	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
111959	//       "required": true,
111960	//       "type": "string"
111961	//     },
111962	//     "region": {
111963	//       "description": "Name of the region for this request.",
111964	//       "location": "path",
111965	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
111966	//       "required": true,
111967	//       "type": "string"
111968	//     },
111969	//     "requestId": {
111970	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
111971	//       "location": "query",
111972	//       "type": "string"
111973	//     }
111974	//   },
111975	//   "path": "projects/{project}/regions/{region}/publicDelegatedPrefixes/{publicDelegatedPrefix}",
111976	//   "request": {
111977	//     "$ref": "PublicDelegatedPrefix"
111978	//   },
111979	//   "response": {
111980	//     "$ref": "Operation"
111981	//   },
111982	//   "scopes": [
111983	//     "https://www.googleapis.com/auth/cloud-platform",
111984	//     "https://www.googleapis.com/auth/compute"
111985	//   ]
111986	// }
111987
111988}
111989
111990// method id "compute.regionAutoscalers.delete":
111991
111992type RegionAutoscalersDeleteCall struct {
111993	s          *Service
111994	project    string
111995	region     string
111996	autoscaler string
111997	urlParams_ gensupport.URLParams
111998	ctx_       context.Context
111999	header_    http.Header
112000}
112001
112002// Delete: Deletes the specified autoscaler.
112003//
112004// - autoscaler: Name of the autoscaler to delete.
112005// - project: Project ID for this request.
112006// - region: Name of the region scoping this request.
112007func (r *RegionAutoscalersService) Delete(project string, region string, autoscaler string) *RegionAutoscalersDeleteCall {
112008	c := &RegionAutoscalersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112009	c.project = project
112010	c.region = region
112011	c.autoscaler = autoscaler
112012	return c
112013}
112014
112015// RequestId sets the optional parameter "requestId": An optional
112016// request ID to identify requests. Specify a unique request ID so that
112017// if you must retry your request, the server will know to ignore the
112018// request if it has already been completed.
112019//
112020// For example, consider a situation where you make an initial request
112021// and the request times out. If you make the request again with the
112022// same request ID, the server can check if original operation with the
112023// same request ID was received, and if so, will ignore the second
112024// request. This prevents clients from accidentally creating duplicate
112025// commitments.
112026//
112027// The request ID must be a valid UUID with the exception that zero UUID
112028// is not supported (00000000-0000-0000-0000-000000000000).
112029func (c *RegionAutoscalersDeleteCall) RequestId(requestId string) *RegionAutoscalersDeleteCall {
112030	c.urlParams_.Set("requestId", requestId)
112031	return c
112032}
112033
112034// Fields allows partial responses to be retrieved. See
112035// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112036// for more information.
112037func (c *RegionAutoscalersDeleteCall) Fields(s ...googleapi.Field) *RegionAutoscalersDeleteCall {
112038	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112039	return c
112040}
112041
112042// Context sets the context to be used in this call's Do method. Any
112043// pending HTTP request will be aborted if the provided context is
112044// canceled.
112045func (c *RegionAutoscalersDeleteCall) Context(ctx context.Context) *RegionAutoscalersDeleteCall {
112046	c.ctx_ = ctx
112047	return c
112048}
112049
112050// Header returns an http.Header that can be modified by the caller to
112051// add HTTP headers to the request.
112052func (c *RegionAutoscalersDeleteCall) Header() http.Header {
112053	if c.header_ == nil {
112054		c.header_ = make(http.Header)
112055	}
112056	return c.header_
112057}
112058
112059func (c *RegionAutoscalersDeleteCall) doRequest(alt string) (*http.Response, error) {
112060	reqHeaders := make(http.Header)
112061	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
112062	for k, v := range c.header_ {
112063		reqHeaders[k] = v
112064	}
112065	reqHeaders.Set("User-Agent", c.s.userAgent())
112066	var body io.Reader = nil
112067	c.urlParams_.Set("alt", alt)
112068	c.urlParams_.Set("prettyPrint", "false")
112069	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers/{autoscaler}")
112070	urls += "?" + c.urlParams_.Encode()
112071	req, err := http.NewRequest("DELETE", urls, body)
112072	if err != nil {
112073		return nil, err
112074	}
112075	req.Header = reqHeaders
112076	googleapi.Expand(req.URL, map[string]string{
112077		"project":    c.project,
112078		"region":     c.region,
112079		"autoscaler": c.autoscaler,
112080	})
112081	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112082}
112083
112084// Do executes the "compute.regionAutoscalers.delete" call.
112085// Exactly one of *Operation or error will be non-nil. Any non-2xx
112086// status code is an error. Response headers are in either
112087// *Operation.ServerResponse.Header or (if a response was returned at
112088// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
112089// to check whether the returned error was because
112090// http.StatusNotModified was returned.
112091func (c *RegionAutoscalersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
112092	gensupport.SetOptions(c.urlParams_, opts...)
112093	res, err := c.doRequest("json")
112094	if res != nil && res.StatusCode == http.StatusNotModified {
112095		if res.Body != nil {
112096			res.Body.Close()
112097		}
112098		return nil, &googleapi.Error{
112099			Code:   res.StatusCode,
112100			Header: res.Header,
112101		}
112102	}
112103	if err != nil {
112104		return nil, err
112105	}
112106	defer googleapi.CloseBody(res)
112107	if err := googleapi.CheckResponse(res); err != nil {
112108		return nil, err
112109	}
112110	ret := &Operation{
112111		ServerResponse: googleapi.ServerResponse{
112112			Header:         res.Header,
112113			HTTPStatusCode: res.StatusCode,
112114		},
112115	}
112116	target := &ret
112117	if err := gensupport.DecodeResponse(target, res); err != nil {
112118		return nil, err
112119	}
112120	return ret, nil
112121	// {
112122	//   "description": "Deletes the specified autoscaler.",
112123	//   "httpMethod": "DELETE",
112124	//   "id": "compute.regionAutoscalers.delete",
112125	//   "parameterOrder": [
112126	//     "project",
112127	//     "region",
112128	//     "autoscaler"
112129	//   ],
112130	//   "parameters": {
112131	//     "autoscaler": {
112132	//       "description": "Name of the autoscaler to delete.",
112133	//       "location": "path",
112134	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
112135	//       "required": true,
112136	//       "type": "string"
112137	//     },
112138	//     "project": {
112139	//       "description": "Project ID for this request.",
112140	//       "location": "path",
112141	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112142	//       "required": true,
112143	//       "type": "string"
112144	//     },
112145	//     "region": {
112146	//       "description": "Name of the region scoping this request.",
112147	//       "location": "path",
112148	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
112149	//       "required": true,
112150	//       "type": "string"
112151	//     },
112152	//     "requestId": {
112153	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
112154	//       "location": "query",
112155	//       "type": "string"
112156	//     }
112157	//   },
112158	//   "path": "projects/{project}/regions/{region}/autoscalers/{autoscaler}",
112159	//   "response": {
112160	//     "$ref": "Operation"
112161	//   },
112162	//   "scopes": [
112163	//     "https://www.googleapis.com/auth/cloud-platform",
112164	//     "https://www.googleapis.com/auth/compute"
112165	//   ]
112166	// }
112167
112168}
112169
112170// method id "compute.regionAutoscalers.get":
112171
112172type RegionAutoscalersGetCall struct {
112173	s            *Service
112174	project      string
112175	region       string
112176	autoscaler   string
112177	urlParams_   gensupport.URLParams
112178	ifNoneMatch_ string
112179	ctx_         context.Context
112180	header_      http.Header
112181}
112182
112183// Get: Returns the specified autoscaler.
112184//
112185// - autoscaler: Name of the autoscaler to return.
112186// - project: Project ID for this request.
112187// - region: Name of the region scoping this request.
112188func (r *RegionAutoscalersService) Get(project string, region string, autoscaler string) *RegionAutoscalersGetCall {
112189	c := &RegionAutoscalersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112190	c.project = project
112191	c.region = region
112192	c.autoscaler = autoscaler
112193	return c
112194}
112195
112196// Fields allows partial responses to be retrieved. See
112197// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112198// for more information.
112199func (c *RegionAutoscalersGetCall) Fields(s ...googleapi.Field) *RegionAutoscalersGetCall {
112200	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112201	return c
112202}
112203
112204// IfNoneMatch sets the optional parameter which makes the operation
112205// fail if the object's ETag matches the given value. This is useful for
112206// getting updates only after the object has changed since the last
112207// request. Use googleapi.IsNotModified to check whether the response
112208// error from Do is the result of In-None-Match.
112209func (c *RegionAutoscalersGetCall) IfNoneMatch(entityTag string) *RegionAutoscalersGetCall {
112210	c.ifNoneMatch_ = entityTag
112211	return c
112212}
112213
112214// Context sets the context to be used in this call's Do method. Any
112215// pending HTTP request will be aborted if the provided context is
112216// canceled.
112217func (c *RegionAutoscalersGetCall) Context(ctx context.Context) *RegionAutoscalersGetCall {
112218	c.ctx_ = ctx
112219	return c
112220}
112221
112222// Header returns an http.Header that can be modified by the caller to
112223// add HTTP headers to the request.
112224func (c *RegionAutoscalersGetCall) Header() http.Header {
112225	if c.header_ == nil {
112226		c.header_ = make(http.Header)
112227	}
112228	return c.header_
112229}
112230
112231func (c *RegionAutoscalersGetCall) doRequest(alt string) (*http.Response, error) {
112232	reqHeaders := make(http.Header)
112233	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
112234	for k, v := range c.header_ {
112235		reqHeaders[k] = v
112236	}
112237	reqHeaders.Set("User-Agent", c.s.userAgent())
112238	if c.ifNoneMatch_ != "" {
112239		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
112240	}
112241	var body io.Reader = nil
112242	c.urlParams_.Set("alt", alt)
112243	c.urlParams_.Set("prettyPrint", "false")
112244	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers/{autoscaler}")
112245	urls += "?" + c.urlParams_.Encode()
112246	req, err := http.NewRequest("GET", urls, body)
112247	if err != nil {
112248		return nil, err
112249	}
112250	req.Header = reqHeaders
112251	googleapi.Expand(req.URL, map[string]string{
112252		"project":    c.project,
112253		"region":     c.region,
112254		"autoscaler": c.autoscaler,
112255	})
112256	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112257}
112258
112259// Do executes the "compute.regionAutoscalers.get" call.
112260// Exactly one of *Autoscaler or error will be non-nil. Any non-2xx
112261// status code is an error. Response headers are in either
112262// *Autoscaler.ServerResponse.Header or (if a response was returned at
112263// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
112264// to check whether the returned error was because
112265// http.StatusNotModified was returned.
112266func (c *RegionAutoscalersGetCall) Do(opts ...googleapi.CallOption) (*Autoscaler, error) {
112267	gensupport.SetOptions(c.urlParams_, opts...)
112268	res, err := c.doRequest("json")
112269	if res != nil && res.StatusCode == http.StatusNotModified {
112270		if res.Body != nil {
112271			res.Body.Close()
112272		}
112273		return nil, &googleapi.Error{
112274			Code:   res.StatusCode,
112275			Header: res.Header,
112276		}
112277	}
112278	if err != nil {
112279		return nil, err
112280	}
112281	defer googleapi.CloseBody(res)
112282	if err := googleapi.CheckResponse(res); err != nil {
112283		return nil, err
112284	}
112285	ret := &Autoscaler{
112286		ServerResponse: googleapi.ServerResponse{
112287			Header:         res.Header,
112288			HTTPStatusCode: res.StatusCode,
112289		},
112290	}
112291	target := &ret
112292	if err := gensupport.DecodeResponse(target, res); err != nil {
112293		return nil, err
112294	}
112295	return ret, nil
112296	// {
112297	//   "description": "Returns the specified autoscaler.",
112298	//   "httpMethod": "GET",
112299	//   "id": "compute.regionAutoscalers.get",
112300	//   "parameterOrder": [
112301	//     "project",
112302	//     "region",
112303	//     "autoscaler"
112304	//   ],
112305	//   "parameters": {
112306	//     "autoscaler": {
112307	//       "description": "Name of the autoscaler to return.",
112308	//       "location": "path",
112309	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
112310	//       "required": true,
112311	//       "type": "string"
112312	//     },
112313	//     "project": {
112314	//       "description": "Project ID for this request.",
112315	//       "location": "path",
112316	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112317	//       "required": true,
112318	//       "type": "string"
112319	//     },
112320	//     "region": {
112321	//       "description": "Name of the region scoping this request.",
112322	//       "location": "path",
112323	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
112324	//       "required": true,
112325	//       "type": "string"
112326	//     }
112327	//   },
112328	//   "path": "projects/{project}/regions/{region}/autoscalers/{autoscaler}",
112329	//   "response": {
112330	//     "$ref": "Autoscaler"
112331	//   },
112332	//   "scopes": [
112333	//     "https://www.googleapis.com/auth/cloud-platform",
112334	//     "https://www.googleapis.com/auth/compute",
112335	//     "https://www.googleapis.com/auth/compute.readonly"
112336	//   ]
112337	// }
112338
112339}
112340
112341// method id "compute.regionAutoscalers.insert":
112342
112343type RegionAutoscalersInsertCall struct {
112344	s          *Service
112345	project    string
112346	region     string
112347	autoscaler *Autoscaler
112348	urlParams_ gensupport.URLParams
112349	ctx_       context.Context
112350	header_    http.Header
112351}
112352
112353// Insert: Creates an autoscaler in the specified project using the data
112354// included in the request.
112355//
112356// - project: Project ID for this request.
112357// - region: Name of the region scoping this request.
112358func (r *RegionAutoscalersService) Insert(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersInsertCall {
112359	c := &RegionAutoscalersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112360	c.project = project
112361	c.region = region
112362	c.autoscaler = autoscaler
112363	return c
112364}
112365
112366// RequestId sets the optional parameter "requestId": An optional
112367// request ID to identify requests. Specify a unique request ID so that
112368// if you must retry your request, the server will know to ignore the
112369// request if it has already been completed.
112370//
112371// For example, consider a situation where you make an initial request
112372// and the request times out. If you make the request again with the
112373// same request ID, the server can check if original operation with the
112374// same request ID was received, and if so, will ignore the second
112375// request. This prevents clients from accidentally creating duplicate
112376// commitments.
112377//
112378// The request ID must be a valid UUID with the exception that zero UUID
112379// is not supported (00000000-0000-0000-0000-000000000000).
112380func (c *RegionAutoscalersInsertCall) RequestId(requestId string) *RegionAutoscalersInsertCall {
112381	c.urlParams_.Set("requestId", requestId)
112382	return c
112383}
112384
112385// Fields allows partial responses to be retrieved. See
112386// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112387// for more information.
112388func (c *RegionAutoscalersInsertCall) Fields(s ...googleapi.Field) *RegionAutoscalersInsertCall {
112389	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112390	return c
112391}
112392
112393// Context sets the context to be used in this call's Do method. Any
112394// pending HTTP request will be aborted if the provided context is
112395// canceled.
112396func (c *RegionAutoscalersInsertCall) Context(ctx context.Context) *RegionAutoscalersInsertCall {
112397	c.ctx_ = ctx
112398	return c
112399}
112400
112401// Header returns an http.Header that can be modified by the caller to
112402// add HTTP headers to the request.
112403func (c *RegionAutoscalersInsertCall) Header() http.Header {
112404	if c.header_ == nil {
112405		c.header_ = make(http.Header)
112406	}
112407	return c.header_
112408}
112409
112410func (c *RegionAutoscalersInsertCall) doRequest(alt string) (*http.Response, error) {
112411	reqHeaders := make(http.Header)
112412	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
112413	for k, v := range c.header_ {
112414		reqHeaders[k] = v
112415	}
112416	reqHeaders.Set("User-Agent", c.s.userAgent())
112417	var body io.Reader = nil
112418	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
112419	if err != nil {
112420		return nil, err
112421	}
112422	reqHeaders.Set("Content-Type", "application/json")
112423	c.urlParams_.Set("alt", alt)
112424	c.urlParams_.Set("prettyPrint", "false")
112425	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers")
112426	urls += "?" + c.urlParams_.Encode()
112427	req, err := http.NewRequest("POST", urls, body)
112428	if err != nil {
112429		return nil, err
112430	}
112431	req.Header = reqHeaders
112432	googleapi.Expand(req.URL, map[string]string{
112433		"project": c.project,
112434		"region":  c.region,
112435	})
112436	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112437}
112438
112439// Do executes the "compute.regionAutoscalers.insert" call.
112440// Exactly one of *Operation or error will be non-nil. Any non-2xx
112441// status code is an error. Response headers are in either
112442// *Operation.ServerResponse.Header or (if a response was returned at
112443// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
112444// to check whether the returned error was because
112445// http.StatusNotModified was returned.
112446func (c *RegionAutoscalersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
112447	gensupport.SetOptions(c.urlParams_, opts...)
112448	res, err := c.doRequest("json")
112449	if res != nil && res.StatusCode == http.StatusNotModified {
112450		if res.Body != nil {
112451			res.Body.Close()
112452		}
112453		return nil, &googleapi.Error{
112454			Code:   res.StatusCode,
112455			Header: res.Header,
112456		}
112457	}
112458	if err != nil {
112459		return nil, err
112460	}
112461	defer googleapi.CloseBody(res)
112462	if err := googleapi.CheckResponse(res); err != nil {
112463		return nil, err
112464	}
112465	ret := &Operation{
112466		ServerResponse: googleapi.ServerResponse{
112467			Header:         res.Header,
112468			HTTPStatusCode: res.StatusCode,
112469		},
112470	}
112471	target := &ret
112472	if err := gensupport.DecodeResponse(target, res); err != nil {
112473		return nil, err
112474	}
112475	return ret, nil
112476	// {
112477	//   "description": "Creates an autoscaler in the specified project using the data included in the request.",
112478	//   "httpMethod": "POST",
112479	//   "id": "compute.regionAutoscalers.insert",
112480	//   "parameterOrder": [
112481	//     "project",
112482	//     "region"
112483	//   ],
112484	//   "parameters": {
112485	//     "project": {
112486	//       "description": "Project ID for this request.",
112487	//       "location": "path",
112488	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112489	//       "required": true,
112490	//       "type": "string"
112491	//     },
112492	//     "region": {
112493	//       "description": "Name of the region scoping this request.",
112494	//       "location": "path",
112495	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
112496	//       "required": true,
112497	//       "type": "string"
112498	//     },
112499	//     "requestId": {
112500	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
112501	//       "location": "query",
112502	//       "type": "string"
112503	//     }
112504	//   },
112505	//   "path": "projects/{project}/regions/{region}/autoscalers",
112506	//   "request": {
112507	//     "$ref": "Autoscaler"
112508	//   },
112509	//   "response": {
112510	//     "$ref": "Operation"
112511	//   },
112512	//   "scopes": [
112513	//     "https://www.googleapis.com/auth/cloud-platform",
112514	//     "https://www.googleapis.com/auth/compute"
112515	//   ]
112516	// }
112517
112518}
112519
112520// method id "compute.regionAutoscalers.list":
112521
112522type RegionAutoscalersListCall struct {
112523	s            *Service
112524	project      string
112525	region       string
112526	urlParams_   gensupport.URLParams
112527	ifNoneMatch_ string
112528	ctx_         context.Context
112529	header_      http.Header
112530}
112531
112532// List: Retrieves a list of autoscalers contained within the specified
112533// region.
112534//
112535// - project: Project ID for this request.
112536// - region: Name of the region scoping this request.
112537func (r *RegionAutoscalersService) List(project string, region string) *RegionAutoscalersListCall {
112538	c := &RegionAutoscalersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112539	c.project = project
112540	c.region = region
112541	return c
112542}
112543
112544// Filter sets the optional parameter "filter": A filter expression that
112545// filters resources listed in the response. The expression must specify
112546// the field name, a comparison operator, and the value that you want to
112547// use for filtering. The value must be a string, a number, or a
112548// boolean. The comparison operator must be either `=`, `!=`, `>`, or
112549// `<`.
112550//
112551// For example, if you are filtering Compute Engine instances, you can
112552// exclude instances named `example-instance` by specifying `name !=
112553// example-instance`.
112554//
112555// You can also filter nested fields. For example, you could specify
112556// `scheduling.automaticRestart = false` to include instances only if
112557// they are not scheduled for automatic restarts. You can use filtering
112558// on nested fields to filter based on resource labels.
112559//
112560// To filter on multiple expressions, provide each separate expression
112561// within parentheses. For example: ``` (scheduling.automaticRestart =
112562// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
112563// is an `AND` expression. However, you can include `AND` and `OR`
112564// expressions explicitly. For example: ``` (cpuPlatform = "Intel
112565// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
112566// (scheduling.automaticRestart = true) ```
112567func (c *RegionAutoscalersListCall) Filter(filter string) *RegionAutoscalersListCall {
112568	c.urlParams_.Set("filter", filter)
112569	return c
112570}
112571
112572// MaxResults sets the optional parameter "maxResults": The maximum
112573// number of results per page that should be returned. If the number of
112574// available results is larger than `maxResults`, Compute Engine returns
112575// a `nextPageToken` that can be used to get the next page of results in
112576// subsequent list requests. Acceptable values are `0` to `500`,
112577// inclusive. (Default: `500`)
112578func (c *RegionAutoscalersListCall) MaxResults(maxResults int64) *RegionAutoscalersListCall {
112579	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
112580	return c
112581}
112582
112583// OrderBy sets the optional parameter "orderBy": Sorts list results by
112584// a certain order. By default, results are returned in alphanumerical
112585// order based on the resource name.
112586//
112587// You can also sort results in descending order based on the creation
112588// timestamp using `orderBy="creationTimestamp desc". This sorts
112589// results based on the `creationTimestamp` field in reverse
112590// chronological order (newest result first). Use this to sort resources
112591// like operations so that the newest operation is returned
112592// first.
112593//
112594// Currently, only sorting by `name` or `creationTimestamp desc` is
112595// supported.
112596func (c *RegionAutoscalersListCall) OrderBy(orderBy string) *RegionAutoscalersListCall {
112597	c.urlParams_.Set("orderBy", orderBy)
112598	return c
112599}
112600
112601// PageToken sets the optional parameter "pageToken": Specifies a page
112602// token to use. Set `pageToken` to the `nextPageToken` returned by a
112603// previous list request to get the next page of results.
112604func (c *RegionAutoscalersListCall) PageToken(pageToken string) *RegionAutoscalersListCall {
112605	c.urlParams_.Set("pageToken", pageToken)
112606	return c
112607}
112608
112609// ReturnPartialSuccess sets the optional parameter
112610// "returnPartialSuccess": Opt-in for partial success behavior which
112611// provides partial results in case of failure. The default value is
112612// false.
112613func (c *RegionAutoscalersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionAutoscalersListCall {
112614	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
112615	return c
112616}
112617
112618// Fields allows partial responses to be retrieved. See
112619// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112620// for more information.
112621func (c *RegionAutoscalersListCall) Fields(s ...googleapi.Field) *RegionAutoscalersListCall {
112622	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112623	return c
112624}
112625
112626// IfNoneMatch sets the optional parameter which makes the operation
112627// fail if the object's ETag matches the given value. This is useful for
112628// getting updates only after the object has changed since the last
112629// request. Use googleapi.IsNotModified to check whether the response
112630// error from Do is the result of In-None-Match.
112631func (c *RegionAutoscalersListCall) IfNoneMatch(entityTag string) *RegionAutoscalersListCall {
112632	c.ifNoneMatch_ = entityTag
112633	return c
112634}
112635
112636// Context sets the context to be used in this call's Do method. Any
112637// pending HTTP request will be aborted if the provided context is
112638// canceled.
112639func (c *RegionAutoscalersListCall) Context(ctx context.Context) *RegionAutoscalersListCall {
112640	c.ctx_ = ctx
112641	return c
112642}
112643
112644// Header returns an http.Header that can be modified by the caller to
112645// add HTTP headers to the request.
112646func (c *RegionAutoscalersListCall) Header() http.Header {
112647	if c.header_ == nil {
112648		c.header_ = make(http.Header)
112649	}
112650	return c.header_
112651}
112652
112653func (c *RegionAutoscalersListCall) doRequest(alt string) (*http.Response, error) {
112654	reqHeaders := make(http.Header)
112655	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
112656	for k, v := range c.header_ {
112657		reqHeaders[k] = v
112658	}
112659	reqHeaders.Set("User-Agent", c.s.userAgent())
112660	if c.ifNoneMatch_ != "" {
112661		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
112662	}
112663	var body io.Reader = nil
112664	c.urlParams_.Set("alt", alt)
112665	c.urlParams_.Set("prettyPrint", "false")
112666	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers")
112667	urls += "?" + c.urlParams_.Encode()
112668	req, err := http.NewRequest("GET", urls, body)
112669	if err != nil {
112670		return nil, err
112671	}
112672	req.Header = reqHeaders
112673	googleapi.Expand(req.URL, map[string]string{
112674		"project": c.project,
112675		"region":  c.region,
112676	})
112677	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112678}
112679
112680// Do executes the "compute.regionAutoscalers.list" call.
112681// Exactly one of *RegionAutoscalerList or error will be non-nil. Any
112682// non-2xx status code is an error. Response headers are in either
112683// *RegionAutoscalerList.ServerResponse.Header or (if a response was
112684// returned at all) in error.(*googleapi.Error).Header. Use
112685// googleapi.IsNotModified to check whether the returned error was
112686// because http.StatusNotModified was returned.
112687func (c *RegionAutoscalersListCall) Do(opts ...googleapi.CallOption) (*RegionAutoscalerList, error) {
112688	gensupport.SetOptions(c.urlParams_, opts...)
112689	res, err := c.doRequest("json")
112690	if res != nil && res.StatusCode == http.StatusNotModified {
112691		if res.Body != nil {
112692			res.Body.Close()
112693		}
112694		return nil, &googleapi.Error{
112695			Code:   res.StatusCode,
112696			Header: res.Header,
112697		}
112698	}
112699	if err != nil {
112700		return nil, err
112701	}
112702	defer googleapi.CloseBody(res)
112703	if err := googleapi.CheckResponse(res); err != nil {
112704		return nil, err
112705	}
112706	ret := &RegionAutoscalerList{
112707		ServerResponse: googleapi.ServerResponse{
112708			Header:         res.Header,
112709			HTTPStatusCode: res.StatusCode,
112710		},
112711	}
112712	target := &ret
112713	if err := gensupport.DecodeResponse(target, res); err != nil {
112714		return nil, err
112715	}
112716	return ret, nil
112717	// {
112718	//   "description": "Retrieves a list of autoscalers contained within the specified region.",
112719	//   "httpMethod": "GET",
112720	//   "id": "compute.regionAutoscalers.list",
112721	//   "parameterOrder": [
112722	//     "project",
112723	//     "region"
112724	//   ],
112725	//   "parameters": {
112726	//     "filter": {
112727	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
112728	//       "location": "query",
112729	//       "type": "string"
112730	//     },
112731	//     "maxResults": {
112732	//       "default": "500",
112733	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
112734	//       "format": "uint32",
112735	//       "location": "query",
112736	//       "minimum": "0",
112737	//       "type": "integer"
112738	//     },
112739	//     "orderBy": {
112740	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
112741	//       "location": "query",
112742	//       "type": "string"
112743	//     },
112744	//     "pageToken": {
112745	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
112746	//       "location": "query",
112747	//       "type": "string"
112748	//     },
112749	//     "project": {
112750	//       "description": "Project ID for this request.",
112751	//       "location": "path",
112752	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112753	//       "required": true,
112754	//       "type": "string"
112755	//     },
112756	//     "region": {
112757	//       "description": "Name of the region scoping this request.",
112758	//       "location": "path",
112759	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
112760	//       "required": true,
112761	//       "type": "string"
112762	//     },
112763	//     "returnPartialSuccess": {
112764	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
112765	//       "location": "query",
112766	//       "type": "boolean"
112767	//     }
112768	//   },
112769	//   "path": "projects/{project}/regions/{region}/autoscalers",
112770	//   "response": {
112771	//     "$ref": "RegionAutoscalerList"
112772	//   },
112773	//   "scopes": [
112774	//     "https://www.googleapis.com/auth/cloud-platform",
112775	//     "https://www.googleapis.com/auth/compute",
112776	//     "https://www.googleapis.com/auth/compute.readonly"
112777	//   ]
112778	// }
112779
112780}
112781
112782// Pages invokes f for each page of results.
112783// A non-nil error returned from f will halt the iteration.
112784// The provided context supersedes any context provided to the Context method.
112785func (c *RegionAutoscalersListCall) Pages(ctx context.Context, f func(*RegionAutoscalerList) error) error {
112786	c.ctx_ = ctx
112787	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
112788	for {
112789		x, err := c.Do()
112790		if err != nil {
112791			return err
112792		}
112793		if err := f(x); err != nil {
112794			return err
112795		}
112796		if x.NextPageToken == "" {
112797			return nil
112798		}
112799		c.PageToken(x.NextPageToken)
112800	}
112801}
112802
112803// method id "compute.regionAutoscalers.patch":
112804
112805type RegionAutoscalersPatchCall struct {
112806	s          *Service
112807	project    string
112808	region     string
112809	autoscaler *Autoscaler
112810	urlParams_ gensupport.URLParams
112811	ctx_       context.Context
112812	header_    http.Header
112813}
112814
112815// Patch: Updates an autoscaler in the specified project using the data
112816// included in the request. This method supports PATCH semantics and
112817// uses the JSON merge patch format and processing rules.
112818//
112819// - project: Project ID for this request.
112820// - region: Name of the region scoping this request.
112821func (r *RegionAutoscalersService) Patch(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersPatchCall {
112822	c := &RegionAutoscalersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112823	c.project = project
112824	c.region = region
112825	c.autoscaler = autoscaler
112826	return c
112827}
112828
112829// Autoscaler sets the optional parameter "autoscaler": Name of the
112830// autoscaler to patch.
112831func (c *RegionAutoscalersPatchCall) Autoscaler(autoscaler string) *RegionAutoscalersPatchCall {
112832	c.urlParams_.Set("autoscaler", autoscaler)
112833	return c
112834}
112835
112836// RequestId sets the optional parameter "requestId": An optional
112837// request ID to identify requests. Specify a unique request ID so that
112838// if you must retry your request, the server will know to ignore the
112839// request if it has already been completed.
112840//
112841// For example, consider a situation where you make an initial request
112842// and the request times out. If you make the request again with the
112843// same request ID, the server can check if original operation with the
112844// same request ID was received, and if so, will ignore the second
112845// request. This prevents clients from accidentally creating duplicate
112846// commitments.
112847//
112848// The request ID must be a valid UUID with the exception that zero UUID
112849// is not supported (00000000-0000-0000-0000-000000000000).
112850func (c *RegionAutoscalersPatchCall) RequestId(requestId string) *RegionAutoscalersPatchCall {
112851	c.urlParams_.Set("requestId", requestId)
112852	return c
112853}
112854
112855// Fields allows partial responses to be retrieved. See
112856// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112857// for more information.
112858func (c *RegionAutoscalersPatchCall) Fields(s ...googleapi.Field) *RegionAutoscalersPatchCall {
112859	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112860	return c
112861}
112862
112863// Context sets the context to be used in this call's Do method. Any
112864// pending HTTP request will be aborted if the provided context is
112865// canceled.
112866func (c *RegionAutoscalersPatchCall) Context(ctx context.Context) *RegionAutoscalersPatchCall {
112867	c.ctx_ = ctx
112868	return c
112869}
112870
112871// Header returns an http.Header that can be modified by the caller to
112872// add HTTP headers to the request.
112873func (c *RegionAutoscalersPatchCall) Header() http.Header {
112874	if c.header_ == nil {
112875		c.header_ = make(http.Header)
112876	}
112877	return c.header_
112878}
112879
112880func (c *RegionAutoscalersPatchCall) doRequest(alt string) (*http.Response, error) {
112881	reqHeaders := make(http.Header)
112882	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
112883	for k, v := range c.header_ {
112884		reqHeaders[k] = v
112885	}
112886	reqHeaders.Set("User-Agent", c.s.userAgent())
112887	var body io.Reader = nil
112888	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
112889	if err != nil {
112890		return nil, err
112891	}
112892	reqHeaders.Set("Content-Type", "application/json")
112893	c.urlParams_.Set("alt", alt)
112894	c.urlParams_.Set("prettyPrint", "false")
112895	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers")
112896	urls += "?" + c.urlParams_.Encode()
112897	req, err := http.NewRequest("PATCH", urls, body)
112898	if err != nil {
112899		return nil, err
112900	}
112901	req.Header = reqHeaders
112902	googleapi.Expand(req.URL, map[string]string{
112903		"project": c.project,
112904		"region":  c.region,
112905	})
112906	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112907}
112908
112909// Do executes the "compute.regionAutoscalers.patch" call.
112910// Exactly one of *Operation or error will be non-nil. Any non-2xx
112911// status code is an error. Response headers are in either
112912// *Operation.ServerResponse.Header or (if a response was returned at
112913// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
112914// to check whether the returned error was because
112915// http.StatusNotModified was returned.
112916func (c *RegionAutoscalersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
112917	gensupport.SetOptions(c.urlParams_, opts...)
112918	res, err := c.doRequest("json")
112919	if res != nil && res.StatusCode == http.StatusNotModified {
112920		if res.Body != nil {
112921			res.Body.Close()
112922		}
112923		return nil, &googleapi.Error{
112924			Code:   res.StatusCode,
112925			Header: res.Header,
112926		}
112927	}
112928	if err != nil {
112929		return nil, err
112930	}
112931	defer googleapi.CloseBody(res)
112932	if err := googleapi.CheckResponse(res); err != nil {
112933		return nil, err
112934	}
112935	ret := &Operation{
112936		ServerResponse: googleapi.ServerResponse{
112937			Header:         res.Header,
112938			HTTPStatusCode: res.StatusCode,
112939		},
112940	}
112941	target := &ret
112942	if err := gensupport.DecodeResponse(target, res); err != nil {
112943		return nil, err
112944	}
112945	return ret, nil
112946	// {
112947	//   "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.",
112948	//   "httpMethod": "PATCH",
112949	//   "id": "compute.regionAutoscalers.patch",
112950	//   "parameterOrder": [
112951	//     "project",
112952	//     "region"
112953	//   ],
112954	//   "parameters": {
112955	//     "autoscaler": {
112956	//       "description": "Name of the autoscaler to patch.",
112957	//       "location": "query",
112958	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
112959	//       "type": "string"
112960	//     },
112961	//     "project": {
112962	//       "description": "Project ID for this request.",
112963	//       "location": "path",
112964	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112965	//       "required": true,
112966	//       "type": "string"
112967	//     },
112968	//     "region": {
112969	//       "description": "Name of the region scoping this request.",
112970	//       "location": "path",
112971	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
112972	//       "required": true,
112973	//       "type": "string"
112974	//     },
112975	//     "requestId": {
112976	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
112977	//       "location": "query",
112978	//       "type": "string"
112979	//     }
112980	//   },
112981	//   "path": "projects/{project}/regions/{region}/autoscalers",
112982	//   "request": {
112983	//     "$ref": "Autoscaler"
112984	//   },
112985	//   "response": {
112986	//     "$ref": "Operation"
112987	//   },
112988	//   "scopes": [
112989	//     "https://www.googleapis.com/auth/cloud-platform",
112990	//     "https://www.googleapis.com/auth/compute"
112991	//   ]
112992	// }
112993
112994}
112995
112996// method id "compute.regionAutoscalers.update":
112997
112998type RegionAutoscalersUpdateCall struct {
112999	s          *Service
113000	project    string
113001	region     string
113002	autoscaler *Autoscaler
113003	urlParams_ gensupport.URLParams
113004	ctx_       context.Context
113005	header_    http.Header
113006}
113007
113008// Update: Updates an autoscaler in the specified project using the data
113009// included in the request.
113010//
113011// - project: Project ID for this request.
113012// - region: Name of the region scoping this request.
113013func (r *RegionAutoscalersService) Update(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersUpdateCall {
113014	c := &RegionAutoscalersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113015	c.project = project
113016	c.region = region
113017	c.autoscaler = autoscaler
113018	return c
113019}
113020
113021// Autoscaler sets the optional parameter "autoscaler": Name of the
113022// autoscaler to update.
113023func (c *RegionAutoscalersUpdateCall) Autoscaler(autoscaler string) *RegionAutoscalersUpdateCall {
113024	c.urlParams_.Set("autoscaler", autoscaler)
113025	return c
113026}
113027
113028// RequestId sets the optional parameter "requestId": An optional
113029// request ID to identify requests. Specify a unique request ID so that
113030// if you must retry your request, the server will know to ignore the
113031// request if it has already been completed.
113032//
113033// For example, consider a situation where you make an initial request
113034// and the request times out. If you make the request again with the
113035// same request ID, the server can check if original operation with the
113036// same request ID was received, and if so, will ignore the second
113037// request. This prevents clients from accidentally creating duplicate
113038// commitments.
113039//
113040// The request ID must be a valid UUID with the exception that zero UUID
113041// is not supported (00000000-0000-0000-0000-000000000000).
113042func (c *RegionAutoscalersUpdateCall) RequestId(requestId string) *RegionAutoscalersUpdateCall {
113043	c.urlParams_.Set("requestId", requestId)
113044	return c
113045}
113046
113047// Fields allows partial responses to be retrieved. See
113048// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113049// for more information.
113050func (c *RegionAutoscalersUpdateCall) Fields(s ...googleapi.Field) *RegionAutoscalersUpdateCall {
113051	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113052	return c
113053}
113054
113055// Context sets the context to be used in this call's Do method. Any
113056// pending HTTP request will be aborted if the provided context is
113057// canceled.
113058func (c *RegionAutoscalersUpdateCall) Context(ctx context.Context) *RegionAutoscalersUpdateCall {
113059	c.ctx_ = ctx
113060	return c
113061}
113062
113063// Header returns an http.Header that can be modified by the caller to
113064// add HTTP headers to the request.
113065func (c *RegionAutoscalersUpdateCall) Header() http.Header {
113066	if c.header_ == nil {
113067		c.header_ = make(http.Header)
113068	}
113069	return c.header_
113070}
113071
113072func (c *RegionAutoscalersUpdateCall) doRequest(alt string) (*http.Response, error) {
113073	reqHeaders := make(http.Header)
113074	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
113075	for k, v := range c.header_ {
113076		reqHeaders[k] = v
113077	}
113078	reqHeaders.Set("User-Agent", c.s.userAgent())
113079	var body io.Reader = nil
113080	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
113081	if err != nil {
113082		return nil, err
113083	}
113084	reqHeaders.Set("Content-Type", "application/json")
113085	c.urlParams_.Set("alt", alt)
113086	c.urlParams_.Set("prettyPrint", "false")
113087	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/autoscalers")
113088	urls += "?" + c.urlParams_.Encode()
113089	req, err := http.NewRequest("PUT", urls, body)
113090	if err != nil {
113091		return nil, err
113092	}
113093	req.Header = reqHeaders
113094	googleapi.Expand(req.URL, map[string]string{
113095		"project": c.project,
113096		"region":  c.region,
113097	})
113098	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113099}
113100
113101// Do executes the "compute.regionAutoscalers.update" call.
113102// Exactly one of *Operation or error will be non-nil. Any non-2xx
113103// status code is an error. Response headers are in either
113104// *Operation.ServerResponse.Header or (if a response was returned at
113105// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113106// to check whether the returned error was because
113107// http.StatusNotModified was returned.
113108func (c *RegionAutoscalersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
113109	gensupport.SetOptions(c.urlParams_, opts...)
113110	res, err := c.doRequest("json")
113111	if res != nil && res.StatusCode == http.StatusNotModified {
113112		if res.Body != nil {
113113			res.Body.Close()
113114		}
113115		return nil, &googleapi.Error{
113116			Code:   res.StatusCode,
113117			Header: res.Header,
113118		}
113119	}
113120	if err != nil {
113121		return nil, err
113122	}
113123	defer googleapi.CloseBody(res)
113124	if err := googleapi.CheckResponse(res); err != nil {
113125		return nil, err
113126	}
113127	ret := &Operation{
113128		ServerResponse: googleapi.ServerResponse{
113129			Header:         res.Header,
113130			HTTPStatusCode: res.StatusCode,
113131		},
113132	}
113133	target := &ret
113134	if err := gensupport.DecodeResponse(target, res); err != nil {
113135		return nil, err
113136	}
113137	return ret, nil
113138	// {
113139	//   "description": "Updates an autoscaler in the specified project using the data included in the request.",
113140	//   "httpMethod": "PUT",
113141	//   "id": "compute.regionAutoscalers.update",
113142	//   "parameterOrder": [
113143	//     "project",
113144	//     "region"
113145	//   ],
113146	//   "parameters": {
113147	//     "autoscaler": {
113148	//       "description": "Name of the autoscaler to update.",
113149	//       "location": "query",
113150	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
113151	//       "type": "string"
113152	//     },
113153	//     "project": {
113154	//       "description": "Project ID for this request.",
113155	//       "location": "path",
113156	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113157	//       "required": true,
113158	//       "type": "string"
113159	//     },
113160	//     "region": {
113161	//       "description": "Name of the region scoping this request.",
113162	//       "location": "path",
113163	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
113164	//       "required": true,
113165	//       "type": "string"
113166	//     },
113167	//     "requestId": {
113168	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
113169	//       "location": "query",
113170	//       "type": "string"
113171	//     }
113172	//   },
113173	//   "path": "projects/{project}/regions/{region}/autoscalers",
113174	//   "request": {
113175	//     "$ref": "Autoscaler"
113176	//   },
113177	//   "response": {
113178	//     "$ref": "Operation"
113179	//   },
113180	//   "scopes": [
113181	//     "https://www.googleapis.com/auth/cloud-platform",
113182	//     "https://www.googleapis.com/auth/compute"
113183	//   ]
113184	// }
113185
113186}
113187
113188// method id "compute.regionBackendServices.delete":
113189
113190type RegionBackendServicesDeleteCall struct {
113191	s              *Service
113192	project        string
113193	region         string
113194	backendService string
113195	urlParams_     gensupport.URLParams
113196	ctx_           context.Context
113197	header_        http.Header
113198}
113199
113200// Delete: Deletes the specified regional BackendService resource.
113201//
113202// - backendService: Name of the BackendService resource to delete.
113203// - project: Project ID for this request.
113204// - region: Name of the region scoping this request.
113205func (r *RegionBackendServicesService) Delete(project string, region string, backendService string) *RegionBackendServicesDeleteCall {
113206	c := &RegionBackendServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113207	c.project = project
113208	c.region = region
113209	c.backendService = backendService
113210	return c
113211}
113212
113213// RequestId sets the optional parameter "requestId": An optional
113214// request ID to identify requests. Specify a unique request ID so that
113215// if you must retry your request, the server will know to ignore the
113216// request if it has already been completed.
113217//
113218// For example, consider a situation where you make an initial request
113219// and the request times out. If you make the request again with the
113220// same request ID, the server can check if original operation with the
113221// same request ID was received, and if so, will ignore the second
113222// request. This prevents clients from accidentally creating duplicate
113223// commitments.
113224//
113225// The request ID must be a valid UUID with the exception that zero UUID
113226// is not supported (00000000-0000-0000-0000-000000000000).
113227func (c *RegionBackendServicesDeleteCall) RequestId(requestId string) *RegionBackendServicesDeleteCall {
113228	c.urlParams_.Set("requestId", requestId)
113229	return c
113230}
113231
113232// Fields allows partial responses to be retrieved. See
113233// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113234// for more information.
113235func (c *RegionBackendServicesDeleteCall) Fields(s ...googleapi.Field) *RegionBackendServicesDeleteCall {
113236	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113237	return c
113238}
113239
113240// Context sets the context to be used in this call's Do method. Any
113241// pending HTTP request will be aborted if the provided context is
113242// canceled.
113243func (c *RegionBackendServicesDeleteCall) Context(ctx context.Context) *RegionBackendServicesDeleteCall {
113244	c.ctx_ = ctx
113245	return c
113246}
113247
113248// Header returns an http.Header that can be modified by the caller to
113249// add HTTP headers to the request.
113250func (c *RegionBackendServicesDeleteCall) Header() http.Header {
113251	if c.header_ == nil {
113252		c.header_ = make(http.Header)
113253	}
113254	return c.header_
113255}
113256
113257func (c *RegionBackendServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
113258	reqHeaders := make(http.Header)
113259	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
113260	for k, v := range c.header_ {
113261		reqHeaders[k] = v
113262	}
113263	reqHeaders.Set("User-Agent", c.s.userAgent())
113264	var body io.Reader = nil
113265	c.urlParams_.Set("alt", alt)
113266	c.urlParams_.Set("prettyPrint", "false")
113267	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{backendService}")
113268	urls += "?" + c.urlParams_.Encode()
113269	req, err := http.NewRequest("DELETE", urls, body)
113270	if err != nil {
113271		return nil, err
113272	}
113273	req.Header = reqHeaders
113274	googleapi.Expand(req.URL, map[string]string{
113275		"project":        c.project,
113276		"region":         c.region,
113277		"backendService": c.backendService,
113278	})
113279	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113280}
113281
113282// Do executes the "compute.regionBackendServices.delete" call.
113283// Exactly one of *Operation or error will be non-nil. Any non-2xx
113284// status code is an error. Response headers are in either
113285// *Operation.ServerResponse.Header or (if a response was returned at
113286// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113287// to check whether the returned error was because
113288// http.StatusNotModified was returned.
113289func (c *RegionBackendServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
113290	gensupport.SetOptions(c.urlParams_, opts...)
113291	res, err := c.doRequest("json")
113292	if res != nil && res.StatusCode == http.StatusNotModified {
113293		if res.Body != nil {
113294			res.Body.Close()
113295		}
113296		return nil, &googleapi.Error{
113297			Code:   res.StatusCode,
113298			Header: res.Header,
113299		}
113300	}
113301	if err != nil {
113302		return nil, err
113303	}
113304	defer googleapi.CloseBody(res)
113305	if err := googleapi.CheckResponse(res); err != nil {
113306		return nil, err
113307	}
113308	ret := &Operation{
113309		ServerResponse: googleapi.ServerResponse{
113310			Header:         res.Header,
113311			HTTPStatusCode: res.StatusCode,
113312		},
113313	}
113314	target := &ret
113315	if err := gensupport.DecodeResponse(target, res); err != nil {
113316		return nil, err
113317	}
113318	return ret, nil
113319	// {
113320	//   "description": "Deletes the specified regional BackendService resource.",
113321	//   "httpMethod": "DELETE",
113322	//   "id": "compute.regionBackendServices.delete",
113323	//   "parameterOrder": [
113324	//     "project",
113325	//     "region",
113326	//     "backendService"
113327	//   ],
113328	//   "parameters": {
113329	//     "backendService": {
113330	//       "description": "Name of the BackendService resource to delete.",
113331	//       "location": "path",
113332	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
113333	//       "required": true,
113334	//       "type": "string"
113335	//     },
113336	//     "project": {
113337	//       "description": "Project ID for this request.",
113338	//       "location": "path",
113339	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113340	//       "required": true,
113341	//       "type": "string"
113342	//     },
113343	//     "region": {
113344	//       "description": "Name of the region scoping this request.",
113345	//       "location": "path",
113346	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
113347	//       "required": true,
113348	//       "type": "string"
113349	//     },
113350	//     "requestId": {
113351	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
113352	//       "location": "query",
113353	//       "type": "string"
113354	//     }
113355	//   },
113356	//   "path": "projects/{project}/regions/{region}/backendServices/{backendService}",
113357	//   "response": {
113358	//     "$ref": "Operation"
113359	//   },
113360	//   "scopes": [
113361	//     "https://www.googleapis.com/auth/cloud-platform",
113362	//     "https://www.googleapis.com/auth/compute"
113363	//   ]
113364	// }
113365
113366}
113367
113368// method id "compute.regionBackendServices.get":
113369
113370type RegionBackendServicesGetCall struct {
113371	s              *Service
113372	project        string
113373	region         string
113374	backendService string
113375	urlParams_     gensupport.URLParams
113376	ifNoneMatch_   string
113377	ctx_           context.Context
113378	header_        http.Header
113379}
113380
113381// Get: Returns the specified regional BackendService resource.
113382//
113383// - backendService: Name of the BackendService resource to return.
113384// - project: Project ID for this request.
113385// - region: Name of the region scoping this request.
113386func (r *RegionBackendServicesService) Get(project string, region string, backendService string) *RegionBackendServicesGetCall {
113387	c := &RegionBackendServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113388	c.project = project
113389	c.region = region
113390	c.backendService = backendService
113391	return c
113392}
113393
113394// Fields allows partial responses to be retrieved. See
113395// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113396// for more information.
113397func (c *RegionBackendServicesGetCall) Fields(s ...googleapi.Field) *RegionBackendServicesGetCall {
113398	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113399	return c
113400}
113401
113402// IfNoneMatch sets the optional parameter which makes the operation
113403// fail if the object's ETag matches the given value. This is useful for
113404// getting updates only after the object has changed since the last
113405// request. Use googleapi.IsNotModified to check whether the response
113406// error from Do is the result of In-None-Match.
113407func (c *RegionBackendServicesGetCall) IfNoneMatch(entityTag string) *RegionBackendServicesGetCall {
113408	c.ifNoneMatch_ = entityTag
113409	return c
113410}
113411
113412// Context sets the context to be used in this call's Do method. Any
113413// pending HTTP request will be aborted if the provided context is
113414// canceled.
113415func (c *RegionBackendServicesGetCall) Context(ctx context.Context) *RegionBackendServicesGetCall {
113416	c.ctx_ = ctx
113417	return c
113418}
113419
113420// Header returns an http.Header that can be modified by the caller to
113421// add HTTP headers to the request.
113422func (c *RegionBackendServicesGetCall) Header() http.Header {
113423	if c.header_ == nil {
113424		c.header_ = make(http.Header)
113425	}
113426	return c.header_
113427}
113428
113429func (c *RegionBackendServicesGetCall) doRequest(alt string) (*http.Response, error) {
113430	reqHeaders := make(http.Header)
113431	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
113432	for k, v := range c.header_ {
113433		reqHeaders[k] = v
113434	}
113435	reqHeaders.Set("User-Agent", c.s.userAgent())
113436	if c.ifNoneMatch_ != "" {
113437		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
113438	}
113439	var body io.Reader = nil
113440	c.urlParams_.Set("alt", alt)
113441	c.urlParams_.Set("prettyPrint", "false")
113442	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{backendService}")
113443	urls += "?" + c.urlParams_.Encode()
113444	req, err := http.NewRequest("GET", urls, body)
113445	if err != nil {
113446		return nil, err
113447	}
113448	req.Header = reqHeaders
113449	googleapi.Expand(req.URL, map[string]string{
113450		"project":        c.project,
113451		"region":         c.region,
113452		"backendService": c.backendService,
113453	})
113454	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113455}
113456
113457// Do executes the "compute.regionBackendServices.get" call.
113458// Exactly one of *BackendService or error will be non-nil. Any non-2xx
113459// status code is an error. Response headers are in either
113460// *BackendService.ServerResponse.Header or (if a response was returned
113461// at all) in error.(*googleapi.Error).Header. Use
113462// googleapi.IsNotModified to check whether the returned error was
113463// because http.StatusNotModified was returned.
113464func (c *RegionBackendServicesGetCall) Do(opts ...googleapi.CallOption) (*BackendService, error) {
113465	gensupport.SetOptions(c.urlParams_, opts...)
113466	res, err := c.doRequest("json")
113467	if res != nil && res.StatusCode == http.StatusNotModified {
113468		if res.Body != nil {
113469			res.Body.Close()
113470		}
113471		return nil, &googleapi.Error{
113472			Code:   res.StatusCode,
113473			Header: res.Header,
113474		}
113475	}
113476	if err != nil {
113477		return nil, err
113478	}
113479	defer googleapi.CloseBody(res)
113480	if err := googleapi.CheckResponse(res); err != nil {
113481		return nil, err
113482	}
113483	ret := &BackendService{
113484		ServerResponse: googleapi.ServerResponse{
113485			Header:         res.Header,
113486			HTTPStatusCode: res.StatusCode,
113487		},
113488	}
113489	target := &ret
113490	if err := gensupport.DecodeResponse(target, res); err != nil {
113491		return nil, err
113492	}
113493	return ret, nil
113494	// {
113495	//   "description": "Returns the specified regional BackendService resource.",
113496	//   "httpMethod": "GET",
113497	//   "id": "compute.regionBackendServices.get",
113498	//   "parameterOrder": [
113499	//     "project",
113500	//     "region",
113501	//     "backendService"
113502	//   ],
113503	//   "parameters": {
113504	//     "backendService": {
113505	//       "description": "Name of the BackendService resource to return.",
113506	//       "location": "path",
113507	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
113508	//       "required": true,
113509	//       "type": "string"
113510	//     },
113511	//     "project": {
113512	//       "description": "Project ID for this request.",
113513	//       "location": "path",
113514	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113515	//       "required": true,
113516	//       "type": "string"
113517	//     },
113518	//     "region": {
113519	//       "description": "Name of the region scoping this request.",
113520	//       "location": "path",
113521	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
113522	//       "required": true,
113523	//       "type": "string"
113524	//     }
113525	//   },
113526	//   "path": "projects/{project}/regions/{region}/backendServices/{backendService}",
113527	//   "response": {
113528	//     "$ref": "BackendService"
113529	//   },
113530	//   "scopes": [
113531	//     "https://www.googleapis.com/auth/cloud-platform",
113532	//     "https://www.googleapis.com/auth/compute",
113533	//     "https://www.googleapis.com/auth/compute.readonly"
113534	//   ]
113535	// }
113536
113537}
113538
113539// method id "compute.regionBackendServices.getHealth":
113540
113541type RegionBackendServicesGetHealthCall struct {
113542	s                      *Service
113543	project                string
113544	region                 string
113545	backendService         string
113546	resourcegroupreference *ResourceGroupReference
113547	urlParams_             gensupport.URLParams
113548	ctx_                   context.Context
113549	header_                http.Header
113550}
113551
113552// GetHealth: Gets the most recent health check results for this
113553// regional BackendService.
113554//
113555// - backendService: Name of the BackendService resource for which to
113556//   get health.
113557// - project: .
113558// - region: Name of the region scoping this request.
113559func (r *RegionBackendServicesService) GetHealth(project string, region string, backendService string, resourcegroupreference *ResourceGroupReference) *RegionBackendServicesGetHealthCall {
113560	c := &RegionBackendServicesGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113561	c.project = project
113562	c.region = region
113563	c.backendService = backendService
113564	c.resourcegroupreference = resourcegroupreference
113565	return c
113566}
113567
113568// Fields allows partial responses to be retrieved. See
113569// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113570// for more information.
113571func (c *RegionBackendServicesGetHealthCall) Fields(s ...googleapi.Field) *RegionBackendServicesGetHealthCall {
113572	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113573	return c
113574}
113575
113576// Context sets the context to be used in this call's Do method. Any
113577// pending HTTP request will be aborted if the provided context is
113578// canceled.
113579func (c *RegionBackendServicesGetHealthCall) Context(ctx context.Context) *RegionBackendServicesGetHealthCall {
113580	c.ctx_ = ctx
113581	return c
113582}
113583
113584// Header returns an http.Header that can be modified by the caller to
113585// add HTTP headers to the request.
113586func (c *RegionBackendServicesGetHealthCall) Header() http.Header {
113587	if c.header_ == nil {
113588		c.header_ = make(http.Header)
113589	}
113590	return c.header_
113591}
113592
113593func (c *RegionBackendServicesGetHealthCall) doRequest(alt string) (*http.Response, error) {
113594	reqHeaders := make(http.Header)
113595	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
113596	for k, v := range c.header_ {
113597		reqHeaders[k] = v
113598	}
113599	reqHeaders.Set("User-Agent", c.s.userAgent())
113600	var body io.Reader = nil
113601	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcegroupreference)
113602	if err != nil {
113603		return nil, err
113604	}
113605	reqHeaders.Set("Content-Type", "application/json")
113606	c.urlParams_.Set("alt", alt)
113607	c.urlParams_.Set("prettyPrint", "false")
113608	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{backendService}/getHealth")
113609	urls += "?" + c.urlParams_.Encode()
113610	req, err := http.NewRequest("POST", urls, body)
113611	if err != nil {
113612		return nil, err
113613	}
113614	req.Header = reqHeaders
113615	googleapi.Expand(req.URL, map[string]string{
113616		"project":        c.project,
113617		"region":         c.region,
113618		"backendService": c.backendService,
113619	})
113620	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113621}
113622
113623// Do executes the "compute.regionBackendServices.getHealth" call.
113624// Exactly one of *BackendServiceGroupHealth or error will be non-nil.
113625// Any non-2xx status code is an error. Response headers are in either
113626// *BackendServiceGroupHealth.ServerResponse.Header or (if a response
113627// was returned at all) in error.(*googleapi.Error).Header. Use
113628// googleapi.IsNotModified to check whether the returned error was
113629// because http.StatusNotModified was returned.
113630func (c *RegionBackendServicesGetHealthCall) Do(opts ...googleapi.CallOption) (*BackendServiceGroupHealth, error) {
113631	gensupport.SetOptions(c.urlParams_, opts...)
113632	res, err := c.doRequest("json")
113633	if res != nil && res.StatusCode == http.StatusNotModified {
113634		if res.Body != nil {
113635			res.Body.Close()
113636		}
113637		return nil, &googleapi.Error{
113638			Code:   res.StatusCode,
113639			Header: res.Header,
113640		}
113641	}
113642	if err != nil {
113643		return nil, err
113644	}
113645	defer googleapi.CloseBody(res)
113646	if err := googleapi.CheckResponse(res); err != nil {
113647		return nil, err
113648	}
113649	ret := &BackendServiceGroupHealth{
113650		ServerResponse: googleapi.ServerResponse{
113651			Header:         res.Header,
113652			HTTPStatusCode: res.StatusCode,
113653		},
113654	}
113655	target := &ret
113656	if err := gensupport.DecodeResponse(target, res); err != nil {
113657		return nil, err
113658	}
113659	return ret, nil
113660	// {
113661	//   "description": "Gets the most recent health check results for this regional BackendService.",
113662	//   "httpMethod": "POST",
113663	//   "id": "compute.regionBackendServices.getHealth",
113664	//   "parameterOrder": [
113665	//     "project",
113666	//     "region",
113667	//     "backendService"
113668	//   ],
113669	//   "parameters": {
113670	//     "backendService": {
113671	//       "description": "Name of the BackendService resource for which to get health.",
113672	//       "location": "path",
113673	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
113674	//       "required": true,
113675	//       "type": "string"
113676	//     },
113677	//     "project": {
113678	//       "location": "path",
113679	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113680	//       "required": true,
113681	//       "type": "string"
113682	//     },
113683	//     "region": {
113684	//       "description": "Name of the region scoping this request.",
113685	//       "location": "path",
113686	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
113687	//       "required": true,
113688	//       "type": "string"
113689	//     }
113690	//   },
113691	//   "path": "projects/{project}/regions/{region}/backendServices/{backendService}/getHealth",
113692	//   "request": {
113693	//     "$ref": "ResourceGroupReference"
113694	//   },
113695	//   "response": {
113696	//     "$ref": "BackendServiceGroupHealth"
113697	//   },
113698	//   "scopes": [
113699	//     "https://www.googleapis.com/auth/cloud-platform",
113700	//     "https://www.googleapis.com/auth/compute",
113701	//     "https://www.googleapis.com/auth/compute.readonly"
113702	//   ]
113703	// }
113704
113705}
113706
113707// method id "compute.regionBackendServices.insert":
113708
113709type RegionBackendServicesInsertCall struct {
113710	s              *Service
113711	project        string
113712	region         string
113713	backendservice *BackendService
113714	urlParams_     gensupport.URLParams
113715	ctx_           context.Context
113716	header_        http.Header
113717}
113718
113719// Insert: Creates a regional BackendService resource in the specified
113720// project using the data included in the request. For more information,
113721// see  Backend services overview.
113722//
113723// - project: Project ID for this request.
113724// - region: Name of the region scoping this request.
113725func (r *RegionBackendServicesService) Insert(project string, region string, backendservice *BackendService) *RegionBackendServicesInsertCall {
113726	c := &RegionBackendServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113727	c.project = project
113728	c.region = region
113729	c.backendservice = backendservice
113730	return c
113731}
113732
113733// RequestId sets the optional parameter "requestId": An optional
113734// request ID to identify requests. Specify a unique request ID so that
113735// if you must retry your request, the server will know to ignore the
113736// request if it has already been completed.
113737//
113738// For example, consider a situation where you make an initial request
113739// and the request times out. If you make the request again with the
113740// same request ID, the server can check if original operation with the
113741// same request ID was received, and if so, will ignore the second
113742// request. This prevents clients from accidentally creating duplicate
113743// commitments.
113744//
113745// The request ID must be a valid UUID with the exception that zero UUID
113746// is not supported (00000000-0000-0000-0000-000000000000).
113747func (c *RegionBackendServicesInsertCall) RequestId(requestId string) *RegionBackendServicesInsertCall {
113748	c.urlParams_.Set("requestId", requestId)
113749	return c
113750}
113751
113752// Fields allows partial responses to be retrieved. See
113753// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113754// for more information.
113755func (c *RegionBackendServicesInsertCall) Fields(s ...googleapi.Field) *RegionBackendServicesInsertCall {
113756	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113757	return c
113758}
113759
113760// Context sets the context to be used in this call's Do method. Any
113761// pending HTTP request will be aborted if the provided context is
113762// canceled.
113763func (c *RegionBackendServicesInsertCall) Context(ctx context.Context) *RegionBackendServicesInsertCall {
113764	c.ctx_ = ctx
113765	return c
113766}
113767
113768// Header returns an http.Header that can be modified by the caller to
113769// add HTTP headers to the request.
113770func (c *RegionBackendServicesInsertCall) Header() http.Header {
113771	if c.header_ == nil {
113772		c.header_ = make(http.Header)
113773	}
113774	return c.header_
113775}
113776
113777func (c *RegionBackendServicesInsertCall) doRequest(alt string) (*http.Response, error) {
113778	reqHeaders := make(http.Header)
113779	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
113780	for k, v := range c.header_ {
113781		reqHeaders[k] = v
113782	}
113783	reqHeaders.Set("User-Agent", c.s.userAgent())
113784	var body io.Reader = nil
113785	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
113786	if err != nil {
113787		return nil, err
113788	}
113789	reqHeaders.Set("Content-Type", "application/json")
113790	c.urlParams_.Set("alt", alt)
113791	c.urlParams_.Set("prettyPrint", "false")
113792	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices")
113793	urls += "?" + c.urlParams_.Encode()
113794	req, err := http.NewRequest("POST", urls, body)
113795	if err != nil {
113796		return nil, err
113797	}
113798	req.Header = reqHeaders
113799	googleapi.Expand(req.URL, map[string]string{
113800		"project": c.project,
113801		"region":  c.region,
113802	})
113803	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113804}
113805
113806// Do executes the "compute.regionBackendServices.insert" call.
113807// Exactly one of *Operation or error will be non-nil. Any non-2xx
113808// status code is an error. Response headers are in either
113809// *Operation.ServerResponse.Header or (if a response was returned at
113810// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113811// to check whether the returned error was because
113812// http.StatusNotModified was returned.
113813func (c *RegionBackendServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
113814	gensupport.SetOptions(c.urlParams_, opts...)
113815	res, err := c.doRequest("json")
113816	if res != nil && res.StatusCode == http.StatusNotModified {
113817		if res.Body != nil {
113818			res.Body.Close()
113819		}
113820		return nil, &googleapi.Error{
113821			Code:   res.StatusCode,
113822			Header: res.Header,
113823		}
113824	}
113825	if err != nil {
113826		return nil, err
113827	}
113828	defer googleapi.CloseBody(res)
113829	if err := googleapi.CheckResponse(res); err != nil {
113830		return nil, err
113831	}
113832	ret := &Operation{
113833		ServerResponse: googleapi.ServerResponse{
113834			Header:         res.Header,
113835			HTTPStatusCode: res.StatusCode,
113836		},
113837	}
113838	target := &ret
113839	if err := gensupport.DecodeResponse(target, res); err != nil {
113840		return nil, err
113841	}
113842	return ret, nil
113843	// {
113844	//   "description": "Creates a regional BackendService resource in the specified project using the data included in the request. For more information, see  Backend services overview.",
113845	//   "httpMethod": "POST",
113846	//   "id": "compute.regionBackendServices.insert",
113847	//   "parameterOrder": [
113848	//     "project",
113849	//     "region"
113850	//   ],
113851	//   "parameters": {
113852	//     "project": {
113853	//       "description": "Project ID for this request.",
113854	//       "location": "path",
113855	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113856	//       "required": true,
113857	//       "type": "string"
113858	//     },
113859	//     "region": {
113860	//       "description": "Name of the region scoping this request.",
113861	//       "location": "path",
113862	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
113863	//       "required": true,
113864	//       "type": "string"
113865	//     },
113866	//     "requestId": {
113867	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
113868	//       "location": "query",
113869	//       "type": "string"
113870	//     }
113871	//   },
113872	//   "path": "projects/{project}/regions/{region}/backendServices",
113873	//   "request": {
113874	//     "$ref": "BackendService"
113875	//   },
113876	//   "response": {
113877	//     "$ref": "Operation"
113878	//   },
113879	//   "scopes": [
113880	//     "https://www.googleapis.com/auth/cloud-platform",
113881	//     "https://www.googleapis.com/auth/compute"
113882	//   ]
113883	// }
113884
113885}
113886
113887// method id "compute.regionBackendServices.list":
113888
113889type RegionBackendServicesListCall struct {
113890	s            *Service
113891	project      string
113892	region       string
113893	urlParams_   gensupport.URLParams
113894	ifNoneMatch_ string
113895	ctx_         context.Context
113896	header_      http.Header
113897}
113898
113899// List: Retrieves the list of regional BackendService resources
113900// available to the specified project in the given region.
113901//
113902// - project: Project ID for this request.
113903// - region: Name of the region scoping this request.
113904func (r *RegionBackendServicesService) List(project string, region string) *RegionBackendServicesListCall {
113905	c := &RegionBackendServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113906	c.project = project
113907	c.region = region
113908	return c
113909}
113910
113911// Filter sets the optional parameter "filter": A filter expression that
113912// filters resources listed in the response. The expression must specify
113913// the field name, a comparison operator, and the value that you want to
113914// use for filtering. The value must be a string, a number, or a
113915// boolean. The comparison operator must be either `=`, `!=`, `>`, or
113916// `<`.
113917//
113918// For example, if you are filtering Compute Engine instances, you can
113919// exclude instances named `example-instance` by specifying `name !=
113920// example-instance`.
113921//
113922// You can also filter nested fields. For example, you could specify
113923// `scheduling.automaticRestart = false` to include instances only if
113924// they are not scheduled for automatic restarts. You can use filtering
113925// on nested fields to filter based on resource labels.
113926//
113927// To filter on multiple expressions, provide each separate expression
113928// within parentheses. For example: ``` (scheduling.automaticRestart =
113929// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
113930// is an `AND` expression. However, you can include `AND` and `OR`
113931// expressions explicitly. For example: ``` (cpuPlatform = "Intel
113932// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
113933// (scheduling.automaticRestart = true) ```
113934func (c *RegionBackendServicesListCall) Filter(filter string) *RegionBackendServicesListCall {
113935	c.urlParams_.Set("filter", filter)
113936	return c
113937}
113938
113939// MaxResults sets the optional parameter "maxResults": The maximum
113940// number of results per page that should be returned. If the number of
113941// available results is larger than `maxResults`, Compute Engine returns
113942// a `nextPageToken` that can be used to get the next page of results in
113943// subsequent list requests. Acceptable values are `0` to `500`,
113944// inclusive. (Default: `500`)
113945func (c *RegionBackendServicesListCall) MaxResults(maxResults int64) *RegionBackendServicesListCall {
113946	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
113947	return c
113948}
113949
113950// OrderBy sets the optional parameter "orderBy": Sorts list results by
113951// a certain order. By default, results are returned in alphanumerical
113952// order based on the resource name.
113953//
113954// You can also sort results in descending order based on the creation
113955// timestamp using `orderBy="creationTimestamp desc". This sorts
113956// results based on the `creationTimestamp` field in reverse
113957// chronological order (newest result first). Use this to sort resources
113958// like operations so that the newest operation is returned
113959// first.
113960//
113961// Currently, only sorting by `name` or `creationTimestamp desc` is
113962// supported.
113963func (c *RegionBackendServicesListCall) OrderBy(orderBy string) *RegionBackendServicesListCall {
113964	c.urlParams_.Set("orderBy", orderBy)
113965	return c
113966}
113967
113968// PageToken sets the optional parameter "pageToken": Specifies a page
113969// token to use. Set `pageToken` to the `nextPageToken` returned by a
113970// previous list request to get the next page of results.
113971func (c *RegionBackendServicesListCall) PageToken(pageToken string) *RegionBackendServicesListCall {
113972	c.urlParams_.Set("pageToken", pageToken)
113973	return c
113974}
113975
113976// ReturnPartialSuccess sets the optional parameter
113977// "returnPartialSuccess": Opt-in for partial success behavior which
113978// provides partial results in case of failure. The default value is
113979// false.
113980func (c *RegionBackendServicesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionBackendServicesListCall {
113981	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
113982	return c
113983}
113984
113985// Fields allows partial responses to be retrieved. See
113986// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113987// for more information.
113988func (c *RegionBackendServicesListCall) Fields(s ...googleapi.Field) *RegionBackendServicesListCall {
113989	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113990	return c
113991}
113992
113993// IfNoneMatch sets the optional parameter which makes the operation
113994// fail if the object's ETag matches the given value. This is useful for
113995// getting updates only after the object has changed since the last
113996// request. Use googleapi.IsNotModified to check whether the response
113997// error from Do is the result of In-None-Match.
113998func (c *RegionBackendServicesListCall) IfNoneMatch(entityTag string) *RegionBackendServicesListCall {
113999	c.ifNoneMatch_ = entityTag
114000	return c
114001}
114002
114003// Context sets the context to be used in this call's Do method. Any
114004// pending HTTP request will be aborted if the provided context is
114005// canceled.
114006func (c *RegionBackendServicesListCall) Context(ctx context.Context) *RegionBackendServicesListCall {
114007	c.ctx_ = ctx
114008	return c
114009}
114010
114011// Header returns an http.Header that can be modified by the caller to
114012// add HTTP headers to the request.
114013func (c *RegionBackendServicesListCall) Header() http.Header {
114014	if c.header_ == nil {
114015		c.header_ = make(http.Header)
114016	}
114017	return c.header_
114018}
114019
114020func (c *RegionBackendServicesListCall) doRequest(alt string) (*http.Response, error) {
114021	reqHeaders := make(http.Header)
114022	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
114023	for k, v := range c.header_ {
114024		reqHeaders[k] = v
114025	}
114026	reqHeaders.Set("User-Agent", c.s.userAgent())
114027	if c.ifNoneMatch_ != "" {
114028		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
114029	}
114030	var body io.Reader = nil
114031	c.urlParams_.Set("alt", alt)
114032	c.urlParams_.Set("prettyPrint", "false")
114033	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices")
114034	urls += "?" + c.urlParams_.Encode()
114035	req, err := http.NewRequest("GET", urls, body)
114036	if err != nil {
114037		return nil, err
114038	}
114039	req.Header = reqHeaders
114040	googleapi.Expand(req.URL, map[string]string{
114041		"project": c.project,
114042		"region":  c.region,
114043	})
114044	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114045}
114046
114047// Do executes the "compute.regionBackendServices.list" call.
114048// Exactly one of *BackendServiceList or error will be non-nil. Any
114049// non-2xx status code is an error. Response headers are in either
114050// *BackendServiceList.ServerResponse.Header or (if a response was
114051// returned at all) in error.(*googleapi.Error).Header. Use
114052// googleapi.IsNotModified to check whether the returned error was
114053// because http.StatusNotModified was returned.
114054func (c *RegionBackendServicesListCall) Do(opts ...googleapi.CallOption) (*BackendServiceList, error) {
114055	gensupport.SetOptions(c.urlParams_, opts...)
114056	res, err := c.doRequest("json")
114057	if res != nil && res.StatusCode == http.StatusNotModified {
114058		if res.Body != nil {
114059			res.Body.Close()
114060		}
114061		return nil, &googleapi.Error{
114062			Code:   res.StatusCode,
114063			Header: res.Header,
114064		}
114065	}
114066	if err != nil {
114067		return nil, err
114068	}
114069	defer googleapi.CloseBody(res)
114070	if err := googleapi.CheckResponse(res); err != nil {
114071		return nil, err
114072	}
114073	ret := &BackendServiceList{
114074		ServerResponse: googleapi.ServerResponse{
114075			Header:         res.Header,
114076			HTTPStatusCode: res.StatusCode,
114077		},
114078	}
114079	target := &ret
114080	if err := gensupport.DecodeResponse(target, res); err != nil {
114081		return nil, err
114082	}
114083	return ret, nil
114084	// {
114085	//   "description": "Retrieves the list of regional BackendService resources available to the specified project in the given region.",
114086	//   "httpMethod": "GET",
114087	//   "id": "compute.regionBackendServices.list",
114088	//   "parameterOrder": [
114089	//     "project",
114090	//     "region"
114091	//   ],
114092	//   "parameters": {
114093	//     "filter": {
114094	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
114095	//       "location": "query",
114096	//       "type": "string"
114097	//     },
114098	//     "maxResults": {
114099	//       "default": "500",
114100	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
114101	//       "format": "uint32",
114102	//       "location": "query",
114103	//       "minimum": "0",
114104	//       "type": "integer"
114105	//     },
114106	//     "orderBy": {
114107	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
114108	//       "location": "query",
114109	//       "type": "string"
114110	//     },
114111	//     "pageToken": {
114112	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
114113	//       "location": "query",
114114	//       "type": "string"
114115	//     },
114116	//     "project": {
114117	//       "description": "Project ID for this request.",
114118	//       "location": "path",
114119	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114120	//       "required": true,
114121	//       "type": "string"
114122	//     },
114123	//     "region": {
114124	//       "description": "Name of the region scoping this request.",
114125	//       "location": "path",
114126	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
114127	//       "required": true,
114128	//       "type": "string"
114129	//     },
114130	//     "returnPartialSuccess": {
114131	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
114132	//       "location": "query",
114133	//       "type": "boolean"
114134	//     }
114135	//   },
114136	//   "path": "projects/{project}/regions/{region}/backendServices",
114137	//   "response": {
114138	//     "$ref": "BackendServiceList"
114139	//   },
114140	//   "scopes": [
114141	//     "https://www.googleapis.com/auth/cloud-platform",
114142	//     "https://www.googleapis.com/auth/compute",
114143	//     "https://www.googleapis.com/auth/compute.readonly"
114144	//   ]
114145	// }
114146
114147}
114148
114149// Pages invokes f for each page of results.
114150// A non-nil error returned from f will halt the iteration.
114151// The provided context supersedes any context provided to the Context method.
114152func (c *RegionBackendServicesListCall) Pages(ctx context.Context, f func(*BackendServiceList) error) error {
114153	c.ctx_ = ctx
114154	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
114155	for {
114156		x, err := c.Do()
114157		if err != nil {
114158			return err
114159		}
114160		if err := f(x); err != nil {
114161			return err
114162		}
114163		if x.NextPageToken == "" {
114164			return nil
114165		}
114166		c.PageToken(x.NextPageToken)
114167	}
114168}
114169
114170// method id "compute.regionBackendServices.patch":
114171
114172type RegionBackendServicesPatchCall struct {
114173	s              *Service
114174	project        string
114175	region         string
114176	backendService string
114177	backendservice *BackendService
114178	urlParams_     gensupport.URLParams
114179	ctx_           context.Context
114180	header_        http.Header
114181}
114182
114183// Patch: Updates the specified regional BackendService resource with
114184// the data included in the request. For more information, see
114185// Understanding backend services This method supports PATCH semantics
114186// and uses the JSON merge patch format and processing rules.
114187//
114188// - backendService: Name of the BackendService resource to patch.
114189// - project: Project ID for this request.
114190// - region: Name of the region scoping this request.
114191func (r *RegionBackendServicesService) Patch(project string, region string, backendService string, backendservice *BackendService) *RegionBackendServicesPatchCall {
114192	c := &RegionBackendServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114193	c.project = project
114194	c.region = region
114195	c.backendService = backendService
114196	c.backendservice = backendservice
114197	return c
114198}
114199
114200// RequestId sets the optional parameter "requestId": An optional
114201// request ID to identify requests. Specify a unique request ID so that
114202// if you must retry your request, the server will know to ignore the
114203// request if it has already been completed.
114204//
114205// For example, consider a situation where you make an initial request
114206// and the request times out. If you make the request again with the
114207// same request ID, the server can check if original operation with the
114208// same request ID was received, and if so, will ignore the second
114209// request. This prevents clients from accidentally creating duplicate
114210// commitments.
114211//
114212// The request ID must be a valid UUID with the exception that zero UUID
114213// is not supported (00000000-0000-0000-0000-000000000000).
114214func (c *RegionBackendServicesPatchCall) RequestId(requestId string) *RegionBackendServicesPatchCall {
114215	c.urlParams_.Set("requestId", requestId)
114216	return c
114217}
114218
114219// Fields allows partial responses to be retrieved. See
114220// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114221// for more information.
114222func (c *RegionBackendServicesPatchCall) Fields(s ...googleapi.Field) *RegionBackendServicesPatchCall {
114223	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114224	return c
114225}
114226
114227// Context sets the context to be used in this call's Do method. Any
114228// pending HTTP request will be aborted if the provided context is
114229// canceled.
114230func (c *RegionBackendServicesPatchCall) Context(ctx context.Context) *RegionBackendServicesPatchCall {
114231	c.ctx_ = ctx
114232	return c
114233}
114234
114235// Header returns an http.Header that can be modified by the caller to
114236// add HTTP headers to the request.
114237func (c *RegionBackendServicesPatchCall) Header() http.Header {
114238	if c.header_ == nil {
114239		c.header_ = make(http.Header)
114240	}
114241	return c.header_
114242}
114243
114244func (c *RegionBackendServicesPatchCall) doRequest(alt string) (*http.Response, error) {
114245	reqHeaders := make(http.Header)
114246	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
114247	for k, v := range c.header_ {
114248		reqHeaders[k] = v
114249	}
114250	reqHeaders.Set("User-Agent", c.s.userAgent())
114251	var body io.Reader = nil
114252	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
114253	if err != nil {
114254		return nil, err
114255	}
114256	reqHeaders.Set("Content-Type", "application/json")
114257	c.urlParams_.Set("alt", alt)
114258	c.urlParams_.Set("prettyPrint", "false")
114259	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{backendService}")
114260	urls += "?" + c.urlParams_.Encode()
114261	req, err := http.NewRequest("PATCH", urls, body)
114262	if err != nil {
114263		return nil, err
114264	}
114265	req.Header = reqHeaders
114266	googleapi.Expand(req.URL, map[string]string{
114267		"project":        c.project,
114268		"region":         c.region,
114269		"backendService": c.backendService,
114270	})
114271	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114272}
114273
114274// Do executes the "compute.regionBackendServices.patch" call.
114275// Exactly one of *Operation or error will be non-nil. Any non-2xx
114276// status code is an error. Response headers are in either
114277// *Operation.ServerResponse.Header or (if a response was returned at
114278// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
114279// to check whether the returned error was because
114280// http.StatusNotModified was returned.
114281func (c *RegionBackendServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
114282	gensupport.SetOptions(c.urlParams_, opts...)
114283	res, err := c.doRequest("json")
114284	if res != nil && res.StatusCode == http.StatusNotModified {
114285		if res.Body != nil {
114286			res.Body.Close()
114287		}
114288		return nil, &googleapi.Error{
114289			Code:   res.StatusCode,
114290			Header: res.Header,
114291		}
114292	}
114293	if err != nil {
114294		return nil, err
114295	}
114296	defer googleapi.CloseBody(res)
114297	if err := googleapi.CheckResponse(res); err != nil {
114298		return nil, err
114299	}
114300	ret := &Operation{
114301		ServerResponse: googleapi.ServerResponse{
114302			Header:         res.Header,
114303			HTTPStatusCode: res.StatusCode,
114304		},
114305	}
114306	target := &ret
114307	if err := gensupport.DecodeResponse(target, res); err != nil {
114308		return nil, err
114309	}
114310	return ret, nil
114311	// {
114312	//   "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.",
114313	//   "httpMethod": "PATCH",
114314	//   "id": "compute.regionBackendServices.patch",
114315	//   "parameterOrder": [
114316	//     "project",
114317	//     "region",
114318	//     "backendService"
114319	//   ],
114320	//   "parameters": {
114321	//     "backendService": {
114322	//       "description": "Name of the BackendService resource to patch.",
114323	//       "location": "path",
114324	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
114325	//       "required": true,
114326	//       "type": "string"
114327	//     },
114328	//     "project": {
114329	//       "description": "Project ID for this request.",
114330	//       "location": "path",
114331	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114332	//       "required": true,
114333	//       "type": "string"
114334	//     },
114335	//     "region": {
114336	//       "description": "Name of the region scoping this request.",
114337	//       "location": "path",
114338	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
114339	//       "required": true,
114340	//       "type": "string"
114341	//     },
114342	//     "requestId": {
114343	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
114344	//       "location": "query",
114345	//       "type": "string"
114346	//     }
114347	//   },
114348	//   "path": "projects/{project}/regions/{region}/backendServices/{backendService}",
114349	//   "request": {
114350	//     "$ref": "BackendService"
114351	//   },
114352	//   "response": {
114353	//     "$ref": "Operation"
114354	//   },
114355	//   "scopes": [
114356	//     "https://www.googleapis.com/auth/cloud-platform",
114357	//     "https://www.googleapis.com/auth/compute"
114358	//   ]
114359	// }
114360
114361}
114362
114363// method id "compute.regionBackendServices.update":
114364
114365type RegionBackendServicesUpdateCall struct {
114366	s              *Service
114367	project        string
114368	region         string
114369	backendService string
114370	backendservice *BackendService
114371	urlParams_     gensupport.URLParams
114372	ctx_           context.Context
114373	header_        http.Header
114374}
114375
114376// Update: Updates the specified regional BackendService resource with
114377// the data included in the request. For more information, see  Backend
114378// services overview.
114379//
114380// - backendService: Name of the BackendService resource to update.
114381// - project: Project ID for this request.
114382// - region: Name of the region scoping this request.
114383func (r *RegionBackendServicesService) Update(project string, region string, backendService string, backendservice *BackendService) *RegionBackendServicesUpdateCall {
114384	c := &RegionBackendServicesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114385	c.project = project
114386	c.region = region
114387	c.backendService = backendService
114388	c.backendservice = backendservice
114389	return c
114390}
114391
114392// RequestId sets the optional parameter "requestId": An optional
114393// request ID to identify requests. Specify a unique request ID so that
114394// if you must retry your request, the server will know to ignore the
114395// request if it has already been completed.
114396//
114397// For example, consider a situation where you make an initial request
114398// and the request times out. If you make the request again with the
114399// same request ID, the server can check if original operation with the
114400// same request ID was received, and if so, will ignore the second
114401// request. This prevents clients from accidentally creating duplicate
114402// commitments.
114403//
114404// The request ID must be a valid UUID with the exception that zero UUID
114405// is not supported (00000000-0000-0000-0000-000000000000).
114406func (c *RegionBackendServicesUpdateCall) RequestId(requestId string) *RegionBackendServicesUpdateCall {
114407	c.urlParams_.Set("requestId", requestId)
114408	return c
114409}
114410
114411// Fields allows partial responses to be retrieved. See
114412// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114413// for more information.
114414func (c *RegionBackendServicesUpdateCall) Fields(s ...googleapi.Field) *RegionBackendServicesUpdateCall {
114415	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114416	return c
114417}
114418
114419// Context sets the context to be used in this call's Do method. Any
114420// pending HTTP request will be aborted if the provided context is
114421// canceled.
114422func (c *RegionBackendServicesUpdateCall) Context(ctx context.Context) *RegionBackendServicesUpdateCall {
114423	c.ctx_ = ctx
114424	return c
114425}
114426
114427// Header returns an http.Header that can be modified by the caller to
114428// add HTTP headers to the request.
114429func (c *RegionBackendServicesUpdateCall) Header() http.Header {
114430	if c.header_ == nil {
114431		c.header_ = make(http.Header)
114432	}
114433	return c.header_
114434}
114435
114436func (c *RegionBackendServicesUpdateCall) doRequest(alt string) (*http.Response, error) {
114437	reqHeaders := make(http.Header)
114438	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
114439	for k, v := range c.header_ {
114440		reqHeaders[k] = v
114441	}
114442	reqHeaders.Set("User-Agent", c.s.userAgent())
114443	var body io.Reader = nil
114444	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
114445	if err != nil {
114446		return nil, err
114447	}
114448	reqHeaders.Set("Content-Type", "application/json")
114449	c.urlParams_.Set("alt", alt)
114450	c.urlParams_.Set("prettyPrint", "false")
114451	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/backendServices/{backendService}")
114452	urls += "?" + c.urlParams_.Encode()
114453	req, err := http.NewRequest("PUT", urls, body)
114454	if err != nil {
114455		return nil, err
114456	}
114457	req.Header = reqHeaders
114458	googleapi.Expand(req.URL, map[string]string{
114459		"project":        c.project,
114460		"region":         c.region,
114461		"backendService": c.backendService,
114462	})
114463	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114464}
114465
114466// Do executes the "compute.regionBackendServices.update" call.
114467// Exactly one of *Operation or error will be non-nil. Any non-2xx
114468// status code is an error. Response headers are in either
114469// *Operation.ServerResponse.Header or (if a response was returned at
114470// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
114471// to check whether the returned error was because
114472// http.StatusNotModified was returned.
114473func (c *RegionBackendServicesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
114474	gensupport.SetOptions(c.urlParams_, opts...)
114475	res, err := c.doRequest("json")
114476	if res != nil && res.StatusCode == http.StatusNotModified {
114477		if res.Body != nil {
114478			res.Body.Close()
114479		}
114480		return nil, &googleapi.Error{
114481			Code:   res.StatusCode,
114482			Header: res.Header,
114483		}
114484	}
114485	if err != nil {
114486		return nil, err
114487	}
114488	defer googleapi.CloseBody(res)
114489	if err := googleapi.CheckResponse(res); err != nil {
114490		return nil, err
114491	}
114492	ret := &Operation{
114493		ServerResponse: googleapi.ServerResponse{
114494			Header:         res.Header,
114495			HTTPStatusCode: res.StatusCode,
114496		},
114497	}
114498	target := &ret
114499	if err := gensupport.DecodeResponse(target, res); err != nil {
114500		return nil, err
114501	}
114502	return ret, nil
114503	// {
114504	//   "description": "Updates the specified regional BackendService resource with the data included in the request. For more information, see  Backend services overview.",
114505	//   "httpMethod": "PUT",
114506	//   "id": "compute.regionBackendServices.update",
114507	//   "parameterOrder": [
114508	//     "project",
114509	//     "region",
114510	//     "backendService"
114511	//   ],
114512	//   "parameters": {
114513	//     "backendService": {
114514	//       "description": "Name of the BackendService resource to update.",
114515	//       "location": "path",
114516	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
114517	//       "required": true,
114518	//       "type": "string"
114519	//     },
114520	//     "project": {
114521	//       "description": "Project ID for this request.",
114522	//       "location": "path",
114523	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114524	//       "required": true,
114525	//       "type": "string"
114526	//     },
114527	//     "region": {
114528	//       "description": "Name of the region scoping this request.",
114529	//       "location": "path",
114530	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
114531	//       "required": true,
114532	//       "type": "string"
114533	//     },
114534	//     "requestId": {
114535	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
114536	//       "location": "query",
114537	//       "type": "string"
114538	//     }
114539	//   },
114540	//   "path": "projects/{project}/regions/{region}/backendServices/{backendService}",
114541	//   "request": {
114542	//     "$ref": "BackendService"
114543	//   },
114544	//   "response": {
114545	//     "$ref": "Operation"
114546	//   },
114547	//   "scopes": [
114548	//     "https://www.googleapis.com/auth/cloud-platform",
114549	//     "https://www.googleapis.com/auth/compute"
114550	//   ]
114551	// }
114552
114553}
114554
114555// method id "compute.regionCommitments.aggregatedList":
114556
114557type RegionCommitmentsAggregatedListCall struct {
114558	s            *Service
114559	project      string
114560	urlParams_   gensupport.URLParams
114561	ifNoneMatch_ string
114562	ctx_         context.Context
114563	header_      http.Header
114564}
114565
114566// AggregatedList: Retrieves an aggregated list of commitments.
114567//
114568// - project: Project ID for this request.
114569func (r *RegionCommitmentsService) AggregatedList(project string) *RegionCommitmentsAggregatedListCall {
114570	c := &RegionCommitmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114571	c.project = project
114572	return c
114573}
114574
114575// Filter sets the optional parameter "filter": A filter expression that
114576// filters resources listed in the response. The expression must specify
114577// the field name, a comparison operator, and the value that you want to
114578// use for filtering. The value must be a string, a number, or a
114579// boolean. The comparison operator must be either `=`, `!=`, `>`, or
114580// `<`.
114581//
114582// For example, if you are filtering Compute Engine instances, you can
114583// exclude instances named `example-instance` by specifying `name !=
114584// example-instance`.
114585//
114586// You can also filter nested fields. For example, you could specify
114587// `scheduling.automaticRestart = false` to include instances only if
114588// they are not scheduled for automatic restarts. You can use filtering
114589// on nested fields to filter based on resource labels.
114590//
114591// To filter on multiple expressions, provide each separate expression
114592// within parentheses. For example: ``` (scheduling.automaticRestart =
114593// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
114594// is an `AND` expression. However, you can include `AND` and `OR`
114595// expressions explicitly. For example: ``` (cpuPlatform = "Intel
114596// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
114597// (scheduling.automaticRestart = true) ```
114598func (c *RegionCommitmentsAggregatedListCall) Filter(filter string) *RegionCommitmentsAggregatedListCall {
114599	c.urlParams_.Set("filter", filter)
114600	return c
114601}
114602
114603// IncludeAllScopes sets the optional parameter "includeAllScopes":
114604// Indicates whether every visible scope for each scope type (zone,
114605// region, global) should be included in the response. For new resource
114606// types added after this field, the flag has no effect as new resource
114607// types will always include every visible scope for each scope type in
114608// response. For resource types which predate this field, if this flag
114609// is omitted or false, only scopes of the scope types where the
114610// resource type is expected to be found will be included.
114611func (c *RegionCommitmentsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *RegionCommitmentsAggregatedListCall {
114612	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
114613	return c
114614}
114615
114616// MaxResults sets the optional parameter "maxResults": The maximum
114617// number of results per page that should be returned. If the number of
114618// available results is larger than `maxResults`, Compute Engine returns
114619// a `nextPageToken` that can be used to get the next page of results in
114620// subsequent list requests. Acceptable values are `0` to `500`,
114621// inclusive. (Default: `500`)
114622func (c *RegionCommitmentsAggregatedListCall) MaxResults(maxResults int64) *RegionCommitmentsAggregatedListCall {
114623	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
114624	return c
114625}
114626
114627// OrderBy sets the optional parameter "orderBy": Sorts list results by
114628// a certain order. By default, results are returned in alphanumerical
114629// order based on the resource name.
114630//
114631// You can also sort results in descending order based on the creation
114632// timestamp using `orderBy="creationTimestamp desc". This sorts
114633// results based on the `creationTimestamp` field in reverse
114634// chronological order (newest result first). Use this to sort resources
114635// like operations so that the newest operation is returned
114636// first.
114637//
114638// Currently, only sorting by `name` or `creationTimestamp desc` is
114639// supported.
114640func (c *RegionCommitmentsAggregatedListCall) OrderBy(orderBy string) *RegionCommitmentsAggregatedListCall {
114641	c.urlParams_.Set("orderBy", orderBy)
114642	return c
114643}
114644
114645// PageToken sets the optional parameter "pageToken": Specifies a page
114646// token to use. Set `pageToken` to the `nextPageToken` returned by a
114647// previous list request to get the next page of results.
114648func (c *RegionCommitmentsAggregatedListCall) PageToken(pageToken string) *RegionCommitmentsAggregatedListCall {
114649	c.urlParams_.Set("pageToken", pageToken)
114650	return c
114651}
114652
114653// ReturnPartialSuccess sets the optional parameter
114654// "returnPartialSuccess": Opt-in for partial success behavior which
114655// provides partial results in case of failure. The default value is
114656// false.
114657func (c *RegionCommitmentsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionCommitmentsAggregatedListCall {
114658	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
114659	return c
114660}
114661
114662// Fields allows partial responses to be retrieved. See
114663// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114664// for more information.
114665func (c *RegionCommitmentsAggregatedListCall) Fields(s ...googleapi.Field) *RegionCommitmentsAggregatedListCall {
114666	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114667	return c
114668}
114669
114670// IfNoneMatch sets the optional parameter which makes the operation
114671// fail if the object's ETag matches the given value. This is useful for
114672// getting updates only after the object has changed since the last
114673// request. Use googleapi.IsNotModified to check whether the response
114674// error from Do is the result of In-None-Match.
114675func (c *RegionCommitmentsAggregatedListCall) IfNoneMatch(entityTag string) *RegionCommitmentsAggregatedListCall {
114676	c.ifNoneMatch_ = entityTag
114677	return c
114678}
114679
114680// Context sets the context to be used in this call's Do method. Any
114681// pending HTTP request will be aborted if the provided context is
114682// canceled.
114683func (c *RegionCommitmentsAggregatedListCall) Context(ctx context.Context) *RegionCommitmentsAggregatedListCall {
114684	c.ctx_ = ctx
114685	return c
114686}
114687
114688// Header returns an http.Header that can be modified by the caller to
114689// add HTTP headers to the request.
114690func (c *RegionCommitmentsAggregatedListCall) Header() http.Header {
114691	if c.header_ == nil {
114692		c.header_ = make(http.Header)
114693	}
114694	return c.header_
114695}
114696
114697func (c *RegionCommitmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
114698	reqHeaders := make(http.Header)
114699	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
114700	for k, v := range c.header_ {
114701		reqHeaders[k] = v
114702	}
114703	reqHeaders.Set("User-Agent", c.s.userAgent())
114704	if c.ifNoneMatch_ != "" {
114705		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
114706	}
114707	var body io.Reader = nil
114708	c.urlParams_.Set("alt", alt)
114709	c.urlParams_.Set("prettyPrint", "false")
114710	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/commitments")
114711	urls += "?" + c.urlParams_.Encode()
114712	req, err := http.NewRequest("GET", urls, body)
114713	if err != nil {
114714		return nil, err
114715	}
114716	req.Header = reqHeaders
114717	googleapi.Expand(req.URL, map[string]string{
114718		"project": c.project,
114719	})
114720	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114721}
114722
114723// Do executes the "compute.regionCommitments.aggregatedList" call.
114724// Exactly one of *CommitmentAggregatedList or error will be non-nil.
114725// Any non-2xx status code is an error. Response headers are in either
114726// *CommitmentAggregatedList.ServerResponse.Header or (if a response was
114727// returned at all) in error.(*googleapi.Error).Header. Use
114728// googleapi.IsNotModified to check whether the returned error was
114729// because http.StatusNotModified was returned.
114730func (c *RegionCommitmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*CommitmentAggregatedList, error) {
114731	gensupport.SetOptions(c.urlParams_, opts...)
114732	res, err := c.doRequest("json")
114733	if res != nil && res.StatusCode == http.StatusNotModified {
114734		if res.Body != nil {
114735			res.Body.Close()
114736		}
114737		return nil, &googleapi.Error{
114738			Code:   res.StatusCode,
114739			Header: res.Header,
114740		}
114741	}
114742	if err != nil {
114743		return nil, err
114744	}
114745	defer googleapi.CloseBody(res)
114746	if err := googleapi.CheckResponse(res); err != nil {
114747		return nil, err
114748	}
114749	ret := &CommitmentAggregatedList{
114750		ServerResponse: googleapi.ServerResponse{
114751			Header:         res.Header,
114752			HTTPStatusCode: res.StatusCode,
114753		},
114754	}
114755	target := &ret
114756	if err := gensupport.DecodeResponse(target, res); err != nil {
114757		return nil, err
114758	}
114759	return ret, nil
114760	// {
114761	//   "description": "Retrieves an aggregated list of commitments.",
114762	//   "httpMethod": "GET",
114763	//   "id": "compute.regionCommitments.aggregatedList",
114764	//   "parameterOrder": [
114765	//     "project"
114766	//   ],
114767	//   "parameters": {
114768	//     "filter": {
114769	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
114770	//       "location": "query",
114771	//       "type": "string"
114772	//     },
114773	//     "includeAllScopes": {
114774	//       "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.",
114775	//       "location": "query",
114776	//       "type": "boolean"
114777	//     },
114778	//     "maxResults": {
114779	//       "default": "500",
114780	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
114781	//       "format": "uint32",
114782	//       "location": "query",
114783	//       "minimum": "0",
114784	//       "type": "integer"
114785	//     },
114786	//     "orderBy": {
114787	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
114788	//       "location": "query",
114789	//       "type": "string"
114790	//     },
114791	//     "pageToken": {
114792	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
114793	//       "location": "query",
114794	//       "type": "string"
114795	//     },
114796	//     "project": {
114797	//       "description": "Project ID for this request.",
114798	//       "location": "path",
114799	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114800	//       "required": true,
114801	//       "type": "string"
114802	//     },
114803	//     "returnPartialSuccess": {
114804	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
114805	//       "location": "query",
114806	//       "type": "boolean"
114807	//     }
114808	//   },
114809	//   "path": "projects/{project}/aggregated/commitments",
114810	//   "response": {
114811	//     "$ref": "CommitmentAggregatedList"
114812	//   },
114813	//   "scopes": [
114814	//     "https://www.googleapis.com/auth/cloud-platform",
114815	//     "https://www.googleapis.com/auth/compute",
114816	//     "https://www.googleapis.com/auth/compute.readonly"
114817	//   ]
114818	// }
114819
114820}
114821
114822// Pages invokes f for each page of results.
114823// A non-nil error returned from f will halt the iteration.
114824// The provided context supersedes any context provided to the Context method.
114825func (c *RegionCommitmentsAggregatedListCall) Pages(ctx context.Context, f func(*CommitmentAggregatedList) error) error {
114826	c.ctx_ = ctx
114827	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
114828	for {
114829		x, err := c.Do()
114830		if err != nil {
114831			return err
114832		}
114833		if err := f(x); err != nil {
114834			return err
114835		}
114836		if x.NextPageToken == "" {
114837			return nil
114838		}
114839		c.PageToken(x.NextPageToken)
114840	}
114841}
114842
114843// method id "compute.regionCommitments.get":
114844
114845type RegionCommitmentsGetCall struct {
114846	s            *Service
114847	project      string
114848	region       string
114849	commitment   string
114850	urlParams_   gensupport.URLParams
114851	ifNoneMatch_ string
114852	ctx_         context.Context
114853	header_      http.Header
114854}
114855
114856// Get: Returns the specified commitment resource. Gets a list of
114857// available commitments by making a list() request.
114858//
114859// - commitment: Name of the commitment to return.
114860// - project: Project ID for this request.
114861// - region: Name of the region for this request.
114862func (r *RegionCommitmentsService) Get(project string, region string, commitment string) *RegionCommitmentsGetCall {
114863	c := &RegionCommitmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114864	c.project = project
114865	c.region = region
114866	c.commitment = commitment
114867	return c
114868}
114869
114870// Fields allows partial responses to be retrieved. See
114871// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114872// for more information.
114873func (c *RegionCommitmentsGetCall) Fields(s ...googleapi.Field) *RegionCommitmentsGetCall {
114874	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114875	return c
114876}
114877
114878// IfNoneMatch sets the optional parameter which makes the operation
114879// fail if the object's ETag matches the given value. This is useful for
114880// getting updates only after the object has changed since the last
114881// request. Use googleapi.IsNotModified to check whether the response
114882// error from Do is the result of In-None-Match.
114883func (c *RegionCommitmentsGetCall) IfNoneMatch(entityTag string) *RegionCommitmentsGetCall {
114884	c.ifNoneMatch_ = entityTag
114885	return c
114886}
114887
114888// Context sets the context to be used in this call's Do method. Any
114889// pending HTTP request will be aborted if the provided context is
114890// canceled.
114891func (c *RegionCommitmentsGetCall) Context(ctx context.Context) *RegionCommitmentsGetCall {
114892	c.ctx_ = ctx
114893	return c
114894}
114895
114896// Header returns an http.Header that can be modified by the caller to
114897// add HTTP headers to the request.
114898func (c *RegionCommitmentsGetCall) Header() http.Header {
114899	if c.header_ == nil {
114900		c.header_ = make(http.Header)
114901	}
114902	return c.header_
114903}
114904
114905func (c *RegionCommitmentsGetCall) doRequest(alt string) (*http.Response, error) {
114906	reqHeaders := make(http.Header)
114907	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
114908	for k, v := range c.header_ {
114909		reqHeaders[k] = v
114910	}
114911	reqHeaders.Set("User-Agent", c.s.userAgent())
114912	if c.ifNoneMatch_ != "" {
114913		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
114914	}
114915	var body io.Reader = nil
114916	c.urlParams_.Set("alt", alt)
114917	c.urlParams_.Set("prettyPrint", "false")
114918	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/commitments/{commitment}")
114919	urls += "?" + c.urlParams_.Encode()
114920	req, err := http.NewRequest("GET", urls, body)
114921	if err != nil {
114922		return nil, err
114923	}
114924	req.Header = reqHeaders
114925	googleapi.Expand(req.URL, map[string]string{
114926		"project":    c.project,
114927		"region":     c.region,
114928		"commitment": c.commitment,
114929	})
114930	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114931}
114932
114933// Do executes the "compute.regionCommitments.get" call.
114934// Exactly one of *Commitment or error will be non-nil. Any non-2xx
114935// status code is an error. Response headers are in either
114936// *Commitment.ServerResponse.Header or (if a response was returned at
114937// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
114938// to check whether the returned error was because
114939// http.StatusNotModified was returned.
114940func (c *RegionCommitmentsGetCall) Do(opts ...googleapi.CallOption) (*Commitment, error) {
114941	gensupport.SetOptions(c.urlParams_, opts...)
114942	res, err := c.doRequest("json")
114943	if res != nil && res.StatusCode == http.StatusNotModified {
114944		if res.Body != nil {
114945			res.Body.Close()
114946		}
114947		return nil, &googleapi.Error{
114948			Code:   res.StatusCode,
114949			Header: res.Header,
114950		}
114951	}
114952	if err != nil {
114953		return nil, err
114954	}
114955	defer googleapi.CloseBody(res)
114956	if err := googleapi.CheckResponse(res); err != nil {
114957		return nil, err
114958	}
114959	ret := &Commitment{
114960		ServerResponse: googleapi.ServerResponse{
114961			Header:         res.Header,
114962			HTTPStatusCode: res.StatusCode,
114963		},
114964	}
114965	target := &ret
114966	if err := gensupport.DecodeResponse(target, res); err != nil {
114967		return nil, err
114968	}
114969	return ret, nil
114970	// {
114971	//   "description": "Returns the specified commitment resource. Gets a list of available commitments by making a list() request.",
114972	//   "httpMethod": "GET",
114973	//   "id": "compute.regionCommitments.get",
114974	//   "parameterOrder": [
114975	//     "project",
114976	//     "region",
114977	//     "commitment"
114978	//   ],
114979	//   "parameters": {
114980	//     "commitment": {
114981	//       "description": "Name of the commitment to return.",
114982	//       "location": "path",
114983	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
114984	//       "required": true,
114985	//       "type": "string"
114986	//     },
114987	//     "project": {
114988	//       "description": "Project ID for this request.",
114989	//       "location": "path",
114990	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114991	//       "required": true,
114992	//       "type": "string"
114993	//     },
114994	//     "region": {
114995	//       "description": "Name of the region for this request.",
114996	//       "location": "path",
114997	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
114998	//       "required": true,
114999	//       "type": "string"
115000	//     }
115001	//   },
115002	//   "path": "projects/{project}/regions/{region}/commitments/{commitment}",
115003	//   "response": {
115004	//     "$ref": "Commitment"
115005	//   },
115006	//   "scopes": [
115007	//     "https://www.googleapis.com/auth/cloud-platform",
115008	//     "https://www.googleapis.com/auth/compute",
115009	//     "https://www.googleapis.com/auth/compute.readonly"
115010	//   ]
115011	// }
115012
115013}
115014
115015// method id "compute.regionCommitments.insert":
115016
115017type RegionCommitmentsInsertCall struct {
115018	s          *Service
115019	project    string
115020	region     string
115021	commitment *Commitment
115022	urlParams_ gensupport.URLParams
115023	ctx_       context.Context
115024	header_    http.Header
115025}
115026
115027// Insert: Creates a commitment in the specified project using the data
115028// included in the request.
115029//
115030// - project: Project ID for this request.
115031// - region: Name of the region for this request.
115032func (r *RegionCommitmentsService) Insert(project string, region string, commitment *Commitment) *RegionCommitmentsInsertCall {
115033	c := &RegionCommitmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115034	c.project = project
115035	c.region = region
115036	c.commitment = commitment
115037	return c
115038}
115039
115040// RequestId sets the optional parameter "requestId": An optional
115041// request ID to identify requests. Specify a unique request ID so that
115042// if you must retry your request, the server will know to ignore the
115043// request if it has already been completed.
115044//
115045// For example, consider a situation where you make an initial request
115046// and the request times out. If you make the request again with the
115047// same request ID, the server can check if original operation with the
115048// same request ID was received, and if so, will ignore the second
115049// request. This prevents clients from accidentally creating duplicate
115050// commitments.
115051//
115052// The request ID must be a valid UUID with the exception that zero UUID
115053// is not supported (00000000-0000-0000-0000-000000000000).
115054func (c *RegionCommitmentsInsertCall) RequestId(requestId string) *RegionCommitmentsInsertCall {
115055	c.urlParams_.Set("requestId", requestId)
115056	return c
115057}
115058
115059// Fields allows partial responses to be retrieved. See
115060// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115061// for more information.
115062func (c *RegionCommitmentsInsertCall) Fields(s ...googleapi.Field) *RegionCommitmentsInsertCall {
115063	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115064	return c
115065}
115066
115067// Context sets the context to be used in this call's Do method. Any
115068// pending HTTP request will be aborted if the provided context is
115069// canceled.
115070func (c *RegionCommitmentsInsertCall) Context(ctx context.Context) *RegionCommitmentsInsertCall {
115071	c.ctx_ = ctx
115072	return c
115073}
115074
115075// Header returns an http.Header that can be modified by the caller to
115076// add HTTP headers to the request.
115077func (c *RegionCommitmentsInsertCall) Header() http.Header {
115078	if c.header_ == nil {
115079		c.header_ = make(http.Header)
115080	}
115081	return c.header_
115082}
115083
115084func (c *RegionCommitmentsInsertCall) doRequest(alt string) (*http.Response, error) {
115085	reqHeaders := make(http.Header)
115086	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
115087	for k, v := range c.header_ {
115088		reqHeaders[k] = v
115089	}
115090	reqHeaders.Set("User-Agent", c.s.userAgent())
115091	var body io.Reader = nil
115092	body, err := googleapi.WithoutDataWrapper.JSONReader(c.commitment)
115093	if err != nil {
115094		return nil, err
115095	}
115096	reqHeaders.Set("Content-Type", "application/json")
115097	c.urlParams_.Set("alt", alt)
115098	c.urlParams_.Set("prettyPrint", "false")
115099	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/commitments")
115100	urls += "?" + c.urlParams_.Encode()
115101	req, err := http.NewRequest("POST", urls, body)
115102	if err != nil {
115103		return nil, err
115104	}
115105	req.Header = reqHeaders
115106	googleapi.Expand(req.URL, map[string]string{
115107		"project": c.project,
115108		"region":  c.region,
115109	})
115110	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115111}
115112
115113// Do executes the "compute.regionCommitments.insert" call.
115114// Exactly one of *Operation or error will be non-nil. Any non-2xx
115115// status code is an error. Response headers are in either
115116// *Operation.ServerResponse.Header or (if a response was returned at
115117// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
115118// to check whether the returned error was because
115119// http.StatusNotModified was returned.
115120func (c *RegionCommitmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
115121	gensupport.SetOptions(c.urlParams_, opts...)
115122	res, err := c.doRequest("json")
115123	if res != nil && res.StatusCode == http.StatusNotModified {
115124		if res.Body != nil {
115125			res.Body.Close()
115126		}
115127		return nil, &googleapi.Error{
115128			Code:   res.StatusCode,
115129			Header: res.Header,
115130		}
115131	}
115132	if err != nil {
115133		return nil, err
115134	}
115135	defer googleapi.CloseBody(res)
115136	if err := googleapi.CheckResponse(res); err != nil {
115137		return nil, err
115138	}
115139	ret := &Operation{
115140		ServerResponse: googleapi.ServerResponse{
115141			Header:         res.Header,
115142			HTTPStatusCode: res.StatusCode,
115143		},
115144	}
115145	target := &ret
115146	if err := gensupport.DecodeResponse(target, res); err != nil {
115147		return nil, err
115148	}
115149	return ret, nil
115150	// {
115151	//   "description": "Creates a commitment in the specified project using the data included in the request.",
115152	//   "httpMethod": "POST",
115153	//   "id": "compute.regionCommitments.insert",
115154	//   "parameterOrder": [
115155	//     "project",
115156	//     "region"
115157	//   ],
115158	//   "parameters": {
115159	//     "project": {
115160	//       "description": "Project ID for this request.",
115161	//       "location": "path",
115162	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115163	//       "required": true,
115164	//       "type": "string"
115165	//     },
115166	//     "region": {
115167	//       "description": "Name of the region for this request.",
115168	//       "location": "path",
115169	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
115170	//       "required": true,
115171	//       "type": "string"
115172	//     },
115173	//     "requestId": {
115174	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
115175	//       "location": "query",
115176	//       "type": "string"
115177	//     }
115178	//   },
115179	//   "path": "projects/{project}/regions/{region}/commitments",
115180	//   "request": {
115181	//     "$ref": "Commitment"
115182	//   },
115183	//   "response": {
115184	//     "$ref": "Operation"
115185	//   },
115186	//   "scopes": [
115187	//     "https://www.googleapis.com/auth/cloud-platform",
115188	//     "https://www.googleapis.com/auth/compute"
115189	//   ]
115190	// }
115191
115192}
115193
115194// method id "compute.regionCommitments.list":
115195
115196type RegionCommitmentsListCall struct {
115197	s            *Service
115198	project      string
115199	region       string
115200	urlParams_   gensupport.URLParams
115201	ifNoneMatch_ string
115202	ctx_         context.Context
115203	header_      http.Header
115204}
115205
115206// List: Retrieves a list of commitments contained within the specified
115207// region.
115208//
115209// - project: Project ID for this request.
115210// - region: Name of the region for this request.
115211func (r *RegionCommitmentsService) List(project string, region string) *RegionCommitmentsListCall {
115212	c := &RegionCommitmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115213	c.project = project
115214	c.region = region
115215	return c
115216}
115217
115218// Filter sets the optional parameter "filter": A filter expression that
115219// filters resources listed in the response. The expression must specify
115220// the field name, a comparison operator, and the value that you want to
115221// use for filtering. The value must be a string, a number, or a
115222// boolean. The comparison operator must be either `=`, `!=`, `>`, or
115223// `<`.
115224//
115225// For example, if you are filtering Compute Engine instances, you can
115226// exclude instances named `example-instance` by specifying `name !=
115227// example-instance`.
115228//
115229// You can also filter nested fields. For example, you could specify
115230// `scheduling.automaticRestart = false` to include instances only if
115231// they are not scheduled for automatic restarts. You can use filtering
115232// on nested fields to filter based on resource labels.
115233//
115234// To filter on multiple expressions, provide each separate expression
115235// within parentheses. For example: ``` (scheduling.automaticRestart =
115236// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
115237// is an `AND` expression. However, you can include `AND` and `OR`
115238// expressions explicitly. For example: ``` (cpuPlatform = "Intel
115239// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
115240// (scheduling.automaticRestart = true) ```
115241func (c *RegionCommitmentsListCall) Filter(filter string) *RegionCommitmentsListCall {
115242	c.urlParams_.Set("filter", filter)
115243	return c
115244}
115245
115246// MaxResults sets the optional parameter "maxResults": The maximum
115247// number of results per page that should be returned. If the number of
115248// available results is larger than `maxResults`, Compute Engine returns
115249// a `nextPageToken` that can be used to get the next page of results in
115250// subsequent list requests. Acceptable values are `0` to `500`,
115251// inclusive. (Default: `500`)
115252func (c *RegionCommitmentsListCall) MaxResults(maxResults int64) *RegionCommitmentsListCall {
115253	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
115254	return c
115255}
115256
115257// OrderBy sets the optional parameter "orderBy": Sorts list results by
115258// a certain order. By default, results are returned in alphanumerical
115259// order based on the resource name.
115260//
115261// You can also sort results in descending order based on the creation
115262// timestamp using `orderBy="creationTimestamp desc". This sorts
115263// results based on the `creationTimestamp` field in reverse
115264// chronological order (newest result first). Use this to sort resources
115265// like operations so that the newest operation is returned
115266// first.
115267//
115268// Currently, only sorting by `name` or `creationTimestamp desc` is
115269// supported.
115270func (c *RegionCommitmentsListCall) OrderBy(orderBy string) *RegionCommitmentsListCall {
115271	c.urlParams_.Set("orderBy", orderBy)
115272	return c
115273}
115274
115275// PageToken sets the optional parameter "pageToken": Specifies a page
115276// token to use. Set `pageToken` to the `nextPageToken` returned by a
115277// previous list request to get the next page of results.
115278func (c *RegionCommitmentsListCall) PageToken(pageToken string) *RegionCommitmentsListCall {
115279	c.urlParams_.Set("pageToken", pageToken)
115280	return c
115281}
115282
115283// ReturnPartialSuccess sets the optional parameter
115284// "returnPartialSuccess": Opt-in for partial success behavior which
115285// provides partial results in case of failure. The default value is
115286// false.
115287func (c *RegionCommitmentsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionCommitmentsListCall {
115288	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
115289	return c
115290}
115291
115292// Fields allows partial responses to be retrieved. See
115293// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115294// for more information.
115295func (c *RegionCommitmentsListCall) Fields(s ...googleapi.Field) *RegionCommitmentsListCall {
115296	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115297	return c
115298}
115299
115300// IfNoneMatch sets the optional parameter which makes the operation
115301// fail if the object's ETag matches the given value. This is useful for
115302// getting updates only after the object has changed since the last
115303// request. Use googleapi.IsNotModified to check whether the response
115304// error from Do is the result of In-None-Match.
115305func (c *RegionCommitmentsListCall) IfNoneMatch(entityTag string) *RegionCommitmentsListCall {
115306	c.ifNoneMatch_ = entityTag
115307	return c
115308}
115309
115310// Context sets the context to be used in this call's Do method. Any
115311// pending HTTP request will be aborted if the provided context is
115312// canceled.
115313func (c *RegionCommitmentsListCall) Context(ctx context.Context) *RegionCommitmentsListCall {
115314	c.ctx_ = ctx
115315	return c
115316}
115317
115318// Header returns an http.Header that can be modified by the caller to
115319// add HTTP headers to the request.
115320func (c *RegionCommitmentsListCall) Header() http.Header {
115321	if c.header_ == nil {
115322		c.header_ = make(http.Header)
115323	}
115324	return c.header_
115325}
115326
115327func (c *RegionCommitmentsListCall) doRequest(alt string) (*http.Response, error) {
115328	reqHeaders := make(http.Header)
115329	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
115330	for k, v := range c.header_ {
115331		reqHeaders[k] = v
115332	}
115333	reqHeaders.Set("User-Agent", c.s.userAgent())
115334	if c.ifNoneMatch_ != "" {
115335		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
115336	}
115337	var body io.Reader = nil
115338	c.urlParams_.Set("alt", alt)
115339	c.urlParams_.Set("prettyPrint", "false")
115340	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/commitments")
115341	urls += "?" + c.urlParams_.Encode()
115342	req, err := http.NewRequest("GET", urls, body)
115343	if err != nil {
115344		return nil, err
115345	}
115346	req.Header = reqHeaders
115347	googleapi.Expand(req.URL, map[string]string{
115348		"project": c.project,
115349		"region":  c.region,
115350	})
115351	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115352}
115353
115354// Do executes the "compute.regionCommitments.list" call.
115355// Exactly one of *CommitmentList or error will be non-nil. Any non-2xx
115356// status code is an error. Response headers are in either
115357// *CommitmentList.ServerResponse.Header or (if a response was returned
115358// at all) in error.(*googleapi.Error).Header. Use
115359// googleapi.IsNotModified to check whether the returned error was
115360// because http.StatusNotModified was returned.
115361func (c *RegionCommitmentsListCall) Do(opts ...googleapi.CallOption) (*CommitmentList, error) {
115362	gensupport.SetOptions(c.urlParams_, opts...)
115363	res, err := c.doRequest("json")
115364	if res != nil && res.StatusCode == http.StatusNotModified {
115365		if res.Body != nil {
115366			res.Body.Close()
115367		}
115368		return nil, &googleapi.Error{
115369			Code:   res.StatusCode,
115370			Header: res.Header,
115371		}
115372	}
115373	if err != nil {
115374		return nil, err
115375	}
115376	defer googleapi.CloseBody(res)
115377	if err := googleapi.CheckResponse(res); err != nil {
115378		return nil, err
115379	}
115380	ret := &CommitmentList{
115381		ServerResponse: googleapi.ServerResponse{
115382			Header:         res.Header,
115383			HTTPStatusCode: res.StatusCode,
115384		},
115385	}
115386	target := &ret
115387	if err := gensupport.DecodeResponse(target, res); err != nil {
115388		return nil, err
115389	}
115390	return ret, nil
115391	// {
115392	//   "description": "Retrieves a list of commitments contained within the specified region.",
115393	//   "httpMethod": "GET",
115394	//   "id": "compute.regionCommitments.list",
115395	//   "parameterOrder": [
115396	//     "project",
115397	//     "region"
115398	//   ],
115399	//   "parameters": {
115400	//     "filter": {
115401	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
115402	//       "location": "query",
115403	//       "type": "string"
115404	//     },
115405	//     "maxResults": {
115406	//       "default": "500",
115407	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
115408	//       "format": "uint32",
115409	//       "location": "query",
115410	//       "minimum": "0",
115411	//       "type": "integer"
115412	//     },
115413	//     "orderBy": {
115414	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
115415	//       "location": "query",
115416	//       "type": "string"
115417	//     },
115418	//     "pageToken": {
115419	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
115420	//       "location": "query",
115421	//       "type": "string"
115422	//     },
115423	//     "project": {
115424	//       "description": "Project ID for this request.",
115425	//       "location": "path",
115426	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115427	//       "required": true,
115428	//       "type": "string"
115429	//     },
115430	//     "region": {
115431	//       "description": "Name of the region for this request.",
115432	//       "location": "path",
115433	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
115434	//       "required": true,
115435	//       "type": "string"
115436	//     },
115437	//     "returnPartialSuccess": {
115438	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
115439	//       "location": "query",
115440	//       "type": "boolean"
115441	//     }
115442	//   },
115443	//   "path": "projects/{project}/regions/{region}/commitments",
115444	//   "response": {
115445	//     "$ref": "CommitmentList"
115446	//   },
115447	//   "scopes": [
115448	//     "https://www.googleapis.com/auth/cloud-platform",
115449	//     "https://www.googleapis.com/auth/compute",
115450	//     "https://www.googleapis.com/auth/compute.readonly"
115451	//   ]
115452	// }
115453
115454}
115455
115456// Pages invokes f for each page of results.
115457// A non-nil error returned from f will halt the iteration.
115458// The provided context supersedes any context provided to the Context method.
115459func (c *RegionCommitmentsListCall) Pages(ctx context.Context, f func(*CommitmentList) error) error {
115460	c.ctx_ = ctx
115461	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
115462	for {
115463		x, err := c.Do()
115464		if err != nil {
115465			return err
115466		}
115467		if err := f(x); err != nil {
115468			return err
115469		}
115470		if x.NextPageToken == "" {
115471			return nil
115472		}
115473		c.PageToken(x.NextPageToken)
115474	}
115475}
115476
115477// method id "compute.regionDiskTypes.get":
115478
115479type RegionDiskTypesGetCall struct {
115480	s            *Service
115481	project      string
115482	region       string
115483	diskType     string
115484	urlParams_   gensupport.URLParams
115485	ifNoneMatch_ string
115486	ctx_         context.Context
115487	header_      http.Header
115488}
115489
115490// Get: Returns the specified regional disk type. Gets a list of
115491// available disk types by making a list() request.
115492//
115493// - diskType: Name of the disk type to return.
115494// - project: Project ID for this request.
115495// - region: The name of the region for this request.
115496func (r *RegionDiskTypesService) Get(project string, region string, diskType string) *RegionDiskTypesGetCall {
115497	c := &RegionDiskTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115498	c.project = project
115499	c.region = region
115500	c.diskType = diskType
115501	return c
115502}
115503
115504// Fields allows partial responses to be retrieved. See
115505// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115506// for more information.
115507func (c *RegionDiskTypesGetCall) Fields(s ...googleapi.Field) *RegionDiskTypesGetCall {
115508	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115509	return c
115510}
115511
115512// IfNoneMatch sets the optional parameter which makes the operation
115513// fail if the object's ETag matches the given value. This is useful for
115514// getting updates only after the object has changed since the last
115515// request. Use googleapi.IsNotModified to check whether the response
115516// error from Do is the result of In-None-Match.
115517func (c *RegionDiskTypesGetCall) IfNoneMatch(entityTag string) *RegionDiskTypesGetCall {
115518	c.ifNoneMatch_ = entityTag
115519	return c
115520}
115521
115522// Context sets the context to be used in this call's Do method. Any
115523// pending HTTP request will be aborted if the provided context is
115524// canceled.
115525func (c *RegionDiskTypesGetCall) Context(ctx context.Context) *RegionDiskTypesGetCall {
115526	c.ctx_ = ctx
115527	return c
115528}
115529
115530// Header returns an http.Header that can be modified by the caller to
115531// add HTTP headers to the request.
115532func (c *RegionDiskTypesGetCall) Header() http.Header {
115533	if c.header_ == nil {
115534		c.header_ = make(http.Header)
115535	}
115536	return c.header_
115537}
115538
115539func (c *RegionDiskTypesGetCall) doRequest(alt string) (*http.Response, error) {
115540	reqHeaders := make(http.Header)
115541	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
115542	for k, v := range c.header_ {
115543		reqHeaders[k] = v
115544	}
115545	reqHeaders.Set("User-Agent", c.s.userAgent())
115546	if c.ifNoneMatch_ != "" {
115547		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
115548	}
115549	var body io.Reader = nil
115550	c.urlParams_.Set("alt", alt)
115551	c.urlParams_.Set("prettyPrint", "false")
115552	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/diskTypes/{diskType}")
115553	urls += "?" + c.urlParams_.Encode()
115554	req, err := http.NewRequest("GET", urls, body)
115555	if err != nil {
115556		return nil, err
115557	}
115558	req.Header = reqHeaders
115559	googleapi.Expand(req.URL, map[string]string{
115560		"project":  c.project,
115561		"region":   c.region,
115562		"diskType": c.diskType,
115563	})
115564	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115565}
115566
115567// Do executes the "compute.regionDiskTypes.get" call.
115568// Exactly one of *DiskType or error will be non-nil. Any non-2xx status
115569// code is an error. Response headers are in either
115570// *DiskType.ServerResponse.Header or (if a response was returned at
115571// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
115572// to check whether the returned error was because
115573// http.StatusNotModified was returned.
115574func (c *RegionDiskTypesGetCall) Do(opts ...googleapi.CallOption) (*DiskType, error) {
115575	gensupport.SetOptions(c.urlParams_, opts...)
115576	res, err := c.doRequest("json")
115577	if res != nil && res.StatusCode == http.StatusNotModified {
115578		if res.Body != nil {
115579			res.Body.Close()
115580		}
115581		return nil, &googleapi.Error{
115582			Code:   res.StatusCode,
115583			Header: res.Header,
115584		}
115585	}
115586	if err != nil {
115587		return nil, err
115588	}
115589	defer googleapi.CloseBody(res)
115590	if err := googleapi.CheckResponse(res); err != nil {
115591		return nil, err
115592	}
115593	ret := &DiskType{
115594		ServerResponse: googleapi.ServerResponse{
115595			Header:         res.Header,
115596			HTTPStatusCode: res.StatusCode,
115597		},
115598	}
115599	target := &ret
115600	if err := gensupport.DecodeResponse(target, res); err != nil {
115601		return nil, err
115602	}
115603	return ret, nil
115604	// {
115605	//   "description": "Returns the specified regional disk type. Gets a list of available disk types by making a list() request.",
115606	//   "httpMethod": "GET",
115607	//   "id": "compute.regionDiskTypes.get",
115608	//   "parameterOrder": [
115609	//     "project",
115610	//     "region",
115611	//     "diskType"
115612	//   ],
115613	//   "parameters": {
115614	//     "diskType": {
115615	//       "description": "Name of the disk type to return.",
115616	//       "location": "path",
115617	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
115618	//       "required": true,
115619	//       "type": "string"
115620	//     },
115621	//     "project": {
115622	//       "description": "Project ID for this request.",
115623	//       "location": "path",
115624	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115625	//       "required": true,
115626	//       "type": "string"
115627	//     },
115628	//     "region": {
115629	//       "description": "The name of the region for this request.",
115630	//       "location": "path",
115631	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
115632	//       "required": true,
115633	//       "type": "string"
115634	//     }
115635	//   },
115636	//   "path": "projects/{project}/regions/{region}/diskTypes/{diskType}",
115637	//   "response": {
115638	//     "$ref": "DiskType"
115639	//   },
115640	//   "scopes": [
115641	//     "https://www.googleapis.com/auth/cloud-platform",
115642	//     "https://www.googleapis.com/auth/compute",
115643	//     "https://www.googleapis.com/auth/compute.readonly"
115644	//   ]
115645	// }
115646
115647}
115648
115649// method id "compute.regionDiskTypes.list":
115650
115651type RegionDiskTypesListCall struct {
115652	s            *Service
115653	project      string
115654	region       string
115655	urlParams_   gensupport.URLParams
115656	ifNoneMatch_ string
115657	ctx_         context.Context
115658	header_      http.Header
115659}
115660
115661// List: Retrieves a list of regional disk types available to the
115662// specified project.
115663//
115664// - project: Project ID for this request.
115665// - region: The name of the region for this request.
115666func (r *RegionDiskTypesService) List(project string, region string) *RegionDiskTypesListCall {
115667	c := &RegionDiskTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115668	c.project = project
115669	c.region = region
115670	return c
115671}
115672
115673// Filter sets the optional parameter "filter": A filter expression that
115674// filters resources listed in the response. The expression must specify
115675// the field name, a comparison operator, and the value that you want to
115676// use for filtering. The value must be a string, a number, or a
115677// boolean. The comparison operator must be either `=`, `!=`, `>`, or
115678// `<`.
115679//
115680// For example, if you are filtering Compute Engine instances, you can
115681// exclude instances named `example-instance` by specifying `name !=
115682// example-instance`.
115683//
115684// You can also filter nested fields. For example, you could specify
115685// `scheduling.automaticRestart = false` to include instances only if
115686// they are not scheduled for automatic restarts. You can use filtering
115687// on nested fields to filter based on resource labels.
115688//
115689// To filter on multiple expressions, provide each separate expression
115690// within parentheses. For example: ``` (scheduling.automaticRestart =
115691// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
115692// is an `AND` expression. However, you can include `AND` and `OR`
115693// expressions explicitly. For example: ``` (cpuPlatform = "Intel
115694// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
115695// (scheduling.automaticRestart = true) ```
115696func (c *RegionDiskTypesListCall) Filter(filter string) *RegionDiskTypesListCall {
115697	c.urlParams_.Set("filter", filter)
115698	return c
115699}
115700
115701// MaxResults sets the optional parameter "maxResults": The maximum
115702// number of results per page that should be returned. If the number of
115703// available results is larger than `maxResults`, Compute Engine returns
115704// a `nextPageToken` that can be used to get the next page of results in
115705// subsequent list requests. Acceptable values are `0` to `500`,
115706// inclusive. (Default: `500`)
115707func (c *RegionDiskTypesListCall) MaxResults(maxResults int64) *RegionDiskTypesListCall {
115708	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
115709	return c
115710}
115711
115712// OrderBy sets the optional parameter "orderBy": Sorts list results by
115713// a certain order. By default, results are returned in alphanumerical
115714// order based on the resource name.
115715//
115716// You can also sort results in descending order based on the creation
115717// timestamp using `orderBy="creationTimestamp desc". This sorts
115718// results based on the `creationTimestamp` field in reverse
115719// chronological order (newest result first). Use this to sort resources
115720// like operations so that the newest operation is returned
115721// first.
115722//
115723// Currently, only sorting by `name` or `creationTimestamp desc` is
115724// supported.
115725func (c *RegionDiskTypesListCall) OrderBy(orderBy string) *RegionDiskTypesListCall {
115726	c.urlParams_.Set("orderBy", orderBy)
115727	return c
115728}
115729
115730// PageToken sets the optional parameter "pageToken": Specifies a page
115731// token to use. Set `pageToken` to the `nextPageToken` returned by a
115732// previous list request to get the next page of results.
115733func (c *RegionDiskTypesListCall) PageToken(pageToken string) *RegionDiskTypesListCall {
115734	c.urlParams_.Set("pageToken", pageToken)
115735	return c
115736}
115737
115738// ReturnPartialSuccess sets the optional parameter
115739// "returnPartialSuccess": Opt-in for partial success behavior which
115740// provides partial results in case of failure. The default value is
115741// false.
115742func (c *RegionDiskTypesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionDiskTypesListCall {
115743	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
115744	return c
115745}
115746
115747// Fields allows partial responses to be retrieved. See
115748// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115749// for more information.
115750func (c *RegionDiskTypesListCall) Fields(s ...googleapi.Field) *RegionDiskTypesListCall {
115751	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115752	return c
115753}
115754
115755// IfNoneMatch sets the optional parameter which makes the operation
115756// fail if the object's ETag matches the given value. This is useful for
115757// getting updates only after the object has changed since the last
115758// request. Use googleapi.IsNotModified to check whether the response
115759// error from Do is the result of In-None-Match.
115760func (c *RegionDiskTypesListCall) IfNoneMatch(entityTag string) *RegionDiskTypesListCall {
115761	c.ifNoneMatch_ = entityTag
115762	return c
115763}
115764
115765// Context sets the context to be used in this call's Do method. Any
115766// pending HTTP request will be aborted if the provided context is
115767// canceled.
115768func (c *RegionDiskTypesListCall) Context(ctx context.Context) *RegionDiskTypesListCall {
115769	c.ctx_ = ctx
115770	return c
115771}
115772
115773// Header returns an http.Header that can be modified by the caller to
115774// add HTTP headers to the request.
115775func (c *RegionDiskTypesListCall) Header() http.Header {
115776	if c.header_ == nil {
115777		c.header_ = make(http.Header)
115778	}
115779	return c.header_
115780}
115781
115782func (c *RegionDiskTypesListCall) doRequest(alt string) (*http.Response, error) {
115783	reqHeaders := make(http.Header)
115784	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
115785	for k, v := range c.header_ {
115786		reqHeaders[k] = v
115787	}
115788	reqHeaders.Set("User-Agent", c.s.userAgent())
115789	if c.ifNoneMatch_ != "" {
115790		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
115791	}
115792	var body io.Reader = nil
115793	c.urlParams_.Set("alt", alt)
115794	c.urlParams_.Set("prettyPrint", "false")
115795	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/diskTypes")
115796	urls += "?" + c.urlParams_.Encode()
115797	req, err := http.NewRequest("GET", urls, body)
115798	if err != nil {
115799		return nil, err
115800	}
115801	req.Header = reqHeaders
115802	googleapi.Expand(req.URL, map[string]string{
115803		"project": c.project,
115804		"region":  c.region,
115805	})
115806	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115807}
115808
115809// Do executes the "compute.regionDiskTypes.list" call.
115810// Exactly one of *RegionDiskTypeList or error will be non-nil. Any
115811// non-2xx status code is an error. Response headers are in either
115812// *RegionDiskTypeList.ServerResponse.Header or (if a response was
115813// returned at all) in error.(*googleapi.Error).Header. Use
115814// googleapi.IsNotModified to check whether the returned error was
115815// because http.StatusNotModified was returned.
115816func (c *RegionDiskTypesListCall) Do(opts ...googleapi.CallOption) (*RegionDiskTypeList, error) {
115817	gensupport.SetOptions(c.urlParams_, opts...)
115818	res, err := c.doRequest("json")
115819	if res != nil && res.StatusCode == http.StatusNotModified {
115820		if res.Body != nil {
115821			res.Body.Close()
115822		}
115823		return nil, &googleapi.Error{
115824			Code:   res.StatusCode,
115825			Header: res.Header,
115826		}
115827	}
115828	if err != nil {
115829		return nil, err
115830	}
115831	defer googleapi.CloseBody(res)
115832	if err := googleapi.CheckResponse(res); err != nil {
115833		return nil, err
115834	}
115835	ret := &RegionDiskTypeList{
115836		ServerResponse: googleapi.ServerResponse{
115837			Header:         res.Header,
115838			HTTPStatusCode: res.StatusCode,
115839		},
115840	}
115841	target := &ret
115842	if err := gensupport.DecodeResponse(target, res); err != nil {
115843		return nil, err
115844	}
115845	return ret, nil
115846	// {
115847	//   "description": "Retrieves a list of regional disk types available to the specified project.",
115848	//   "httpMethod": "GET",
115849	//   "id": "compute.regionDiskTypes.list",
115850	//   "parameterOrder": [
115851	//     "project",
115852	//     "region"
115853	//   ],
115854	//   "parameters": {
115855	//     "filter": {
115856	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
115857	//       "location": "query",
115858	//       "type": "string"
115859	//     },
115860	//     "maxResults": {
115861	//       "default": "500",
115862	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
115863	//       "format": "uint32",
115864	//       "location": "query",
115865	//       "minimum": "0",
115866	//       "type": "integer"
115867	//     },
115868	//     "orderBy": {
115869	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
115870	//       "location": "query",
115871	//       "type": "string"
115872	//     },
115873	//     "pageToken": {
115874	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
115875	//       "location": "query",
115876	//       "type": "string"
115877	//     },
115878	//     "project": {
115879	//       "description": "Project ID for this request.",
115880	//       "location": "path",
115881	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115882	//       "required": true,
115883	//       "type": "string"
115884	//     },
115885	//     "region": {
115886	//       "description": "The name of the region for this request.",
115887	//       "location": "path",
115888	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
115889	//       "required": true,
115890	//       "type": "string"
115891	//     },
115892	//     "returnPartialSuccess": {
115893	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
115894	//       "location": "query",
115895	//       "type": "boolean"
115896	//     }
115897	//   },
115898	//   "path": "projects/{project}/regions/{region}/diskTypes",
115899	//   "response": {
115900	//     "$ref": "RegionDiskTypeList"
115901	//   },
115902	//   "scopes": [
115903	//     "https://www.googleapis.com/auth/cloud-platform",
115904	//     "https://www.googleapis.com/auth/compute",
115905	//     "https://www.googleapis.com/auth/compute.readonly"
115906	//   ]
115907	// }
115908
115909}
115910
115911// Pages invokes f for each page of results.
115912// A non-nil error returned from f will halt the iteration.
115913// The provided context supersedes any context provided to the Context method.
115914func (c *RegionDiskTypesListCall) Pages(ctx context.Context, f func(*RegionDiskTypeList) error) error {
115915	c.ctx_ = ctx
115916	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
115917	for {
115918		x, err := c.Do()
115919		if err != nil {
115920			return err
115921		}
115922		if err := f(x); err != nil {
115923			return err
115924		}
115925		if x.NextPageToken == "" {
115926			return nil
115927		}
115928		c.PageToken(x.NextPageToken)
115929	}
115930}
115931
115932// method id "compute.regionDisks.addResourcePolicies":
115933
115934type RegionDisksAddResourcePoliciesCall struct {
115935	s                                     *Service
115936	project                               string
115937	region                                string
115938	disk                                  string
115939	regiondisksaddresourcepoliciesrequest *RegionDisksAddResourcePoliciesRequest
115940	urlParams_                            gensupport.URLParams
115941	ctx_                                  context.Context
115942	header_                               http.Header
115943}
115944
115945// AddResourcePolicies: Adds existing resource policies to a regional
115946// disk. You can only add one policy which will be applied to this disk
115947// for scheduling snapshot creation.
115948//
115949// - disk: The disk name for this request.
115950// - project: Project ID for this request.
115951// - region: The name of the region for this request.
115952func (r *RegionDisksService) AddResourcePolicies(project string, region string, disk string, regiondisksaddresourcepoliciesrequest *RegionDisksAddResourcePoliciesRequest) *RegionDisksAddResourcePoliciesCall {
115953	c := &RegionDisksAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115954	c.project = project
115955	c.region = region
115956	c.disk = disk
115957	c.regiondisksaddresourcepoliciesrequest = regiondisksaddresourcepoliciesrequest
115958	return c
115959}
115960
115961// RequestId sets the optional parameter "requestId": An optional
115962// request ID to identify requests. Specify a unique request ID so that
115963// if you must retry your request, the server will know to ignore the
115964// request if it has already been completed.
115965//
115966// For example, consider a situation where you make an initial request
115967// and the request times out. If you make the request again with the
115968// same request ID, the server can check if original operation with the
115969// same request ID was received, and if so, will ignore the second
115970// request. This prevents clients from accidentally creating duplicate
115971// commitments.
115972//
115973// The request ID must be a valid UUID with the exception that zero UUID
115974// is not supported (00000000-0000-0000-0000-000000000000).
115975func (c *RegionDisksAddResourcePoliciesCall) RequestId(requestId string) *RegionDisksAddResourcePoliciesCall {
115976	c.urlParams_.Set("requestId", requestId)
115977	return c
115978}
115979
115980// Fields allows partial responses to be retrieved. See
115981// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115982// for more information.
115983func (c *RegionDisksAddResourcePoliciesCall) Fields(s ...googleapi.Field) *RegionDisksAddResourcePoliciesCall {
115984	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115985	return c
115986}
115987
115988// Context sets the context to be used in this call's Do method. Any
115989// pending HTTP request will be aborted if the provided context is
115990// canceled.
115991func (c *RegionDisksAddResourcePoliciesCall) Context(ctx context.Context) *RegionDisksAddResourcePoliciesCall {
115992	c.ctx_ = ctx
115993	return c
115994}
115995
115996// Header returns an http.Header that can be modified by the caller to
115997// add HTTP headers to the request.
115998func (c *RegionDisksAddResourcePoliciesCall) Header() http.Header {
115999	if c.header_ == nil {
116000		c.header_ = make(http.Header)
116001	}
116002	return c.header_
116003}
116004
116005func (c *RegionDisksAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
116006	reqHeaders := make(http.Header)
116007	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
116008	for k, v := range c.header_ {
116009		reqHeaders[k] = v
116010	}
116011	reqHeaders.Set("User-Agent", c.s.userAgent())
116012	var body io.Reader = nil
116013	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiondisksaddresourcepoliciesrequest)
116014	if err != nil {
116015		return nil, err
116016	}
116017	reqHeaders.Set("Content-Type", "application/json")
116018	c.urlParams_.Set("alt", alt)
116019	c.urlParams_.Set("prettyPrint", "false")
116020	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}/addResourcePolicies")
116021	urls += "?" + c.urlParams_.Encode()
116022	req, err := http.NewRequest("POST", urls, body)
116023	if err != nil {
116024		return nil, err
116025	}
116026	req.Header = reqHeaders
116027	googleapi.Expand(req.URL, map[string]string{
116028		"project": c.project,
116029		"region":  c.region,
116030		"disk":    c.disk,
116031	})
116032	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116033}
116034
116035// Do executes the "compute.regionDisks.addResourcePolicies" call.
116036// Exactly one of *Operation or error will be non-nil. Any non-2xx
116037// status code is an error. Response headers are in either
116038// *Operation.ServerResponse.Header or (if a response was returned at
116039// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
116040// to check whether the returned error was because
116041// http.StatusNotModified was returned.
116042func (c *RegionDisksAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
116043	gensupport.SetOptions(c.urlParams_, opts...)
116044	res, err := c.doRequest("json")
116045	if res != nil && res.StatusCode == http.StatusNotModified {
116046		if res.Body != nil {
116047			res.Body.Close()
116048		}
116049		return nil, &googleapi.Error{
116050			Code:   res.StatusCode,
116051			Header: res.Header,
116052		}
116053	}
116054	if err != nil {
116055		return nil, err
116056	}
116057	defer googleapi.CloseBody(res)
116058	if err := googleapi.CheckResponse(res); err != nil {
116059		return nil, err
116060	}
116061	ret := &Operation{
116062		ServerResponse: googleapi.ServerResponse{
116063			Header:         res.Header,
116064			HTTPStatusCode: res.StatusCode,
116065		},
116066	}
116067	target := &ret
116068	if err := gensupport.DecodeResponse(target, res); err != nil {
116069		return nil, err
116070	}
116071	return ret, nil
116072	// {
116073	//   "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.",
116074	//   "httpMethod": "POST",
116075	//   "id": "compute.regionDisks.addResourcePolicies",
116076	//   "parameterOrder": [
116077	//     "project",
116078	//     "region",
116079	//     "disk"
116080	//   ],
116081	//   "parameters": {
116082	//     "disk": {
116083	//       "description": "The disk name for this request.",
116084	//       "location": "path",
116085	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
116086	//       "required": true,
116087	//       "type": "string"
116088	//     },
116089	//     "project": {
116090	//       "description": "Project ID for this request.",
116091	//       "location": "path",
116092	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116093	//       "required": true,
116094	//       "type": "string"
116095	//     },
116096	//     "region": {
116097	//       "description": "The name of the region for this request.",
116098	//       "location": "path",
116099	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
116100	//       "required": true,
116101	//       "type": "string"
116102	//     },
116103	//     "requestId": {
116104	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
116105	//       "location": "query",
116106	//       "type": "string"
116107	//     }
116108	//   },
116109	//   "path": "projects/{project}/regions/{region}/disks/{disk}/addResourcePolicies",
116110	//   "request": {
116111	//     "$ref": "RegionDisksAddResourcePoliciesRequest"
116112	//   },
116113	//   "response": {
116114	//     "$ref": "Operation"
116115	//   },
116116	//   "scopes": [
116117	//     "https://www.googleapis.com/auth/cloud-platform",
116118	//     "https://www.googleapis.com/auth/compute"
116119	//   ]
116120	// }
116121
116122}
116123
116124// method id "compute.regionDisks.createSnapshot":
116125
116126type RegionDisksCreateSnapshotCall struct {
116127	s          *Service
116128	project    string
116129	region     string
116130	disk       string
116131	snapshot   *Snapshot
116132	urlParams_ gensupport.URLParams
116133	ctx_       context.Context
116134	header_    http.Header
116135}
116136
116137// CreateSnapshot: Creates a snapshot of this regional disk.
116138//
116139// - disk: Name of the regional persistent disk to snapshot.
116140// - project: Project ID for this request.
116141// - region: Name of the region for this request.
116142func (r *RegionDisksService) CreateSnapshot(project string, region string, disk string, snapshot *Snapshot) *RegionDisksCreateSnapshotCall {
116143	c := &RegionDisksCreateSnapshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116144	c.project = project
116145	c.region = region
116146	c.disk = disk
116147	c.snapshot = snapshot
116148	return c
116149}
116150
116151// RequestId sets the optional parameter "requestId": An optional
116152// request ID to identify requests. Specify a unique request ID so that
116153// if you must retry your request, the server will know to ignore the
116154// request if it has already been completed.
116155//
116156// For example, consider a situation where you make an initial request
116157// and the request times out. If you make the request again with the
116158// same request ID, the server can check if original operation with the
116159// same request ID was received, and if so, will ignore the second
116160// request. This prevents clients from accidentally creating duplicate
116161// commitments.
116162//
116163// The request ID must be a valid UUID with the exception that zero UUID
116164// is not supported (00000000-0000-0000-0000-000000000000).
116165func (c *RegionDisksCreateSnapshotCall) RequestId(requestId string) *RegionDisksCreateSnapshotCall {
116166	c.urlParams_.Set("requestId", requestId)
116167	return c
116168}
116169
116170// Fields allows partial responses to be retrieved. See
116171// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116172// for more information.
116173func (c *RegionDisksCreateSnapshotCall) Fields(s ...googleapi.Field) *RegionDisksCreateSnapshotCall {
116174	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116175	return c
116176}
116177
116178// Context sets the context to be used in this call's Do method. Any
116179// pending HTTP request will be aborted if the provided context is
116180// canceled.
116181func (c *RegionDisksCreateSnapshotCall) Context(ctx context.Context) *RegionDisksCreateSnapshotCall {
116182	c.ctx_ = ctx
116183	return c
116184}
116185
116186// Header returns an http.Header that can be modified by the caller to
116187// add HTTP headers to the request.
116188func (c *RegionDisksCreateSnapshotCall) Header() http.Header {
116189	if c.header_ == nil {
116190		c.header_ = make(http.Header)
116191	}
116192	return c.header_
116193}
116194
116195func (c *RegionDisksCreateSnapshotCall) doRequest(alt string) (*http.Response, error) {
116196	reqHeaders := make(http.Header)
116197	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
116198	for k, v := range c.header_ {
116199		reqHeaders[k] = v
116200	}
116201	reqHeaders.Set("User-Agent", c.s.userAgent())
116202	var body io.Reader = nil
116203	body, err := googleapi.WithoutDataWrapper.JSONReader(c.snapshot)
116204	if err != nil {
116205		return nil, err
116206	}
116207	reqHeaders.Set("Content-Type", "application/json")
116208	c.urlParams_.Set("alt", alt)
116209	c.urlParams_.Set("prettyPrint", "false")
116210	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}/createSnapshot")
116211	urls += "?" + c.urlParams_.Encode()
116212	req, err := http.NewRequest("POST", urls, body)
116213	if err != nil {
116214		return nil, err
116215	}
116216	req.Header = reqHeaders
116217	googleapi.Expand(req.URL, map[string]string{
116218		"project": c.project,
116219		"region":  c.region,
116220		"disk":    c.disk,
116221	})
116222	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116223}
116224
116225// Do executes the "compute.regionDisks.createSnapshot" call.
116226// Exactly one of *Operation or error will be non-nil. Any non-2xx
116227// status code is an error. Response headers are in either
116228// *Operation.ServerResponse.Header or (if a response was returned at
116229// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
116230// to check whether the returned error was because
116231// http.StatusNotModified was returned.
116232func (c *RegionDisksCreateSnapshotCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
116233	gensupport.SetOptions(c.urlParams_, opts...)
116234	res, err := c.doRequest("json")
116235	if res != nil && res.StatusCode == http.StatusNotModified {
116236		if res.Body != nil {
116237			res.Body.Close()
116238		}
116239		return nil, &googleapi.Error{
116240			Code:   res.StatusCode,
116241			Header: res.Header,
116242		}
116243	}
116244	if err != nil {
116245		return nil, err
116246	}
116247	defer googleapi.CloseBody(res)
116248	if err := googleapi.CheckResponse(res); err != nil {
116249		return nil, err
116250	}
116251	ret := &Operation{
116252		ServerResponse: googleapi.ServerResponse{
116253			Header:         res.Header,
116254			HTTPStatusCode: res.StatusCode,
116255		},
116256	}
116257	target := &ret
116258	if err := gensupport.DecodeResponse(target, res); err != nil {
116259		return nil, err
116260	}
116261	return ret, nil
116262	// {
116263	//   "description": "Creates a snapshot of this regional disk.",
116264	//   "httpMethod": "POST",
116265	//   "id": "compute.regionDisks.createSnapshot",
116266	//   "parameterOrder": [
116267	//     "project",
116268	//     "region",
116269	//     "disk"
116270	//   ],
116271	//   "parameters": {
116272	//     "disk": {
116273	//       "description": "Name of the regional persistent disk to snapshot.",
116274	//       "location": "path",
116275	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
116276	//       "required": true,
116277	//       "type": "string"
116278	//     },
116279	//     "project": {
116280	//       "description": "Project ID for this request.",
116281	//       "location": "path",
116282	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116283	//       "required": true,
116284	//       "type": "string"
116285	//     },
116286	//     "region": {
116287	//       "description": "Name of the region for this request.",
116288	//       "location": "path",
116289	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
116290	//       "required": true,
116291	//       "type": "string"
116292	//     },
116293	//     "requestId": {
116294	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
116295	//       "location": "query",
116296	//       "type": "string"
116297	//     }
116298	//   },
116299	//   "path": "projects/{project}/regions/{region}/disks/{disk}/createSnapshot",
116300	//   "request": {
116301	//     "$ref": "Snapshot"
116302	//   },
116303	//   "response": {
116304	//     "$ref": "Operation"
116305	//   },
116306	//   "scopes": [
116307	//     "https://www.googleapis.com/auth/cloud-platform",
116308	//     "https://www.googleapis.com/auth/compute"
116309	//   ]
116310	// }
116311
116312}
116313
116314// method id "compute.regionDisks.delete":
116315
116316type RegionDisksDeleteCall struct {
116317	s          *Service
116318	project    string
116319	region     string
116320	disk       string
116321	urlParams_ gensupport.URLParams
116322	ctx_       context.Context
116323	header_    http.Header
116324}
116325
116326// Delete: Deletes the specified regional persistent disk. Deleting a
116327// regional disk removes all the replicas of its data permanently and is
116328// irreversible. However, deleting a disk does not delete any snapshots
116329// previously made from the disk. You must separately delete snapshots.
116330//
116331// - disk: Name of the regional persistent disk to delete.
116332// - project: Project ID for this request.
116333// - region: Name of the region for this request.
116334func (r *RegionDisksService) Delete(project string, region string, disk string) *RegionDisksDeleteCall {
116335	c := &RegionDisksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116336	c.project = project
116337	c.region = region
116338	c.disk = disk
116339	return c
116340}
116341
116342// RequestId sets the optional parameter "requestId": An optional
116343// request ID to identify requests. Specify a unique request ID so that
116344// if you must retry your request, the server will know to ignore the
116345// request if it has already been completed.
116346//
116347// For example, consider a situation where you make an initial request
116348// and the request times out. If you make the request again with the
116349// same request ID, the server can check if original operation with the
116350// same request ID was received, and if so, will ignore the second
116351// request. This prevents clients from accidentally creating duplicate
116352// commitments.
116353//
116354// The request ID must be a valid UUID with the exception that zero UUID
116355// is not supported (00000000-0000-0000-0000-000000000000).
116356func (c *RegionDisksDeleteCall) RequestId(requestId string) *RegionDisksDeleteCall {
116357	c.urlParams_.Set("requestId", requestId)
116358	return c
116359}
116360
116361// Fields allows partial responses to be retrieved. See
116362// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116363// for more information.
116364func (c *RegionDisksDeleteCall) Fields(s ...googleapi.Field) *RegionDisksDeleteCall {
116365	c.urlParams_.Set("fields", googleapi.CombineFields(s))
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 *RegionDisksDeleteCall) Context(ctx context.Context) *RegionDisksDeleteCall {
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 *RegionDisksDeleteCall) Header() http.Header {
116380	if c.header_ == nil {
116381		c.header_ = make(http.Header)
116382	}
116383	return c.header_
116384}
116385
116386func (c *RegionDisksDeleteCall) 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	var body io.Reader = nil
116394	c.urlParams_.Set("alt", alt)
116395	c.urlParams_.Set("prettyPrint", "false")
116396	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}")
116397	urls += "?" + c.urlParams_.Encode()
116398	req, err := http.NewRequest("DELETE", urls, body)
116399	if err != nil {
116400		return nil, err
116401	}
116402	req.Header = reqHeaders
116403	googleapi.Expand(req.URL, map[string]string{
116404		"project": c.project,
116405		"region":  c.region,
116406		"disk":    c.disk,
116407	})
116408	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116409}
116410
116411// Do executes the "compute.regionDisks.delete" call.
116412// Exactly one of *Operation or error will be non-nil. Any non-2xx
116413// status code is an error. Response headers are in either
116414// *Operation.ServerResponse.Header or (if a response was returned at
116415// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
116416// to check whether the returned error was because
116417// http.StatusNotModified was returned.
116418func (c *RegionDisksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
116419	gensupport.SetOptions(c.urlParams_, opts...)
116420	res, err := c.doRequest("json")
116421	if res != nil && res.StatusCode == http.StatusNotModified {
116422		if res.Body != nil {
116423			res.Body.Close()
116424		}
116425		return nil, &googleapi.Error{
116426			Code:   res.StatusCode,
116427			Header: res.Header,
116428		}
116429	}
116430	if err != nil {
116431		return nil, err
116432	}
116433	defer googleapi.CloseBody(res)
116434	if err := googleapi.CheckResponse(res); err != nil {
116435		return nil, err
116436	}
116437	ret := &Operation{
116438		ServerResponse: googleapi.ServerResponse{
116439			Header:         res.Header,
116440			HTTPStatusCode: res.StatusCode,
116441		},
116442	}
116443	target := &ret
116444	if err := gensupport.DecodeResponse(target, res); err != nil {
116445		return nil, err
116446	}
116447	return ret, nil
116448	// {
116449	//   "description": "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.",
116450	//   "httpMethod": "DELETE",
116451	//   "id": "compute.regionDisks.delete",
116452	//   "parameterOrder": [
116453	//     "project",
116454	//     "region",
116455	//     "disk"
116456	//   ],
116457	//   "parameters": {
116458	//     "disk": {
116459	//       "description": "Name of the regional persistent disk to delete.",
116460	//       "location": "path",
116461	//       "required": true,
116462	//       "type": "string"
116463	//     },
116464	//     "project": {
116465	//       "description": "Project ID for this request.",
116466	//       "location": "path",
116467	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116468	//       "required": true,
116469	//       "type": "string"
116470	//     },
116471	//     "region": {
116472	//       "description": "Name of the region for this request.",
116473	//       "location": "path",
116474	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
116475	//       "required": true,
116476	//       "type": "string"
116477	//     },
116478	//     "requestId": {
116479	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
116480	//       "location": "query",
116481	//       "type": "string"
116482	//     }
116483	//   },
116484	//   "path": "projects/{project}/regions/{region}/disks/{disk}",
116485	//   "response": {
116486	//     "$ref": "Operation"
116487	//   },
116488	//   "scopes": [
116489	//     "https://www.googleapis.com/auth/cloud-platform",
116490	//     "https://www.googleapis.com/auth/compute"
116491	//   ]
116492	// }
116493
116494}
116495
116496// method id "compute.regionDisks.get":
116497
116498type RegionDisksGetCall struct {
116499	s            *Service
116500	project      string
116501	region       string
116502	disk         string
116503	urlParams_   gensupport.URLParams
116504	ifNoneMatch_ string
116505	ctx_         context.Context
116506	header_      http.Header
116507}
116508
116509// Get: Returns a specified regional persistent disk.
116510//
116511// - disk: Name of the regional persistent disk to return.
116512// - project: Project ID for this request.
116513// - region: Name of the region for this request.
116514func (r *RegionDisksService) Get(project string, region string, disk string) *RegionDisksGetCall {
116515	c := &RegionDisksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116516	c.project = project
116517	c.region = region
116518	c.disk = disk
116519	return c
116520}
116521
116522// Fields allows partial responses to be retrieved. See
116523// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116524// for more information.
116525func (c *RegionDisksGetCall) Fields(s ...googleapi.Field) *RegionDisksGetCall {
116526	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116527	return c
116528}
116529
116530// IfNoneMatch sets the optional parameter which makes the operation
116531// fail if the object's ETag matches the given value. This is useful for
116532// getting updates only after the object has changed since the last
116533// request. Use googleapi.IsNotModified to check whether the response
116534// error from Do is the result of In-None-Match.
116535func (c *RegionDisksGetCall) IfNoneMatch(entityTag string) *RegionDisksGetCall {
116536	c.ifNoneMatch_ = entityTag
116537	return c
116538}
116539
116540// Context sets the context to be used in this call's Do method. Any
116541// pending HTTP request will be aborted if the provided context is
116542// canceled.
116543func (c *RegionDisksGetCall) Context(ctx context.Context) *RegionDisksGetCall {
116544	c.ctx_ = ctx
116545	return c
116546}
116547
116548// Header returns an http.Header that can be modified by the caller to
116549// add HTTP headers to the request.
116550func (c *RegionDisksGetCall) Header() http.Header {
116551	if c.header_ == nil {
116552		c.header_ = make(http.Header)
116553	}
116554	return c.header_
116555}
116556
116557func (c *RegionDisksGetCall) doRequest(alt string) (*http.Response, error) {
116558	reqHeaders := make(http.Header)
116559	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
116560	for k, v := range c.header_ {
116561		reqHeaders[k] = v
116562	}
116563	reqHeaders.Set("User-Agent", c.s.userAgent())
116564	if c.ifNoneMatch_ != "" {
116565		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
116566	}
116567	var body io.Reader = nil
116568	c.urlParams_.Set("alt", alt)
116569	c.urlParams_.Set("prettyPrint", "false")
116570	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}")
116571	urls += "?" + c.urlParams_.Encode()
116572	req, err := http.NewRequest("GET", urls, body)
116573	if err != nil {
116574		return nil, err
116575	}
116576	req.Header = reqHeaders
116577	googleapi.Expand(req.URL, map[string]string{
116578		"project": c.project,
116579		"region":  c.region,
116580		"disk":    c.disk,
116581	})
116582	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116583}
116584
116585// Do executes the "compute.regionDisks.get" call.
116586// Exactly one of *Disk or error will be non-nil. Any non-2xx status
116587// code is an error. Response headers are in either
116588// *Disk.ServerResponse.Header or (if a response was returned at all) in
116589// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
116590// whether the returned error was because http.StatusNotModified was
116591// returned.
116592func (c *RegionDisksGetCall) Do(opts ...googleapi.CallOption) (*Disk, error) {
116593	gensupport.SetOptions(c.urlParams_, opts...)
116594	res, err := c.doRequest("json")
116595	if res != nil && res.StatusCode == http.StatusNotModified {
116596		if res.Body != nil {
116597			res.Body.Close()
116598		}
116599		return nil, &googleapi.Error{
116600			Code:   res.StatusCode,
116601			Header: res.Header,
116602		}
116603	}
116604	if err != nil {
116605		return nil, err
116606	}
116607	defer googleapi.CloseBody(res)
116608	if err := googleapi.CheckResponse(res); err != nil {
116609		return nil, err
116610	}
116611	ret := &Disk{
116612		ServerResponse: googleapi.ServerResponse{
116613			Header:         res.Header,
116614			HTTPStatusCode: res.StatusCode,
116615		},
116616	}
116617	target := &ret
116618	if err := gensupport.DecodeResponse(target, res); err != nil {
116619		return nil, err
116620	}
116621	return ret, nil
116622	// {
116623	//   "description": "Returns a specified regional persistent disk.",
116624	//   "httpMethod": "GET",
116625	//   "id": "compute.regionDisks.get",
116626	//   "parameterOrder": [
116627	//     "project",
116628	//     "region",
116629	//     "disk"
116630	//   ],
116631	//   "parameters": {
116632	//     "disk": {
116633	//       "description": "Name of the regional persistent disk to return.",
116634	//       "location": "path",
116635	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
116636	//       "required": true,
116637	//       "type": "string"
116638	//     },
116639	//     "project": {
116640	//       "description": "Project ID for this request.",
116641	//       "location": "path",
116642	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116643	//       "required": true,
116644	//       "type": "string"
116645	//     },
116646	//     "region": {
116647	//       "description": "Name of the region for this request.",
116648	//       "location": "path",
116649	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
116650	//       "required": true,
116651	//       "type": "string"
116652	//     }
116653	//   },
116654	//   "path": "projects/{project}/regions/{region}/disks/{disk}",
116655	//   "response": {
116656	//     "$ref": "Disk"
116657	//   },
116658	//   "scopes": [
116659	//     "https://www.googleapis.com/auth/cloud-platform",
116660	//     "https://www.googleapis.com/auth/compute",
116661	//     "https://www.googleapis.com/auth/compute.readonly"
116662	//   ]
116663	// }
116664
116665}
116666
116667// method id "compute.regionDisks.getIamPolicy":
116668
116669type RegionDisksGetIamPolicyCall struct {
116670	s            *Service
116671	project      string
116672	region       string
116673	resource     string
116674	urlParams_   gensupport.URLParams
116675	ifNoneMatch_ string
116676	ctx_         context.Context
116677	header_      http.Header
116678}
116679
116680// GetIamPolicy: Gets the access control policy for a resource. May be
116681// empty if no such policy or resource exists.
116682//
116683// - project: Project ID for this request.
116684// - region: The name of the region for this request.
116685// - resource: Name or id of the resource for this request.
116686func (r *RegionDisksService) GetIamPolicy(project string, region string, resource string) *RegionDisksGetIamPolicyCall {
116687	c := &RegionDisksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116688	c.project = project
116689	c.region = region
116690	c.resource = resource
116691	return c
116692}
116693
116694// OptionsRequestedPolicyVersion sets the optional parameter
116695// "optionsRequestedPolicyVersion": Requested IAM Policy version.
116696func (c *RegionDisksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *RegionDisksGetIamPolicyCall {
116697	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
116698	return c
116699}
116700
116701// Fields allows partial responses to be retrieved. See
116702// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116703// for more information.
116704func (c *RegionDisksGetIamPolicyCall) Fields(s ...googleapi.Field) *RegionDisksGetIamPolicyCall {
116705	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116706	return c
116707}
116708
116709// IfNoneMatch sets the optional parameter which makes the operation
116710// fail if the object's ETag matches the given value. This is useful for
116711// getting updates only after the object has changed since the last
116712// request. Use googleapi.IsNotModified to check whether the response
116713// error from Do is the result of In-None-Match.
116714func (c *RegionDisksGetIamPolicyCall) IfNoneMatch(entityTag string) *RegionDisksGetIamPolicyCall {
116715	c.ifNoneMatch_ = entityTag
116716	return c
116717}
116718
116719// Context sets the context to be used in this call's Do method. Any
116720// pending HTTP request will be aborted if the provided context is
116721// canceled.
116722func (c *RegionDisksGetIamPolicyCall) Context(ctx context.Context) *RegionDisksGetIamPolicyCall {
116723	c.ctx_ = ctx
116724	return c
116725}
116726
116727// Header returns an http.Header that can be modified by the caller to
116728// add HTTP headers to the request.
116729func (c *RegionDisksGetIamPolicyCall) Header() http.Header {
116730	if c.header_ == nil {
116731		c.header_ = make(http.Header)
116732	}
116733	return c.header_
116734}
116735
116736func (c *RegionDisksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
116737	reqHeaders := make(http.Header)
116738	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
116739	for k, v := range c.header_ {
116740		reqHeaders[k] = v
116741	}
116742	reqHeaders.Set("User-Agent", c.s.userAgent())
116743	if c.ifNoneMatch_ != "" {
116744		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
116745	}
116746	var body io.Reader = nil
116747	c.urlParams_.Set("alt", alt)
116748	c.urlParams_.Set("prettyPrint", "false")
116749	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{resource}/getIamPolicy")
116750	urls += "?" + c.urlParams_.Encode()
116751	req, err := http.NewRequest("GET", urls, body)
116752	if err != nil {
116753		return nil, err
116754	}
116755	req.Header = reqHeaders
116756	googleapi.Expand(req.URL, map[string]string{
116757		"project":  c.project,
116758		"region":   c.region,
116759		"resource": c.resource,
116760	})
116761	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116762}
116763
116764// Do executes the "compute.regionDisks.getIamPolicy" call.
116765// Exactly one of *Policy or error will be non-nil. Any non-2xx status
116766// code is an error. Response headers are in either
116767// *Policy.ServerResponse.Header or (if a response was returned at all)
116768// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
116769// check whether the returned error was because http.StatusNotModified
116770// was returned.
116771func (c *RegionDisksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
116772	gensupport.SetOptions(c.urlParams_, opts...)
116773	res, err := c.doRequest("json")
116774	if res != nil && res.StatusCode == http.StatusNotModified {
116775		if res.Body != nil {
116776			res.Body.Close()
116777		}
116778		return nil, &googleapi.Error{
116779			Code:   res.StatusCode,
116780			Header: res.Header,
116781		}
116782	}
116783	if err != nil {
116784		return nil, err
116785	}
116786	defer googleapi.CloseBody(res)
116787	if err := googleapi.CheckResponse(res); err != nil {
116788		return nil, err
116789	}
116790	ret := &Policy{
116791		ServerResponse: googleapi.ServerResponse{
116792			Header:         res.Header,
116793			HTTPStatusCode: res.StatusCode,
116794		},
116795	}
116796	target := &ret
116797	if err := gensupport.DecodeResponse(target, res); err != nil {
116798		return nil, err
116799	}
116800	return ret, nil
116801	// {
116802	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
116803	//   "httpMethod": "GET",
116804	//   "id": "compute.regionDisks.getIamPolicy",
116805	//   "parameterOrder": [
116806	//     "project",
116807	//     "region",
116808	//     "resource"
116809	//   ],
116810	//   "parameters": {
116811	//     "optionsRequestedPolicyVersion": {
116812	//       "description": "Requested IAM Policy version.",
116813	//       "format": "int32",
116814	//       "location": "query",
116815	//       "type": "integer"
116816	//     },
116817	//     "project": {
116818	//       "description": "Project ID for this request.",
116819	//       "location": "path",
116820	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116821	//       "required": true,
116822	//       "type": "string"
116823	//     },
116824	//     "region": {
116825	//       "description": "The name of the region for this request.",
116826	//       "location": "path",
116827	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
116828	//       "required": true,
116829	//       "type": "string"
116830	//     },
116831	//     "resource": {
116832	//       "description": "Name or id of the resource for this request.",
116833	//       "location": "path",
116834	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
116835	//       "required": true,
116836	//       "type": "string"
116837	//     }
116838	//   },
116839	//   "path": "projects/{project}/regions/{region}/disks/{resource}/getIamPolicy",
116840	//   "response": {
116841	//     "$ref": "Policy"
116842	//   },
116843	//   "scopes": [
116844	//     "https://www.googleapis.com/auth/cloud-platform",
116845	//     "https://www.googleapis.com/auth/compute",
116846	//     "https://www.googleapis.com/auth/compute.readonly"
116847	//   ]
116848	// }
116849
116850}
116851
116852// method id "compute.regionDisks.insert":
116853
116854type RegionDisksInsertCall struct {
116855	s          *Service
116856	project    string
116857	region     string
116858	disk       *Disk
116859	urlParams_ gensupport.URLParams
116860	ctx_       context.Context
116861	header_    http.Header
116862}
116863
116864// Insert: Creates a persistent regional disk in the specified project
116865// using the data included in the request.
116866//
116867// - project: Project ID for this request.
116868// - region: Name of the region for this request.
116869func (r *RegionDisksService) Insert(project string, region string, disk *Disk) *RegionDisksInsertCall {
116870	c := &RegionDisksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116871	c.project = project
116872	c.region = region
116873	c.disk = disk
116874	return c
116875}
116876
116877// RequestId sets the optional parameter "requestId": An optional
116878// request ID to identify requests. Specify a unique request ID so that
116879// if you must retry your request, the server will know to ignore the
116880// request if it has already been completed.
116881//
116882// For example, consider a situation where you make an initial request
116883// and the request times out. If you make the request again with the
116884// same request ID, the server can check if original operation with the
116885// same request ID was received, and if so, will ignore the second
116886// request. This prevents clients from accidentally creating duplicate
116887// commitments.
116888//
116889// The request ID must be a valid UUID with the exception that zero UUID
116890// is not supported (00000000-0000-0000-0000-000000000000).
116891func (c *RegionDisksInsertCall) RequestId(requestId string) *RegionDisksInsertCall {
116892	c.urlParams_.Set("requestId", requestId)
116893	return c
116894}
116895
116896// SourceImage sets the optional parameter "sourceImage": Source image
116897// to restore onto a disk. This field is optional.
116898func (c *RegionDisksInsertCall) SourceImage(sourceImage string) *RegionDisksInsertCall {
116899	c.urlParams_.Set("sourceImage", sourceImage)
116900	return c
116901}
116902
116903// Fields allows partial responses to be retrieved. See
116904// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116905// for more information.
116906func (c *RegionDisksInsertCall) Fields(s ...googleapi.Field) *RegionDisksInsertCall {
116907	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116908	return c
116909}
116910
116911// Context sets the context to be used in this call's Do method. Any
116912// pending HTTP request will be aborted if the provided context is
116913// canceled.
116914func (c *RegionDisksInsertCall) Context(ctx context.Context) *RegionDisksInsertCall {
116915	c.ctx_ = ctx
116916	return c
116917}
116918
116919// Header returns an http.Header that can be modified by the caller to
116920// add HTTP headers to the request.
116921func (c *RegionDisksInsertCall) Header() http.Header {
116922	if c.header_ == nil {
116923		c.header_ = make(http.Header)
116924	}
116925	return c.header_
116926}
116927
116928func (c *RegionDisksInsertCall) doRequest(alt string) (*http.Response, error) {
116929	reqHeaders := make(http.Header)
116930	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
116931	for k, v := range c.header_ {
116932		reqHeaders[k] = v
116933	}
116934	reqHeaders.Set("User-Agent", c.s.userAgent())
116935	var body io.Reader = nil
116936	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disk)
116937	if err != nil {
116938		return nil, err
116939	}
116940	reqHeaders.Set("Content-Type", "application/json")
116941	c.urlParams_.Set("alt", alt)
116942	c.urlParams_.Set("prettyPrint", "false")
116943	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks")
116944	urls += "?" + c.urlParams_.Encode()
116945	req, err := http.NewRequest("POST", urls, body)
116946	if err != nil {
116947		return nil, err
116948	}
116949	req.Header = reqHeaders
116950	googleapi.Expand(req.URL, map[string]string{
116951		"project": c.project,
116952		"region":  c.region,
116953	})
116954	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116955}
116956
116957// Do executes the "compute.regionDisks.insert" call.
116958// Exactly one of *Operation or error will be non-nil. Any non-2xx
116959// status code is an error. Response headers are in either
116960// *Operation.ServerResponse.Header or (if a response was returned at
116961// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
116962// to check whether the returned error was because
116963// http.StatusNotModified was returned.
116964func (c *RegionDisksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
116965	gensupport.SetOptions(c.urlParams_, opts...)
116966	res, err := c.doRequest("json")
116967	if res != nil && res.StatusCode == http.StatusNotModified {
116968		if res.Body != nil {
116969			res.Body.Close()
116970		}
116971		return nil, &googleapi.Error{
116972			Code:   res.StatusCode,
116973			Header: res.Header,
116974		}
116975	}
116976	if err != nil {
116977		return nil, err
116978	}
116979	defer googleapi.CloseBody(res)
116980	if err := googleapi.CheckResponse(res); err != nil {
116981		return nil, err
116982	}
116983	ret := &Operation{
116984		ServerResponse: googleapi.ServerResponse{
116985			Header:         res.Header,
116986			HTTPStatusCode: res.StatusCode,
116987		},
116988	}
116989	target := &ret
116990	if err := gensupport.DecodeResponse(target, res); err != nil {
116991		return nil, err
116992	}
116993	return ret, nil
116994	// {
116995	//   "description": "Creates a persistent regional disk in the specified project using the data included in the request.",
116996	//   "httpMethod": "POST",
116997	//   "id": "compute.regionDisks.insert",
116998	//   "parameterOrder": [
116999	//     "project",
117000	//     "region"
117001	//   ],
117002	//   "parameters": {
117003	//     "project": {
117004	//       "description": "Project ID for this request.",
117005	//       "location": "path",
117006	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117007	//       "required": true,
117008	//       "type": "string"
117009	//     },
117010	//     "region": {
117011	//       "description": "Name of the region for this request.",
117012	//       "location": "path",
117013	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
117014	//       "required": true,
117015	//       "type": "string"
117016	//     },
117017	//     "requestId": {
117018	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
117019	//       "location": "query",
117020	//       "type": "string"
117021	//     },
117022	//     "sourceImage": {
117023	//       "description": "Source image to restore onto a disk. This field is optional.",
117024	//       "location": "query",
117025	//       "type": "string"
117026	//     }
117027	//   },
117028	//   "path": "projects/{project}/regions/{region}/disks",
117029	//   "request": {
117030	//     "$ref": "Disk"
117031	//   },
117032	//   "response": {
117033	//     "$ref": "Operation"
117034	//   },
117035	//   "scopes": [
117036	//     "https://www.googleapis.com/auth/cloud-platform",
117037	//     "https://www.googleapis.com/auth/compute"
117038	//   ]
117039	// }
117040
117041}
117042
117043// method id "compute.regionDisks.list":
117044
117045type RegionDisksListCall struct {
117046	s            *Service
117047	project      string
117048	region       string
117049	urlParams_   gensupport.URLParams
117050	ifNoneMatch_ string
117051	ctx_         context.Context
117052	header_      http.Header
117053}
117054
117055// List: Retrieves the list of persistent disks contained within the
117056// specified region.
117057//
117058// - project: Project ID for this request.
117059// - region: Name of the region for this request.
117060func (r *RegionDisksService) List(project string, region string) *RegionDisksListCall {
117061	c := &RegionDisksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117062	c.project = project
117063	c.region = region
117064	return c
117065}
117066
117067// Filter sets the optional parameter "filter": A filter expression that
117068// filters resources listed in the response. The expression must specify
117069// the field name, a comparison operator, and the value that you want to
117070// use for filtering. The value must be a string, a number, or a
117071// boolean. The comparison operator must be either `=`, `!=`, `>`, or
117072// `<`.
117073//
117074// For example, if you are filtering Compute Engine instances, you can
117075// exclude instances named `example-instance` by specifying `name !=
117076// example-instance`.
117077//
117078// You can also filter nested fields. For example, you could specify
117079// `scheduling.automaticRestart = false` to include instances only if
117080// they are not scheduled for automatic restarts. You can use filtering
117081// on nested fields to filter based on resource labels.
117082//
117083// To filter on multiple expressions, provide each separate expression
117084// within parentheses. For example: ``` (scheduling.automaticRestart =
117085// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
117086// is an `AND` expression. However, you can include `AND` and `OR`
117087// expressions explicitly. For example: ``` (cpuPlatform = "Intel
117088// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
117089// (scheduling.automaticRestart = true) ```
117090func (c *RegionDisksListCall) Filter(filter string) *RegionDisksListCall {
117091	c.urlParams_.Set("filter", filter)
117092	return c
117093}
117094
117095// MaxResults sets the optional parameter "maxResults": The maximum
117096// number of results per page that should be returned. If the number of
117097// available results is larger than `maxResults`, Compute Engine returns
117098// a `nextPageToken` that can be used to get the next page of results in
117099// subsequent list requests. Acceptable values are `0` to `500`,
117100// inclusive. (Default: `500`)
117101func (c *RegionDisksListCall) MaxResults(maxResults int64) *RegionDisksListCall {
117102	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
117103	return c
117104}
117105
117106// OrderBy sets the optional parameter "orderBy": Sorts list results by
117107// a certain order. By default, results are returned in alphanumerical
117108// order based on the resource name.
117109//
117110// You can also sort results in descending order based on the creation
117111// timestamp using `orderBy="creationTimestamp desc". This sorts
117112// results based on the `creationTimestamp` field in reverse
117113// chronological order (newest result first). Use this to sort resources
117114// like operations so that the newest operation is returned
117115// first.
117116//
117117// Currently, only sorting by `name` or `creationTimestamp desc` is
117118// supported.
117119func (c *RegionDisksListCall) OrderBy(orderBy string) *RegionDisksListCall {
117120	c.urlParams_.Set("orderBy", orderBy)
117121	return c
117122}
117123
117124// PageToken sets the optional parameter "pageToken": Specifies a page
117125// token to use. Set `pageToken` to the `nextPageToken` returned by a
117126// previous list request to get the next page of results.
117127func (c *RegionDisksListCall) PageToken(pageToken string) *RegionDisksListCall {
117128	c.urlParams_.Set("pageToken", pageToken)
117129	return c
117130}
117131
117132// ReturnPartialSuccess sets the optional parameter
117133// "returnPartialSuccess": Opt-in for partial success behavior which
117134// provides partial results in case of failure. The default value is
117135// false.
117136func (c *RegionDisksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionDisksListCall {
117137	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
117138	return c
117139}
117140
117141// Fields allows partial responses to be retrieved. See
117142// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117143// for more information.
117144func (c *RegionDisksListCall) Fields(s ...googleapi.Field) *RegionDisksListCall {
117145	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117146	return c
117147}
117148
117149// IfNoneMatch sets the optional parameter which makes the operation
117150// fail if the object's ETag matches the given value. This is useful for
117151// getting updates only after the object has changed since the last
117152// request. Use googleapi.IsNotModified to check whether the response
117153// error from Do is the result of In-None-Match.
117154func (c *RegionDisksListCall) IfNoneMatch(entityTag string) *RegionDisksListCall {
117155	c.ifNoneMatch_ = entityTag
117156	return c
117157}
117158
117159// Context sets the context to be used in this call's Do method. Any
117160// pending HTTP request will be aborted if the provided context is
117161// canceled.
117162func (c *RegionDisksListCall) Context(ctx context.Context) *RegionDisksListCall {
117163	c.ctx_ = ctx
117164	return c
117165}
117166
117167// Header returns an http.Header that can be modified by the caller to
117168// add HTTP headers to the request.
117169func (c *RegionDisksListCall) Header() http.Header {
117170	if c.header_ == nil {
117171		c.header_ = make(http.Header)
117172	}
117173	return c.header_
117174}
117175
117176func (c *RegionDisksListCall) doRequest(alt string) (*http.Response, error) {
117177	reqHeaders := make(http.Header)
117178	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
117179	for k, v := range c.header_ {
117180		reqHeaders[k] = v
117181	}
117182	reqHeaders.Set("User-Agent", c.s.userAgent())
117183	if c.ifNoneMatch_ != "" {
117184		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
117185	}
117186	var body io.Reader = nil
117187	c.urlParams_.Set("alt", alt)
117188	c.urlParams_.Set("prettyPrint", "false")
117189	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks")
117190	urls += "?" + c.urlParams_.Encode()
117191	req, err := http.NewRequest("GET", urls, body)
117192	if err != nil {
117193		return nil, err
117194	}
117195	req.Header = reqHeaders
117196	googleapi.Expand(req.URL, map[string]string{
117197		"project": c.project,
117198		"region":  c.region,
117199	})
117200	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117201}
117202
117203// Do executes the "compute.regionDisks.list" call.
117204// Exactly one of *DiskList or error will be non-nil. Any non-2xx status
117205// code is an error. Response headers are in either
117206// *DiskList.ServerResponse.Header or (if a response was returned at
117207// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
117208// to check whether the returned error was because
117209// http.StatusNotModified was returned.
117210func (c *RegionDisksListCall) Do(opts ...googleapi.CallOption) (*DiskList, error) {
117211	gensupport.SetOptions(c.urlParams_, opts...)
117212	res, err := c.doRequest("json")
117213	if res != nil && res.StatusCode == http.StatusNotModified {
117214		if res.Body != nil {
117215			res.Body.Close()
117216		}
117217		return nil, &googleapi.Error{
117218			Code:   res.StatusCode,
117219			Header: res.Header,
117220		}
117221	}
117222	if err != nil {
117223		return nil, err
117224	}
117225	defer googleapi.CloseBody(res)
117226	if err := googleapi.CheckResponse(res); err != nil {
117227		return nil, err
117228	}
117229	ret := &DiskList{
117230		ServerResponse: googleapi.ServerResponse{
117231			Header:         res.Header,
117232			HTTPStatusCode: res.StatusCode,
117233		},
117234	}
117235	target := &ret
117236	if err := gensupport.DecodeResponse(target, res); err != nil {
117237		return nil, err
117238	}
117239	return ret, nil
117240	// {
117241	//   "description": "Retrieves the list of persistent disks contained within the specified region.",
117242	//   "httpMethod": "GET",
117243	//   "id": "compute.regionDisks.list",
117244	//   "parameterOrder": [
117245	//     "project",
117246	//     "region"
117247	//   ],
117248	//   "parameters": {
117249	//     "filter": {
117250	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
117251	//       "location": "query",
117252	//       "type": "string"
117253	//     },
117254	//     "maxResults": {
117255	//       "default": "500",
117256	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
117257	//       "format": "uint32",
117258	//       "location": "query",
117259	//       "minimum": "0",
117260	//       "type": "integer"
117261	//     },
117262	//     "orderBy": {
117263	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
117264	//       "location": "query",
117265	//       "type": "string"
117266	//     },
117267	//     "pageToken": {
117268	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
117269	//       "location": "query",
117270	//       "type": "string"
117271	//     },
117272	//     "project": {
117273	//       "description": "Project ID for this request.",
117274	//       "location": "path",
117275	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117276	//       "required": true,
117277	//       "type": "string"
117278	//     },
117279	//     "region": {
117280	//       "description": "Name of the region for this request.",
117281	//       "location": "path",
117282	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
117283	//       "required": true,
117284	//       "type": "string"
117285	//     },
117286	//     "returnPartialSuccess": {
117287	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
117288	//       "location": "query",
117289	//       "type": "boolean"
117290	//     }
117291	//   },
117292	//   "path": "projects/{project}/regions/{region}/disks",
117293	//   "response": {
117294	//     "$ref": "DiskList"
117295	//   },
117296	//   "scopes": [
117297	//     "https://www.googleapis.com/auth/cloud-platform",
117298	//     "https://www.googleapis.com/auth/compute",
117299	//     "https://www.googleapis.com/auth/compute.readonly"
117300	//   ]
117301	// }
117302
117303}
117304
117305// Pages invokes f for each page of results.
117306// A non-nil error returned from f will halt the iteration.
117307// The provided context supersedes any context provided to the Context method.
117308func (c *RegionDisksListCall) Pages(ctx context.Context, f func(*DiskList) error) error {
117309	c.ctx_ = ctx
117310	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
117311	for {
117312		x, err := c.Do()
117313		if err != nil {
117314			return err
117315		}
117316		if err := f(x); err != nil {
117317			return err
117318		}
117319		if x.NextPageToken == "" {
117320			return nil
117321		}
117322		c.PageToken(x.NextPageToken)
117323	}
117324}
117325
117326// method id "compute.regionDisks.removeResourcePolicies":
117327
117328type RegionDisksRemoveResourcePoliciesCall struct {
117329	s                                        *Service
117330	project                                  string
117331	region                                   string
117332	disk                                     string
117333	regiondisksremoveresourcepoliciesrequest *RegionDisksRemoveResourcePoliciesRequest
117334	urlParams_                               gensupport.URLParams
117335	ctx_                                     context.Context
117336	header_                                  http.Header
117337}
117338
117339// RemoveResourcePolicies: Removes resource policies from a regional
117340// disk.
117341//
117342// - disk: The disk name for this request.
117343// - project: Project ID for this request.
117344// - region: The name of the region for this request.
117345func (r *RegionDisksService) RemoveResourcePolicies(project string, region string, disk string, regiondisksremoveresourcepoliciesrequest *RegionDisksRemoveResourcePoliciesRequest) *RegionDisksRemoveResourcePoliciesCall {
117346	c := &RegionDisksRemoveResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117347	c.project = project
117348	c.region = region
117349	c.disk = disk
117350	c.regiondisksremoveresourcepoliciesrequest = regiondisksremoveresourcepoliciesrequest
117351	return c
117352}
117353
117354// RequestId sets the optional parameter "requestId": An optional
117355// request ID to identify requests. Specify a unique request ID so that
117356// if you must retry your request, the server will know to ignore the
117357// request if it has already been completed.
117358//
117359// For example, consider a situation where you make an initial request
117360// and the request times out. If you make the request again with the
117361// same request ID, the server can check if original operation with the
117362// same request ID was received, and if so, will ignore the second
117363// request. This prevents clients from accidentally creating duplicate
117364// commitments.
117365//
117366// The request ID must be a valid UUID with the exception that zero UUID
117367// is not supported (00000000-0000-0000-0000-000000000000).
117368func (c *RegionDisksRemoveResourcePoliciesCall) RequestId(requestId string) *RegionDisksRemoveResourcePoliciesCall {
117369	c.urlParams_.Set("requestId", requestId)
117370	return c
117371}
117372
117373// Fields allows partial responses to be retrieved. See
117374// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117375// for more information.
117376func (c *RegionDisksRemoveResourcePoliciesCall) Fields(s ...googleapi.Field) *RegionDisksRemoveResourcePoliciesCall {
117377	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117378	return c
117379}
117380
117381// Context sets the context to be used in this call's Do method. Any
117382// pending HTTP request will be aborted if the provided context is
117383// canceled.
117384func (c *RegionDisksRemoveResourcePoliciesCall) Context(ctx context.Context) *RegionDisksRemoveResourcePoliciesCall {
117385	c.ctx_ = ctx
117386	return c
117387}
117388
117389// Header returns an http.Header that can be modified by the caller to
117390// add HTTP headers to the request.
117391func (c *RegionDisksRemoveResourcePoliciesCall) Header() http.Header {
117392	if c.header_ == nil {
117393		c.header_ = make(http.Header)
117394	}
117395	return c.header_
117396}
117397
117398func (c *RegionDisksRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
117399	reqHeaders := make(http.Header)
117400	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
117401	for k, v := range c.header_ {
117402		reqHeaders[k] = v
117403	}
117404	reqHeaders.Set("User-Agent", c.s.userAgent())
117405	var body io.Reader = nil
117406	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiondisksremoveresourcepoliciesrequest)
117407	if err != nil {
117408		return nil, err
117409	}
117410	reqHeaders.Set("Content-Type", "application/json")
117411	c.urlParams_.Set("alt", alt)
117412	c.urlParams_.Set("prettyPrint", "false")
117413	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}/removeResourcePolicies")
117414	urls += "?" + c.urlParams_.Encode()
117415	req, err := http.NewRequest("POST", urls, body)
117416	if err != nil {
117417		return nil, err
117418	}
117419	req.Header = reqHeaders
117420	googleapi.Expand(req.URL, map[string]string{
117421		"project": c.project,
117422		"region":  c.region,
117423		"disk":    c.disk,
117424	})
117425	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117426}
117427
117428// Do executes the "compute.regionDisks.removeResourcePolicies" call.
117429// Exactly one of *Operation or error will be non-nil. Any non-2xx
117430// status code is an error. Response headers are in either
117431// *Operation.ServerResponse.Header or (if a response was returned at
117432// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
117433// to check whether the returned error was because
117434// http.StatusNotModified was returned.
117435func (c *RegionDisksRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
117436	gensupport.SetOptions(c.urlParams_, opts...)
117437	res, err := c.doRequest("json")
117438	if res != nil && res.StatusCode == http.StatusNotModified {
117439		if res.Body != nil {
117440			res.Body.Close()
117441		}
117442		return nil, &googleapi.Error{
117443			Code:   res.StatusCode,
117444			Header: res.Header,
117445		}
117446	}
117447	if err != nil {
117448		return nil, err
117449	}
117450	defer googleapi.CloseBody(res)
117451	if err := googleapi.CheckResponse(res); err != nil {
117452		return nil, err
117453	}
117454	ret := &Operation{
117455		ServerResponse: googleapi.ServerResponse{
117456			Header:         res.Header,
117457			HTTPStatusCode: res.StatusCode,
117458		},
117459	}
117460	target := &ret
117461	if err := gensupport.DecodeResponse(target, res); err != nil {
117462		return nil, err
117463	}
117464	return ret, nil
117465	// {
117466	//   "description": "Removes resource policies from a regional disk.",
117467	//   "httpMethod": "POST",
117468	//   "id": "compute.regionDisks.removeResourcePolicies",
117469	//   "parameterOrder": [
117470	//     "project",
117471	//     "region",
117472	//     "disk"
117473	//   ],
117474	//   "parameters": {
117475	//     "disk": {
117476	//       "description": "The disk name for this request.",
117477	//       "location": "path",
117478	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
117479	//       "required": true,
117480	//       "type": "string"
117481	//     },
117482	//     "project": {
117483	//       "description": "Project ID for this request.",
117484	//       "location": "path",
117485	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117486	//       "required": true,
117487	//       "type": "string"
117488	//     },
117489	//     "region": {
117490	//       "description": "The name of the region for this request.",
117491	//       "location": "path",
117492	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
117493	//       "required": true,
117494	//       "type": "string"
117495	//     },
117496	//     "requestId": {
117497	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
117498	//       "location": "query",
117499	//       "type": "string"
117500	//     }
117501	//   },
117502	//   "path": "projects/{project}/regions/{region}/disks/{disk}/removeResourcePolicies",
117503	//   "request": {
117504	//     "$ref": "RegionDisksRemoveResourcePoliciesRequest"
117505	//   },
117506	//   "response": {
117507	//     "$ref": "Operation"
117508	//   },
117509	//   "scopes": [
117510	//     "https://www.googleapis.com/auth/cloud-platform",
117511	//     "https://www.googleapis.com/auth/compute"
117512	//   ]
117513	// }
117514
117515}
117516
117517// method id "compute.regionDisks.resize":
117518
117519type RegionDisksResizeCall struct {
117520	s                        *Service
117521	project                  string
117522	region                   string
117523	disk                     string
117524	regiondisksresizerequest *RegionDisksResizeRequest
117525	urlParams_               gensupport.URLParams
117526	ctx_                     context.Context
117527	header_                  http.Header
117528}
117529
117530// Resize: Resizes the specified regional persistent disk.
117531//
117532// - disk: Name of the regional persistent disk.
117533// - project: The project ID for this request.
117534// - region: Name of the region for this request.
117535func (r *RegionDisksService) Resize(project string, region string, disk string, regiondisksresizerequest *RegionDisksResizeRequest) *RegionDisksResizeCall {
117536	c := &RegionDisksResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117537	c.project = project
117538	c.region = region
117539	c.disk = disk
117540	c.regiondisksresizerequest = regiondisksresizerequest
117541	return c
117542}
117543
117544// RequestId sets the optional parameter "requestId": An optional
117545// request ID to identify requests. Specify a unique request ID so that
117546// if you must retry your request, the server will know to ignore the
117547// request if it has already been completed.
117548//
117549// For example, consider a situation where you make an initial request
117550// and the request times out. If you make the request again with the
117551// same request ID, the server can check if original operation with the
117552// same request ID was received, and if so, will ignore the second
117553// request. This prevents clients from accidentally creating duplicate
117554// commitments.
117555//
117556// The request ID must be a valid UUID with the exception that zero UUID
117557// is not supported (00000000-0000-0000-0000-000000000000).
117558func (c *RegionDisksResizeCall) RequestId(requestId string) *RegionDisksResizeCall {
117559	c.urlParams_.Set("requestId", requestId)
117560	return c
117561}
117562
117563// Fields allows partial responses to be retrieved. See
117564// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117565// for more information.
117566func (c *RegionDisksResizeCall) Fields(s ...googleapi.Field) *RegionDisksResizeCall {
117567	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117568	return c
117569}
117570
117571// Context sets the context to be used in this call's Do method. Any
117572// pending HTTP request will be aborted if the provided context is
117573// canceled.
117574func (c *RegionDisksResizeCall) Context(ctx context.Context) *RegionDisksResizeCall {
117575	c.ctx_ = ctx
117576	return c
117577}
117578
117579// Header returns an http.Header that can be modified by the caller to
117580// add HTTP headers to the request.
117581func (c *RegionDisksResizeCall) Header() http.Header {
117582	if c.header_ == nil {
117583		c.header_ = make(http.Header)
117584	}
117585	return c.header_
117586}
117587
117588func (c *RegionDisksResizeCall) doRequest(alt string) (*http.Response, error) {
117589	reqHeaders := make(http.Header)
117590	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
117591	for k, v := range c.header_ {
117592		reqHeaders[k] = v
117593	}
117594	reqHeaders.Set("User-Agent", c.s.userAgent())
117595	var body io.Reader = nil
117596	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiondisksresizerequest)
117597	if err != nil {
117598		return nil, err
117599	}
117600	reqHeaders.Set("Content-Type", "application/json")
117601	c.urlParams_.Set("alt", alt)
117602	c.urlParams_.Set("prettyPrint", "false")
117603	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{disk}/resize")
117604	urls += "?" + c.urlParams_.Encode()
117605	req, err := http.NewRequest("POST", urls, body)
117606	if err != nil {
117607		return nil, err
117608	}
117609	req.Header = reqHeaders
117610	googleapi.Expand(req.URL, map[string]string{
117611		"project": c.project,
117612		"region":  c.region,
117613		"disk":    c.disk,
117614	})
117615	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117616}
117617
117618// Do executes the "compute.regionDisks.resize" call.
117619// Exactly one of *Operation or error will be non-nil. Any non-2xx
117620// status code is an error. Response headers are in either
117621// *Operation.ServerResponse.Header or (if a response was returned at
117622// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
117623// to check whether the returned error was because
117624// http.StatusNotModified was returned.
117625func (c *RegionDisksResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
117626	gensupport.SetOptions(c.urlParams_, opts...)
117627	res, err := c.doRequest("json")
117628	if res != nil && res.StatusCode == http.StatusNotModified {
117629		if res.Body != nil {
117630			res.Body.Close()
117631		}
117632		return nil, &googleapi.Error{
117633			Code:   res.StatusCode,
117634			Header: res.Header,
117635		}
117636	}
117637	if err != nil {
117638		return nil, err
117639	}
117640	defer googleapi.CloseBody(res)
117641	if err := googleapi.CheckResponse(res); err != nil {
117642		return nil, err
117643	}
117644	ret := &Operation{
117645		ServerResponse: googleapi.ServerResponse{
117646			Header:         res.Header,
117647			HTTPStatusCode: res.StatusCode,
117648		},
117649	}
117650	target := &ret
117651	if err := gensupport.DecodeResponse(target, res); err != nil {
117652		return nil, err
117653	}
117654	return ret, nil
117655	// {
117656	//   "description": "Resizes the specified regional persistent disk.",
117657	//   "httpMethod": "POST",
117658	//   "id": "compute.regionDisks.resize",
117659	//   "parameterOrder": [
117660	//     "project",
117661	//     "region",
117662	//     "disk"
117663	//   ],
117664	//   "parameters": {
117665	//     "disk": {
117666	//       "description": "Name of the regional persistent disk.",
117667	//       "location": "path",
117668	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
117669	//       "required": true,
117670	//       "type": "string"
117671	//     },
117672	//     "project": {
117673	//       "description": "The project ID for this request.",
117674	//       "location": "path",
117675	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117676	//       "required": true,
117677	//       "type": "string"
117678	//     },
117679	//     "region": {
117680	//       "description": "Name of the region for this request.",
117681	//       "location": "path",
117682	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
117683	//       "required": true,
117684	//       "type": "string"
117685	//     },
117686	//     "requestId": {
117687	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
117688	//       "location": "query",
117689	//       "type": "string"
117690	//     }
117691	//   },
117692	//   "path": "projects/{project}/regions/{region}/disks/{disk}/resize",
117693	//   "request": {
117694	//     "$ref": "RegionDisksResizeRequest"
117695	//   },
117696	//   "response": {
117697	//     "$ref": "Operation"
117698	//   },
117699	//   "scopes": [
117700	//     "https://www.googleapis.com/auth/cloud-platform",
117701	//     "https://www.googleapis.com/auth/compute"
117702	//   ]
117703	// }
117704
117705}
117706
117707// method id "compute.regionDisks.setIamPolicy":
117708
117709type RegionDisksSetIamPolicyCall struct {
117710	s                      *Service
117711	project                string
117712	region                 string
117713	resource               string
117714	regionsetpolicyrequest *RegionSetPolicyRequest
117715	urlParams_             gensupport.URLParams
117716	ctx_                   context.Context
117717	header_                http.Header
117718}
117719
117720// SetIamPolicy: Sets the access control policy on the specified
117721// resource. Replaces any existing policy.
117722//
117723// - project: Project ID for this request.
117724// - region: The name of the region for this request.
117725// - resource: Name or id of the resource for this request.
117726func (r *RegionDisksService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *RegionDisksSetIamPolicyCall {
117727	c := &RegionDisksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117728	c.project = project
117729	c.region = region
117730	c.resource = resource
117731	c.regionsetpolicyrequest = regionsetpolicyrequest
117732	return c
117733}
117734
117735// Fields allows partial responses to be retrieved. See
117736// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117737// for more information.
117738func (c *RegionDisksSetIamPolicyCall) Fields(s ...googleapi.Field) *RegionDisksSetIamPolicyCall {
117739	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117740	return c
117741}
117742
117743// Context sets the context to be used in this call's Do method. Any
117744// pending HTTP request will be aborted if the provided context is
117745// canceled.
117746func (c *RegionDisksSetIamPolicyCall) Context(ctx context.Context) *RegionDisksSetIamPolicyCall {
117747	c.ctx_ = ctx
117748	return c
117749}
117750
117751// Header returns an http.Header that can be modified by the caller to
117752// add HTTP headers to the request.
117753func (c *RegionDisksSetIamPolicyCall) Header() http.Header {
117754	if c.header_ == nil {
117755		c.header_ = make(http.Header)
117756	}
117757	return c.header_
117758}
117759
117760func (c *RegionDisksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
117761	reqHeaders := make(http.Header)
117762	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
117763	for k, v := range c.header_ {
117764		reqHeaders[k] = v
117765	}
117766	reqHeaders.Set("User-Agent", c.s.userAgent())
117767	var body io.Reader = nil
117768	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
117769	if err != nil {
117770		return nil, err
117771	}
117772	reqHeaders.Set("Content-Type", "application/json")
117773	c.urlParams_.Set("alt", alt)
117774	c.urlParams_.Set("prettyPrint", "false")
117775	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{resource}/setIamPolicy")
117776	urls += "?" + c.urlParams_.Encode()
117777	req, err := http.NewRequest("POST", urls, body)
117778	if err != nil {
117779		return nil, err
117780	}
117781	req.Header = reqHeaders
117782	googleapi.Expand(req.URL, map[string]string{
117783		"project":  c.project,
117784		"region":   c.region,
117785		"resource": c.resource,
117786	})
117787	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117788}
117789
117790// Do executes the "compute.regionDisks.setIamPolicy" call.
117791// Exactly one of *Policy or error will be non-nil. Any non-2xx status
117792// code is an error. Response headers are in either
117793// *Policy.ServerResponse.Header or (if a response was returned at all)
117794// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
117795// check whether the returned error was because http.StatusNotModified
117796// was returned.
117797func (c *RegionDisksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
117798	gensupport.SetOptions(c.urlParams_, opts...)
117799	res, err := c.doRequest("json")
117800	if res != nil && res.StatusCode == http.StatusNotModified {
117801		if res.Body != nil {
117802			res.Body.Close()
117803		}
117804		return nil, &googleapi.Error{
117805			Code:   res.StatusCode,
117806			Header: res.Header,
117807		}
117808	}
117809	if err != nil {
117810		return nil, err
117811	}
117812	defer googleapi.CloseBody(res)
117813	if err := googleapi.CheckResponse(res); err != nil {
117814		return nil, err
117815	}
117816	ret := &Policy{
117817		ServerResponse: googleapi.ServerResponse{
117818			Header:         res.Header,
117819			HTTPStatusCode: res.StatusCode,
117820		},
117821	}
117822	target := &ret
117823	if err := gensupport.DecodeResponse(target, res); err != nil {
117824		return nil, err
117825	}
117826	return ret, nil
117827	// {
117828	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
117829	//   "httpMethod": "POST",
117830	//   "id": "compute.regionDisks.setIamPolicy",
117831	//   "parameterOrder": [
117832	//     "project",
117833	//     "region",
117834	//     "resource"
117835	//   ],
117836	//   "parameters": {
117837	//     "project": {
117838	//       "description": "Project ID for this request.",
117839	//       "location": "path",
117840	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117841	//       "required": true,
117842	//       "type": "string"
117843	//     },
117844	//     "region": {
117845	//       "description": "The name of the region for this request.",
117846	//       "location": "path",
117847	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
117848	//       "required": true,
117849	//       "type": "string"
117850	//     },
117851	//     "resource": {
117852	//       "description": "Name or id of the resource for this request.",
117853	//       "location": "path",
117854	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
117855	//       "required": true,
117856	//       "type": "string"
117857	//     }
117858	//   },
117859	//   "path": "projects/{project}/regions/{region}/disks/{resource}/setIamPolicy",
117860	//   "request": {
117861	//     "$ref": "RegionSetPolicyRequest"
117862	//   },
117863	//   "response": {
117864	//     "$ref": "Policy"
117865	//   },
117866	//   "scopes": [
117867	//     "https://www.googleapis.com/auth/cloud-platform",
117868	//     "https://www.googleapis.com/auth/compute"
117869	//   ]
117870	// }
117871
117872}
117873
117874// method id "compute.regionDisks.setLabels":
117875
117876type RegionDisksSetLabelsCall struct {
117877	s                      *Service
117878	project                string
117879	region                 string
117880	resource               string
117881	regionsetlabelsrequest *RegionSetLabelsRequest
117882	urlParams_             gensupport.URLParams
117883	ctx_                   context.Context
117884	header_                http.Header
117885}
117886
117887// SetLabels: Sets the labels on the target regional disk.
117888//
117889// - project: Project ID for this request.
117890// - region: The region for this request.
117891// - resource: Name or id of the resource for this request.
117892func (r *RegionDisksService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *RegionDisksSetLabelsCall {
117893	c := &RegionDisksSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117894	c.project = project
117895	c.region = region
117896	c.resource = resource
117897	c.regionsetlabelsrequest = regionsetlabelsrequest
117898	return c
117899}
117900
117901// RequestId sets the optional parameter "requestId": An optional
117902// request ID to identify requests. Specify a unique request ID so that
117903// if you must retry your request, the server will know to ignore the
117904// request if it has already been completed.
117905//
117906// For example, consider a situation where you make an initial request
117907// and the request times out. If you make the request again with the
117908// same request ID, the server can check if original operation with the
117909// same request ID was received, and if so, will ignore the second
117910// request. This prevents clients from accidentally creating duplicate
117911// commitments.
117912//
117913// The request ID must be a valid UUID with the exception that zero UUID
117914// is not supported (00000000-0000-0000-0000-000000000000).
117915func (c *RegionDisksSetLabelsCall) RequestId(requestId string) *RegionDisksSetLabelsCall {
117916	c.urlParams_.Set("requestId", requestId)
117917	return c
117918}
117919
117920// Fields allows partial responses to be retrieved. See
117921// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117922// for more information.
117923func (c *RegionDisksSetLabelsCall) Fields(s ...googleapi.Field) *RegionDisksSetLabelsCall {
117924	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117925	return c
117926}
117927
117928// Context sets the context to be used in this call's Do method. Any
117929// pending HTTP request will be aborted if the provided context is
117930// canceled.
117931func (c *RegionDisksSetLabelsCall) Context(ctx context.Context) *RegionDisksSetLabelsCall {
117932	c.ctx_ = ctx
117933	return c
117934}
117935
117936// Header returns an http.Header that can be modified by the caller to
117937// add HTTP headers to the request.
117938func (c *RegionDisksSetLabelsCall) Header() http.Header {
117939	if c.header_ == nil {
117940		c.header_ = make(http.Header)
117941	}
117942	return c.header_
117943}
117944
117945func (c *RegionDisksSetLabelsCall) doRequest(alt string) (*http.Response, error) {
117946	reqHeaders := make(http.Header)
117947	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
117948	for k, v := range c.header_ {
117949		reqHeaders[k] = v
117950	}
117951	reqHeaders.Set("User-Agent", c.s.userAgent())
117952	var body io.Reader = nil
117953	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
117954	if err != nil {
117955		return nil, err
117956	}
117957	reqHeaders.Set("Content-Type", "application/json")
117958	c.urlParams_.Set("alt", alt)
117959	c.urlParams_.Set("prettyPrint", "false")
117960	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{resource}/setLabels")
117961	urls += "?" + c.urlParams_.Encode()
117962	req, err := http.NewRequest("POST", urls, body)
117963	if err != nil {
117964		return nil, err
117965	}
117966	req.Header = reqHeaders
117967	googleapi.Expand(req.URL, map[string]string{
117968		"project":  c.project,
117969		"region":   c.region,
117970		"resource": c.resource,
117971	})
117972	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117973}
117974
117975// Do executes the "compute.regionDisks.setLabels" call.
117976// Exactly one of *Operation or error will be non-nil. Any non-2xx
117977// status code is an error. Response headers are in either
117978// *Operation.ServerResponse.Header or (if a response was returned at
117979// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
117980// to check whether the returned error was because
117981// http.StatusNotModified was returned.
117982func (c *RegionDisksSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
117983	gensupport.SetOptions(c.urlParams_, opts...)
117984	res, err := c.doRequest("json")
117985	if res != nil && res.StatusCode == http.StatusNotModified {
117986		if res.Body != nil {
117987			res.Body.Close()
117988		}
117989		return nil, &googleapi.Error{
117990			Code:   res.StatusCode,
117991			Header: res.Header,
117992		}
117993	}
117994	if err != nil {
117995		return nil, err
117996	}
117997	defer googleapi.CloseBody(res)
117998	if err := googleapi.CheckResponse(res); err != nil {
117999		return nil, err
118000	}
118001	ret := &Operation{
118002		ServerResponse: googleapi.ServerResponse{
118003			Header:         res.Header,
118004			HTTPStatusCode: res.StatusCode,
118005		},
118006	}
118007	target := &ret
118008	if err := gensupport.DecodeResponse(target, res); err != nil {
118009		return nil, err
118010	}
118011	return ret, nil
118012	// {
118013	//   "description": "Sets the labels on the target regional disk.",
118014	//   "httpMethod": "POST",
118015	//   "id": "compute.regionDisks.setLabels",
118016	//   "parameterOrder": [
118017	//     "project",
118018	//     "region",
118019	//     "resource"
118020	//   ],
118021	//   "parameters": {
118022	//     "project": {
118023	//       "description": "Project ID for this request.",
118024	//       "location": "path",
118025	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118026	//       "required": true,
118027	//       "type": "string"
118028	//     },
118029	//     "region": {
118030	//       "description": "The region for this request.",
118031	//       "location": "path",
118032	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
118033	//       "required": true,
118034	//       "type": "string"
118035	//     },
118036	//     "requestId": {
118037	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
118038	//       "location": "query",
118039	//       "type": "string"
118040	//     },
118041	//     "resource": {
118042	//       "description": "Name or id of the resource for this request.",
118043	//       "location": "path",
118044	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
118045	//       "required": true,
118046	//       "type": "string"
118047	//     }
118048	//   },
118049	//   "path": "projects/{project}/regions/{region}/disks/{resource}/setLabels",
118050	//   "request": {
118051	//     "$ref": "RegionSetLabelsRequest"
118052	//   },
118053	//   "response": {
118054	//     "$ref": "Operation"
118055	//   },
118056	//   "scopes": [
118057	//     "https://www.googleapis.com/auth/cloud-platform",
118058	//     "https://www.googleapis.com/auth/compute"
118059	//   ]
118060	// }
118061
118062}
118063
118064// method id "compute.regionDisks.testIamPermissions":
118065
118066type RegionDisksTestIamPermissionsCall struct {
118067	s                      *Service
118068	project                string
118069	region                 string
118070	resource               string
118071	testpermissionsrequest *TestPermissionsRequest
118072	urlParams_             gensupport.URLParams
118073	ctx_                   context.Context
118074	header_                http.Header
118075}
118076
118077// TestIamPermissions: Returns permissions that a caller has on the
118078// specified resource.
118079//
118080// - project: Project ID for this request.
118081// - region: The name of the region for this request.
118082// - resource: Name or id of the resource for this request.
118083func (r *RegionDisksService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionDisksTestIamPermissionsCall {
118084	c := &RegionDisksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118085	c.project = project
118086	c.region = region
118087	c.resource = resource
118088	c.testpermissionsrequest = testpermissionsrequest
118089	return c
118090}
118091
118092// Fields allows partial responses to be retrieved. See
118093// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118094// for more information.
118095func (c *RegionDisksTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionDisksTestIamPermissionsCall {
118096	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118097	return c
118098}
118099
118100// Context sets the context to be used in this call's Do method. Any
118101// pending HTTP request will be aborted if the provided context is
118102// canceled.
118103func (c *RegionDisksTestIamPermissionsCall) Context(ctx context.Context) *RegionDisksTestIamPermissionsCall {
118104	c.ctx_ = ctx
118105	return c
118106}
118107
118108// Header returns an http.Header that can be modified by the caller to
118109// add HTTP headers to the request.
118110func (c *RegionDisksTestIamPermissionsCall) Header() http.Header {
118111	if c.header_ == nil {
118112		c.header_ = make(http.Header)
118113	}
118114	return c.header_
118115}
118116
118117func (c *RegionDisksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
118118	reqHeaders := make(http.Header)
118119	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
118120	for k, v := range c.header_ {
118121		reqHeaders[k] = v
118122	}
118123	reqHeaders.Set("User-Agent", c.s.userAgent())
118124	var body io.Reader = nil
118125	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
118126	if err != nil {
118127		return nil, err
118128	}
118129	reqHeaders.Set("Content-Type", "application/json")
118130	c.urlParams_.Set("alt", alt)
118131	c.urlParams_.Set("prettyPrint", "false")
118132	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/disks/{resource}/testIamPermissions")
118133	urls += "?" + c.urlParams_.Encode()
118134	req, err := http.NewRequest("POST", urls, body)
118135	if err != nil {
118136		return nil, err
118137	}
118138	req.Header = reqHeaders
118139	googleapi.Expand(req.URL, map[string]string{
118140		"project":  c.project,
118141		"region":   c.region,
118142		"resource": c.resource,
118143	})
118144	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118145}
118146
118147// Do executes the "compute.regionDisks.testIamPermissions" call.
118148// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
118149// non-2xx status code is an error. Response headers are in either
118150// *TestPermissionsResponse.ServerResponse.Header or (if a response was
118151// returned at all) in error.(*googleapi.Error).Header. Use
118152// googleapi.IsNotModified to check whether the returned error was
118153// because http.StatusNotModified was returned.
118154func (c *RegionDisksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
118155	gensupport.SetOptions(c.urlParams_, opts...)
118156	res, err := c.doRequest("json")
118157	if res != nil && res.StatusCode == http.StatusNotModified {
118158		if res.Body != nil {
118159			res.Body.Close()
118160		}
118161		return nil, &googleapi.Error{
118162			Code:   res.StatusCode,
118163			Header: res.Header,
118164		}
118165	}
118166	if err != nil {
118167		return nil, err
118168	}
118169	defer googleapi.CloseBody(res)
118170	if err := googleapi.CheckResponse(res); err != nil {
118171		return nil, err
118172	}
118173	ret := &TestPermissionsResponse{
118174		ServerResponse: googleapi.ServerResponse{
118175			Header:         res.Header,
118176			HTTPStatusCode: res.StatusCode,
118177		},
118178	}
118179	target := &ret
118180	if err := gensupport.DecodeResponse(target, res); err != nil {
118181		return nil, err
118182	}
118183	return ret, nil
118184	// {
118185	//   "description": "Returns permissions that a caller has on the specified resource.",
118186	//   "httpMethod": "POST",
118187	//   "id": "compute.regionDisks.testIamPermissions",
118188	//   "parameterOrder": [
118189	//     "project",
118190	//     "region",
118191	//     "resource"
118192	//   ],
118193	//   "parameters": {
118194	//     "project": {
118195	//       "description": "Project ID for this request.",
118196	//       "location": "path",
118197	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118198	//       "required": true,
118199	//       "type": "string"
118200	//     },
118201	//     "region": {
118202	//       "description": "The name of the region for this request.",
118203	//       "location": "path",
118204	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
118205	//       "required": true,
118206	//       "type": "string"
118207	//     },
118208	//     "resource": {
118209	//       "description": "Name or id of the resource for this request.",
118210	//       "location": "path",
118211	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
118212	//       "required": true,
118213	//       "type": "string"
118214	//     }
118215	//   },
118216	//   "path": "projects/{project}/regions/{region}/disks/{resource}/testIamPermissions",
118217	//   "request": {
118218	//     "$ref": "TestPermissionsRequest"
118219	//   },
118220	//   "response": {
118221	//     "$ref": "TestPermissionsResponse"
118222	//   },
118223	//   "scopes": [
118224	//     "https://www.googleapis.com/auth/cloud-platform",
118225	//     "https://www.googleapis.com/auth/compute",
118226	//     "https://www.googleapis.com/auth/compute.readonly"
118227	//   ]
118228	// }
118229
118230}
118231
118232// method id "compute.regionHealthCheckServices.delete":
118233
118234type RegionHealthCheckServicesDeleteCall struct {
118235	s                  *Service
118236	project            string
118237	region             string
118238	healthCheckService string
118239	urlParams_         gensupport.URLParams
118240	ctx_               context.Context
118241	header_            http.Header
118242}
118243
118244// Delete: Deletes the specified regional HealthCheckService.
118245//
118246// - healthCheckService: Name of the HealthCheckService to delete. The
118247//   name must be 1-63 characters long, and comply with RFC1035.
118248// - project: Project ID for this request.
118249// - region: Name of the region scoping this request.
118250func (r *RegionHealthCheckServicesService) Delete(project string, region string, healthCheckService string) *RegionHealthCheckServicesDeleteCall {
118251	c := &RegionHealthCheckServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118252	c.project = project
118253	c.region = region
118254	c.healthCheckService = healthCheckService
118255	return c
118256}
118257
118258// RequestId sets the optional parameter "requestId": An optional
118259// request ID to identify requests. Specify a unique request ID so that
118260// if you must retry your request, the server will know to ignore the
118261// request if it has already been completed.
118262//
118263// For example, consider a situation where you make an initial request
118264// and the request times out. If you make the request again with the
118265// same request ID, the server can check if original operation with the
118266// same request ID was received, and if so, will ignore the second
118267// request. This prevents clients from accidentally creating duplicate
118268// commitments.
118269//
118270// The request ID must be a valid UUID with the exception that zero UUID
118271// is not supported (00000000-0000-0000-0000-000000000000).
118272func (c *RegionHealthCheckServicesDeleteCall) RequestId(requestId string) *RegionHealthCheckServicesDeleteCall {
118273	c.urlParams_.Set("requestId", requestId)
118274	return c
118275}
118276
118277// Fields allows partial responses to be retrieved. See
118278// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118279// for more information.
118280func (c *RegionHealthCheckServicesDeleteCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesDeleteCall {
118281	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118282	return c
118283}
118284
118285// Context sets the context to be used in this call's Do method. Any
118286// pending HTTP request will be aborted if the provided context is
118287// canceled.
118288func (c *RegionHealthCheckServicesDeleteCall) Context(ctx context.Context) *RegionHealthCheckServicesDeleteCall {
118289	c.ctx_ = ctx
118290	return c
118291}
118292
118293// Header returns an http.Header that can be modified by the caller to
118294// add HTTP headers to the request.
118295func (c *RegionHealthCheckServicesDeleteCall) Header() http.Header {
118296	if c.header_ == nil {
118297		c.header_ = make(http.Header)
118298	}
118299	return c.header_
118300}
118301
118302func (c *RegionHealthCheckServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
118303	reqHeaders := make(http.Header)
118304	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
118305	for k, v := range c.header_ {
118306		reqHeaders[k] = v
118307	}
118308	reqHeaders.Set("User-Agent", c.s.userAgent())
118309	var body io.Reader = nil
118310	c.urlParams_.Set("alt", alt)
118311	c.urlParams_.Set("prettyPrint", "false")
118312	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}")
118313	urls += "?" + c.urlParams_.Encode()
118314	req, err := http.NewRequest("DELETE", urls, body)
118315	if err != nil {
118316		return nil, err
118317	}
118318	req.Header = reqHeaders
118319	googleapi.Expand(req.URL, map[string]string{
118320		"project":            c.project,
118321		"region":             c.region,
118322		"healthCheckService": c.healthCheckService,
118323	})
118324	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118325}
118326
118327// Do executes the "compute.regionHealthCheckServices.delete" call.
118328// Exactly one of *Operation or error will be non-nil. Any non-2xx
118329// status code is an error. Response headers are in either
118330// *Operation.ServerResponse.Header or (if a response was returned at
118331// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118332// to check whether the returned error was because
118333// http.StatusNotModified was returned.
118334func (c *RegionHealthCheckServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
118335	gensupport.SetOptions(c.urlParams_, opts...)
118336	res, err := c.doRequest("json")
118337	if res != nil && res.StatusCode == http.StatusNotModified {
118338		if res.Body != nil {
118339			res.Body.Close()
118340		}
118341		return nil, &googleapi.Error{
118342			Code:   res.StatusCode,
118343			Header: res.Header,
118344		}
118345	}
118346	if err != nil {
118347		return nil, err
118348	}
118349	defer googleapi.CloseBody(res)
118350	if err := googleapi.CheckResponse(res); err != nil {
118351		return nil, err
118352	}
118353	ret := &Operation{
118354		ServerResponse: googleapi.ServerResponse{
118355			Header:         res.Header,
118356			HTTPStatusCode: res.StatusCode,
118357		},
118358	}
118359	target := &ret
118360	if err := gensupport.DecodeResponse(target, res); err != nil {
118361		return nil, err
118362	}
118363	return ret, nil
118364	// {
118365	//   "description": "Deletes the specified regional HealthCheckService.",
118366	//   "httpMethod": "DELETE",
118367	//   "id": "compute.regionHealthCheckServices.delete",
118368	//   "parameterOrder": [
118369	//     "project",
118370	//     "region",
118371	//     "healthCheckService"
118372	//   ],
118373	//   "parameters": {
118374	//     "healthCheckService": {
118375	//       "description": "Name of the HealthCheckService to delete. The name must be 1-63 characters long, and comply with RFC1035.",
118376	//       "location": "path",
118377	//       "required": true,
118378	//       "type": "string"
118379	//     },
118380	//     "project": {
118381	//       "description": "Project ID for this request.",
118382	//       "location": "path",
118383	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118384	//       "required": true,
118385	//       "type": "string"
118386	//     },
118387	//     "region": {
118388	//       "description": "Name of the region scoping this request.",
118389	//       "location": "path",
118390	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
118391	//       "required": true,
118392	//       "type": "string"
118393	//     },
118394	//     "requestId": {
118395	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
118396	//       "location": "query",
118397	//       "type": "string"
118398	//     }
118399	//   },
118400	//   "path": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}",
118401	//   "response": {
118402	//     "$ref": "Operation"
118403	//   },
118404	//   "scopes": [
118405	//     "https://www.googleapis.com/auth/cloud-platform",
118406	//     "https://www.googleapis.com/auth/compute"
118407	//   ]
118408	// }
118409
118410}
118411
118412// method id "compute.regionHealthCheckServices.get":
118413
118414type RegionHealthCheckServicesGetCall struct {
118415	s                  *Service
118416	project            string
118417	region             string
118418	healthCheckService string
118419	urlParams_         gensupport.URLParams
118420	ifNoneMatch_       string
118421	ctx_               context.Context
118422	header_            http.Header
118423}
118424
118425// Get: Returns the specified regional HealthCheckService resource.
118426//
118427// - healthCheckService: Name of the HealthCheckService to update. The
118428//   name must be 1-63 characters long, and comply with RFC1035.
118429// - project: Project ID for this request.
118430// - region: Name of the region scoping this request.
118431func (r *RegionHealthCheckServicesService) Get(project string, region string, healthCheckService string) *RegionHealthCheckServicesGetCall {
118432	c := &RegionHealthCheckServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118433	c.project = project
118434	c.region = region
118435	c.healthCheckService = healthCheckService
118436	return c
118437}
118438
118439// Fields allows partial responses to be retrieved. See
118440// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118441// for more information.
118442func (c *RegionHealthCheckServicesGetCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesGetCall {
118443	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118444	return c
118445}
118446
118447// IfNoneMatch sets the optional parameter which makes the operation
118448// fail if the object's ETag matches the given value. This is useful for
118449// getting updates only after the object has changed since the last
118450// request. Use googleapi.IsNotModified to check whether the response
118451// error from Do is the result of In-None-Match.
118452func (c *RegionHealthCheckServicesGetCall) IfNoneMatch(entityTag string) *RegionHealthCheckServicesGetCall {
118453	c.ifNoneMatch_ = entityTag
118454	return c
118455}
118456
118457// Context sets the context to be used in this call's Do method. Any
118458// pending HTTP request will be aborted if the provided context is
118459// canceled.
118460func (c *RegionHealthCheckServicesGetCall) Context(ctx context.Context) *RegionHealthCheckServicesGetCall {
118461	c.ctx_ = ctx
118462	return c
118463}
118464
118465// Header returns an http.Header that can be modified by the caller to
118466// add HTTP headers to the request.
118467func (c *RegionHealthCheckServicesGetCall) Header() http.Header {
118468	if c.header_ == nil {
118469		c.header_ = make(http.Header)
118470	}
118471	return c.header_
118472}
118473
118474func (c *RegionHealthCheckServicesGetCall) doRequest(alt string) (*http.Response, error) {
118475	reqHeaders := make(http.Header)
118476	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
118477	for k, v := range c.header_ {
118478		reqHeaders[k] = v
118479	}
118480	reqHeaders.Set("User-Agent", c.s.userAgent())
118481	if c.ifNoneMatch_ != "" {
118482		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
118483	}
118484	var body io.Reader = nil
118485	c.urlParams_.Set("alt", alt)
118486	c.urlParams_.Set("prettyPrint", "false")
118487	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}")
118488	urls += "?" + c.urlParams_.Encode()
118489	req, err := http.NewRequest("GET", urls, body)
118490	if err != nil {
118491		return nil, err
118492	}
118493	req.Header = reqHeaders
118494	googleapi.Expand(req.URL, map[string]string{
118495		"project":            c.project,
118496		"region":             c.region,
118497		"healthCheckService": c.healthCheckService,
118498	})
118499	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118500}
118501
118502// Do executes the "compute.regionHealthCheckServices.get" call.
118503// Exactly one of *HealthCheckService or error will be non-nil. Any
118504// non-2xx status code is an error. Response headers are in either
118505// *HealthCheckService.ServerResponse.Header or (if a response was
118506// returned at all) in error.(*googleapi.Error).Header. Use
118507// googleapi.IsNotModified to check whether the returned error was
118508// because http.StatusNotModified was returned.
118509func (c *RegionHealthCheckServicesGetCall) Do(opts ...googleapi.CallOption) (*HealthCheckService, error) {
118510	gensupport.SetOptions(c.urlParams_, opts...)
118511	res, err := c.doRequest("json")
118512	if res != nil && res.StatusCode == http.StatusNotModified {
118513		if res.Body != nil {
118514			res.Body.Close()
118515		}
118516		return nil, &googleapi.Error{
118517			Code:   res.StatusCode,
118518			Header: res.Header,
118519		}
118520	}
118521	if err != nil {
118522		return nil, err
118523	}
118524	defer googleapi.CloseBody(res)
118525	if err := googleapi.CheckResponse(res); err != nil {
118526		return nil, err
118527	}
118528	ret := &HealthCheckService{
118529		ServerResponse: googleapi.ServerResponse{
118530			Header:         res.Header,
118531			HTTPStatusCode: res.StatusCode,
118532		},
118533	}
118534	target := &ret
118535	if err := gensupport.DecodeResponse(target, res); err != nil {
118536		return nil, err
118537	}
118538	return ret, nil
118539	// {
118540	//   "description": "Returns the specified regional HealthCheckService resource.",
118541	//   "httpMethod": "GET",
118542	//   "id": "compute.regionHealthCheckServices.get",
118543	//   "parameterOrder": [
118544	//     "project",
118545	//     "region",
118546	//     "healthCheckService"
118547	//   ],
118548	//   "parameters": {
118549	//     "healthCheckService": {
118550	//       "description": "Name of the HealthCheckService to update. The name must be 1-63 characters long, and comply with RFC1035.",
118551	//       "location": "path",
118552	//       "required": true,
118553	//       "type": "string"
118554	//     },
118555	//     "project": {
118556	//       "description": "Project ID for this request.",
118557	//       "location": "path",
118558	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118559	//       "required": true,
118560	//       "type": "string"
118561	//     },
118562	//     "region": {
118563	//       "description": "Name of the region scoping this request.",
118564	//       "location": "path",
118565	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
118566	//       "required": true,
118567	//       "type": "string"
118568	//     }
118569	//   },
118570	//   "path": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}",
118571	//   "response": {
118572	//     "$ref": "HealthCheckService"
118573	//   },
118574	//   "scopes": [
118575	//     "https://www.googleapis.com/auth/cloud-platform",
118576	//     "https://www.googleapis.com/auth/compute",
118577	//     "https://www.googleapis.com/auth/compute.readonly"
118578	//   ]
118579	// }
118580
118581}
118582
118583// method id "compute.regionHealthCheckServices.insert":
118584
118585type RegionHealthCheckServicesInsertCall struct {
118586	s                  *Service
118587	project            string
118588	region             string
118589	healthcheckservice *HealthCheckService
118590	urlParams_         gensupport.URLParams
118591	ctx_               context.Context
118592	header_            http.Header
118593}
118594
118595// Insert: Creates a regional HealthCheckService resource in the
118596// specified project and region using the data included in the request.
118597//
118598// - project: Project ID for this request.
118599// - region: Name of the region scoping this request.
118600func (r *RegionHealthCheckServicesService) Insert(project string, region string, healthcheckservice *HealthCheckService) *RegionHealthCheckServicesInsertCall {
118601	c := &RegionHealthCheckServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118602	c.project = project
118603	c.region = region
118604	c.healthcheckservice = healthcheckservice
118605	return c
118606}
118607
118608// RequestId sets the optional parameter "requestId": An optional
118609// request ID to identify requests. Specify a unique request ID so that
118610// if you must retry your request, the server will know to ignore the
118611// request if it has already been completed.
118612//
118613// For example, consider a situation where you make an initial request
118614// and the request times out. If you make the request again with the
118615// same request ID, the server can check if original operation with the
118616// same request ID was received, and if so, will ignore the second
118617// request. This prevents clients from accidentally creating duplicate
118618// commitments.
118619//
118620// The request ID must be a valid UUID with the exception that zero UUID
118621// is not supported (00000000-0000-0000-0000-000000000000).
118622func (c *RegionHealthCheckServicesInsertCall) RequestId(requestId string) *RegionHealthCheckServicesInsertCall {
118623	c.urlParams_.Set("requestId", requestId)
118624	return c
118625}
118626
118627// Fields allows partial responses to be retrieved. See
118628// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118629// for more information.
118630func (c *RegionHealthCheckServicesInsertCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesInsertCall {
118631	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118632	return c
118633}
118634
118635// Context sets the context to be used in this call's Do method. Any
118636// pending HTTP request will be aborted if the provided context is
118637// canceled.
118638func (c *RegionHealthCheckServicesInsertCall) Context(ctx context.Context) *RegionHealthCheckServicesInsertCall {
118639	c.ctx_ = ctx
118640	return c
118641}
118642
118643// Header returns an http.Header that can be modified by the caller to
118644// add HTTP headers to the request.
118645func (c *RegionHealthCheckServicesInsertCall) Header() http.Header {
118646	if c.header_ == nil {
118647		c.header_ = make(http.Header)
118648	}
118649	return c.header_
118650}
118651
118652func (c *RegionHealthCheckServicesInsertCall) doRequest(alt string) (*http.Response, error) {
118653	reqHeaders := make(http.Header)
118654	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
118655	for k, v := range c.header_ {
118656		reqHeaders[k] = v
118657	}
118658	reqHeaders.Set("User-Agent", c.s.userAgent())
118659	var body io.Reader = nil
118660	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheckservice)
118661	if err != nil {
118662		return nil, err
118663	}
118664	reqHeaders.Set("Content-Type", "application/json")
118665	c.urlParams_.Set("alt", alt)
118666	c.urlParams_.Set("prettyPrint", "false")
118667	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices")
118668	urls += "?" + c.urlParams_.Encode()
118669	req, err := http.NewRequest("POST", urls, body)
118670	if err != nil {
118671		return nil, err
118672	}
118673	req.Header = reqHeaders
118674	googleapi.Expand(req.URL, map[string]string{
118675		"project": c.project,
118676		"region":  c.region,
118677	})
118678	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118679}
118680
118681// Do executes the "compute.regionHealthCheckServices.insert" call.
118682// Exactly one of *Operation or error will be non-nil. Any non-2xx
118683// status code is an error. Response headers are in either
118684// *Operation.ServerResponse.Header or (if a response was returned at
118685// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118686// to check whether the returned error was because
118687// http.StatusNotModified was returned.
118688func (c *RegionHealthCheckServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
118689	gensupport.SetOptions(c.urlParams_, opts...)
118690	res, err := c.doRequest("json")
118691	if res != nil && res.StatusCode == http.StatusNotModified {
118692		if res.Body != nil {
118693			res.Body.Close()
118694		}
118695		return nil, &googleapi.Error{
118696			Code:   res.StatusCode,
118697			Header: res.Header,
118698		}
118699	}
118700	if err != nil {
118701		return nil, err
118702	}
118703	defer googleapi.CloseBody(res)
118704	if err := googleapi.CheckResponse(res); err != nil {
118705		return nil, err
118706	}
118707	ret := &Operation{
118708		ServerResponse: googleapi.ServerResponse{
118709			Header:         res.Header,
118710			HTTPStatusCode: res.StatusCode,
118711		},
118712	}
118713	target := &ret
118714	if err := gensupport.DecodeResponse(target, res); err != nil {
118715		return nil, err
118716	}
118717	return ret, nil
118718	// {
118719	//   "description": "Creates a regional HealthCheckService resource in the specified project and region using the data included in the request.",
118720	//   "httpMethod": "POST",
118721	//   "id": "compute.regionHealthCheckServices.insert",
118722	//   "parameterOrder": [
118723	//     "project",
118724	//     "region"
118725	//   ],
118726	//   "parameters": {
118727	//     "project": {
118728	//       "description": "Project ID for this request.",
118729	//       "location": "path",
118730	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118731	//       "required": true,
118732	//       "type": "string"
118733	//     },
118734	//     "region": {
118735	//       "description": "Name of the region scoping this request.",
118736	//       "location": "path",
118737	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
118738	//       "required": true,
118739	//       "type": "string"
118740	//     },
118741	//     "requestId": {
118742	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
118743	//       "location": "query",
118744	//       "type": "string"
118745	//     }
118746	//   },
118747	//   "path": "projects/{project}/regions/{region}/healthCheckServices",
118748	//   "request": {
118749	//     "$ref": "HealthCheckService"
118750	//   },
118751	//   "response": {
118752	//     "$ref": "Operation"
118753	//   },
118754	//   "scopes": [
118755	//     "https://www.googleapis.com/auth/cloud-platform",
118756	//     "https://www.googleapis.com/auth/compute"
118757	//   ]
118758	// }
118759
118760}
118761
118762// method id "compute.regionHealthCheckServices.list":
118763
118764type RegionHealthCheckServicesListCall struct {
118765	s            *Service
118766	project      string
118767	region       string
118768	urlParams_   gensupport.URLParams
118769	ifNoneMatch_ string
118770	ctx_         context.Context
118771	header_      http.Header
118772}
118773
118774// List: Lists all the HealthCheckService resources that have been
118775// configured for the specified project in the given region.
118776//
118777// - project: Project ID for this request.
118778// - region: Name of the region scoping this request.
118779func (r *RegionHealthCheckServicesService) List(project string, region string) *RegionHealthCheckServicesListCall {
118780	c := &RegionHealthCheckServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118781	c.project = project
118782	c.region = region
118783	return c
118784}
118785
118786// Filter sets the optional parameter "filter": A filter expression that
118787// filters resources listed in the response. The expression must specify
118788// the field name, a comparison operator, and the value that you want to
118789// use for filtering. The value must be a string, a number, or a
118790// boolean. The comparison operator must be either `=`, `!=`, `>`, or
118791// `<`.
118792//
118793// For example, if you are filtering Compute Engine instances, you can
118794// exclude instances named `example-instance` by specifying `name !=
118795// example-instance`.
118796//
118797// You can also filter nested fields. For example, you could specify
118798// `scheduling.automaticRestart = false` to include instances only if
118799// they are not scheduled for automatic restarts. You can use filtering
118800// on nested fields to filter based on resource labels.
118801//
118802// To filter on multiple expressions, provide each separate expression
118803// within parentheses. For example: ``` (scheduling.automaticRestart =
118804// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
118805// is an `AND` expression. However, you can include `AND` and `OR`
118806// expressions explicitly. For example: ``` (cpuPlatform = "Intel
118807// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
118808// (scheduling.automaticRestart = true) ```
118809func (c *RegionHealthCheckServicesListCall) Filter(filter string) *RegionHealthCheckServicesListCall {
118810	c.urlParams_.Set("filter", filter)
118811	return c
118812}
118813
118814// MaxResults sets the optional parameter "maxResults": The maximum
118815// number of results per page that should be returned. If the number of
118816// available results is larger than `maxResults`, Compute Engine returns
118817// a `nextPageToken` that can be used to get the next page of results in
118818// subsequent list requests. Acceptable values are `0` to `500`,
118819// inclusive. (Default: `500`)
118820func (c *RegionHealthCheckServicesListCall) MaxResults(maxResults int64) *RegionHealthCheckServicesListCall {
118821	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
118822	return c
118823}
118824
118825// OrderBy sets the optional parameter "orderBy": Sorts list results by
118826// a certain order. By default, results are returned in alphanumerical
118827// order based on the resource name.
118828//
118829// You can also sort results in descending order based on the creation
118830// timestamp using `orderBy="creationTimestamp desc". This sorts
118831// results based on the `creationTimestamp` field in reverse
118832// chronological order (newest result first). Use this to sort resources
118833// like operations so that the newest operation is returned
118834// first.
118835//
118836// Currently, only sorting by `name` or `creationTimestamp desc` is
118837// supported.
118838func (c *RegionHealthCheckServicesListCall) OrderBy(orderBy string) *RegionHealthCheckServicesListCall {
118839	c.urlParams_.Set("orderBy", orderBy)
118840	return c
118841}
118842
118843// PageToken sets the optional parameter "pageToken": Specifies a page
118844// token to use. Set `pageToken` to the `nextPageToken` returned by a
118845// previous list request to get the next page of results.
118846func (c *RegionHealthCheckServicesListCall) PageToken(pageToken string) *RegionHealthCheckServicesListCall {
118847	c.urlParams_.Set("pageToken", pageToken)
118848	return c
118849}
118850
118851// ReturnPartialSuccess sets the optional parameter
118852// "returnPartialSuccess": Opt-in for partial success behavior which
118853// provides partial results in case of failure. The default value is
118854// false.
118855func (c *RegionHealthCheckServicesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionHealthCheckServicesListCall {
118856	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
118857	return c
118858}
118859
118860// Fields allows partial responses to be retrieved. See
118861// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118862// for more information.
118863func (c *RegionHealthCheckServicesListCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesListCall {
118864	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118865	return c
118866}
118867
118868// IfNoneMatch sets the optional parameter which makes the operation
118869// fail if the object's ETag matches the given value. This is useful for
118870// getting updates only after the object has changed since the last
118871// request. Use googleapi.IsNotModified to check whether the response
118872// error from Do is the result of In-None-Match.
118873func (c *RegionHealthCheckServicesListCall) IfNoneMatch(entityTag string) *RegionHealthCheckServicesListCall {
118874	c.ifNoneMatch_ = entityTag
118875	return c
118876}
118877
118878// Context sets the context to be used in this call's Do method. Any
118879// pending HTTP request will be aborted if the provided context is
118880// canceled.
118881func (c *RegionHealthCheckServicesListCall) Context(ctx context.Context) *RegionHealthCheckServicesListCall {
118882	c.ctx_ = ctx
118883	return c
118884}
118885
118886// Header returns an http.Header that can be modified by the caller to
118887// add HTTP headers to the request.
118888func (c *RegionHealthCheckServicesListCall) Header() http.Header {
118889	if c.header_ == nil {
118890		c.header_ = make(http.Header)
118891	}
118892	return c.header_
118893}
118894
118895func (c *RegionHealthCheckServicesListCall) doRequest(alt string) (*http.Response, error) {
118896	reqHeaders := make(http.Header)
118897	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
118898	for k, v := range c.header_ {
118899		reqHeaders[k] = v
118900	}
118901	reqHeaders.Set("User-Agent", c.s.userAgent())
118902	if c.ifNoneMatch_ != "" {
118903		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
118904	}
118905	var body io.Reader = nil
118906	c.urlParams_.Set("alt", alt)
118907	c.urlParams_.Set("prettyPrint", "false")
118908	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices")
118909	urls += "?" + c.urlParams_.Encode()
118910	req, err := http.NewRequest("GET", urls, body)
118911	if err != nil {
118912		return nil, err
118913	}
118914	req.Header = reqHeaders
118915	googleapi.Expand(req.URL, map[string]string{
118916		"project": c.project,
118917		"region":  c.region,
118918	})
118919	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118920}
118921
118922// Do executes the "compute.regionHealthCheckServices.list" call.
118923// Exactly one of *HealthCheckServicesList or error will be non-nil. Any
118924// non-2xx status code is an error. Response headers are in either
118925// *HealthCheckServicesList.ServerResponse.Header or (if a response was
118926// returned at all) in error.(*googleapi.Error).Header. Use
118927// googleapi.IsNotModified to check whether the returned error was
118928// because http.StatusNotModified was returned.
118929func (c *RegionHealthCheckServicesListCall) Do(opts ...googleapi.CallOption) (*HealthCheckServicesList, error) {
118930	gensupport.SetOptions(c.urlParams_, opts...)
118931	res, err := c.doRequest("json")
118932	if res != nil && res.StatusCode == http.StatusNotModified {
118933		if res.Body != nil {
118934			res.Body.Close()
118935		}
118936		return nil, &googleapi.Error{
118937			Code:   res.StatusCode,
118938			Header: res.Header,
118939		}
118940	}
118941	if err != nil {
118942		return nil, err
118943	}
118944	defer googleapi.CloseBody(res)
118945	if err := googleapi.CheckResponse(res); err != nil {
118946		return nil, err
118947	}
118948	ret := &HealthCheckServicesList{
118949		ServerResponse: googleapi.ServerResponse{
118950			Header:         res.Header,
118951			HTTPStatusCode: res.StatusCode,
118952		},
118953	}
118954	target := &ret
118955	if err := gensupport.DecodeResponse(target, res); err != nil {
118956		return nil, err
118957	}
118958	return ret, nil
118959	// {
118960	//   "description": "Lists all the HealthCheckService resources that have been configured for the specified project in the given region.",
118961	//   "httpMethod": "GET",
118962	//   "id": "compute.regionHealthCheckServices.list",
118963	//   "parameterOrder": [
118964	//     "project",
118965	//     "region"
118966	//   ],
118967	//   "parameters": {
118968	//     "filter": {
118969	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
118970	//       "location": "query",
118971	//       "type": "string"
118972	//     },
118973	//     "maxResults": {
118974	//       "default": "500",
118975	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
118976	//       "format": "uint32",
118977	//       "location": "query",
118978	//       "minimum": "0",
118979	//       "type": "integer"
118980	//     },
118981	//     "orderBy": {
118982	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
118983	//       "location": "query",
118984	//       "type": "string"
118985	//     },
118986	//     "pageToken": {
118987	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
118988	//       "location": "query",
118989	//       "type": "string"
118990	//     },
118991	//     "project": {
118992	//       "description": "Project ID for this request.",
118993	//       "location": "path",
118994	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118995	//       "required": true,
118996	//       "type": "string"
118997	//     },
118998	//     "region": {
118999	//       "description": "Name of the region scoping this request.",
119000	//       "location": "path",
119001	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
119002	//       "required": true,
119003	//       "type": "string"
119004	//     },
119005	//     "returnPartialSuccess": {
119006	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
119007	//       "location": "query",
119008	//       "type": "boolean"
119009	//     }
119010	//   },
119011	//   "path": "projects/{project}/regions/{region}/healthCheckServices",
119012	//   "response": {
119013	//     "$ref": "HealthCheckServicesList"
119014	//   },
119015	//   "scopes": [
119016	//     "https://www.googleapis.com/auth/cloud-platform",
119017	//     "https://www.googleapis.com/auth/compute",
119018	//     "https://www.googleapis.com/auth/compute.readonly"
119019	//   ]
119020	// }
119021
119022}
119023
119024// Pages invokes f for each page of results.
119025// A non-nil error returned from f will halt the iteration.
119026// The provided context supersedes any context provided to the Context method.
119027func (c *RegionHealthCheckServicesListCall) Pages(ctx context.Context, f func(*HealthCheckServicesList) error) error {
119028	c.ctx_ = ctx
119029	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
119030	for {
119031		x, err := c.Do()
119032		if err != nil {
119033			return err
119034		}
119035		if err := f(x); err != nil {
119036			return err
119037		}
119038		if x.NextPageToken == "" {
119039			return nil
119040		}
119041		c.PageToken(x.NextPageToken)
119042	}
119043}
119044
119045// method id "compute.regionHealthCheckServices.patch":
119046
119047type RegionHealthCheckServicesPatchCall struct {
119048	s                  *Service
119049	project            string
119050	region             string
119051	healthCheckService string
119052	healthcheckservice *HealthCheckService
119053	urlParams_         gensupport.URLParams
119054	ctx_               context.Context
119055	header_            http.Header
119056}
119057
119058// Patch: Updates the specified regional HealthCheckService resource
119059// with the data included in the request. This method supports PATCH
119060// semantics and uses the JSON merge patch format and processing rules.
119061//
119062// - healthCheckService: Name of the HealthCheckService to update. The
119063//   name must be 1-63 characters long, and comply with RFC1035.
119064// - project: Project ID for this request.
119065// - region: Name of the region scoping this request.
119066func (r *RegionHealthCheckServicesService) Patch(project string, region string, healthCheckService string, healthcheckservice *HealthCheckService) *RegionHealthCheckServicesPatchCall {
119067	c := &RegionHealthCheckServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119068	c.project = project
119069	c.region = region
119070	c.healthCheckService = healthCheckService
119071	c.healthcheckservice = healthcheckservice
119072	return c
119073}
119074
119075// RequestId sets the optional parameter "requestId": An optional
119076// request ID to identify requests. Specify a unique request ID so that
119077// if you must retry your request, the server will know to ignore the
119078// request if it has already been completed.
119079//
119080// For example, consider a situation where you make an initial request
119081// and the request times out. If you make the request again with the
119082// same request ID, the server can check if original operation with the
119083// same request ID was received, and if so, will ignore the second
119084// request. This prevents clients from accidentally creating duplicate
119085// commitments.
119086//
119087// The request ID must be a valid UUID with the exception that zero UUID
119088// is not supported (00000000-0000-0000-0000-000000000000).
119089func (c *RegionHealthCheckServicesPatchCall) RequestId(requestId string) *RegionHealthCheckServicesPatchCall {
119090	c.urlParams_.Set("requestId", requestId)
119091	return c
119092}
119093
119094// Fields allows partial responses to be retrieved. See
119095// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119096// for more information.
119097func (c *RegionHealthCheckServicesPatchCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesPatchCall {
119098	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119099	return c
119100}
119101
119102// Context sets the context to be used in this call's Do method. Any
119103// pending HTTP request will be aborted if the provided context is
119104// canceled.
119105func (c *RegionHealthCheckServicesPatchCall) Context(ctx context.Context) *RegionHealthCheckServicesPatchCall {
119106	c.ctx_ = ctx
119107	return c
119108}
119109
119110// Header returns an http.Header that can be modified by the caller to
119111// add HTTP headers to the request.
119112func (c *RegionHealthCheckServicesPatchCall) Header() http.Header {
119113	if c.header_ == nil {
119114		c.header_ = make(http.Header)
119115	}
119116	return c.header_
119117}
119118
119119func (c *RegionHealthCheckServicesPatchCall) doRequest(alt string) (*http.Response, error) {
119120	reqHeaders := make(http.Header)
119121	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
119122	for k, v := range c.header_ {
119123		reqHeaders[k] = v
119124	}
119125	reqHeaders.Set("User-Agent", c.s.userAgent())
119126	var body io.Reader = nil
119127	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheckservice)
119128	if err != nil {
119129		return nil, err
119130	}
119131	reqHeaders.Set("Content-Type", "application/json")
119132	c.urlParams_.Set("alt", alt)
119133	c.urlParams_.Set("prettyPrint", "false")
119134	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}")
119135	urls += "?" + c.urlParams_.Encode()
119136	req, err := http.NewRequest("PATCH", urls, body)
119137	if err != nil {
119138		return nil, err
119139	}
119140	req.Header = reqHeaders
119141	googleapi.Expand(req.URL, map[string]string{
119142		"project":            c.project,
119143		"region":             c.region,
119144		"healthCheckService": c.healthCheckService,
119145	})
119146	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119147}
119148
119149// Do executes the "compute.regionHealthCheckServices.patch" call.
119150// Exactly one of *Operation or error will be non-nil. Any non-2xx
119151// status code is an error. Response headers are in either
119152// *Operation.ServerResponse.Header or (if a response was returned at
119153// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
119154// to check whether the returned error was because
119155// http.StatusNotModified was returned.
119156func (c *RegionHealthCheckServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
119157	gensupport.SetOptions(c.urlParams_, opts...)
119158	res, err := c.doRequest("json")
119159	if res != nil && res.StatusCode == http.StatusNotModified {
119160		if res.Body != nil {
119161			res.Body.Close()
119162		}
119163		return nil, &googleapi.Error{
119164			Code:   res.StatusCode,
119165			Header: res.Header,
119166		}
119167	}
119168	if err != nil {
119169		return nil, err
119170	}
119171	defer googleapi.CloseBody(res)
119172	if err := googleapi.CheckResponse(res); err != nil {
119173		return nil, err
119174	}
119175	ret := &Operation{
119176		ServerResponse: googleapi.ServerResponse{
119177			Header:         res.Header,
119178			HTTPStatusCode: res.StatusCode,
119179		},
119180	}
119181	target := &ret
119182	if err := gensupport.DecodeResponse(target, res); err != nil {
119183		return nil, err
119184	}
119185	return ret, nil
119186	// {
119187	//   "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.",
119188	//   "httpMethod": "PATCH",
119189	//   "id": "compute.regionHealthCheckServices.patch",
119190	//   "parameterOrder": [
119191	//     "project",
119192	//     "region",
119193	//     "healthCheckService"
119194	//   ],
119195	//   "parameters": {
119196	//     "healthCheckService": {
119197	//       "description": "Name of the HealthCheckService to update. The name must be 1-63 characters long, and comply with RFC1035.",
119198	//       "location": "path",
119199	//       "required": true,
119200	//       "type": "string"
119201	//     },
119202	//     "project": {
119203	//       "description": "Project ID for this request.",
119204	//       "location": "path",
119205	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119206	//       "required": true,
119207	//       "type": "string"
119208	//     },
119209	//     "region": {
119210	//       "description": "Name of the region scoping this request.",
119211	//       "location": "path",
119212	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
119213	//       "required": true,
119214	//       "type": "string"
119215	//     },
119216	//     "requestId": {
119217	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
119218	//       "location": "query",
119219	//       "type": "string"
119220	//     }
119221	//   },
119222	//   "path": "projects/{project}/regions/{region}/healthCheckServices/{healthCheckService}",
119223	//   "request": {
119224	//     "$ref": "HealthCheckService"
119225	//   },
119226	//   "response": {
119227	//     "$ref": "Operation"
119228	//   },
119229	//   "scopes": [
119230	//     "https://www.googleapis.com/auth/cloud-platform",
119231	//     "https://www.googleapis.com/auth/compute"
119232	//   ]
119233	// }
119234
119235}
119236
119237// method id "compute.regionHealthChecks.delete":
119238
119239type RegionHealthChecksDeleteCall struct {
119240	s           *Service
119241	project     string
119242	region      string
119243	healthCheck string
119244	urlParams_  gensupport.URLParams
119245	ctx_        context.Context
119246	header_     http.Header
119247}
119248
119249// Delete: Deletes the specified HealthCheck resource.
119250//
119251// - healthCheck: Name of the HealthCheck resource to delete.
119252// - project: Project ID for this request.
119253// - region: Name of the region scoping this request.
119254func (r *RegionHealthChecksService) Delete(project string, region string, healthCheck string) *RegionHealthChecksDeleteCall {
119255	c := &RegionHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119256	c.project = project
119257	c.region = region
119258	c.healthCheck = healthCheck
119259	return c
119260}
119261
119262// RequestId sets the optional parameter "requestId": An optional
119263// request ID to identify requests. Specify a unique request ID so that
119264// if you must retry your request, the server will know to ignore the
119265// request if it has already been completed.
119266//
119267// For example, consider a situation where you make an initial request
119268// and the request times out. If you make the request again with the
119269// same request ID, the server can check if original operation with the
119270// same request ID was received, and if so, will ignore the second
119271// request. This prevents clients from accidentally creating duplicate
119272// commitments.
119273//
119274// The request ID must be a valid UUID with the exception that zero UUID
119275// is not supported (00000000-0000-0000-0000-000000000000).
119276func (c *RegionHealthChecksDeleteCall) RequestId(requestId string) *RegionHealthChecksDeleteCall {
119277	c.urlParams_.Set("requestId", requestId)
119278	return c
119279}
119280
119281// Fields allows partial responses to be retrieved. See
119282// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119283// for more information.
119284func (c *RegionHealthChecksDeleteCall) Fields(s ...googleapi.Field) *RegionHealthChecksDeleteCall {
119285	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119286	return c
119287}
119288
119289// Context sets the context to be used in this call's Do method. Any
119290// pending HTTP request will be aborted if the provided context is
119291// canceled.
119292func (c *RegionHealthChecksDeleteCall) Context(ctx context.Context) *RegionHealthChecksDeleteCall {
119293	c.ctx_ = ctx
119294	return c
119295}
119296
119297// Header returns an http.Header that can be modified by the caller to
119298// add HTTP headers to the request.
119299func (c *RegionHealthChecksDeleteCall) Header() http.Header {
119300	if c.header_ == nil {
119301		c.header_ = make(http.Header)
119302	}
119303	return c.header_
119304}
119305
119306func (c *RegionHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
119307	reqHeaders := make(http.Header)
119308	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
119309	for k, v := range c.header_ {
119310		reqHeaders[k] = v
119311	}
119312	reqHeaders.Set("User-Agent", c.s.userAgent())
119313	var body io.Reader = nil
119314	c.urlParams_.Set("alt", alt)
119315	c.urlParams_.Set("prettyPrint", "false")
119316	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks/{healthCheck}")
119317	urls += "?" + c.urlParams_.Encode()
119318	req, err := http.NewRequest("DELETE", urls, body)
119319	if err != nil {
119320		return nil, err
119321	}
119322	req.Header = reqHeaders
119323	googleapi.Expand(req.URL, map[string]string{
119324		"project":     c.project,
119325		"region":      c.region,
119326		"healthCheck": c.healthCheck,
119327	})
119328	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119329}
119330
119331// Do executes the "compute.regionHealthChecks.delete" call.
119332// Exactly one of *Operation or error will be non-nil. Any non-2xx
119333// status code is an error. Response headers are in either
119334// *Operation.ServerResponse.Header or (if a response was returned at
119335// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
119336// to check whether the returned error was because
119337// http.StatusNotModified was returned.
119338func (c *RegionHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
119339	gensupport.SetOptions(c.urlParams_, opts...)
119340	res, err := c.doRequest("json")
119341	if res != nil && res.StatusCode == http.StatusNotModified {
119342		if res.Body != nil {
119343			res.Body.Close()
119344		}
119345		return nil, &googleapi.Error{
119346			Code:   res.StatusCode,
119347			Header: res.Header,
119348		}
119349	}
119350	if err != nil {
119351		return nil, err
119352	}
119353	defer googleapi.CloseBody(res)
119354	if err := googleapi.CheckResponse(res); err != nil {
119355		return nil, err
119356	}
119357	ret := &Operation{
119358		ServerResponse: googleapi.ServerResponse{
119359			Header:         res.Header,
119360			HTTPStatusCode: res.StatusCode,
119361		},
119362	}
119363	target := &ret
119364	if err := gensupport.DecodeResponse(target, res); err != nil {
119365		return nil, err
119366	}
119367	return ret, nil
119368	// {
119369	//   "description": "Deletes the specified HealthCheck resource.",
119370	//   "httpMethod": "DELETE",
119371	//   "id": "compute.regionHealthChecks.delete",
119372	//   "parameterOrder": [
119373	//     "project",
119374	//     "region",
119375	//     "healthCheck"
119376	//   ],
119377	//   "parameters": {
119378	//     "healthCheck": {
119379	//       "description": "Name of the HealthCheck resource to delete.",
119380	//       "location": "path",
119381	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
119382	//       "required": true,
119383	//       "type": "string"
119384	//     },
119385	//     "project": {
119386	//       "description": "Project ID for this request.",
119387	//       "location": "path",
119388	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119389	//       "required": true,
119390	//       "type": "string"
119391	//     },
119392	//     "region": {
119393	//       "description": "Name of the region scoping this request.",
119394	//       "location": "path",
119395	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
119396	//       "required": true,
119397	//       "type": "string"
119398	//     },
119399	//     "requestId": {
119400	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
119401	//       "location": "query",
119402	//       "type": "string"
119403	//     }
119404	//   },
119405	//   "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}",
119406	//   "response": {
119407	//     "$ref": "Operation"
119408	//   },
119409	//   "scopes": [
119410	//     "https://www.googleapis.com/auth/cloud-platform",
119411	//     "https://www.googleapis.com/auth/compute"
119412	//   ]
119413	// }
119414
119415}
119416
119417// method id "compute.regionHealthChecks.get":
119418
119419type RegionHealthChecksGetCall struct {
119420	s            *Service
119421	project      string
119422	region       string
119423	healthCheck  string
119424	urlParams_   gensupport.URLParams
119425	ifNoneMatch_ string
119426	ctx_         context.Context
119427	header_      http.Header
119428}
119429
119430// Get: Returns the specified HealthCheck resource. Gets a list of
119431// available health checks by making a list() request.
119432//
119433// - healthCheck: Name of the HealthCheck resource to return.
119434// - project: Project ID for this request.
119435// - region: Name of the region scoping this request.
119436func (r *RegionHealthChecksService) Get(project string, region string, healthCheck string) *RegionHealthChecksGetCall {
119437	c := &RegionHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119438	c.project = project
119439	c.region = region
119440	c.healthCheck = healthCheck
119441	return c
119442}
119443
119444// Fields allows partial responses to be retrieved. See
119445// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119446// for more information.
119447func (c *RegionHealthChecksGetCall) Fields(s ...googleapi.Field) *RegionHealthChecksGetCall {
119448	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119449	return c
119450}
119451
119452// IfNoneMatch sets the optional parameter which makes the operation
119453// fail if the object's ETag matches the given value. This is useful for
119454// getting updates only after the object has changed since the last
119455// request. Use googleapi.IsNotModified to check whether the response
119456// error from Do is the result of In-None-Match.
119457func (c *RegionHealthChecksGetCall) IfNoneMatch(entityTag string) *RegionHealthChecksGetCall {
119458	c.ifNoneMatch_ = entityTag
119459	return c
119460}
119461
119462// Context sets the context to be used in this call's Do method. Any
119463// pending HTTP request will be aborted if the provided context is
119464// canceled.
119465func (c *RegionHealthChecksGetCall) Context(ctx context.Context) *RegionHealthChecksGetCall {
119466	c.ctx_ = ctx
119467	return c
119468}
119469
119470// Header returns an http.Header that can be modified by the caller to
119471// add HTTP headers to the request.
119472func (c *RegionHealthChecksGetCall) Header() http.Header {
119473	if c.header_ == nil {
119474		c.header_ = make(http.Header)
119475	}
119476	return c.header_
119477}
119478
119479func (c *RegionHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
119480	reqHeaders := make(http.Header)
119481	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
119482	for k, v := range c.header_ {
119483		reqHeaders[k] = v
119484	}
119485	reqHeaders.Set("User-Agent", c.s.userAgent())
119486	if c.ifNoneMatch_ != "" {
119487		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
119488	}
119489	var body io.Reader = nil
119490	c.urlParams_.Set("alt", alt)
119491	c.urlParams_.Set("prettyPrint", "false")
119492	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks/{healthCheck}")
119493	urls += "?" + c.urlParams_.Encode()
119494	req, err := http.NewRequest("GET", urls, body)
119495	if err != nil {
119496		return nil, err
119497	}
119498	req.Header = reqHeaders
119499	googleapi.Expand(req.URL, map[string]string{
119500		"project":     c.project,
119501		"region":      c.region,
119502		"healthCheck": c.healthCheck,
119503	})
119504	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119505}
119506
119507// Do executes the "compute.regionHealthChecks.get" call.
119508// Exactly one of *HealthCheck or error will be non-nil. Any non-2xx
119509// status code is an error. Response headers are in either
119510// *HealthCheck.ServerResponse.Header or (if a response was returned at
119511// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
119512// to check whether the returned error was because
119513// http.StatusNotModified was returned.
119514func (c *RegionHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HealthCheck, error) {
119515	gensupport.SetOptions(c.urlParams_, opts...)
119516	res, err := c.doRequest("json")
119517	if res != nil && res.StatusCode == http.StatusNotModified {
119518		if res.Body != nil {
119519			res.Body.Close()
119520		}
119521		return nil, &googleapi.Error{
119522			Code:   res.StatusCode,
119523			Header: res.Header,
119524		}
119525	}
119526	if err != nil {
119527		return nil, err
119528	}
119529	defer googleapi.CloseBody(res)
119530	if err := googleapi.CheckResponse(res); err != nil {
119531		return nil, err
119532	}
119533	ret := &HealthCheck{
119534		ServerResponse: googleapi.ServerResponse{
119535			Header:         res.Header,
119536			HTTPStatusCode: res.StatusCode,
119537		},
119538	}
119539	target := &ret
119540	if err := gensupport.DecodeResponse(target, res); err != nil {
119541		return nil, err
119542	}
119543	return ret, nil
119544	// {
119545	//   "description": "Returns the specified HealthCheck resource. Gets a list of available health checks by making a list() request.",
119546	//   "httpMethod": "GET",
119547	//   "id": "compute.regionHealthChecks.get",
119548	//   "parameterOrder": [
119549	//     "project",
119550	//     "region",
119551	//     "healthCheck"
119552	//   ],
119553	//   "parameters": {
119554	//     "healthCheck": {
119555	//       "description": "Name of the HealthCheck resource to return.",
119556	//       "location": "path",
119557	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
119558	//       "required": true,
119559	//       "type": "string"
119560	//     },
119561	//     "project": {
119562	//       "description": "Project ID for this request.",
119563	//       "location": "path",
119564	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119565	//       "required": true,
119566	//       "type": "string"
119567	//     },
119568	//     "region": {
119569	//       "description": "Name of the region scoping this request.",
119570	//       "location": "path",
119571	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
119572	//       "required": true,
119573	//       "type": "string"
119574	//     }
119575	//   },
119576	//   "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}",
119577	//   "response": {
119578	//     "$ref": "HealthCheck"
119579	//   },
119580	//   "scopes": [
119581	//     "https://www.googleapis.com/auth/cloud-platform",
119582	//     "https://www.googleapis.com/auth/compute",
119583	//     "https://www.googleapis.com/auth/compute.readonly"
119584	//   ]
119585	// }
119586
119587}
119588
119589// method id "compute.regionHealthChecks.insert":
119590
119591type RegionHealthChecksInsertCall struct {
119592	s           *Service
119593	project     string
119594	region      string
119595	healthcheck *HealthCheck
119596	urlParams_  gensupport.URLParams
119597	ctx_        context.Context
119598	header_     http.Header
119599}
119600
119601// Insert: Creates a HealthCheck resource in the specified project using
119602// the data included in the request.
119603//
119604// - project: Project ID for this request.
119605// - region: Name of the region scoping this request.
119606func (r *RegionHealthChecksService) Insert(project string, region string, healthcheck *HealthCheck) *RegionHealthChecksInsertCall {
119607	c := &RegionHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119608	c.project = project
119609	c.region = region
119610	c.healthcheck = healthcheck
119611	return c
119612}
119613
119614// RequestId sets the optional parameter "requestId": An optional
119615// request ID to identify requests. Specify a unique request ID so that
119616// if you must retry your request, the server will know to ignore the
119617// request if it has already been completed.
119618//
119619// For example, consider a situation where you make an initial request
119620// and the request times out. If you make the request again with the
119621// same request ID, the server can check if original operation with the
119622// same request ID was received, and if so, will ignore the second
119623// request. This prevents clients from accidentally creating duplicate
119624// commitments.
119625//
119626// The request ID must be a valid UUID with the exception that zero UUID
119627// is not supported (00000000-0000-0000-0000-000000000000).
119628func (c *RegionHealthChecksInsertCall) RequestId(requestId string) *RegionHealthChecksInsertCall {
119629	c.urlParams_.Set("requestId", requestId)
119630	return c
119631}
119632
119633// Fields allows partial responses to be retrieved. See
119634// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119635// for more information.
119636func (c *RegionHealthChecksInsertCall) Fields(s ...googleapi.Field) *RegionHealthChecksInsertCall {
119637	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119638	return c
119639}
119640
119641// Context sets the context to be used in this call's Do method. Any
119642// pending HTTP request will be aborted if the provided context is
119643// canceled.
119644func (c *RegionHealthChecksInsertCall) Context(ctx context.Context) *RegionHealthChecksInsertCall {
119645	c.ctx_ = ctx
119646	return c
119647}
119648
119649// Header returns an http.Header that can be modified by the caller to
119650// add HTTP headers to the request.
119651func (c *RegionHealthChecksInsertCall) Header() http.Header {
119652	if c.header_ == nil {
119653		c.header_ = make(http.Header)
119654	}
119655	return c.header_
119656}
119657
119658func (c *RegionHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
119659	reqHeaders := make(http.Header)
119660	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
119661	for k, v := range c.header_ {
119662		reqHeaders[k] = v
119663	}
119664	reqHeaders.Set("User-Agent", c.s.userAgent())
119665	var body io.Reader = nil
119666	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
119667	if err != nil {
119668		return nil, err
119669	}
119670	reqHeaders.Set("Content-Type", "application/json")
119671	c.urlParams_.Set("alt", alt)
119672	c.urlParams_.Set("prettyPrint", "false")
119673	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks")
119674	urls += "?" + c.urlParams_.Encode()
119675	req, err := http.NewRequest("POST", urls, body)
119676	if err != nil {
119677		return nil, err
119678	}
119679	req.Header = reqHeaders
119680	googleapi.Expand(req.URL, map[string]string{
119681		"project": c.project,
119682		"region":  c.region,
119683	})
119684	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119685}
119686
119687// Do executes the "compute.regionHealthChecks.insert" call.
119688// Exactly one of *Operation or error will be non-nil. Any non-2xx
119689// status code is an error. Response headers are in either
119690// *Operation.ServerResponse.Header or (if a response was returned at
119691// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
119692// to check whether the returned error was because
119693// http.StatusNotModified was returned.
119694func (c *RegionHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
119695	gensupport.SetOptions(c.urlParams_, opts...)
119696	res, err := c.doRequest("json")
119697	if res != nil && res.StatusCode == http.StatusNotModified {
119698		if res.Body != nil {
119699			res.Body.Close()
119700		}
119701		return nil, &googleapi.Error{
119702			Code:   res.StatusCode,
119703			Header: res.Header,
119704		}
119705	}
119706	if err != nil {
119707		return nil, err
119708	}
119709	defer googleapi.CloseBody(res)
119710	if err := googleapi.CheckResponse(res); err != nil {
119711		return nil, err
119712	}
119713	ret := &Operation{
119714		ServerResponse: googleapi.ServerResponse{
119715			Header:         res.Header,
119716			HTTPStatusCode: res.StatusCode,
119717		},
119718	}
119719	target := &ret
119720	if err := gensupport.DecodeResponse(target, res); err != nil {
119721		return nil, err
119722	}
119723	return ret, nil
119724	// {
119725	//   "description": "Creates a HealthCheck resource in the specified project using the data included in the request.",
119726	//   "httpMethod": "POST",
119727	//   "id": "compute.regionHealthChecks.insert",
119728	//   "parameterOrder": [
119729	//     "project",
119730	//     "region"
119731	//   ],
119732	//   "parameters": {
119733	//     "project": {
119734	//       "description": "Project ID for this request.",
119735	//       "location": "path",
119736	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119737	//       "required": true,
119738	//       "type": "string"
119739	//     },
119740	//     "region": {
119741	//       "description": "Name of the region scoping this request.",
119742	//       "location": "path",
119743	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
119744	//       "required": true,
119745	//       "type": "string"
119746	//     },
119747	//     "requestId": {
119748	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
119749	//       "location": "query",
119750	//       "type": "string"
119751	//     }
119752	//   },
119753	//   "path": "projects/{project}/regions/{region}/healthChecks",
119754	//   "request": {
119755	//     "$ref": "HealthCheck"
119756	//   },
119757	//   "response": {
119758	//     "$ref": "Operation"
119759	//   },
119760	//   "scopes": [
119761	//     "https://www.googleapis.com/auth/cloud-platform",
119762	//     "https://www.googleapis.com/auth/compute"
119763	//   ]
119764	// }
119765
119766}
119767
119768// method id "compute.regionHealthChecks.list":
119769
119770type RegionHealthChecksListCall struct {
119771	s            *Service
119772	project      string
119773	region       string
119774	urlParams_   gensupport.URLParams
119775	ifNoneMatch_ string
119776	ctx_         context.Context
119777	header_      http.Header
119778}
119779
119780// List: Retrieves the list of HealthCheck resources available to the
119781// specified project.
119782//
119783// - project: Project ID for this request.
119784// - region: Name of the region scoping this request.
119785func (r *RegionHealthChecksService) List(project string, region string) *RegionHealthChecksListCall {
119786	c := &RegionHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119787	c.project = project
119788	c.region = region
119789	return c
119790}
119791
119792// Filter sets the optional parameter "filter": A filter expression that
119793// filters resources listed in the response. The expression must specify
119794// the field name, a comparison operator, and the value that you want to
119795// use for filtering. The value must be a string, a number, or a
119796// boolean. The comparison operator must be either `=`, `!=`, `>`, or
119797// `<`.
119798//
119799// For example, if you are filtering Compute Engine instances, you can
119800// exclude instances named `example-instance` by specifying `name !=
119801// example-instance`.
119802//
119803// You can also filter nested fields. For example, you could specify
119804// `scheduling.automaticRestart = false` to include instances only if
119805// they are not scheduled for automatic restarts. You can use filtering
119806// on nested fields to filter based on resource labels.
119807//
119808// To filter on multiple expressions, provide each separate expression
119809// within parentheses. For example: ``` (scheduling.automaticRestart =
119810// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
119811// is an `AND` expression. However, you can include `AND` and `OR`
119812// expressions explicitly. For example: ``` (cpuPlatform = "Intel
119813// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
119814// (scheduling.automaticRestart = true) ```
119815func (c *RegionHealthChecksListCall) Filter(filter string) *RegionHealthChecksListCall {
119816	c.urlParams_.Set("filter", filter)
119817	return c
119818}
119819
119820// MaxResults sets the optional parameter "maxResults": The maximum
119821// number of results per page that should be returned. If the number of
119822// available results is larger than `maxResults`, Compute Engine returns
119823// a `nextPageToken` that can be used to get the next page of results in
119824// subsequent list requests. Acceptable values are `0` to `500`,
119825// inclusive. (Default: `500`)
119826func (c *RegionHealthChecksListCall) MaxResults(maxResults int64) *RegionHealthChecksListCall {
119827	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
119828	return c
119829}
119830
119831// OrderBy sets the optional parameter "orderBy": Sorts list results by
119832// a certain order. By default, results are returned in alphanumerical
119833// order based on the resource name.
119834//
119835// You can also sort results in descending order based on the creation
119836// timestamp using `orderBy="creationTimestamp desc". This sorts
119837// results based on the `creationTimestamp` field in reverse
119838// chronological order (newest result first). Use this to sort resources
119839// like operations so that the newest operation is returned
119840// first.
119841//
119842// Currently, only sorting by `name` or `creationTimestamp desc` is
119843// supported.
119844func (c *RegionHealthChecksListCall) OrderBy(orderBy string) *RegionHealthChecksListCall {
119845	c.urlParams_.Set("orderBy", orderBy)
119846	return c
119847}
119848
119849// PageToken sets the optional parameter "pageToken": Specifies a page
119850// token to use. Set `pageToken` to the `nextPageToken` returned by a
119851// previous list request to get the next page of results.
119852func (c *RegionHealthChecksListCall) PageToken(pageToken string) *RegionHealthChecksListCall {
119853	c.urlParams_.Set("pageToken", pageToken)
119854	return c
119855}
119856
119857// ReturnPartialSuccess sets the optional parameter
119858// "returnPartialSuccess": Opt-in for partial success behavior which
119859// provides partial results in case of failure. The default value is
119860// false.
119861func (c *RegionHealthChecksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionHealthChecksListCall {
119862	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
119863	return c
119864}
119865
119866// Fields allows partial responses to be retrieved. See
119867// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119868// for more information.
119869func (c *RegionHealthChecksListCall) Fields(s ...googleapi.Field) *RegionHealthChecksListCall {
119870	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119871	return c
119872}
119873
119874// IfNoneMatch sets the optional parameter which makes the operation
119875// fail if the object's ETag matches the given value. This is useful for
119876// getting updates only after the object has changed since the last
119877// request. Use googleapi.IsNotModified to check whether the response
119878// error from Do is the result of In-None-Match.
119879func (c *RegionHealthChecksListCall) IfNoneMatch(entityTag string) *RegionHealthChecksListCall {
119880	c.ifNoneMatch_ = entityTag
119881	return c
119882}
119883
119884// Context sets the context to be used in this call's Do method. Any
119885// pending HTTP request will be aborted if the provided context is
119886// canceled.
119887func (c *RegionHealthChecksListCall) Context(ctx context.Context) *RegionHealthChecksListCall {
119888	c.ctx_ = ctx
119889	return c
119890}
119891
119892// Header returns an http.Header that can be modified by the caller to
119893// add HTTP headers to the request.
119894func (c *RegionHealthChecksListCall) Header() http.Header {
119895	if c.header_ == nil {
119896		c.header_ = make(http.Header)
119897	}
119898	return c.header_
119899}
119900
119901func (c *RegionHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
119902	reqHeaders := make(http.Header)
119903	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
119904	for k, v := range c.header_ {
119905		reqHeaders[k] = v
119906	}
119907	reqHeaders.Set("User-Agent", c.s.userAgent())
119908	if c.ifNoneMatch_ != "" {
119909		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
119910	}
119911	var body io.Reader = nil
119912	c.urlParams_.Set("alt", alt)
119913	c.urlParams_.Set("prettyPrint", "false")
119914	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks")
119915	urls += "?" + c.urlParams_.Encode()
119916	req, err := http.NewRequest("GET", urls, body)
119917	if err != nil {
119918		return nil, err
119919	}
119920	req.Header = reqHeaders
119921	googleapi.Expand(req.URL, map[string]string{
119922		"project": c.project,
119923		"region":  c.region,
119924	})
119925	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119926}
119927
119928// Do executes the "compute.regionHealthChecks.list" call.
119929// Exactly one of *HealthCheckList or error will be non-nil. Any non-2xx
119930// status code is an error. Response headers are in either
119931// *HealthCheckList.ServerResponse.Header or (if a response was returned
119932// at all) in error.(*googleapi.Error).Header. Use
119933// googleapi.IsNotModified to check whether the returned error was
119934// because http.StatusNotModified was returned.
119935func (c *RegionHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HealthCheckList, error) {
119936	gensupport.SetOptions(c.urlParams_, opts...)
119937	res, err := c.doRequest("json")
119938	if res != nil && res.StatusCode == http.StatusNotModified {
119939		if res.Body != nil {
119940			res.Body.Close()
119941		}
119942		return nil, &googleapi.Error{
119943			Code:   res.StatusCode,
119944			Header: res.Header,
119945		}
119946	}
119947	if err != nil {
119948		return nil, err
119949	}
119950	defer googleapi.CloseBody(res)
119951	if err := googleapi.CheckResponse(res); err != nil {
119952		return nil, err
119953	}
119954	ret := &HealthCheckList{
119955		ServerResponse: googleapi.ServerResponse{
119956			Header:         res.Header,
119957			HTTPStatusCode: res.StatusCode,
119958		},
119959	}
119960	target := &ret
119961	if err := gensupport.DecodeResponse(target, res); err != nil {
119962		return nil, err
119963	}
119964	return ret, nil
119965	// {
119966	//   "description": "Retrieves the list of HealthCheck resources available to the specified project.",
119967	//   "httpMethod": "GET",
119968	//   "id": "compute.regionHealthChecks.list",
119969	//   "parameterOrder": [
119970	//     "project",
119971	//     "region"
119972	//   ],
119973	//   "parameters": {
119974	//     "filter": {
119975	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
119976	//       "location": "query",
119977	//       "type": "string"
119978	//     },
119979	//     "maxResults": {
119980	//       "default": "500",
119981	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
119982	//       "format": "uint32",
119983	//       "location": "query",
119984	//       "minimum": "0",
119985	//       "type": "integer"
119986	//     },
119987	//     "orderBy": {
119988	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
119989	//       "location": "query",
119990	//       "type": "string"
119991	//     },
119992	//     "pageToken": {
119993	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
119994	//       "location": "query",
119995	//       "type": "string"
119996	//     },
119997	//     "project": {
119998	//       "description": "Project ID for this request.",
119999	//       "location": "path",
120000	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120001	//       "required": true,
120002	//       "type": "string"
120003	//     },
120004	//     "region": {
120005	//       "description": "Name of the region scoping this request.",
120006	//       "location": "path",
120007	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
120008	//       "required": true,
120009	//       "type": "string"
120010	//     },
120011	//     "returnPartialSuccess": {
120012	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
120013	//       "location": "query",
120014	//       "type": "boolean"
120015	//     }
120016	//   },
120017	//   "path": "projects/{project}/regions/{region}/healthChecks",
120018	//   "response": {
120019	//     "$ref": "HealthCheckList"
120020	//   },
120021	//   "scopes": [
120022	//     "https://www.googleapis.com/auth/cloud-platform",
120023	//     "https://www.googleapis.com/auth/compute",
120024	//     "https://www.googleapis.com/auth/compute.readonly"
120025	//   ]
120026	// }
120027
120028}
120029
120030// Pages invokes f for each page of results.
120031// A non-nil error returned from f will halt the iteration.
120032// The provided context supersedes any context provided to the Context method.
120033func (c *RegionHealthChecksListCall) Pages(ctx context.Context, f func(*HealthCheckList) error) error {
120034	c.ctx_ = ctx
120035	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
120036	for {
120037		x, err := c.Do()
120038		if err != nil {
120039			return err
120040		}
120041		if err := f(x); err != nil {
120042			return err
120043		}
120044		if x.NextPageToken == "" {
120045			return nil
120046		}
120047		c.PageToken(x.NextPageToken)
120048	}
120049}
120050
120051// method id "compute.regionHealthChecks.patch":
120052
120053type RegionHealthChecksPatchCall struct {
120054	s           *Service
120055	project     string
120056	region      string
120057	healthCheck string
120058	healthcheck *HealthCheck
120059	urlParams_  gensupport.URLParams
120060	ctx_        context.Context
120061	header_     http.Header
120062}
120063
120064// Patch: Updates a HealthCheck resource in the specified project using
120065// the data included in the request. This method supports PATCH
120066// semantics and uses the JSON merge patch format and processing rules.
120067//
120068// - healthCheck: Name of the HealthCheck resource to patch.
120069// - project: Project ID for this request.
120070// - region: Name of the region scoping this request.
120071func (r *RegionHealthChecksService) Patch(project string, region string, healthCheck string, healthcheck *HealthCheck) *RegionHealthChecksPatchCall {
120072	c := &RegionHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120073	c.project = project
120074	c.region = region
120075	c.healthCheck = healthCheck
120076	c.healthcheck = healthcheck
120077	return c
120078}
120079
120080// RequestId sets the optional parameter "requestId": An optional
120081// request ID to identify requests. Specify a unique request ID so that
120082// if you must retry your request, the server will know to ignore the
120083// request if it has already been completed.
120084//
120085// For example, consider a situation where you make an initial request
120086// and the request times out. If you make the request again with the
120087// same request ID, the server can check if original operation with the
120088// same request ID was received, and if so, will ignore the second
120089// request. This prevents clients from accidentally creating duplicate
120090// commitments.
120091//
120092// The request ID must be a valid UUID with the exception that zero UUID
120093// is not supported (00000000-0000-0000-0000-000000000000).
120094func (c *RegionHealthChecksPatchCall) RequestId(requestId string) *RegionHealthChecksPatchCall {
120095	c.urlParams_.Set("requestId", requestId)
120096	return c
120097}
120098
120099// Fields allows partial responses to be retrieved. See
120100// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120101// for more information.
120102func (c *RegionHealthChecksPatchCall) Fields(s ...googleapi.Field) *RegionHealthChecksPatchCall {
120103	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120104	return c
120105}
120106
120107// Context sets the context to be used in this call's Do method. Any
120108// pending HTTP request will be aborted if the provided context is
120109// canceled.
120110func (c *RegionHealthChecksPatchCall) Context(ctx context.Context) *RegionHealthChecksPatchCall {
120111	c.ctx_ = ctx
120112	return c
120113}
120114
120115// Header returns an http.Header that can be modified by the caller to
120116// add HTTP headers to the request.
120117func (c *RegionHealthChecksPatchCall) Header() http.Header {
120118	if c.header_ == nil {
120119		c.header_ = make(http.Header)
120120	}
120121	return c.header_
120122}
120123
120124func (c *RegionHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
120125	reqHeaders := make(http.Header)
120126	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
120127	for k, v := range c.header_ {
120128		reqHeaders[k] = v
120129	}
120130	reqHeaders.Set("User-Agent", c.s.userAgent())
120131	var body io.Reader = nil
120132	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
120133	if err != nil {
120134		return nil, err
120135	}
120136	reqHeaders.Set("Content-Type", "application/json")
120137	c.urlParams_.Set("alt", alt)
120138	c.urlParams_.Set("prettyPrint", "false")
120139	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks/{healthCheck}")
120140	urls += "?" + c.urlParams_.Encode()
120141	req, err := http.NewRequest("PATCH", urls, body)
120142	if err != nil {
120143		return nil, err
120144	}
120145	req.Header = reqHeaders
120146	googleapi.Expand(req.URL, map[string]string{
120147		"project":     c.project,
120148		"region":      c.region,
120149		"healthCheck": c.healthCheck,
120150	})
120151	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120152}
120153
120154// Do executes the "compute.regionHealthChecks.patch" call.
120155// Exactly one of *Operation or error will be non-nil. Any non-2xx
120156// status code is an error. Response headers are in either
120157// *Operation.ServerResponse.Header or (if a response was returned at
120158// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
120159// to check whether the returned error was because
120160// http.StatusNotModified was returned.
120161func (c *RegionHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
120162	gensupport.SetOptions(c.urlParams_, opts...)
120163	res, err := c.doRequest("json")
120164	if res != nil && res.StatusCode == http.StatusNotModified {
120165		if res.Body != nil {
120166			res.Body.Close()
120167		}
120168		return nil, &googleapi.Error{
120169			Code:   res.StatusCode,
120170			Header: res.Header,
120171		}
120172	}
120173	if err != nil {
120174		return nil, err
120175	}
120176	defer googleapi.CloseBody(res)
120177	if err := googleapi.CheckResponse(res); err != nil {
120178		return nil, err
120179	}
120180	ret := &Operation{
120181		ServerResponse: googleapi.ServerResponse{
120182			Header:         res.Header,
120183			HTTPStatusCode: res.StatusCode,
120184		},
120185	}
120186	target := &ret
120187	if err := gensupport.DecodeResponse(target, res); err != nil {
120188		return nil, err
120189	}
120190	return ret, nil
120191	// {
120192	//   "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.",
120193	//   "httpMethod": "PATCH",
120194	//   "id": "compute.regionHealthChecks.patch",
120195	//   "parameterOrder": [
120196	//     "project",
120197	//     "region",
120198	//     "healthCheck"
120199	//   ],
120200	//   "parameters": {
120201	//     "healthCheck": {
120202	//       "description": "Name of the HealthCheck resource to patch.",
120203	//       "location": "path",
120204	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
120205	//       "required": true,
120206	//       "type": "string"
120207	//     },
120208	//     "project": {
120209	//       "description": "Project ID for this request.",
120210	//       "location": "path",
120211	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120212	//       "required": true,
120213	//       "type": "string"
120214	//     },
120215	//     "region": {
120216	//       "description": "Name of the region scoping this request.",
120217	//       "location": "path",
120218	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
120219	//       "required": true,
120220	//       "type": "string"
120221	//     },
120222	//     "requestId": {
120223	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
120224	//       "location": "query",
120225	//       "type": "string"
120226	//     }
120227	//   },
120228	//   "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}",
120229	//   "request": {
120230	//     "$ref": "HealthCheck"
120231	//   },
120232	//   "response": {
120233	//     "$ref": "Operation"
120234	//   },
120235	//   "scopes": [
120236	//     "https://www.googleapis.com/auth/cloud-platform",
120237	//     "https://www.googleapis.com/auth/compute"
120238	//   ]
120239	// }
120240
120241}
120242
120243// method id "compute.regionHealthChecks.update":
120244
120245type RegionHealthChecksUpdateCall struct {
120246	s           *Service
120247	project     string
120248	region      string
120249	healthCheck string
120250	healthcheck *HealthCheck
120251	urlParams_  gensupport.URLParams
120252	ctx_        context.Context
120253	header_     http.Header
120254}
120255
120256// Update: Updates a HealthCheck resource in the specified project using
120257// the data included in the request.
120258//
120259// - healthCheck: Name of the HealthCheck resource to update.
120260// - project: Project ID for this request.
120261// - region: Name of the region scoping this request.
120262func (r *RegionHealthChecksService) Update(project string, region string, healthCheck string, healthcheck *HealthCheck) *RegionHealthChecksUpdateCall {
120263	c := &RegionHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120264	c.project = project
120265	c.region = region
120266	c.healthCheck = healthCheck
120267	c.healthcheck = healthcheck
120268	return c
120269}
120270
120271// RequestId sets the optional parameter "requestId": An optional
120272// request ID to identify requests. Specify a unique request ID so that
120273// if you must retry your request, the server will know to ignore the
120274// request if it has already been completed.
120275//
120276// For example, consider a situation where you make an initial request
120277// and the request times out. If you make the request again with the
120278// same request ID, the server can check if original operation with the
120279// same request ID was received, and if so, will ignore the second
120280// request. This prevents clients from accidentally creating duplicate
120281// commitments.
120282//
120283// The request ID must be a valid UUID with the exception that zero UUID
120284// is not supported (00000000-0000-0000-0000-000000000000).
120285func (c *RegionHealthChecksUpdateCall) RequestId(requestId string) *RegionHealthChecksUpdateCall {
120286	c.urlParams_.Set("requestId", requestId)
120287	return c
120288}
120289
120290// Fields allows partial responses to be retrieved. See
120291// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120292// for more information.
120293func (c *RegionHealthChecksUpdateCall) Fields(s ...googleapi.Field) *RegionHealthChecksUpdateCall {
120294	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120295	return c
120296}
120297
120298// Context sets the context to be used in this call's Do method. Any
120299// pending HTTP request will be aborted if the provided context is
120300// canceled.
120301func (c *RegionHealthChecksUpdateCall) Context(ctx context.Context) *RegionHealthChecksUpdateCall {
120302	c.ctx_ = ctx
120303	return c
120304}
120305
120306// Header returns an http.Header that can be modified by the caller to
120307// add HTTP headers to the request.
120308func (c *RegionHealthChecksUpdateCall) Header() http.Header {
120309	if c.header_ == nil {
120310		c.header_ = make(http.Header)
120311	}
120312	return c.header_
120313}
120314
120315func (c *RegionHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
120316	reqHeaders := make(http.Header)
120317	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
120318	for k, v := range c.header_ {
120319		reqHeaders[k] = v
120320	}
120321	reqHeaders.Set("User-Agent", c.s.userAgent())
120322	var body io.Reader = nil
120323	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
120324	if err != nil {
120325		return nil, err
120326	}
120327	reqHeaders.Set("Content-Type", "application/json")
120328	c.urlParams_.Set("alt", alt)
120329	c.urlParams_.Set("prettyPrint", "false")
120330	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/healthChecks/{healthCheck}")
120331	urls += "?" + c.urlParams_.Encode()
120332	req, err := http.NewRequest("PUT", urls, body)
120333	if err != nil {
120334		return nil, err
120335	}
120336	req.Header = reqHeaders
120337	googleapi.Expand(req.URL, map[string]string{
120338		"project":     c.project,
120339		"region":      c.region,
120340		"healthCheck": c.healthCheck,
120341	})
120342	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120343}
120344
120345// Do executes the "compute.regionHealthChecks.update" call.
120346// Exactly one of *Operation or error will be non-nil. Any non-2xx
120347// status code is an error. Response headers are in either
120348// *Operation.ServerResponse.Header or (if a response was returned at
120349// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
120350// to check whether the returned error was because
120351// http.StatusNotModified was returned.
120352func (c *RegionHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
120353	gensupport.SetOptions(c.urlParams_, opts...)
120354	res, err := c.doRequest("json")
120355	if res != nil && res.StatusCode == http.StatusNotModified {
120356		if res.Body != nil {
120357			res.Body.Close()
120358		}
120359		return nil, &googleapi.Error{
120360			Code:   res.StatusCode,
120361			Header: res.Header,
120362		}
120363	}
120364	if err != nil {
120365		return nil, err
120366	}
120367	defer googleapi.CloseBody(res)
120368	if err := googleapi.CheckResponse(res); err != nil {
120369		return nil, err
120370	}
120371	ret := &Operation{
120372		ServerResponse: googleapi.ServerResponse{
120373			Header:         res.Header,
120374			HTTPStatusCode: res.StatusCode,
120375		},
120376	}
120377	target := &ret
120378	if err := gensupport.DecodeResponse(target, res); err != nil {
120379		return nil, err
120380	}
120381	return ret, nil
120382	// {
120383	//   "description": "Updates a HealthCheck resource in the specified project using the data included in the request.",
120384	//   "httpMethod": "PUT",
120385	//   "id": "compute.regionHealthChecks.update",
120386	//   "parameterOrder": [
120387	//     "project",
120388	//     "region",
120389	//     "healthCheck"
120390	//   ],
120391	//   "parameters": {
120392	//     "healthCheck": {
120393	//       "description": "Name of the HealthCheck resource to update.",
120394	//       "location": "path",
120395	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
120396	//       "required": true,
120397	//       "type": "string"
120398	//     },
120399	//     "project": {
120400	//       "description": "Project ID for this request.",
120401	//       "location": "path",
120402	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120403	//       "required": true,
120404	//       "type": "string"
120405	//     },
120406	//     "region": {
120407	//       "description": "Name of the region scoping this request.",
120408	//       "location": "path",
120409	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
120410	//       "required": true,
120411	//       "type": "string"
120412	//     },
120413	//     "requestId": {
120414	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
120415	//       "location": "query",
120416	//       "type": "string"
120417	//     }
120418	//   },
120419	//   "path": "projects/{project}/regions/{region}/healthChecks/{healthCheck}",
120420	//   "request": {
120421	//     "$ref": "HealthCheck"
120422	//   },
120423	//   "response": {
120424	//     "$ref": "Operation"
120425	//   },
120426	//   "scopes": [
120427	//     "https://www.googleapis.com/auth/cloud-platform",
120428	//     "https://www.googleapis.com/auth/compute"
120429	//   ]
120430	// }
120431
120432}
120433
120434// method id "compute.regionInstanceGroupManagers.abandonInstances":
120435
120436type RegionInstanceGroupManagersAbandonInstancesCall struct {
120437	s                                                  *Service
120438	project                                            string
120439	region                                             string
120440	instanceGroupManager                               string
120441	regioninstancegroupmanagersabandoninstancesrequest *RegionInstanceGroupManagersAbandonInstancesRequest
120442	urlParams_                                         gensupport.URLParams
120443	ctx_                                               context.Context
120444	header_                                            http.Header
120445}
120446
120447// AbandonInstances: Flags the specified instances to be immediately
120448// removed from the managed instance group. Abandoning an instance does
120449// not delete the instance, but it does remove the instance from any
120450// target pools that are applied by the managed instance group. This
120451// method reduces the targetSize of the managed instance group by the
120452// number of instances that you abandon. This operation is marked as
120453// DONE when the action is scheduled even if the instances have not yet
120454// been removed from the group. You must separately verify the status of
120455// the abandoning action with the listmanagedinstances method.
120456//
120457// If the group is part of a backend service that has enabled connection
120458// draining, it can take up to 60 seconds after the connection draining
120459// duration has elapsed before the VM instance is removed or
120460// deleted.
120461//
120462// You can specify a maximum of 1000 instances with this method per
120463// request.
120464//
120465// - instanceGroupManager: Name of the managed instance group.
120466// - project: Project ID for this request.
120467// - region: Name of the region scoping this request.
120468func (r *RegionInstanceGroupManagersService) AbandonInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersabandoninstancesrequest *RegionInstanceGroupManagersAbandonInstancesRequest) *RegionInstanceGroupManagersAbandonInstancesCall {
120469	c := &RegionInstanceGroupManagersAbandonInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120470	c.project = project
120471	c.region = region
120472	c.instanceGroupManager = instanceGroupManager
120473	c.regioninstancegroupmanagersabandoninstancesrequest = regioninstancegroupmanagersabandoninstancesrequest
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 *RegionInstanceGroupManagersAbandonInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersAbandonInstancesCall {
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 *RegionInstanceGroupManagersAbandonInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersAbandonInstancesCall {
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 *RegionInstanceGroupManagersAbandonInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersAbandonInstancesCall {
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 *RegionInstanceGroupManagersAbandonInstancesCall) Header() http.Header {
120515	if c.header_ == nil {
120516		c.header_ = make(http.Header)
120517	}
120518	return c.header_
120519}
120520
120521func (c *RegionInstanceGroupManagersAbandonInstancesCall) 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.regioninstancegroupmanagersabandoninstancesrequest)
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}/instanceGroupManagers/{instanceGroupManager}/abandonInstances")
120537	urls += "?" + c.urlParams_.Encode()
120538	req, err := http.NewRequest("POST", 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		"instanceGroupManager": c.instanceGroupManager,
120547	})
120548	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120549}
120550
120551// Do executes the "compute.regionInstanceGroupManagers.abandonInstances" 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 *RegionInstanceGroupManagersAbandonInstancesCall) 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": "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.",
120590	//   "httpMethod": "POST",
120591	//   "id": "compute.regionInstanceGroupManagers.abandonInstances",
120592	//   "parameterOrder": [
120593	//     "project",
120594	//     "region",
120595	//     "instanceGroupManager"
120596	//   ],
120597	//   "parameters": {
120598	//     "instanceGroupManager": {
120599	//       "description": "Name of the managed instance group.",
120600	//       "location": "path",
120601	//       "required": true,
120602	//       "type": "string"
120603	//     },
120604	//     "project": {
120605	//       "description": "Project ID for this request.",
120606	//       "location": "path",
120607	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120608	//       "required": true,
120609	//       "type": "string"
120610	//     },
120611	//     "region": {
120612	//       "description": "Name of the region scoping this request.",
120613	//       "location": "path",
120614	//       "required": true,
120615	//       "type": "string"
120616	//     },
120617	//     "requestId": {
120618	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
120619	//       "location": "query",
120620	//       "type": "string"
120621	//     }
120622	//   },
120623	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances",
120624	//   "request": {
120625	//     "$ref": "RegionInstanceGroupManagersAbandonInstancesRequest"
120626	//   },
120627	//   "response": {
120628	//     "$ref": "Operation"
120629	//   },
120630	//   "scopes": [
120631	//     "https://www.googleapis.com/auth/cloud-platform",
120632	//     "https://www.googleapis.com/auth/compute"
120633	//   ]
120634	// }
120635
120636}
120637
120638// method id "compute.regionInstanceGroupManagers.applyUpdatesToInstances":
120639
120640type RegionInstanceGroupManagersApplyUpdatesToInstancesCall struct {
120641	s                                              *Service
120642	project                                        string
120643	region                                         string
120644	instanceGroupManager                           string
120645	regioninstancegroupmanagersapplyupdatesrequest *RegionInstanceGroupManagersApplyUpdatesRequest
120646	urlParams_                                     gensupport.URLParams
120647	ctx_                                           context.Context
120648	header_                                        http.Header
120649}
120650
120651// ApplyUpdatesToInstances: Apply updates to selected instances the
120652// managed instance group.
120653//
120654// - instanceGroupManager: The name of the managed instance group,
120655//   should conform to RFC1035.
120656// - project: Project ID for this request.
120657// - region: Name of the region scoping this request, should conform to
120658//   RFC1035.
120659func (r *RegionInstanceGroupManagersService) ApplyUpdatesToInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersapplyupdatesrequest *RegionInstanceGroupManagersApplyUpdatesRequest) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall {
120660	c := &RegionInstanceGroupManagersApplyUpdatesToInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120661	c.project = project
120662	c.region = region
120663	c.instanceGroupManager = instanceGroupManager
120664	c.regioninstancegroupmanagersapplyupdatesrequest = regioninstancegroupmanagersapplyupdatesrequest
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 *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall {
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 *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall {
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 *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Header() http.Header {
120687	if c.header_ == nil {
120688		c.header_ = make(http.Header)
120689	}
120690	return c.header_
120691}
120692
120693func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) 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.regioninstancegroupmanagersapplyupdatesrequest)
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}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances")
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		"instanceGroupManager": c.instanceGroupManager,
120719	})
120720	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120721}
120722
120723// Do executes the "compute.regionInstanceGroupManagers.applyUpdatesToInstances" call.
120724// Exactly one of *Operation or error will be non-nil. Any non-2xx
120725// status code is an error. Response headers are in either
120726// *Operation.ServerResponse.Header or (if a response was returned at
120727// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
120728// to check whether the returned error was because
120729// http.StatusNotModified was returned.
120730func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, 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 := &Operation{
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": "Apply updates to selected instances the managed instance group.",
120762	//   "httpMethod": "POST",
120763	//   "id": "compute.regionInstanceGroupManagers.applyUpdatesToInstances",
120764	//   "parameterOrder": [
120765	//     "project",
120766	//     "region",
120767	//     "instanceGroupManager"
120768	//   ],
120769	//   "parameters": {
120770	//     "instanceGroupManager": {
120771	//       "description": "The name of the managed instance group, should conform to RFC1035.",
120772	//       "location": "path",
120773	//       "required": true,
120774	//       "type": "string"
120775	//     },
120776	//     "project": {
120777	//       "description": "Project ID for this request.",
120778	//       "location": "path",
120779	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120780	//       "required": true,
120781	//       "type": "string"
120782	//     },
120783	//     "region": {
120784	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
120785	//       "location": "path",
120786	//       "required": true,
120787	//       "type": "string"
120788	//     }
120789	//   },
120790	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances",
120791	//   "request": {
120792	//     "$ref": "RegionInstanceGroupManagersApplyUpdatesRequest"
120793	//   },
120794	//   "response": {
120795	//     "$ref": "Operation"
120796	//   },
120797	//   "scopes": [
120798	//     "https://www.googleapis.com/auth/cloud-platform",
120799	//     "https://www.googleapis.com/auth/compute"
120800	//   ]
120801	// }
120802
120803}
120804
120805// method id "compute.regionInstanceGroupManagers.createInstances":
120806
120807type RegionInstanceGroupManagersCreateInstancesCall struct {
120808	s                                                 *Service
120809	project                                           string
120810	region                                            string
120811	instanceGroupManager                              string
120812	regioninstancegroupmanagerscreateinstancesrequest *RegionInstanceGroupManagersCreateInstancesRequest
120813	urlParams_                                        gensupport.URLParams
120814	ctx_                                              context.Context
120815	header_                                           http.Header
120816}
120817
120818// CreateInstances: Creates instances with per-instance configs in this
120819// regional managed instance group. Instances are created using the
120820// current instance template. The create instances operation is marked
120821// DONE if the createInstances request is successful. The underlying
120822// actions take additional time. You must separately verify the status
120823// of the creating or actions with the listmanagedinstances method.
120824//
120825// - instanceGroupManager: The name of the managed instance group. It
120826//   should conform to RFC1035.
120827// - project: Project ID for this request.
120828// - region: The name of the region where the managed instance group is
120829//   located. It should conform to RFC1035.
120830func (r *RegionInstanceGroupManagersService) CreateInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagerscreateinstancesrequest *RegionInstanceGroupManagersCreateInstancesRequest) *RegionInstanceGroupManagersCreateInstancesCall {
120831	c := &RegionInstanceGroupManagersCreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120832	c.project = project
120833	c.region = region
120834	c.instanceGroupManager = instanceGroupManager
120835	c.regioninstancegroupmanagerscreateinstancesrequest = regioninstancegroupmanagerscreateinstancesrequest
120836	return c
120837}
120838
120839// RequestId sets the optional parameter "requestId": An optional
120840// request ID to identify requests. Specify a unique request ID so that
120841// if you must retry your request, the server will know to ignore the
120842// request if it has already been completed.
120843//
120844// For example, consider a situation where you make an initial request
120845// and the request times out. If you make the request again with the
120846// same request ID, the server can check if original operation with the
120847// same request ID was received, and if so, will ignore the second
120848// request.
120849//
120850// The request ID must be a valid UUID with the exception that zero UUID
120851// is not supported (00000000-0000-0000-0000-000000000000).
120852func (c *RegionInstanceGroupManagersCreateInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersCreateInstancesCall {
120853	c.urlParams_.Set("requestId", requestId)
120854	return c
120855}
120856
120857// Fields allows partial responses to be retrieved. See
120858// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120859// for more information.
120860func (c *RegionInstanceGroupManagersCreateInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersCreateInstancesCall {
120861	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120862	return c
120863}
120864
120865// Context sets the context to be used in this call's Do method. Any
120866// pending HTTP request will be aborted if the provided context is
120867// canceled.
120868func (c *RegionInstanceGroupManagersCreateInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersCreateInstancesCall {
120869	c.ctx_ = ctx
120870	return c
120871}
120872
120873// Header returns an http.Header that can be modified by the caller to
120874// add HTTP headers to the request.
120875func (c *RegionInstanceGroupManagersCreateInstancesCall) Header() http.Header {
120876	if c.header_ == nil {
120877		c.header_ = make(http.Header)
120878	}
120879	return c.header_
120880}
120881
120882func (c *RegionInstanceGroupManagersCreateInstancesCall) doRequest(alt string) (*http.Response, error) {
120883	reqHeaders := make(http.Header)
120884	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
120885	for k, v := range c.header_ {
120886		reqHeaders[k] = v
120887	}
120888	reqHeaders.Set("User-Agent", c.s.userAgent())
120889	var body io.Reader = nil
120890	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerscreateinstancesrequest)
120891	if err != nil {
120892		return nil, err
120893	}
120894	reqHeaders.Set("Content-Type", "application/json")
120895	c.urlParams_.Set("alt", alt)
120896	c.urlParams_.Set("prettyPrint", "false")
120897	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances")
120898	urls += "?" + c.urlParams_.Encode()
120899	req, err := http.NewRequest("POST", urls, body)
120900	if err != nil {
120901		return nil, err
120902	}
120903	req.Header = reqHeaders
120904	googleapi.Expand(req.URL, map[string]string{
120905		"project":              c.project,
120906		"region":               c.region,
120907		"instanceGroupManager": c.instanceGroupManager,
120908	})
120909	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120910}
120911
120912// Do executes the "compute.regionInstanceGroupManagers.createInstances" call.
120913// Exactly one of *Operation or error will be non-nil. Any non-2xx
120914// status code is an error. Response headers are in either
120915// *Operation.ServerResponse.Header or (if a response was returned at
120916// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
120917// to check whether the returned error was because
120918// http.StatusNotModified was returned.
120919func (c *RegionInstanceGroupManagersCreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
120920	gensupport.SetOptions(c.urlParams_, opts...)
120921	res, err := c.doRequest("json")
120922	if res != nil && res.StatusCode == http.StatusNotModified {
120923		if res.Body != nil {
120924			res.Body.Close()
120925		}
120926		return nil, &googleapi.Error{
120927			Code:   res.StatusCode,
120928			Header: res.Header,
120929		}
120930	}
120931	if err != nil {
120932		return nil, err
120933	}
120934	defer googleapi.CloseBody(res)
120935	if err := googleapi.CheckResponse(res); err != nil {
120936		return nil, err
120937	}
120938	ret := &Operation{
120939		ServerResponse: googleapi.ServerResponse{
120940			Header:         res.Header,
120941			HTTPStatusCode: res.StatusCode,
120942		},
120943	}
120944	target := &ret
120945	if err := gensupport.DecodeResponse(target, res); err != nil {
120946		return nil, err
120947	}
120948	return ret, nil
120949	// {
120950	//   "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.",
120951	//   "httpMethod": "POST",
120952	//   "id": "compute.regionInstanceGroupManagers.createInstances",
120953	//   "parameterOrder": [
120954	//     "project",
120955	//     "region",
120956	//     "instanceGroupManager"
120957	//   ],
120958	//   "parameters": {
120959	//     "instanceGroupManager": {
120960	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
120961	//       "location": "path",
120962	//       "required": true,
120963	//       "type": "string"
120964	//     },
120965	//     "project": {
120966	//       "description": "Project ID for this request.",
120967	//       "location": "path",
120968	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120969	//       "required": true,
120970	//       "type": "string"
120971	//     },
120972	//     "region": {
120973	//       "description": "The name of the region where the managed instance group is located. It should conform to RFC1035.",
120974	//       "location": "path",
120975	//       "required": true,
120976	//       "type": "string"
120977	//     },
120978	//     "requestId": {
120979	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same 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).",
120980	//       "location": "query",
120981	//       "type": "string"
120982	//     }
120983	//   },
120984	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances",
120985	//   "request": {
120986	//     "$ref": "RegionInstanceGroupManagersCreateInstancesRequest"
120987	//   },
120988	//   "response": {
120989	//     "$ref": "Operation"
120990	//   },
120991	//   "scopes": [
120992	//     "https://www.googleapis.com/auth/cloud-platform",
120993	//     "https://www.googleapis.com/auth/compute"
120994	//   ]
120995	// }
120996
120997}
120998
120999// method id "compute.regionInstanceGroupManagers.delete":
121000
121001type RegionInstanceGroupManagersDeleteCall struct {
121002	s                    *Service
121003	project              string
121004	region               string
121005	instanceGroupManager string
121006	urlParams_           gensupport.URLParams
121007	ctx_                 context.Context
121008	header_              http.Header
121009}
121010
121011// Delete: Deletes the specified managed instance group and all of the
121012// instances in that group.
121013//
121014// - instanceGroupManager: Name of the managed instance group to delete.
121015// - project: Project ID for this request.
121016// - region: Name of the region scoping this request.
121017func (r *RegionInstanceGroupManagersService) Delete(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersDeleteCall {
121018	c := &RegionInstanceGroupManagersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121019	c.project = project
121020	c.region = region
121021	c.instanceGroupManager = instanceGroupManager
121022	return c
121023}
121024
121025// RequestId sets the optional parameter "requestId": An optional
121026// request ID to identify requests. Specify a unique request ID so that
121027// if you must retry your request, the server will know to ignore the
121028// request if it has already been completed.
121029//
121030// For example, consider a situation where you make an initial request
121031// and the request times out. If you make the request again with the
121032// same request ID, the server can check if original operation with the
121033// same request ID was received, and if so, will ignore the second
121034// request. This prevents clients from accidentally creating duplicate
121035// commitments.
121036//
121037// The request ID must be a valid UUID with the exception that zero UUID
121038// is not supported (00000000-0000-0000-0000-000000000000).
121039func (c *RegionInstanceGroupManagersDeleteCall) RequestId(requestId string) *RegionInstanceGroupManagersDeleteCall {
121040	c.urlParams_.Set("requestId", requestId)
121041	return c
121042}
121043
121044// Fields allows partial responses to be retrieved. See
121045// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121046// for more information.
121047func (c *RegionInstanceGroupManagersDeleteCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeleteCall {
121048	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121049	return c
121050}
121051
121052// Context sets the context to be used in this call's Do method. Any
121053// pending HTTP request will be aborted if the provided context is
121054// canceled.
121055func (c *RegionInstanceGroupManagersDeleteCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeleteCall {
121056	c.ctx_ = ctx
121057	return c
121058}
121059
121060// Header returns an http.Header that can be modified by the caller to
121061// add HTTP headers to the request.
121062func (c *RegionInstanceGroupManagersDeleteCall) Header() http.Header {
121063	if c.header_ == nil {
121064		c.header_ = make(http.Header)
121065	}
121066	return c.header_
121067}
121068
121069func (c *RegionInstanceGroupManagersDeleteCall) doRequest(alt string) (*http.Response, error) {
121070	reqHeaders := make(http.Header)
121071	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
121072	for k, v := range c.header_ {
121073		reqHeaders[k] = v
121074	}
121075	reqHeaders.Set("User-Agent", c.s.userAgent())
121076	var body io.Reader = nil
121077	c.urlParams_.Set("alt", alt)
121078	c.urlParams_.Set("prettyPrint", "false")
121079	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
121080	urls += "?" + c.urlParams_.Encode()
121081	req, err := http.NewRequest("DELETE", urls, body)
121082	if err != nil {
121083		return nil, err
121084	}
121085	req.Header = reqHeaders
121086	googleapi.Expand(req.URL, map[string]string{
121087		"project":              c.project,
121088		"region":               c.region,
121089		"instanceGroupManager": c.instanceGroupManager,
121090	})
121091	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121092}
121093
121094// Do executes the "compute.regionInstanceGroupManagers.delete" call.
121095// Exactly one of *Operation or error will be non-nil. Any non-2xx
121096// status code is an error. Response headers are in either
121097// *Operation.ServerResponse.Header or (if a response was returned at
121098// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121099// to check whether the returned error was because
121100// http.StatusNotModified was returned.
121101func (c *RegionInstanceGroupManagersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
121102	gensupport.SetOptions(c.urlParams_, opts...)
121103	res, err := c.doRequest("json")
121104	if res != nil && res.StatusCode == http.StatusNotModified {
121105		if res.Body != nil {
121106			res.Body.Close()
121107		}
121108		return nil, &googleapi.Error{
121109			Code:   res.StatusCode,
121110			Header: res.Header,
121111		}
121112	}
121113	if err != nil {
121114		return nil, err
121115	}
121116	defer googleapi.CloseBody(res)
121117	if err := googleapi.CheckResponse(res); err != nil {
121118		return nil, err
121119	}
121120	ret := &Operation{
121121		ServerResponse: googleapi.ServerResponse{
121122			Header:         res.Header,
121123			HTTPStatusCode: res.StatusCode,
121124		},
121125	}
121126	target := &ret
121127	if err := gensupport.DecodeResponse(target, res); err != nil {
121128		return nil, err
121129	}
121130	return ret, nil
121131	// {
121132	//   "description": "Deletes the specified managed instance group and all of the instances in that group.",
121133	//   "httpMethod": "DELETE",
121134	//   "id": "compute.regionInstanceGroupManagers.delete",
121135	//   "parameterOrder": [
121136	//     "project",
121137	//     "region",
121138	//     "instanceGroupManager"
121139	//   ],
121140	//   "parameters": {
121141	//     "instanceGroupManager": {
121142	//       "description": "Name of the managed instance group to delete.",
121143	//       "location": "path",
121144	//       "required": true,
121145	//       "type": "string"
121146	//     },
121147	//     "project": {
121148	//       "description": "Project ID for this request.",
121149	//       "location": "path",
121150	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121151	//       "required": true,
121152	//       "type": "string"
121153	//     },
121154	//     "region": {
121155	//       "description": "Name of the region scoping this request.",
121156	//       "location": "path",
121157	//       "required": true,
121158	//       "type": "string"
121159	//     },
121160	//     "requestId": {
121161	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
121162	//       "location": "query",
121163	//       "type": "string"
121164	//     }
121165	//   },
121166	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
121167	//   "response": {
121168	//     "$ref": "Operation"
121169	//   },
121170	//   "scopes": [
121171	//     "https://www.googleapis.com/auth/cloud-platform",
121172	//     "https://www.googleapis.com/auth/compute"
121173	//   ]
121174	// }
121175
121176}
121177
121178// method id "compute.regionInstanceGroupManagers.deleteInstances":
121179
121180type RegionInstanceGroupManagersDeleteInstancesCall struct {
121181	s                                                 *Service
121182	project                                           string
121183	region                                            string
121184	instanceGroupManager                              string
121185	regioninstancegroupmanagersdeleteinstancesrequest *RegionInstanceGroupManagersDeleteInstancesRequest
121186	urlParams_                                        gensupport.URLParams
121187	ctx_                                              context.Context
121188	header_                                           http.Header
121189}
121190
121191// DeleteInstances: Flags the specified instances in the managed
121192// instance group to be immediately deleted. The instances are also
121193// removed from any target pools of which they were a member. This
121194// method reduces the targetSize of the managed instance group by the
121195// number of instances that you delete. The deleteInstances operation is
121196// marked DONE if the deleteInstances request is successful. The
121197// underlying actions take additional time. You must separately verify
121198// the status of the deleting action with the listmanagedinstances
121199// method.
121200//
121201// If the group is part of a backend service that has enabled connection
121202// draining, it can take up to 60 seconds after the connection draining
121203// duration has elapsed before the VM instance is removed or
121204// deleted.
121205//
121206// You can specify a maximum of 1000 instances with this method per
121207// request.
121208//
121209// - instanceGroupManager: Name of the managed instance group.
121210// - project: Project ID for this request.
121211// - region: Name of the region scoping this request.
121212func (r *RegionInstanceGroupManagersService) DeleteInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersdeleteinstancesrequest *RegionInstanceGroupManagersDeleteInstancesRequest) *RegionInstanceGroupManagersDeleteInstancesCall {
121213	c := &RegionInstanceGroupManagersDeleteInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121214	c.project = project
121215	c.region = region
121216	c.instanceGroupManager = instanceGroupManager
121217	c.regioninstancegroupmanagersdeleteinstancesrequest = regioninstancegroupmanagersdeleteinstancesrequest
121218	return c
121219}
121220
121221// RequestId sets the optional parameter "requestId": An optional
121222// request ID to identify requests. Specify a unique request ID so that
121223// if you must retry your request, the server will know to ignore the
121224// request if it has already been completed.
121225//
121226// For example, consider a situation where you make an initial request
121227// and the request times out. If you make the request again with the
121228// same request ID, the server can check if original operation with the
121229// same request ID was received, and if so, will ignore the second
121230// request. This prevents clients from accidentally creating duplicate
121231// commitments.
121232//
121233// The request ID must be a valid UUID with the exception that zero UUID
121234// is not supported (00000000-0000-0000-0000-000000000000).
121235func (c *RegionInstanceGroupManagersDeleteInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersDeleteInstancesCall {
121236	c.urlParams_.Set("requestId", requestId)
121237	return c
121238}
121239
121240// Fields allows partial responses to be retrieved. See
121241// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121242// for more information.
121243func (c *RegionInstanceGroupManagersDeleteInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeleteInstancesCall {
121244	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121245	return c
121246}
121247
121248// Context sets the context to be used in this call's Do method. Any
121249// pending HTTP request will be aborted if the provided context is
121250// canceled.
121251func (c *RegionInstanceGroupManagersDeleteInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeleteInstancesCall {
121252	c.ctx_ = ctx
121253	return c
121254}
121255
121256// Header returns an http.Header that can be modified by the caller to
121257// add HTTP headers to the request.
121258func (c *RegionInstanceGroupManagersDeleteInstancesCall) Header() http.Header {
121259	if c.header_ == nil {
121260		c.header_ = make(http.Header)
121261	}
121262	return c.header_
121263}
121264
121265func (c *RegionInstanceGroupManagersDeleteInstancesCall) doRequest(alt string) (*http.Response, error) {
121266	reqHeaders := make(http.Header)
121267	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
121268	for k, v := range c.header_ {
121269		reqHeaders[k] = v
121270	}
121271	reqHeaders.Set("User-Agent", c.s.userAgent())
121272	var body io.Reader = nil
121273	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersdeleteinstancesrequest)
121274	if err != nil {
121275		return nil, err
121276	}
121277	reqHeaders.Set("Content-Type", "application/json")
121278	c.urlParams_.Set("alt", alt)
121279	c.urlParams_.Set("prettyPrint", "false")
121280	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances")
121281	urls += "?" + c.urlParams_.Encode()
121282	req, err := http.NewRequest("POST", urls, body)
121283	if err != nil {
121284		return nil, err
121285	}
121286	req.Header = reqHeaders
121287	googleapi.Expand(req.URL, map[string]string{
121288		"project":              c.project,
121289		"region":               c.region,
121290		"instanceGroupManager": c.instanceGroupManager,
121291	})
121292	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121293}
121294
121295// Do executes the "compute.regionInstanceGroupManagers.deleteInstances" call.
121296// Exactly one of *Operation or error will be non-nil. Any non-2xx
121297// status code is an error. Response headers are in either
121298// *Operation.ServerResponse.Header or (if a response was returned at
121299// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121300// to check whether the returned error was because
121301// http.StatusNotModified was returned.
121302func (c *RegionInstanceGroupManagersDeleteInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
121303	gensupport.SetOptions(c.urlParams_, opts...)
121304	res, err := c.doRequest("json")
121305	if res != nil && res.StatusCode == http.StatusNotModified {
121306		if res.Body != nil {
121307			res.Body.Close()
121308		}
121309		return nil, &googleapi.Error{
121310			Code:   res.StatusCode,
121311			Header: res.Header,
121312		}
121313	}
121314	if err != nil {
121315		return nil, err
121316	}
121317	defer googleapi.CloseBody(res)
121318	if err := googleapi.CheckResponse(res); err != nil {
121319		return nil, err
121320	}
121321	ret := &Operation{
121322		ServerResponse: googleapi.ServerResponse{
121323			Header:         res.Header,
121324			HTTPStatusCode: res.StatusCode,
121325		},
121326	}
121327	target := &ret
121328	if err := gensupport.DecodeResponse(target, res); err != nil {
121329		return nil, err
121330	}
121331	return ret, nil
121332	// {
121333	//   "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.",
121334	//   "httpMethod": "POST",
121335	//   "id": "compute.regionInstanceGroupManagers.deleteInstances",
121336	//   "parameterOrder": [
121337	//     "project",
121338	//     "region",
121339	//     "instanceGroupManager"
121340	//   ],
121341	//   "parameters": {
121342	//     "instanceGroupManager": {
121343	//       "description": "Name of the managed instance group.",
121344	//       "location": "path",
121345	//       "required": true,
121346	//       "type": "string"
121347	//     },
121348	//     "project": {
121349	//       "description": "Project ID for this request.",
121350	//       "location": "path",
121351	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121352	//       "required": true,
121353	//       "type": "string"
121354	//     },
121355	//     "region": {
121356	//       "description": "Name of the region scoping this request.",
121357	//       "location": "path",
121358	//       "required": true,
121359	//       "type": "string"
121360	//     },
121361	//     "requestId": {
121362	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
121363	//       "location": "query",
121364	//       "type": "string"
121365	//     }
121366	//   },
121367	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances",
121368	//   "request": {
121369	//     "$ref": "RegionInstanceGroupManagersDeleteInstancesRequest"
121370	//   },
121371	//   "response": {
121372	//     "$ref": "Operation"
121373	//   },
121374	//   "scopes": [
121375	//     "https://www.googleapis.com/auth/cloud-platform",
121376	//     "https://www.googleapis.com/auth/compute"
121377	//   ]
121378	// }
121379
121380}
121381
121382// method id "compute.regionInstanceGroupManagers.deletePerInstanceConfigs":
121383
121384type RegionInstanceGroupManagersDeletePerInstanceConfigsCall struct {
121385	s                                                 *Service
121386	project                                           string
121387	region                                            string
121388	instanceGroupManager                              string
121389	regioninstancegroupmanagerdeleteinstanceconfigreq *RegionInstanceGroupManagerDeleteInstanceConfigReq
121390	urlParams_                                        gensupport.URLParams
121391	ctx_                                              context.Context
121392	header_                                           http.Header
121393}
121394
121395// DeletePerInstanceConfigs: Deletes selected per-instance configs for
121396// the managed instance group.
121397//
121398// - instanceGroupManager: The name of the managed instance group. It
121399//   should conform to RFC1035.
121400// - project: Project ID for this request.
121401// - region: Name of the region scoping this request, should conform to
121402//   RFC1035.
121403func (r *RegionInstanceGroupManagersService) DeletePerInstanceConfigs(project string, region string, instanceGroupManager string, regioninstancegroupmanagerdeleteinstanceconfigreq *RegionInstanceGroupManagerDeleteInstanceConfigReq) *RegionInstanceGroupManagersDeletePerInstanceConfigsCall {
121404	c := &RegionInstanceGroupManagersDeletePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121405	c.project = project
121406	c.region = region
121407	c.instanceGroupManager = instanceGroupManager
121408	c.regioninstancegroupmanagerdeleteinstanceconfigreq = regioninstancegroupmanagerdeleteinstanceconfigreq
121409	return c
121410}
121411
121412// Fields allows partial responses to be retrieved. See
121413// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121414// for more information.
121415func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeletePerInstanceConfigsCall {
121416	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121417	return c
121418}
121419
121420// Context sets the context to be used in this call's Do method. Any
121421// pending HTTP request will be aborted if the provided context is
121422// canceled.
121423func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeletePerInstanceConfigsCall {
121424	c.ctx_ = ctx
121425	return c
121426}
121427
121428// Header returns an http.Header that can be modified by the caller to
121429// add HTTP headers to the request.
121430func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Header() http.Header {
121431	if c.header_ == nil {
121432		c.header_ = make(http.Header)
121433	}
121434	return c.header_
121435}
121436
121437func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
121438	reqHeaders := make(http.Header)
121439	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
121440	for k, v := range c.header_ {
121441		reqHeaders[k] = v
121442	}
121443	reqHeaders.Set("User-Agent", c.s.userAgent())
121444	var body io.Reader = nil
121445	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerdeleteinstanceconfigreq)
121446	if err != nil {
121447		return nil, err
121448	}
121449	reqHeaders.Set("Content-Type", "application/json")
121450	c.urlParams_.Set("alt", alt)
121451	c.urlParams_.Set("prettyPrint", "false")
121452	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs")
121453	urls += "?" + c.urlParams_.Encode()
121454	req, err := http.NewRequest("POST", urls, body)
121455	if err != nil {
121456		return nil, err
121457	}
121458	req.Header = reqHeaders
121459	googleapi.Expand(req.URL, map[string]string{
121460		"project":              c.project,
121461		"region":               c.region,
121462		"instanceGroupManager": c.instanceGroupManager,
121463	})
121464	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121465}
121466
121467// Do executes the "compute.regionInstanceGroupManagers.deletePerInstanceConfigs" call.
121468// Exactly one of *Operation or error will be non-nil. Any non-2xx
121469// status code is an error. Response headers are in either
121470// *Operation.ServerResponse.Header or (if a response was returned at
121471// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121472// to check whether the returned error was because
121473// http.StatusNotModified was returned.
121474func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
121475	gensupport.SetOptions(c.urlParams_, opts...)
121476	res, err := c.doRequest("json")
121477	if res != nil && res.StatusCode == http.StatusNotModified {
121478		if res.Body != nil {
121479			res.Body.Close()
121480		}
121481		return nil, &googleapi.Error{
121482			Code:   res.StatusCode,
121483			Header: res.Header,
121484		}
121485	}
121486	if err != nil {
121487		return nil, err
121488	}
121489	defer googleapi.CloseBody(res)
121490	if err := googleapi.CheckResponse(res); err != nil {
121491		return nil, err
121492	}
121493	ret := &Operation{
121494		ServerResponse: googleapi.ServerResponse{
121495			Header:         res.Header,
121496			HTTPStatusCode: res.StatusCode,
121497		},
121498	}
121499	target := &ret
121500	if err := gensupport.DecodeResponse(target, res); err != nil {
121501		return nil, err
121502	}
121503	return ret, nil
121504	// {
121505	//   "description": "Deletes selected per-instance configs for the managed instance group.",
121506	//   "httpMethod": "POST",
121507	//   "id": "compute.regionInstanceGroupManagers.deletePerInstanceConfigs",
121508	//   "parameterOrder": [
121509	//     "project",
121510	//     "region",
121511	//     "instanceGroupManager"
121512	//   ],
121513	//   "parameters": {
121514	//     "instanceGroupManager": {
121515	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
121516	//       "location": "path",
121517	//       "required": true,
121518	//       "type": "string"
121519	//     },
121520	//     "project": {
121521	//       "description": "Project ID for this request.",
121522	//       "location": "path",
121523	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121524	//       "required": true,
121525	//       "type": "string"
121526	//     },
121527	//     "region": {
121528	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
121529	//       "location": "path",
121530	//       "required": true,
121531	//       "type": "string"
121532	//     }
121533	//   },
121534	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs",
121535	//   "request": {
121536	//     "$ref": "RegionInstanceGroupManagerDeleteInstanceConfigReq"
121537	//   },
121538	//   "response": {
121539	//     "$ref": "Operation"
121540	//   },
121541	//   "scopes": [
121542	//     "https://www.googleapis.com/auth/cloud-platform",
121543	//     "https://www.googleapis.com/auth/compute"
121544	//   ]
121545	// }
121546
121547}
121548
121549// method id "compute.regionInstanceGroupManagers.get":
121550
121551type RegionInstanceGroupManagersGetCall struct {
121552	s                    *Service
121553	project              string
121554	region               string
121555	instanceGroupManager string
121556	urlParams_           gensupport.URLParams
121557	ifNoneMatch_         string
121558	ctx_                 context.Context
121559	header_              http.Header
121560}
121561
121562// Get: Returns all of the details about the specified managed instance
121563// group.
121564//
121565// - instanceGroupManager: Name of the managed instance group to return.
121566// - project: Project ID for this request.
121567// - region: Name of the region scoping this request.
121568func (r *RegionInstanceGroupManagersService) Get(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersGetCall {
121569	c := &RegionInstanceGroupManagersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121570	c.project = project
121571	c.region = region
121572	c.instanceGroupManager = instanceGroupManager
121573	return c
121574}
121575
121576// Fields allows partial responses to be retrieved. See
121577// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121578// for more information.
121579func (c *RegionInstanceGroupManagersGetCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersGetCall {
121580	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121581	return c
121582}
121583
121584// IfNoneMatch sets the optional parameter which makes the operation
121585// fail if the object's ETag matches the given value. This is useful for
121586// getting updates only after the object has changed since the last
121587// request. Use googleapi.IsNotModified to check whether the response
121588// error from Do is the result of In-None-Match.
121589func (c *RegionInstanceGroupManagersGetCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersGetCall {
121590	c.ifNoneMatch_ = entityTag
121591	return c
121592}
121593
121594// Context sets the context to be used in this call's Do method. Any
121595// pending HTTP request will be aborted if the provided context is
121596// canceled.
121597func (c *RegionInstanceGroupManagersGetCall) Context(ctx context.Context) *RegionInstanceGroupManagersGetCall {
121598	c.ctx_ = ctx
121599	return c
121600}
121601
121602// Header returns an http.Header that can be modified by the caller to
121603// add HTTP headers to the request.
121604func (c *RegionInstanceGroupManagersGetCall) Header() http.Header {
121605	if c.header_ == nil {
121606		c.header_ = make(http.Header)
121607	}
121608	return c.header_
121609}
121610
121611func (c *RegionInstanceGroupManagersGetCall) doRequest(alt string) (*http.Response, error) {
121612	reqHeaders := make(http.Header)
121613	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
121614	for k, v := range c.header_ {
121615		reqHeaders[k] = v
121616	}
121617	reqHeaders.Set("User-Agent", c.s.userAgent())
121618	if c.ifNoneMatch_ != "" {
121619		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
121620	}
121621	var body io.Reader = nil
121622	c.urlParams_.Set("alt", alt)
121623	c.urlParams_.Set("prettyPrint", "false")
121624	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
121625	urls += "?" + c.urlParams_.Encode()
121626	req, err := http.NewRequest("GET", urls, body)
121627	if err != nil {
121628		return nil, err
121629	}
121630	req.Header = reqHeaders
121631	googleapi.Expand(req.URL, map[string]string{
121632		"project":              c.project,
121633		"region":               c.region,
121634		"instanceGroupManager": c.instanceGroupManager,
121635	})
121636	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121637}
121638
121639// Do executes the "compute.regionInstanceGroupManagers.get" call.
121640// Exactly one of *InstanceGroupManager or error will be non-nil. Any
121641// non-2xx status code is an error. Response headers are in either
121642// *InstanceGroupManager.ServerResponse.Header or (if a response was
121643// returned at all) in error.(*googleapi.Error).Header. Use
121644// googleapi.IsNotModified to check whether the returned error was
121645// because http.StatusNotModified was returned.
121646func (c *RegionInstanceGroupManagersGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManager, error) {
121647	gensupport.SetOptions(c.urlParams_, opts...)
121648	res, err := c.doRequest("json")
121649	if res != nil && res.StatusCode == http.StatusNotModified {
121650		if res.Body != nil {
121651			res.Body.Close()
121652		}
121653		return nil, &googleapi.Error{
121654			Code:   res.StatusCode,
121655			Header: res.Header,
121656		}
121657	}
121658	if err != nil {
121659		return nil, err
121660	}
121661	defer googleapi.CloseBody(res)
121662	if err := googleapi.CheckResponse(res); err != nil {
121663		return nil, err
121664	}
121665	ret := &InstanceGroupManager{
121666		ServerResponse: googleapi.ServerResponse{
121667			Header:         res.Header,
121668			HTTPStatusCode: res.StatusCode,
121669		},
121670	}
121671	target := &ret
121672	if err := gensupport.DecodeResponse(target, res); err != nil {
121673		return nil, err
121674	}
121675	return ret, nil
121676	// {
121677	//   "description": "Returns all of the details about the specified managed instance group.",
121678	//   "httpMethod": "GET",
121679	//   "id": "compute.regionInstanceGroupManagers.get",
121680	//   "parameterOrder": [
121681	//     "project",
121682	//     "region",
121683	//     "instanceGroupManager"
121684	//   ],
121685	//   "parameters": {
121686	//     "instanceGroupManager": {
121687	//       "description": "Name of the managed instance group to return.",
121688	//       "location": "path",
121689	//       "required": true,
121690	//       "type": "string"
121691	//     },
121692	//     "project": {
121693	//       "description": "Project ID for this request.",
121694	//       "location": "path",
121695	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121696	//       "required": true,
121697	//       "type": "string"
121698	//     },
121699	//     "region": {
121700	//       "description": "Name of the region scoping this request.",
121701	//       "location": "path",
121702	//       "required": true,
121703	//       "type": "string"
121704	//     }
121705	//   },
121706	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
121707	//   "response": {
121708	//     "$ref": "InstanceGroupManager"
121709	//   },
121710	//   "scopes": [
121711	//     "https://www.googleapis.com/auth/cloud-platform",
121712	//     "https://www.googleapis.com/auth/compute",
121713	//     "https://www.googleapis.com/auth/compute.readonly"
121714	//   ]
121715	// }
121716
121717}
121718
121719// method id "compute.regionInstanceGroupManagers.insert":
121720
121721type RegionInstanceGroupManagersInsertCall struct {
121722	s                    *Service
121723	project              string
121724	region               string
121725	instancegroupmanager *InstanceGroupManager
121726	urlParams_           gensupport.URLParams
121727	ctx_                 context.Context
121728	header_              http.Header
121729}
121730
121731// Insert: Creates a managed instance group using the information that
121732// you specify in the request. After the group is created, instances in
121733// the group are created using the specified instance template. This
121734// operation is marked as DONE when the group is created even if the
121735// instances in the group have not yet been created. You must separately
121736// verify the status of the individual instances with the
121737// listmanagedinstances method.
121738//
121739// A regional managed instance group can contain up to 2000 instances.
121740//
121741// - project: Project ID for this request.
121742// - region: Name of the region scoping this request.
121743func (r *RegionInstanceGroupManagersService) Insert(project string, region string, instancegroupmanager *InstanceGroupManager) *RegionInstanceGroupManagersInsertCall {
121744	c := &RegionInstanceGroupManagersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121745	c.project = project
121746	c.region = region
121747	c.instancegroupmanager = instancegroupmanager
121748	return c
121749}
121750
121751// RequestId sets the optional parameter "requestId": An optional
121752// request ID to identify requests. Specify a unique request ID so that
121753// if you must retry your request, the server will know to ignore the
121754// request if it has already been completed.
121755//
121756// For example, consider a situation where you make an initial request
121757// and the request times out. If you make the request again with the
121758// same request ID, the server can check if original operation with the
121759// same request ID was received, and if so, will ignore the second
121760// request. This prevents clients from accidentally creating duplicate
121761// commitments.
121762//
121763// The request ID must be a valid UUID with the exception that zero UUID
121764// is not supported (00000000-0000-0000-0000-000000000000).
121765func (c *RegionInstanceGroupManagersInsertCall) RequestId(requestId string) *RegionInstanceGroupManagersInsertCall {
121766	c.urlParams_.Set("requestId", requestId)
121767	return c
121768}
121769
121770// Fields allows partial responses to be retrieved. See
121771// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121772// for more information.
121773func (c *RegionInstanceGroupManagersInsertCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersInsertCall {
121774	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121775	return c
121776}
121777
121778// Context sets the context to be used in this call's Do method. Any
121779// pending HTTP request will be aborted if the provided context is
121780// canceled.
121781func (c *RegionInstanceGroupManagersInsertCall) Context(ctx context.Context) *RegionInstanceGroupManagersInsertCall {
121782	c.ctx_ = ctx
121783	return c
121784}
121785
121786// Header returns an http.Header that can be modified by the caller to
121787// add HTTP headers to the request.
121788func (c *RegionInstanceGroupManagersInsertCall) Header() http.Header {
121789	if c.header_ == nil {
121790		c.header_ = make(http.Header)
121791	}
121792	return c.header_
121793}
121794
121795func (c *RegionInstanceGroupManagersInsertCall) doRequest(alt string) (*http.Response, error) {
121796	reqHeaders := make(http.Header)
121797	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
121798	for k, v := range c.header_ {
121799		reqHeaders[k] = v
121800	}
121801	reqHeaders.Set("User-Agent", c.s.userAgent())
121802	var body io.Reader = nil
121803	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
121804	if err != nil {
121805		return nil, err
121806	}
121807	reqHeaders.Set("Content-Type", "application/json")
121808	c.urlParams_.Set("alt", alt)
121809	c.urlParams_.Set("prettyPrint", "false")
121810	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers")
121811	urls += "?" + c.urlParams_.Encode()
121812	req, err := http.NewRequest("POST", urls, body)
121813	if err != nil {
121814		return nil, err
121815	}
121816	req.Header = reqHeaders
121817	googleapi.Expand(req.URL, map[string]string{
121818		"project": c.project,
121819		"region":  c.region,
121820	})
121821	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121822}
121823
121824// Do executes the "compute.regionInstanceGroupManagers.insert" call.
121825// Exactly one of *Operation or error will be non-nil. Any non-2xx
121826// status code is an error. Response headers are in either
121827// *Operation.ServerResponse.Header or (if a response was returned at
121828// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121829// to check whether the returned error was because
121830// http.StatusNotModified was returned.
121831func (c *RegionInstanceGroupManagersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
121832	gensupport.SetOptions(c.urlParams_, opts...)
121833	res, err := c.doRequest("json")
121834	if res != nil && res.StatusCode == http.StatusNotModified {
121835		if res.Body != nil {
121836			res.Body.Close()
121837		}
121838		return nil, &googleapi.Error{
121839			Code:   res.StatusCode,
121840			Header: res.Header,
121841		}
121842	}
121843	if err != nil {
121844		return nil, err
121845	}
121846	defer googleapi.CloseBody(res)
121847	if err := googleapi.CheckResponse(res); err != nil {
121848		return nil, err
121849	}
121850	ret := &Operation{
121851		ServerResponse: googleapi.ServerResponse{
121852			Header:         res.Header,
121853			HTTPStatusCode: res.StatusCode,
121854		},
121855	}
121856	target := &ret
121857	if err := gensupport.DecodeResponse(target, res); err != nil {
121858		return nil, err
121859	}
121860	return ret, nil
121861	// {
121862	//   "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.",
121863	//   "httpMethod": "POST",
121864	//   "id": "compute.regionInstanceGroupManagers.insert",
121865	//   "parameterOrder": [
121866	//     "project",
121867	//     "region"
121868	//   ],
121869	//   "parameters": {
121870	//     "project": {
121871	//       "description": "Project ID for this request.",
121872	//       "location": "path",
121873	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121874	//       "required": true,
121875	//       "type": "string"
121876	//     },
121877	//     "region": {
121878	//       "description": "Name of the region scoping this request.",
121879	//       "location": "path",
121880	//       "required": true,
121881	//       "type": "string"
121882	//     },
121883	//     "requestId": {
121884	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
121885	//       "location": "query",
121886	//       "type": "string"
121887	//     }
121888	//   },
121889	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers",
121890	//   "request": {
121891	//     "$ref": "InstanceGroupManager"
121892	//   },
121893	//   "response": {
121894	//     "$ref": "Operation"
121895	//   },
121896	//   "scopes": [
121897	//     "https://www.googleapis.com/auth/cloud-platform",
121898	//     "https://www.googleapis.com/auth/compute"
121899	//   ]
121900	// }
121901
121902}
121903
121904// method id "compute.regionInstanceGroupManagers.list":
121905
121906type RegionInstanceGroupManagersListCall struct {
121907	s            *Service
121908	project      string
121909	region       string
121910	urlParams_   gensupport.URLParams
121911	ifNoneMatch_ string
121912	ctx_         context.Context
121913	header_      http.Header
121914}
121915
121916// List: Retrieves the list of managed instance groups that are
121917// contained within the specified region.
121918//
121919// - project: Project ID for this request.
121920// - region: Name of the region scoping this request.
121921func (r *RegionInstanceGroupManagersService) List(project string, region string) *RegionInstanceGroupManagersListCall {
121922	c := &RegionInstanceGroupManagersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121923	c.project = project
121924	c.region = region
121925	return c
121926}
121927
121928// Filter sets the optional parameter "filter": A filter expression that
121929// filters resources listed in the response. The expression must specify
121930// the field name, a comparison operator, and the value that you want to
121931// use for filtering. The value must be a string, a number, or a
121932// boolean. The comparison operator must be either `=`, `!=`, `>`, or
121933// `<`.
121934//
121935// For example, if you are filtering Compute Engine instances, you can
121936// exclude instances named `example-instance` by specifying `name !=
121937// example-instance`.
121938//
121939// You can also filter nested fields. For example, you could specify
121940// `scheduling.automaticRestart = false` to include instances only if
121941// they are not scheduled for automatic restarts. You can use filtering
121942// on nested fields to filter based on resource labels.
121943//
121944// To filter on multiple expressions, provide each separate expression
121945// within parentheses. For example: ``` (scheduling.automaticRestart =
121946// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
121947// is an `AND` expression. However, you can include `AND` and `OR`
121948// expressions explicitly. For example: ``` (cpuPlatform = "Intel
121949// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
121950// (scheduling.automaticRestart = true) ```
121951func (c *RegionInstanceGroupManagersListCall) Filter(filter string) *RegionInstanceGroupManagersListCall {
121952	c.urlParams_.Set("filter", filter)
121953	return c
121954}
121955
121956// MaxResults sets the optional parameter "maxResults": The maximum
121957// number of results per page that should be returned. If the number of
121958// available results is larger than `maxResults`, Compute Engine returns
121959// a `nextPageToken` that can be used to get the next page of results in
121960// subsequent list requests. Acceptable values are `0` to `500`,
121961// inclusive. (Default: `500`)
121962func (c *RegionInstanceGroupManagersListCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListCall {
121963	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
121964	return c
121965}
121966
121967// OrderBy sets the optional parameter "orderBy": Sorts list results by
121968// a certain order. By default, results are returned in alphanumerical
121969// order based on the resource name.
121970//
121971// You can also sort results in descending order based on the creation
121972// timestamp using `orderBy="creationTimestamp desc". This sorts
121973// results based on the `creationTimestamp` field in reverse
121974// chronological order (newest result first). Use this to sort resources
121975// like operations so that the newest operation is returned
121976// first.
121977//
121978// Currently, only sorting by `name` or `creationTimestamp desc` is
121979// supported.
121980func (c *RegionInstanceGroupManagersListCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListCall {
121981	c.urlParams_.Set("orderBy", orderBy)
121982	return c
121983}
121984
121985// PageToken sets the optional parameter "pageToken": Specifies a page
121986// token to use. Set `pageToken` to the `nextPageToken` returned by a
121987// previous list request to get the next page of results.
121988func (c *RegionInstanceGroupManagersListCall) PageToken(pageToken string) *RegionInstanceGroupManagersListCall {
121989	c.urlParams_.Set("pageToken", pageToken)
121990	return c
121991}
121992
121993// ReturnPartialSuccess sets the optional parameter
121994// "returnPartialSuccess": Opt-in for partial success behavior which
121995// provides partial results in case of failure. The default value is
121996// false.
121997func (c *RegionInstanceGroupManagersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupManagersListCall {
121998	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
121999	return c
122000}
122001
122002// Fields allows partial responses to be retrieved. See
122003// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122004// for more information.
122005func (c *RegionInstanceGroupManagersListCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListCall {
122006	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122007	return c
122008}
122009
122010// IfNoneMatch sets the optional parameter which makes the operation
122011// fail if the object's ETag matches the given value. This is useful for
122012// getting updates only after the object has changed since the last
122013// request. Use googleapi.IsNotModified to check whether the response
122014// error from Do is the result of In-None-Match.
122015func (c *RegionInstanceGroupManagersListCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersListCall {
122016	c.ifNoneMatch_ = entityTag
122017	return c
122018}
122019
122020// Context sets the context to be used in this call's Do method. Any
122021// pending HTTP request will be aborted if the provided context is
122022// canceled.
122023func (c *RegionInstanceGroupManagersListCall) Context(ctx context.Context) *RegionInstanceGroupManagersListCall {
122024	c.ctx_ = ctx
122025	return c
122026}
122027
122028// Header returns an http.Header that can be modified by the caller to
122029// add HTTP headers to the request.
122030func (c *RegionInstanceGroupManagersListCall) Header() http.Header {
122031	if c.header_ == nil {
122032		c.header_ = make(http.Header)
122033	}
122034	return c.header_
122035}
122036
122037func (c *RegionInstanceGroupManagersListCall) doRequest(alt string) (*http.Response, error) {
122038	reqHeaders := make(http.Header)
122039	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
122040	for k, v := range c.header_ {
122041		reqHeaders[k] = v
122042	}
122043	reqHeaders.Set("User-Agent", c.s.userAgent())
122044	if c.ifNoneMatch_ != "" {
122045		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
122046	}
122047	var body io.Reader = nil
122048	c.urlParams_.Set("alt", alt)
122049	c.urlParams_.Set("prettyPrint", "false")
122050	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers")
122051	urls += "?" + c.urlParams_.Encode()
122052	req, err := http.NewRequest("GET", urls, body)
122053	if err != nil {
122054		return nil, err
122055	}
122056	req.Header = reqHeaders
122057	googleapi.Expand(req.URL, map[string]string{
122058		"project": c.project,
122059		"region":  c.region,
122060	})
122061	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122062}
122063
122064// Do executes the "compute.regionInstanceGroupManagers.list" call.
122065// Exactly one of *RegionInstanceGroupManagerList or error will be
122066// non-nil. Any non-2xx status code is an error. Response headers are in
122067// either *RegionInstanceGroupManagerList.ServerResponse.Header or (if a
122068// response was returned at all) in error.(*googleapi.Error).Header. Use
122069// googleapi.IsNotModified to check whether the returned error was
122070// because http.StatusNotModified was returned.
122071func (c *RegionInstanceGroupManagersListCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagerList, error) {
122072	gensupport.SetOptions(c.urlParams_, opts...)
122073	res, err := c.doRequest("json")
122074	if res != nil && res.StatusCode == http.StatusNotModified {
122075		if res.Body != nil {
122076			res.Body.Close()
122077		}
122078		return nil, &googleapi.Error{
122079			Code:   res.StatusCode,
122080			Header: res.Header,
122081		}
122082	}
122083	if err != nil {
122084		return nil, err
122085	}
122086	defer googleapi.CloseBody(res)
122087	if err := googleapi.CheckResponse(res); err != nil {
122088		return nil, err
122089	}
122090	ret := &RegionInstanceGroupManagerList{
122091		ServerResponse: googleapi.ServerResponse{
122092			Header:         res.Header,
122093			HTTPStatusCode: res.StatusCode,
122094		},
122095	}
122096	target := &ret
122097	if err := gensupport.DecodeResponse(target, res); err != nil {
122098		return nil, err
122099	}
122100	return ret, nil
122101	// {
122102	//   "description": "Retrieves the list of managed instance groups that are contained within the specified region.",
122103	//   "httpMethod": "GET",
122104	//   "id": "compute.regionInstanceGroupManagers.list",
122105	//   "parameterOrder": [
122106	//     "project",
122107	//     "region"
122108	//   ],
122109	//   "parameters": {
122110	//     "filter": {
122111	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
122112	//       "location": "query",
122113	//       "type": "string"
122114	//     },
122115	//     "maxResults": {
122116	//       "default": "500",
122117	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
122118	//       "format": "uint32",
122119	//       "location": "query",
122120	//       "minimum": "0",
122121	//       "type": "integer"
122122	//     },
122123	//     "orderBy": {
122124	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
122125	//       "location": "query",
122126	//       "type": "string"
122127	//     },
122128	//     "pageToken": {
122129	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
122130	//       "location": "query",
122131	//       "type": "string"
122132	//     },
122133	//     "project": {
122134	//       "description": "Project ID for this request.",
122135	//       "location": "path",
122136	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122137	//       "required": true,
122138	//       "type": "string"
122139	//     },
122140	//     "region": {
122141	//       "description": "Name of the region scoping this request.",
122142	//       "location": "path",
122143	//       "required": true,
122144	//       "type": "string"
122145	//     },
122146	//     "returnPartialSuccess": {
122147	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
122148	//       "location": "query",
122149	//       "type": "boolean"
122150	//     }
122151	//   },
122152	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers",
122153	//   "response": {
122154	//     "$ref": "RegionInstanceGroupManagerList"
122155	//   },
122156	//   "scopes": [
122157	//     "https://www.googleapis.com/auth/cloud-platform",
122158	//     "https://www.googleapis.com/auth/compute",
122159	//     "https://www.googleapis.com/auth/compute.readonly"
122160	//   ]
122161	// }
122162
122163}
122164
122165// Pages invokes f for each page of results.
122166// A non-nil error returned from f will halt the iteration.
122167// The provided context supersedes any context provided to the Context method.
122168func (c *RegionInstanceGroupManagersListCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagerList) error) error {
122169	c.ctx_ = ctx
122170	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
122171	for {
122172		x, err := c.Do()
122173		if err != nil {
122174			return err
122175		}
122176		if err := f(x); err != nil {
122177			return err
122178		}
122179		if x.NextPageToken == "" {
122180			return nil
122181		}
122182		c.PageToken(x.NextPageToken)
122183	}
122184}
122185
122186// method id "compute.regionInstanceGroupManagers.listErrors":
122187
122188type RegionInstanceGroupManagersListErrorsCall struct {
122189	s                    *Service
122190	project              string
122191	region               string
122192	instanceGroupManager string
122193	urlParams_           gensupport.URLParams
122194	ifNoneMatch_         string
122195	ctx_                 context.Context
122196	header_              http.Header
122197}
122198
122199// ListErrors: Lists all errors thrown by actions on instances for a
122200// given regional managed instance group. The filter and orderBy query
122201// parameters are not supported.
122202//
122203// - instanceGroupManager: The name of the managed instance group. It
122204//   must be a string that meets the requirements in RFC1035, or an
122205//   unsigned long integer: must match regexp pattern: (?:a-z
122206//   (?:[-a-z0-9]{0,61}[a-z0-9])?)|[1-9][0-9]{0,19}.
122207// - project: Project ID for this request.
122208// - region: Name of the region scoping this request. This should
122209//   conform to RFC1035.
122210func (r *RegionInstanceGroupManagersService) ListErrors(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListErrorsCall {
122211	c := &RegionInstanceGroupManagersListErrorsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122212	c.project = project
122213	c.region = region
122214	c.instanceGroupManager = instanceGroupManager
122215	return c
122216}
122217
122218// Filter sets the optional parameter "filter": A filter expression that
122219// filters resources listed in the response. The expression must specify
122220// the field name, a comparison operator, and the value that you want to
122221// use for filtering. The value must be a string, a number, or a
122222// boolean. The comparison operator must be either `=`, `!=`, `>`, or
122223// `<`.
122224//
122225// For example, if you are filtering Compute Engine instances, you can
122226// exclude instances named `example-instance` by specifying `name !=
122227// example-instance`.
122228//
122229// You can also filter nested fields. For example, you could specify
122230// `scheduling.automaticRestart = false` to include instances only if
122231// they are not scheduled for automatic restarts. You can use filtering
122232// on nested fields to filter based on resource labels.
122233//
122234// To filter on multiple expressions, provide each separate expression
122235// within parentheses. For example: ``` (scheduling.automaticRestart =
122236// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
122237// is an `AND` expression. However, you can include `AND` and `OR`
122238// expressions explicitly. For example: ``` (cpuPlatform = "Intel
122239// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
122240// (scheduling.automaticRestart = true) ```
122241func (c *RegionInstanceGroupManagersListErrorsCall) Filter(filter string) *RegionInstanceGroupManagersListErrorsCall {
122242	c.urlParams_.Set("filter", filter)
122243	return c
122244}
122245
122246// MaxResults sets the optional parameter "maxResults": The maximum
122247// number of results per page that should be returned. If the number of
122248// available results is larger than `maxResults`, Compute Engine returns
122249// a `nextPageToken` that can be used to get the next page of results in
122250// subsequent list requests. Acceptable values are `0` to `500`,
122251// inclusive. (Default: `500`)
122252func (c *RegionInstanceGroupManagersListErrorsCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListErrorsCall {
122253	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
122254	return c
122255}
122256
122257// OrderBy sets the optional parameter "orderBy": Sorts list results by
122258// a certain order. By default, results are returned in alphanumerical
122259// order based on the resource name.
122260//
122261// You can also sort results in descending order based on the creation
122262// timestamp using `orderBy="creationTimestamp desc". This sorts
122263// results based on the `creationTimestamp` field in reverse
122264// chronological order (newest result first). Use this to sort resources
122265// like operations so that the newest operation is returned
122266// first.
122267//
122268// Currently, only sorting by `name` or `creationTimestamp desc` is
122269// supported.
122270func (c *RegionInstanceGroupManagersListErrorsCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListErrorsCall {
122271	c.urlParams_.Set("orderBy", orderBy)
122272	return c
122273}
122274
122275// PageToken sets the optional parameter "pageToken": Specifies a page
122276// token to use. Set `pageToken` to the `nextPageToken` returned by a
122277// previous list request to get the next page of results.
122278func (c *RegionInstanceGroupManagersListErrorsCall) PageToken(pageToken string) *RegionInstanceGroupManagersListErrorsCall {
122279	c.urlParams_.Set("pageToken", pageToken)
122280	return c
122281}
122282
122283// ReturnPartialSuccess sets the optional parameter
122284// "returnPartialSuccess": Opt-in for partial success behavior which
122285// provides partial results in case of failure. The default value is
122286// false.
122287func (c *RegionInstanceGroupManagersListErrorsCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupManagersListErrorsCall {
122288	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
122289	return c
122290}
122291
122292// Fields allows partial responses to be retrieved. See
122293// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122294// for more information.
122295func (c *RegionInstanceGroupManagersListErrorsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListErrorsCall {
122296	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122297	return c
122298}
122299
122300// IfNoneMatch sets the optional parameter which makes the operation
122301// fail if the object's ETag matches the given value. This is useful for
122302// getting updates only after the object has changed since the last
122303// request. Use googleapi.IsNotModified to check whether the response
122304// error from Do is the result of In-None-Match.
122305func (c *RegionInstanceGroupManagersListErrorsCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersListErrorsCall {
122306	c.ifNoneMatch_ = entityTag
122307	return c
122308}
122309
122310// Context sets the context to be used in this call's Do method. Any
122311// pending HTTP request will be aborted if the provided context is
122312// canceled.
122313func (c *RegionInstanceGroupManagersListErrorsCall) Context(ctx context.Context) *RegionInstanceGroupManagersListErrorsCall {
122314	c.ctx_ = ctx
122315	return c
122316}
122317
122318// Header returns an http.Header that can be modified by the caller to
122319// add HTTP headers to the request.
122320func (c *RegionInstanceGroupManagersListErrorsCall) Header() http.Header {
122321	if c.header_ == nil {
122322		c.header_ = make(http.Header)
122323	}
122324	return c.header_
122325}
122326
122327func (c *RegionInstanceGroupManagersListErrorsCall) doRequest(alt string) (*http.Response, error) {
122328	reqHeaders := make(http.Header)
122329	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
122330	for k, v := range c.header_ {
122331		reqHeaders[k] = v
122332	}
122333	reqHeaders.Set("User-Agent", c.s.userAgent())
122334	if c.ifNoneMatch_ != "" {
122335		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
122336	}
122337	var body io.Reader = nil
122338	c.urlParams_.Set("alt", alt)
122339	c.urlParams_.Set("prettyPrint", "false")
122340	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors")
122341	urls += "?" + c.urlParams_.Encode()
122342	req, err := http.NewRequest("GET", urls, body)
122343	if err != nil {
122344		return nil, err
122345	}
122346	req.Header = reqHeaders
122347	googleapi.Expand(req.URL, map[string]string{
122348		"project":              c.project,
122349		"region":               c.region,
122350		"instanceGroupManager": c.instanceGroupManager,
122351	})
122352	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122353}
122354
122355// Do executes the "compute.regionInstanceGroupManagers.listErrors" call.
122356// Exactly one of *RegionInstanceGroupManagersListErrorsResponse or
122357// error will be non-nil. Any non-2xx status code is an error. Response
122358// headers are in either
122359// *RegionInstanceGroupManagersListErrorsResponse.ServerResponse.Header
122360// or (if a response was returned at all) in
122361// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
122362// whether the returned error was because http.StatusNotModified was
122363// returned.
122364func (c *RegionInstanceGroupManagersListErrorsCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListErrorsResponse, error) {
122365	gensupport.SetOptions(c.urlParams_, opts...)
122366	res, err := c.doRequest("json")
122367	if res != nil && res.StatusCode == http.StatusNotModified {
122368		if res.Body != nil {
122369			res.Body.Close()
122370		}
122371		return nil, &googleapi.Error{
122372			Code:   res.StatusCode,
122373			Header: res.Header,
122374		}
122375	}
122376	if err != nil {
122377		return nil, err
122378	}
122379	defer googleapi.CloseBody(res)
122380	if err := googleapi.CheckResponse(res); err != nil {
122381		return nil, err
122382	}
122383	ret := &RegionInstanceGroupManagersListErrorsResponse{
122384		ServerResponse: googleapi.ServerResponse{
122385			Header:         res.Header,
122386			HTTPStatusCode: res.StatusCode,
122387		},
122388	}
122389	target := &ret
122390	if err := gensupport.DecodeResponse(target, res); err != nil {
122391		return nil, err
122392	}
122393	return ret, nil
122394	// {
122395	//   "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.",
122396	//   "httpMethod": "GET",
122397	//   "id": "compute.regionInstanceGroupManagers.listErrors",
122398	//   "parameterOrder": [
122399	//     "project",
122400	//     "region",
122401	//     "instanceGroupManager"
122402	//   ],
122403	//   "parameters": {
122404	//     "filter": {
122405	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
122406	//       "location": "query",
122407	//       "type": "string"
122408	//     },
122409	//     "instanceGroupManager": {
122410	//       "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}.",
122411	//       "location": "path",
122412	//       "required": true,
122413	//       "type": "string"
122414	//     },
122415	//     "maxResults": {
122416	//       "default": "500",
122417	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
122418	//       "format": "uint32",
122419	//       "location": "query",
122420	//       "minimum": "0",
122421	//       "type": "integer"
122422	//     },
122423	//     "orderBy": {
122424	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
122425	//       "location": "query",
122426	//       "type": "string"
122427	//     },
122428	//     "pageToken": {
122429	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
122430	//       "location": "query",
122431	//       "type": "string"
122432	//     },
122433	//     "project": {
122434	//       "description": "Project ID for this request.",
122435	//       "location": "path",
122436	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122437	//       "required": true,
122438	//       "type": "string"
122439	//     },
122440	//     "region": {
122441	//       "description": "Name of the region scoping this request. This should conform to RFC1035.",
122442	//       "location": "path",
122443	//       "required": true,
122444	//       "type": "string"
122445	//     },
122446	//     "returnPartialSuccess": {
122447	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
122448	//       "location": "query",
122449	//       "type": "boolean"
122450	//     }
122451	//   },
122452	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors",
122453	//   "response": {
122454	//     "$ref": "RegionInstanceGroupManagersListErrorsResponse"
122455	//   },
122456	//   "scopes": [
122457	//     "https://www.googleapis.com/auth/cloud-platform",
122458	//     "https://www.googleapis.com/auth/compute",
122459	//     "https://www.googleapis.com/auth/compute.readonly"
122460	//   ]
122461	// }
122462
122463}
122464
122465// Pages invokes f for each page of results.
122466// A non-nil error returned from f will halt the iteration.
122467// The provided context supersedes any context provided to the Context method.
122468func (c *RegionInstanceGroupManagersListErrorsCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListErrorsResponse) error) error {
122469	c.ctx_ = ctx
122470	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
122471	for {
122472		x, err := c.Do()
122473		if err != nil {
122474			return err
122475		}
122476		if err := f(x); err != nil {
122477			return err
122478		}
122479		if x.NextPageToken == "" {
122480			return nil
122481		}
122482		c.PageToken(x.NextPageToken)
122483	}
122484}
122485
122486// method id "compute.regionInstanceGroupManagers.listManagedInstances":
122487
122488type RegionInstanceGroupManagersListManagedInstancesCall struct {
122489	s                    *Service
122490	project              string
122491	region               string
122492	instanceGroupManager string
122493	urlParams_           gensupport.URLParams
122494	ctx_                 context.Context
122495	header_              http.Header
122496}
122497
122498// ListManagedInstances: Lists the instances in the managed instance
122499// group and instances that are scheduled to be created. The list
122500// includes any current actions that the group has scheduled for its
122501// instances. The orderBy query parameter is not supported.
122502//
122503// - instanceGroupManager: The name of the managed instance group.
122504// - project: Project ID for this request.
122505// - region: Name of the region scoping this request.
122506func (r *RegionInstanceGroupManagersService) ListManagedInstances(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListManagedInstancesCall {
122507	c := &RegionInstanceGroupManagersListManagedInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122508	c.project = project
122509	c.region = region
122510	c.instanceGroupManager = instanceGroupManager
122511	return c
122512}
122513
122514// Filter sets the optional parameter "filter": A filter expression that
122515// filters resources listed in the response. The expression must specify
122516// the field name, a comparison operator, and the value that you want to
122517// use for filtering. The value must be a string, a number, or a
122518// boolean. The comparison operator must be either `=`, `!=`, `>`, or
122519// `<`.
122520//
122521// For example, if you are filtering Compute Engine instances, you can
122522// exclude instances named `example-instance` by specifying `name !=
122523// example-instance`.
122524//
122525// You can also filter nested fields. For example, you could specify
122526// `scheduling.automaticRestart = false` to include instances only if
122527// they are not scheduled for automatic restarts. You can use filtering
122528// on nested fields to filter based on resource labels.
122529//
122530// To filter on multiple expressions, provide each separate expression
122531// within parentheses. For example: ``` (scheduling.automaticRestart =
122532// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
122533// is an `AND` expression. However, you can include `AND` and `OR`
122534// expressions explicitly. For example: ``` (cpuPlatform = "Intel
122535// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
122536// (scheduling.automaticRestart = true) ```
122537func (c *RegionInstanceGroupManagersListManagedInstancesCall) Filter(filter string) *RegionInstanceGroupManagersListManagedInstancesCall {
122538	c.urlParams_.Set("filter", filter)
122539	return c
122540}
122541
122542// MaxResults sets the optional parameter "maxResults": The maximum
122543// number of results per page that should be returned. If the number of
122544// available results is larger than `maxResults`, Compute Engine returns
122545// a `nextPageToken` that can be used to get the next page of results in
122546// subsequent list requests. Acceptable values are `0` to `500`,
122547// inclusive. (Default: `500`)
122548func (c *RegionInstanceGroupManagersListManagedInstancesCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListManagedInstancesCall {
122549	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
122550	return c
122551}
122552
122553// OrderBy sets the optional parameter "orderBy": Sorts list results by
122554// a certain order. By default, results are returned in alphanumerical
122555// order based on the resource name.
122556//
122557// You can also sort results in descending order based on the creation
122558// timestamp using `orderBy="creationTimestamp desc". This sorts
122559// results based on the `creationTimestamp` field in reverse
122560// chronological order (newest result first). Use this to sort resources
122561// like operations so that the newest operation is returned
122562// first.
122563//
122564// Currently, only sorting by `name` or `creationTimestamp desc` is
122565// supported.
122566func (c *RegionInstanceGroupManagersListManagedInstancesCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListManagedInstancesCall {
122567	c.urlParams_.Set("orderBy", orderBy)
122568	return c
122569}
122570
122571// PageToken sets the optional parameter "pageToken": Specifies a page
122572// token to use. Set `pageToken` to the `nextPageToken` returned by a
122573// previous list request to get the next page of results.
122574func (c *RegionInstanceGroupManagersListManagedInstancesCall) PageToken(pageToken string) *RegionInstanceGroupManagersListManagedInstancesCall {
122575	c.urlParams_.Set("pageToken", pageToken)
122576	return c
122577}
122578
122579// ReturnPartialSuccess sets the optional parameter
122580// "returnPartialSuccess": Opt-in for partial success behavior which
122581// provides partial results in case of failure. The default value is
122582// false.
122583func (c *RegionInstanceGroupManagersListManagedInstancesCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupManagersListManagedInstancesCall {
122584	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
122585	return c
122586}
122587
122588// Fields allows partial responses to be retrieved. See
122589// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122590// for more information.
122591func (c *RegionInstanceGroupManagersListManagedInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListManagedInstancesCall {
122592	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122593	return c
122594}
122595
122596// Context sets the context to be used in this call's Do method. Any
122597// pending HTTP request will be aborted if the provided context is
122598// canceled.
122599func (c *RegionInstanceGroupManagersListManagedInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersListManagedInstancesCall {
122600	c.ctx_ = ctx
122601	return c
122602}
122603
122604// Header returns an http.Header that can be modified by the caller to
122605// add HTTP headers to the request.
122606func (c *RegionInstanceGroupManagersListManagedInstancesCall) Header() http.Header {
122607	if c.header_ == nil {
122608		c.header_ = make(http.Header)
122609	}
122610	return c.header_
122611}
122612
122613func (c *RegionInstanceGroupManagersListManagedInstancesCall) doRequest(alt string) (*http.Response, error) {
122614	reqHeaders := make(http.Header)
122615	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
122616	for k, v := range c.header_ {
122617		reqHeaders[k] = v
122618	}
122619	reqHeaders.Set("User-Agent", c.s.userAgent())
122620	var body io.Reader = nil
122621	c.urlParams_.Set("alt", alt)
122622	c.urlParams_.Set("prettyPrint", "false")
122623	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances")
122624	urls += "?" + c.urlParams_.Encode()
122625	req, err := http.NewRequest("POST", urls, body)
122626	if err != nil {
122627		return nil, err
122628	}
122629	req.Header = reqHeaders
122630	googleapi.Expand(req.URL, map[string]string{
122631		"project":              c.project,
122632		"region":               c.region,
122633		"instanceGroupManager": c.instanceGroupManager,
122634	})
122635	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122636}
122637
122638// Do executes the "compute.regionInstanceGroupManagers.listManagedInstances" call.
122639// Exactly one of *RegionInstanceGroupManagersListInstancesResponse or
122640// error will be non-nil. Any non-2xx status code is an error. Response
122641// headers are in either
122642// *RegionInstanceGroupManagersListInstancesResponse.ServerResponse.Heade
122643// r or (if a response was returned at all) in
122644// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
122645// whether the returned error was because http.StatusNotModified was
122646// returned.
122647func (c *RegionInstanceGroupManagersListManagedInstancesCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListInstancesResponse, error) {
122648	gensupport.SetOptions(c.urlParams_, opts...)
122649	res, err := c.doRequest("json")
122650	if res != nil && res.StatusCode == http.StatusNotModified {
122651		if res.Body != nil {
122652			res.Body.Close()
122653		}
122654		return nil, &googleapi.Error{
122655			Code:   res.StatusCode,
122656			Header: res.Header,
122657		}
122658	}
122659	if err != nil {
122660		return nil, err
122661	}
122662	defer googleapi.CloseBody(res)
122663	if err := googleapi.CheckResponse(res); err != nil {
122664		return nil, err
122665	}
122666	ret := &RegionInstanceGroupManagersListInstancesResponse{
122667		ServerResponse: googleapi.ServerResponse{
122668			Header:         res.Header,
122669			HTTPStatusCode: res.StatusCode,
122670		},
122671	}
122672	target := &ret
122673	if err := gensupport.DecodeResponse(target, res); err != nil {
122674		return nil, err
122675	}
122676	return ret, nil
122677	// {
122678	//   "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.",
122679	//   "httpMethod": "POST",
122680	//   "id": "compute.regionInstanceGroupManagers.listManagedInstances",
122681	//   "parameterOrder": [
122682	//     "project",
122683	//     "region",
122684	//     "instanceGroupManager"
122685	//   ],
122686	//   "parameters": {
122687	//     "filter": {
122688	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
122689	//       "location": "query",
122690	//       "type": "string"
122691	//     },
122692	//     "instanceGroupManager": {
122693	//       "description": "The name of the managed instance group.",
122694	//       "location": "path",
122695	//       "required": true,
122696	//       "type": "string"
122697	//     },
122698	//     "maxResults": {
122699	//       "default": "500",
122700	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
122701	//       "format": "uint32",
122702	//       "location": "query",
122703	//       "minimum": "0",
122704	//       "type": "integer"
122705	//     },
122706	//     "orderBy": {
122707	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
122708	//       "location": "query",
122709	//       "type": "string"
122710	//     },
122711	//     "pageToken": {
122712	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
122713	//       "location": "query",
122714	//       "type": "string"
122715	//     },
122716	//     "project": {
122717	//       "description": "Project ID for this request.",
122718	//       "location": "path",
122719	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122720	//       "required": true,
122721	//       "type": "string"
122722	//     },
122723	//     "region": {
122724	//       "description": "Name of the region scoping this request.",
122725	//       "location": "path",
122726	//       "required": true,
122727	//       "type": "string"
122728	//     },
122729	//     "returnPartialSuccess": {
122730	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
122731	//       "location": "query",
122732	//       "type": "boolean"
122733	//     }
122734	//   },
122735	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances",
122736	//   "response": {
122737	//     "$ref": "RegionInstanceGroupManagersListInstancesResponse"
122738	//   },
122739	//   "scopes": [
122740	//     "https://www.googleapis.com/auth/cloud-platform",
122741	//     "https://www.googleapis.com/auth/compute",
122742	//     "https://www.googleapis.com/auth/compute.readonly"
122743	//   ]
122744	// }
122745
122746}
122747
122748// Pages invokes f for each page of results.
122749// A non-nil error returned from f will halt the iteration.
122750// The provided context supersedes any context provided to the Context method.
122751func (c *RegionInstanceGroupManagersListManagedInstancesCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListInstancesResponse) error) error {
122752	c.ctx_ = ctx
122753	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
122754	for {
122755		x, err := c.Do()
122756		if err != nil {
122757			return err
122758		}
122759		if err := f(x); err != nil {
122760			return err
122761		}
122762		if x.NextPageToken == "" {
122763			return nil
122764		}
122765		c.PageToken(x.NextPageToken)
122766	}
122767}
122768
122769// method id "compute.regionInstanceGroupManagers.listPerInstanceConfigs":
122770
122771type RegionInstanceGroupManagersListPerInstanceConfigsCall struct {
122772	s                    *Service
122773	project              string
122774	region               string
122775	instanceGroupManager string
122776	urlParams_           gensupport.URLParams
122777	ctx_                 context.Context
122778	header_              http.Header
122779}
122780
122781// ListPerInstanceConfigs: Lists all of the per-instance configs defined
122782// for the managed instance group. The orderBy query parameter is not
122783// supported.
122784//
122785// - instanceGroupManager: The name of the managed instance group. It
122786//   should conform to RFC1035.
122787// - project: Project ID for this request.
122788// - region: Name of the region scoping this request, should conform to
122789//   RFC1035.
122790func (r *RegionInstanceGroupManagersService) ListPerInstanceConfigs(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
122791	c := &RegionInstanceGroupManagersListPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122792	c.project = project
122793	c.region = region
122794	c.instanceGroupManager = instanceGroupManager
122795	return c
122796}
122797
122798// Filter sets the optional parameter "filter": A filter expression that
122799// filters resources listed in the response. The expression must specify
122800// the field name, a comparison operator, and the value that you want to
122801// use for filtering. The value must be a string, a number, or a
122802// boolean. The comparison operator must be either `=`, `!=`, `>`, or
122803// `<`.
122804//
122805// For example, if you are filtering Compute Engine instances, you can
122806// exclude instances named `example-instance` by specifying `name !=
122807// example-instance`.
122808//
122809// You can also filter nested fields. For example, you could specify
122810// `scheduling.automaticRestart = false` to include instances only if
122811// they are not scheduled for automatic restarts. You can use filtering
122812// on nested fields to filter based on resource labels.
122813//
122814// To filter on multiple expressions, provide each separate expression
122815// within parentheses. For example: ``` (scheduling.automaticRestart =
122816// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
122817// is an `AND` expression. However, you can include `AND` and `OR`
122818// expressions explicitly. For example: ``` (cpuPlatform = "Intel
122819// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
122820// (scheduling.automaticRestart = true) ```
122821func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Filter(filter string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
122822	c.urlParams_.Set("filter", filter)
122823	return c
122824}
122825
122826// MaxResults sets the optional parameter "maxResults": The maximum
122827// number of results per page that should be returned. If the number of
122828// available results is larger than `maxResults`, Compute Engine returns
122829// a `nextPageToken` that can be used to get the next page of results in
122830// subsequent list requests. Acceptable values are `0` to `500`,
122831// inclusive. (Default: `500`)
122832func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
122833	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
122834	return c
122835}
122836
122837// OrderBy sets the optional parameter "orderBy": Sorts list results by
122838// a certain order. By default, results are returned in alphanumerical
122839// order based on the resource name.
122840//
122841// You can also sort results in descending order based on the creation
122842// timestamp using `orderBy="creationTimestamp desc". This sorts
122843// results based on the `creationTimestamp` field in reverse
122844// chronological order (newest result first). Use this to sort resources
122845// like operations so that the newest operation is returned
122846// first.
122847//
122848// Currently, only sorting by `name` or `creationTimestamp desc` is
122849// supported.
122850func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
122851	c.urlParams_.Set("orderBy", orderBy)
122852	return c
122853}
122854
122855// PageToken sets the optional parameter "pageToken": Specifies a page
122856// token to use. Set `pageToken` to the `nextPageToken` returned by a
122857// previous list request to get the next page of results.
122858func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) PageToken(pageToken string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
122859	c.urlParams_.Set("pageToken", pageToken)
122860	return c
122861}
122862
122863// ReturnPartialSuccess sets the optional parameter
122864// "returnPartialSuccess": Opt-in for partial success behavior which
122865// provides partial results in case of failure. The default value is
122866// false.
122867func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
122868	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
122869	return c
122870}
122871
122872// Fields allows partial responses to be retrieved. See
122873// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122874// for more information.
122875func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
122876	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122877	return c
122878}
122879
122880// Context sets the context to be used in this call's Do method. Any
122881// pending HTTP request will be aborted if the provided context is
122882// canceled.
122883func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
122884	c.ctx_ = ctx
122885	return c
122886}
122887
122888// Header returns an http.Header that can be modified by the caller to
122889// add HTTP headers to the request.
122890func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Header() http.Header {
122891	if c.header_ == nil {
122892		c.header_ = make(http.Header)
122893	}
122894	return c.header_
122895}
122896
122897func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
122898	reqHeaders := make(http.Header)
122899	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
122900	for k, v := range c.header_ {
122901		reqHeaders[k] = v
122902	}
122903	reqHeaders.Set("User-Agent", c.s.userAgent())
122904	var body io.Reader = nil
122905	c.urlParams_.Set("alt", alt)
122906	c.urlParams_.Set("prettyPrint", "false")
122907	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs")
122908	urls += "?" + c.urlParams_.Encode()
122909	req, err := http.NewRequest("POST", urls, body)
122910	if err != nil {
122911		return nil, err
122912	}
122913	req.Header = reqHeaders
122914	googleapi.Expand(req.URL, map[string]string{
122915		"project":              c.project,
122916		"region":               c.region,
122917		"instanceGroupManager": c.instanceGroupManager,
122918	})
122919	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122920}
122921
122922// Do executes the "compute.regionInstanceGroupManagers.listPerInstanceConfigs" call.
122923// Exactly one of *RegionInstanceGroupManagersListInstanceConfigsResp or
122924// error will be non-nil. Any non-2xx status code is an error. Response
122925// headers are in either
122926// *RegionInstanceGroupManagersListInstanceConfigsResp.ServerResponse.Hea
122927// der or (if a response was returned at all) in
122928// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
122929// whether the returned error was because http.StatusNotModified was
122930// returned.
122931func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListInstanceConfigsResp, error) {
122932	gensupport.SetOptions(c.urlParams_, opts...)
122933	res, err := c.doRequest("json")
122934	if res != nil && res.StatusCode == http.StatusNotModified {
122935		if res.Body != nil {
122936			res.Body.Close()
122937		}
122938		return nil, &googleapi.Error{
122939			Code:   res.StatusCode,
122940			Header: res.Header,
122941		}
122942	}
122943	if err != nil {
122944		return nil, err
122945	}
122946	defer googleapi.CloseBody(res)
122947	if err := googleapi.CheckResponse(res); err != nil {
122948		return nil, err
122949	}
122950	ret := &RegionInstanceGroupManagersListInstanceConfigsResp{
122951		ServerResponse: googleapi.ServerResponse{
122952			Header:         res.Header,
122953			HTTPStatusCode: res.StatusCode,
122954		},
122955	}
122956	target := &ret
122957	if err := gensupport.DecodeResponse(target, res); err != nil {
122958		return nil, err
122959	}
122960	return ret, nil
122961	// {
122962	//   "description": "Lists all of the per-instance configs defined for the managed instance group. The orderBy query parameter is not supported.",
122963	//   "httpMethod": "POST",
122964	//   "id": "compute.regionInstanceGroupManagers.listPerInstanceConfigs",
122965	//   "parameterOrder": [
122966	//     "project",
122967	//     "region",
122968	//     "instanceGroupManager"
122969	//   ],
122970	//   "parameters": {
122971	//     "filter": {
122972	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
122973	//       "location": "query",
122974	//       "type": "string"
122975	//     },
122976	//     "instanceGroupManager": {
122977	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
122978	//       "location": "path",
122979	//       "required": true,
122980	//       "type": "string"
122981	//     },
122982	//     "maxResults": {
122983	//       "default": "500",
122984	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
122985	//       "format": "uint32",
122986	//       "location": "query",
122987	//       "minimum": "0",
122988	//       "type": "integer"
122989	//     },
122990	//     "orderBy": {
122991	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
122992	//       "location": "query",
122993	//       "type": "string"
122994	//     },
122995	//     "pageToken": {
122996	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
122997	//       "location": "query",
122998	//       "type": "string"
122999	//     },
123000	//     "project": {
123001	//       "description": "Project ID for this request.",
123002	//       "location": "path",
123003	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123004	//       "required": true,
123005	//       "type": "string"
123006	//     },
123007	//     "region": {
123008	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
123009	//       "location": "path",
123010	//       "required": true,
123011	//       "type": "string"
123012	//     },
123013	//     "returnPartialSuccess": {
123014	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
123015	//       "location": "query",
123016	//       "type": "boolean"
123017	//     }
123018	//   },
123019	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs",
123020	//   "response": {
123021	//     "$ref": "RegionInstanceGroupManagersListInstanceConfigsResp"
123022	//   },
123023	//   "scopes": [
123024	//     "https://www.googleapis.com/auth/cloud-platform",
123025	//     "https://www.googleapis.com/auth/compute",
123026	//     "https://www.googleapis.com/auth/compute.readonly"
123027	//   ]
123028	// }
123029
123030}
123031
123032// Pages invokes f for each page of results.
123033// A non-nil error returned from f will halt the iteration.
123034// The provided context supersedes any context provided to the Context method.
123035func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListInstanceConfigsResp) error) error {
123036	c.ctx_ = ctx
123037	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
123038	for {
123039		x, err := c.Do()
123040		if err != nil {
123041			return err
123042		}
123043		if err := f(x); err != nil {
123044			return err
123045		}
123046		if x.NextPageToken == "" {
123047			return nil
123048		}
123049		c.PageToken(x.NextPageToken)
123050	}
123051}
123052
123053// method id "compute.regionInstanceGroupManagers.patch":
123054
123055type RegionInstanceGroupManagersPatchCall struct {
123056	s                    *Service
123057	project              string
123058	region               string
123059	instanceGroupManager string
123060	instancegroupmanager *InstanceGroupManager
123061	urlParams_           gensupport.URLParams
123062	ctx_                 context.Context
123063	header_              http.Header
123064}
123065
123066// Patch: Updates a managed instance group using the information that
123067// you specify in the request. This operation is marked as DONE when the
123068// group is patched even if the instances in the group are still in the
123069// process of being patched. You must separately verify the status of
123070// the individual instances with the listmanagedinstances method. This
123071// method supports PATCH semantics and uses the JSON merge patch format
123072// and processing rules.
123073//
123074// - instanceGroupManager: The name of the instance group manager.
123075// - project: Project ID for this request.
123076// - region: Name of the region scoping this request.
123077func (r *RegionInstanceGroupManagersService) Patch(project string, region string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *RegionInstanceGroupManagersPatchCall {
123078	c := &RegionInstanceGroupManagersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123079	c.project = project
123080	c.region = region
123081	c.instanceGroupManager = instanceGroupManager
123082	c.instancegroupmanager = instancegroupmanager
123083	return c
123084}
123085
123086// RequestId sets the optional parameter "requestId": An optional
123087// request ID to identify requests. Specify a unique request ID so that
123088// if you must retry your request, the server will know to ignore the
123089// request if it has already been completed.
123090//
123091// For example, consider a situation where you make an initial request
123092// and the request times out. If you make the request again with the
123093// same request ID, the server can check if original operation with the
123094// same request ID was received, and if so, will ignore the second
123095// request. This prevents clients from accidentally creating duplicate
123096// commitments.
123097//
123098// The request ID must be a valid UUID with the exception that zero UUID
123099// is not supported (00000000-0000-0000-0000-000000000000).
123100func (c *RegionInstanceGroupManagersPatchCall) RequestId(requestId string) *RegionInstanceGroupManagersPatchCall {
123101	c.urlParams_.Set("requestId", requestId)
123102	return c
123103}
123104
123105// Fields allows partial responses to be retrieved. See
123106// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123107// for more information.
123108func (c *RegionInstanceGroupManagersPatchCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersPatchCall {
123109	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123110	return c
123111}
123112
123113// Context sets the context to be used in this call's Do method. Any
123114// pending HTTP request will be aborted if the provided context is
123115// canceled.
123116func (c *RegionInstanceGroupManagersPatchCall) Context(ctx context.Context) *RegionInstanceGroupManagersPatchCall {
123117	c.ctx_ = ctx
123118	return c
123119}
123120
123121// Header returns an http.Header that can be modified by the caller to
123122// add HTTP headers to the request.
123123func (c *RegionInstanceGroupManagersPatchCall) Header() http.Header {
123124	if c.header_ == nil {
123125		c.header_ = make(http.Header)
123126	}
123127	return c.header_
123128}
123129
123130func (c *RegionInstanceGroupManagersPatchCall) doRequest(alt string) (*http.Response, error) {
123131	reqHeaders := make(http.Header)
123132	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
123133	for k, v := range c.header_ {
123134		reqHeaders[k] = v
123135	}
123136	reqHeaders.Set("User-Agent", c.s.userAgent())
123137	var body io.Reader = nil
123138	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
123139	if err != nil {
123140		return nil, err
123141	}
123142	reqHeaders.Set("Content-Type", "application/json")
123143	c.urlParams_.Set("alt", alt)
123144	c.urlParams_.Set("prettyPrint", "false")
123145	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
123146	urls += "?" + c.urlParams_.Encode()
123147	req, err := http.NewRequest("PATCH", urls, body)
123148	if err != nil {
123149		return nil, err
123150	}
123151	req.Header = reqHeaders
123152	googleapi.Expand(req.URL, map[string]string{
123153		"project":              c.project,
123154		"region":               c.region,
123155		"instanceGroupManager": c.instanceGroupManager,
123156	})
123157	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123158}
123159
123160// Do executes the "compute.regionInstanceGroupManagers.patch" call.
123161// Exactly one of *Operation or error will be non-nil. Any non-2xx
123162// status code is an error. Response headers are in either
123163// *Operation.ServerResponse.Header or (if a response was returned at
123164// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
123165// to check whether the returned error was because
123166// http.StatusNotModified was returned.
123167func (c *RegionInstanceGroupManagersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
123168	gensupport.SetOptions(c.urlParams_, opts...)
123169	res, err := c.doRequest("json")
123170	if res != nil && res.StatusCode == http.StatusNotModified {
123171		if res.Body != nil {
123172			res.Body.Close()
123173		}
123174		return nil, &googleapi.Error{
123175			Code:   res.StatusCode,
123176			Header: res.Header,
123177		}
123178	}
123179	if err != nil {
123180		return nil, err
123181	}
123182	defer googleapi.CloseBody(res)
123183	if err := googleapi.CheckResponse(res); err != nil {
123184		return nil, err
123185	}
123186	ret := &Operation{
123187		ServerResponse: googleapi.ServerResponse{
123188			Header:         res.Header,
123189			HTTPStatusCode: res.StatusCode,
123190		},
123191	}
123192	target := &ret
123193	if err := gensupport.DecodeResponse(target, res); err != nil {
123194		return nil, err
123195	}
123196	return ret, nil
123197	// {
123198	//   "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.",
123199	//   "httpMethod": "PATCH",
123200	//   "id": "compute.regionInstanceGroupManagers.patch",
123201	//   "parameterOrder": [
123202	//     "project",
123203	//     "region",
123204	//     "instanceGroupManager"
123205	//   ],
123206	//   "parameters": {
123207	//     "instanceGroupManager": {
123208	//       "description": "The name of the instance group manager.",
123209	//       "location": "path",
123210	//       "required": true,
123211	//       "type": "string"
123212	//     },
123213	//     "project": {
123214	//       "description": "Project ID for this request.",
123215	//       "location": "path",
123216	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123217	//       "required": true,
123218	//       "type": "string"
123219	//     },
123220	//     "region": {
123221	//       "description": "Name of the region scoping this request.",
123222	//       "location": "path",
123223	//       "required": true,
123224	//       "type": "string"
123225	//     },
123226	//     "requestId": {
123227	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
123228	//       "location": "query",
123229	//       "type": "string"
123230	//     }
123231	//   },
123232	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
123233	//   "request": {
123234	//     "$ref": "InstanceGroupManager"
123235	//   },
123236	//   "response": {
123237	//     "$ref": "Operation"
123238	//   },
123239	//   "scopes": [
123240	//     "https://www.googleapis.com/auth/cloud-platform",
123241	//     "https://www.googleapis.com/auth/compute"
123242	//   ]
123243	// }
123244
123245}
123246
123247// method id "compute.regionInstanceGroupManagers.patchPerInstanceConfigs":
123248
123249type RegionInstanceGroupManagersPatchPerInstanceConfigsCall struct {
123250	s                                                *Service
123251	project                                          string
123252	region                                           string
123253	instanceGroupManager                             string
123254	regioninstancegroupmanagerpatchinstanceconfigreq *RegionInstanceGroupManagerPatchInstanceConfigReq
123255	urlParams_                                       gensupport.URLParams
123256	ctx_                                             context.Context
123257	header_                                          http.Header
123258}
123259
123260// PatchPerInstanceConfigs: Inserts or patches per-instance configs for
123261// the managed instance group. perInstanceConfig.name serves as a key
123262// used to distinguish whether to perform insert or patch.
123263//
123264// - instanceGroupManager: The name of the managed instance group. It
123265//   should conform to RFC1035.
123266// - project: Project ID for this request.
123267// - region: Name of the region scoping this request, should conform to
123268//   RFC1035.
123269func (r *RegionInstanceGroupManagersService) PatchPerInstanceConfigs(project string, region string, instanceGroupManager string, regioninstancegroupmanagerpatchinstanceconfigreq *RegionInstanceGroupManagerPatchInstanceConfigReq) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
123270	c := &RegionInstanceGroupManagersPatchPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123271	c.project = project
123272	c.region = region
123273	c.instanceGroupManager = instanceGroupManager
123274	c.regioninstancegroupmanagerpatchinstanceconfigreq = regioninstancegroupmanagerpatchinstanceconfigreq
123275	return c
123276}
123277
123278// RequestId sets the optional parameter "requestId": An optional
123279// request ID to identify requests. Specify a unique request ID so that
123280// if you must retry your request, the server will know to ignore the
123281// request if it has already been completed.
123282//
123283// For example, consider a situation where you make an initial request
123284// and the request times out. If you make the request again with the
123285// same request ID, the server can check if original operation with the
123286// same request ID was received, and if so, will ignore the second
123287// request. This prevents clients from accidentally creating duplicate
123288// commitments.
123289//
123290// The request ID must be a valid UUID with the exception that zero UUID
123291// is not supported (00000000-0000-0000-0000-000000000000).
123292func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) RequestId(requestId string) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
123293	c.urlParams_.Set("requestId", requestId)
123294	return c
123295}
123296
123297// Fields allows partial responses to be retrieved. See
123298// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123299// for more information.
123300func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
123301	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123302	return c
123303}
123304
123305// Context sets the context to be used in this call's Do method. Any
123306// pending HTTP request will be aborted if the provided context is
123307// canceled.
123308func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
123309	c.ctx_ = ctx
123310	return c
123311}
123312
123313// Header returns an http.Header that can be modified by the caller to
123314// add HTTP headers to the request.
123315func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Header() http.Header {
123316	if c.header_ == nil {
123317		c.header_ = make(http.Header)
123318	}
123319	return c.header_
123320}
123321
123322func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
123323	reqHeaders := make(http.Header)
123324	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
123325	for k, v := range c.header_ {
123326		reqHeaders[k] = v
123327	}
123328	reqHeaders.Set("User-Agent", c.s.userAgent())
123329	var body io.Reader = nil
123330	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerpatchinstanceconfigreq)
123331	if err != nil {
123332		return nil, err
123333	}
123334	reqHeaders.Set("Content-Type", "application/json")
123335	c.urlParams_.Set("alt", alt)
123336	c.urlParams_.Set("prettyPrint", "false")
123337	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs")
123338	urls += "?" + c.urlParams_.Encode()
123339	req, err := http.NewRequest("POST", urls, body)
123340	if err != nil {
123341		return nil, err
123342	}
123343	req.Header = reqHeaders
123344	googleapi.Expand(req.URL, map[string]string{
123345		"project":              c.project,
123346		"region":               c.region,
123347		"instanceGroupManager": c.instanceGroupManager,
123348	})
123349	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123350}
123351
123352// Do executes the "compute.regionInstanceGroupManagers.patchPerInstanceConfigs" call.
123353// Exactly one of *Operation or error will be non-nil. Any non-2xx
123354// status code is an error. Response headers are in either
123355// *Operation.ServerResponse.Header or (if a response was returned at
123356// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
123357// to check whether the returned error was because
123358// http.StatusNotModified was returned.
123359func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
123360	gensupport.SetOptions(c.urlParams_, opts...)
123361	res, err := c.doRequest("json")
123362	if res != nil && res.StatusCode == http.StatusNotModified {
123363		if res.Body != nil {
123364			res.Body.Close()
123365		}
123366		return nil, &googleapi.Error{
123367			Code:   res.StatusCode,
123368			Header: res.Header,
123369		}
123370	}
123371	if err != nil {
123372		return nil, err
123373	}
123374	defer googleapi.CloseBody(res)
123375	if err := googleapi.CheckResponse(res); err != nil {
123376		return nil, err
123377	}
123378	ret := &Operation{
123379		ServerResponse: googleapi.ServerResponse{
123380			Header:         res.Header,
123381			HTTPStatusCode: res.StatusCode,
123382		},
123383	}
123384	target := &ret
123385	if err := gensupport.DecodeResponse(target, res); err != nil {
123386		return nil, err
123387	}
123388	return ret, nil
123389	// {
123390	//   "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.",
123391	//   "httpMethod": "POST",
123392	//   "id": "compute.regionInstanceGroupManagers.patchPerInstanceConfigs",
123393	//   "parameterOrder": [
123394	//     "project",
123395	//     "region",
123396	//     "instanceGroupManager"
123397	//   ],
123398	//   "parameters": {
123399	//     "instanceGroupManager": {
123400	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
123401	//       "location": "path",
123402	//       "required": true,
123403	//       "type": "string"
123404	//     },
123405	//     "project": {
123406	//       "description": "Project ID for this request.",
123407	//       "location": "path",
123408	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123409	//       "required": true,
123410	//       "type": "string"
123411	//     },
123412	//     "region": {
123413	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
123414	//       "location": "path",
123415	//       "required": true,
123416	//       "type": "string"
123417	//     },
123418	//     "requestId": {
123419	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
123420	//       "location": "query",
123421	//       "type": "string"
123422	//     }
123423	//   },
123424	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs",
123425	//   "request": {
123426	//     "$ref": "RegionInstanceGroupManagerPatchInstanceConfigReq"
123427	//   },
123428	//   "response": {
123429	//     "$ref": "Operation"
123430	//   },
123431	//   "scopes": [
123432	//     "https://www.googleapis.com/auth/cloud-platform",
123433	//     "https://www.googleapis.com/auth/compute"
123434	//   ]
123435	// }
123436
123437}
123438
123439// method id "compute.regionInstanceGroupManagers.recreateInstances":
123440
123441type RegionInstanceGroupManagersRecreateInstancesCall struct {
123442	s                                          *Service
123443	project                                    string
123444	region                                     string
123445	instanceGroupManager                       string
123446	regioninstancegroupmanagersrecreaterequest *RegionInstanceGroupManagersRecreateRequest
123447	urlParams_                                 gensupport.URLParams
123448	ctx_                                       context.Context
123449	header_                                    http.Header
123450}
123451
123452// RecreateInstances: Flags the specified VM instances in the managed
123453// instance group to be immediately recreated. Each instance is
123454// recreated using the group's current configuration. This operation is
123455// marked as DONE when the flag is set even if the instances have not
123456// yet been recreated. You must separately verify the status of each
123457// instance by checking its currentAction field; for more information,
123458// see Checking the status of managed instances.
123459//
123460// If the group is part of a backend service that has enabled connection
123461// draining, it can take up to 60 seconds after the connection draining
123462// duration has elapsed before the VM instance is removed or
123463// deleted.
123464//
123465// You can specify a maximum of 1000 instances with this method per
123466// request.
123467//
123468// - instanceGroupManager: Name of the managed instance group.
123469// - project: Project ID for this request.
123470// - region: Name of the region scoping this request.
123471func (r *RegionInstanceGroupManagersService) RecreateInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersrecreaterequest *RegionInstanceGroupManagersRecreateRequest) *RegionInstanceGroupManagersRecreateInstancesCall {
123472	c := &RegionInstanceGroupManagersRecreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123473	c.project = project
123474	c.region = region
123475	c.instanceGroupManager = instanceGroupManager
123476	c.regioninstancegroupmanagersrecreaterequest = regioninstancegroupmanagersrecreaterequest
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 *RegionInstanceGroupManagersRecreateInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersRecreateInstancesCall {
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 *RegionInstanceGroupManagersRecreateInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersRecreateInstancesCall {
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 *RegionInstanceGroupManagersRecreateInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersRecreateInstancesCall {
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 *RegionInstanceGroupManagersRecreateInstancesCall) Header() http.Header {
123518	if c.header_ == nil {
123519		c.header_ = make(http.Header)
123520	}
123521	return c.header_
123522}
123523
123524func (c *RegionInstanceGroupManagersRecreateInstancesCall) 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.regioninstancegroupmanagersrecreaterequest)
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}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances")
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		"region":               c.region,
123549		"instanceGroupManager": c.instanceGroupManager,
123550	})
123551	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123552}
123553
123554// Do executes the "compute.regionInstanceGroupManagers.recreateInstances" call.
123555// Exactly one of *Operation or error will be non-nil. Any non-2xx
123556// status code is an error. Response headers are in either
123557// *Operation.ServerResponse.Header or (if a response was returned at
123558// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
123559// to check whether the returned error was because
123560// http.StatusNotModified was returned.
123561func (c *RegionInstanceGroupManagersRecreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
123562	gensupport.SetOptions(c.urlParams_, opts...)
123563	res, err := c.doRequest("json")
123564	if res != nil && res.StatusCode == http.StatusNotModified {
123565		if res.Body != nil {
123566			res.Body.Close()
123567		}
123568		return nil, &googleapi.Error{
123569			Code:   res.StatusCode,
123570			Header: res.Header,
123571		}
123572	}
123573	if err != nil {
123574		return nil, err
123575	}
123576	defer googleapi.CloseBody(res)
123577	if err := googleapi.CheckResponse(res); err != nil {
123578		return nil, err
123579	}
123580	ret := &Operation{
123581		ServerResponse: googleapi.ServerResponse{
123582			Header:         res.Header,
123583			HTTPStatusCode: res.StatusCode,
123584		},
123585	}
123586	target := &ret
123587	if err := gensupport.DecodeResponse(target, res); err != nil {
123588		return nil, err
123589	}
123590	return ret, nil
123591	// {
123592	//   "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.",
123593	//   "httpMethod": "POST",
123594	//   "id": "compute.regionInstanceGroupManagers.recreateInstances",
123595	//   "parameterOrder": [
123596	//     "project",
123597	//     "region",
123598	//     "instanceGroupManager"
123599	//   ],
123600	//   "parameters": {
123601	//     "instanceGroupManager": {
123602	//       "description": "Name of the managed instance group.",
123603	//       "location": "path",
123604	//       "required": true,
123605	//       "type": "string"
123606	//     },
123607	//     "project": {
123608	//       "description": "Project ID for this request.",
123609	//       "location": "path",
123610	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123611	//       "required": true,
123612	//       "type": "string"
123613	//     },
123614	//     "region": {
123615	//       "description": "Name of the region scoping this request.",
123616	//       "location": "path",
123617	//       "required": true,
123618	//       "type": "string"
123619	//     },
123620	//     "requestId": {
123621	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
123622	//       "location": "query",
123623	//       "type": "string"
123624	//     }
123625	//   },
123626	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances",
123627	//   "request": {
123628	//     "$ref": "RegionInstanceGroupManagersRecreateRequest"
123629	//   },
123630	//   "response": {
123631	//     "$ref": "Operation"
123632	//   },
123633	//   "scopes": [
123634	//     "https://www.googleapis.com/auth/cloud-platform",
123635	//     "https://www.googleapis.com/auth/compute"
123636	//   ]
123637	// }
123638
123639}
123640
123641// method id "compute.regionInstanceGroupManagers.resize":
123642
123643type RegionInstanceGroupManagersResizeCall struct {
123644	s                    *Service
123645	project              string
123646	region               string
123647	instanceGroupManager string
123648	urlParams_           gensupport.URLParams
123649	ctx_                 context.Context
123650	header_              http.Header
123651}
123652
123653// Resize: Changes the intended size of the managed instance group. If
123654// you increase the size, the group creates new instances using the
123655// current instance template. If you decrease the size, the group
123656// deletes one or more instances.
123657//
123658// The resize operation is marked DONE if the resize request is
123659// successful. The underlying actions take additional time. You must
123660// separately verify the status of the creating or deleting actions with
123661// the listmanagedinstances method.
123662//
123663// If the group is part of a backend service that has enabled connection
123664// draining, it can take up to 60 seconds after the connection draining
123665// duration has elapsed before the VM instance is removed or deleted.
123666//
123667// - instanceGroupManager: Name of the managed instance group.
123668// - project: Project ID for this request.
123669// - region: Name of the region scoping this request.
123670// - size: Number of instances that should exist in this instance group
123671//   manager.
123672func (r *RegionInstanceGroupManagersService) Resize(project string, region string, instanceGroupManager string, size int64) *RegionInstanceGroupManagersResizeCall {
123673	c := &RegionInstanceGroupManagersResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123674	c.project = project
123675	c.region = region
123676	c.instanceGroupManager = instanceGroupManager
123677	c.urlParams_.Set("size", fmt.Sprint(size))
123678	return c
123679}
123680
123681// RequestId sets the optional parameter "requestId": An optional
123682// request ID to identify requests. Specify a unique request ID so that
123683// if you must retry your request, the server will know to ignore the
123684// request if it has already been completed.
123685//
123686// For example, consider a situation where you make an initial request
123687// and the request times out. If you make the request again with the
123688// same request ID, the server can check if original operation with the
123689// same request ID was received, and if so, will ignore the second
123690// request. This prevents clients from accidentally creating duplicate
123691// commitments.
123692//
123693// The request ID must be a valid UUID with the exception that zero UUID
123694// is not supported (00000000-0000-0000-0000-000000000000).
123695func (c *RegionInstanceGroupManagersResizeCall) RequestId(requestId string) *RegionInstanceGroupManagersResizeCall {
123696	c.urlParams_.Set("requestId", requestId)
123697	return c
123698}
123699
123700// Fields allows partial responses to be retrieved. See
123701// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123702// for more information.
123703func (c *RegionInstanceGroupManagersResizeCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersResizeCall {
123704	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123705	return c
123706}
123707
123708// Context sets the context to be used in this call's Do method. Any
123709// pending HTTP request will be aborted if the provided context is
123710// canceled.
123711func (c *RegionInstanceGroupManagersResizeCall) Context(ctx context.Context) *RegionInstanceGroupManagersResizeCall {
123712	c.ctx_ = ctx
123713	return c
123714}
123715
123716// Header returns an http.Header that can be modified by the caller to
123717// add HTTP headers to the request.
123718func (c *RegionInstanceGroupManagersResizeCall) Header() http.Header {
123719	if c.header_ == nil {
123720		c.header_ = make(http.Header)
123721	}
123722	return c.header_
123723}
123724
123725func (c *RegionInstanceGroupManagersResizeCall) doRequest(alt string) (*http.Response, error) {
123726	reqHeaders := make(http.Header)
123727	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
123728	for k, v := range c.header_ {
123729		reqHeaders[k] = v
123730	}
123731	reqHeaders.Set("User-Agent", c.s.userAgent())
123732	var body io.Reader = nil
123733	c.urlParams_.Set("alt", alt)
123734	c.urlParams_.Set("prettyPrint", "false")
123735	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize")
123736	urls += "?" + c.urlParams_.Encode()
123737	req, err := http.NewRequest("POST", urls, body)
123738	if err != nil {
123739		return nil, err
123740	}
123741	req.Header = reqHeaders
123742	googleapi.Expand(req.URL, map[string]string{
123743		"project":              c.project,
123744		"region":               c.region,
123745		"instanceGroupManager": c.instanceGroupManager,
123746	})
123747	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123748}
123749
123750// Do executes the "compute.regionInstanceGroupManagers.resize" call.
123751// Exactly one of *Operation or error will be non-nil. Any non-2xx
123752// status code is an error. Response headers are in either
123753// *Operation.ServerResponse.Header or (if a response was returned at
123754// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
123755// to check whether the returned error was because
123756// http.StatusNotModified was returned.
123757func (c *RegionInstanceGroupManagersResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
123758	gensupport.SetOptions(c.urlParams_, opts...)
123759	res, err := c.doRequest("json")
123760	if res != nil && res.StatusCode == http.StatusNotModified {
123761		if res.Body != nil {
123762			res.Body.Close()
123763		}
123764		return nil, &googleapi.Error{
123765			Code:   res.StatusCode,
123766			Header: res.Header,
123767		}
123768	}
123769	if err != nil {
123770		return nil, err
123771	}
123772	defer googleapi.CloseBody(res)
123773	if err := googleapi.CheckResponse(res); err != nil {
123774		return nil, err
123775	}
123776	ret := &Operation{
123777		ServerResponse: googleapi.ServerResponse{
123778			Header:         res.Header,
123779			HTTPStatusCode: res.StatusCode,
123780		},
123781	}
123782	target := &ret
123783	if err := gensupport.DecodeResponse(target, res); err != nil {
123784		return nil, err
123785	}
123786	return ret, nil
123787	// {
123788	//   "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.",
123789	//   "httpMethod": "POST",
123790	//   "id": "compute.regionInstanceGroupManagers.resize",
123791	//   "parameterOrder": [
123792	//     "project",
123793	//     "region",
123794	//     "instanceGroupManager",
123795	//     "size"
123796	//   ],
123797	//   "parameters": {
123798	//     "instanceGroupManager": {
123799	//       "description": "Name of the managed instance group.",
123800	//       "location": "path",
123801	//       "required": true,
123802	//       "type": "string"
123803	//     },
123804	//     "project": {
123805	//       "description": "Project ID for this request.",
123806	//       "location": "path",
123807	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123808	//       "required": true,
123809	//       "type": "string"
123810	//     },
123811	//     "region": {
123812	//       "description": "Name of the region scoping this request.",
123813	//       "location": "path",
123814	//       "required": true,
123815	//       "type": "string"
123816	//     },
123817	//     "requestId": {
123818	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
123819	//       "location": "query",
123820	//       "type": "string"
123821	//     },
123822	//     "size": {
123823	//       "description": "Number of instances that should exist in this instance group manager.",
123824	//       "format": "int32",
123825	//       "location": "query",
123826	//       "minimum": "0",
123827	//       "required": true,
123828	//       "type": "integer"
123829	//     }
123830	//   },
123831	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize",
123832	//   "response": {
123833	//     "$ref": "Operation"
123834	//   },
123835	//   "scopes": [
123836	//     "https://www.googleapis.com/auth/cloud-platform",
123837	//     "https://www.googleapis.com/auth/compute"
123838	//   ]
123839	// }
123840
123841}
123842
123843// method id "compute.regionInstanceGroupManagers.setInstanceTemplate":
123844
123845type RegionInstanceGroupManagersSetInstanceTemplateCall struct {
123846	s                                             *Service
123847	project                                       string
123848	region                                        string
123849	instanceGroupManager                          string
123850	regioninstancegroupmanagerssettemplaterequest *RegionInstanceGroupManagersSetTemplateRequest
123851	urlParams_                                    gensupport.URLParams
123852	ctx_                                          context.Context
123853	header_                                       http.Header
123854}
123855
123856// SetInstanceTemplate: Sets the instance template to use when creating
123857// new instances or recreating instances in this group. Existing
123858// instances are not affected.
123859//
123860// - instanceGroupManager: The name of the managed instance group.
123861// - project: Project ID for this request.
123862// - region: Name of the region scoping this request.
123863func (r *RegionInstanceGroupManagersService) SetInstanceTemplate(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssettemplaterequest *RegionInstanceGroupManagersSetTemplateRequest) *RegionInstanceGroupManagersSetInstanceTemplateCall {
123864	c := &RegionInstanceGroupManagersSetInstanceTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123865	c.project = project
123866	c.region = region
123867	c.instanceGroupManager = instanceGroupManager
123868	c.regioninstancegroupmanagerssettemplaterequest = regioninstancegroupmanagerssettemplaterequest
123869	return c
123870}
123871
123872// RequestId sets the optional parameter "requestId": An optional
123873// request ID to identify requests. Specify a unique request ID so that
123874// if you must retry your request, the server will know to ignore the
123875// request if it has already been completed.
123876//
123877// For example, consider a situation where you make an initial request
123878// and the request times out. If you make the request again with the
123879// same request ID, the server can check if original operation with the
123880// same request ID was received, and if so, will ignore the second
123881// request. This prevents clients from accidentally creating duplicate
123882// commitments.
123883//
123884// The request ID must be a valid UUID with the exception that zero UUID
123885// is not supported (00000000-0000-0000-0000-000000000000).
123886func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) RequestId(requestId string) *RegionInstanceGroupManagersSetInstanceTemplateCall {
123887	c.urlParams_.Set("requestId", requestId)
123888	return c
123889}
123890
123891// Fields allows partial responses to be retrieved. See
123892// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123893// for more information.
123894func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetInstanceTemplateCall {
123895	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123896	return c
123897}
123898
123899// Context sets the context to be used in this call's Do method. Any
123900// pending HTTP request will be aborted if the provided context is
123901// canceled.
123902func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetInstanceTemplateCall {
123903	c.ctx_ = ctx
123904	return c
123905}
123906
123907// Header returns an http.Header that can be modified by the caller to
123908// add HTTP headers to the request.
123909func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Header() http.Header {
123910	if c.header_ == nil {
123911		c.header_ = make(http.Header)
123912	}
123913	return c.header_
123914}
123915
123916func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) doRequest(alt string) (*http.Response, error) {
123917	reqHeaders := make(http.Header)
123918	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
123919	for k, v := range c.header_ {
123920		reqHeaders[k] = v
123921	}
123922	reqHeaders.Set("User-Agent", c.s.userAgent())
123923	var body io.Reader = nil
123924	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerssettemplaterequest)
123925	if err != nil {
123926		return nil, err
123927	}
123928	reqHeaders.Set("Content-Type", "application/json")
123929	c.urlParams_.Set("alt", alt)
123930	c.urlParams_.Set("prettyPrint", "false")
123931	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate")
123932	urls += "?" + c.urlParams_.Encode()
123933	req, err := http.NewRequest("POST", urls, body)
123934	if err != nil {
123935		return nil, err
123936	}
123937	req.Header = reqHeaders
123938	googleapi.Expand(req.URL, map[string]string{
123939		"project":              c.project,
123940		"region":               c.region,
123941		"instanceGroupManager": c.instanceGroupManager,
123942	})
123943	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123944}
123945
123946// Do executes the "compute.regionInstanceGroupManagers.setInstanceTemplate" call.
123947// Exactly one of *Operation or error will be non-nil. Any non-2xx
123948// status code is an error. Response headers are in either
123949// *Operation.ServerResponse.Header or (if a response was returned at
123950// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
123951// to check whether the returned error was because
123952// http.StatusNotModified was returned.
123953func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
123954	gensupport.SetOptions(c.urlParams_, opts...)
123955	res, err := c.doRequest("json")
123956	if res != nil && res.StatusCode == http.StatusNotModified {
123957		if res.Body != nil {
123958			res.Body.Close()
123959		}
123960		return nil, &googleapi.Error{
123961			Code:   res.StatusCode,
123962			Header: res.Header,
123963		}
123964	}
123965	if err != nil {
123966		return nil, err
123967	}
123968	defer googleapi.CloseBody(res)
123969	if err := googleapi.CheckResponse(res); err != nil {
123970		return nil, err
123971	}
123972	ret := &Operation{
123973		ServerResponse: googleapi.ServerResponse{
123974			Header:         res.Header,
123975			HTTPStatusCode: res.StatusCode,
123976		},
123977	}
123978	target := &ret
123979	if err := gensupport.DecodeResponse(target, res); err != nil {
123980		return nil, err
123981	}
123982	return ret, nil
123983	// {
123984	//   "description": "Sets the instance template to use when creating new instances or recreating instances in this group. Existing instances are not affected.",
123985	//   "httpMethod": "POST",
123986	//   "id": "compute.regionInstanceGroupManagers.setInstanceTemplate",
123987	//   "parameterOrder": [
123988	//     "project",
123989	//     "region",
123990	//     "instanceGroupManager"
123991	//   ],
123992	//   "parameters": {
123993	//     "instanceGroupManager": {
123994	//       "description": "The name of the managed instance group.",
123995	//       "location": "path",
123996	//       "required": true,
123997	//       "type": "string"
123998	//     },
123999	//     "project": {
124000	//       "description": "Project ID for this request.",
124001	//       "location": "path",
124002	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124003	//       "required": true,
124004	//       "type": "string"
124005	//     },
124006	//     "region": {
124007	//       "description": "Name of the region scoping this request.",
124008	//       "location": "path",
124009	//       "required": true,
124010	//       "type": "string"
124011	//     },
124012	//     "requestId": {
124013	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
124014	//       "location": "query",
124015	//       "type": "string"
124016	//     }
124017	//   },
124018	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate",
124019	//   "request": {
124020	//     "$ref": "RegionInstanceGroupManagersSetTemplateRequest"
124021	//   },
124022	//   "response": {
124023	//     "$ref": "Operation"
124024	//   },
124025	//   "scopes": [
124026	//     "https://www.googleapis.com/auth/cloud-platform",
124027	//     "https://www.googleapis.com/auth/compute"
124028	//   ]
124029	// }
124030
124031}
124032
124033// method id "compute.regionInstanceGroupManagers.setTargetPools":
124034
124035type RegionInstanceGroupManagersSetTargetPoolsCall struct {
124036	s                                                *Service
124037	project                                          string
124038	region                                           string
124039	instanceGroupManager                             string
124040	regioninstancegroupmanagerssettargetpoolsrequest *RegionInstanceGroupManagersSetTargetPoolsRequest
124041	urlParams_                                       gensupport.URLParams
124042	ctx_                                             context.Context
124043	header_                                          http.Header
124044}
124045
124046// SetTargetPools: Modifies the target pools to which all new instances
124047// in this group are assigned. Existing instances in the group are not
124048// affected.
124049//
124050// - instanceGroupManager: Name of the managed instance group.
124051// - project: Project ID for this request.
124052// - region: Name of the region scoping this request.
124053func (r *RegionInstanceGroupManagersService) SetTargetPools(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssettargetpoolsrequest *RegionInstanceGroupManagersSetTargetPoolsRequest) *RegionInstanceGroupManagersSetTargetPoolsCall {
124054	c := &RegionInstanceGroupManagersSetTargetPoolsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124055	c.project = project
124056	c.region = region
124057	c.instanceGroupManager = instanceGroupManager
124058	c.regioninstancegroupmanagerssettargetpoolsrequest = regioninstancegroupmanagerssettargetpoolsrequest
124059	return c
124060}
124061
124062// RequestId sets the optional parameter "requestId": An optional
124063// request ID to identify requests. Specify a unique request ID so that
124064// if you must retry your request, the server will know to ignore the
124065// request if it has already been completed.
124066//
124067// For example, consider a situation where you make an initial request
124068// and the request times out. If you make the request again with the
124069// same request ID, the server can check if original operation with the
124070// same request ID was received, and if so, will ignore the second
124071// request. This prevents clients from accidentally creating duplicate
124072// commitments.
124073//
124074// The request ID must be a valid UUID with the exception that zero UUID
124075// is not supported (00000000-0000-0000-0000-000000000000).
124076func (c *RegionInstanceGroupManagersSetTargetPoolsCall) RequestId(requestId string) *RegionInstanceGroupManagersSetTargetPoolsCall {
124077	c.urlParams_.Set("requestId", requestId)
124078	return c
124079}
124080
124081// Fields allows partial responses to be retrieved. See
124082// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124083// for more information.
124084func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetTargetPoolsCall {
124085	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124086	return c
124087}
124088
124089// Context sets the context to be used in this call's Do method. Any
124090// pending HTTP request will be aborted if the provided context is
124091// canceled.
124092func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetTargetPoolsCall {
124093	c.ctx_ = ctx
124094	return c
124095}
124096
124097// Header returns an http.Header that can be modified by the caller to
124098// add HTTP headers to the request.
124099func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Header() http.Header {
124100	if c.header_ == nil {
124101		c.header_ = make(http.Header)
124102	}
124103	return c.header_
124104}
124105
124106func (c *RegionInstanceGroupManagersSetTargetPoolsCall) doRequest(alt string) (*http.Response, error) {
124107	reqHeaders := make(http.Header)
124108	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
124109	for k, v := range c.header_ {
124110		reqHeaders[k] = v
124111	}
124112	reqHeaders.Set("User-Agent", c.s.userAgent())
124113	var body io.Reader = nil
124114	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerssettargetpoolsrequest)
124115	if err != nil {
124116		return nil, err
124117	}
124118	reqHeaders.Set("Content-Type", "application/json")
124119	c.urlParams_.Set("alt", alt)
124120	c.urlParams_.Set("prettyPrint", "false")
124121	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools")
124122	urls += "?" + c.urlParams_.Encode()
124123	req, err := http.NewRequest("POST", urls, body)
124124	if err != nil {
124125		return nil, err
124126	}
124127	req.Header = reqHeaders
124128	googleapi.Expand(req.URL, map[string]string{
124129		"project":              c.project,
124130		"region":               c.region,
124131		"instanceGroupManager": c.instanceGroupManager,
124132	})
124133	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124134}
124135
124136// Do executes the "compute.regionInstanceGroupManagers.setTargetPools" call.
124137// Exactly one of *Operation or error will be non-nil. Any non-2xx
124138// status code is an error. Response headers are in either
124139// *Operation.ServerResponse.Header or (if a response was returned at
124140// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
124141// to check whether the returned error was because
124142// http.StatusNotModified was returned.
124143func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
124144	gensupport.SetOptions(c.urlParams_, opts...)
124145	res, err := c.doRequest("json")
124146	if res != nil && res.StatusCode == http.StatusNotModified {
124147		if res.Body != nil {
124148			res.Body.Close()
124149		}
124150		return nil, &googleapi.Error{
124151			Code:   res.StatusCode,
124152			Header: res.Header,
124153		}
124154	}
124155	if err != nil {
124156		return nil, err
124157	}
124158	defer googleapi.CloseBody(res)
124159	if err := googleapi.CheckResponse(res); err != nil {
124160		return nil, err
124161	}
124162	ret := &Operation{
124163		ServerResponse: googleapi.ServerResponse{
124164			Header:         res.Header,
124165			HTTPStatusCode: res.StatusCode,
124166		},
124167	}
124168	target := &ret
124169	if err := gensupport.DecodeResponse(target, res); err != nil {
124170		return nil, err
124171	}
124172	return ret, nil
124173	// {
124174	//   "description": "Modifies the target pools to which all new instances in this group are assigned. Existing instances in the group are not affected.",
124175	//   "httpMethod": "POST",
124176	//   "id": "compute.regionInstanceGroupManagers.setTargetPools",
124177	//   "parameterOrder": [
124178	//     "project",
124179	//     "region",
124180	//     "instanceGroupManager"
124181	//   ],
124182	//   "parameters": {
124183	//     "instanceGroupManager": {
124184	//       "description": "Name of the managed instance group.",
124185	//       "location": "path",
124186	//       "required": true,
124187	//       "type": "string"
124188	//     },
124189	//     "project": {
124190	//       "description": "Project ID for this request.",
124191	//       "location": "path",
124192	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124193	//       "required": true,
124194	//       "type": "string"
124195	//     },
124196	//     "region": {
124197	//       "description": "Name of the region scoping this request.",
124198	//       "location": "path",
124199	//       "required": true,
124200	//       "type": "string"
124201	//     },
124202	//     "requestId": {
124203	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
124204	//       "location": "query",
124205	//       "type": "string"
124206	//     }
124207	//   },
124208	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools",
124209	//   "request": {
124210	//     "$ref": "RegionInstanceGroupManagersSetTargetPoolsRequest"
124211	//   },
124212	//   "response": {
124213	//     "$ref": "Operation"
124214	//   },
124215	//   "scopes": [
124216	//     "https://www.googleapis.com/auth/cloud-platform",
124217	//     "https://www.googleapis.com/auth/compute"
124218	//   ]
124219	// }
124220
124221}
124222
124223// method id "compute.regionInstanceGroupManagers.updatePerInstanceConfigs":
124224
124225type RegionInstanceGroupManagersUpdatePerInstanceConfigsCall struct {
124226	s                                                 *Service
124227	project                                           string
124228	region                                            string
124229	instanceGroupManager                              string
124230	regioninstancegroupmanagerupdateinstanceconfigreq *RegionInstanceGroupManagerUpdateInstanceConfigReq
124231	urlParams_                                        gensupport.URLParams
124232	ctx_                                              context.Context
124233	header_                                           http.Header
124234}
124235
124236// UpdatePerInstanceConfigs: Inserts or updates per-instance configs for
124237// the managed instance group. perInstanceConfig.name serves as a key
124238// used to distinguish whether to perform insert or patch.
124239//
124240// - instanceGroupManager: The name of the managed instance group. It
124241//   should conform to RFC1035.
124242// - project: Project ID for this request.
124243// - region: Name of the region scoping this request, should conform to
124244//   RFC1035.
124245func (r *RegionInstanceGroupManagersService) UpdatePerInstanceConfigs(project string, region string, instanceGroupManager string, regioninstancegroupmanagerupdateinstanceconfigreq *RegionInstanceGroupManagerUpdateInstanceConfigReq) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
124246	c := &RegionInstanceGroupManagersUpdatePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124247	c.project = project
124248	c.region = region
124249	c.instanceGroupManager = instanceGroupManager
124250	c.regioninstancegroupmanagerupdateinstanceconfigreq = regioninstancegroupmanagerupdateinstanceconfigreq
124251	return c
124252}
124253
124254// RequestId sets the optional parameter "requestId": An optional
124255// request ID to identify requests. Specify a unique request ID so that
124256// if you must retry your request, the server will know to ignore the
124257// request if it has already been completed.
124258//
124259// For example, consider a situation where you make an initial request
124260// and the request times out. If you make the request again with the
124261// same request ID, the server can check if original operation with the
124262// same request ID was received, and if so, will ignore the second
124263// request. This prevents clients from accidentally creating duplicate
124264// commitments.
124265//
124266// The request ID must be a valid UUID with the exception that zero UUID
124267// is not supported (00000000-0000-0000-0000-000000000000).
124268func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) RequestId(requestId string) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
124269	c.urlParams_.Set("requestId", requestId)
124270	return c
124271}
124272
124273// Fields allows partial responses to be retrieved. See
124274// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124275// for more information.
124276func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
124277	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124278	return c
124279}
124280
124281// Context sets the context to be used in this call's Do method. Any
124282// pending HTTP request will be aborted if the provided context is
124283// canceled.
124284func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
124285	c.ctx_ = ctx
124286	return c
124287}
124288
124289// Header returns an http.Header that can be modified by the caller to
124290// add HTTP headers to the request.
124291func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Header() http.Header {
124292	if c.header_ == nil {
124293		c.header_ = make(http.Header)
124294	}
124295	return c.header_
124296}
124297
124298func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
124299	reqHeaders := make(http.Header)
124300	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
124301	for k, v := range c.header_ {
124302		reqHeaders[k] = v
124303	}
124304	reqHeaders.Set("User-Agent", c.s.userAgent())
124305	var body io.Reader = nil
124306	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerupdateinstanceconfigreq)
124307	if err != nil {
124308		return nil, err
124309	}
124310	reqHeaders.Set("Content-Type", "application/json")
124311	c.urlParams_.Set("alt", alt)
124312	c.urlParams_.Set("prettyPrint", "false")
124313	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs")
124314	urls += "?" + c.urlParams_.Encode()
124315	req, err := http.NewRequest("POST", urls, body)
124316	if err != nil {
124317		return nil, err
124318	}
124319	req.Header = reqHeaders
124320	googleapi.Expand(req.URL, map[string]string{
124321		"project":              c.project,
124322		"region":               c.region,
124323		"instanceGroupManager": c.instanceGroupManager,
124324	})
124325	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124326}
124327
124328// Do executes the "compute.regionInstanceGroupManagers.updatePerInstanceConfigs" call.
124329// Exactly one of *Operation or error will be non-nil. Any non-2xx
124330// status code is an error. Response headers are in either
124331// *Operation.ServerResponse.Header or (if a response was returned at
124332// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
124333// to check whether the returned error was because
124334// http.StatusNotModified was returned.
124335func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
124336	gensupport.SetOptions(c.urlParams_, opts...)
124337	res, err := c.doRequest("json")
124338	if res != nil && res.StatusCode == http.StatusNotModified {
124339		if res.Body != nil {
124340			res.Body.Close()
124341		}
124342		return nil, &googleapi.Error{
124343			Code:   res.StatusCode,
124344			Header: res.Header,
124345		}
124346	}
124347	if err != nil {
124348		return nil, err
124349	}
124350	defer googleapi.CloseBody(res)
124351	if err := googleapi.CheckResponse(res); err != nil {
124352		return nil, err
124353	}
124354	ret := &Operation{
124355		ServerResponse: googleapi.ServerResponse{
124356			Header:         res.Header,
124357			HTTPStatusCode: res.StatusCode,
124358		},
124359	}
124360	target := &ret
124361	if err := gensupport.DecodeResponse(target, res); err != nil {
124362		return nil, err
124363	}
124364	return ret, nil
124365	// {
124366	//   "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.",
124367	//   "httpMethod": "POST",
124368	//   "id": "compute.regionInstanceGroupManagers.updatePerInstanceConfigs",
124369	//   "parameterOrder": [
124370	//     "project",
124371	//     "region",
124372	//     "instanceGroupManager"
124373	//   ],
124374	//   "parameters": {
124375	//     "instanceGroupManager": {
124376	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
124377	//       "location": "path",
124378	//       "required": true,
124379	//       "type": "string"
124380	//     },
124381	//     "project": {
124382	//       "description": "Project ID for this request.",
124383	//       "location": "path",
124384	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124385	//       "required": true,
124386	//       "type": "string"
124387	//     },
124388	//     "region": {
124389	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
124390	//       "location": "path",
124391	//       "required": true,
124392	//       "type": "string"
124393	//     },
124394	//     "requestId": {
124395	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
124396	//       "location": "query",
124397	//       "type": "string"
124398	//     }
124399	//   },
124400	//   "path": "projects/{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs",
124401	//   "request": {
124402	//     "$ref": "RegionInstanceGroupManagerUpdateInstanceConfigReq"
124403	//   },
124404	//   "response": {
124405	//     "$ref": "Operation"
124406	//   },
124407	//   "scopes": [
124408	//     "https://www.googleapis.com/auth/cloud-platform",
124409	//     "https://www.googleapis.com/auth/compute"
124410	//   ]
124411	// }
124412
124413}
124414
124415// method id "compute.regionInstanceGroups.get":
124416
124417type RegionInstanceGroupsGetCall struct {
124418	s             *Service
124419	project       string
124420	region        string
124421	instanceGroup string
124422	urlParams_    gensupport.URLParams
124423	ifNoneMatch_  string
124424	ctx_          context.Context
124425	header_       http.Header
124426}
124427
124428// Get: Returns the specified instance group resource.
124429//
124430// - instanceGroup: Name of the instance group resource to return.
124431// - project: Project ID for this request.
124432// - region: Name of the region scoping this request.
124433func (r *RegionInstanceGroupsService) Get(project string, region string, instanceGroup string) *RegionInstanceGroupsGetCall {
124434	c := &RegionInstanceGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124435	c.project = project
124436	c.region = region
124437	c.instanceGroup = instanceGroup
124438	return c
124439}
124440
124441// Fields allows partial responses to be retrieved. See
124442// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124443// for more information.
124444func (c *RegionInstanceGroupsGetCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsGetCall {
124445	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124446	return c
124447}
124448
124449// IfNoneMatch sets the optional parameter which makes the operation
124450// fail if the object's ETag matches the given value. This is useful for
124451// getting updates only after the object has changed since the last
124452// request. Use googleapi.IsNotModified to check whether the response
124453// error from Do is the result of In-None-Match.
124454func (c *RegionInstanceGroupsGetCall) IfNoneMatch(entityTag string) *RegionInstanceGroupsGetCall {
124455	c.ifNoneMatch_ = entityTag
124456	return c
124457}
124458
124459// Context sets the context to be used in this call's Do method. Any
124460// pending HTTP request will be aborted if the provided context is
124461// canceled.
124462func (c *RegionInstanceGroupsGetCall) Context(ctx context.Context) *RegionInstanceGroupsGetCall {
124463	c.ctx_ = ctx
124464	return c
124465}
124466
124467// Header returns an http.Header that can be modified by the caller to
124468// add HTTP headers to the request.
124469func (c *RegionInstanceGroupsGetCall) Header() http.Header {
124470	if c.header_ == nil {
124471		c.header_ = make(http.Header)
124472	}
124473	return c.header_
124474}
124475
124476func (c *RegionInstanceGroupsGetCall) doRequest(alt string) (*http.Response, error) {
124477	reqHeaders := make(http.Header)
124478	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
124479	for k, v := range c.header_ {
124480		reqHeaders[k] = v
124481	}
124482	reqHeaders.Set("User-Agent", c.s.userAgent())
124483	if c.ifNoneMatch_ != "" {
124484		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
124485	}
124486	var body io.Reader = nil
124487	c.urlParams_.Set("alt", alt)
124488	c.urlParams_.Set("prettyPrint", "false")
124489	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}")
124490	urls += "?" + c.urlParams_.Encode()
124491	req, err := http.NewRequest("GET", urls, body)
124492	if err != nil {
124493		return nil, err
124494	}
124495	req.Header = reqHeaders
124496	googleapi.Expand(req.URL, map[string]string{
124497		"project":       c.project,
124498		"region":        c.region,
124499		"instanceGroup": c.instanceGroup,
124500	})
124501	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124502}
124503
124504// Do executes the "compute.regionInstanceGroups.get" call.
124505// Exactly one of *InstanceGroup or error will be non-nil. Any non-2xx
124506// status code is an error. Response headers are in either
124507// *InstanceGroup.ServerResponse.Header or (if a response was returned
124508// at all) in error.(*googleapi.Error).Header. Use
124509// googleapi.IsNotModified to check whether the returned error was
124510// because http.StatusNotModified was returned.
124511func (c *RegionInstanceGroupsGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroup, error) {
124512	gensupport.SetOptions(c.urlParams_, opts...)
124513	res, err := c.doRequest("json")
124514	if res != nil && res.StatusCode == http.StatusNotModified {
124515		if res.Body != nil {
124516			res.Body.Close()
124517		}
124518		return nil, &googleapi.Error{
124519			Code:   res.StatusCode,
124520			Header: res.Header,
124521		}
124522	}
124523	if err != nil {
124524		return nil, err
124525	}
124526	defer googleapi.CloseBody(res)
124527	if err := googleapi.CheckResponse(res); err != nil {
124528		return nil, err
124529	}
124530	ret := &InstanceGroup{
124531		ServerResponse: googleapi.ServerResponse{
124532			Header:         res.Header,
124533			HTTPStatusCode: res.StatusCode,
124534		},
124535	}
124536	target := &ret
124537	if err := gensupport.DecodeResponse(target, res); err != nil {
124538		return nil, err
124539	}
124540	return ret, nil
124541	// {
124542	//   "description": "Returns the specified instance group resource.",
124543	//   "httpMethod": "GET",
124544	//   "id": "compute.regionInstanceGroups.get",
124545	//   "parameterOrder": [
124546	//     "project",
124547	//     "region",
124548	//     "instanceGroup"
124549	//   ],
124550	//   "parameters": {
124551	//     "instanceGroup": {
124552	//       "description": "Name of the instance group resource to return.",
124553	//       "location": "path",
124554	//       "required": true,
124555	//       "type": "string"
124556	//     },
124557	//     "project": {
124558	//       "description": "Project ID for this request.",
124559	//       "location": "path",
124560	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124561	//       "required": true,
124562	//       "type": "string"
124563	//     },
124564	//     "region": {
124565	//       "description": "Name of the region scoping this request.",
124566	//       "location": "path",
124567	//       "required": true,
124568	//       "type": "string"
124569	//     }
124570	//   },
124571	//   "path": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}",
124572	//   "response": {
124573	//     "$ref": "InstanceGroup"
124574	//   },
124575	//   "scopes": [
124576	//     "https://www.googleapis.com/auth/cloud-platform",
124577	//     "https://www.googleapis.com/auth/compute",
124578	//     "https://www.googleapis.com/auth/compute.readonly"
124579	//   ]
124580	// }
124581
124582}
124583
124584// method id "compute.regionInstanceGroups.list":
124585
124586type RegionInstanceGroupsListCall struct {
124587	s            *Service
124588	project      string
124589	region       string
124590	urlParams_   gensupport.URLParams
124591	ifNoneMatch_ string
124592	ctx_         context.Context
124593	header_      http.Header
124594}
124595
124596// List: Retrieves the list of instance group resources contained within
124597// the specified region.
124598//
124599// - project: Project ID for this request.
124600// - region: Name of the region scoping this request.
124601func (r *RegionInstanceGroupsService) List(project string, region string) *RegionInstanceGroupsListCall {
124602	c := &RegionInstanceGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124603	c.project = project
124604	c.region = region
124605	return c
124606}
124607
124608// Filter sets the optional parameter "filter": A filter expression that
124609// filters resources listed in the response. The expression must specify
124610// the field name, a comparison operator, and the value that you want to
124611// use for filtering. The value must be a string, a number, or a
124612// boolean. The comparison operator must be either `=`, `!=`, `>`, or
124613// `<`.
124614//
124615// For example, if you are filtering Compute Engine instances, you can
124616// exclude instances named `example-instance` by specifying `name !=
124617// example-instance`.
124618//
124619// You can also filter nested fields. For example, you could specify
124620// `scheduling.automaticRestart = false` to include instances only if
124621// they are not scheduled for automatic restarts. You can use filtering
124622// on nested fields to filter based on resource labels.
124623//
124624// To filter on multiple expressions, provide each separate expression
124625// within parentheses. For example: ``` (scheduling.automaticRestart =
124626// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
124627// is an `AND` expression. However, you can include `AND` and `OR`
124628// expressions explicitly. For example: ``` (cpuPlatform = "Intel
124629// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
124630// (scheduling.automaticRestart = true) ```
124631func (c *RegionInstanceGroupsListCall) Filter(filter string) *RegionInstanceGroupsListCall {
124632	c.urlParams_.Set("filter", filter)
124633	return c
124634}
124635
124636// MaxResults sets the optional parameter "maxResults": The maximum
124637// number of results per page that should be returned. If the number of
124638// available results is larger than `maxResults`, Compute Engine returns
124639// a `nextPageToken` that can be used to get the next page of results in
124640// subsequent list requests. Acceptable values are `0` to `500`,
124641// inclusive. (Default: `500`)
124642func (c *RegionInstanceGroupsListCall) MaxResults(maxResults int64) *RegionInstanceGroupsListCall {
124643	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
124644	return c
124645}
124646
124647// OrderBy sets the optional parameter "orderBy": Sorts list results by
124648// a certain order. By default, results are returned in alphanumerical
124649// order based on the resource name.
124650//
124651// You can also sort results in descending order based on the creation
124652// timestamp using `orderBy="creationTimestamp desc". This sorts
124653// results based on the `creationTimestamp` field in reverse
124654// chronological order (newest result first). Use this to sort resources
124655// like operations so that the newest operation is returned
124656// first.
124657//
124658// Currently, only sorting by `name` or `creationTimestamp desc` is
124659// supported.
124660func (c *RegionInstanceGroupsListCall) OrderBy(orderBy string) *RegionInstanceGroupsListCall {
124661	c.urlParams_.Set("orderBy", orderBy)
124662	return c
124663}
124664
124665// PageToken sets the optional parameter "pageToken": Specifies a page
124666// token to use. Set `pageToken` to the `nextPageToken` returned by a
124667// previous list request to get the next page of results.
124668func (c *RegionInstanceGroupsListCall) PageToken(pageToken string) *RegionInstanceGroupsListCall {
124669	c.urlParams_.Set("pageToken", pageToken)
124670	return c
124671}
124672
124673// ReturnPartialSuccess sets the optional parameter
124674// "returnPartialSuccess": Opt-in for partial success behavior which
124675// provides partial results in case of failure. The default value is
124676// false.
124677func (c *RegionInstanceGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupsListCall {
124678	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
124679	return c
124680}
124681
124682// Fields allows partial responses to be retrieved. See
124683// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124684// for more information.
124685func (c *RegionInstanceGroupsListCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsListCall {
124686	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124687	return c
124688}
124689
124690// IfNoneMatch sets the optional parameter which makes the operation
124691// fail if the object's ETag matches the given value. This is useful for
124692// getting updates only after the object has changed since the last
124693// request. Use googleapi.IsNotModified to check whether the response
124694// error from Do is the result of In-None-Match.
124695func (c *RegionInstanceGroupsListCall) IfNoneMatch(entityTag string) *RegionInstanceGroupsListCall {
124696	c.ifNoneMatch_ = entityTag
124697	return c
124698}
124699
124700// Context sets the context to be used in this call's Do method. Any
124701// pending HTTP request will be aborted if the provided context is
124702// canceled.
124703func (c *RegionInstanceGroupsListCall) Context(ctx context.Context) *RegionInstanceGroupsListCall {
124704	c.ctx_ = ctx
124705	return c
124706}
124707
124708// Header returns an http.Header that can be modified by the caller to
124709// add HTTP headers to the request.
124710func (c *RegionInstanceGroupsListCall) Header() http.Header {
124711	if c.header_ == nil {
124712		c.header_ = make(http.Header)
124713	}
124714	return c.header_
124715}
124716
124717func (c *RegionInstanceGroupsListCall) doRequest(alt string) (*http.Response, error) {
124718	reqHeaders := make(http.Header)
124719	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
124720	for k, v := range c.header_ {
124721		reqHeaders[k] = v
124722	}
124723	reqHeaders.Set("User-Agent", c.s.userAgent())
124724	if c.ifNoneMatch_ != "" {
124725		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
124726	}
124727	var body io.Reader = nil
124728	c.urlParams_.Set("alt", alt)
124729	c.urlParams_.Set("prettyPrint", "false")
124730	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroups")
124731	urls += "?" + c.urlParams_.Encode()
124732	req, err := http.NewRequest("GET", urls, body)
124733	if err != nil {
124734		return nil, err
124735	}
124736	req.Header = reqHeaders
124737	googleapi.Expand(req.URL, map[string]string{
124738		"project": c.project,
124739		"region":  c.region,
124740	})
124741	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124742}
124743
124744// Do executes the "compute.regionInstanceGroups.list" call.
124745// Exactly one of *RegionInstanceGroupList or error will be non-nil. Any
124746// non-2xx status code is an error. Response headers are in either
124747// *RegionInstanceGroupList.ServerResponse.Header or (if a response was
124748// returned at all) in error.(*googleapi.Error).Header. Use
124749// googleapi.IsNotModified to check whether the returned error was
124750// because http.StatusNotModified was returned.
124751func (c *RegionInstanceGroupsListCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupList, error) {
124752	gensupport.SetOptions(c.urlParams_, opts...)
124753	res, err := c.doRequest("json")
124754	if res != nil && res.StatusCode == http.StatusNotModified {
124755		if res.Body != nil {
124756			res.Body.Close()
124757		}
124758		return nil, &googleapi.Error{
124759			Code:   res.StatusCode,
124760			Header: res.Header,
124761		}
124762	}
124763	if err != nil {
124764		return nil, err
124765	}
124766	defer googleapi.CloseBody(res)
124767	if err := googleapi.CheckResponse(res); err != nil {
124768		return nil, err
124769	}
124770	ret := &RegionInstanceGroupList{
124771		ServerResponse: googleapi.ServerResponse{
124772			Header:         res.Header,
124773			HTTPStatusCode: res.StatusCode,
124774		},
124775	}
124776	target := &ret
124777	if err := gensupport.DecodeResponse(target, res); err != nil {
124778		return nil, err
124779	}
124780	return ret, nil
124781	// {
124782	//   "description": "Retrieves the list of instance group resources contained within the specified region.",
124783	//   "httpMethod": "GET",
124784	//   "id": "compute.regionInstanceGroups.list",
124785	//   "parameterOrder": [
124786	//     "project",
124787	//     "region"
124788	//   ],
124789	//   "parameters": {
124790	//     "filter": {
124791	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
124792	//       "location": "query",
124793	//       "type": "string"
124794	//     },
124795	//     "maxResults": {
124796	//       "default": "500",
124797	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
124798	//       "format": "uint32",
124799	//       "location": "query",
124800	//       "minimum": "0",
124801	//       "type": "integer"
124802	//     },
124803	//     "orderBy": {
124804	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
124805	//       "location": "query",
124806	//       "type": "string"
124807	//     },
124808	//     "pageToken": {
124809	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
124810	//       "location": "query",
124811	//       "type": "string"
124812	//     },
124813	//     "project": {
124814	//       "description": "Project ID for this request.",
124815	//       "location": "path",
124816	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124817	//       "required": true,
124818	//       "type": "string"
124819	//     },
124820	//     "region": {
124821	//       "description": "Name of the region scoping this request.",
124822	//       "location": "path",
124823	//       "required": true,
124824	//       "type": "string"
124825	//     },
124826	//     "returnPartialSuccess": {
124827	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
124828	//       "location": "query",
124829	//       "type": "boolean"
124830	//     }
124831	//   },
124832	//   "path": "projects/{project}/regions/{region}/instanceGroups",
124833	//   "response": {
124834	//     "$ref": "RegionInstanceGroupList"
124835	//   },
124836	//   "scopes": [
124837	//     "https://www.googleapis.com/auth/cloud-platform",
124838	//     "https://www.googleapis.com/auth/compute",
124839	//     "https://www.googleapis.com/auth/compute.readonly"
124840	//   ]
124841	// }
124842
124843}
124844
124845// Pages invokes f for each page of results.
124846// A non-nil error returned from f will halt the iteration.
124847// The provided context supersedes any context provided to the Context method.
124848func (c *RegionInstanceGroupsListCall) Pages(ctx context.Context, f func(*RegionInstanceGroupList) error) error {
124849	c.ctx_ = ctx
124850	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
124851	for {
124852		x, err := c.Do()
124853		if err != nil {
124854			return err
124855		}
124856		if err := f(x); err != nil {
124857			return err
124858		}
124859		if x.NextPageToken == "" {
124860			return nil
124861		}
124862		c.PageToken(x.NextPageToken)
124863	}
124864}
124865
124866// method id "compute.regionInstanceGroups.listInstances":
124867
124868type RegionInstanceGroupsListInstancesCall struct {
124869	s                                        *Service
124870	project                                  string
124871	region                                   string
124872	instanceGroup                            string
124873	regioninstancegroupslistinstancesrequest *RegionInstanceGroupsListInstancesRequest
124874	urlParams_                               gensupport.URLParams
124875	ctx_                                     context.Context
124876	header_                                  http.Header
124877}
124878
124879// ListInstances: Lists the instances in the specified instance group
124880// and displays information about the named ports. Depending on the
124881// specified options, this method can list all instances or only the
124882// instances that are running. The orderBy query parameter is not
124883// supported.
124884//
124885// - instanceGroup: Name of the regional instance group for which we
124886//   want to list the instances.
124887// - project: Project ID for this request.
124888// - region: Name of the region scoping this request.
124889func (r *RegionInstanceGroupsService) ListInstances(project string, region string, instanceGroup string, regioninstancegroupslistinstancesrequest *RegionInstanceGroupsListInstancesRequest) *RegionInstanceGroupsListInstancesCall {
124890	c := &RegionInstanceGroupsListInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124891	c.project = project
124892	c.region = region
124893	c.instanceGroup = instanceGroup
124894	c.regioninstancegroupslistinstancesrequest = regioninstancegroupslistinstancesrequest
124895	return c
124896}
124897
124898// Filter sets the optional parameter "filter": A filter expression that
124899// filters resources listed in the response. The expression must specify
124900// the field name, a comparison operator, and the value that you want to
124901// use for filtering. The value must be a string, a number, or a
124902// boolean. The comparison operator must be either `=`, `!=`, `>`, or
124903// `<`.
124904//
124905// For example, if you are filtering Compute Engine instances, you can
124906// exclude instances named `example-instance` by specifying `name !=
124907// example-instance`.
124908//
124909// You can also filter nested fields. For example, you could specify
124910// `scheduling.automaticRestart = false` to include instances only if
124911// they are not scheduled for automatic restarts. You can use filtering
124912// on nested fields to filter based on resource labels.
124913//
124914// To filter on multiple expressions, provide each separate expression
124915// within parentheses. For example: ``` (scheduling.automaticRestart =
124916// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
124917// is an `AND` expression. However, you can include `AND` and `OR`
124918// expressions explicitly. For example: ``` (cpuPlatform = "Intel
124919// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
124920// (scheduling.automaticRestart = true) ```
124921func (c *RegionInstanceGroupsListInstancesCall) Filter(filter string) *RegionInstanceGroupsListInstancesCall {
124922	c.urlParams_.Set("filter", filter)
124923	return c
124924}
124925
124926// MaxResults sets the optional parameter "maxResults": The maximum
124927// number of results per page that should be returned. If the number of
124928// available results is larger than `maxResults`, Compute Engine returns
124929// a `nextPageToken` that can be used to get the next page of results in
124930// subsequent list requests. Acceptable values are `0` to `500`,
124931// inclusive. (Default: `500`)
124932func (c *RegionInstanceGroupsListInstancesCall) MaxResults(maxResults int64) *RegionInstanceGroupsListInstancesCall {
124933	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
124934	return c
124935}
124936
124937// OrderBy sets the optional parameter "orderBy": Sorts list results by
124938// a certain order. By default, results are returned in alphanumerical
124939// order based on the resource name.
124940//
124941// You can also sort results in descending order based on the creation
124942// timestamp using `orderBy="creationTimestamp desc". This sorts
124943// results based on the `creationTimestamp` field in reverse
124944// chronological order (newest result first). Use this to sort resources
124945// like operations so that the newest operation is returned
124946// first.
124947//
124948// Currently, only sorting by `name` or `creationTimestamp desc` is
124949// supported.
124950func (c *RegionInstanceGroupsListInstancesCall) OrderBy(orderBy string) *RegionInstanceGroupsListInstancesCall {
124951	c.urlParams_.Set("orderBy", orderBy)
124952	return c
124953}
124954
124955// PageToken sets the optional parameter "pageToken": Specifies a page
124956// token to use. Set `pageToken` to the `nextPageToken` returned by a
124957// previous list request to get the next page of results.
124958func (c *RegionInstanceGroupsListInstancesCall) PageToken(pageToken string) *RegionInstanceGroupsListInstancesCall {
124959	c.urlParams_.Set("pageToken", pageToken)
124960	return c
124961}
124962
124963// ReturnPartialSuccess sets the optional parameter
124964// "returnPartialSuccess": Opt-in for partial success behavior which
124965// provides partial results in case of failure. The default value is
124966// false.
124967func (c *RegionInstanceGroupsListInstancesCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionInstanceGroupsListInstancesCall {
124968	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
124969	return c
124970}
124971
124972// Fields allows partial responses to be retrieved. See
124973// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124974// for more information.
124975func (c *RegionInstanceGroupsListInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsListInstancesCall {
124976	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124977	return c
124978}
124979
124980// Context sets the context to be used in this call's Do method. Any
124981// pending HTTP request will be aborted if the provided context is
124982// canceled.
124983func (c *RegionInstanceGroupsListInstancesCall) Context(ctx context.Context) *RegionInstanceGroupsListInstancesCall {
124984	c.ctx_ = ctx
124985	return c
124986}
124987
124988// Header returns an http.Header that can be modified by the caller to
124989// add HTTP headers to the request.
124990func (c *RegionInstanceGroupsListInstancesCall) Header() http.Header {
124991	if c.header_ == nil {
124992		c.header_ = make(http.Header)
124993	}
124994	return c.header_
124995}
124996
124997func (c *RegionInstanceGroupsListInstancesCall) doRequest(alt string) (*http.Response, error) {
124998	reqHeaders := make(http.Header)
124999	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
125000	for k, v := range c.header_ {
125001		reqHeaders[k] = v
125002	}
125003	reqHeaders.Set("User-Agent", c.s.userAgent())
125004	var body io.Reader = nil
125005	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupslistinstancesrequest)
125006	if err != nil {
125007		return nil, err
125008	}
125009	reqHeaders.Set("Content-Type", "application/json")
125010	c.urlParams_.Set("alt", alt)
125011	c.urlParams_.Set("prettyPrint", "false")
125012	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances")
125013	urls += "?" + c.urlParams_.Encode()
125014	req, err := http.NewRequest("POST", urls, body)
125015	if err != nil {
125016		return nil, err
125017	}
125018	req.Header = reqHeaders
125019	googleapi.Expand(req.URL, map[string]string{
125020		"project":       c.project,
125021		"region":        c.region,
125022		"instanceGroup": c.instanceGroup,
125023	})
125024	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125025}
125026
125027// Do executes the "compute.regionInstanceGroups.listInstances" call.
125028// Exactly one of *RegionInstanceGroupsListInstances or error will be
125029// non-nil. Any non-2xx status code is an error. Response headers are in
125030// either *RegionInstanceGroupsListInstances.ServerResponse.Header or
125031// (if a response was returned at all) in
125032// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
125033// whether the returned error was because http.StatusNotModified was
125034// returned.
125035func (c *RegionInstanceGroupsListInstancesCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupsListInstances, error) {
125036	gensupport.SetOptions(c.urlParams_, opts...)
125037	res, err := c.doRequest("json")
125038	if res != nil && res.StatusCode == http.StatusNotModified {
125039		if res.Body != nil {
125040			res.Body.Close()
125041		}
125042		return nil, &googleapi.Error{
125043			Code:   res.StatusCode,
125044			Header: res.Header,
125045		}
125046	}
125047	if err != nil {
125048		return nil, err
125049	}
125050	defer googleapi.CloseBody(res)
125051	if err := googleapi.CheckResponse(res); err != nil {
125052		return nil, err
125053	}
125054	ret := &RegionInstanceGroupsListInstances{
125055		ServerResponse: googleapi.ServerResponse{
125056			Header:         res.Header,
125057			HTTPStatusCode: res.StatusCode,
125058		},
125059	}
125060	target := &ret
125061	if err := gensupport.DecodeResponse(target, res); err != nil {
125062		return nil, err
125063	}
125064	return ret, nil
125065	// {
125066	//   "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.",
125067	//   "httpMethod": "POST",
125068	//   "id": "compute.regionInstanceGroups.listInstances",
125069	//   "parameterOrder": [
125070	//     "project",
125071	//     "region",
125072	//     "instanceGroup"
125073	//   ],
125074	//   "parameters": {
125075	//     "filter": {
125076	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
125077	//       "location": "query",
125078	//       "type": "string"
125079	//     },
125080	//     "instanceGroup": {
125081	//       "description": "Name of the regional instance group for which we want to list the instances.",
125082	//       "location": "path",
125083	//       "required": true,
125084	//       "type": "string"
125085	//     },
125086	//     "maxResults": {
125087	//       "default": "500",
125088	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
125089	//       "format": "uint32",
125090	//       "location": "query",
125091	//       "minimum": "0",
125092	//       "type": "integer"
125093	//     },
125094	//     "orderBy": {
125095	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
125096	//       "location": "query",
125097	//       "type": "string"
125098	//     },
125099	//     "pageToken": {
125100	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
125101	//       "location": "query",
125102	//       "type": "string"
125103	//     },
125104	//     "project": {
125105	//       "description": "Project ID for this request.",
125106	//       "location": "path",
125107	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125108	//       "required": true,
125109	//       "type": "string"
125110	//     },
125111	//     "region": {
125112	//       "description": "Name of the region scoping this request.",
125113	//       "location": "path",
125114	//       "required": true,
125115	//       "type": "string"
125116	//     },
125117	//     "returnPartialSuccess": {
125118	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
125119	//       "location": "query",
125120	//       "type": "boolean"
125121	//     }
125122	//   },
125123	//   "path": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances",
125124	//   "request": {
125125	//     "$ref": "RegionInstanceGroupsListInstancesRequest"
125126	//   },
125127	//   "response": {
125128	//     "$ref": "RegionInstanceGroupsListInstances"
125129	//   },
125130	//   "scopes": [
125131	//     "https://www.googleapis.com/auth/cloud-platform",
125132	//     "https://www.googleapis.com/auth/compute",
125133	//     "https://www.googleapis.com/auth/compute.readonly"
125134	//   ]
125135	// }
125136
125137}
125138
125139// Pages invokes f for each page of results.
125140// A non-nil error returned from f will halt the iteration.
125141// The provided context supersedes any context provided to the Context method.
125142func (c *RegionInstanceGroupsListInstancesCall) Pages(ctx context.Context, f func(*RegionInstanceGroupsListInstances) error) error {
125143	c.ctx_ = ctx
125144	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
125145	for {
125146		x, err := c.Do()
125147		if err != nil {
125148			return err
125149		}
125150		if err := f(x); err != nil {
125151			return err
125152		}
125153		if x.NextPageToken == "" {
125154			return nil
125155		}
125156		c.PageToken(x.NextPageToken)
125157	}
125158}
125159
125160// method id "compute.regionInstanceGroups.setNamedPorts":
125161
125162type RegionInstanceGroupsSetNamedPortsCall struct {
125163	s                                        *Service
125164	project                                  string
125165	region                                   string
125166	instanceGroup                            string
125167	regioninstancegroupssetnamedportsrequest *RegionInstanceGroupsSetNamedPortsRequest
125168	urlParams_                               gensupport.URLParams
125169	ctx_                                     context.Context
125170	header_                                  http.Header
125171}
125172
125173// SetNamedPorts: Sets the named ports for the specified regional
125174// instance group.
125175//
125176// - instanceGroup: The name of the regional instance group where the
125177//   named ports are updated.
125178// - project: Project ID for this request.
125179// - region: Name of the region scoping this request.
125180func (r *RegionInstanceGroupsService) SetNamedPorts(project string, region string, instanceGroup string, regioninstancegroupssetnamedportsrequest *RegionInstanceGroupsSetNamedPortsRequest) *RegionInstanceGroupsSetNamedPortsCall {
125181	c := &RegionInstanceGroupsSetNamedPortsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125182	c.project = project
125183	c.region = region
125184	c.instanceGroup = instanceGroup
125185	c.regioninstancegroupssetnamedportsrequest = regioninstancegroupssetnamedportsrequest
125186	return c
125187}
125188
125189// RequestId sets the optional parameter "requestId": An optional
125190// request ID to identify requests. Specify a unique request ID so that
125191// if you must retry your request, the server will know to ignore the
125192// request if it has already been completed.
125193//
125194// For example, consider a situation where you make an initial request
125195// and the request times out. If you make the request again with the
125196// same request ID, the server can check if original operation with the
125197// same request ID was received, and if so, will ignore the second
125198// request. This prevents clients from accidentally creating duplicate
125199// commitments.
125200//
125201// The request ID must be a valid UUID with the exception that zero UUID
125202// is not supported (00000000-0000-0000-0000-000000000000).
125203func (c *RegionInstanceGroupsSetNamedPortsCall) RequestId(requestId string) *RegionInstanceGroupsSetNamedPortsCall {
125204	c.urlParams_.Set("requestId", requestId)
125205	return c
125206}
125207
125208// Fields allows partial responses to be retrieved. See
125209// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125210// for more information.
125211func (c *RegionInstanceGroupsSetNamedPortsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsSetNamedPortsCall {
125212	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125213	return c
125214}
125215
125216// Context sets the context to be used in this call's Do method. Any
125217// pending HTTP request will be aborted if the provided context is
125218// canceled.
125219func (c *RegionInstanceGroupsSetNamedPortsCall) Context(ctx context.Context) *RegionInstanceGroupsSetNamedPortsCall {
125220	c.ctx_ = ctx
125221	return c
125222}
125223
125224// Header returns an http.Header that can be modified by the caller to
125225// add HTTP headers to the request.
125226func (c *RegionInstanceGroupsSetNamedPortsCall) Header() http.Header {
125227	if c.header_ == nil {
125228		c.header_ = make(http.Header)
125229	}
125230	return c.header_
125231}
125232
125233func (c *RegionInstanceGroupsSetNamedPortsCall) doRequest(alt string) (*http.Response, error) {
125234	reqHeaders := make(http.Header)
125235	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
125236	for k, v := range c.header_ {
125237		reqHeaders[k] = v
125238	}
125239	reqHeaders.Set("User-Agent", c.s.userAgent())
125240	var body io.Reader = nil
125241	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupssetnamedportsrequest)
125242	if err != nil {
125243		return nil, err
125244	}
125245	reqHeaders.Set("Content-Type", "application/json")
125246	c.urlParams_.Set("alt", alt)
125247	c.urlParams_.Set("prettyPrint", "false")
125248	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts")
125249	urls += "?" + c.urlParams_.Encode()
125250	req, err := http.NewRequest("POST", urls, body)
125251	if err != nil {
125252		return nil, err
125253	}
125254	req.Header = reqHeaders
125255	googleapi.Expand(req.URL, map[string]string{
125256		"project":       c.project,
125257		"region":        c.region,
125258		"instanceGroup": c.instanceGroup,
125259	})
125260	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125261}
125262
125263// Do executes the "compute.regionInstanceGroups.setNamedPorts" call.
125264// Exactly one of *Operation or error will be non-nil. Any non-2xx
125265// status code is an error. Response headers are in either
125266// *Operation.ServerResponse.Header or (if a response was returned at
125267// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
125268// to check whether the returned error was because
125269// http.StatusNotModified was returned.
125270func (c *RegionInstanceGroupsSetNamedPortsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
125271	gensupport.SetOptions(c.urlParams_, opts...)
125272	res, err := c.doRequest("json")
125273	if res != nil && res.StatusCode == http.StatusNotModified {
125274		if res.Body != nil {
125275			res.Body.Close()
125276		}
125277		return nil, &googleapi.Error{
125278			Code:   res.StatusCode,
125279			Header: res.Header,
125280		}
125281	}
125282	if err != nil {
125283		return nil, err
125284	}
125285	defer googleapi.CloseBody(res)
125286	if err := googleapi.CheckResponse(res); err != nil {
125287		return nil, err
125288	}
125289	ret := &Operation{
125290		ServerResponse: googleapi.ServerResponse{
125291			Header:         res.Header,
125292			HTTPStatusCode: res.StatusCode,
125293		},
125294	}
125295	target := &ret
125296	if err := gensupport.DecodeResponse(target, res); err != nil {
125297		return nil, err
125298	}
125299	return ret, nil
125300	// {
125301	//   "description": "Sets the named ports for the specified regional instance group.",
125302	//   "httpMethod": "POST",
125303	//   "id": "compute.regionInstanceGroups.setNamedPorts",
125304	//   "parameterOrder": [
125305	//     "project",
125306	//     "region",
125307	//     "instanceGroup"
125308	//   ],
125309	//   "parameters": {
125310	//     "instanceGroup": {
125311	//       "description": "The name of the regional instance group where the named ports are updated.",
125312	//       "location": "path",
125313	//       "required": true,
125314	//       "type": "string"
125315	//     },
125316	//     "project": {
125317	//       "description": "Project ID for this request.",
125318	//       "location": "path",
125319	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125320	//       "required": true,
125321	//       "type": "string"
125322	//     },
125323	//     "region": {
125324	//       "description": "Name of the region scoping this request.",
125325	//       "location": "path",
125326	//       "required": true,
125327	//       "type": "string"
125328	//     },
125329	//     "requestId": {
125330	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
125331	//       "location": "query",
125332	//       "type": "string"
125333	//     }
125334	//   },
125335	//   "path": "projects/{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts",
125336	//   "request": {
125337	//     "$ref": "RegionInstanceGroupsSetNamedPortsRequest"
125338	//   },
125339	//   "response": {
125340	//     "$ref": "Operation"
125341	//   },
125342	//   "scopes": [
125343	//     "https://www.googleapis.com/auth/cloud-platform",
125344	//     "https://www.googleapis.com/auth/compute"
125345	//   ]
125346	// }
125347
125348}
125349
125350// method id "compute.regionInstances.bulkInsert":
125351
125352type RegionInstancesBulkInsertCall struct {
125353	s                          *Service
125354	project                    string
125355	region                     string
125356	bulkinsertinstanceresource *BulkInsertInstanceResource
125357	urlParams_                 gensupport.URLParams
125358	ctx_                       context.Context
125359	header_                    http.Header
125360}
125361
125362// BulkInsert: Creates multiple instances in a given region. Count
125363// specifies the number of instances to create.
125364//
125365// - project: Project ID for this request.
125366// - region: The name of the region for this request.
125367func (r *RegionInstancesService) BulkInsert(project string, region string, bulkinsertinstanceresource *BulkInsertInstanceResource) *RegionInstancesBulkInsertCall {
125368	c := &RegionInstancesBulkInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125369	c.project = project
125370	c.region = region
125371	c.bulkinsertinstanceresource = bulkinsertinstanceresource
125372	return c
125373}
125374
125375// RequestId sets the optional parameter "requestId": An optional
125376// request ID to identify requests. Specify a unique request ID so that
125377// if you must retry your request, the server will know to ignore the
125378// request if it has already been completed.
125379//
125380// For example, consider a situation where you make an initial request
125381// and the request times out. If you make the request again with the
125382// same request ID, the server can check if original operation with the
125383// same request ID was received, and if so, will ignore the second
125384// request. This prevents clients from accidentally creating duplicate
125385// commitments.
125386//
125387// The request ID must be a valid UUID with the exception that zero UUID
125388// is not supported (00000000-0000-0000-0000-000000000000).
125389func (c *RegionInstancesBulkInsertCall) RequestId(requestId string) *RegionInstancesBulkInsertCall {
125390	c.urlParams_.Set("requestId", requestId)
125391	return c
125392}
125393
125394// Fields allows partial responses to be retrieved. See
125395// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125396// for more information.
125397func (c *RegionInstancesBulkInsertCall) Fields(s ...googleapi.Field) *RegionInstancesBulkInsertCall {
125398	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125399	return c
125400}
125401
125402// Context sets the context to be used in this call's Do method. Any
125403// pending HTTP request will be aborted if the provided context is
125404// canceled.
125405func (c *RegionInstancesBulkInsertCall) Context(ctx context.Context) *RegionInstancesBulkInsertCall {
125406	c.ctx_ = ctx
125407	return c
125408}
125409
125410// Header returns an http.Header that can be modified by the caller to
125411// add HTTP headers to the request.
125412func (c *RegionInstancesBulkInsertCall) Header() http.Header {
125413	if c.header_ == nil {
125414		c.header_ = make(http.Header)
125415	}
125416	return c.header_
125417}
125418
125419func (c *RegionInstancesBulkInsertCall) doRequest(alt string) (*http.Response, error) {
125420	reqHeaders := make(http.Header)
125421	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
125422	for k, v := range c.header_ {
125423		reqHeaders[k] = v
125424	}
125425	reqHeaders.Set("User-Agent", c.s.userAgent())
125426	var body io.Reader = nil
125427	body, err := googleapi.WithoutDataWrapper.JSONReader(c.bulkinsertinstanceresource)
125428	if err != nil {
125429		return nil, err
125430	}
125431	reqHeaders.Set("Content-Type", "application/json")
125432	c.urlParams_.Set("alt", alt)
125433	c.urlParams_.Set("prettyPrint", "false")
125434	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/instances/bulkInsert")
125435	urls += "?" + c.urlParams_.Encode()
125436	req, err := http.NewRequest("POST", urls, body)
125437	if err != nil {
125438		return nil, err
125439	}
125440	req.Header = reqHeaders
125441	googleapi.Expand(req.URL, map[string]string{
125442		"project": c.project,
125443		"region":  c.region,
125444	})
125445	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125446}
125447
125448// Do executes the "compute.regionInstances.bulkInsert" call.
125449// Exactly one of *Operation or error will be non-nil. Any non-2xx
125450// status code is an error. Response headers are in either
125451// *Operation.ServerResponse.Header or (if a response was returned at
125452// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
125453// to check whether the returned error was because
125454// http.StatusNotModified was returned.
125455func (c *RegionInstancesBulkInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
125456	gensupport.SetOptions(c.urlParams_, opts...)
125457	res, err := c.doRequest("json")
125458	if res != nil && res.StatusCode == http.StatusNotModified {
125459		if res.Body != nil {
125460			res.Body.Close()
125461		}
125462		return nil, &googleapi.Error{
125463			Code:   res.StatusCode,
125464			Header: res.Header,
125465		}
125466	}
125467	if err != nil {
125468		return nil, err
125469	}
125470	defer googleapi.CloseBody(res)
125471	if err := googleapi.CheckResponse(res); err != nil {
125472		return nil, err
125473	}
125474	ret := &Operation{
125475		ServerResponse: googleapi.ServerResponse{
125476			Header:         res.Header,
125477			HTTPStatusCode: res.StatusCode,
125478		},
125479	}
125480	target := &ret
125481	if err := gensupport.DecodeResponse(target, res); err != nil {
125482		return nil, err
125483	}
125484	return ret, nil
125485	// {
125486	//   "description": "Creates multiple instances in a given region. Count specifies the number of instances to create.",
125487	//   "httpMethod": "POST",
125488	//   "id": "compute.regionInstances.bulkInsert",
125489	//   "parameterOrder": [
125490	//     "project",
125491	//     "region"
125492	//   ],
125493	//   "parameters": {
125494	//     "project": {
125495	//       "description": "Project ID for this request.",
125496	//       "location": "path",
125497	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125498	//       "required": true,
125499	//       "type": "string"
125500	//     },
125501	//     "region": {
125502	//       "description": "The name of the region for this request.",
125503	//       "location": "path",
125504	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125505	//       "required": true,
125506	//       "type": "string"
125507	//     },
125508	//     "requestId": {
125509	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
125510	//       "location": "query",
125511	//       "type": "string"
125512	//     }
125513	//   },
125514	//   "path": "projects/{project}/regions/{region}/instances/bulkInsert",
125515	//   "request": {
125516	//     "$ref": "BulkInsertInstanceResource"
125517	//   },
125518	//   "response": {
125519	//     "$ref": "Operation"
125520	//   },
125521	//   "scopes": [
125522	//     "https://www.googleapis.com/auth/cloud-platform",
125523	//     "https://www.googleapis.com/auth/compute"
125524	//   ]
125525	// }
125526
125527}
125528
125529// method id "compute.regionNetworkEndpointGroups.delete":
125530
125531type RegionNetworkEndpointGroupsDeleteCall struct {
125532	s                    *Service
125533	project              string
125534	region               string
125535	networkEndpointGroup string
125536	urlParams_           gensupport.URLParams
125537	ctx_                 context.Context
125538	header_              http.Header
125539}
125540
125541// Delete: Deletes the specified network endpoint group. Note that the
125542// NEG cannot be deleted if it is configured as a backend of a backend
125543// service.
125544//
125545// - networkEndpointGroup: The name of the network endpoint group to
125546//   delete. It should comply with RFC1035.
125547// - project: Project ID for this request.
125548// - region: The name of the region where the network endpoint group is
125549//   located. It should comply with RFC1035.
125550func (r *RegionNetworkEndpointGroupsService) Delete(project string, region string, networkEndpointGroup string) *RegionNetworkEndpointGroupsDeleteCall {
125551	c := &RegionNetworkEndpointGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125552	c.project = project
125553	c.region = region
125554	c.networkEndpointGroup = networkEndpointGroup
125555	return c
125556}
125557
125558// RequestId sets the optional parameter "requestId": An optional
125559// request ID to identify requests. Specify a unique request ID so that
125560// if you must retry your request, the server will know to ignore the
125561// request if it has already been completed.
125562//
125563// For example, consider a situation where you make an initial request
125564// and the request times out. If you make the request again with the
125565// same request ID, the server can check if original operation with the
125566// same request ID was received, and if so, will ignore the second
125567// request. This prevents clients from accidentally creating duplicate
125568// commitments.
125569//
125570// The request ID must be a valid UUID with the exception that zero UUID
125571// is not supported (00000000-0000-0000-0000-000000000000).
125572func (c *RegionNetworkEndpointGroupsDeleteCall) RequestId(requestId string) *RegionNetworkEndpointGroupsDeleteCall {
125573	c.urlParams_.Set("requestId", requestId)
125574	return c
125575}
125576
125577// Fields allows partial responses to be retrieved. See
125578// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125579// for more information.
125580func (c *RegionNetworkEndpointGroupsDeleteCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsDeleteCall {
125581	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125582	return c
125583}
125584
125585// Context sets the context to be used in this call's Do method. Any
125586// pending HTTP request will be aborted if the provided context is
125587// canceled.
125588func (c *RegionNetworkEndpointGroupsDeleteCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsDeleteCall {
125589	c.ctx_ = ctx
125590	return c
125591}
125592
125593// Header returns an http.Header that can be modified by the caller to
125594// add HTTP headers to the request.
125595func (c *RegionNetworkEndpointGroupsDeleteCall) Header() http.Header {
125596	if c.header_ == nil {
125597		c.header_ = make(http.Header)
125598	}
125599	return c.header_
125600}
125601
125602func (c *RegionNetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
125603	reqHeaders := make(http.Header)
125604	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
125605	for k, v := range c.header_ {
125606		reqHeaders[k] = v
125607	}
125608	reqHeaders.Set("User-Agent", c.s.userAgent())
125609	var body io.Reader = nil
125610	c.urlParams_.Set("alt", alt)
125611	c.urlParams_.Set("prettyPrint", "false")
125612	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}")
125613	urls += "?" + c.urlParams_.Encode()
125614	req, err := http.NewRequest("DELETE", urls, body)
125615	if err != nil {
125616		return nil, err
125617	}
125618	req.Header = reqHeaders
125619	googleapi.Expand(req.URL, map[string]string{
125620		"project":              c.project,
125621		"region":               c.region,
125622		"networkEndpointGroup": c.networkEndpointGroup,
125623	})
125624	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125625}
125626
125627// Do executes the "compute.regionNetworkEndpointGroups.delete" call.
125628// Exactly one of *Operation or error will be non-nil. Any non-2xx
125629// status code is an error. Response headers are in either
125630// *Operation.ServerResponse.Header or (if a response was returned at
125631// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
125632// to check whether the returned error was because
125633// http.StatusNotModified was returned.
125634func (c *RegionNetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
125635	gensupport.SetOptions(c.urlParams_, opts...)
125636	res, err := c.doRequest("json")
125637	if res != nil && res.StatusCode == http.StatusNotModified {
125638		if res.Body != nil {
125639			res.Body.Close()
125640		}
125641		return nil, &googleapi.Error{
125642			Code:   res.StatusCode,
125643			Header: res.Header,
125644		}
125645	}
125646	if err != nil {
125647		return nil, err
125648	}
125649	defer googleapi.CloseBody(res)
125650	if err := googleapi.CheckResponse(res); err != nil {
125651		return nil, err
125652	}
125653	ret := &Operation{
125654		ServerResponse: googleapi.ServerResponse{
125655			Header:         res.Header,
125656			HTTPStatusCode: res.StatusCode,
125657		},
125658	}
125659	target := &ret
125660	if err := gensupport.DecodeResponse(target, res); err != nil {
125661		return nil, err
125662	}
125663	return ret, nil
125664	// {
125665	//   "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.",
125666	//   "httpMethod": "DELETE",
125667	//   "id": "compute.regionNetworkEndpointGroups.delete",
125668	//   "parameterOrder": [
125669	//     "project",
125670	//     "region",
125671	//     "networkEndpointGroup"
125672	//   ],
125673	//   "parameters": {
125674	//     "networkEndpointGroup": {
125675	//       "description": "The name of the network endpoint group to delete. It should comply with RFC1035.",
125676	//       "location": "path",
125677	//       "required": true,
125678	//       "type": "string"
125679	//     },
125680	//     "project": {
125681	//       "description": "Project ID for this request.",
125682	//       "location": "path",
125683	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125684	//       "required": true,
125685	//       "type": "string"
125686	//     },
125687	//     "region": {
125688	//       "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.",
125689	//       "location": "path",
125690	//       "required": true,
125691	//       "type": "string"
125692	//     },
125693	//     "requestId": {
125694	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
125695	//       "location": "query",
125696	//       "type": "string"
125697	//     }
125698	//   },
125699	//   "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}",
125700	//   "response": {
125701	//     "$ref": "Operation"
125702	//   },
125703	//   "scopes": [
125704	//     "https://www.googleapis.com/auth/cloud-platform",
125705	//     "https://www.googleapis.com/auth/compute"
125706	//   ]
125707	// }
125708
125709}
125710
125711// method id "compute.regionNetworkEndpointGroups.get":
125712
125713type RegionNetworkEndpointGroupsGetCall struct {
125714	s                    *Service
125715	project              string
125716	region               string
125717	networkEndpointGroup string
125718	urlParams_           gensupport.URLParams
125719	ifNoneMatch_         string
125720	ctx_                 context.Context
125721	header_              http.Header
125722}
125723
125724// Get: Returns the specified network endpoint group. Gets a list of
125725// available network endpoint groups by making a list() request.
125726//
125727// - networkEndpointGroup: The name of the network endpoint group. It
125728//   should comply with RFC1035.
125729// - project: Project ID for this request.
125730// - region: The name of the region where the network endpoint group is
125731//   located. It should comply with RFC1035.
125732func (r *RegionNetworkEndpointGroupsService) Get(project string, region string, networkEndpointGroup string) *RegionNetworkEndpointGroupsGetCall {
125733	c := &RegionNetworkEndpointGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125734	c.project = project
125735	c.region = region
125736	c.networkEndpointGroup = networkEndpointGroup
125737	return c
125738}
125739
125740// Fields allows partial responses to be retrieved. See
125741// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125742// for more information.
125743func (c *RegionNetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsGetCall {
125744	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125745	return c
125746}
125747
125748// IfNoneMatch sets the optional parameter which makes the operation
125749// fail if the object's ETag matches the given value. This is useful for
125750// getting updates only after the object has changed since the last
125751// request. Use googleapi.IsNotModified to check whether the response
125752// error from Do is the result of In-None-Match.
125753func (c *RegionNetworkEndpointGroupsGetCall) IfNoneMatch(entityTag string) *RegionNetworkEndpointGroupsGetCall {
125754	c.ifNoneMatch_ = entityTag
125755	return c
125756}
125757
125758// Context sets the context to be used in this call's Do method. Any
125759// pending HTTP request will be aborted if the provided context is
125760// canceled.
125761func (c *RegionNetworkEndpointGroupsGetCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsGetCall {
125762	c.ctx_ = ctx
125763	return c
125764}
125765
125766// Header returns an http.Header that can be modified by the caller to
125767// add HTTP headers to the request.
125768func (c *RegionNetworkEndpointGroupsGetCall) Header() http.Header {
125769	if c.header_ == nil {
125770		c.header_ = make(http.Header)
125771	}
125772	return c.header_
125773}
125774
125775func (c *RegionNetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Response, error) {
125776	reqHeaders := make(http.Header)
125777	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
125778	for k, v := range c.header_ {
125779		reqHeaders[k] = v
125780	}
125781	reqHeaders.Set("User-Agent", c.s.userAgent())
125782	if c.ifNoneMatch_ != "" {
125783		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
125784	}
125785	var body io.Reader = nil
125786	c.urlParams_.Set("alt", alt)
125787	c.urlParams_.Set("prettyPrint", "false")
125788	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}")
125789	urls += "?" + c.urlParams_.Encode()
125790	req, err := http.NewRequest("GET", urls, body)
125791	if err != nil {
125792		return nil, err
125793	}
125794	req.Header = reqHeaders
125795	googleapi.Expand(req.URL, map[string]string{
125796		"project":              c.project,
125797		"region":               c.region,
125798		"networkEndpointGroup": c.networkEndpointGroup,
125799	})
125800	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125801}
125802
125803// Do executes the "compute.regionNetworkEndpointGroups.get" call.
125804// Exactly one of *NetworkEndpointGroup or error will be non-nil. Any
125805// non-2xx status code is an error. Response headers are in either
125806// *NetworkEndpointGroup.ServerResponse.Header or (if a response was
125807// returned at all) in error.(*googleapi.Error).Header. Use
125808// googleapi.IsNotModified to check whether the returned error was
125809// because http.StatusNotModified was returned.
125810func (c *RegionNetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroup, error) {
125811	gensupport.SetOptions(c.urlParams_, opts...)
125812	res, err := c.doRequest("json")
125813	if res != nil && res.StatusCode == http.StatusNotModified {
125814		if res.Body != nil {
125815			res.Body.Close()
125816		}
125817		return nil, &googleapi.Error{
125818			Code:   res.StatusCode,
125819			Header: res.Header,
125820		}
125821	}
125822	if err != nil {
125823		return nil, err
125824	}
125825	defer googleapi.CloseBody(res)
125826	if err := googleapi.CheckResponse(res); err != nil {
125827		return nil, err
125828	}
125829	ret := &NetworkEndpointGroup{
125830		ServerResponse: googleapi.ServerResponse{
125831			Header:         res.Header,
125832			HTTPStatusCode: res.StatusCode,
125833		},
125834	}
125835	target := &ret
125836	if err := gensupport.DecodeResponse(target, res); err != nil {
125837		return nil, err
125838	}
125839	return ret, nil
125840	// {
125841	//   "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.",
125842	//   "httpMethod": "GET",
125843	//   "id": "compute.regionNetworkEndpointGroups.get",
125844	//   "parameterOrder": [
125845	//     "project",
125846	//     "region",
125847	//     "networkEndpointGroup"
125848	//   ],
125849	//   "parameters": {
125850	//     "networkEndpointGroup": {
125851	//       "description": "The name of the network endpoint group. It should comply with RFC1035.",
125852	//       "location": "path",
125853	//       "required": true,
125854	//       "type": "string"
125855	//     },
125856	//     "project": {
125857	//       "description": "Project ID for this request.",
125858	//       "location": "path",
125859	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125860	//       "required": true,
125861	//       "type": "string"
125862	//     },
125863	//     "region": {
125864	//       "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.",
125865	//       "location": "path",
125866	//       "required": true,
125867	//       "type": "string"
125868	//     }
125869	//   },
125870	//   "path": "projects/{project}/regions/{region}/networkEndpointGroups/{networkEndpointGroup}",
125871	//   "response": {
125872	//     "$ref": "NetworkEndpointGroup"
125873	//   },
125874	//   "scopes": [
125875	//     "https://www.googleapis.com/auth/cloud-platform",
125876	//     "https://www.googleapis.com/auth/compute",
125877	//     "https://www.googleapis.com/auth/compute.readonly"
125878	//   ]
125879	// }
125880
125881}
125882
125883// method id "compute.regionNetworkEndpointGroups.insert":
125884
125885type RegionNetworkEndpointGroupsInsertCall struct {
125886	s                    *Service
125887	project              string
125888	region               string
125889	networkendpointgroup *NetworkEndpointGroup
125890	urlParams_           gensupport.URLParams
125891	ctx_                 context.Context
125892	header_              http.Header
125893}
125894
125895// Insert: Creates a network endpoint group in the specified project
125896// using the parameters that are included in the request.
125897//
125898// - project: Project ID for this request.
125899// - region: The name of the region where you want to create the network
125900//   endpoint group. It should comply with RFC1035.
125901func (r *RegionNetworkEndpointGroupsService) Insert(project string, region string, networkendpointgroup *NetworkEndpointGroup) *RegionNetworkEndpointGroupsInsertCall {
125902	c := &RegionNetworkEndpointGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125903	c.project = project
125904	c.region = region
125905	c.networkendpointgroup = networkendpointgroup
125906	return c
125907}
125908
125909// RequestId sets the optional parameter "requestId": An optional
125910// request ID to identify requests. Specify a unique request ID so that
125911// if you must retry your request, the server will know to ignore the
125912// request if it has already been completed.
125913//
125914// For example, consider a situation where you make an initial request
125915// and the request times out. If you make the request again with the
125916// same request ID, the server can check if original operation with the
125917// same request ID was received, and if so, will ignore the second
125918// request. This prevents clients from accidentally creating duplicate
125919// commitments.
125920//
125921// The request ID must be a valid UUID with the exception that zero UUID
125922// is not supported (00000000-0000-0000-0000-000000000000).
125923func (c *RegionNetworkEndpointGroupsInsertCall) RequestId(requestId string) *RegionNetworkEndpointGroupsInsertCall {
125924	c.urlParams_.Set("requestId", requestId)
125925	return c
125926}
125927
125928// Fields allows partial responses to be retrieved. See
125929// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125930// for more information.
125931func (c *RegionNetworkEndpointGroupsInsertCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsInsertCall {
125932	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125933	return c
125934}
125935
125936// Context sets the context to be used in this call's Do method. Any
125937// pending HTTP request will be aborted if the provided context is
125938// canceled.
125939func (c *RegionNetworkEndpointGroupsInsertCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsInsertCall {
125940	c.ctx_ = ctx
125941	return c
125942}
125943
125944// Header returns an http.Header that can be modified by the caller to
125945// add HTTP headers to the request.
125946func (c *RegionNetworkEndpointGroupsInsertCall) Header() http.Header {
125947	if c.header_ == nil {
125948		c.header_ = make(http.Header)
125949	}
125950	return c.header_
125951}
125952
125953func (c *RegionNetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
125954	reqHeaders := make(http.Header)
125955	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
125956	for k, v := range c.header_ {
125957		reqHeaders[k] = v
125958	}
125959	reqHeaders.Set("User-Agent", c.s.userAgent())
125960	var body io.Reader = nil
125961	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroup)
125962	if err != nil {
125963		return nil, err
125964	}
125965	reqHeaders.Set("Content-Type", "application/json")
125966	c.urlParams_.Set("alt", alt)
125967	c.urlParams_.Set("prettyPrint", "false")
125968	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEndpointGroups")
125969	urls += "?" + c.urlParams_.Encode()
125970	req, err := http.NewRequest("POST", urls, body)
125971	if err != nil {
125972		return nil, err
125973	}
125974	req.Header = reqHeaders
125975	googleapi.Expand(req.URL, map[string]string{
125976		"project": c.project,
125977		"region":  c.region,
125978	})
125979	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125980}
125981
125982// Do executes the "compute.regionNetworkEndpointGroups.insert" call.
125983// Exactly one of *Operation or error will be non-nil. Any non-2xx
125984// status code is an error. Response headers are in either
125985// *Operation.ServerResponse.Header or (if a response was returned at
125986// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
125987// to check whether the returned error was because
125988// http.StatusNotModified was returned.
125989func (c *RegionNetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
125990	gensupport.SetOptions(c.urlParams_, opts...)
125991	res, err := c.doRequest("json")
125992	if res != nil && res.StatusCode == http.StatusNotModified {
125993		if res.Body != nil {
125994			res.Body.Close()
125995		}
125996		return nil, &googleapi.Error{
125997			Code:   res.StatusCode,
125998			Header: res.Header,
125999		}
126000	}
126001	if err != nil {
126002		return nil, err
126003	}
126004	defer googleapi.CloseBody(res)
126005	if err := googleapi.CheckResponse(res); err != nil {
126006		return nil, err
126007	}
126008	ret := &Operation{
126009		ServerResponse: googleapi.ServerResponse{
126010			Header:         res.Header,
126011			HTTPStatusCode: res.StatusCode,
126012		},
126013	}
126014	target := &ret
126015	if err := gensupport.DecodeResponse(target, res); err != nil {
126016		return nil, err
126017	}
126018	return ret, nil
126019	// {
126020	//   "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.",
126021	//   "httpMethod": "POST",
126022	//   "id": "compute.regionNetworkEndpointGroups.insert",
126023	//   "parameterOrder": [
126024	//     "project",
126025	//     "region"
126026	//   ],
126027	//   "parameters": {
126028	//     "project": {
126029	//       "description": "Project ID for this request.",
126030	//       "location": "path",
126031	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126032	//       "required": true,
126033	//       "type": "string"
126034	//     },
126035	//     "region": {
126036	//       "description": "The name of the region where you want to create the network endpoint group. It should comply with RFC1035.",
126037	//       "location": "path",
126038	//       "required": true,
126039	//       "type": "string"
126040	//     },
126041	//     "requestId": {
126042	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
126043	//       "location": "query",
126044	//       "type": "string"
126045	//     }
126046	//   },
126047	//   "path": "projects/{project}/regions/{region}/networkEndpointGroups",
126048	//   "request": {
126049	//     "$ref": "NetworkEndpointGroup"
126050	//   },
126051	//   "response": {
126052	//     "$ref": "Operation"
126053	//   },
126054	//   "scopes": [
126055	//     "https://www.googleapis.com/auth/cloud-platform",
126056	//     "https://www.googleapis.com/auth/compute"
126057	//   ]
126058	// }
126059
126060}
126061
126062// method id "compute.regionNetworkEndpointGroups.list":
126063
126064type RegionNetworkEndpointGroupsListCall struct {
126065	s            *Service
126066	project      string
126067	region       string
126068	urlParams_   gensupport.URLParams
126069	ifNoneMatch_ string
126070	ctx_         context.Context
126071	header_      http.Header
126072}
126073
126074// List: Retrieves the list of regional network endpoint groups
126075// available to the specified project in the given region.
126076//
126077// - project: Project ID for this request.
126078// - region: The name of the region where the network endpoint group is
126079//   located. It should comply with RFC1035.
126080func (r *RegionNetworkEndpointGroupsService) List(project string, region string) *RegionNetworkEndpointGroupsListCall {
126081	c := &RegionNetworkEndpointGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126082	c.project = project
126083	c.region = region
126084	return c
126085}
126086
126087// Filter sets the optional parameter "filter": A filter expression that
126088// filters resources listed in the response. The expression must specify
126089// the field name, a comparison operator, and the value that you want to
126090// use for filtering. The value must be a string, a number, or a
126091// boolean. The comparison operator must be either `=`, `!=`, `>`, or
126092// `<`.
126093//
126094// For example, if you are filtering Compute Engine instances, you can
126095// exclude instances named `example-instance` by specifying `name !=
126096// example-instance`.
126097//
126098// You can also filter nested fields. For example, you could specify
126099// `scheduling.automaticRestart = false` to include instances only if
126100// they are not scheduled for automatic restarts. You can use filtering
126101// on nested fields to filter based on resource labels.
126102//
126103// To filter on multiple expressions, provide each separate expression
126104// within parentheses. For example: ``` (scheduling.automaticRestart =
126105// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
126106// is an `AND` expression. However, you can include `AND` and `OR`
126107// expressions explicitly. For example: ``` (cpuPlatform = "Intel
126108// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
126109// (scheduling.automaticRestart = true) ```
126110func (c *RegionNetworkEndpointGroupsListCall) Filter(filter string) *RegionNetworkEndpointGroupsListCall {
126111	c.urlParams_.Set("filter", filter)
126112	return c
126113}
126114
126115// MaxResults sets the optional parameter "maxResults": The maximum
126116// number of results per page that should be returned. If the number of
126117// available results is larger than `maxResults`, Compute Engine returns
126118// a `nextPageToken` that can be used to get the next page of results in
126119// subsequent list requests. Acceptable values are `0` to `500`,
126120// inclusive. (Default: `500`)
126121func (c *RegionNetworkEndpointGroupsListCall) MaxResults(maxResults int64) *RegionNetworkEndpointGroupsListCall {
126122	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
126123	return c
126124}
126125
126126// OrderBy sets the optional parameter "orderBy": Sorts list results by
126127// a certain order. By default, results are returned in alphanumerical
126128// order based on the resource name.
126129//
126130// You can also sort results in descending order based on the creation
126131// timestamp using `orderBy="creationTimestamp desc". This sorts
126132// results based on the `creationTimestamp` field in reverse
126133// chronological order (newest result first). Use this to sort resources
126134// like operations so that the newest operation is returned
126135// first.
126136//
126137// Currently, only sorting by `name` or `creationTimestamp desc` is
126138// supported.
126139func (c *RegionNetworkEndpointGroupsListCall) OrderBy(orderBy string) *RegionNetworkEndpointGroupsListCall {
126140	c.urlParams_.Set("orderBy", orderBy)
126141	return c
126142}
126143
126144// PageToken sets the optional parameter "pageToken": Specifies a page
126145// token to use. Set `pageToken` to the `nextPageToken` returned by a
126146// previous list request to get the next page of results.
126147func (c *RegionNetworkEndpointGroupsListCall) PageToken(pageToken string) *RegionNetworkEndpointGroupsListCall {
126148	c.urlParams_.Set("pageToken", pageToken)
126149	return c
126150}
126151
126152// ReturnPartialSuccess sets the optional parameter
126153// "returnPartialSuccess": Opt-in for partial success behavior which
126154// provides partial results in case of failure. The default value is
126155// false.
126156func (c *RegionNetworkEndpointGroupsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionNetworkEndpointGroupsListCall {
126157	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
126158	return c
126159}
126160
126161// Fields allows partial responses to be retrieved. See
126162// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126163// for more information.
126164func (c *RegionNetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *RegionNetworkEndpointGroupsListCall {
126165	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126166	return c
126167}
126168
126169// IfNoneMatch sets the optional parameter which makes the operation
126170// fail if the object's ETag matches the given value. This is useful for
126171// getting updates only after the object has changed since the last
126172// request. Use googleapi.IsNotModified to check whether the response
126173// error from Do is the result of In-None-Match.
126174func (c *RegionNetworkEndpointGroupsListCall) IfNoneMatch(entityTag string) *RegionNetworkEndpointGroupsListCall {
126175	c.ifNoneMatch_ = entityTag
126176	return c
126177}
126178
126179// Context sets the context to be used in this call's Do method. Any
126180// pending HTTP request will be aborted if the provided context is
126181// canceled.
126182func (c *RegionNetworkEndpointGroupsListCall) Context(ctx context.Context) *RegionNetworkEndpointGroupsListCall {
126183	c.ctx_ = ctx
126184	return c
126185}
126186
126187// Header returns an http.Header that can be modified by the caller to
126188// add HTTP headers to the request.
126189func (c *RegionNetworkEndpointGroupsListCall) Header() http.Header {
126190	if c.header_ == nil {
126191		c.header_ = make(http.Header)
126192	}
126193	return c.header_
126194}
126195
126196func (c *RegionNetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, error) {
126197	reqHeaders := make(http.Header)
126198	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
126199	for k, v := range c.header_ {
126200		reqHeaders[k] = v
126201	}
126202	reqHeaders.Set("User-Agent", c.s.userAgent())
126203	if c.ifNoneMatch_ != "" {
126204		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
126205	}
126206	var body io.Reader = nil
126207	c.urlParams_.Set("alt", alt)
126208	c.urlParams_.Set("prettyPrint", "false")
126209	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/networkEndpointGroups")
126210	urls += "?" + c.urlParams_.Encode()
126211	req, err := http.NewRequest("GET", urls, body)
126212	if err != nil {
126213		return nil, err
126214	}
126215	req.Header = reqHeaders
126216	googleapi.Expand(req.URL, map[string]string{
126217		"project": c.project,
126218		"region":  c.region,
126219	})
126220	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126221}
126222
126223// Do executes the "compute.regionNetworkEndpointGroups.list" call.
126224// Exactly one of *NetworkEndpointGroupList or error will be non-nil.
126225// Any non-2xx status code is an error. Response headers are in either
126226// *NetworkEndpointGroupList.ServerResponse.Header or (if a response was
126227// returned at all) in error.(*googleapi.Error).Header. Use
126228// googleapi.IsNotModified to check whether the returned error was
126229// because http.StatusNotModified was returned.
126230func (c *RegionNetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupList, error) {
126231	gensupport.SetOptions(c.urlParams_, opts...)
126232	res, err := c.doRequest("json")
126233	if res != nil && res.StatusCode == http.StatusNotModified {
126234		if res.Body != nil {
126235			res.Body.Close()
126236		}
126237		return nil, &googleapi.Error{
126238			Code:   res.StatusCode,
126239			Header: res.Header,
126240		}
126241	}
126242	if err != nil {
126243		return nil, err
126244	}
126245	defer googleapi.CloseBody(res)
126246	if err := googleapi.CheckResponse(res); err != nil {
126247		return nil, err
126248	}
126249	ret := &NetworkEndpointGroupList{
126250		ServerResponse: googleapi.ServerResponse{
126251			Header:         res.Header,
126252			HTTPStatusCode: res.StatusCode,
126253		},
126254	}
126255	target := &ret
126256	if err := gensupport.DecodeResponse(target, res); err != nil {
126257		return nil, err
126258	}
126259	return ret, nil
126260	// {
126261	//   "description": "Retrieves the list of regional network endpoint groups available to the specified project in the given region.",
126262	//   "httpMethod": "GET",
126263	//   "id": "compute.regionNetworkEndpointGroups.list",
126264	//   "parameterOrder": [
126265	//     "project",
126266	//     "region"
126267	//   ],
126268	//   "parameters": {
126269	//     "filter": {
126270	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
126271	//       "location": "query",
126272	//       "type": "string"
126273	//     },
126274	//     "maxResults": {
126275	//       "default": "500",
126276	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
126277	//       "format": "uint32",
126278	//       "location": "query",
126279	//       "minimum": "0",
126280	//       "type": "integer"
126281	//     },
126282	//     "orderBy": {
126283	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
126284	//       "location": "query",
126285	//       "type": "string"
126286	//     },
126287	//     "pageToken": {
126288	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
126289	//       "location": "query",
126290	//       "type": "string"
126291	//     },
126292	//     "project": {
126293	//       "description": "Project ID for this request.",
126294	//       "location": "path",
126295	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126296	//       "required": true,
126297	//       "type": "string"
126298	//     },
126299	//     "region": {
126300	//       "description": "The name of the region where the network endpoint group is located. It should comply with RFC1035.",
126301	//       "location": "path",
126302	//       "required": true,
126303	//       "type": "string"
126304	//     },
126305	//     "returnPartialSuccess": {
126306	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
126307	//       "location": "query",
126308	//       "type": "boolean"
126309	//     }
126310	//   },
126311	//   "path": "projects/{project}/regions/{region}/networkEndpointGroups",
126312	//   "response": {
126313	//     "$ref": "NetworkEndpointGroupList"
126314	//   },
126315	//   "scopes": [
126316	//     "https://www.googleapis.com/auth/cloud-platform",
126317	//     "https://www.googleapis.com/auth/compute",
126318	//     "https://www.googleapis.com/auth/compute.readonly"
126319	//   ]
126320	// }
126321
126322}
126323
126324// Pages invokes f for each page of results.
126325// A non-nil error returned from f will halt the iteration.
126326// The provided context supersedes any context provided to the Context method.
126327func (c *RegionNetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupList) error) error {
126328	c.ctx_ = ctx
126329	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
126330	for {
126331		x, err := c.Do()
126332		if err != nil {
126333			return err
126334		}
126335		if err := f(x); err != nil {
126336			return err
126337		}
126338		if x.NextPageToken == "" {
126339			return nil
126340		}
126341		c.PageToken(x.NextPageToken)
126342	}
126343}
126344
126345// method id "compute.regionNotificationEndpoints.delete":
126346
126347type RegionNotificationEndpointsDeleteCall struct {
126348	s                    *Service
126349	project              string
126350	region               string
126351	notificationEndpoint string
126352	urlParams_           gensupport.URLParams
126353	ctx_                 context.Context
126354	header_              http.Header
126355}
126356
126357// Delete: Deletes the specified NotificationEndpoint in the given
126358// region
126359//
126360// - notificationEndpoint: Name of the NotificationEndpoint resource to
126361//   delete.
126362// - project: Project ID for this request.
126363// - region: Name of the region scoping this request.
126364func (r *RegionNotificationEndpointsService) Delete(project string, region string, notificationEndpoint string) *RegionNotificationEndpointsDeleteCall {
126365	c := &RegionNotificationEndpointsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126366	c.project = project
126367	c.region = region
126368	c.notificationEndpoint = notificationEndpoint
126369	return c
126370}
126371
126372// RequestId sets the optional parameter "requestId": An optional
126373// request ID to identify requests. Specify a unique request ID so that
126374// if you must retry your request, the server will know to ignore the
126375// request if it has already been completed.
126376//
126377// For example, consider a situation where you make an initial request
126378// and the request times out. If you make the request again with the
126379// same request ID, the server can check if original operation with the
126380// same request ID was received, and if so, will ignore the second
126381// request. This prevents clients from accidentally creating duplicate
126382// commitments.
126383//
126384// The request ID must be a valid UUID with the exception that zero UUID
126385// is not supported (00000000-0000-0000-0000-000000000000).
126386func (c *RegionNotificationEndpointsDeleteCall) RequestId(requestId string) *RegionNotificationEndpointsDeleteCall {
126387	c.urlParams_.Set("requestId", requestId)
126388	return c
126389}
126390
126391// Fields allows partial responses to be retrieved. See
126392// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126393// for more information.
126394func (c *RegionNotificationEndpointsDeleteCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsDeleteCall {
126395	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126396	return c
126397}
126398
126399// Context sets the context to be used in this call's Do method. Any
126400// pending HTTP request will be aborted if the provided context is
126401// canceled.
126402func (c *RegionNotificationEndpointsDeleteCall) Context(ctx context.Context) *RegionNotificationEndpointsDeleteCall {
126403	c.ctx_ = ctx
126404	return c
126405}
126406
126407// Header returns an http.Header that can be modified by the caller to
126408// add HTTP headers to the request.
126409func (c *RegionNotificationEndpointsDeleteCall) Header() http.Header {
126410	if c.header_ == nil {
126411		c.header_ = make(http.Header)
126412	}
126413	return c.header_
126414}
126415
126416func (c *RegionNotificationEndpointsDeleteCall) doRequest(alt string) (*http.Response, error) {
126417	reqHeaders := make(http.Header)
126418	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
126419	for k, v := range c.header_ {
126420		reqHeaders[k] = v
126421	}
126422	reqHeaders.Set("User-Agent", c.s.userAgent())
126423	var body io.Reader = nil
126424	c.urlParams_.Set("alt", alt)
126425	c.urlParams_.Set("prettyPrint", "false")
126426	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}")
126427	urls += "?" + c.urlParams_.Encode()
126428	req, err := http.NewRequest("DELETE", urls, body)
126429	if err != nil {
126430		return nil, err
126431	}
126432	req.Header = reqHeaders
126433	googleapi.Expand(req.URL, map[string]string{
126434		"project":              c.project,
126435		"region":               c.region,
126436		"notificationEndpoint": c.notificationEndpoint,
126437	})
126438	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126439}
126440
126441// Do executes the "compute.regionNotificationEndpoints.delete" call.
126442// Exactly one of *Operation or error will be non-nil. Any non-2xx
126443// status code is an error. Response headers are in either
126444// *Operation.ServerResponse.Header or (if a response was returned at
126445// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
126446// to check whether the returned error was because
126447// http.StatusNotModified was returned.
126448func (c *RegionNotificationEndpointsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
126449	gensupport.SetOptions(c.urlParams_, opts...)
126450	res, err := c.doRequest("json")
126451	if res != nil && res.StatusCode == http.StatusNotModified {
126452		if res.Body != nil {
126453			res.Body.Close()
126454		}
126455		return nil, &googleapi.Error{
126456			Code:   res.StatusCode,
126457			Header: res.Header,
126458		}
126459	}
126460	if err != nil {
126461		return nil, err
126462	}
126463	defer googleapi.CloseBody(res)
126464	if err := googleapi.CheckResponse(res); err != nil {
126465		return nil, err
126466	}
126467	ret := &Operation{
126468		ServerResponse: googleapi.ServerResponse{
126469			Header:         res.Header,
126470			HTTPStatusCode: res.StatusCode,
126471		},
126472	}
126473	target := &ret
126474	if err := gensupport.DecodeResponse(target, res); err != nil {
126475		return nil, err
126476	}
126477	return ret, nil
126478	// {
126479	//   "description": "Deletes the specified NotificationEndpoint in the given region",
126480	//   "httpMethod": "DELETE",
126481	//   "id": "compute.regionNotificationEndpoints.delete",
126482	//   "parameterOrder": [
126483	//     "project",
126484	//     "region",
126485	//     "notificationEndpoint"
126486	//   ],
126487	//   "parameters": {
126488	//     "notificationEndpoint": {
126489	//       "description": "Name of the NotificationEndpoint resource to delete.",
126490	//       "location": "path",
126491	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
126492	//       "required": true,
126493	//       "type": "string"
126494	//     },
126495	//     "project": {
126496	//       "description": "Project ID for this request.",
126497	//       "location": "path",
126498	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126499	//       "required": true,
126500	//       "type": "string"
126501	//     },
126502	//     "region": {
126503	//       "description": "Name of the region scoping this request.",
126504	//       "location": "path",
126505	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126506	//       "required": true,
126507	//       "type": "string"
126508	//     },
126509	//     "requestId": {
126510	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
126511	//       "location": "query",
126512	//       "type": "string"
126513	//     }
126514	//   },
126515	//   "path": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}",
126516	//   "response": {
126517	//     "$ref": "Operation"
126518	//   },
126519	//   "scopes": [
126520	//     "https://www.googleapis.com/auth/cloud-platform",
126521	//     "https://www.googleapis.com/auth/compute"
126522	//   ]
126523	// }
126524
126525}
126526
126527// method id "compute.regionNotificationEndpoints.get":
126528
126529type RegionNotificationEndpointsGetCall struct {
126530	s                    *Service
126531	project              string
126532	region               string
126533	notificationEndpoint string
126534	urlParams_           gensupport.URLParams
126535	ifNoneMatch_         string
126536	ctx_                 context.Context
126537	header_              http.Header
126538}
126539
126540// Get: Returns the specified NotificationEndpoint resource in the given
126541// region.
126542//
126543// - notificationEndpoint: Name of the NotificationEndpoint resource to
126544//   return.
126545// - project: Project ID for this request.
126546// - region: Name of the region scoping this request.
126547func (r *RegionNotificationEndpointsService) Get(project string, region string, notificationEndpoint string) *RegionNotificationEndpointsGetCall {
126548	c := &RegionNotificationEndpointsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126549	c.project = project
126550	c.region = region
126551	c.notificationEndpoint = notificationEndpoint
126552	return c
126553}
126554
126555// Fields allows partial responses to be retrieved. See
126556// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126557// for more information.
126558func (c *RegionNotificationEndpointsGetCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsGetCall {
126559	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126560	return c
126561}
126562
126563// IfNoneMatch sets the optional parameter which makes the operation
126564// fail if the object's ETag matches the given value. This is useful for
126565// getting updates only after the object has changed since the last
126566// request. Use googleapi.IsNotModified to check whether the response
126567// error from Do is the result of In-None-Match.
126568func (c *RegionNotificationEndpointsGetCall) IfNoneMatch(entityTag string) *RegionNotificationEndpointsGetCall {
126569	c.ifNoneMatch_ = entityTag
126570	return c
126571}
126572
126573// Context sets the context to be used in this call's Do method. Any
126574// pending HTTP request will be aborted if the provided context is
126575// canceled.
126576func (c *RegionNotificationEndpointsGetCall) Context(ctx context.Context) *RegionNotificationEndpointsGetCall {
126577	c.ctx_ = ctx
126578	return c
126579}
126580
126581// Header returns an http.Header that can be modified by the caller to
126582// add HTTP headers to the request.
126583func (c *RegionNotificationEndpointsGetCall) Header() http.Header {
126584	if c.header_ == nil {
126585		c.header_ = make(http.Header)
126586	}
126587	return c.header_
126588}
126589
126590func (c *RegionNotificationEndpointsGetCall) doRequest(alt string) (*http.Response, error) {
126591	reqHeaders := make(http.Header)
126592	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
126593	for k, v := range c.header_ {
126594		reqHeaders[k] = v
126595	}
126596	reqHeaders.Set("User-Agent", c.s.userAgent())
126597	if c.ifNoneMatch_ != "" {
126598		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
126599	}
126600	var body io.Reader = nil
126601	c.urlParams_.Set("alt", alt)
126602	c.urlParams_.Set("prettyPrint", "false")
126603	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}")
126604	urls += "?" + c.urlParams_.Encode()
126605	req, err := http.NewRequest("GET", urls, body)
126606	if err != nil {
126607		return nil, err
126608	}
126609	req.Header = reqHeaders
126610	googleapi.Expand(req.URL, map[string]string{
126611		"project":              c.project,
126612		"region":               c.region,
126613		"notificationEndpoint": c.notificationEndpoint,
126614	})
126615	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126616}
126617
126618// Do executes the "compute.regionNotificationEndpoints.get" call.
126619// Exactly one of *NotificationEndpoint or error will be non-nil. Any
126620// non-2xx status code is an error. Response headers are in either
126621// *NotificationEndpoint.ServerResponse.Header or (if a response was
126622// returned at all) in error.(*googleapi.Error).Header. Use
126623// googleapi.IsNotModified to check whether the returned error was
126624// because http.StatusNotModified was returned.
126625func (c *RegionNotificationEndpointsGetCall) Do(opts ...googleapi.CallOption) (*NotificationEndpoint, error) {
126626	gensupport.SetOptions(c.urlParams_, opts...)
126627	res, err := c.doRequest("json")
126628	if res != nil && res.StatusCode == http.StatusNotModified {
126629		if res.Body != nil {
126630			res.Body.Close()
126631		}
126632		return nil, &googleapi.Error{
126633			Code:   res.StatusCode,
126634			Header: res.Header,
126635		}
126636	}
126637	if err != nil {
126638		return nil, err
126639	}
126640	defer googleapi.CloseBody(res)
126641	if err := googleapi.CheckResponse(res); err != nil {
126642		return nil, err
126643	}
126644	ret := &NotificationEndpoint{
126645		ServerResponse: googleapi.ServerResponse{
126646			Header:         res.Header,
126647			HTTPStatusCode: res.StatusCode,
126648		},
126649	}
126650	target := &ret
126651	if err := gensupport.DecodeResponse(target, res); err != nil {
126652		return nil, err
126653	}
126654	return ret, nil
126655	// {
126656	//   "description": "Returns the specified NotificationEndpoint resource in the given region.",
126657	//   "httpMethod": "GET",
126658	//   "id": "compute.regionNotificationEndpoints.get",
126659	//   "parameterOrder": [
126660	//     "project",
126661	//     "region",
126662	//     "notificationEndpoint"
126663	//   ],
126664	//   "parameters": {
126665	//     "notificationEndpoint": {
126666	//       "description": "Name of the NotificationEndpoint resource to return.",
126667	//       "location": "path",
126668	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
126669	//       "required": true,
126670	//       "type": "string"
126671	//     },
126672	//     "project": {
126673	//       "description": "Project ID for this request.",
126674	//       "location": "path",
126675	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126676	//       "required": true,
126677	//       "type": "string"
126678	//     },
126679	//     "region": {
126680	//       "description": "Name of the region scoping this request.",
126681	//       "location": "path",
126682	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126683	//       "required": true,
126684	//       "type": "string"
126685	//     }
126686	//   },
126687	//   "path": "projects/{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}",
126688	//   "response": {
126689	//     "$ref": "NotificationEndpoint"
126690	//   },
126691	//   "scopes": [
126692	//     "https://www.googleapis.com/auth/cloud-platform",
126693	//     "https://www.googleapis.com/auth/compute",
126694	//     "https://www.googleapis.com/auth/compute.readonly"
126695	//   ]
126696	// }
126697
126698}
126699
126700// method id "compute.regionNotificationEndpoints.insert":
126701
126702type RegionNotificationEndpointsInsertCall struct {
126703	s                    *Service
126704	project              string
126705	region               string
126706	notificationendpoint *NotificationEndpoint
126707	urlParams_           gensupport.URLParams
126708	ctx_                 context.Context
126709	header_              http.Header
126710}
126711
126712// Insert: Create a NotificationEndpoint in the specified project in the
126713// given region using the parameters that are included in the request.
126714//
126715// - project: Project ID for this request.
126716// - region: Name of the region scoping this request.
126717func (r *RegionNotificationEndpointsService) Insert(project string, region string, notificationendpoint *NotificationEndpoint) *RegionNotificationEndpointsInsertCall {
126718	c := &RegionNotificationEndpointsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126719	c.project = project
126720	c.region = region
126721	c.notificationendpoint = notificationendpoint
126722	return c
126723}
126724
126725// RequestId sets the optional parameter "requestId": An optional
126726// request ID to identify requests. Specify a unique request ID so that
126727// if you must retry your request, the server will know to ignore the
126728// request if it has already been completed.
126729//
126730// For example, consider a situation where you make an initial request
126731// and the request times out. If you make the request again with the
126732// same request ID, the server can check if original operation with the
126733// same request ID was received, and if so, will ignore the second
126734// request. This prevents clients from accidentally creating duplicate
126735// commitments.
126736//
126737// The request ID must be a valid UUID with the exception that zero UUID
126738// is not supported (00000000-0000-0000-0000-000000000000).
126739func (c *RegionNotificationEndpointsInsertCall) RequestId(requestId string) *RegionNotificationEndpointsInsertCall {
126740	c.urlParams_.Set("requestId", requestId)
126741	return c
126742}
126743
126744// Fields allows partial responses to be retrieved. See
126745// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126746// for more information.
126747func (c *RegionNotificationEndpointsInsertCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsInsertCall {
126748	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126749	return c
126750}
126751
126752// Context sets the context to be used in this call's Do method. Any
126753// pending HTTP request will be aborted if the provided context is
126754// canceled.
126755func (c *RegionNotificationEndpointsInsertCall) Context(ctx context.Context) *RegionNotificationEndpointsInsertCall {
126756	c.ctx_ = ctx
126757	return c
126758}
126759
126760// Header returns an http.Header that can be modified by the caller to
126761// add HTTP headers to the request.
126762func (c *RegionNotificationEndpointsInsertCall) Header() http.Header {
126763	if c.header_ == nil {
126764		c.header_ = make(http.Header)
126765	}
126766	return c.header_
126767}
126768
126769func (c *RegionNotificationEndpointsInsertCall) doRequest(alt string) (*http.Response, error) {
126770	reqHeaders := make(http.Header)
126771	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
126772	for k, v := range c.header_ {
126773		reqHeaders[k] = v
126774	}
126775	reqHeaders.Set("User-Agent", c.s.userAgent())
126776	var body io.Reader = nil
126777	body, err := googleapi.WithoutDataWrapper.JSONReader(c.notificationendpoint)
126778	if err != nil {
126779		return nil, err
126780	}
126781	reqHeaders.Set("Content-Type", "application/json")
126782	c.urlParams_.Set("alt", alt)
126783	c.urlParams_.Set("prettyPrint", "false")
126784	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/notificationEndpoints")
126785	urls += "?" + c.urlParams_.Encode()
126786	req, err := http.NewRequest("POST", urls, body)
126787	if err != nil {
126788		return nil, err
126789	}
126790	req.Header = reqHeaders
126791	googleapi.Expand(req.URL, map[string]string{
126792		"project": c.project,
126793		"region":  c.region,
126794	})
126795	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126796}
126797
126798// Do executes the "compute.regionNotificationEndpoints.insert" call.
126799// Exactly one of *Operation or error will be non-nil. Any non-2xx
126800// status code is an error. Response headers are in either
126801// *Operation.ServerResponse.Header or (if a response was returned at
126802// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
126803// to check whether the returned error was because
126804// http.StatusNotModified was returned.
126805func (c *RegionNotificationEndpointsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
126806	gensupport.SetOptions(c.urlParams_, opts...)
126807	res, err := c.doRequest("json")
126808	if res != nil && res.StatusCode == http.StatusNotModified {
126809		if res.Body != nil {
126810			res.Body.Close()
126811		}
126812		return nil, &googleapi.Error{
126813			Code:   res.StatusCode,
126814			Header: res.Header,
126815		}
126816	}
126817	if err != nil {
126818		return nil, err
126819	}
126820	defer googleapi.CloseBody(res)
126821	if err := googleapi.CheckResponse(res); err != nil {
126822		return nil, err
126823	}
126824	ret := &Operation{
126825		ServerResponse: googleapi.ServerResponse{
126826			Header:         res.Header,
126827			HTTPStatusCode: res.StatusCode,
126828		},
126829	}
126830	target := &ret
126831	if err := gensupport.DecodeResponse(target, res); err != nil {
126832		return nil, err
126833	}
126834	return ret, nil
126835	// {
126836	//   "description": "Create a NotificationEndpoint in the specified project in the given region using the parameters that are included in the request.",
126837	//   "httpMethod": "POST",
126838	//   "id": "compute.regionNotificationEndpoints.insert",
126839	//   "parameterOrder": [
126840	//     "project",
126841	//     "region"
126842	//   ],
126843	//   "parameters": {
126844	//     "project": {
126845	//       "description": "Project ID for this request.",
126846	//       "location": "path",
126847	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126848	//       "required": true,
126849	//       "type": "string"
126850	//     },
126851	//     "region": {
126852	//       "description": "Name of the region scoping this request.",
126853	//       "location": "path",
126854	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126855	//       "required": true,
126856	//       "type": "string"
126857	//     },
126858	//     "requestId": {
126859	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
126860	//       "location": "query",
126861	//       "type": "string"
126862	//     }
126863	//   },
126864	//   "path": "projects/{project}/regions/{region}/notificationEndpoints",
126865	//   "request": {
126866	//     "$ref": "NotificationEndpoint"
126867	//   },
126868	//   "response": {
126869	//     "$ref": "Operation"
126870	//   },
126871	//   "scopes": [
126872	//     "https://www.googleapis.com/auth/cloud-platform",
126873	//     "https://www.googleapis.com/auth/compute"
126874	//   ]
126875	// }
126876
126877}
126878
126879// method id "compute.regionNotificationEndpoints.list":
126880
126881type RegionNotificationEndpointsListCall struct {
126882	s            *Service
126883	project      string
126884	region       string
126885	urlParams_   gensupport.URLParams
126886	ifNoneMatch_ string
126887	ctx_         context.Context
126888	header_      http.Header
126889}
126890
126891// List: Lists the NotificationEndpoints for a project in the given
126892// region.
126893//
126894// - project: Project ID for this request.
126895// - region: Name of the region scoping this request.
126896func (r *RegionNotificationEndpointsService) List(project string, region string) *RegionNotificationEndpointsListCall {
126897	c := &RegionNotificationEndpointsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126898	c.project = project
126899	c.region = region
126900	return c
126901}
126902
126903// Filter sets the optional parameter "filter": A filter expression that
126904// filters resources listed in the response. The expression must specify
126905// the field name, a comparison operator, and the value that you want to
126906// use for filtering. The value must be a string, a number, or a
126907// boolean. The comparison operator must be either `=`, `!=`, `>`, or
126908// `<`.
126909//
126910// For example, if you are filtering Compute Engine instances, you can
126911// exclude instances named `example-instance` by specifying `name !=
126912// example-instance`.
126913//
126914// You can also filter nested fields. For example, you could specify
126915// `scheduling.automaticRestart = false` to include instances only if
126916// they are not scheduled for automatic restarts. You can use filtering
126917// on nested fields to filter based on resource labels.
126918//
126919// To filter on multiple expressions, provide each separate expression
126920// within parentheses. For example: ``` (scheduling.automaticRestart =
126921// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
126922// is an `AND` expression. However, you can include `AND` and `OR`
126923// expressions explicitly. For example: ``` (cpuPlatform = "Intel
126924// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
126925// (scheduling.automaticRestart = true) ```
126926func (c *RegionNotificationEndpointsListCall) Filter(filter string) *RegionNotificationEndpointsListCall {
126927	c.urlParams_.Set("filter", filter)
126928	return c
126929}
126930
126931// MaxResults sets the optional parameter "maxResults": The maximum
126932// number of results per page that should be returned. If the number of
126933// available results is larger than `maxResults`, Compute Engine returns
126934// a `nextPageToken` that can be used to get the next page of results in
126935// subsequent list requests. Acceptable values are `0` to `500`,
126936// inclusive. (Default: `500`)
126937func (c *RegionNotificationEndpointsListCall) MaxResults(maxResults int64) *RegionNotificationEndpointsListCall {
126938	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
126939	return c
126940}
126941
126942// OrderBy sets the optional parameter "orderBy": Sorts list results by
126943// a certain order. By default, results are returned in alphanumerical
126944// order based on the resource name.
126945//
126946// You can also sort results in descending order based on the creation
126947// timestamp using `orderBy="creationTimestamp desc". This sorts
126948// results based on the `creationTimestamp` field in reverse
126949// chronological order (newest result first). Use this to sort resources
126950// like operations so that the newest operation is returned
126951// first.
126952//
126953// Currently, only sorting by `name` or `creationTimestamp desc` is
126954// supported.
126955func (c *RegionNotificationEndpointsListCall) OrderBy(orderBy string) *RegionNotificationEndpointsListCall {
126956	c.urlParams_.Set("orderBy", orderBy)
126957	return c
126958}
126959
126960// PageToken sets the optional parameter "pageToken": Specifies a page
126961// token to use. Set `pageToken` to the `nextPageToken` returned by a
126962// previous list request to get the next page of results.
126963func (c *RegionNotificationEndpointsListCall) PageToken(pageToken string) *RegionNotificationEndpointsListCall {
126964	c.urlParams_.Set("pageToken", pageToken)
126965	return c
126966}
126967
126968// ReturnPartialSuccess sets the optional parameter
126969// "returnPartialSuccess": Opt-in for partial success behavior which
126970// provides partial results in case of failure. The default value is
126971// false.
126972func (c *RegionNotificationEndpointsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionNotificationEndpointsListCall {
126973	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
126974	return c
126975}
126976
126977// Fields allows partial responses to be retrieved. See
126978// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126979// for more information.
126980func (c *RegionNotificationEndpointsListCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsListCall {
126981	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126982	return c
126983}
126984
126985// IfNoneMatch sets the optional parameter which makes the operation
126986// fail if the object's ETag matches the given value. This is useful for
126987// getting updates only after the object has changed since the last
126988// request. Use googleapi.IsNotModified to check whether the response
126989// error from Do is the result of In-None-Match.
126990func (c *RegionNotificationEndpointsListCall) IfNoneMatch(entityTag string) *RegionNotificationEndpointsListCall {
126991	c.ifNoneMatch_ = entityTag
126992	return c
126993}
126994
126995// Context sets the context to be used in this call's Do method. Any
126996// pending HTTP request will be aborted if the provided context is
126997// canceled.
126998func (c *RegionNotificationEndpointsListCall) Context(ctx context.Context) *RegionNotificationEndpointsListCall {
126999	c.ctx_ = ctx
127000	return c
127001}
127002
127003// Header returns an http.Header that can be modified by the caller to
127004// add HTTP headers to the request.
127005func (c *RegionNotificationEndpointsListCall) Header() http.Header {
127006	if c.header_ == nil {
127007		c.header_ = make(http.Header)
127008	}
127009	return c.header_
127010}
127011
127012func (c *RegionNotificationEndpointsListCall) doRequest(alt string) (*http.Response, error) {
127013	reqHeaders := make(http.Header)
127014	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
127015	for k, v := range c.header_ {
127016		reqHeaders[k] = v
127017	}
127018	reqHeaders.Set("User-Agent", c.s.userAgent())
127019	if c.ifNoneMatch_ != "" {
127020		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
127021	}
127022	var body io.Reader = nil
127023	c.urlParams_.Set("alt", alt)
127024	c.urlParams_.Set("prettyPrint", "false")
127025	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/notificationEndpoints")
127026	urls += "?" + c.urlParams_.Encode()
127027	req, err := http.NewRequest("GET", urls, body)
127028	if err != nil {
127029		return nil, err
127030	}
127031	req.Header = reqHeaders
127032	googleapi.Expand(req.URL, map[string]string{
127033		"project": c.project,
127034		"region":  c.region,
127035	})
127036	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127037}
127038
127039// Do executes the "compute.regionNotificationEndpoints.list" call.
127040// Exactly one of *NotificationEndpointList or error will be non-nil.
127041// Any non-2xx status code is an error. Response headers are in either
127042// *NotificationEndpointList.ServerResponse.Header or (if a response was
127043// returned at all) in error.(*googleapi.Error).Header. Use
127044// googleapi.IsNotModified to check whether the returned error was
127045// because http.StatusNotModified was returned.
127046func (c *RegionNotificationEndpointsListCall) Do(opts ...googleapi.CallOption) (*NotificationEndpointList, error) {
127047	gensupport.SetOptions(c.urlParams_, opts...)
127048	res, err := c.doRequest("json")
127049	if res != nil && res.StatusCode == http.StatusNotModified {
127050		if res.Body != nil {
127051			res.Body.Close()
127052		}
127053		return nil, &googleapi.Error{
127054			Code:   res.StatusCode,
127055			Header: res.Header,
127056		}
127057	}
127058	if err != nil {
127059		return nil, err
127060	}
127061	defer googleapi.CloseBody(res)
127062	if err := googleapi.CheckResponse(res); err != nil {
127063		return nil, err
127064	}
127065	ret := &NotificationEndpointList{
127066		ServerResponse: googleapi.ServerResponse{
127067			Header:         res.Header,
127068			HTTPStatusCode: res.StatusCode,
127069		},
127070	}
127071	target := &ret
127072	if err := gensupport.DecodeResponse(target, res); err != nil {
127073		return nil, err
127074	}
127075	return ret, nil
127076	// {
127077	//   "description": "Lists the NotificationEndpoints for a project in the given region.",
127078	//   "httpMethod": "GET",
127079	//   "id": "compute.regionNotificationEndpoints.list",
127080	//   "parameterOrder": [
127081	//     "project",
127082	//     "region"
127083	//   ],
127084	//   "parameters": {
127085	//     "filter": {
127086	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
127087	//       "location": "query",
127088	//       "type": "string"
127089	//     },
127090	//     "maxResults": {
127091	//       "default": "500",
127092	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
127093	//       "format": "uint32",
127094	//       "location": "query",
127095	//       "minimum": "0",
127096	//       "type": "integer"
127097	//     },
127098	//     "orderBy": {
127099	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
127100	//       "location": "query",
127101	//       "type": "string"
127102	//     },
127103	//     "pageToken": {
127104	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
127105	//       "location": "query",
127106	//       "type": "string"
127107	//     },
127108	//     "project": {
127109	//       "description": "Project ID for this request.",
127110	//       "location": "path",
127111	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127112	//       "required": true,
127113	//       "type": "string"
127114	//     },
127115	//     "region": {
127116	//       "description": "Name of the region scoping this request.",
127117	//       "location": "path",
127118	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127119	//       "required": true,
127120	//       "type": "string"
127121	//     },
127122	//     "returnPartialSuccess": {
127123	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
127124	//       "location": "query",
127125	//       "type": "boolean"
127126	//     }
127127	//   },
127128	//   "path": "projects/{project}/regions/{region}/notificationEndpoints",
127129	//   "response": {
127130	//     "$ref": "NotificationEndpointList"
127131	//   },
127132	//   "scopes": [
127133	//     "https://www.googleapis.com/auth/cloud-platform",
127134	//     "https://www.googleapis.com/auth/compute",
127135	//     "https://www.googleapis.com/auth/compute.readonly"
127136	//   ]
127137	// }
127138
127139}
127140
127141// Pages invokes f for each page of results.
127142// A non-nil error returned from f will halt the iteration.
127143// The provided context supersedes any context provided to the Context method.
127144func (c *RegionNotificationEndpointsListCall) Pages(ctx context.Context, f func(*NotificationEndpointList) error) error {
127145	c.ctx_ = ctx
127146	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
127147	for {
127148		x, err := c.Do()
127149		if err != nil {
127150			return err
127151		}
127152		if err := f(x); err != nil {
127153			return err
127154		}
127155		if x.NextPageToken == "" {
127156			return nil
127157		}
127158		c.PageToken(x.NextPageToken)
127159	}
127160}
127161
127162// method id "compute.regionOperations.delete":
127163
127164type RegionOperationsDeleteCall struct {
127165	s          *Service
127166	project    string
127167	region     string
127168	operation  string
127169	urlParams_ gensupport.URLParams
127170	ctx_       context.Context
127171	header_    http.Header
127172}
127173
127174// Delete: Deletes the specified region-specific Operations resource.
127175//
127176// - operation: Name of the Operations resource to delete.
127177// - project: Project ID for this request.
127178// - region: Name of the region for this request.
127179// For details, see https://cloud.google.com/compute/docs/reference/latest/regionOperations/delete
127180func (r *RegionOperationsService) Delete(project string, region string, operation string) *RegionOperationsDeleteCall {
127181	c := &RegionOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127182	c.project = project
127183	c.region = region
127184	c.operation = operation
127185	return c
127186}
127187
127188// Fields allows partial responses to be retrieved. See
127189// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127190// for more information.
127191func (c *RegionOperationsDeleteCall) Fields(s ...googleapi.Field) *RegionOperationsDeleteCall {
127192	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127193	return c
127194}
127195
127196// Context sets the context to be used in this call's Do method. Any
127197// pending HTTP request will be aborted if the provided context is
127198// canceled.
127199func (c *RegionOperationsDeleteCall) Context(ctx context.Context) *RegionOperationsDeleteCall {
127200	c.ctx_ = ctx
127201	return c
127202}
127203
127204// Header returns an http.Header that can be modified by the caller to
127205// add HTTP headers to the request.
127206func (c *RegionOperationsDeleteCall) Header() http.Header {
127207	if c.header_ == nil {
127208		c.header_ = make(http.Header)
127209	}
127210	return c.header_
127211}
127212
127213func (c *RegionOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
127214	reqHeaders := make(http.Header)
127215	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
127216	for k, v := range c.header_ {
127217		reqHeaders[k] = v
127218	}
127219	reqHeaders.Set("User-Agent", c.s.userAgent())
127220	var body io.Reader = nil
127221	c.urlParams_.Set("alt", alt)
127222	c.urlParams_.Set("prettyPrint", "false")
127223	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/operations/{operation}")
127224	urls += "?" + c.urlParams_.Encode()
127225	req, err := http.NewRequest("DELETE", urls, body)
127226	if err != nil {
127227		return nil, err
127228	}
127229	req.Header = reqHeaders
127230	googleapi.Expand(req.URL, map[string]string{
127231		"project":   c.project,
127232		"region":    c.region,
127233		"operation": c.operation,
127234	})
127235	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127236}
127237
127238// Do executes the "compute.regionOperations.delete" call.
127239func (c *RegionOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
127240	gensupport.SetOptions(c.urlParams_, opts...)
127241	res, err := c.doRequest("json")
127242	if err != nil {
127243		return err
127244	}
127245	defer googleapi.CloseBody(res)
127246	if err := googleapi.CheckResponse(res); err != nil {
127247		return err
127248	}
127249	return nil
127250	// {
127251	//   "description": "Deletes the specified region-specific Operations resource.",
127252	//   "httpMethod": "DELETE",
127253	//   "id": "compute.regionOperations.delete",
127254	//   "parameterOrder": [
127255	//     "project",
127256	//     "region",
127257	//     "operation"
127258	//   ],
127259	//   "parameters": {
127260	//     "operation": {
127261	//       "description": "Name of the Operations resource to delete.",
127262	//       "location": "path",
127263	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
127264	//       "required": true,
127265	//       "type": "string"
127266	//     },
127267	//     "project": {
127268	//       "description": "Project ID for this request.",
127269	//       "location": "path",
127270	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127271	//       "required": true,
127272	//       "type": "string"
127273	//     },
127274	//     "region": {
127275	//       "description": "Name of the region for this request.",
127276	//       "location": "path",
127277	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127278	//       "required": true,
127279	//       "type": "string"
127280	//     }
127281	//   },
127282	//   "path": "projects/{project}/regions/{region}/operations/{operation}",
127283	//   "scopes": [
127284	//     "https://www.googleapis.com/auth/cloud-platform",
127285	//     "https://www.googleapis.com/auth/compute"
127286	//   ]
127287	// }
127288
127289}
127290
127291// method id "compute.regionOperations.get":
127292
127293type RegionOperationsGetCall struct {
127294	s            *Service
127295	project      string
127296	region       string
127297	operation    string
127298	urlParams_   gensupport.URLParams
127299	ifNoneMatch_ string
127300	ctx_         context.Context
127301	header_      http.Header
127302}
127303
127304// Get: Retrieves the specified region-specific Operations resource.
127305//
127306// - operation: Name of the Operations resource to return.
127307// - project: Project ID for this request.
127308// - region: Name of the region for this request.
127309// For details, see https://cloud.google.com/compute/docs/reference/latest/regionOperations/get
127310func (r *RegionOperationsService) Get(project string, region string, operation string) *RegionOperationsGetCall {
127311	c := &RegionOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127312	c.project = project
127313	c.region = region
127314	c.operation = operation
127315	return c
127316}
127317
127318// Fields allows partial responses to be retrieved. See
127319// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127320// for more information.
127321func (c *RegionOperationsGetCall) Fields(s ...googleapi.Field) *RegionOperationsGetCall {
127322	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127323	return c
127324}
127325
127326// IfNoneMatch sets the optional parameter which makes the operation
127327// fail if the object's ETag matches the given value. This is useful for
127328// getting updates only after the object has changed since the last
127329// request. Use googleapi.IsNotModified to check whether the response
127330// error from Do is the result of In-None-Match.
127331func (c *RegionOperationsGetCall) IfNoneMatch(entityTag string) *RegionOperationsGetCall {
127332	c.ifNoneMatch_ = entityTag
127333	return c
127334}
127335
127336// Context sets the context to be used in this call's Do method. Any
127337// pending HTTP request will be aborted if the provided context is
127338// canceled.
127339func (c *RegionOperationsGetCall) Context(ctx context.Context) *RegionOperationsGetCall {
127340	c.ctx_ = ctx
127341	return c
127342}
127343
127344// Header returns an http.Header that can be modified by the caller to
127345// add HTTP headers to the request.
127346func (c *RegionOperationsGetCall) Header() http.Header {
127347	if c.header_ == nil {
127348		c.header_ = make(http.Header)
127349	}
127350	return c.header_
127351}
127352
127353func (c *RegionOperationsGetCall) doRequest(alt string) (*http.Response, error) {
127354	reqHeaders := make(http.Header)
127355	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
127356	for k, v := range c.header_ {
127357		reqHeaders[k] = v
127358	}
127359	reqHeaders.Set("User-Agent", c.s.userAgent())
127360	if c.ifNoneMatch_ != "" {
127361		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
127362	}
127363	var body io.Reader = nil
127364	c.urlParams_.Set("alt", alt)
127365	c.urlParams_.Set("prettyPrint", "false")
127366	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/operations/{operation}")
127367	urls += "?" + c.urlParams_.Encode()
127368	req, err := http.NewRequest("GET", urls, body)
127369	if err != nil {
127370		return nil, err
127371	}
127372	req.Header = reqHeaders
127373	googleapi.Expand(req.URL, map[string]string{
127374		"project":   c.project,
127375		"region":    c.region,
127376		"operation": c.operation,
127377	})
127378	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127379}
127380
127381// Do executes the "compute.regionOperations.get" call.
127382// Exactly one of *Operation or error will be non-nil. Any non-2xx
127383// status code is an error. Response headers are in either
127384// *Operation.ServerResponse.Header or (if a response was returned at
127385// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
127386// to check whether the returned error was because
127387// http.StatusNotModified was returned.
127388func (c *RegionOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
127389	gensupport.SetOptions(c.urlParams_, opts...)
127390	res, err := c.doRequest("json")
127391	if res != nil && res.StatusCode == http.StatusNotModified {
127392		if res.Body != nil {
127393			res.Body.Close()
127394		}
127395		return nil, &googleapi.Error{
127396			Code:   res.StatusCode,
127397			Header: res.Header,
127398		}
127399	}
127400	if err != nil {
127401		return nil, err
127402	}
127403	defer googleapi.CloseBody(res)
127404	if err := googleapi.CheckResponse(res); err != nil {
127405		return nil, err
127406	}
127407	ret := &Operation{
127408		ServerResponse: googleapi.ServerResponse{
127409			Header:         res.Header,
127410			HTTPStatusCode: res.StatusCode,
127411		},
127412	}
127413	target := &ret
127414	if err := gensupport.DecodeResponse(target, res); err != nil {
127415		return nil, err
127416	}
127417	return ret, nil
127418	// {
127419	//   "description": "Retrieves the specified region-specific Operations resource.",
127420	//   "httpMethod": "GET",
127421	//   "id": "compute.regionOperations.get",
127422	//   "parameterOrder": [
127423	//     "project",
127424	//     "region",
127425	//     "operation"
127426	//   ],
127427	//   "parameters": {
127428	//     "operation": {
127429	//       "description": "Name of the Operations resource to return.",
127430	//       "location": "path",
127431	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
127432	//       "required": true,
127433	//       "type": "string"
127434	//     },
127435	//     "project": {
127436	//       "description": "Project ID for this request.",
127437	//       "location": "path",
127438	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127439	//       "required": true,
127440	//       "type": "string"
127441	//     },
127442	//     "region": {
127443	//       "description": "Name of the region for this request.",
127444	//       "location": "path",
127445	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127446	//       "required": true,
127447	//       "type": "string"
127448	//     }
127449	//   },
127450	//   "path": "projects/{project}/regions/{region}/operations/{operation}",
127451	//   "response": {
127452	//     "$ref": "Operation"
127453	//   },
127454	//   "scopes": [
127455	//     "https://www.googleapis.com/auth/cloud-platform",
127456	//     "https://www.googleapis.com/auth/compute",
127457	//     "https://www.googleapis.com/auth/compute.readonly"
127458	//   ]
127459	// }
127460
127461}
127462
127463// method id "compute.regionOperations.list":
127464
127465type RegionOperationsListCall struct {
127466	s            *Service
127467	project      string
127468	region       string
127469	urlParams_   gensupport.URLParams
127470	ifNoneMatch_ string
127471	ctx_         context.Context
127472	header_      http.Header
127473}
127474
127475// List: Retrieves a list of Operation resources contained within the
127476// specified region.
127477//
127478// - project: Project ID for this request.
127479// - region: Name of the region for this request.
127480// For details, see https://cloud.google.com/compute/docs/reference/latest/regionOperations/list
127481func (r *RegionOperationsService) List(project string, region string) *RegionOperationsListCall {
127482	c := &RegionOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127483	c.project = project
127484	c.region = region
127485	return c
127486}
127487
127488// Filter sets the optional parameter "filter": A filter expression that
127489// filters resources listed in the response. The expression must specify
127490// the field name, a comparison operator, and the value that you want to
127491// use for filtering. The value must be a string, a number, or a
127492// boolean. The comparison operator must be either `=`, `!=`, `>`, or
127493// `<`.
127494//
127495// For example, if you are filtering Compute Engine instances, you can
127496// exclude instances named `example-instance` by specifying `name !=
127497// example-instance`.
127498//
127499// You can also filter nested fields. For example, you could specify
127500// `scheduling.automaticRestart = false` to include instances only if
127501// they are not scheduled for automatic restarts. You can use filtering
127502// on nested fields to filter based on resource labels.
127503//
127504// To filter on multiple expressions, provide each separate expression
127505// within parentheses. For example: ``` (scheduling.automaticRestart =
127506// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
127507// is an `AND` expression. However, you can include `AND` and `OR`
127508// expressions explicitly. For example: ``` (cpuPlatform = "Intel
127509// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
127510// (scheduling.automaticRestart = true) ```
127511func (c *RegionOperationsListCall) Filter(filter string) *RegionOperationsListCall {
127512	c.urlParams_.Set("filter", filter)
127513	return c
127514}
127515
127516// MaxResults sets the optional parameter "maxResults": The maximum
127517// number of results per page that should be returned. If the number of
127518// available results is larger than `maxResults`, Compute Engine returns
127519// a `nextPageToken` that can be used to get the next page of results in
127520// subsequent list requests. Acceptable values are `0` to `500`,
127521// inclusive. (Default: `500`)
127522func (c *RegionOperationsListCall) MaxResults(maxResults int64) *RegionOperationsListCall {
127523	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
127524	return c
127525}
127526
127527// OrderBy sets the optional parameter "orderBy": Sorts list results by
127528// a certain order. By default, results are returned in alphanumerical
127529// order based on the resource name.
127530//
127531// You can also sort results in descending order based on the creation
127532// timestamp using `orderBy="creationTimestamp desc". This sorts
127533// results based on the `creationTimestamp` field in reverse
127534// chronological order (newest result first). Use this to sort resources
127535// like operations so that the newest operation is returned
127536// first.
127537//
127538// Currently, only sorting by `name` or `creationTimestamp desc` is
127539// supported.
127540func (c *RegionOperationsListCall) OrderBy(orderBy string) *RegionOperationsListCall {
127541	c.urlParams_.Set("orderBy", orderBy)
127542	return c
127543}
127544
127545// PageToken sets the optional parameter "pageToken": Specifies a page
127546// token to use. Set `pageToken` to the `nextPageToken` returned by a
127547// previous list request to get the next page of results.
127548func (c *RegionOperationsListCall) PageToken(pageToken string) *RegionOperationsListCall {
127549	c.urlParams_.Set("pageToken", pageToken)
127550	return c
127551}
127552
127553// ReturnPartialSuccess sets the optional parameter
127554// "returnPartialSuccess": Opt-in for partial success behavior which
127555// provides partial results in case of failure. The default value is
127556// false.
127557func (c *RegionOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionOperationsListCall {
127558	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
127559	return c
127560}
127561
127562// Fields allows partial responses to be retrieved. See
127563// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127564// for more information.
127565func (c *RegionOperationsListCall) Fields(s ...googleapi.Field) *RegionOperationsListCall {
127566	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127567	return c
127568}
127569
127570// IfNoneMatch sets the optional parameter which makes the operation
127571// fail if the object's ETag matches the given value. This is useful for
127572// getting updates only after the object has changed since the last
127573// request. Use googleapi.IsNotModified to check whether the response
127574// error from Do is the result of In-None-Match.
127575func (c *RegionOperationsListCall) IfNoneMatch(entityTag string) *RegionOperationsListCall {
127576	c.ifNoneMatch_ = entityTag
127577	return c
127578}
127579
127580// Context sets the context to be used in this call's Do method. Any
127581// pending HTTP request will be aborted if the provided context is
127582// canceled.
127583func (c *RegionOperationsListCall) Context(ctx context.Context) *RegionOperationsListCall {
127584	c.ctx_ = ctx
127585	return c
127586}
127587
127588// Header returns an http.Header that can be modified by the caller to
127589// add HTTP headers to the request.
127590func (c *RegionOperationsListCall) Header() http.Header {
127591	if c.header_ == nil {
127592		c.header_ = make(http.Header)
127593	}
127594	return c.header_
127595}
127596
127597func (c *RegionOperationsListCall) doRequest(alt string) (*http.Response, error) {
127598	reqHeaders := make(http.Header)
127599	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
127600	for k, v := range c.header_ {
127601		reqHeaders[k] = v
127602	}
127603	reqHeaders.Set("User-Agent", c.s.userAgent())
127604	if c.ifNoneMatch_ != "" {
127605		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
127606	}
127607	var body io.Reader = nil
127608	c.urlParams_.Set("alt", alt)
127609	c.urlParams_.Set("prettyPrint", "false")
127610	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/operations")
127611	urls += "?" + c.urlParams_.Encode()
127612	req, err := http.NewRequest("GET", urls, body)
127613	if err != nil {
127614		return nil, err
127615	}
127616	req.Header = reqHeaders
127617	googleapi.Expand(req.URL, map[string]string{
127618		"project": c.project,
127619		"region":  c.region,
127620	})
127621	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127622}
127623
127624// Do executes the "compute.regionOperations.list" call.
127625// Exactly one of *OperationList or error will be non-nil. Any non-2xx
127626// status code is an error. Response headers are in either
127627// *OperationList.ServerResponse.Header or (if a response was returned
127628// at all) in error.(*googleapi.Error).Header. Use
127629// googleapi.IsNotModified to check whether the returned error was
127630// because http.StatusNotModified was returned.
127631func (c *RegionOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
127632	gensupport.SetOptions(c.urlParams_, opts...)
127633	res, err := c.doRequest("json")
127634	if res != nil && res.StatusCode == http.StatusNotModified {
127635		if res.Body != nil {
127636			res.Body.Close()
127637		}
127638		return nil, &googleapi.Error{
127639			Code:   res.StatusCode,
127640			Header: res.Header,
127641		}
127642	}
127643	if err != nil {
127644		return nil, err
127645	}
127646	defer googleapi.CloseBody(res)
127647	if err := googleapi.CheckResponse(res); err != nil {
127648		return nil, err
127649	}
127650	ret := &OperationList{
127651		ServerResponse: googleapi.ServerResponse{
127652			Header:         res.Header,
127653			HTTPStatusCode: res.StatusCode,
127654		},
127655	}
127656	target := &ret
127657	if err := gensupport.DecodeResponse(target, res); err != nil {
127658		return nil, err
127659	}
127660	return ret, nil
127661	// {
127662	//   "description": "Retrieves a list of Operation resources contained within the specified region.",
127663	//   "httpMethod": "GET",
127664	//   "id": "compute.regionOperations.list",
127665	//   "parameterOrder": [
127666	//     "project",
127667	//     "region"
127668	//   ],
127669	//   "parameters": {
127670	//     "filter": {
127671	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
127672	//       "location": "query",
127673	//       "type": "string"
127674	//     },
127675	//     "maxResults": {
127676	//       "default": "500",
127677	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
127678	//       "format": "uint32",
127679	//       "location": "query",
127680	//       "minimum": "0",
127681	//       "type": "integer"
127682	//     },
127683	//     "orderBy": {
127684	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
127685	//       "location": "query",
127686	//       "type": "string"
127687	//     },
127688	//     "pageToken": {
127689	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
127690	//       "location": "query",
127691	//       "type": "string"
127692	//     },
127693	//     "project": {
127694	//       "description": "Project ID for this request.",
127695	//       "location": "path",
127696	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127697	//       "required": true,
127698	//       "type": "string"
127699	//     },
127700	//     "region": {
127701	//       "description": "Name of the region for this request.",
127702	//       "location": "path",
127703	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127704	//       "required": true,
127705	//       "type": "string"
127706	//     },
127707	//     "returnPartialSuccess": {
127708	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
127709	//       "location": "query",
127710	//       "type": "boolean"
127711	//     }
127712	//   },
127713	//   "path": "projects/{project}/regions/{region}/operations",
127714	//   "response": {
127715	//     "$ref": "OperationList"
127716	//   },
127717	//   "scopes": [
127718	//     "https://www.googleapis.com/auth/cloud-platform",
127719	//     "https://www.googleapis.com/auth/compute",
127720	//     "https://www.googleapis.com/auth/compute.readonly"
127721	//   ]
127722	// }
127723
127724}
127725
127726// Pages invokes f for each page of results.
127727// A non-nil error returned from f will halt the iteration.
127728// The provided context supersedes any context provided to the Context method.
127729func (c *RegionOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
127730	c.ctx_ = ctx
127731	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
127732	for {
127733		x, err := c.Do()
127734		if err != nil {
127735			return err
127736		}
127737		if err := f(x); err != nil {
127738			return err
127739		}
127740		if x.NextPageToken == "" {
127741			return nil
127742		}
127743		c.PageToken(x.NextPageToken)
127744	}
127745}
127746
127747// method id "compute.regionOperations.wait":
127748
127749type RegionOperationsWaitCall struct {
127750	s          *Service
127751	project    string
127752	region     string
127753	operation  string
127754	urlParams_ gensupport.URLParams
127755	ctx_       context.Context
127756	header_    http.Header
127757}
127758
127759// Wait: Waits for the specified Operation resource to return as `DONE`
127760// or for the request to approach the 2 minute deadline, and retrieves
127761// the specified Operation resource. This method differs from the `GET`
127762// method in that it waits for no more than the default deadline (2
127763// minutes) and then returns the current state of the operation, which
127764// might be `DONE` or still in progress.
127765//
127766// This method is called on a best-effort basis. Specifically:
127767// - In uncommon cases, when the server is overloaded, the request might
127768// return before the default deadline is reached, or might return after
127769// zero seconds.
127770// - If the default deadline is reached, there is no guarantee that the
127771// operation is actually done when the method returns. Be prepared to
127772// retry if the operation is not `DONE`.
127773//
127774// - operation: Name of the Operations resource to return.
127775// - project: Project ID for this request.
127776// - region: Name of the region for this request.
127777func (r *RegionOperationsService) Wait(project string, region string, operation string) *RegionOperationsWaitCall {
127778	c := &RegionOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127779	c.project = project
127780	c.region = region
127781	c.operation = operation
127782	return c
127783}
127784
127785// Fields allows partial responses to be retrieved. See
127786// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127787// for more information.
127788func (c *RegionOperationsWaitCall) Fields(s ...googleapi.Field) *RegionOperationsWaitCall {
127789	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127790	return c
127791}
127792
127793// Context sets the context to be used in this call's Do method. Any
127794// pending HTTP request will be aborted if the provided context is
127795// canceled.
127796func (c *RegionOperationsWaitCall) Context(ctx context.Context) *RegionOperationsWaitCall {
127797	c.ctx_ = ctx
127798	return c
127799}
127800
127801// Header returns an http.Header that can be modified by the caller to
127802// add HTTP headers to the request.
127803func (c *RegionOperationsWaitCall) Header() http.Header {
127804	if c.header_ == nil {
127805		c.header_ = make(http.Header)
127806	}
127807	return c.header_
127808}
127809
127810func (c *RegionOperationsWaitCall) doRequest(alt string) (*http.Response, error) {
127811	reqHeaders := make(http.Header)
127812	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
127813	for k, v := range c.header_ {
127814		reqHeaders[k] = v
127815	}
127816	reqHeaders.Set("User-Agent", c.s.userAgent())
127817	var body io.Reader = nil
127818	c.urlParams_.Set("alt", alt)
127819	c.urlParams_.Set("prettyPrint", "false")
127820	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/operations/{operation}/wait")
127821	urls += "?" + c.urlParams_.Encode()
127822	req, err := http.NewRequest("POST", urls, body)
127823	if err != nil {
127824		return nil, err
127825	}
127826	req.Header = reqHeaders
127827	googleapi.Expand(req.URL, map[string]string{
127828		"project":   c.project,
127829		"region":    c.region,
127830		"operation": c.operation,
127831	})
127832	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127833}
127834
127835// Do executes the "compute.regionOperations.wait" call.
127836// Exactly one of *Operation or error will be non-nil. Any non-2xx
127837// status code is an error. Response headers are in either
127838// *Operation.ServerResponse.Header or (if a response was returned at
127839// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
127840// to check whether the returned error was because
127841// http.StatusNotModified was returned.
127842func (c *RegionOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
127843	gensupport.SetOptions(c.urlParams_, opts...)
127844	res, err := c.doRequest("json")
127845	if res != nil && res.StatusCode == http.StatusNotModified {
127846		if res.Body != nil {
127847			res.Body.Close()
127848		}
127849		return nil, &googleapi.Error{
127850			Code:   res.StatusCode,
127851			Header: res.Header,
127852		}
127853	}
127854	if err != nil {
127855		return nil, err
127856	}
127857	defer googleapi.CloseBody(res)
127858	if err := googleapi.CheckResponse(res); err != nil {
127859		return nil, err
127860	}
127861	ret := &Operation{
127862		ServerResponse: googleapi.ServerResponse{
127863			Header:         res.Header,
127864			HTTPStatusCode: res.StatusCode,
127865		},
127866	}
127867	target := &ret
127868	if err := gensupport.DecodeResponse(target, res); err != nil {
127869		return nil, err
127870	}
127871	return ret, nil
127872	// {
127873	//   "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`.",
127874	//   "httpMethod": "POST",
127875	//   "id": "compute.regionOperations.wait",
127876	//   "parameterOrder": [
127877	//     "project",
127878	//     "region",
127879	//     "operation"
127880	//   ],
127881	//   "parameters": {
127882	//     "operation": {
127883	//       "description": "Name of the Operations resource to return.",
127884	//       "location": "path",
127885	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
127886	//       "required": true,
127887	//       "type": "string"
127888	//     },
127889	//     "project": {
127890	//       "description": "Project ID for this request.",
127891	//       "location": "path",
127892	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127893	//       "required": true,
127894	//       "type": "string"
127895	//     },
127896	//     "region": {
127897	//       "description": "Name of the region for this request.",
127898	//       "location": "path",
127899	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127900	//       "required": true,
127901	//       "type": "string"
127902	//     }
127903	//   },
127904	//   "path": "projects/{project}/regions/{region}/operations/{operation}/wait",
127905	//   "response": {
127906	//     "$ref": "Operation"
127907	//   },
127908	//   "scopes": [
127909	//     "https://www.googleapis.com/auth/cloud-platform",
127910	//     "https://www.googleapis.com/auth/compute",
127911	//     "https://www.googleapis.com/auth/compute.readonly"
127912	//   ]
127913	// }
127914
127915}
127916
127917// method id "compute.regionSslCertificates.delete":
127918
127919type RegionSslCertificatesDeleteCall struct {
127920	s              *Service
127921	project        string
127922	region         string
127923	sslCertificate string
127924	urlParams_     gensupport.URLParams
127925	ctx_           context.Context
127926	header_        http.Header
127927}
127928
127929// Delete: Deletes the specified SslCertificate resource in the region.
127930//
127931// - project: Project ID for this request.
127932// - region: Name of the region scoping this request.
127933// - sslCertificate: Name of the SslCertificate resource to delete.
127934func (r *RegionSslCertificatesService) Delete(project string, region string, sslCertificate string) *RegionSslCertificatesDeleteCall {
127935	c := &RegionSslCertificatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127936	c.project = project
127937	c.region = region
127938	c.sslCertificate = sslCertificate
127939	return c
127940}
127941
127942// RequestId sets the optional parameter "requestId": An optional
127943// request ID to identify requests. Specify a unique request ID so that
127944// if you must retry your request, the server will know to ignore the
127945// request if it has already been completed.
127946//
127947// For example, consider a situation where you make an initial request
127948// and the request times out. If you make the request again with the
127949// same request ID, the server can check if original operation with the
127950// same request ID was received, and if so, will ignore the second
127951// request. This prevents clients from accidentally creating duplicate
127952// commitments.
127953//
127954// The request ID must be a valid UUID with the exception that zero UUID
127955// is not supported (00000000-0000-0000-0000-000000000000).
127956func (c *RegionSslCertificatesDeleteCall) RequestId(requestId string) *RegionSslCertificatesDeleteCall {
127957	c.urlParams_.Set("requestId", requestId)
127958	return c
127959}
127960
127961// Fields allows partial responses to be retrieved. See
127962// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127963// for more information.
127964func (c *RegionSslCertificatesDeleteCall) Fields(s ...googleapi.Field) *RegionSslCertificatesDeleteCall {
127965	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127966	return c
127967}
127968
127969// Context sets the context to be used in this call's Do method. Any
127970// pending HTTP request will be aborted if the provided context is
127971// canceled.
127972func (c *RegionSslCertificatesDeleteCall) Context(ctx context.Context) *RegionSslCertificatesDeleteCall {
127973	c.ctx_ = ctx
127974	return c
127975}
127976
127977// Header returns an http.Header that can be modified by the caller to
127978// add HTTP headers to the request.
127979func (c *RegionSslCertificatesDeleteCall) Header() http.Header {
127980	if c.header_ == nil {
127981		c.header_ = make(http.Header)
127982	}
127983	return c.header_
127984}
127985
127986func (c *RegionSslCertificatesDeleteCall) doRequest(alt string) (*http.Response, error) {
127987	reqHeaders := make(http.Header)
127988	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
127989	for k, v := range c.header_ {
127990		reqHeaders[k] = v
127991	}
127992	reqHeaders.Set("User-Agent", c.s.userAgent())
127993	var body io.Reader = nil
127994	c.urlParams_.Set("alt", alt)
127995	c.urlParams_.Set("prettyPrint", "false")
127996	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}")
127997	urls += "?" + c.urlParams_.Encode()
127998	req, err := http.NewRequest("DELETE", urls, body)
127999	if err != nil {
128000		return nil, err
128001	}
128002	req.Header = reqHeaders
128003	googleapi.Expand(req.URL, map[string]string{
128004		"project":        c.project,
128005		"region":         c.region,
128006		"sslCertificate": c.sslCertificate,
128007	})
128008	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128009}
128010
128011// Do executes the "compute.regionSslCertificates.delete" call.
128012// Exactly one of *Operation or error will be non-nil. Any non-2xx
128013// status code is an error. Response headers are in either
128014// *Operation.ServerResponse.Header or (if a response was returned at
128015// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
128016// to check whether the returned error was because
128017// http.StatusNotModified was returned.
128018func (c *RegionSslCertificatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
128019	gensupport.SetOptions(c.urlParams_, opts...)
128020	res, err := c.doRequest("json")
128021	if res != nil && res.StatusCode == http.StatusNotModified {
128022		if res.Body != nil {
128023			res.Body.Close()
128024		}
128025		return nil, &googleapi.Error{
128026			Code:   res.StatusCode,
128027			Header: res.Header,
128028		}
128029	}
128030	if err != nil {
128031		return nil, err
128032	}
128033	defer googleapi.CloseBody(res)
128034	if err := googleapi.CheckResponse(res); err != nil {
128035		return nil, err
128036	}
128037	ret := &Operation{
128038		ServerResponse: googleapi.ServerResponse{
128039			Header:         res.Header,
128040			HTTPStatusCode: res.StatusCode,
128041		},
128042	}
128043	target := &ret
128044	if err := gensupport.DecodeResponse(target, res); err != nil {
128045		return nil, err
128046	}
128047	return ret, nil
128048	// {
128049	//   "description": "Deletes the specified SslCertificate resource in the region.",
128050	//   "httpMethod": "DELETE",
128051	//   "id": "compute.regionSslCertificates.delete",
128052	//   "parameterOrder": [
128053	//     "project",
128054	//     "region",
128055	//     "sslCertificate"
128056	//   ],
128057	//   "parameters": {
128058	//     "project": {
128059	//       "description": "Project ID for this request.",
128060	//       "location": "path",
128061	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128062	//       "required": true,
128063	//       "type": "string"
128064	//     },
128065	//     "region": {
128066	//       "description": "Name of the region scoping this request.",
128067	//       "location": "path",
128068	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
128069	//       "required": true,
128070	//       "type": "string"
128071	//     },
128072	//     "requestId": {
128073	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
128074	//       "location": "query",
128075	//       "type": "string"
128076	//     },
128077	//     "sslCertificate": {
128078	//       "description": "Name of the SslCertificate resource to delete.",
128079	//       "location": "path",
128080	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
128081	//       "required": true,
128082	//       "type": "string"
128083	//     }
128084	//   },
128085	//   "path": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}",
128086	//   "response": {
128087	//     "$ref": "Operation"
128088	//   },
128089	//   "scopes": [
128090	//     "https://www.googleapis.com/auth/cloud-platform",
128091	//     "https://www.googleapis.com/auth/compute"
128092	//   ]
128093	// }
128094
128095}
128096
128097// method id "compute.regionSslCertificates.get":
128098
128099type RegionSslCertificatesGetCall struct {
128100	s              *Service
128101	project        string
128102	region         string
128103	sslCertificate string
128104	urlParams_     gensupport.URLParams
128105	ifNoneMatch_   string
128106	ctx_           context.Context
128107	header_        http.Header
128108}
128109
128110// Get: Returns the specified SslCertificate resource in the specified
128111// region. Get a list of available SSL certificates by making a list()
128112// request.
128113//
128114// - project: Project ID for this request.
128115// - region: Name of the region scoping this request.
128116// - sslCertificate: Name of the SslCertificate resource to return.
128117func (r *RegionSslCertificatesService) Get(project string, region string, sslCertificate string) *RegionSslCertificatesGetCall {
128118	c := &RegionSslCertificatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128119	c.project = project
128120	c.region = region
128121	c.sslCertificate = sslCertificate
128122	return c
128123}
128124
128125// Fields allows partial responses to be retrieved. See
128126// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128127// for more information.
128128func (c *RegionSslCertificatesGetCall) Fields(s ...googleapi.Field) *RegionSslCertificatesGetCall {
128129	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128130	return c
128131}
128132
128133// IfNoneMatch sets the optional parameter which makes the operation
128134// fail if the object's ETag matches the given value. This is useful for
128135// getting updates only after the object has changed since the last
128136// request. Use googleapi.IsNotModified to check whether the response
128137// error from Do is the result of In-None-Match.
128138func (c *RegionSslCertificatesGetCall) IfNoneMatch(entityTag string) *RegionSslCertificatesGetCall {
128139	c.ifNoneMatch_ = entityTag
128140	return c
128141}
128142
128143// Context sets the context to be used in this call's Do method. Any
128144// pending HTTP request will be aborted if the provided context is
128145// canceled.
128146func (c *RegionSslCertificatesGetCall) Context(ctx context.Context) *RegionSslCertificatesGetCall {
128147	c.ctx_ = ctx
128148	return c
128149}
128150
128151// Header returns an http.Header that can be modified by the caller to
128152// add HTTP headers to the request.
128153func (c *RegionSslCertificatesGetCall) Header() http.Header {
128154	if c.header_ == nil {
128155		c.header_ = make(http.Header)
128156	}
128157	return c.header_
128158}
128159
128160func (c *RegionSslCertificatesGetCall) doRequest(alt string) (*http.Response, error) {
128161	reqHeaders := make(http.Header)
128162	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
128163	for k, v := range c.header_ {
128164		reqHeaders[k] = v
128165	}
128166	reqHeaders.Set("User-Agent", c.s.userAgent())
128167	if c.ifNoneMatch_ != "" {
128168		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
128169	}
128170	var body io.Reader = nil
128171	c.urlParams_.Set("alt", alt)
128172	c.urlParams_.Set("prettyPrint", "false")
128173	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}")
128174	urls += "?" + c.urlParams_.Encode()
128175	req, err := http.NewRequest("GET", urls, body)
128176	if err != nil {
128177		return nil, err
128178	}
128179	req.Header = reqHeaders
128180	googleapi.Expand(req.URL, map[string]string{
128181		"project":        c.project,
128182		"region":         c.region,
128183		"sslCertificate": c.sslCertificate,
128184	})
128185	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128186}
128187
128188// Do executes the "compute.regionSslCertificates.get" call.
128189// Exactly one of *SslCertificate or error will be non-nil. Any non-2xx
128190// status code is an error. Response headers are in either
128191// *SslCertificate.ServerResponse.Header or (if a response was returned
128192// at all) in error.(*googleapi.Error).Header. Use
128193// googleapi.IsNotModified to check whether the returned error was
128194// because http.StatusNotModified was returned.
128195func (c *RegionSslCertificatesGetCall) Do(opts ...googleapi.CallOption) (*SslCertificate, error) {
128196	gensupport.SetOptions(c.urlParams_, opts...)
128197	res, err := c.doRequest("json")
128198	if res != nil && res.StatusCode == http.StatusNotModified {
128199		if res.Body != nil {
128200			res.Body.Close()
128201		}
128202		return nil, &googleapi.Error{
128203			Code:   res.StatusCode,
128204			Header: res.Header,
128205		}
128206	}
128207	if err != nil {
128208		return nil, err
128209	}
128210	defer googleapi.CloseBody(res)
128211	if err := googleapi.CheckResponse(res); err != nil {
128212		return nil, err
128213	}
128214	ret := &SslCertificate{
128215		ServerResponse: googleapi.ServerResponse{
128216			Header:         res.Header,
128217			HTTPStatusCode: res.StatusCode,
128218		},
128219	}
128220	target := &ret
128221	if err := gensupport.DecodeResponse(target, res); err != nil {
128222		return nil, err
128223	}
128224	return ret, nil
128225	// {
128226	//   "description": "Returns the specified SslCertificate resource in the specified region. Get a list of available SSL certificates by making a list() request.",
128227	//   "httpMethod": "GET",
128228	//   "id": "compute.regionSslCertificates.get",
128229	//   "parameterOrder": [
128230	//     "project",
128231	//     "region",
128232	//     "sslCertificate"
128233	//   ],
128234	//   "parameters": {
128235	//     "project": {
128236	//       "description": "Project ID for this request.",
128237	//       "location": "path",
128238	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128239	//       "required": true,
128240	//       "type": "string"
128241	//     },
128242	//     "region": {
128243	//       "description": "Name of the region scoping this request.",
128244	//       "location": "path",
128245	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
128246	//       "required": true,
128247	//       "type": "string"
128248	//     },
128249	//     "sslCertificate": {
128250	//       "description": "Name of the SslCertificate resource to return.",
128251	//       "location": "path",
128252	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
128253	//       "required": true,
128254	//       "type": "string"
128255	//     }
128256	//   },
128257	//   "path": "projects/{project}/regions/{region}/sslCertificates/{sslCertificate}",
128258	//   "response": {
128259	//     "$ref": "SslCertificate"
128260	//   },
128261	//   "scopes": [
128262	//     "https://www.googleapis.com/auth/cloud-platform",
128263	//     "https://www.googleapis.com/auth/compute",
128264	//     "https://www.googleapis.com/auth/compute.readonly"
128265	//   ]
128266	// }
128267
128268}
128269
128270// method id "compute.regionSslCertificates.insert":
128271
128272type RegionSslCertificatesInsertCall struct {
128273	s              *Service
128274	project        string
128275	region         string
128276	sslcertificate *SslCertificate
128277	urlParams_     gensupport.URLParams
128278	ctx_           context.Context
128279	header_        http.Header
128280}
128281
128282// Insert: Creates a SslCertificate resource in the specified project
128283// and region using the data included in the request
128284//
128285// - project: Project ID for this request.
128286// - region: Name of the region scoping this request.
128287func (r *RegionSslCertificatesService) Insert(project string, region string, sslcertificate *SslCertificate) *RegionSslCertificatesInsertCall {
128288	c := &RegionSslCertificatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128289	c.project = project
128290	c.region = region
128291	c.sslcertificate = sslcertificate
128292	return c
128293}
128294
128295// RequestId sets the optional parameter "requestId": An optional
128296// request ID to identify requests. Specify a unique request ID so that
128297// if you must retry your request, the server will know to ignore the
128298// request if it has already been completed.
128299//
128300// For example, consider a situation where you make an initial request
128301// and the request times out. If you make the request again with the
128302// same request ID, the server can check if original operation with the
128303// same request ID was received, and if so, will ignore the second
128304// request. This prevents clients from accidentally creating duplicate
128305// commitments.
128306//
128307// The request ID must be a valid UUID with the exception that zero UUID
128308// is not supported (00000000-0000-0000-0000-000000000000).
128309func (c *RegionSslCertificatesInsertCall) RequestId(requestId string) *RegionSslCertificatesInsertCall {
128310	c.urlParams_.Set("requestId", requestId)
128311	return c
128312}
128313
128314// Fields allows partial responses to be retrieved. See
128315// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128316// for more information.
128317func (c *RegionSslCertificatesInsertCall) Fields(s ...googleapi.Field) *RegionSslCertificatesInsertCall {
128318	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128319	return c
128320}
128321
128322// Context sets the context to be used in this call's Do method. Any
128323// pending HTTP request will be aborted if the provided context is
128324// canceled.
128325func (c *RegionSslCertificatesInsertCall) Context(ctx context.Context) *RegionSslCertificatesInsertCall {
128326	c.ctx_ = ctx
128327	return c
128328}
128329
128330// Header returns an http.Header that can be modified by the caller to
128331// add HTTP headers to the request.
128332func (c *RegionSslCertificatesInsertCall) Header() http.Header {
128333	if c.header_ == nil {
128334		c.header_ = make(http.Header)
128335	}
128336	return c.header_
128337}
128338
128339func (c *RegionSslCertificatesInsertCall) doRequest(alt string) (*http.Response, error) {
128340	reqHeaders := make(http.Header)
128341	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
128342	for k, v := range c.header_ {
128343		reqHeaders[k] = v
128344	}
128345	reqHeaders.Set("User-Agent", c.s.userAgent())
128346	var body io.Reader = nil
128347	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslcertificate)
128348	if err != nil {
128349		return nil, err
128350	}
128351	reqHeaders.Set("Content-Type", "application/json")
128352	c.urlParams_.Set("alt", alt)
128353	c.urlParams_.Set("prettyPrint", "false")
128354	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslCertificates")
128355	urls += "?" + c.urlParams_.Encode()
128356	req, err := http.NewRequest("POST", urls, body)
128357	if err != nil {
128358		return nil, err
128359	}
128360	req.Header = reqHeaders
128361	googleapi.Expand(req.URL, map[string]string{
128362		"project": c.project,
128363		"region":  c.region,
128364	})
128365	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128366}
128367
128368// Do executes the "compute.regionSslCertificates.insert" call.
128369// Exactly one of *Operation or error will be non-nil. Any non-2xx
128370// status code is an error. Response headers are in either
128371// *Operation.ServerResponse.Header or (if a response was returned at
128372// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
128373// to check whether the returned error was because
128374// http.StatusNotModified was returned.
128375func (c *RegionSslCertificatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
128376	gensupport.SetOptions(c.urlParams_, opts...)
128377	res, err := c.doRequest("json")
128378	if res != nil && res.StatusCode == http.StatusNotModified {
128379		if res.Body != nil {
128380			res.Body.Close()
128381		}
128382		return nil, &googleapi.Error{
128383			Code:   res.StatusCode,
128384			Header: res.Header,
128385		}
128386	}
128387	if err != nil {
128388		return nil, err
128389	}
128390	defer googleapi.CloseBody(res)
128391	if err := googleapi.CheckResponse(res); err != nil {
128392		return nil, err
128393	}
128394	ret := &Operation{
128395		ServerResponse: googleapi.ServerResponse{
128396			Header:         res.Header,
128397			HTTPStatusCode: res.StatusCode,
128398		},
128399	}
128400	target := &ret
128401	if err := gensupport.DecodeResponse(target, res); err != nil {
128402		return nil, err
128403	}
128404	return ret, nil
128405	// {
128406	//   "description": "Creates a SslCertificate resource in the specified project and region using the data included in the request",
128407	//   "httpMethod": "POST",
128408	//   "id": "compute.regionSslCertificates.insert",
128409	//   "parameterOrder": [
128410	//     "project",
128411	//     "region"
128412	//   ],
128413	//   "parameters": {
128414	//     "project": {
128415	//       "description": "Project ID for this request.",
128416	//       "location": "path",
128417	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128418	//       "required": true,
128419	//       "type": "string"
128420	//     },
128421	//     "region": {
128422	//       "description": "Name of the region scoping this request.",
128423	//       "location": "path",
128424	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
128425	//       "required": true,
128426	//       "type": "string"
128427	//     },
128428	//     "requestId": {
128429	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
128430	//       "location": "query",
128431	//       "type": "string"
128432	//     }
128433	//   },
128434	//   "path": "projects/{project}/regions/{region}/sslCertificates",
128435	//   "request": {
128436	//     "$ref": "SslCertificate"
128437	//   },
128438	//   "response": {
128439	//     "$ref": "Operation"
128440	//   },
128441	//   "scopes": [
128442	//     "https://www.googleapis.com/auth/cloud-platform",
128443	//     "https://www.googleapis.com/auth/compute"
128444	//   ]
128445	// }
128446
128447}
128448
128449// method id "compute.regionSslCertificates.list":
128450
128451type RegionSslCertificatesListCall struct {
128452	s            *Service
128453	project      string
128454	region       string
128455	urlParams_   gensupport.URLParams
128456	ifNoneMatch_ string
128457	ctx_         context.Context
128458	header_      http.Header
128459}
128460
128461// List: Retrieves the list of SslCertificate resources available to the
128462// specified project in the specified region.
128463//
128464// - project: Project ID for this request.
128465// - region: Name of the region scoping this request.
128466func (r *RegionSslCertificatesService) List(project string, region string) *RegionSslCertificatesListCall {
128467	c := &RegionSslCertificatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128468	c.project = project
128469	c.region = region
128470	return c
128471}
128472
128473// Filter sets the optional parameter "filter": A filter expression that
128474// filters resources listed in the response. The expression must specify
128475// the field name, a comparison operator, and the value that you want to
128476// use for filtering. The value must be a string, a number, or a
128477// boolean. The comparison operator must be either `=`, `!=`, `>`, or
128478// `<`.
128479//
128480// For example, if you are filtering Compute Engine instances, you can
128481// exclude instances named `example-instance` by specifying `name !=
128482// example-instance`.
128483//
128484// You can also filter nested fields. For example, you could specify
128485// `scheduling.automaticRestart = false` to include instances only if
128486// they are not scheduled for automatic restarts. You can use filtering
128487// on nested fields to filter based on resource labels.
128488//
128489// To filter on multiple expressions, provide each separate expression
128490// within parentheses. For example: ``` (scheduling.automaticRestart =
128491// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
128492// is an `AND` expression. However, you can include `AND` and `OR`
128493// expressions explicitly. For example: ``` (cpuPlatform = "Intel
128494// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
128495// (scheduling.automaticRestart = true) ```
128496func (c *RegionSslCertificatesListCall) Filter(filter string) *RegionSslCertificatesListCall {
128497	c.urlParams_.Set("filter", filter)
128498	return c
128499}
128500
128501// MaxResults sets the optional parameter "maxResults": The maximum
128502// number of results per page that should be returned. If the number of
128503// available results is larger than `maxResults`, Compute Engine returns
128504// a `nextPageToken` that can be used to get the next page of results in
128505// subsequent list requests. Acceptable values are `0` to `500`,
128506// inclusive. (Default: `500`)
128507func (c *RegionSslCertificatesListCall) MaxResults(maxResults int64) *RegionSslCertificatesListCall {
128508	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
128509	return c
128510}
128511
128512// OrderBy sets the optional parameter "orderBy": Sorts list results by
128513// a certain order. By default, results are returned in alphanumerical
128514// order based on the resource name.
128515//
128516// You can also sort results in descending order based on the creation
128517// timestamp using `orderBy="creationTimestamp desc". This sorts
128518// results based on the `creationTimestamp` field in reverse
128519// chronological order (newest result first). Use this to sort resources
128520// like operations so that the newest operation is returned
128521// first.
128522//
128523// Currently, only sorting by `name` or `creationTimestamp desc` is
128524// supported.
128525func (c *RegionSslCertificatesListCall) OrderBy(orderBy string) *RegionSslCertificatesListCall {
128526	c.urlParams_.Set("orderBy", orderBy)
128527	return c
128528}
128529
128530// PageToken sets the optional parameter "pageToken": Specifies a page
128531// token to use. Set `pageToken` to the `nextPageToken` returned by a
128532// previous list request to get the next page of results.
128533func (c *RegionSslCertificatesListCall) PageToken(pageToken string) *RegionSslCertificatesListCall {
128534	c.urlParams_.Set("pageToken", pageToken)
128535	return c
128536}
128537
128538// ReturnPartialSuccess sets the optional parameter
128539// "returnPartialSuccess": Opt-in for partial success behavior which
128540// provides partial results in case of failure. The default value is
128541// false.
128542func (c *RegionSslCertificatesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionSslCertificatesListCall {
128543	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
128544	return c
128545}
128546
128547// Fields allows partial responses to be retrieved. See
128548// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128549// for more information.
128550func (c *RegionSslCertificatesListCall) Fields(s ...googleapi.Field) *RegionSslCertificatesListCall {
128551	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128552	return c
128553}
128554
128555// IfNoneMatch sets the optional parameter which makes the operation
128556// fail if the object's ETag matches the given value. This is useful for
128557// getting updates only after the object has changed since the last
128558// request. Use googleapi.IsNotModified to check whether the response
128559// error from Do is the result of In-None-Match.
128560func (c *RegionSslCertificatesListCall) IfNoneMatch(entityTag string) *RegionSslCertificatesListCall {
128561	c.ifNoneMatch_ = entityTag
128562	return c
128563}
128564
128565// Context sets the context to be used in this call's Do method. Any
128566// pending HTTP request will be aborted if the provided context is
128567// canceled.
128568func (c *RegionSslCertificatesListCall) Context(ctx context.Context) *RegionSslCertificatesListCall {
128569	c.ctx_ = ctx
128570	return c
128571}
128572
128573// Header returns an http.Header that can be modified by the caller to
128574// add HTTP headers to the request.
128575func (c *RegionSslCertificatesListCall) Header() http.Header {
128576	if c.header_ == nil {
128577		c.header_ = make(http.Header)
128578	}
128579	return c.header_
128580}
128581
128582func (c *RegionSslCertificatesListCall) doRequest(alt string) (*http.Response, error) {
128583	reqHeaders := make(http.Header)
128584	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
128585	for k, v := range c.header_ {
128586		reqHeaders[k] = v
128587	}
128588	reqHeaders.Set("User-Agent", c.s.userAgent())
128589	if c.ifNoneMatch_ != "" {
128590		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
128591	}
128592	var body io.Reader = nil
128593	c.urlParams_.Set("alt", alt)
128594	c.urlParams_.Set("prettyPrint", "false")
128595	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/sslCertificates")
128596	urls += "?" + c.urlParams_.Encode()
128597	req, err := http.NewRequest("GET", urls, body)
128598	if err != nil {
128599		return nil, err
128600	}
128601	req.Header = reqHeaders
128602	googleapi.Expand(req.URL, map[string]string{
128603		"project": c.project,
128604		"region":  c.region,
128605	})
128606	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128607}
128608
128609// Do executes the "compute.regionSslCertificates.list" call.
128610// Exactly one of *SslCertificateList or error will be non-nil. Any
128611// non-2xx status code is an error. Response headers are in either
128612// *SslCertificateList.ServerResponse.Header or (if a response was
128613// returned at all) in error.(*googleapi.Error).Header. Use
128614// googleapi.IsNotModified to check whether the returned error was
128615// because http.StatusNotModified was returned.
128616func (c *RegionSslCertificatesListCall) Do(opts ...googleapi.CallOption) (*SslCertificateList, error) {
128617	gensupport.SetOptions(c.urlParams_, opts...)
128618	res, err := c.doRequest("json")
128619	if res != nil && res.StatusCode == http.StatusNotModified {
128620		if res.Body != nil {
128621			res.Body.Close()
128622		}
128623		return nil, &googleapi.Error{
128624			Code:   res.StatusCode,
128625			Header: res.Header,
128626		}
128627	}
128628	if err != nil {
128629		return nil, err
128630	}
128631	defer googleapi.CloseBody(res)
128632	if err := googleapi.CheckResponse(res); err != nil {
128633		return nil, err
128634	}
128635	ret := &SslCertificateList{
128636		ServerResponse: googleapi.ServerResponse{
128637			Header:         res.Header,
128638			HTTPStatusCode: res.StatusCode,
128639		},
128640	}
128641	target := &ret
128642	if err := gensupport.DecodeResponse(target, res); err != nil {
128643		return nil, err
128644	}
128645	return ret, nil
128646	// {
128647	//   "description": "Retrieves the list of SslCertificate resources available to the specified project in the specified region.",
128648	//   "httpMethod": "GET",
128649	//   "id": "compute.regionSslCertificates.list",
128650	//   "parameterOrder": [
128651	//     "project",
128652	//     "region"
128653	//   ],
128654	//   "parameters": {
128655	//     "filter": {
128656	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
128657	//       "location": "query",
128658	//       "type": "string"
128659	//     },
128660	//     "maxResults": {
128661	//       "default": "500",
128662	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
128663	//       "format": "uint32",
128664	//       "location": "query",
128665	//       "minimum": "0",
128666	//       "type": "integer"
128667	//     },
128668	//     "orderBy": {
128669	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
128670	//       "location": "query",
128671	//       "type": "string"
128672	//     },
128673	//     "pageToken": {
128674	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
128675	//       "location": "query",
128676	//       "type": "string"
128677	//     },
128678	//     "project": {
128679	//       "description": "Project ID for this request.",
128680	//       "location": "path",
128681	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128682	//       "required": true,
128683	//       "type": "string"
128684	//     },
128685	//     "region": {
128686	//       "description": "Name of the region scoping this request.",
128687	//       "location": "path",
128688	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
128689	//       "required": true,
128690	//       "type": "string"
128691	//     },
128692	//     "returnPartialSuccess": {
128693	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
128694	//       "location": "query",
128695	//       "type": "boolean"
128696	//     }
128697	//   },
128698	//   "path": "projects/{project}/regions/{region}/sslCertificates",
128699	//   "response": {
128700	//     "$ref": "SslCertificateList"
128701	//   },
128702	//   "scopes": [
128703	//     "https://www.googleapis.com/auth/cloud-platform",
128704	//     "https://www.googleapis.com/auth/compute",
128705	//     "https://www.googleapis.com/auth/compute.readonly"
128706	//   ]
128707	// }
128708
128709}
128710
128711// Pages invokes f for each page of results.
128712// A non-nil error returned from f will halt the iteration.
128713// The provided context supersedes any context provided to the Context method.
128714func (c *RegionSslCertificatesListCall) Pages(ctx context.Context, f func(*SslCertificateList) error) error {
128715	c.ctx_ = ctx
128716	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
128717	for {
128718		x, err := c.Do()
128719		if err != nil {
128720			return err
128721		}
128722		if err := f(x); err != nil {
128723			return err
128724		}
128725		if x.NextPageToken == "" {
128726			return nil
128727		}
128728		c.PageToken(x.NextPageToken)
128729	}
128730}
128731
128732// method id "compute.regionTargetHttpProxies.delete":
128733
128734type RegionTargetHttpProxiesDeleteCall struct {
128735	s               *Service
128736	project         string
128737	region          string
128738	targetHttpProxy string
128739	urlParams_      gensupport.URLParams
128740	ctx_            context.Context
128741	header_         http.Header
128742}
128743
128744// Delete: Deletes the specified TargetHttpProxy resource.
128745//
128746// - project: Project ID for this request.
128747// - region: Name of the region scoping this request.
128748// - targetHttpProxy: Name of the TargetHttpProxy resource to delete.
128749func (r *RegionTargetHttpProxiesService) Delete(project string, region string, targetHttpProxy string) *RegionTargetHttpProxiesDeleteCall {
128750	c := &RegionTargetHttpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128751	c.project = project
128752	c.region = region
128753	c.targetHttpProxy = targetHttpProxy
128754	return c
128755}
128756
128757// RequestId sets the optional parameter "requestId": An optional
128758// request ID to identify requests. Specify a unique request ID so that
128759// if you must retry your request, the server will know to ignore the
128760// request if it has already been completed.
128761//
128762// For example, consider a situation where you make an initial request
128763// and the request times out. If you make the request again with the
128764// same request ID, the server can check if original operation with the
128765// same request ID was received, and if so, will ignore the second
128766// request. This prevents clients from accidentally creating duplicate
128767// commitments.
128768//
128769// The request ID must be a valid UUID with the exception that zero UUID
128770// is not supported (00000000-0000-0000-0000-000000000000).
128771func (c *RegionTargetHttpProxiesDeleteCall) RequestId(requestId string) *RegionTargetHttpProxiesDeleteCall {
128772	c.urlParams_.Set("requestId", requestId)
128773	return c
128774}
128775
128776// Fields allows partial responses to be retrieved. See
128777// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128778// for more information.
128779func (c *RegionTargetHttpProxiesDeleteCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesDeleteCall {
128780	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128781	return c
128782}
128783
128784// Context sets the context to be used in this call's Do method. Any
128785// pending HTTP request will be aborted if the provided context is
128786// canceled.
128787func (c *RegionTargetHttpProxiesDeleteCall) Context(ctx context.Context) *RegionTargetHttpProxiesDeleteCall {
128788	c.ctx_ = ctx
128789	return c
128790}
128791
128792// Header returns an http.Header that can be modified by the caller to
128793// add HTTP headers to the request.
128794func (c *RegionTargetHttpProxiesDeleteCall) Header() http.Header {
128795	if c.header_ == nil {
128796		c.header_ = make(http.Header)
128797	}
128798	return c.header_
128799}
128800
128801func (c *RegionTargetHttpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
128802	reqHeaders := make(http.Header)
128803	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
128804	for k, v := range c.header_ {
128805		reqHeaders[k] = v
128806	}
128807	reqHeaders.Set("User-Agent", c.s.userAgent())
128808	var body io.Reader = nil
128809	c.urlParams_.Set("alt", alt)
128810	c.urlParams_.Set("prettyPrint", "false")
128811	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}")
128812	urls += "?" + c.urlParams_.Encode()
128813	req, err := http.NewRequest("DELETE", urls, body)
128814	if err != nil {
128815		return nil, err
128816	}
128817	req.Header = reqHeaders
128818	googleapi.Expand(req.URL, map[string]string{
128819		"project":         c.project,
128820		"region":          c.region,
128821		"targetHttpProxy": c.targetHttpProxy,
128822	})
128823	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128824}
128825
128826// Do executes the "compute.regionTargetHttpProxies.delete" call.
128827// Exactly one of *Operation or error will be non-nil. Any non-2xx
128828// status code is an error. Response headers are in either
128829// *Operation.ServerResponse.Header or (if a response was returned at
128830// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
128831// to check whether the returned error was because
128832// http.StatusNotModified was returned.
128833func (c *RegionTargetHttpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
128834	gensupport.SetOptions(c.urlParams_, opts...)
128835	res, err := c.doRequest("json")
128836	if res != nil && res.StatusCode == http.StatusNotModified {
128837		if res.Body != nil {
128838			res.Body.Close()
128839		}
128840		return nil, &googleapi.Error{
128841			Code:   res.StatusCode,
128842			Header: res.Header,
128843		}
128844	}
128845	if err != nil {
128846		return nil, err
128847	}
128848	defer googleapi.CloseBody(res)
128849	if err := googleapi.CheckResponse(res); err != nil {
128850		return nil, err
128851	}
128852	ret := &Operation{
128853		ServerResponse: googleapi.ServerResponse{
128854			Header:         res.Header,
128855			HTTPStatusCode: res.StatusCode,
128856		},
128857	}
128858	target := &ret
128859	if err := gensupport.DecodeResponse(target, res); err != nil {
128860		return nil, err
128861	}
128862	return ret, nil
128863	// {
128864	//   "description": "Deletes the specified TargetHttpProxy resource.",
128865	//   "httpMethod": "DELETE",
128866	//   "id": "compute.regionTargetHttpProxies.delete",
128867	//   "parameterOrder": [
128868	//     "project",
128869	//     "region",
128870	//     "targetHttpProxy"
128871	//   ],
128872	//   "parameters": {
128873	//     "project": {
128874	//       "description": "Project ID for this request.",
128875	//       "location": "path",
128876	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128877	//       "required": true,
128878	//       "type": "string"
128879	//     },
128880	//     "region": {
128881	//       "description": "Name of the region scoping this request.",
128882	//       "location": "path",
128883	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
128884	//       "required": true,
128885	//       "type": "string"
128886	//     },
128887	//     "requestId": {
128888	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
128889	//       "location": "query",
128890	//       "type": "string"
128891	//     },
128892	//     "targetHttpProxy": {
128893	//       "description": "Name of the TargetHttpProxy resource to delete.",
128894	//       "location": "path",
128895	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
128896	//       "required": true,
128897	//       "type": "string"
128898	//     }
128899	//   },
128900	//   "path": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}",
128901	//   "response": {
128902	//     "$ref": "Operation"
128903	//   },
128904	//   "scopes": [
128905	//     "https://www.googleapis.com/auth/cloud-platform",
128906	//     "https://www.googleapis.com/auth/compute"
128907	//   ]
128908	// }
128909
128910}
128911
128912// method id "compute.regionTargetHttpProxies.get":
128913
128914type RegionTargetHttpProxiesGetCall struct {
128915	s               *Service
128916	project         string
128917	region          string
128918	targetHttpProxy string
128919	urlParams_      gensupport.URLParams
128920	ifNoneMatch_    string
128921	ctx_            context.Context
128922	header_         http.Header
128923}
128924
128925// Get: Returns the specified TargetHttpProxy resource in the specified
128926// region. Gets a list of available target HTTP proxies by making a
128927// list() request.
128928//
128929// - project: Project ID for this request.
128930// - region: Name of the region scoping this request.
128931// - targetHttpProxy: Name of the TargetHttpProxy resource to return.
128932func (r *RegionTargetHttpProxiesService) Get(project string, region string, targetHttpProxy string) *RegionTargetHttpProxiesGetCall {
128933	c := &RegionTargetHttpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128934	c.project = project
128935	c.region = region
128936	c.targetHttpProxy = targetHttpProxy
128937	return c
128938}
128939
128940// Fields allows partial responses to be retrieved. See
128941// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128942// for more information.
128943func (c *RegionTargetHttpProxiesGetCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesGetCall {
128944	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128945	return c
128946}
128947
128948// IfNoneMatch sets the optional parameter which makes the operation
128949// fail if the object's ETag matches the given value. This is useful for
128950// getting updates only after the object has changed since the last
128951// request. Use googleapi.IsNotModified to check whether the response
128952// error from Do is the result of In-None-Match.
128953func (c *RegionTargetHttpProxiesGetCall) IfNoneMatch(entityTag string) *RegionTargetHttpProxiesGetCall {
128954	c.ifNoneMatch_ = entityTag
128955	return c
128956}
128957
128958// Context sets the context to be used in this call's Do method. Any
128959// pending HTTP request will be aborted if the provided context is
128960// canceled.
128961func (c *RegionTargetHttpProxiesGetCall) Context(ctx context.Context) *RegionTargetHttpProxiesGetCall {
128962	c.ctx_ = ctx
128963	return c
128964}
128965
128966// Header returns an http.Header that can be modified by the caller to
128967// add HTTP headers to the request.
128968func (c *RegionTargetHttpProxiesGetCall) Header() http.Header {
128969	if c.header_ == nil {
128970		c.header_ = make(http.Header)
128971	}
128972	return c.header_
128973}
128974
128975func (c *RegionTargetHttpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
128976	reqHeaders := make(http.Header)
128977	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
128978	for k, v := range c.header_ {
128979		reqHeaders[k] = v
128980	}
128981	reqHeaders.Set("User-Agent", c.s.userAgent())
128982	if c.ifNoneMatch_ != "" {
128983		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
128984	}
128985	var body io.Reader = nil
128986	c.urlParams_.Set("alt", alt)
128987	c.urlParams_.Set("prettyPrint", "false")
128988	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}")
128989	urls += "?" + c.urlParams_.Encode()
128990	req, err := http.NewRequest("GET", urls, body)
128991	if err != nil {
128992		return nil, err
128993	}
128994	req.Header = reqHeaders
128995	googleapi.Expand(req.URL, map[string]string{
128996		"project":         c.project,
128997		"region":          c.region,
128998		"targetHttpProxy": c.targetHttpProxy,
128999	})
129000	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129001}
129002
129003// Do executes the "compute.regionTargetHttpProxies.get" call.
129004// Exactly one of *TargetHttpProxy or error will be non-nil. Any non-2xx
129005// status code is an error. Response headers are in either
129006// *TargetHttpProxy.ServerResponse.Header or (if a response was returned
129007// at all) in error.(*googleapi.Error).Header. Use
129008// googleapi.IsNotModified to check whether the returned error was
129009// because http.StatusNotModified was returned.
129010func (c *RegionTargetHttpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxy, error) {
129011	gensupport.SetOptions(c.urlParams_, opts...)
129012	res, err := c.doRequest("json")
129013	if res != nil && res.StatusCode == http.StatusNotModified {
129014		if res.Body != nil {
129015			res.Body.Close()
129016		}
129017		return nil, &googleapi.Error{
129018			Code:   res.StatusCode,
129019			Header: res.Header,
129020		}
129021	}
129022	if err != nil {
129023		return nil, err
129024	}
129025	defer googleapi.CloseBody(res)
129026	if err := googleapi.CheckResponse(res); err != nil {
129027		return nil, err
129028	}
129029	ret := &TargetHttpProxy{
129030		ServerResponse: googleapi.ServerResponse{
129031			Header:         res.Header,
129032			HTTPStatusCode: res.StatusCode,
129033		},
129034	}
129035	target := &ret
129036	if err := gensupport.DecodeResponse(target, res); err != nil {
129037		return nil, err
129038	}
129039	return ret, nil
129040	// {
129041	//   "description": "Returns the specified TargetHttpProxy resource in the specified region. Gets a list of available target HTTP proxies by making a list() request.",
129042	//   "httpMethod": "GET",
129043	//   "id": "compute.regionTargetHttpProxies.get",
129044	//   "parameterOrder": [
129045	//     "project",
129046	//     "region",
129047	//     "targetHttpProxy"
129048	//   ],
129049	//   "parameters": {
129050	//     "project": {
129051	//       "description": "Project ID for this request.",
129052	//       "location": "path",
129053	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129054	//       "required": true,
129055	//       "type": "string"
129056	//     },
129057	//     "region": {
129058	//       "description": "Name of the region scoping this request.",
129059	//       "location": "path",
129060	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
129061	//       "required": true,
129062	//       "type": "string"
129063	//     },
129064	//     "targetHttpProxy": {
129065	//       "description": "Name of the TargetHttpProxy resource to return.",
129066	//       "location": "path",
129067	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
129068	//       "required": true,
129069	//       "type": "string"
129070	//     }
129071	//   },
129072	//   "path": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}",
129073	//   "response": {
129074	//     "$ref": "TargetHttpProxy"
129075	//   },
129076	//   "scopes": [
129077	//     "https://www.googleapis.com/auth/cloud-platform",
129078	//     "https://www.googleapis.com/auth/compute",
129079	//     "https://www.googleapis.com/auth/compute.readonly"
129080	//   ]
129081	// }
129082
129083}
129084
129085// method id "compute.regionTargetHttpProxies.insert":
129086
129087type RegionTargetHttpProxiesInsertCall struct {
129088	s               *Service
129089	project         string
129090	region          string
129091	targethttpproxy *TargetHttpProxy
129092	urlParams_      gensupport.URLParams
129093	ctx_            context.Context
129094	header_         http.Header
129095}
129096
129097// Insert: Creates a TargetHttpProxy resource in the specified project
129098// and region using the data included in the request.
129099//
129100// - project: Project ID for this request.
129101// - region: Name of the region scoping this request.
129102func (r *RegionTargetHttpProxiesService) Insert(project string, region string, targethttpproxy *TargetHttpProxy) *RegionTargetHttpProxiesInsertCall {
129103	c := &RegionTargetHttpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129104	c.project = project
129105	c.region = region
129106	c.targethttpproxy = targethttpproxy
129107	return c
129108}
129109
129110// RequestId sets the optional parameter "requestId": An optional
129111// request ID to identify requests. Specify a unique request ID so that
129112// if you must retry your request, the server will know to ignore the
129113// request if it has already been completed.
129114//
129115// For example, consider a situation where you make an initial request
129116// and the request times out. If you make the request again with the
129117// same request ID, the server can check if original operation with the
129118// same request ID was received, and if so, will ignore the second
129119// request. This prevents clients from accidentally creating duplicate
129120// commitments.
129121//
129122// The request ID must be a valid UUID with the exception that zero UUID
129123// is not supported (00000000-0000-0000-0000-000000000000).
129124func (c *RegionTargetHttpProxiesInsertCall) RequestId(requestId string) *RegionTargetHttpProxiesInsertCall {
129125	c.urlParams_.Set("requestId", requestId)
129126	return c
129127}
129128
129129// Fields allows partial responses to be retrieved. See
129130// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129131// for more information.
129132func (c *RegionTargetHttpProxiesInsertCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesInsertCall {
129133	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129134	return c
129135}
129136
129137// Context sets the context to be used in this call's Do method. Any
129138// pending HTTP request will be aborted if the provided context is
129139// canceled.
129140func (c *RegionTargetHttpProxiesInsertCall) Context(ctx context.Context) *RegionTargetHttpProxiesInsertCall {
129141	c.ctx_ = ctx
129142	return c
129143}
129144
129145// Header returns an http.Header that can be modified by the caller to
129146// add HTTP headers to the request.
129147func (c *RegionTargetHttpProxiesInsertCall) Header() http.Header {
129148	if c.header_ == nil {
129149		c.header_ = make(http.Header)
129150	}
129151	return c.header_
129152}
129153
129154func (c *RegionTargetHttpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
129155	reqHeaders := make(http.Header)
129156	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
129157	for k, v := range c.header_ {
129158		reqHeaders[k] = v
129159	}
129160	reqHeaders.Set("User-Agent", c.s.userAgent())
129161	var body io.Reader = nil
129162	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpproxy)
129163	if err != nil {
129164		return nil, err
129165	}
129166	reqHeaders.Set("Content-Type", "application/json")
129167	c.urlParams_.Set("alt", alt)
129168	c.urlParams_.Set("prettyPrint", "false")
129169	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpProxies")
129170	urls += "?" + c.urlParams_.Encode()
129171	req, err := http.NewRequest("POST", urls, body)
129172	if err != nil {
129173		return nil, err
129174	}
129175	req.Header = reqHeaders
129176	googleapi.Expand(req.URL, map[string]string{
129177		"project": c.project,
129178		"region":  c.region,
129179	})
129180	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129181}
129182
129183// Do executes the "compute.regionTargetHttpProxies.insert" call.
129184// Exactly one of *Operation or error will be non-nil. Any non-2xx
129185// status code is an error. Response headers are in either
129186// *Operation.ServerResponse.Header or (if a response was returned at
129187// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
129188// to check whether the returned error was because
129189// http.StatusNotModified was returned.
129190func (c *RegionTargetHttpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
129191	gensupport.SetOptions(c.urlParams_, opts...)
129192	res, err := c.doRequest("json")
129193	if res != nil && res.StatusCode == http.StatusNotModified {
129194		if res.Body != nil {
129195			res.Body.Close()
129196		}
129197		return nil, &googleapi.Error{
129198			Code:   res.StatusCode,
129199			Header: res.Header,
129200		}
129201	}
129202	if err != nil {
129203		return nil, err
129204	}
129205	defer googleapi.CloseBody(res)
129206	if err := googleapi.CheckResponse(res); err != nil {
129207		return nil, err
129208	}
129209	ret := &Operation{
129210		ServerResponse: googleapi.ServerResponse{
129211			Header:         res.Header,
129212			HTTPStatusCode: res.StatusCode,
129213		},
129214	}
129215	target := &ret
129216	if err := gensupport.DecodeResponse(target, res); err != nil {
129217		return nil, err
129218	}
129219	return ret, nil
129220	// {
129221	//   "description": "Creates a TargetHttpProxy resource in the specified project and region using the data included in the request.",
129222	//   "httpMethod": "POST",
129223	//   "id": "compute.regionTargetHttpProxies.insert",
129224	//   "parameterOrder": [
129225	//     "project",
129226	//     "region"
129227	//   ],
129228	//   "parameters": {
129229	//     "project": {
129230	//       "description": "Project ID for this request.",
129231	//       "location": "path",
129232	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129233	//       "required": true,
129234	//       "type": "string"
129235	//     },
129236	//     "region": {
129237	//       "description": "Name of the region scoping this request.",
129238	//       "location": "path",
129239	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
129240	//       "required": true,
129241	//       "type": "string"
129242	//     },
129243	//     "requestId": {
129244	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
129245	//       "location": "query",
129246	//       "type": "string"
129247	//     }
129248	//   },
129249	//   "path": "projects/{project}/regions/{region}/targetHttpProxies",
129250	//   "request": {
129251	//     "$ref": "TargetHttpProxy"
129252	//   },
129253	//   "response": {
129254	//     "$ref": "Operation"
129255	//   },
129256	//   "scopes": [
129257	//     "https://www.googleapis.com/auth/cloud-platform",
129258	//     "https://www.googleapis.com/auth/compute"
129259	//   ]
129260	// }
129261
129262}
129263
129264// method id "compute.regionTargetHttpProxies.list":
129265
129266type RegionTargetHttpProxiesListCall struct {
129267	s            *Service
129268	project      string
129269	region       string
129270	urlParams_   gensupport.URLParams
129271	ifNoneMatch_ string
129272	ctx_         context.Context
129273	header_      http.Header
129274}
129275
129276// List: Retrieves the list of TargetHttpProxy resources available to
129277// the specified project in the specified region.
129278//
129279// - project: Project ID for this request.
129280// - region: Name of the region scoping this request.
129281func (r *RegionTargetHttpProxiesService) List(project string, region string) *RegionTargetHttpProxiesListCall {
129282	c := &RegionTargetHttpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129283	c.project = project
129284	c.region = region
129285	return c
129286}
129287
129288// Filter sets the optional parameter "filter": A filter expression that
129289// filters resources listed in the response. The expression must specify
129290// the field name, a comparison operator, and the value that you want to
129291// use for filtering. The value must be a string, a number, or a
129292// boolean. The comparison operator must be either `=`, `!=`, `>`, or
129293// `<`.
129294//
129295// For example, if you are filtering Compute Engine instances, you can
129296// exclude instances named `example-instance` by specifying `name !=
129297// example-instance`.
129298//
129299// You can also filter nested fields. For example, you could specify
129300// `scheduling.automaticRestart = false` to include instances only if
129301// they are not scheduled for automatic restarts. You can use filtering
129302// on nested fields to filter based on resource labels.
129303//
129304// To filter on multiple expressions, provide each separate expression
129305// within parentheses. For example: ``` (scheduling.automaticRestart =
129306// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
129307// is an `AND` expression. However, you can include `AND` and `OR`
129308// expressions explicitly. For example: ``` (cpuPlatform = "Intel
129309// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
129310// (scheduling.automaticRestart = true) ```
129311func (c *RegionTargetHttpProxiesListCall) Filter(filter string) *RegionTargetHttpProxiesListCall {
129312	c.urlParams_.Set("filter", filter)
129313	return c
129314}
129315
129316// MaxResults sets the optional parameter "maxResults": The maximum
129317// number of results per page that should be returned. If the number of
129318// available results is larger than `maxResults`, Compute Engine returns
129319// a `nextPageToken` that can be used to get the next page of results in
129320// subsequent list requests. Acceptable values are `0` to `500`,
129321// inclusive. (Default: `500`)
129322func (c *RegionTargetHttpProxiesListCall) MaxResults(maxResults int64) *RegionTargetHttpProxiesListCall {
129323	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
129324	return c
129325}
129326
129327// OrderBy sets the optional parameter "orderBy": Sorts list results by
129328// a certain order. By default, results are returned in alphanumerical
129329// order based on the resource name.
129330//
129331// You can also sort results in descending order based on the creation
129332// timestamp using `orderBy="creationTimestamp desc". This sorts
129333// results based on the `creationTimestamp` field in reverse
129334// chronological order (newest result first). Use this to sort resources
129335// like operations so that the newest operation is returned
129336// first.
129337//
129338// Currently, only sorting by `name` or `creationTimestamp desc` is
129339// supported.
129340func (c *RegionTargetHttpProxiesListCall) OrderBy(orderBy string) *RegionTargetHttpProxiesListCall {
129341	c.urlParams_.Set("orderBy", orderBy)
129342	return c
129343}
129344
129345// PageToken sets the optional parameter "pageToken": Specifies a page
129346// token to use. Set `pageToken` to the `nextPageToken` returned by a
129347// previous list request to get the next page of results.
129348func (c *RegionTargetHttpProxiesListCall) PageToken(pageToken string) *RegionTargetHttpProxiesListCall {
129349	c.urlParams_.Set("pageToken", pageToken)
129350	return c
129351}
129352
129353// ReturnPartialSuccess sets the optional parameter
129354// "returnPartialSuccess": Opt-in for partial success behavior which
129355// provides partial results in case of failure. The default value is
129356// false.
129357func (c *RegionTargetHttpProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionTargetHttpProxiesListCall {
129358	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
129359	return c
129360}
129361
129362// Fields allows partial responses to be retrieved. See
129363// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129364// for more information.
129365func (c *RegionTargetHttpProxiesListCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesListCall {
129366	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129367	return c
129368}
129369
129370// IfNoneMatch sets the optional parameter which makes the operation
129371// fail if the object's ETag matches the given value. This is useful for
129372// getting updates only after the object has changed since the last
129373// request. Use googleapi.IsNotModified to check whether the response
129374// error from Do is the result of In-None-Match.
129375func (c *RegionTargetHttpProxiesListCall) IfNoneMatch(entityTag string) *RegionTargetHttpProxiesListCall {
129376	c.ifNoneMatch_ = entityTag
129377	return c
129378}
129379
129380// Context sets the context to be used in this call's Do method. Any
129381// pending HTTP request will be aborted if the provided context is
129382// canceled.
129383func (c *RegionTargetHttpProxiesListCall) Context(ctx context.Context) *RegionTargetHttpProxiesListCall {
129384	c.ctx_ = ctx
129385	return c
129386}
129387
129388// Header returns an http.Header that can be modified by the caller to
129389// add HTTP headers to the request.
129390func (c *RegionTargetHttpProxiesListCall) Header() http.Header {
129391	if c.header_ == nil {
129392		c.header_ = make(http.Header)
129393	}
129394	return c.header_
129395}
129396
129397func (c *RegionTargetHttpProxiesListCall) doRequest(alt string) (*http.Response, error) {
129398	reqHeaders := make(http.Header)
129399	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
129400	for k, v := range c.header_ {
129401		reqHeaders[k] = v
129402	}
129403	reqHeaders.Set("User-Agent", c.s.userAgent())
129404	if c.ifNoneMatch_ != "" {
129405		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
129406	}
129407	var body io.Reader = nil
129408	c.urlParams_.Set("alt", alt)
129409	c.urlParams_.Set("prettyPrint", "false")
129410	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpProxies")
129411	urls += "?" + c.urlParams_.Encode()
129412	req, err := http.NewRequest("GET", urls, body)
129413	if err != nil {
129414		return nil, err
129415	}
129416	req.Header = reqHeaders
129417	googleapi.Expand(req.URL, map[string]string{
129418		"project": c.project,
129419		"region":  c.region,
129420	})
129421	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129422}
129423
129424// Do executes the "compute.regionTargetHttpProxies.list" call.
129425// Exactly one of *TargetHttpProxyList or error will be non-nil. Any
129426// non-2xx status code is an error. Response headers are in either
129427// *TargetHttpProxyList.ServerResponse.Header or (if a response was
129428// returned at all) in error.(*googleapi.Error).Header. Use
129429// googleapi.IsNotModified to check whether the returned error was
129430// because http.StatusNotModified was returned.
129431func (c *RegionTargetHttpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyList, error) {
129432	gensupport.SetOptions(c.urlParams_, opts...)
129433	res, err := c.doRequest("json")
129434	if res != nil && res.StatusCode == http.StatusNotModified {
129435		if res.Body != nil {
129436			res.Body.Close()
129437		}
129438		return nil, &googleapi.Error{
129439			Code:   res.StatusCode,
129440			Header: res.Header,
129441		}
129442	}
129443	if err != nil {
129444		return nil, err
129445	}
129446	defer googleapi.CloseBody(res)
129447	if err := googleapi.CheckResponse(res); err != nil {
129448		return nil, err
129449	}
129450	ret := &TargetHttpProxyList{
129451		ServerResponse: googleapi.ServerResponse{
129452			Header:         res.Header,
129453			HTTPStatusCode: res.StatusCode,
129454		},
129455	}
129456	target := &ret
129457	if err := gensupport.DecodeResponse(target, res); err != nil {
129458		return nil, err
129459	}
129460	return ret, nil
129461	// {
129462	//   "description": "Retrieves the list of TargetHttpProxy resources available to the specified project in the specified region.",
129463	//   "httpMethod": "GET",
129464	//   "id": "compute.regionTargetHttpProxies.list",
129465	//   "parameterOrder": [
129466	//     "project",
129467	//     "region"
129468	//   ],
129469	//   "parameters": {
129470	//     "filter": {
129471	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
129472	//       "location": "query",
129473	//       "type": "string"
129474	//     },
129475	//     "maxResults": {
129476	//       "default": "500",
129477	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
129478	//       "format": "uint32",
129479	//       "location": "query",
129480	//       "minimum": "0",
129481	//       "type": "integer"
129482	//     },
129483	//     "orderBy": {
129484	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
129485	//       "location": "query",
129486	//       "type": "string"
129487	//     },
129488	//     "pageToken": {
129489	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
129490	//       "location": "query",
129491	//       "type": "string"
129492	//     },
129493	//     "project": {
129494	//       "description": "Project ID for this request.",
129495	//       "location": "path",
129496	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129497	//       "required": true,
129498	//       "type": "string"
129499	//     },
129500	//     "region": {
129501	//       "description": "Name of the region scoping this request.",
129502	//       "location": "path",
129503	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
129504	//       "required": true,
129505	//       "type": "string"
129506	//     },
129507	//     "returnPartialSuccess": {
129508	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
129509	//       "location": "query",
129510	//       "type": "boolean"
129511	//     }
129512	//   },
129513	//   "path": "projects/{project}/regions/{region}/targetHttpProxies",
129514	//   "response": {
129515	//     "$ref": "TargetHttpProxyList"
129516	//   },
129517	//   "scopes": [
129518	//     "https://www.googleapis.com/auth/cloud-platform",
129519	//     "https://www.googleapis.com/auth/compute",
129520	//     "https://www.googleapis.com/auth/compute.readonly"
129521	//   ]
129522	// }
129523
129524}
129525
129526// Pages invokes f for each page of results.
129527// A non-nil error returned from f will halt the iteration.
129528// The provided context supersedes any context provided to the Context method.
129529func (c *RegionTargetHttpProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpProxyList) error) error {
129530	c.ctx_ = ctx
129531	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
129532	for {
129533		x, err := c.Do()
129534		if err != nil {
129535			return err
129536		}
129537		if err := f(x); err != nil {
129538			return err
129539		}
129540		if x.NextPageToken == "" {
129541			return nil
129542		}
129543		c.PageToken(x.NextPageToken)
129544	}
129545}
129546
129547// method id "compute.regionTargetHttpProxies.setUrlMap":
129548
129549type RegionTargetHttpProxiesSetUrlMapCall struct {
129550	s               *Service
129551	project         string
129552	region          string
129553	targetHttpProxy string
129554	urlmapreference *UrlMapReference
129555	urlParams_      gensupport.URLParams
129556	ctx_            context.Context
129557	header_         http.Header
129558}
129559
129560// SetUrlMap: Changes the URL map for TargetHttpProxy.
129561//
129562// - project: Project ID for this request.
129563// - region: Name of the region scoping this request.
129564// - targetHttpProxy: Name of the TargetHttpProxy to set a URL map for.
129565func (r *RegionTargetHttpProxiesService) SetUrlMap(project string, region string, targetHttpProxy string, urlmapreference *UrlMapReference) *RegionTargetHttpProxiesSetUrlMapCall {
129566	c := &RegionTargetHttpProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129567	c.project = project
129568	c.region = region
129569	c.targetHttpProxy = targetHttpProxy
129570	c.urlmapreference = urlmapreference
129571	return c
129572}
129573
129574// RequestId sets the optional parameter "requestId": An optional
129575// request ID to identify requests. Specify a unique request ID so that
129576// if you must retry your request, the server will know to ignore the
129577// request if it has already been completed.
129578//
129579// For example, consider a situation where you make an initial request
129580// and the request times out. If you make the request again with the
129581// same request ID, the server can check if original operation with the
129582// same request ID was received, and if so, will ignore the second
129583// request. This prevents clients from accidentally creating duplicate
129584// commitments.
129585//
129586// The request ID must be a valid UUID with the exception that zero UUID
129587// is not supported (00000000-0000-0000-0000-000000000000).
129588func (c *RegionTargetHttpProxiesSetUrlMapCall) RequestId(requestId string) *RegionTargetHttpProxiesSetUrlMapCall {
129589	c.urlParams_.Set("requestId", requestId)
129590	return c
129591}
129592
129593// Fields allows partial responses to be retrieved. See
129594// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129595// for more information.
129596func (c *RegionTargetHttpProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesSetUrlMapCall {
129597	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129598	return c
129599}
129600
129601// Context sets the context to be used in this call's Do method. Any
129602// pending HTTP request will be aborted if the provided context is
129603// canceled.
129604func (c *RegionTargetHttpProxiesSetUrlMapCall) Context(ctx context.Context) *RegionTargetHttpProxiesSetUrlMapCall {
129605	c.ctx_ = ctx
129606	return c
129607}
129608
129609// Header returns an http.Header that can be modified by the caller to
129610// add HTTP headers to the request.
129611func (c *RegionTargetHttpProxiesSetUrlMapCall) Header() http.Header {
129612	if c.header_ == nil {
129613		c.header_ = make(http.Header)
129614	}
129615	return c.header_
129616}
129617
129618func (c *RegionTargetHttpProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
129619	reqHeaders := make(http.Header)
129620	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
129621	for k, v := range c.header_ {
129622		reqHeaders[k] = v
129623	}
129624	reqHeaders.Set("User-Agent", c.s.userAgent())
129625	var body io.Reader = nil
129626	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
129627	if err != nil {
129628		return nil, err
129629	}
129630	reqHeaders.Set("Content-Type", "application/json")
129631	c.urlParams_.Set("alt", alt)
129632	c.urlParams_.Set("prettyPrint", "false")
129633	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap")
129634	urls += "?" + c.urlParams_.Encode()
129635	req, err := http.NewRequest("POST", urls, body)
129636	if err != nil {
129637		return nil, err
129638	}
129639	req.Header = reqHeaders
129640	googleapi.Expand(req.URL, map[string]string{
129641		"project":         c.project,
129642		"region":          c.region,
129643		"targetHttpProxy": c.targetHttpProxy,
129644	})
129645	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129646}
129647
129648// Do executes the "compute.regionTargetHttpProxies.setUrlMap" call.
129649// Exactly one of *Operation or error will be non-nil. Any non-2xx
129650// status code is an error. Response headers are in either
129651// *Operation.ServerResponse.Header or (if a response was returned at
129652// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
129653// to check whether the returned error was because
129654// http.StatusNotModified was returned.
129655func (c *RegionTargetHttpProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
129656	gensupport.SetOptions(c.urlParams_, opts...)
129657	res, err := c.doRequest("json")
129658	if res != nil && res.StatusCode == http.StatusNotModified {
129659		if res.Body != nil {
129660			res.Body.Close()
129661		}
129662		return nil, &googleapi.Error{
129663			Code:   res.StatusCode,
129664			Header: res.Header,
129665		}
129666	}
129667	if err != nil {
129668		return nil, err
129669	}
129670	defer googleapi.CloseBody(res)
129671	if err := googleapi.CheckResponse(res); err != nil {
129672		return nil, err
129673	}
129674	ret := &Operation{
129675		ServerResponse: googleapi.ServerResponse{
129676			Header:         res.Header,
129677			HTTPStatusCode: res.StatusCode,
129678		},
129679	}
129680	target := &ret
129681	if err := gensupport.DecodeResponse(target, res); err != nil {
129682		return nil, err
129683	}
129684	return ret, nil
129685	// {
129686	//   "description": "Changes the URL map for TargetHttpProxy.",
129687	//   "httpMethod": "POST",
129688	//   "id": "compute.regionTargetHttpProxies.setUrlMap",
129689	//   "parameterOrder": [
129690	//     "project",
129691	//     "region",
129692	//     "targetHttpProxy"
129693	//   ],
129694	//   "parameters": {
129695	//     "project": {
129696	//       "description": "Project ID for this request.",
129697	//       "location": "path",
129698	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129699	//       "required": true,
129700	//       "type": "string"
129701	//     },
129702	//     "region": {
129703	//       "description": "Name of the region scoping this request.",
129704	//       "location": "path",
129705	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
129706	//       "required": true,
129707	//       "type": "string"
129708	//     },
129709	//     "requestId": {
129710	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
129711	//       "location": "query",
129712	//       "type": "string"
129713	//     },
129714	//     "targetHttpProxy": {
129715	//       "description": "Name of the TargetHttpProxy to set a URL map for.",
129716	//       "location": "path",
129717	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
129718	//       "required": true,
129719	//       "type": "string"
129720	//     }
129721	//   },
129722	//   "path": "projects/{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap",
129723	//   "request": {
129724	//     "$ref": "UrlMapReference"
129725	//   },
129726	//   "response": {
129727	//     "$ref": "Operation"
129728	//   },
129729	//   "scopes": [
129730	//     "https://www.googleapis.com/auth/cloud-platform",
129731	//     "https://www.googleapis.com/auth/compute"
129732	//   ]
129733	// }
129734
129735}
129736
129737// method id "compute.regionTargetHttpsProxies.delete":
129738
129739type RegionTargetHttpsProxiesDeleteCall struct {
129740	s                *Service
129741	project          string
129742	region           string
129743	targetHttpsProxy string
129744	urlParams_       gensupport.URLParams
129745	ctx_             context.Context
129746	header_          http.Header
129747}
129748
129749// Delete: Deletes the specified TargetHttpsProxy resource.
129750//
129751// - project: Project ID for this request.
129752// - region: Name of the region scoping this request.
129753// - targetHttpsProxy: Name of the TargetHttpsProxy resource to delete.
129754func (r *RegionTargetHttpsProxiesService) Delete(project string, region string, targetHttpsProxy string) *RegionTargetHttpsProxiesDeleteCall {
129755	c := &RegionTargetHttpsProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129756	c.project = project
129757	c.region = region
129758	c.targetHttpsProxy = targetHttpsProxy
129759	return c
129760}
129761
129762// RequestId sets the optional parameter "requestId": An optional
129763// request ID to identify requests. Specify a unique request ID so that
129764// if you must retry your request, the server will know to ignore the
129765// request if it has already been completed.
129766//
129767// For example, consider a situation where you make an initial request
129768// and the request times out. If you make the request again with the
129769// same request ID, the server can check if original operation with the
129770// same request ID was received, and if so, will ignore the second
129771// request. This prevents clients from accidentally creating duplicate
129772// commitments.
129773//
129774// The request ID must be a valid UUID with the exception that zero UUID
129775// is not supported (00000000-0000-0000-0000-000000000000).
129776func (c *RegionTargetHttpsProxiesDeleteCall) RequestId(requestId string) *RegionTargetHttpsProxiesDeleteCall {
129777	c.urlParams_.Set("requestId", requestId)
129778	return c
129779}
129780
129781// Fields allows partial responses to be retrieved. See
129782// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129783// for more information.
129784func (c *RegionTargetHttpsProxiesDeleteCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesDeleteCall {
129785	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129786	return c
129787}
129788
129789// Context sets the context to be used in this call's Do method. Any
129790// pending HTTP request will be aborted if the provided context is
129791// canceled.
129792func (c *RegionTargetHttpsProxiesDeleteCall) Context(ctx context.Context) *RegionTargetHttpsProxiesDeleteCall {
129793	c.ctx_ = ctx
129794	return c
129795}
129796
129797// Header returns an http.Header that can be modified by the caller to
129798// add HTTP headers to the request.
129799func (c *RegionTargetHttpsProxiesDeleteCall) Header() http.Header {
129800	if c.header_ == nil {
129801		c.header_ = make(http.Header)
129802	}
129803	return c.header_
129804}
129805
129806func (c *RegionTargetHttpsProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
129807	reqHeaders := make(http.Header)
129808	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
129809	for k, v := range c.header_ {
129810		reqHeaders[k] = v
129811	}
129812	reqHeaders.Set("User-Agent", c.s.userAgent())
129813	var body io.Reader = nil
129814	c.urlParams_.Set("alt", alt)
129815	c.urlParams_.Set("prettyPrint", "false")
129816	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}")
129817	urls += "?" + c.urlParams_.Encode()
129818	req, err := http.NewRequest("DELETE", urls, body)
129819	if err != nil {
129820		return nil, err
129821	}
129822	req.Header = reqHeaders
129823	googleapi.Expand(req.URL, map[string]string{
129824		"project":          c.project,
129825		"region":           c.region,
129826		"targetHttpsProxy": c.targetHttpsProxy,
129827	})
129828	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129829}
129830
129831// Do executes the "compute.regionTargetHttpsProxies.delete" call.
129832// Exactly one of *Operation or error will be non-nil. Any non-2xx
129833// status code is an error. Response headers are in either
129834// *Operation.ServerResponse.Header or (if a response was returned at
129835// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
129836// to check whether the returned error was because
129837// http.StatusNotModified was returned.
129838func (c *RegionTargetHttpsProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
129839	gensupport.SetOptions(c.urlParams_, opts...)
129840	res, err := c.doRequest("json")
129841	if res != nil && res.StatusCode == http.StatusNotModified {
129842		if res.Body != nil {
129843			res.Body.Close()
129844		}
129845		return nil, &googleapi.Error{
129846			Code:   res.StatusCode,
129847			Header: res.Header,
129848		}
129849	}
129850	if err != nil {
129851		return nil, err
129852	}
129853	defer googleapi.CloseBody(res)
129854	if err := googleapi.CheckResponse(res); err != nil {
129855		return nil, err
129856	}
129857	ret := &Operation{
129858		ServerResponse: googleapi.ServerResponse{
129859			Header:         res.Header,
129860			HTTPStatusCode: res.StatusCode,
129861		},
129862	}
129863	target := &ret
129864	if err := gensupport.DecodeResponse(target, res); err != nil {
129865		return nil, err
129866	}
129867	return ret, nil
129868	// {
129869	//   "description": "Deletes the specified TargetHttpsProxy resource.",
129870	//   "httpMethod": "DELETE",
129871	//   "id": "compute.regionTargetHttpsProxies.delete",
129872	//   "parameterOrder": [
129873	//     "project",
129874	//     "region",
129875	//     "targetHttpsProxy"
129876	//   ],
129877	//   "parameters": {
129878	//     "project": {
129879	//       "description": "Project ID for this request.",
129880	//       "location": "path",
129881	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129882	//       "required": true,
129883	//       "type": "string"
129884	//     },
129885	//     "region": {
129886	//       "description": "Name of the region scoping this request.",
129887	//       "location": "path",
129888	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
129889	//       "required": true,
129890	//       "type": "string"
129891	//     },
129892	//     "requestId": {
129893	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
129894	//       "location": "query",
129895	//       "type": "string"
129896	//     },
129897	//     "targetHttpsProxy": {
129898	//       "description": "Name of the TargetHttpsProxy resource to delete.",
129899	//       "location": "path",
129900	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
129901	//       "required": true,
129902	//       "type": "string"
129903	//     }
129904	//   },
129905	//   "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}",
129906	//   "response": {
129907	//     "$ref": "Operation"
129908	//   },
129909	//   "scopes": [
129910	//     "https://www.googleapis.com/auth/cloud-platform",
129911	//     "https://www.googleapis.com/auth/compute"
129912	//   ]
129913	// }
129914
129915}
129916
129917// method id "compute.regionTargetHttpsProxies.get":
129918
129919type RegionTargetHttpsProxiesGetCall struct {
129920	s                *Service
129921	project          string
129922	region           string
129923	targetHttpsProxy string
129924	urlParams_       gensupport.URLParams
129925	ifNoneMatch_     string
129926	ctx_             context.Context
129927	header_          http.Header
129928}
129929
129930// Get: Returns the specified TargetHttpsProxy resource in the specified
129931// region. Gets a list of available target HTTP proxies by making a
129932// list() request.
129933//
129934// - project: Project ID for this request.
129935// - region: Name of the region scoping this request.
129936// - targetHttpsProxy: Name of the TargetHttpsProxy resource to return.
129937func (r *RegionTargetHttpsProxiesService) Get(project string, region string, targetHttpsProxy string) *RegionTargetHttpsProxiesGetCall {
129938	c := &RegionTargetHttpsProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129939	c.project = project
129940	c.region = region
129941	c.targetHttpsProxy = targetHttpsProxy
129942	return c
129943}
129944
129945// Fields allows partial responses to be retrieved. See
129946// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129947// for more information.
129948func (c *RegionTargetHttpsProxiesGetCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesGetCall {
129949	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129950	return c
129951}
129952
129953// IfNoneMatch sets the optional parameter which makes the operation
129954// fail if the object's ETag matches the given value. This is useful for
129955// getting updates only after the object has changed since the last
129956// request. Use googleapi.IsNotModified to check whether the response
129957// error from Do is the result of In-None-Match.
129958func (c *RegionTargetHttpsProxiesGetCall) IfNoneMatch(entityTag string) *RegionTargetHttpsProxiesGetCall {
129959	c.ifNoneMatch_ = entityTag
129960	return c
129961}
129962
129963// Context sets the context to be used in this call's Do method. Any
129964// pending HTTP request will be aborted if the provided context is
129965// canceled.
129966func (c *RegionTargetHttpsProxiesGetCall) Context(ctx context.Context) *RegionTargetHttpsProxiesGetCall {
129967	c.ctx_ = ctx
129968	return c
129969}
129970
129971// Header returns an http.Header that can be modified by the caller to
129972// add HTTP headers to the request.
129973func (c *RegionTargetHttpsProxiesGetCall) Header() http.Header {
129974	if c.header_ == nil {
129975		c.header_ = make(http.Header)
129976	}
129977	return c.header_
129978}
129979
129980func (c *RegionTargetHttpsProxiesGetCall) doRequest(alt string) (*http.Response, error) {
129981	reqHeaders := make(http.Header)
129982	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
129983	for k, v := range c.header_ {
129984		reqHeaders[k] = v
129985	}
129986	reqHeaders.Set("User-Agent", c.s.userAgent())
129987	if c.ifNoneMatch_ != "" {
129988		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
129989	}
129990	var body io.Reader = nil
129991	c.urlParams_.Set("alt", alt)
129992	c.urlParams_.Set("prettyPrint", "false")
129993	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}")
129994	urls += "?" + c.urlParams_.Encode()
129995	req, err := http.NewRequest("GET", urls, body)
129996	if err != nil {
129997		return nil, err
129998	}
129999	req.Header = reqHeaders
130000	googleapi.Expand(req.URL, map[string]string{
130001		"project":          c.project,
130002		"region":           c.region,
130003		"targetHttpsProxy": c.targetHttpsProxy,
130004	})
130005	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130006}
130007
130008// Do executes the "compute.regionTargetHttpsProxies.get" call.
130009// Exactly one of *TargetHttpsProxy or error will be non-nil. Any
130010// non-2xx status code is an error. Response headers are in either
130011// *TargetHttpsProxy.ServerResponse.Header or (if a response was
130012// returned at all) in error.(*googleapi.Error).Header. Use
130013// googleapi.IsNotModified to check whether the returned error was
130014// because http.StatusNotModified was returned.
130015func (c *RegionTargetHttpsProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxy, error) {
130016	gensupport.SetOptions(c.urlParams_, opts...)
130017	res, err := c.doRequest("json")
130018	if res != nil && res.StatusCode == http.StatusNotModified {
130019		if res.Body != nil {
130020			res.Body.Close()
130021		}
130022		return nil, &googleapi.Error{
130023			Code:   res.StatusCode,
130024			Header: res.Header,
130025		}
130026	}
130027	if err != nil {
130028		return nil, err
130029	}
130030	defer googleapi.CloseBody(res)
130031	if err := googleapi.CheckResponse(res); err != nil {
130032		return nil, err
130033	}
130034	ret := &TargetHttpsProxy{
130035		ServerResponse: googleapi.ServerResponse{
130036			Header:         res.Header,
130037			HTTPStatusCode: res.StatusCode,
130038		},
130039	}
130040	target := &ret
130041	if err := gensupport.DecodeResponse(target, res); err != nil {
130042		return nil, err
130043	}
130044	return ret, nil
130045	// {
130046	//   "description": "Returns the specified TargetHttpsProxy resource in the specified region. Gets a list of available target HTTP proxies by making a list() request.",
130047	//   "httpMethod": "GET",
130048	//   "id": "compute.regionTargetHttpsProxies.get",
130049	//   "parameterOrder": [
130050	//     "project",
130051	//     "region",
130052	//     "targetHttpsProxy"
130053	//   ],
130054	//   "parameters": {
130055	//     "project": {
130056	//       "description": "Project ID for this request.",
130057	//       "location": "path",
130058	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130059	//       "required": true,
130060	//       "type": "string"
130061	//     },
130062	//     "region": {
130063	//       "description": "Name of the region scoping this request.",
130064	//       "location": "path",
130065	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
130066	//       "required": true,
130067	//       "type": "string"
130068	//     },
130069	//     "targetHttpsProxy": {
130070	//       "description": "Name of the TargetHttpsProxy resource to return.",
130071	//       "location": "path",
130072	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
130073	//       "required": true,
130074	//       "type": "string"
130075	//     }
130076	//   },
130077	//   "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}",
130078	//   "response": {
130079	//     "$ref": "TargetHttpsProxy"
130080	//   },
130081	//   "scopes": [
130082	//     "https://www.googleapis.com/auth/cloud-platform",
130083	//     "https://www.googleapis.com/auth/compute",
130084	//     "https://www.googleapis.com/auth/compute.readonly"
130085	//   ]
130086	// }
130087
130088}
130089
130090// method id "compute.regionTargetHttpsProxies.insert":
130091
130092type RegionTargetHttpsProxiesInsertCall struct {
130093	s                *Service
130094	project          string
130095	region           string
130096	targethttpsproxy *TargetHttpsProxy
130097	urlParams_       gensupport.URLParams
130098	ctx_             context.Context
130099	header_          http.Header
130100}
130101
130102// Insert: Creates a TargetHttpsProxy resource in the specified project
130103// and region using the data included in the request.
130104//
130105// - project: Project ID for this request.
130106// - region: Name of the region scoping this request.
130107func (r *RegionTargetHttpsProxiesService) Insert(project string, region string, targethttpsproxy *TargetHttpsProxy) *RegionTargetHttpsProxiesInsertCall {
130108	c := &RegionTargetHttpsProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130109	c.project = project
130110	c.region = region
130111	c.targethttpsproxy = targethttpsproxy
130112	return c
130113}
130114
130115// RequestId sets the optional parameter "requestId": An optional
130116// request ID to identify requests. Specify a unique request ID so that
130117// if you must retry your request, the server will know to ignore the
130118// request if it has already been completed.
130119//
130120// For example, consider a situation where you make an initial request
130121// and the request times out. If you make the request again with the
130122// same request ID, the server can check if original operation with the
130123// same request ID was received, and if so, will ignore the second
130124// request. This prevents clients from accidentally creating duplicate
130125// commitments.
130126//
130127// The request ID must be a valid UUID with the exception that zero UUID
130128// is not supported (00000000-0000-0000-0000-000000000000).
130129func (c *RegionTargetHttpsProxiesInsertCall) RequestId(requestId string) *RegionTargetHttpsProxiesInsertCall {
130130	c.urlParams_.Set("requestId", requestId)
130131	return c
130132}
130133
130134// Fields allows partial responses to be retrieved. See
130135// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130136// for more information.
130137func (c *RegionTargetHttpsProxiesInsertCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesInsertCall {
130138	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130139	return c
130140}
130141
130142// Context sets the context to be used in this call's Do method. Any
130143// pending HTTP request will be aborted if the provided context is
130144// canceled.
130145func (c *RegionTargetHttpsProxiesInsertCall) Context(ctx context.Context) *RegionTargetHttpsProxiesInsertCall {
130146	c.ctx_ = ctx
130147	return c
130148}
130149
130150// Header returns an http.Header that can be modified by the caller to
130151// add HTTP headers to the request.
130152func (c *RegionTargetHttpsProxiesInsertCall) Header() http.Header {
130153	if c.header_ == nil {
130154		c.header_ = make(http.Header)
130155	}
130156	return c.header_
130157}
130158
130159func (c *RegionTargetHttpsProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
130160	reqHeaders := make(http.Header)
130161	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
130162	for k, v := range c.header_ {
130163		reqHeaders[k] = v
130164	}
130165	reqHeaders.Set("User-Agent", c.s.userAgent())
130166	var body io.Reader = nil
130167	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxy)
130168	if err != nil {
130169		return nil, err
130170	}
130171	reqHeaders.Set("Content-Type", "application/json")
130172	c.urlParams_.Set("alt", alt)
130173	c.urlParams_.Set("prettyPrint", "false")
130174	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies")
130175	urls += "?" + c.urlParams_.Encode()
130176	req, err := http.NewRequest("POST", urls, body)
130177	if err != nil {
130178		return nil, err
130179	}
130180	req.Header = reqHeaders
130181	googleapi.Expand(req.URL, map[string]string{
130182		"project": c.project,
130183		"region":  c.region,
130184	})
130185	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130186}
130187
130188// Do executes the "compute.regionTargetHttpsProxies.insert" call.
130189// Exactly one of *Operation or error will be non-nil. Any non-2xx
130190// status code is an error. Response headers are in either
130191// *Operation.ServerResponse.Header or (if a response was returned at
130192// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
130193// to check whether the returned error was because
130194// http.StatusNotModified was returned.
130195func (c *RegionTargetHttpsProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
130196	gensupport.SetOptions(c.urlParams_, opts...)
130197	res, err := c.doRequest("json")
130198	if res != nil && res.StatusCode == http.StatusNotModified {
130199		if res.Body != nil {
130200			res.Body.Close()
130201		}
130202		return nil, &googleapi.Error{
130203			Code:   res.StatusCode,
130204			Header: res.Header,
130205		}
130206	}
130207	if err != nil {
130208		return nil, err
130209	}
130210	defer googleapi.CloseBody(res)
130211	if err := googleapi.CheckResponse(res); err != nil {
130212		return nil, err
130213	}
130214	ret := &Operation{
130215		ServerResponse: googleapi.ServerResponse{
130216			Header:         res.Header,
130217			HTTPStatusCode: res.StatusCode,
130218		},
130219	}
130220	target := &ret
130221	if err := gensupport.DecodeResponse(target, res); err != nil {
130222		return nil, err
130223	}
130224	return ret, nil
130225	// {
130226	//   "description": "Creates a TargetHttpsProxy resource in the specified project and region using the data included in the request.",
130227	//   "httpMethod": "POST",
130228	//   "id": "compute.regionTargetHttpsProxies.insert",
130229	//   "parameterOrder": [
130230	//     "project",
130231	//     "region"
130232	//   ],
130233	//   "parameters": {
130234	//     "project": {
130235	//       "description": "Project ID for this request.",
130236	//       "location": "path",
130237	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130238	//       "required": true,
130239	//       "type": "string"
130240	//     },
130241	//     "region": {
130242	//       "description": "Name of the region scoping this request.",
130243	//       "location": "path",
130244	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
130245	//       "required": true,
130246	//       "type": "string"
130247	//     },
130248	//     "requestId": {
130249	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
130250	//       "location": "query",
130251	//       "type": "string"
130252	//     }
130253	//   },
130254	//   "path": "projects/{project}/regions/{region}/targetHttpsProxies",
130255	//   "request": {
130256	//     "$ref": "TargetHttpsProxy"
130257	//   },
130258	//   "response": {
130259	//     "$ref": "Operation"
130260	//   },
130261	//   "scopes": [
130262	//     "https://www.googleapis.com/auth/cloud-platform",
130263	//     "https://www.googleapis.com/auth/compute"
130264	//   ]
130265	// }
130266
130267}
130268
130269// method id "compute.regionTargetHttpsProxies.list":
130270
130271type RegionTargetHttpsProxiesListCall struct {
130272	s            *Service
130273	project      string
130274	region       string
130275	urlParams_   gensupport.URLParams
130276	ifNoneMatch_ string
130277	ctx_         context.Context
130278	header_      http.Header
130279}
130280
130281// List: Retrieves the list of TargetHttpsProxy resources available to
130282// the specified project in the specified region.
130283//
130284// - project: Project ID for this request.
130285// - region: Name of the region scoping this request.
130286func (r *RegionTargetHttpsProxiesService) List(project string, region string) *RegionTargetHttpsProxiesListCall {
130287	c := &RegionTargetHttpsProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130288	c.project = project
130289	c.region = region
130290	return c
130291}
130292
130293// Filter sets the optional parameter "filter": A filter expression that
130294// filters resources listed in the response. The expression must specify
130295// the field name, a comparison operator, and the value that you want to
130296// use for filtering. The value must be a string, a number, or a
130297// boolean. The comparison operator must be either `=`, `!=`, `>`, or
130298// `<`.
130299//
130300// For example, if you are filtering Compute Engine instances, you can
130301// exclude instances named `example-instance` by specifying `name !=
130302// example-instance`.
130303//
130304// You can also filter nested fields. For example, you could specify
130305// `scheduling.automaticRestart = false` to include instances only if
130306// they are not scheduled for automatic restarts. You can use filtering
130307// on nested fields to filter based on resource labels.
130308//
130309// To filter on multiple expressions, provide each separate expression
130310// within parentheses. For example: ``` (scheduling.automaticRestart =
130311// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
130312// is an `AND` expression. However, you can include `AND` and `OR`
130313// expressions explicitly. For example: ``` (cpuPlatform = "Intel
130314// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
130315// (scheduling.automaticRestart = true) ```
130316func (c *RegionTargetHttpsProxiesListCall) Filter(filter string) *RegionTargetHttpsProxiesListCall {
130317	c.urlParams_.Set("filter", filter)
130318	return c
130319}
130320
130321// MaxResults sets the optional parameter "maxResults": The maximum
130322// number of results per page that should be returned. If the number of
130323// available results is larger than `maxResults`, Compute Engine returns
130324// a `nextPageToken` that can be used to get the next page of results in
130325// subsequent list requests. Acceptable values are `0` to `500`,
130326// inclusive. (Default: `500`)
130327func (c *RegionTargetHttpsProxiesListCall) MaxResults(maxResults int64) *RegionTargetHttpsProxiesListCall {
130328	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
130329	return c
130330}
130331
130332// OrderBy sets the optional parameter "orderBy": Sorts list results by
130333// a certain order. By default, results are returned in alphanumerical
130334// order based on the resource name.
130335//
130336// You can also sort results in descending order based on the creation
130337// timestamp using `orderBy="creationTimestamp desc". This sorts
130338// results based on the `creationTimestamp` field in reverse
130339// chronological order (newest result first). Use this to sort resources
130340// like operations so that the newest operation is returned
130341// first.
130342//
130343// Currently, only sorting by `name` or `creationTimestamp desc` is
130344// supported.
130345func (c *RegionTargetHttpsProxiesListCall) OrderBy(orderBy string) *RegionTargetHttpsProxiesListCall {
130346	c.urlParams_.Set("orderBy", orderBy)
130347	return c
130348}
130349
130350// PageToken sets the optional parameter "pageToken": Specifies a page
130351// token to use. Set `pageToken` to the `nextPageToken` returned by a
130352// previous list request to get the next page of results.
130353func (c *RegionTargetHttpsProxiesListCall) PageToken(pageToken string) *RegionTargetHttpsProxiesListCall {
130354	c.urlParams_.Set("pageToken", pageToken)
130355	return c
130356}
130357
130358// ReturnPartialSuccess sets the optional parameter
130359// "returnPartialSuccess": Opt-in for partial success behavior which
130360// provides partial results in case of failure. The default value is
130361// false.
130362func (c *RegionTargetHttpsProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionTargetHttpsProxiesListCall {
130363	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
130364	return c
130365}
130366
130367// Fields allows partial responses to be retrieved. See
130368// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130369// for more information.
130370func (c *RegionTargetHttpsProxiesListCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesListCall {
130371	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130372	return c
130373}
130374
130375// IfNoneMatch sets the optional parameter which makes the operation
130376// fail if the object's ETag matches the given value. This is useful for
130377// getting updates only after the object has changed since the last
130378// request. Use googleapi.IsNotModified to check whether the response
130379// error from Do is the result of In-None-Match.
130380func (c *RegionTargetHttpsProxiesListCall) IfNoneMatch(entityTag string) *RegionTargetHttpsProxiesListCall {
130381	c.ifNoneMatch_ = entityTag
130382	return c
130383}
130384
130385// Context sets the context to be used in this call's Do method. Any
130386// pending HTTP request will be aborted if the provided context is
130387// canceled.
130388func (c *RegionTargetHttpsProxiesListCall) Context(ctx context.Context) *RegionTargetHttpsProxiesListCall {
130389	c.ctx_ = ctx
130390	return c
130391}
130392
130393// Header returns an http.Header that can be modified by the caller to
130394// add HTTP headers to the request.
130395func (c *RegionTargetHttpsProxiesListCall) Header() http.Header {
130396	if c.header_ == nil {
130397		c.header_ = make(http.Header)
130398	}
130399	return c.header_
130400}
130401
130402func (c *RegionTargetHttpsProxiesListCall) doRequest(alt string) (*http.Response, error) {
130403	reqHeaders := make(http.Header)
130404	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
130405	for k, v := range c.header_ {
130406		reqHeaders[k] = v
130407	}
130408	reqHeaders.Set("User-Agent", c.s.userAgent())
130409	if c.ifNoneMatch_ != "" {
130410		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
130411	}
130412	var body io.Reader = nil
130413	c.urlParams_.Set("alt", alt)
130414	c.urlParams_.Set("prettyPrint", "false")
130415	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies")
130416	urls += "?" + c.urlParams_.Encode()
130417	req, err := http.NewRequest("GET", urls, body)
130418	if err != nil {
130419		return nil, err
130420	}
130421	req.Header = reqHeaders
130422	googleapi.Expand(req.URL, map[string]string{
130423		"project": c.project,
130424		"region":  c.region,
130425	})
130426	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130427}
130428
130429// Do executes the "compute.regionTargetHttpsProxies.list" call.
130430// Exactly one of *TargetHttpsProxyList or error will be non-nil. Any
130431// non-2xx status code is an error. Response headers are in either
130432// *TargetHttpsProxyList.ServerResponse.Header or (if a response was
130433// returned at all) in error.(*googleapi.Error).Header. Use
130434// googleapi.IsNotModified to check whether the returned error was
130435// because http.StatusNotModified was returned.
130436func (c *RegionTargetHttpsProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyList, error) {
130437	gensupport.SetOptions(c.urlParams_, opts...)
130438	res, err := c.doRequest("json")
130439	if res != nil && res.StatusCode == http.StatusNotModified {
130440		if res.Body != nil {
130441			res.Body.Close()
130442		}
130443		return nil, &googleapi.Error{
130444			Code:   res.StatusCode,
130445			Header: res.Header,
130446		}
130447	}
130448	if err != nil {
130449		return nil, err
130450	}
130451	defer googleapi.CloseBody(res)
130452	if err := googleapi.CheckResponse(res); err != nil {
130453		return nil, err
130454	}
130455	ret := &TargetHttpsProxyList{
130456		ServerResponse: googleapi.ServerResponse{
130457			Header:         res.Header,
130458			HTTPStatusCode: res.StatusCode,
130459		},
130460	}
130461	target := &ret
130462	if err := gensupport.DecodeResponse(target, res); err != nil {
130463		return nil, err
130464	}
130465	return ret, nil
130466	// {
130467	//   "description": "Retrieves the list of TargetHttpsProxy resources available to the specified project in the specified region.",
130468	//   "httpMethod": "GET",
130469	//   "id": "compute.regionTargetHttpsProxies.list",
130470	//   "parameterOrder": [
130471	//     "project",
130472	//     "region"
130473	//   ],
130474	//   "parameters": {
130475	//     "filter": {
130476	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
130477	//       "location": "query",
130478	//       "type": "string"
130479	//     },
130480	//     "maxResults": {
130481	//       "default": "500",
130482	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
130483	//       "format": "uint32",
130484	//       "location": "query",
130485	//       "minimum": "0",
130486	//       "type": "integer"
130487	//     },
130488	//     "orderBy": {
130489	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
130490	//       "location": "query",
130491	//       "type": "string"
130492	//     },
130493	//     "pageToken": {
130494	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
130495	//       "location": "query",
130496	//       "type": "string"
130497	//     },
130498	//     "project": {
130499	//       "description": "Project ID for this request.",
130500	//       "location": "path",
130501	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130502	//       "required": true,
130503	//       "type": "string"
130504	//     },
130505	//     "region": {
130506	//       "description": "Name of the region scoping this request.",
130507	//       "location": "path",
130508	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
130509	//       "required": true,
130510	//       "type": "string"
130511	//     },
130512	//     "returnPartialSuccess": {
130513	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
130514	//       "location": "query",
130515	//       "type": "boolean"
130516	//     }
130517	//   },
130518	//   "path": "projects/{project}/regions/{region}/targetHttpsProxies",
130519	//   "response": {
130520	//     "$ref": "TargetHttpsProxyList"
130521	//   },
130522	//   "scopes": [
130523	//     "https://www.googleapis.com/auth/cloud-platform",
130524	//     "https://www.googleapis.com/auth/compute",
130525	//     "https://www.googleapis.com/auth/compute.readonly"
130526	//   ]
130527	// }
130528
130529}
130530
130531// Pages invokes f for each page of results.
130532// A non-nil error returned from f will halt the iteration.
130533// The provided context supersedes any context provided to the Context method.
130534func (c *RegionTargetHttpsProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyList) error) error {
130535	c.ctx_ = ctx
130536	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
130537	for {
130538		x, err := c.Do()
130539		if err != nil {
130540			return err
130541		}
130542		if err := f(x); err != nil {
130543			return err
130544		}
130545		if x.NextPageToken == "" {
130546			return nil
130547		}
130548		c.PageToken(x.NextPageToken)
130549	}
130550}
130551
130552// method id "compute.regionTargetHttpsProxies.setSslCertificates":
130553
130554type RegionTargetHttpsProxiesSetSslCertificatesCall struct {
130555	s                                                 *Service
130556	project                                           string
130557	region                                            string
130558	targetHttpsProxy                                  string
130559	regiontargethttpsproxiessetsslcertificatesrequest *RegionTargetHttpsProxiesSetSslCertificatesRequest
130560	urlParams_                                        gensupport.URLParams
130561	ctx_                                              context.Context
130562	header_                                           http.Header
130563}
130564
130565// SetSslCertificates: Replaces SslCertificates for TargetHttpsProxy.
130566//
130567// - project: Project ID for this request.
130568// - region: Name of the region scoping this request.
130569// - targetHttpsProxy: Name of the TargetHttpsProxy resource to set an
130570//   SslCertificates resource for.
130571func (r *RegionTargetHttpsProxiesService) SetSslCertificates(project string, region string, targetHttpsProxy string, regiontargethttpsproxiessetsslcertificatesrequest *RegionTargetHttpsProxiesSetSslCertificatesRequest) *RegionTargetHttpsProxiesSetSslCertificatesCall {
130572	c := &RegionTargetHttpsProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130573	c.project = project
130574	c.region = region
130575	c.targetHttpsProxy = targetHttpsProxy
130576	c.regiontargethttpsproxiessetsslcertificatesrequest = regiontargethttpsproxiessetsslcertificatesrequest
130577	return c
130578}
130579
130580// RequestId sets the optional parameter "requestId": An optional
130581// request ID to identify requests. Specify a unique request ID so that
130582// if you must retry your request, the server will know to ignore the
130583// request if it has already been completed.
130584//
130585// For example, consider a situation where you make an initial request
130586// and the request times out. If you make the request again with the
130587// same request ID, the server can check if original operation with the
130588// same request ID was received, and if so, will ignore the second
130589// request. This prevents clients from accidentally creating duplicate
130590// commitments.
130591//
130592// The request ID must be a valid UUID with the exception that zero UUID
130593// is not supported (00000000-0000-0000-0000-000000000000).
130594func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) RequestId(requestId string) *RegionTargetHttpsProxiesSetSslCertificatesCall {
130595	c.urlParams_.Set("requestId", requestId)
130596	return c
130597}
130598
130599// Fields allows partial responses to be retrieved. See
130600// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130601// for more information.
130602func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesSetSslCertificatesCall {
130603	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130604	return c
130605}
130606
130607// Context sets the context to be used in this call's Do method. Any
130608// pending HTTP request will be aborted if the provided context is
130609// canceled.
130610func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Context(ctx context.Context) *RegionTargetHttpsProxiesSetSslCertificatesCall {
130611	c.ctx_ = ctx
130612	return c
130613}
130614
130615// Header returns an http.Header that can be modified by the caller to
130616// add HTTP headers to the request.
130617func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Header() http.Header {
130618	if c.header_ == nil {
130619		c.header_ = make(http.Header)
130620	}
130621	return c.header_
130622}
130623
130624func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
130625	reqHeaders := make(http.Header)
130626	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
130627	for k, v := range c.header_ {
130628		reqHeaders[k] = v
130629	}
130630	reqHeaders.Set("User-Agent", c.s.userAgent())
130631	var body io.Reader = nil
130632	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiontargethttpsproxiessetsslcertificatesrequest)
130633	if err != nil {
130634		return nil, err
130635	}
130636	reqHeaders.Set("Content-Type", "application/json")
130637	c.urlParams_.Set("alt", alt)
130638	c.urlParams_.Set("prettyPrint", "false")
130639	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates")
130640	urls += "?" + c.urlParams_.Encode()
130641	req, err := http.NewRequest("POST", urls, body)
130642	if err != nil {
130643		return nil, err
130644	}
130645	req.Header = reqHeaders
130646	googleapi.Expand(req.URL, map[string]string{
130647		"project":          c.project,
130648		"region":           c.region,
130649		"targetHttpsProxy": c.targetHttpsProxy,
130650	})
130651	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130652}
130653
130654// Do executes the "compute.regionTargetHttpsProxies.setSslCertificates" call.
130655// Exactly one of *Operation or error will be non-nil. Any non-2xx
130656// status code is an error. Response headers are in either
130657// *Operation.ServerResponse.Header or (if a response was returned at
130658// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
130659// to check whether the returned error was because
130660// http.StatusNotModified was returned.
130661func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
130662	gensupport.SetOptions(c.urlParams_, opts...)
130663	res, err := c.doRequest("json")
130664	if res != nil && res.StatusCode == http.StatusNotModified {
130665		if res.Body != nil {
130666			res.Body.Close()
130667		}
130668		return nil, &googleapi.Error{
130669			Code:   res.StatusCode,
130670			Header: res.Header,
130671		}
130672	}
130673	if err != nil {
130674		return nil, err
130675	}
130676	defer googleapi.CloseBody(res)
130677	if err := googleapi.CheckResponse(res); err != nil {
130678		return nil, err
130679	}
130680	ret := &Operation{
130681		ServerResponse: googleapi.ServerResponse{
130682			Header:         res.Header,
130683			HTTPStatusCode: res.StatusCode,
130684		},
130685	}
130686	target := &ret
130687	if err := gensupport.DecodeResponse(target, res); err != nil {
130688		return nil, err
130689	}
130690	return ret, nil
130691	// {
130692	//   "description": "Replaces SslCertificates for TargetHttpsProxy.",
130693	//   "httpMethod": "POST",
130694	//   "id": "compute.regionTargetHttpsProxies.setSslCertificates",
130695	//   "parameterOrder": [
130696	//     "project",
130697	//     "region",
130698	//     "targetHttpsProxy"
130699	//   ],
130700	//   "parameters": {
130701	//     "project": {
130702	//       "description": "Project ID for this request.",
130703	//       "location": "path",
130704	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130705	//       "required": true,
130706	//       "type": "string"
130707	//     },
130708	//     "region": {
130709	//       "description": "Name of the region scoping this request.",
130710	//       "location": "path",
130711	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
130712	//       "required": true,
130713	//       "type": "string"
130714	//     },
130715	//     "requestId": {
130716	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
130717	//       "location": "query",
130718	//       "type": "string"
130719	//     },
130720	//     "targetHttpsProxy": {
130721	//       "description": "Name of the TargetHttpsProxy resource to set an SslCertificates resource for.",
130722	//       "location": "path",
130723	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
130724	//       "required": true,
130725	//       "type": "string"
130726	//     }
130727	//   },
130728	//   "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates",
130729	//   "request": {
130730	//     "$ref": "RegionTargetHttpsProxiesSetSslCertificatesRequest"
130731	//   },
130732	//   "response": {
130733	//     "$ref": "Operation"
130734	//   },
130735	//   "scopes": [
130736	//     "https://www.googleapis.com/auth/cloud-platform",
130737	//     "https://www.googleapis.com/auth/compute"
130738	//   ]
130739	// }
130740
130741}
130742
130743// method id "compute.regionTargetHttpsProxies.setUrlMap":
130744
130745type RegionTargetHttpsProxiesSetUrlMapCall struct {
130746	s                *Service
130747	project          string
130748	region           string
130749	targetHttpsProxy string
130750	urlmapreference  *UrlMapReference
130751	urlParams_       gensupport.URLParams
130752	ctx_             context.Context
130753	header_          http.Header
130754}
130755
130756// SetUrlMap: Changes the URL map for TargetHttpsProxy.
130757//
130758// - project: Project ID for this request.
130759// - region: Name of the region scoping this request.
130760// - targetHttpsProxy: Name of the TargetHttpsProxy to set a URL map
130761//   for.
130762func (r *RegionTargetHttpsProxiesService) SetUrlMap(project string, region string, targetHttpsProxy string, urlmapreference *UrlMapReference) *RegionTargetHttpsProxiesSetUrlMapCall {
130763	c := &RegionTargetHttpsProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130764	c.project = project
130765	c.region = region
130766	c.targetHttpsProxy = targetHttpsProxy
130767	c.urlmapreference = urlmapreference
130768	return c
130769}
130770
130771// RequestId sets the optional parameter "requestId": An optional
130772// request ID to identify requests. Specify a unique request ID so that
130773// if you must retry your request, the server will know to ignore the
130774// request if it has already been completed.
130775//
130776// For example, consider a situation where you make an initial request
130777// and the request times out. If you make the request again with the
130778// same request ID, the server can check if original operation with the
130779// same request ID was received, and if so, will ignore the second
130780// request. This prevents clients from accidentally creating duplicate
130781// commitments.
130782//
130783// The request ID must be a valid UUID with the exception that zero UUID
130784// is not supported (00000000-0000-0000-0000-000000000000).
130785func (c *RegionTargetHttpsProxiesSetUrlMapCall) RequestId(requestId string) *RegionTargetHttpsProxiesSetUrlMapCall {
130786	c.urlParams_.Set("requestId", requestId)
130787	return c
130788}
130789
130790// Fields allows partial responses to be retrieved. See
130791// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130792// for more information.
130793func (c *RegionTargetHttpsProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesSetUrlMapCall {
130794	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130795	return c
130796}
130797
130798// Context sets the context to be used in this call's Do method. Any
130799// pending HTTP request will be aborted if the provided context is
130800// canceled.
130801func (c *RegionTargetHttpsProxiesSetUrlMapCall) Context(ctx context.Context) *RegionTargetHttpsProxiesSetUrlMapCall {
130802	c.ctx_ = ctx
130803	return c
130804}
130805
130806// Header returns an http.Header that can be modified by the caller to
130807// add HTTP headers to the request.
130808func (c *RegionTargetHttpsProxiesSetUrlMapCall) Header() http.Header {
130809	if c.header_ == nil {
130810		c.header_ = make(http.Header)
130811	}
130812	return c.header_
130813}
130814
130815func (c *RegionTargetHttpsProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
130816	reqHeaders := make(http.Header)
130817	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
130818	for k, v := range c.header_ {
130819		reqHeaders[k] = v
130820	}
130821	reqHeaders.Set("User-Agent", c.s.userAgent())
130822	var body io.Reader = nil
130823	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
130824	if err != nil {
130825		return nil, err
130826	}
130827	reqHeaders.Set("Content-Type", "application/json")
130828	c.urlParams_.Set("alt", alt)
130829	c.urlParams_.Set("prettyPrint", "false")
130830	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap")
130831	urls += "?" + c.urlParams_.Encode()
130832	req, err := http.NewRequest("POST", urls, body)
130833	if err != nil {
130834		return nil, err
130835	}
130836	req.Header = reqHeaders
130837	googleapi.Expand(req.URL, map[string]string{
130838		"project":          c.project,
130839		"region":           c.region,
130840		"targetHttpsProxy": c.targetHttpsProxy,
130841	})
130842	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130843}
130844
130845// Do executes the "compute.regionTargetHttpsProxies.setUrlMap" call.
130846// Exactly one of *Operation or error will be non-nil. Any non-2xx
130847// status code is an error. Response headers are in either
130848// *Operation.ServerResponse.Header or (if a response was returned at
130849// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
130850// to check whether the returned error was because
130851// http.StatusNotModified was returned.
130852func (c *RegionTargetHttpsProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
130853	gensupport.SetOptions(c.urlParams_, opts...)
130854	res, err := c.doRequest("json")
130855	if res != nil && res.StatusCode == http.StatusNotModified {
130856		if res.Body != nil {
130857			res.Body.Close()
130858		}
130859		return nil, &googleapi.Error{
130860			Code:   res.StatusCode,
130861			Header: res.Header,
130862		}
130863	}
130864	if err != nil {
130865		return nil, err
130866	}
130867	defer googleapi.CloseBody(res)
130868	if err := googleapi.CheckResponse(res); err != nil {
130869		return nil, err
130870	}
130871	ret := &Operation{
130872		ServerResponse: googleapi.ServerResponse{
130873			Header:         res.Header,
130874			HTTPStatusCode: res.StatusCode,
130875		},
130876	}
130877	target := &ret
130878	if err := gensupport.DecodeResponse(target, res); err != nil {
130879		return nil, err
130880	}
130881	return ret, nil
130882	// {
130883	//   "description": "Changes the URL map for TargetHttpsProxy.",
130884	//   "httpMethod": "POST",
130885	//   "id": "compute.regionTargetHttpsProxies.setUrlMap",
130886	//   "parameterOrder": [
130887	//     "project",
130888	//     "region",
130889	//     "targetHttpsProxy"
130890	//   ],
130891	//   "parameters": {
130892	//     "project": {
130893	//       "description": "Project ID for this request.",
130894	//       "location": "path",
130895	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130896	//       "required": true,
130897	//       "type": "string"
130898	//     },
130899	//     "region": {
130900	//       "description": "Name of the region scoping this request.",
130901	//       "location": "path",
130902	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
130903	//       "required": true,
130904	//       "type": "string"
130905	//     },
130906	//     "requestId": {
130907	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
130908	//       "location": "query",
130909	//       "type": "string"
130910	//     },
130911	//     "targetHttpsProxy": {
130912	//       "description": "Name of the TargetHttpsProxy to set a URL map for.",
130913	//       "location": "path",
130914	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
130915	//       "required": true,
130916	//       "type": "string"
130917	//     }
130918	//   },
130919	//   "path": "projects/{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap",
130920	//   "request": {
130921	//     "$ref": "UrlMapReference"
130922	//   },
130923	//   "response": {
130924	//     "$ref": "Operation"
130925	//   },
130926	//   "scopes": [
130927	//     "https://www.googleapis.com/auth/cloud-platform",
130928	//     "https://www.googleapis.com/auth/compute"
130929	//   ]
130930	// }
130931
130932}
130933
130934// method id "compute.regionUrlMaps.delete":
130935
130936type RegionUrlMapsDeleteCall struct {
130937	s          *Service
130938	project    string
130939	region     string
130940	urlMap     string
130941	urlParams_ gensupport.URLParams
130942	ctx_       context.Context
130943	header_    http.Header
130944}
130945
130946// Delete: Deletes the specified UrlMap resource.
130947//
130948// - project: Project ID for this request.
130949// - region: Name of the region scoping this request.
130950// - urlMap: Name of the UrlMap resource to delete.
130951func (r *RegionUrlMapsService) Delete(project string, region string, urlMap string) *RegionUrlMapsDeleteCall {
130952	c := &RegionUrlMapsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130953	c.project = project
130954	c.region = region
130955	c.urlMap = urlMap
130956	return c
130957}
130958
130959// RequestId sets the optional parameter "requestId": begin_interface:
130960// MixerMutationRequestBuilder Request ID to support idempotency.
130961func (c *RegionUrlMapsDeleteCall) RequestId(requestId string) *RegionUrlMapsDeleteCall {
130962	c.urlParams_.Set("requestId", requestId)
130963	return c
130964}
130965
130966// Fields allows partial responses to be retrieved. See
130967// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130968// for more information.
130969func (c *RegionUrlMapsDeleteCall) Fields(s ...googleapi.Field) *RegionUrlMapsDeleteCall {
130970	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130971	return c
130972}
130973
130974// Context sets the context to be used in this call's Do method. Any
130975// pending HTTP request will be aborted if the provided context is
130976// canceled.
130977func (c *RegionUrlMapsDeleteCall) Context(ctx context.Context) *RegionUrlMapsDeleteCall {
130978	c.ctx_ = ctx
130979	return c
130980}
130981
130982// Header returns an http.Header that can be modified by the caller to
130983// add HTTP headers to the request.
130984func (c *RegionUrlMapsDeleteCall) Header() http.Header {
130985	if c.header_ == nil {
130986		c.header_ = make(http.Header)
130987	}
130988	return c.header_
130989}
130990
130991func (c *RegionUrlMapsDeleteCall) doRequest(alt string) (*http.Response, error) {
130992	reqHeaders := make(http.Header)
130993	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
130994	for k, v := range c.header_ {
130995		reqHeaders[k] = v
130996	}
130997	reqHeaders.Set("User-Agent", c.s.userAgent())
130998	var body io.Reader = nil
130999	c.urlParams_.Set("alt", alt)
131000	c.urlParams_.Set("prettyPrint", "false")
131001	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{urlMap}")
131002	urls += "?" + c.urlParams_.Encode()
131003	req, err := http.NewRequest("DELETE", urls, body)
131004	if err != nil {
131005		return nil, err
131006	}
131007	req.Header = reqHeaders
131008	googleapi.Expand(req.URL, map[string]string{
131009		"project": c.project,
131010		"region":  c.region,
131011		"urlMap":  c.urlMap,
131012	})
131013	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131014}
131015
131016// Do executes the "compute.regionUrlMaps.delete" call.
131017// Exactly one of *Operation or error will be non-nil. Any non-2xx
131018// status code is an error. Response headers are in either
131019// *Operation.ServerResponse.Header or (if a response was returned at
131020// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
131021// to check whether the returned error was because
131022// http.StatusNotModified was returned.
131023func (c *RegionUrlMapsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
131024	gensupport.SetOptions(c.urlParams_, opts...)
131025	res, err := c.doRequest("json")
131026	if res != nil && res.StatusCode == http.StatusNotModified {
131027		if res.Body != nil {
131028			res.Body.Close()
131029		}
131030		return nil, &googleapi.Error{
131031			Code:   res.StatusCode,
131032			Header: res.Header,
131033		}
131034	}
131035	if err != nil {
131036		return nil, err
131037	}
131038	defer googleapi.CloseBody(res)
131039	if err := googleapi.CheckResponse(res); err != nil {
131040		return nil, err
131041	}
131042	ret := &Operation{
131043		ServerResponse: googleapi.ServerResponse{
131044			Header:         res.Header,
131045			HTTPStatusCode: res.StatusCode,
131046		},
131047	}
131048	target := &ret
131049	if err := gensupport.DecodeResponse(target, res); err != nil {
131050		return nil, err
131051	}
131052	return ret, nil
131053	// {
131054	//   "description": "Deletes the specified UrlMap resource.",
131055	//   "httpMethod": "DELETE",
131056	//   "id": "compute.regionUrlMaps.delete",
131057	//   "parameterOrder": [
131058	//     "project",
131059	//     "region",
131060	//     "urlMap"
131061	//   ],
131062	//   "parameters": {
131063	//     "project": {
131064	//       "description": "Project ID for this request.",
131065	//       "location": "path",
131066	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131067	//       "required": true,
131068	//       "type": "string"
131069	//     },
131070	//     "region": {
131071	//       "description": "Name of the region scoping this request.",
131072	//       "location": "path",
131073	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131074	//       "required": true,
131075	//       "type": "string"
131076	//     },
131077	//     "requestId": {
131078	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
131079	//       "location": "query",
131080	//       "type": "string"
131081	//     },
131082	//     "urlMap": {
131083	//       "description": "Name of the UrlMap resource to delete.",
131084	//       "location": "path",
131085	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
131086	//       "required": true,
131087	//       "type": "string"
131088	//     }
131089	//   },
131090	//   "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}",
131091	//   "response": {
131092	//     "$ref": "Operation"
131093	//   },
131094	//   "scopes": [
131095	//     "https://www.googleapis.com/auth/cloud-platform",
131096	//     "https://www.googleapis.com/auth/compute"
131097	//   ]
131098	// }
131099
131100}
131101
131102// method id "compute.regionUrlMaps.get":
131103
131104type RegionUrlMapsGetCall struct {
131105	s            *Service
131106	project      string
131107	region       string
131108	urlMap       string
131109	urlParams_   gensupport.URLParams
131110	ifNoneMatch_ string
131111	ctx_         context.Context
131112	header_      http.Header
131113}
131114
131115// Get: Returns the specified UrlMap resource. Gets a list of available
131116// URL maps by making a list() request.
131117//
131118// - project: Project ID for this request.
131119// - region: Name of the region scoping this request.
131120// - urlMap: Name of the UrlMap resource to return.
131121func (r *RegionUrlMapsService) Get(project string, region string, urlMap string) *RegionUrlMapsGetCall {
131122	c := &RegionUrlMapsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131123	c.project = project
131124	c.region = region
131125	c.urlMap = urlMap
131126	return c
131127}
131128
131129// Fields allows partial responses to be retrieved. See
131130// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131131// for more information.
131132func (c *RegionUrlMapsGetCall) Fields(s ...googleapi.Field) *RegionUrlMapsGetCall {
131133	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131134	return c
131135}
131136
131137// IfNoneMatch sets the optional parameter which makes the operation
131138// fail if the object's ETag matches the given value. This is useful for
131139// getting updates only after the object has changed since the last
131140// request. Use googleapi.IsNotModified to check whether the response
131141// error from Do is the result of In-None-Match.
131142func (c *RegionUrlMapsGetCall) IfNoneMatch(entityTag string) *RegionUrlMapsGetCall {
131143	c.ifNoneMatch_ = entityTag
131144	return c
131145}
131146
131147// Context sets the context to be used in this call's Do method. Any
131148// pending HTTP request will be aborted if the provided context is
131149// canceled.
131150func (c *RegionUrlMapsGetCall) Context(ctx context.Context) *RegionUrlMapsGetCall {
131151	c.ctx_ = ctx
131152	return c
131153}
131154
131155// Header returns an http.Header that can be modified by the caller to
131156// add HTTP headers to the request.
131157func (c *RegionUrlMapsGetCall) Header() http.Header {
131158	if c.header_ == nil {
131159		c.header_ = make(http.Header)
131160	}
131161	return c.header_
131162}
131163
131164func (c *RegionUrlMapsGetCall) doRequest(alt string) (*http.Response, error) {
131165	reqHeaders := make(http.Header)
131166	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
131167	for k, v := range c.header_ {
131168		reqHeaders[k] = v
131169	}
131170	reqHeaders.Set("User-Agent", c.s.userAgent())
131171	if c.ifNoneMatch_ != "" {
131172		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
131173	}
131174	var body io.Reader = nil
131175	c.urlParams_.Set("alt", alt)
131176	c.urlParams_.Set("prettyPrint", "false")
131177	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{urlMap}")
131178	urls += "?" + c.urlParams_.Encode()
131179	req, err := http.NewRequest("GET", urls, body)
131180	if err != nil {
131181		return nil, err
131182	}
131183	req.Header = reqHeaders
131184	googleapi.Expand(req.URL, map[string]string{
131185		"project": c.project,
131186		"region":  c.region,
131187		"urlMap":  c.urlMap,
131188	})
131189	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131190}
131191
131192// Do executes the "compute.regionUrlMaps.get" call.
131193// Exactly one of *UrlMap or error will be non-nil. Any non-2xx status
131194// code is an error. Response headers are in either
131195// *UrlMap.ServerResponse.Header or (if a response was returned at all)
131196// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
131197// check whether the returned error was because http.StatusNotModified
131198// was returned.
131199func (c *RegionUrlMapsGetCall) Do(opts ...googleapi.CallOption) (*UrlMap, error) {
131200	gensupport.SetOptions(c.urlParams_, opts...)
131201	res, err := c.doRequest("json")
131202	if res != nil && res.StatusCode == http.StatusNotModified {
131203		if res.Body != nil {
131204			res.Body.Close()
131205		}
131206		return nil, &googleapi.Error{
131207			Code:   res.StatusCode,
131208			Header: res.Header,
131209		}
131210	}
131211	if err != nil {
131212		return nil, err
131213	}
131214	defer googleapi.CloseBody(res)
131215	if err := googleapi.CheckResponse(res); err != nil {
131216		return nil, err
131217	}
131218	ret := &UrlMap{
131219		ServerResponse: googleapi.ServerResponse{
131220			Header:         res.Header,
131221			HTTPStatusCode: res.StatusCode,
131222		},
131223	}
131224	target := &ret
131225	if err := gensupport.DecodeResponse(target, res); err != nil {
131226		return nil, err
131227	}
131228	return ret, nil
131229	// {
131230	//   "description": "Returns the specified UrlMap resource. Gets a list of available URL maps by making a list() request.",
131231	//   "httpMethod": "GET",
131232	//   "id": "compute.regionUrlMaps.get",
131233	//   "parameterOrder": [
131234	//     "project",
131235	//     "region",
131236	//     "urlMap"
131237	//   ],
131238	//   "parameters": {
131239	//     "project": {
131240	//       "description": "Project ID for this request.",
131241	//       "location": "path",
131242	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131243	//       "required": true,
131244	//       "type": "string"
131245	//     },
131246	//     "region": {
131247	//       "description": "Name of the region scoping this request.",
131248	//       "location": "path",
131249	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131250	//       "required": true,
131251	//       "type": "string"
131252	//     },
131253	//     "urlMap": {
131254	//       "description": "Name of the UrlMap resource to return.",
131255	//       "location": "path",
131256	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
131257	//       "required": true,
131258	//       "type": "string"
131259	//     }
131260	//   },
131261	//   "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}",
131262	//   "response": {
131263	//     "$ref": "UrlMap"
131264	//   },
131265	//   "scopes": [
131266	//     "https://www.googleapis.com/auth/cloud-platform",
131267	//     "https://www.googleapis.com/auth/compute",
131268	//     "https://www.googleapis.com/auth/compute.readonly"
131269	//   ]
131270	// }
131271
131272}
131273
131274// method id "compute.regionUrlMaps.insert":
131275
131276type RegionUrlMapsInsertCall struct {
131277	s          *Service
131278	project    string
131279	region     string
131280	urlmap     *UrlMap
131281	urlParams_ gensupport.URLParams
131282	ctx_       context.Context
131283	header_    http.Header
131284}
131285
131286// Insert: Creates a UrlMap resource in the specified project using the
131287// data included in the request.
131288//
131289// - project: Project ID for this request.
131290// - region: Name of the region scoping this request.
131291func (r *RegionUrlMapsService) Insert(project string, region string, urlmap *UrlMap) *RegionUrlMapsInsertCall {
131292	c := &RegionUrlMapsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131293	c.project = project
131294	c.region = region
131295	c.urlmap = urlmap
131296	return c
131297}
131298
131299// RequestId sets the optional parameter "requestId": begin_interface:
131300// MixerMutationRequestBuilder Request ID to support idempotency.
131301func (c *RegionUrlMapsInsertCall) RequestId(requestId string) *RegionUrlMapsInsertCall {
131302	c.urlParams_.Set("requestId", requestId)
131303	return c
131304}
131305
131306// Fields allows partial responses to be retrieved. See
131307// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131308// for more information.
131309func (c *RegionUrlMapsInsertCall) Fields(s ...googleapi.Field) *RegionUrlMapsInsertCall {
131310	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131311	return c
131312}
131313
131314// Context sets the context to be used in this call's Do method. Any
131315// pending HTTP request will be aborted if the provided context is
131316// canceled.
131317func (c *RegionUrlMapsInsertCall) Context(ctx context.Context) *RegionUrlMapsInsertCall {
131318	c.ctx_ = ctx
131319	return c
131320}
131321
131322// Header returns an http.Header that can be modified by the caller to
131323// add HTTP headers to the request.
131324func (c *RegionUrlMapsInsertCall) Header() http.Header {
131325	if c.header_ == nil {
131326		c.header_ = make(http.Header)
131327	}
131328	return c.header_
131329}
131330
131331func (c *RegionUrlMapsInsertCall) doRequest(alt string) (*http.Response, error) {
131332	reqHeaders := make(http.Header)
131333	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
131334	for k, v := range c.header_ {
131335		reqHeaders[k] = v
131336	}
131337	reqHeaders.Set("User-Agent", c.s.userAgent())
131338	var body io.Reader = nil
131339	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
131340	if err != nil {
131341		return nil, err
131342	}
131343	reqHeaders.Set("Content-Type", "application/json")
131344	c.urlParams_.Set("alt", alt)
131345	c.urlParams_.Set("prettyPrint", "false")
131346	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps")
131347	urls += "?" + c.urlParams_.Encode()
131348	req, err := http.NewRequest("POST", urls, body)
131349	if err != nil {
131350		return nil, err
131351	}
131352	req.Header = reqHeaders
131353	googleapi.Expand(req.URL, map[string]string{
131354		"project": c.project,
131355		"region":  c.region,
131356	})
131357	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131358}
131359
131360// Do executes the "compute.regionUrlMaps.insert" call.
131361// Exactly one of *Operation or error will be non-nil. Any non-2xx
131362// status code is an error. Response headers are in either
131363// *Operation.ServerResponse.Header or (if a response was returned at
131364// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
131365// to check whether the returned error was because
131366// http.StatusNotModified was returned.
131367func (c *RegionUrlMapsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
131368	gensupport.SetOptions(c.urlParams_, opts...)
131369	res, err := c.doRequest("json")
131370	if res != nil && res.StatusCode == http.StatusNotModified {
131371		if res.Body != nil {
131372			res.Body.Close()
131373		}
131374		return nil, &googleapi.Error{
131375			Code:   res.StatusCode,
131376			Header: res.Header,
131377		}
131378	}
131379	if err != nil {
131380		return nil, err
131381	}
131382	defer googleapi.CloseBody(res)
131383	if err := googleapi.CheckResponse(res); err != nil {
131384		return nil, err
131385	}
131386	ret := &Operation{
131387		ServerResponse: googleapi.ServerResponse{
131388			Header:         res.Header,
131389			HTTPStatusCode: res.StatusCode,
131390		},
131391	}
131392	target := &ret
131393	if err := gensupport.DecodeResponse(target, res); err != nil {
131394		return nil, err
131395	}
131396	return ret, nil
131397	// {
131398	//   "description": "Creates a UrlMap resource in the specified project using the data included in the request.",
131399	//   "httpMethod": "POST",
131400	//   "id": "compute.regionUrlMaps.insert",
131401	//   "parameterOrder": [
131402	//     "project",
131403	//     "region"
131404	//   ],
131405	//   "parameters": {
131406	//     "project": {
131407	//       "description": "Project ID for this request.",
131408	//       "location": "path",
131409	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131410	//       "required": true,
131411	//       "type": "string"
131412	//     },
131413	//     "region": {
131414	//       "description": "Name of the region scoping this request.",
131415	//       "location": "path",
131416	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131417	//       "required": true,
131418	//       "type": "string"
131419	//     },
131420	//     "requestId": {
131421	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
131422	//       "location": "query",
131423	//       "type": "string"
131424	//     }
131425	//   },
131426	//   "path": "projects/{project}/regions/{region}/urlMaps",
131427	//   "request": {
131428	//     "$ref": "UrlMap"
131429	//   },
131430	//   "response": {
131431	//     "$ref": "Operation"
131432	//   },
131433	//   "scopes": [
131434	//     "https://www.googleapis.com/auth/cloud-platform",
131435	//     "https://www.googleapis.com/auth/compute"
131436	//   ]
131437	// }
131438
131439}
131440
131441// method id "compute.regionUrlMaps.list":
131442
131443type RegionUrlMapsListCall struct {
131444	s            *Service
131445	project      string
131446	region       string
131447	urlParams_   gensupport.URLParams
131448	ifNoneMatch_ string
131449	ctx_         context.Context
131450	header_      http.Header
131451}
131452
131453// List: Retrieves the list of UrlMap resources available to the
131454// specified project in the specified region.
131455//
131456// - project: Project ID for this request.
131457// - region: Name of the region scoping this request.
131458func (r *RegionUrlMapsService) List(project string, region string) *RegionUrlMapsListCall {
131459	c := &RegionUrlMapsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131460	c.project = project
131461	c.region = region
131462	return c
131463}
131464
131465// Filter sets the optional parameter "filter": A filter expression that
131466// filters resources listed in the response. The expression must specify
131467// the field name, a comparison operator, and the value that you want to
131468// use for filtering. The value must be a string, a number, or a
131469// boolean. The comparison operator must be either `=`, `!=`, `>`, or
131470// `<`.
131471//
131472// For example, if you are filtering Compute Engine instances, you can
131473// exclude instances named `example-instance` by specifying `name !=
131474// example-instance`.
131475//
131476// You can also filter nested fields. For example, you could specify
131477// `scheduling.automaticRestart = false` to include instances only if
131478// they are not scheduled for automatic restarts. You can use filtering
131479// on nested fields to filter based on resource labels.
131480//
131481// To filter on multiple expressions, provide each separate expression
131482// within parentheses. For example: ``` (scheduling.automaticRestart =
131483// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
131484// is an `AND` expression. However, you can include `AND` and `OR`
131485// expressions explicitly. For example: ``` (cpuPlatform = "Intel
131486// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
131487// (scheduling.automaticRestart = true) ```
131488func (c *RegionUrlMapsListCall) Filter(filter string) *RegionUrlMapsListCall {
131489	c.urlParams_.Set("filter", filter)
131490	return c
131491}
131492
131493// MaxResults sets the optional parameter "maxResults": The maximum
131494// number of results per page that should be returned. If the number of
131495// available results is larger than `maxResults`, Compute Engine returns
131496// a `nextPageToken` that can be used to get the next page of results in
131497// subsequent list requests. Acceptable values are `0` to `500`,
131498// inclusive. (Default: `500`)
131499func (c *RegionUrlMapsListCall) MaxResults(maxResults int64) *RegionUrlMapsListCall {
131500	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
131501	return c
131502}
131503
131504// OrderBy sets the optional parameter "orderBy": Sorts list results by
131505// a certain order. By default, results are returned in alphanumerical
131506// order based on the resource name.
131507//
131508// You can also sort results in descending order based on the creation
131509// timestamp using `orderBy="creationTimestamp desc". This sorts
131510// results based on the `creationTimestamp` field in reverse
131511// chronological order (newest result first). Use this to sort resources
131512// like operations so that the newest operation is returned
131513// first.
131514//
131515// Currently, only sorting by `name` or `creationTimestamp desc` is
131516// supported.
131517func (c *RegionUrlMapsListCall) OrderBy(orderBy string) *RegionUrlMapsListCall {
131518	c.urlParams_.Set("orderBy", orderBy)
131519	return c
131520}
131521
131522// PageToken sets the optional parameter "pageToken": Specifies a page
131523// token to use. Set `pageToken` to the `nextPageToken` returned by a
131524// previous list request to get the next page of results.
131525func (c *RegionUrlMapsListCall) PageToken(pageToken string) *RegionUrlMapsListCall {
131526	c.urlParams_.Set("pageToken", pageToken)
131527	return c
131528}
131529
131530// ReturnPartialSuccess sets the optional parameter
131531// "returnPartialSuccess": Opt-in for partial success behavior which
131532// provides partial results in case of failure. The default value is
131533// false.
131534func (c *RegionUrlMapsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionUrlMapsListCall {
131535	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
131536	return c
131537}
131538
131539// Fields allows partial responses to be retrieved. See
131540// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131541// for more information.
131542func (c *RegionUrlMapsListCall) Fields(s ...googleapi.Field) *RegionUrlMapsListCall {
131543	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131544	return c
131545}
131546
131547// IfNoneMatch sets the optional parameter which makes the operation
131548// fail if the object's ETag matches the given value. This is useful for
131549// getting updates only after the object has changed since the last
131550// request. Use googleapi.IsNotModified to check whether the response
131551// error from Do is the result of In-None-Match.
131552func (c *RegionUrlMapsListCall) IfNoneMatch(entityTag string) *RegionUrlMapsListCall {
131553	c.ifNoneMatch_ = entityTag
131554	return c
131555}
131556
131557// Context sets the context to be used in this call's Do method. Any
131558// pending HTTP request will be aborted if the provided context is
131559// canceled.
131560func (c *RegionUrlMapsListCall) Context(ctx context.Context) *RegionUrlMapsListCall {
131561	c.ctx_ = ctx
131562	return c
131563}
131564
131565// Header returns an http.Header that can be modified by the caller to
131566// add HTTP headers to the request.
131567func (c *RegionUrlMapsListCall) Header() http.Header {
131568	if c.header_ == nil {
131569		c.header_ = make(http.Header)
131570	}
131571	return c.header_
131572}
131573
131574func (c *RegionUrlMapsListCall) doRequest(alt string) (*http.Response, error) {
131575	reqHeaders := make(http.Header)
131576	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
131577	for k, v := range c.header_ {
131578		reqHeaders[k] = v
131579	}
131580	reqHeaders.Set("User-Agent", c.s.userAgent())
131581	if c.ifNoneMatch_ != "" {
131582		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
131583	}
131584	var body io.Reader = nil
131585	c.urlParams_.Set("alt", alt)
131586	c.urlParams_.Set("prettyPrint", "false")
131587	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps")
131588	urls += "?" + c.urlParams_.Encode()
131589	req, err := http.NewRequest("GET", urls, body)
131590	if err != nil {
131591		return nil, err
131592	}
131593	req.Header = reqHeaders
131594	googleapi.Expand(req.URL, map[string]string{
131595		"project": c.project,
131596		"region":  c.region,
131597	})
131598	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131599}
131600
131601// Do executes the "compute.regionUrlMaps.list" call.
131602// Exactly one of *UrlMapList or error will be non-nil. Any non-2xx
131603// status code is an error. Response headers are in either
131604// *UrlMapList.ServerResponse.Header or (if a response was returned at
131605// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
131606// to check whether the returned error was because
131607// http.StatusNotModified was returned.
131608func (c *RegionUrlMapsListCall) Do(opts ...googleapi.CallOption) (*UrlMapList, error) {
131609	gensupport.SetOptions(c.urlParams_, opts...)
131610	res, err := c.doRequest("json")
131611	if res != nil && res.StatusCode == http.StatusNotModified {
131612		if res.Body != nil {
131613			res.Body.Close()
131614		}
131615		return nil, &googleapi.Error{
131616			Code:   res.StatusCode,
131617			Header: res.Header,
131618		}
131619	}
131620	if err != nil {
131621		return nil, err
131622	}
131623	defer googleapi.CloseBody(res)
131624	if err := googleapi.CheckResponse(res); err != nil {
131625		return nil, err
131626	}
131627	ret := &UrlMapList{
131628		ServerResponse: googleapi.ServerResponse{
131629			Header:         res.Header,
131630			HTTPStatusCode: res.StatusCode,
131631		},
131632	}
131633	target := &ret
131634	if err := gensupport.DecodeResponse(target, res); err != nil {
131635		return nil, err
131636	}
131637	return ret, nil
131638	// {
131639	//   "description": "Retrieves the list of UrlMap resources available to the specified project in the specified region.",
131640	//   "httpMethod": "GET",
131641	//   "id": "compute.regionUrlMaps.list",
131642	//   "parameterOrder": [
131643	//     "project",
131644	//     "region"
131645	//   ],
131646	//   "parameters": {
131647	//     "filter": {
131648	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
131649	//       "location": "query",
131650	//       "type": "string"
131651	//     },
131652	//     "maxResults": {
131653	//       "default": "500",
131654	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
131655	//       "format": "uint32",
131656	//       "location": "query",
131657	//       "minimum": "0",
131658	//       "type": "integer"
131659	//     },
131660	//     "orderBy": {
131661	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
131662	//       "location": "query",
131663	//       "type": "string"
131664	//     },
131665	//     "pageToken": {
131666	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
131667	//       "location": "query",
131668	//       "type": "string"
131669	//     },
131670	//     "project": {
131671	//       "description": "Project ID for this request.",
131672	//       "location": "path",
131673	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131674	//       "required": true,
131675	//       "type": "string"
131676	//     },
131677	//     "region": {
131678	//       "description": "Name of the region scoping this request.",
131679	//       "location": "path",
131680	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131681	//       "required": true,
131682	//       "type": "string"
131683	//     },
131684	//     "returnPartialSuccess": {
131685	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
131686	//       "location": "query",
131687	//       "type": "boolean"
131688	//     }
131689	//   },
131690	//   "path": "projects/{project}/regions/{region}/urlMaps",
131691	//   "response": {
131692	//     "$ref": "UrlMapList"
131693	//   },
131694	//   "scopes": [
131695	//     "https://www.googleapis.com/auth/cloud-platform",
131696	//     "https://www.googleapis.com/auth/compute",
131697	//     "https://www.googleapis.com/auth/compute.readonly"
131698	//   ]
131699	// }
131700
131701}
131702
131703// Pages invokes f for each page of results.
131704// A non-nil error returned from f will halt the iteration.
131705// The provided context supersedes any context provided to the Context method.
131706func (c *RegionUrlMapsListCall) Pages(ctx context.Context, f func(*UrlMapList) error) error {
131707	c.ctx_ = ctx
131708	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
131709	for {
131710		x, err := c.Do()
131711		if err != nil {
131712			return err
131713		}
131714		if err := f(x); err != nil {
131715			return err
131716		}
131717		if x.NextPageToken == "" {
131718			return nil
131719		}
131720		c.PageToken(x.NextPageToken)
131721	}
131722}
131723
131724// method id "compute.regionUrlMaps.patch":
131725
131726type RegionUrlMapsPatchCall struct {
131727	s          *Service
131728	project    string
131729	region     string
131730	urlMap     string
131731	urlmap     *UrlMap
131732	urlParams_ gensupport.URLParams
131733	ctx_       context.Context
131734	header_    http.Header
131735}
131736
131737// Patch: Patches the specified UrlMap resource with the data included
131738// in the request. This method supports PATCH semantics and uses JSON
131739// merge patch format and processing rules.
131740//
131741// - project: Project ID for this request.
131742// - region: Name of the region scoping this request.
131743// - urlMap: Name of the UrlMap resource to patch.
131744func (r *RegionUrlMapsService) Patch(project string, region string, urlMap string, urlmap *UrlMap) *RegionUrlMapsPatchCall {
131745	c := &RegionUrlMapsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131746	c.project = project
131747	c.region = region
131748	c.urlMap = urlMap
131749	c.urlmap = urlmap
131750	return c
131751}
131752
131753// RequestId sets the optional parameter "requestId": begin_interface:
131754// MixerMutationRequestBuilder Request ID to support idempotency.
131755func (c *RegionUrlMapsPatchCall) RequestId(requestId string) *RegionUrlMapsPatchCall {
131756	c.urlParams_.Set("requestId", requestId)
131757	return c
131758}
131759
131760// Fields allows partial responses to be retrieved. See
131761// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131762// for more information.
131763func (c *RegionUrlMapsPatchCall) Fields(s ...googleapi.Field) *RegionUrlMapsPatchCall {
131764	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131765	return c
131766}
131767
131768// Context sets the context to be used in this call's Do method. Any
131769// pending HTTP request will be aborted if the provided context is
131770// canceled.
131771func (c *RegionUrlMapsPatchCall) Context(ctx context.Context) *RegionUrlMapsPatchCall {
131772	c.ctx_ = ctx
131773	return c
131774}
131775
131776// Header returns an http.Header that can be modified by the caller to
131777// add HTTP headers to the request.
131778func (c *RegionUrlMapsPatchCall) Header() http.Header {
131779	if c.header_ == nil {
131780		c.header_ = make(http.Header)
131781	}
131782	return c.header_
131783}
131784
131785func (c *RegionUrlMapsPatchCall) doRequest(alt string) (*http.Response, error) {
131786	reqHeaders := make(http.Header)
131787	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
131788	for k, v := range c.header_ {
131789		reqHeaders[k] = v
131790	}
131791	reqHeaders.Set("User-Agent", c.s.userAgent())
131792	var body io.Reader = nil
131793	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
131794	if err != nil {
131795		return nil, err
131796	}
131797	reqHeaders.Set("Content-Type", "application/json")
131798	c.urlParams_.Set("alt", alt)
131799	c.urlParams_.Set("prettyPrint", "false")
131800	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{urlMap}")
131801	urls += "?" + c.urlParams_.Encode()
131802	req, err := http.NewRequest("PATCH", urls, body)
131803	if err != nil {
131804		return nil, err
131805	}
131806	req.Header = reqHeaders
131807	googleapi.Expand(req.URL, map[string]string{
131808		"project": c.project,
131809		"region":  c.region,
131810		"urlMap":  c.urlMap,
131811	})
131812	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131813}
131814
131815// Do executes the "compute.regionUrlMaps.patch" call.
131816// Exactly one of *Operation or error will be non-nil. Any non-2xx
131817// status code is an error. Response headers are in either
131818// *Operation.ServerResponse.Header or (if a response was returned at
131819// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
131820// to check whether the returned error was because
131821// http.StatusNotModified was returned.
131822func (c *RegionUrlMapsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
131823	gensupport.SetOptions(c.urlParams_, opts...)
131824	res, err := c.doRequest("json")
131825	if res != nil && res.StatusCode == http.StatusNotModified {
131826		if res.Body != nil {
131827			res.Body.Close()
131828		}
131829		return nil, &googleapi.Error{
131830			Code:   res.StatusCode,
131831			Header: res.Header,
131832		}
131833	}
131834	if err != nil {
131835		return nil, err
131836	}
131837	defer googleapi.CloseBody(res)
131838	if err := googleapi.CheckResponse(res); err != nil {
131839		return nil, err
131840	}
131841	ret := &Operation{
131842		ServerResponse: googleapi.ServerResponse{
131843			Header:         res.Header,
131844			HTTPStatusCode: res.StatusCode,
131845		},
131846	}
131847	target := &ret
131848	if err := gensupport.DecodeResponse(target, res); err != nil {
131849		return nil, err
131850	}
131851	return ret, nil
131852	// {
131853	//   "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.",
131854	//   "httpMethod": "PATCH",
131855	//   "id": "compute.regionUrlMaps.patch",
131856	//   "parameterOrder": [
131857	//     "project",
131858	//     "region",
131859	//     "urlMap"
131860	//   ],
131861	//   "parameters": {
131862	//     "project": {
131863	//       "description": "Project ID for this request.",
131864	//       "location": "path",
131865	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131866	//       "required": true,
131867	//       "type": "string"
131868	//     },
131869	//     "region": {
131870	//       "description": "Name of the region scoping this request.",
131871	//       "location": "path",
131872	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
131873	//       "required": true,
131874	//       "type": "string"
131875	//     },
131876	//     "requestId": {
131877	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
131878	//       "location": "query",
131879	//       "type": "string"
131880	//     },
131881	//     "urlMap": {
131882	//       "description": "Name of the UrlMap resource to patch.",
131883	//       "location": "path",
131884	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
131885	//       "required": true,
131886	//       "type": "string"
131887	//     }
131888	//   },
131889	//   "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}",
131890	//   "request": {
131891	//     "$ref": "UrlMap"
131892	//   },
131893	//   "response": {
131894	//     "$ref": "Operation"
131895	//   },
131896	//   "scopes": [
131897	//     "https://www.googleapis.com/auth/cloud-platform",
131898	//     "https://www.googleapis.com/auth/compute"
131899	//   ]
131900	// }
131901
131902}
131903
131904// method id "compute.regionUrlMaps.update":
131905
131906type RegionUrlMapsUpdateCall struct {
131907	s          *Service
131908	project    string
131909	region     string
131910	urlMap     string
131911	urlmap     *UrlMap
131912	urlParams_ gensupport.URLParams
131913	ctx_       context.Context
131914	header_    http.Header
131915}
131916
131917// Update: Updates the specified UrlMap resource with the data included
131918// in the request.
131919//
131920// - project: Project ID for this request.
131921// - region: Name of the region scoping this request.
131922// - urlMap: Name of the UrlMap resource to update.
131923func (r *RegionUrlMapsService) Update(project string, region string, urlMap string, urlmap *UrlMap) *RegionUrlMapsUpdateCall {
131924	c := &RegionUrlMapsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131925	c.project = project
131926	c.region = region
131927	c.urlMap = urlMap
131928	c.urlmap = urlmap
131929	return c
131930}
131931
131932// RequestId sets the optional parameter "requestId": begin_interface:
131933// MixerMutationRequestBuilder Request ID to support idempotency.
131934func (c *RegionUrlMapsUpdateCall) RequestId(requestId string) *RegionUrlMapsUpdateCall {
131935	c.urlParams_.Set("requestId", requestId)
131936	return c
131937}
131938
131939// Fields allows partial responses to be retrieved. See
131940// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131941// for more information.
131942func (c *RegionUrlMapsUpdateCall) Fields(s ...googleapi.Field) *RegionUrlMapsUpdateCall {
131943	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131944	return c
131945}
131946
131947// Context sets the context to be used in this call's Do method. Any
131948// pending HTTP request will be aborted if the provided context is
131949// canceled.
131950func (c *RegionUrlMapsUpdateCall) Context(ctx context.Context) *RegionUrlMapsUpdateCall {
131951	c.ctx_ = ctx
131952	return c
131953}
131954
131955// Header returns an http.Header that can be modified by the caller to
131956// add HTTP headers to the request.
131957func (c *RegionUrlMapsUpdateCall) Header() http.Header {
131958	if c.header_ == nil {
131959		c.header_ = make(http.Header)
131960	}
131961	return c.header_
131962}
131963
131964func (c *RegionUrlMapsUpdateCall) doRequest(alt string) (*http.Response, error) {
131965	reqHeaders := make(http.Header)
131966	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
131967	for k, v := range c.header_ {
131968		reqHeaders[k] = v
131969	}
131970	reqHeaders.Set("User-Agent", c.s.userAgent())
131971	var body io.Reader = nil
131972	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
131973	if err != nil {
131974		return nil, err
131975	}
131976	reqHeaders.Set("Content-Type", "application/json")
131977	c.urlParams_.Set("alt", alt)
131978	c.urlParams_.Set("prettyPrint", "false")
131979	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{urlMap}")
131980	urls += "?" + c.urlParams_.Encode()
131981	req, err := http.NewRequest("PUT", urls, body)
131982	if err != nil {
131983		return nil, err
131984	}
131985	req.Header = reqHeaders
131986	googleapi.Expand(req.URL, map[string]string{
131987		"project": c.project,
131988		"region":  c.region,
131989		"urlMap":  c.urlMap,
131990	})
131991	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131992}
131993
131994// Do executes the "compute.regionUrlMaps.update" call.
131995// Exactly one of *Operation or error will be non-nil. Any non-2xx
131996// status code is an error. Response headers are in either
131997// *Operation.ServerResponse.Header or (if a response was returned at
131998// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
131999// to check whether the returned error was because
132000// http.StatusNotModified was returned.
132001func (c *RegionUrlMapsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
132002	gensupport.SetOptions(c.urlParams_, opts...)
132003	res, err := c.doRequest("json")
132004	if res != nil && res.StatusCode == http.StatusNotModified {
132005		if res.Body != nil {
132006			res.Body.Close()
132007		}
132008		return nil, &googleapi.Error{
132009			Code:   res.StatusCode,
132010			Header: res.Header,
132011		}
132012	}
132013	if err != nil {
132014		return nil, err
132015	}
132016	defer googleapi.CloseBody(res)
132017	if err := googleapi.CheckResponse(res); err != nil {
132018		return nil, err
132019	}
132020	ret := &Operation{
132021		ServerResponse: googleapi.ServerResponse{
132022			Header:         res.Header,
132023			HTTPStatusCode: res.StatusCode,
132024		},
132025	}
132026	target := &ret
132027	if err := gensupport.DecodeResponse(target, res); err != nil {
132028		return nil, err
132029	}
132030	return ret, nil
132031	// {
132032	//   "description": "Updates the specified UrlMap resource with the data included in the request.",
132033	//   "httpMethod": "PUT",
132034	//   "id": "compute.regionUrlMaps.update",
132035	//   "parameterOrder": [
132036	//     "project",
132037	//     "region",
132038	//     "urlMap"
132039	//   ],
132040	//   "parameters": {
132041	//     "project": {
132042	//       "description": "Project ID for this request.",
132043	//       "location": "path",
132044	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132045	//       "required": true,
132046	//       "type": "string"
132047	//     },
132048	//     "region": {
132049	//       "description": "Name of the region scoping this request.",
132050	//       "location": "path",
132051	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
132052	//       "required": true,
132053	//       "type": "string"
132054	//     },
132055	//     "requestId": {
132056	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
132057	//       "location": "query",
132058	//       "type": "string"
132059	//     },
132060	//     "urlMap": {
132061	//       "description": "Name of the UrlMap resource to update.",
132062	//       "location": "path",
132063	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
132064	//       "required": true,
132065	//       "type": "string"
132066	//     }
132067	//   },
132068	//   "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}",
132069	//   "request": {
132070	//     "$ref": "UrlMap"
132071	//   },
132072	//   "response": {
132073	//     "$ref": "Operation"
132074	//   },
132075	//   "scopes": [
132076	//     "https://www.googleapis.com/auth/cloud-platform",
132077	//     "https://www.googleapis.com/auth/compute"
132078	//   ]
132079	// }
132080
132081}
132082
132083// method id "compute.regionUrlMaps.validate":
132084
132085type RegionUrlMapsValidateCall struct {
132086	s                            *Service
132087	project                      string
132088	region                       string
132089	urlMap                       string
132090	regionurlmapsvalidaterequest *RegionUrlMapsValidateRequest
132091	urlParams_                   gensupport.URLParams
132092	ctx_                         context.Context
132093	header_                      http.Header
132094}
132095
132096// Validate: Runs static validation for the UrlMap. In particular, the
132097// tests of the provided UrlMap will be run. Calling this method does
132098// NOT create the UrlMap.
132099//
132100// - project: Project ID for this request.
132101// - region: Name of the region scoping this request.
132102// - urlMap: Name of the UrlMap resource to be validated as.
132103func (r *RegionUrlMapsService) Validate(project string, region string, urlMap string, regionurlmapsvalidaterequest *RegionUrlMapsValidateRequest) *RegionUrlMapsValidateCall {
132104	c := &RegionUrlMapsValidateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132105	c.project = project
132106	c.region = region
132107	c.urlMap = urlMap
132108	c.regionurlmapsvalidaterequest = regionurlmapsvalidaterequest
132109	return c
132110}
132111
132112// Fields allows partial responses to be retrieved. See
132113// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132114// for more information.
132115func (c *RegionUrlMapsValidateCall) Fields(s ...googleapi.Field) *RegionUrlMapsValidateCall {
132116	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132117	return c
132118}
132119
132120// Context sets the context to be used in this call's Do method. Any
132121// pending HTTP request will be aborted if the provided context is
132122// canceled.
132123func (c *RegionUrlMapsValidateCall) Context(ctx context.Context) *RegionUrlMapsValidateCall {
132124	c.ctx_ = ctx
132125	return c
132126}
132127
132128// Header returns an http.Header that can be modified by the caller to
132129// add HTTP headers to the request.
132130func (c *RegionUrlMapsValidateCall) Header() http.Header {
132131	if c.header_ == nil {
132132		c.header_ = make(http.Header)
132133	}
132134	return c.header_
132135}
132136
132137func (c *RegionUrlMapsValidateCall) doRequest(alt string) (*http.Response, error) {
132138	reqHeaders := make(http.Header)
132139	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
132140	for k, v := range c.header_ {
132141		reqHeaders[k] = v
132142	}
132143	reqHeaders.Set("User-Agent", c.s.userAgent())
132144	var body io.Reader = nil
132145	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionurlmapsvalidaterequest)
132146	if err != nil {
132147		return nil, err
132148	}
132149	reqHeaders.Set("Content-Type", "application/json")
132150	c.urlParams_.Set("alt", alt)
132151	c.urlParams_.Set("prettyPrint", "false")
132152	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/urlMaps/{urlMap}/validate")
132153	urls += "?" + c.urlParams_.Encode()
132154	req, err := http.NewRequest("POST", urls, body)
132155	if err != nil {
132156		return nil, err
132157	}
132158	req.Header = reqHeaders
132159	googleapi.Expand(req.URL, map[string]string{
132160		"project": c.project,
132161		"region":  c.region,
132162		"urlMap":  c.urlMap,
132163	})
132164	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132165}
132166
132167// Do executes the "compute.regionUrlMaps.validate" call.
132168// Exactly one of *UrlMapsValidateResponse or error will be non-nil. Any
132169// non-2xx status code is an error. Response headers are in either
132170// *UrlMapsValidateResponse.ServerResponse.Header or (if a response was
132171// returned at all) in error.(*googleapi.Error).Header. Use
132172// googleapi.IsNotModified to check whether the returned error was
132173// because http.StatusNotModified was returned.
132174func (c *RegionUrlMapsValidateCall) Do(opts ...googleapi.CallOption) (*UrlMapsValidateResponse, error) {
132175	gensupport.SetOptions(c.urlParams_, opts...)
132176	res, err := c.doRequest("json")
132177	if res != nil && res.StatusCode == http.StatusNotModified {
132178		if res.Body != nil {
132179			res.Body.Close()
132180		}
132181		return nil, &googleapi.Error{
132182			Code:   res.StatusCode,
132183			Header: res.Header,
132184		}
132185	}
132186	if err != nil {
132187		return nil, err
132188	}
132189	defer googleapi.CloseBody(res)
132190	if err := googleapi.CheckResponse(res); err != nil {
132191		return nil, err
132192	}
132193	ret := &UrlMapsValidateResponse{
132194		ServerResponse: googleapi.ServerResponse{
132195			Header:         res.Header,
132196			HTTPStatusCode: res.StatusCode,
132197		},
132198	}
132199	target := &ret
132200	if err := gensupport.DecodeResponse(target, res); err != nil {
132201		return nil, err
132202	}
132203	return ret, nil
132204	// {
132205	//   "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.",
132206	//   "httpMethod": "POST",
132207	//   "id": "compute.regionUrlMaps.validate",
132208	//   "parameterOrder": [
132209	//     "project",
132210	//     "region",
132211	//     "urlMap"
132212	//   ],
132213	//   "parameters": {
132214	//     "project": {
132215	//       "description": "Project ID for this request.",
132216	//       "location": "path",
132217	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132218	//       "required": true,
132219	//       "type": "string"
132220	//     },
132221	//     "region": {
132222	//       "description": "Name of the region scoping this request.",
132223	//       "location": "path",
132224	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
132225	//       "required": true,
132226	//       "type": "string"
132227	//     },
132228	//     "urlMap": {
132229	//       "description": "Name of the UrlMap resource to be validated as.",
132230	//       "location": "path",
132231	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
132232	//       "required": true,
132233	//       "type": "string"
132234	//     }
132235	//   },
132236	//   "path": "projects/{project}/regions/{region}/urlMaps/{urlMap}/validate",
132237	//   "request": {
132238	//     "$ref": "RegionUrlMapsValidateRequest"
132239	//   },
132240	//   "response": {
132241	//     "$ref": "UrlMapsValidateResponse"
132242	//   },
132243	//   "scopes": [
132244	//     "https://www.googleapis.com/auth/cloud-platform",
132245	//     "https://www.googleapis.com/auth/compute"
132246	//   ]
132247	// }
132248
132249}
132250
132251// method id "compute.regions.get":
132252
132253type RegionsGetCall struct {
132254	s            *Service
132255	project      string
132256	region       string
132257	urlParams_   gensupport.URLParams
132258	ifNoneMatch_ string
132259	ctx_         context.Context
132260	header_      http.Header
132261}
132262
132263// Get: Returns the specified Region resource. Gets a list of available
132264// regions by making a list() request.
132265//
132266// - project: Project ID for this request.
132267// - region: Name of the region resource to return.
132268// For details, see https://cloud.google.com/compute/docs/reference/latest/regions/get
132269func (r *RegionsService) Get(project string, region string) *RegionsGetCall {
132270	c := &RegionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132271	c.project = project
132272	c.region = region
132273	return c
132274}
132275
132276// Fields allows partial responses to be retrieved. See
132277// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132278// for more information.
132279func (c *RegionsGetCall) Fields(s ...googleapi.Field) *RegionsGetCall {
132280	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132281	return c
132282}
132283
132284// IfNoneMatch sets the optional parameter which makes the operation
132285// fail if the object's ETag matches the given value. This is useful for
132286// getting updates only after the object has changed since the last
132287// request. Use googleapi.IsNotModified to check whether the response
132288// error from Do is the result of In-None-Match.
132289func (c *RegionsGetCall) IfNoneMatch(entityTag string) *RegionsGetCall {
132290	c.ifNoneMatch_ = entityTag
132291	return c
132292}
132293
132294// Context sets the context to be used in this call's Do method. Any
132295// pending HTTP request will be aborted if the provided context is
132296// canceled.
132297func (c *RegionsGetCall) Context(ctx context.Context) *RegionsGetCall {
132298	c.ctx_ = ctx
132299	return c
132300}
132301
132302// Header returns an http.Header that can be modified by the caller to
132303// add HTTP headers to the request.
132304func (c *RegionsGetCall) Header() http.Header {
132305	if c.header_ == nil {
132306		c.header_ = make(http.Header)
132307	}
132308	return c.header_
132309}
132310
132311func (c *RegionsGetCall) doRequest(alt string) (*http.Response, error) {
132312	reqHeaders := make(http.Header)
132313	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
132314	for k, v := range c.header_ {
132315		reqHeaders[k] = v
132316	}
132317	reqHeaders.Set("User-Agent", c.s.userAgent())
132318	if c.ifNoneMatch_ != "" {
132319		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
132320	}
132321	var body io.Reader = nil
132322	c.urlParams_.Set("alt", alt)
132323	c.urlParams_.Set("prettyPrint", "false")
132324	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}")
132325	urls += "?" + c.urlParams_.Encode()
132326	req, err := http.NewRequest("GET", urls, body)
132327	if err != nil {
132328		return nil, err
132329	}
132330	req.Header = reqHeaders
132331	googleapi.Expand(req.URL, map[string]string{
132332		"project": c.project,
132333		"region":  c.region,
132334	})
132335	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132336}
132337
132338// Do executes the "compute.regions.get" call.
132339// Exactly one of *Region or error will be non-nil. Any non-2xx status
132340// code is an error. Response headers are in either
132341// *Region.ServerResponse.Header or (if a response was returned at all)
132342// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
132343// check whether the returned error was because http.StatusNotModified
132344// was returned.
132345func (c *RegionsGetCall) Do(opts ...googleapi.CallOption) (*Region, error) {
132346	gensupport.SetOptions(c.urlParams_, opts...)
132347	res, err := c.doRequest("json")
132348	if res != nil && res.StatusCode == http.StatusNotModified {
132349		if res.Body != nil {
132350			res.Body.Close()
132351		}
132352		return nil, &googleapi.Error{
132353			Code:   res.StatusCode,
132354			Header: res.Header,
132355		}
132356	}
132357	if err != nil {
132358		return nil, err
132359	}
132360	defer googleapi.CloseBody(res)
132361	if err := googleapi.CheckResponse(res); err != nil {
132362		return nil, err
132363	}
132364	ret := &Region{
132365		ServerResponse: googleapi.ServerResponse{
132366			Header:         res.Header,
132367			HTTPStatusCode: res.StatusCode,
132368		},
132369	}
132370	target := &ret
132371	if err := gensupport.DecodeResponse(target, res); err != nil {
132372		return nil, err
132373	}
132374	return ret, nil
132375	// {
132376	//   "description": "Returns the specified Region resource. Gets a list of available regions by making a list() request.",
132377	//   "httpMethod": "GET",
132378	//   "id": "compute.regions.get",
132379	//   "parameterOrder": [
132380	//     "project",
132381	//     "region"
132382	//   ],
132383	//   "parameters": {
132384	//     "project": {
132385	//       "description": "Project ID for this request.",
132386	//       "location": "path",
132387	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132388	//       "required": true,
132389	//       "type": "string"
132390	//     },
132391	//     "region": {
132392	//       "description": "Name of the region resource to return.",
132393	//       "location": "path",
132394	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
132395	//       "required": true,
132396	//       "type": "string"
132397	//     }
132398	//   },
132399	//   "path": "projects/{project}/regions/{region}",
132400	//   "response": {
132401	//     "$ref": "Region"
132402	//   },
132403	//   "scopes": [
132404	//     "https://www.googleapis.com/auth/cloud-platform",
132405	//     "https://www.googleapis.com/auth/compute",
132406	//     "https://www.googleapis.com/auth/compute.readonly"
132407	//   ]
132408	// }
132409
132410}
132411
132412// method id "compute.regions.list":
132413
132414type RegionsListCall struct {
132415	s            *Service
132416	project      string
132417	urlParams_   gensupport.URLParams
132418	ifNoneMatch_ string
132419	ctx_         context.Context
132420	header_      http.Header
132421}
132422
132423// List: Retrieves the list of region resources available to the
132424// specified project.
132425//
132426// - project: Project ID for this request.
132427// For details, see https://cloud.google.com/compute/docs/reference/latest/regions/list
132428func (r *RegionsService) List(project string) *RegionsListCall {
132429	c := &RegionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132430	c.project = project
132431	return c
132432}
132433
132434// Filter sets the optional parameter "filter": A filter expression that
132435// filters resources listed in the response. The expression must specify
132436// the field name, a comparison operator, and the value that you want to
132437// use for filtering. The value must be a string, a number, or a
132438// boolean. The comparison operator must be either `=`, `!=`, `>`, or
132439// `<`.
132440//
132441// For example, if you are filtering Compute Engine instances, you can
132442// exclude instances named `example-instance` by specifying `name !=
132443// example-instance`.
132444//
132445// You can also filter nested fields. For example, you could specify
132446// `scheduling.automaticRestart = false` to include instances only if
132447// they are not scheduled for automatic restarts. You can use filtering
132448// on nested fields to filter based on resource labels.
132449//
132450// To filter on multiple expressions, provide each separate expression
132451// within parentheses. For example: ``` (scheduling.automaticRestart =
132452// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
132453// is an `AND` expression. However, you can include `AND` and `OR`
132454// expressions explicitly. For example: ``` (cpuPlatform = "Intel
132455// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
132456// (scheduling.automaticRestart = true) ```
132457func (c *RegionsListCall) Filter(filter string) *RegionsListCall {
132458	c.urlParams_.Set("filter", filter)
132459	return c
132460}
132461
132462// MaxResults sets the optional parameter "maxResults": The maximum
132463// number of results per page that should be returned. If the number of
132464// available results is larger than `maxResults`, Compute Engine returns
132465// a `nextPageToken` that can be used to get the next page of results in
132466// subsequent list requests. Acceptable values are `0` to `500`,
132467// inclusive. (Default: `500`)
132468func (c *RegionsListCall) MaxResults(maxResults int64) *RegionsListCall {
132469	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
132470	return c
132471}
132472
132473// OrderBy sets the optional parameter "orderBy": Sorts list results by
132474// a certain order. By default, results are returned in alphanumerical
132475// order based on the resource name.
132476//
132477// You can also sort results in descending order based on the creation
132478// timestamp using `orderBy="creationTimestamp desc". This sorts
132479// results based on the `creationTimestamp` field in reverse
132480// chronological order (newest result first). Use this to sort resources
132481// like operations so that the newest operation is returned
132482// first.
132483//
132484// Currently, only sorting by `name` or `creationTimestamp desc` is
132485// supported.
132486func (c *RegionsListCall) OrderBy(orderBy string) *RegionsListCall {
132487	c.urlParams_.Set("orderBy", orderBy)
132488	return c
132489}
132490
132491// PageToken sets the optional parameter "pageToken": Specifies a page
132492// token to use. Set `pageToken` to the `nextPageToken` returned by a
132493// previous list request to get the next page of results.
132494func (c *RegionsListCall) PageToken(pageToken string) *RegionsListCall {
132495	c.urlParams_.Set("pageToken", pageToken)
132496	return c
132497}
132498
132499// ReturnPartialSuccess sets the optional parameter
132500// "returnPartialSuccess": Opt-in for partial success behavior which
132501// provides partial results in case of failure. The default value is
132502// false.
132503func (c *RegionsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RegionsListCall {
132504	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
132505	return c
132506}
132507
132508// Fields allows partial responses to be retrieved. See
132509// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132510// for more information.
132511func (c *RegionsListCall) Fields(s ...googleapi.Field) *RegionsListCall {
132512	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132513	return c
132514}
132515
132516// IfNoneMatch sets the optional parameter which makes the operation
132517// fail if the object's ETag matches the given value. This is useful for
132518// getting updates only after the object has changed since the last
132519// request. Use googleapi.IsNotModified to check whether the response
132520// error from Do is the result of In-None-Match.
132521func (c *RegionsListCall) IfNoneMatch(entityTag string) *RegionsListCall {
132522	c.ifNoneMatch_ = entityTag
132523	return c
132524}
132525
132526// Context sets the context to be used in this call's Do method. Any
132527// pending HTTP request will be aborted if the provided context is
132528// canceled.
132529func (c *RegionsListCall) Context(ctx context.Context) *RegionsListCall {
132530	c.ctx_ = ctx
132531	return c
132532}
132533
132534// Header returns an http.Header that can be modified by the caller to
132535// add HTTP headers to the request.
132536func (c *RegionsListCall) Header() http.Header {
132537	if c.header_ == nil {
132538		c.header_ = make(http.Header)
132539	}
132540	return c.header_
132541}
132542
132543func (c *RegionsListCall) doRequest(alt string) (*http.Response, error) {
132544	reqHeaders := make(http.Header)
132545	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
132546	for k, v := range c.header_ {
132547		reqHeaders[k] = v
132548	}
132549	reqHeaders.Set("User-Agent", c.s.userAgent())
132550	if c.ifNoneMatch_ != "" {
132551		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
132552	}
132553	var body io.Reader = nil
132554	c.urlParams_.Set("alt", alt)
132555	c.urlParams_.Set("prettyPrint", "false")
132556	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions")
132557	urls += "?" + c.urlParams_.Encode()
132558	req, err := http.NewRequest("GET", urls, body)
132559	if err != nil {
132560		return nil, err
132561	}
132562	req.Header = reqHeaders
132563	googleapi.Expand(req.URL, map[string]string{
132564		"project": c.project,
132565	})
132566	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132567}
132568
132569// Do executes the "compute.regions.list" call.
132570// Exactly one of *RegionList or error will be non-nil. Any non-2xx
132571// status code is an error. Response headers are in either
132572// *RegionList.ServerResponse.Header or (if a response was returned at
132573// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
132574// to check whether the returned error was because
132575// http.StatusNotModified was returned.
132576func (c *RegionsListCall) Do(opts ...googleapi.CallOption) (*RegionList, error) {
132577	gensupport.SetOptions(c.urlParams_, opts...)
132578	res, err := c.doRequest("json")
132579	if res != nil && res.StatusCode == http.StatusNotModified {
132580		if res.Body != nil {
132581			res.Body.Close()
132582		}
132583		return nil, &googleapi.Error{
132584			Code:   res.StatusCode,
132585			Header: res.Header,
132586		}
132587	}
132588	if err != nil {
132589		return nil, err
132590	}
132591	defer googleapi.CloseBody(res)
132592	if err := googleapi.CheckResponse(res); err != nil {
132593		return nil, err
132594	}
132595	ret := &RegionList{
132596		ServerResponse: googleapi.ServerResponse{
132597			Header:         res.Header,
132598			HTTPStatusCode: res.StatusCode,
132599		},
132600	}
132601	target := &ret
132602	if err := gensupport.DecodeResponse(target, res); err != nil {
132603		return nil, err
132604	}
132605	return ret, nil
132606	// {
132607	//   "description": "Retrieves the list of region resources available to the specified project.",
132608	//   "httpMethod": "GET",
132609	//   "id": "compute.regions.list",
132610	//   "parameterOrder": [
132611	//     "project"
132612	//   ],
132613	//   "parameters": {
132614	//     "filter": {
132615	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
132616	//       "location": "query",
132617	//       "type": "string"
132618	//     },
132619	//     "maxResults": {
132620	//       "default": "500",
132621	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
132622	//       "format": "uint32",
132623	//       "location": "query",
132624	//       "minimum": "0",
132625	//       "type": "integer"
132626	//     },
132627	//     "orderBy": {
132628	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
132629	//       "location": "query",
132630	//       "type": "string"
132631	//     },
132632	//     "pageToken": {
132633	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
132634	//       "location": "query",
132635	//       "type": "string"
132636	//     },
132637	//     "project": {
132638	//       "description": "Project ID for this request.",
132639	//       "location": "path",
132640	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132641	//       "required": true,
132642	//       "type": "string"
132643	//     },
132644	//     "returnPartialSuccess": {
132645	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
132646	//       "location": "query",
132647	//       "type": "boolean"
132648	//     }
132649	//   },
132650	//   "path": "projects/{project}/regions",
132651	//   "response": {
132652	//     "$ref": "RegionList"
132653	//   },
132654	//   "scopes": [
132655	//     "https://www.googleapis.com/auth/cloud-platform",
132656	//     "https://www.googleapis.com/auth/compute",
132657	//     "https://www.googleapis.com/auth/compute.readonly"
132658	//   ]
132659	// }
132660
132661}
132662
132663// Pages invokes f for each page of results.
132664// A non-nil error returned from f will halt the iteration.
132665// The provided context supersedes any context provided to the Context method.
132666func (c *RegionsListCall) Pages(ctx context.Context, f func(*RegionList) error) error {
132667	c.ctx_ = ctx
132668	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
132669	for {
132670		x, err := c.Do()
132671		if err != nil {
132672			return err
132673		}
132674		if err := f(x); err != nil {
132675			return err
132676		}
132677		if x.NextPageToken == "" {
132678			return nil
132679		}
132680		c.PageToken(x.NextPageToken)
132681	}
132682}
132683
132684// method id "compute.reservations.aggregatedList":
132685
132686type ReservationsAggregatedListCall struct {
132687	s            *Service
132688	project      string
132689	urlParams_   gensupport.URLParams
132690	ifNoneMatch_ string
132691	ctx_         context.Context
132692	header_      http.Header
132693}
132694
132695// AggregatedList: Retrieves an aggregated list of reservations.
132696//
132697// - project: Project ID for this request.
132698func (r *ReservationsService) AggregatedList(project string) *ReservationsAggregatedListCall {
132699	c := &ReservationsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132700	c.project = project
132701	return c
132702}
132703
132704// Filter sets the optional parameter "filter": A filter expression that
132705// filters resources listed in the response. The expression must specify
132706// the field name, a comparison operator, and the value that you want to
132707// use for filtering. The value must be a string, a number, or a
132708// boolean. The comparison operator must be either `=`, `!=`, `>`, or
132709// `<`.
132710//
132711// For example, if you are filtering Compute Engine instances, you can
132712// exclude instances named `example-instance` by specifying `name !=
132713// example-instance`.
132714//
132715// You can also filter nested fields. For example, you could specify
132716// `scheduling.automaticRestart = false` to include instances only if
132717// they are not scheduled for automatic restarts. You can use filtering
132718// on nested fields to filter based on resource labels.
132719//
132720// To filter on multiple expressions, provide each separate expression
132721// within parentheses. For example: ``` (scheduling.automaticRestart =
132722// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
132723// is an `AND` expression. However, you can include `AND` and `OR`
132724// expressions explicitly. For example: ``` (cpuPlatform = "Intel
132725// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
132726// (scheduling.automaticRestart = true) ```
132727func (c *ReservationsAggregatedListCall) Filter(filter string) *ReservationsAggregatedListCall {
132728	c.urlParams_.Set("filter", filter)
132729	return c
132730}
132731
132732// IncludeAllScopes sets the optional parameter "includeAllScopes":
132733// Indicates whether every visible scope for each scope type (zone,
132734// region, global) should be included in the response. For new resource
132735// types added after this field, the flag has no effect as new resource
132736// types will always include every visible scope for each scope type in
132737// response. For resource types which predate this field, if this flag
132738// is omitted or false, only scopes of the scope types where the
132739// resource type is expected to be found will be included.
132740func (c *ReservationsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ReservationsAggregatedListCall {
132741	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
132742	return c
132743}
132744
132745// MaxResults sets the optional parameter "maxResults": The maximum
132746// number of results per page that should be returned. If the number of
132747// available results is larger than `maxResults`, Compute Engine returns
132748// a `nextPageToken` that can be used to get the next page of results in
132749// subsequent list requests. Acceptable values are `0` to `500`,
132750// inclusive. (Default: `500`)
132751func (c *ReservationsAggregatedListCall) MaxResults(maxResults int64) *ReservationsAggregatedListCall {
132752	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
132753	return c
132754}
132755
132756// OrderBy sets the optional parameter "orderBy": Sorts list results by
132757// a certain order. By default, results are returned in alphanumerical
132758// order based on the resource name.
132759//
132760// You can also sort results in descending order based on the creation
132761// timestamp using `orderBy="creationTimestamp desc". This sorts
132762// results based on the `creationTimestamp` field in reverse
132763// chronological order (newest result first). Use this to sort resources
132764// like operations so that the newest operation is returned
132765// first.
132766//
132767// Currently, only sorting by `name` or `creationTimestamp desc` is
132768// supported.
132769func (c *ReservationsAggregatedListCall) OrderBy(orderBy string) *ReservationsAggregatedListCall {
132770	c.urlParams_.Set("orderBy", orderBy)
132771	return c
132772}
132773
132774// PageToken sets the optional parameter "pageToken": Specifies a page
132775// token to use. Set `pageToken` to the `nextPageToken` returned by a
132776// previous list request to get the next page of results.
132777func (c *ReservationsAggregatedListCall) PageToken(pageToken string) *ReservationsAggregatedListCall {
132778	c.urlParams_.Set("pageToken", pageToken)
132779	return c
132780}
132781
132782// ReturnPartialSuccess sets the optional parameter
132783// "returnPartialSuccess": Opt-in for partial success behavior which
132784// provides partial results in case of failure. The default value is
132785// false.
132786func (c *ReservationsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ReservationsAggregatedListCall {
132787	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
132788	return c
132789}
132790
132791// Fields allows partial responses to be retrieved. See
132792// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132793// for more information.
132794func (c *ReservationsAggregatedListCall) Fields(s ...googleapi.Field) *ReservationsAggregatedListCall {
132795	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132796	return c
132797}
132798
132799// IfNoneMatch sets the optional parameter which makes the operation
132800// fail if the object's ETag matches the given value. This is useful for
132801// getting updates only after the object has changed since the last
132802// request. Use googleapi.IsNotModified to check whether the response
132803// error from Do is the result of In-None-Match.
132804func (c *ReservationsAggregatedListCall) IfNoneMatch(entityTag string) *ReservationsAggregatedListCall {
132805	c.ifNoneMatch_ = entityTag
132806	return c
132807}
132808
132809// Context sets the context to be used in this call's Do method. Any
132810// pending HTTP request will be aborted if the provided context is
132811// canceled.
132812func (c *ReservationsAggregatedListCall) Context(ctx context.Context) *ReservationsAggregatedListCall {
132813	c.ctx_ = ctx
132814	return c
132815}
132816
132817// Header returns an http.Header that can be modified by the caller to
132818// add HTTP headers to the request.
132819func (c *ReservationsAggregatedListCall) Header() http.Header {
132820	if c.header_ == nil {
132821		c.header_ = make(http.Header)
132822	}
132823	return c.header_
132824}
132825
132826func (c *ReservationsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
132827	reqHeaders := make(http.Header)
132828	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
132829	for k, v := range c.header_ {
132830		reqHeaders[k] = v
132831	}
132832	reqHeaders.Set("User-Agent", c.s.userAgent())
132833	if c.ifNoneMatch_ != "" {
132834		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
132835	}
132836	var body io.Reader = nil
132837	c.urlParams_.Set("alt", alt)
132838	c.urlParams_.Set("prettyPrint", "false")
132839	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/reservations")
132840	urls += "?" + c.urlParams_.Encode()
132841	req, err := http.NewRequest("GET", urls, body)
132842	if err != nil {
132843		return nil, err
132844	}
132845	req.Header = reqHeaders
132846	googleapi.Expand(req.URL, map[string]string{
132847		"project": c.project,
132848	})
132849	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132850}
132851
132852// Do executes the "compute.reservations.aggregatedList" call.
132853// Exactly one of *ReservationAggregatedList or error will be non-nil.
132854// Any non-2xx status code is an error. Response headers are in either
132855// *ReservationAggregatedList.ServerResponse.Header or (if a response
132856// was returned at all) in error.(*googleapi.Error).Header. Use
132857// googleapi.IsNotModified to check whether the returned error was
132858// because http.StatusNotModified was returned.
132859func (c *ReservationsAggregatedListCall) Do(opts ...googleapi.CallOption) (*ReservationAggregatedList, error) {
132860	gensupport.SetOptions(c.urlParams_, opts...)
132861	res, err := c.doRequest("json")
132862	if res != nil && res.StatusCode == http.StatusNotModified {
132863		if res.Body != nil {
132864			res.Body.Close()
132865		}
132866		return nil, &googleapi.Error{
132867			Code:   res.StatusCode,
132868			Header: res.Header,
132869		}
132870	}
132871	if err != nil {
132872		return nil, err
132873	}
132874	defer googleapi.CloseBody(res)
132875	if err := googleapi.CheckResponse(res); err != nil {
132876		return nil, err
132877	}
132878	ret := &ReservationAggregatedList{
132879		ServerResponse: googleapi.ServerResponse{
132880			Header:         res.Header,
132881			HTTPStatusCode: res.StatusCode,
132882		},
132883	}
132884	target := &ret
132885	if err := gensupport.DecodeResponse(target, res); err != nil {
132886		return nil, err
132887	}
132888	return ret, nil
132889	// {
132890	//   "description": "Retrieves an aggregated list of reservations.",
132891	//   "httpMethod": "GET",
132892	//   "id": "compute.reservations.aggregatedList",
132893	//   "parameterOrder": [
132894	//     "project"
132895	//   ],
132896	//   "parameters": {
132897	//     "filter": {
132898	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
132899	//       "location": "query",
132900	//       "type": "string"
132901	//     },
132902	//     "includeAllScopes": {
132903	//       "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.",
132904	//       "location": "query",
132905	//       "type": "boolean"
132906	//     },
132907	//     "maxResults": {
132908	//       "default": "500",
132909	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
132910	//       "format": "uint32",
132911	//       "location": "query",
132912	//       "minimum": "0",
132913	//       "type": "integer"
132914	//     },
132915	//     "orderBy": {
132916	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
132917	//       "location": "query",
132918	//       "type": "string"
132919	//     },
132920	//     "pageToken": {
132921	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
132922	//       "location": "query",
132923	//       "type": "string"
132924	//     },
132925	//     "project": {
132926	//       "description": "Project ID for this request.",
132927	//       "location": "path",
132928	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132929	//       "required": true,
132930	//       "type": "string"
132931	//     },
132932	//     "returnPartialSuccess": {
132933	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
132934	//       "location": "query",
132935	//       "type": "boolean"
132936	//     }
132937	//   },
132938	//   "path": "projects/{project}/aggregated/reservations",
132939	//   "response": {
132940	//     "$ref": "ReservationAggregatedList"
132941	//   },
132942	//   "scopes": [
132943	//     "https://www.googleapis.com/auth/cloud-platform",
132944	//     "https://www.googleapis.com/auth/compute",
132945	//     "https://www.googleapis.com/auth/compute.readonly"
132946	//   ]
132947	// }
132948
132949}
132950
132951// Pages invokes f for each page of results.
132952// A non-nil error returned from f will halt the iteration.
132953// The provided context supersedes any context provided to the Context method.
132954func (c *ReservationsAggregatedListCall) Pages(ctx context.Context, f func(*ReservationAggregatedList) error) error {
132955	c.ctx_ = ctx
132956	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
132957	for {
132958		x, err := c.Do()
132959		if err != nil {
132960			return err
132961		}
132962		if err := f(x); err != nil {
132963			return err
132964		}
132965		if x.NextPageToken == "" {
132966			return nil
132967		}
132968		c.PageToken(x.NextPageToken)
132969	}
132970}
132971
132972// method id "compute.reservations.delete":
132973
132974type ReservationsDeleteCall struct {
132975	s           *Service
132976	project     string
132977	zone        string
132978	reservation string
132979	urlParams_  gensupport.URLParams
132980	ctx_        context.Context
132981	header_     http.Header
132982}
132983
132984// Delete: Deletes the specified reservation.
132985//
132986// - project: Project ID for this request.
132987// - reservation: Name of the reservation to delete.
132988// - zone: Name of the zone for this request.
132989func (r *ReservationsService) Delete(project string, zone string, reservation string) *ReservationsDeleteCall {
132990	c := &ReservationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132991	c.project = project
132992	c.zone = zone
132993	c.reservation = reservation
132994	return c
132995}
132996
132997// RequestId sets the optional parameter "requestId": An optional
132998// request ID to identify requests. Specify a unique request ID so that
132999// if you must retry your request, the server will know to ignore the
133000// request if it has already been completed.
133001//
133002// For example, consider a situation where you make an initial request
133003// and the request times out. If you make the request again with the
133004// same request ID, the server can check if original operation with the
133005// same request ID was received, and if so, will ignore the second
133006// request. This prevents clients from accidentally creating duplicate
133007// commitments.
133008//
133009// The request ID must be a valid UUID with the exception that zero UUID
133010// is not supported (00000000-0000-0000-0000-000000000000).
133011func (c *ReservationsDeleteCall) RequestId(requestId string) *ReservationsDeleteCall {
133012	c.urlParams_.Set("requestId", requestId)
133013	return c
133014}
133015
133016// Fields allows partial responses to be retrieved. See
133017// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133018// for more information.
133019func (c *ReservationsDeleteCall) Fields(s ...googleapi.Field) *ReservationsDeleteCall {
133020	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133021	return c
133022}
133023
133024// Context sets the context to be used in this call's Do method. Any
133025// pending HTTP request will be aborted if the provided context is
133026// canceled.
133027func (c *ReservationsDeleteCall) Context(ctx context.Context) *ReservationsDeleteCall {
133028	c.ctx_ = ctx
133029	return c
133030}
133031
133032// Header returns an http.Header that can be modified by the caller to
133033// add HTTP headers to the request.
133034func (c *ReservationsDeleteCall) Header() http.Header {
133035	if c.header_ == nil {
133036		c.header_ = make(http.Header)
133037	}
133038	return c.header_
133039}
133040
133041func (c *ReservationsDeleteCall) doRequest(alt string) (*http.Response, error) {
133042	reqHeaders := make(http.Header)
133043	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
133044	for k, v := range c.header_ {
133045		reqHeaders[k] = v
133046	}
133047	reqHeaders.Set("User-Agent", c.s.userAgent())
133048	var body io.Reader = nil
133049	c.urlParams_.Set("alt", alt)
133050	c.urlParams_.Set("prettyPrint", "false")
133051	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{reservation}")
133052	urls += "?" + c.urlParams_.Encode()
133053	req, err := http.NewRequest("DELETE", urls, body)
133054	if err != nil {
133055		return nil, err
133056	}
133057	req.Header = reqHeaders
133058	googleapi.Expand(req.URL, map[string]string{
133059		"project":     c.project,
133060		"zone":        c.zone,
133061		"reservation": c.reservation,
133062	})
133063	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133064}
133065
133066// Do executes the "compute.reservations.delete" call.
133067// Exactly one of *Operation or error will be non-nil. Any non-2xx
133068// status code is an error. Response headers are in either
133069// *Operation.ServerResponse.Header or (if a response was returned at
133070// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
133071// to check whether the returned error was because
133072// http.StatusNotModified was returned.
133073func (c *ReservationsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
133074	gensupport.SetOptions(c.urlParams_, opts...)
133075	res, err := c.doRequest("json")
133076	if res != nil && res.StatusCode == http.StatusNotModified {
133077		if res.Body != nil {
133078			res.Body.Close()
133079		}
133080		return nil, &googleapi.Error{
133081			Code:   res.StatusCode,
133082			Header: res.Header,
133083		}
133084	}
133085	if err != nil {
133086		return nil, err
133087	}
133088	defer googleapi.CloseBody(res)
133089	if err := googleapi.CheckResponse(res); err != nil {
133090		return nil, err
133091	}
133092	ret := &Operation{
133093		ServerResponse: googleapi.ServerResponse{
133094			Header:         res.Header,
133095			HTTPStatusCode: res.StatusCode,
133096		},
133097	}
133098	target := &ret
133099	if err := gensupport.DecodeResponse(target, res); err != nil {
133100		return nil, err
133101	}
133102	return ret, nil
133103	// {
133104	//   "description": "Deletes the specified reservation.",
133105	//   "httpMethod": "DELETE",
133106	//   "id": "compute.reservations.delete",
133107	//   "parameterOrder": [
133108	//     "project",
133109	//     "zone",
133110	//     "reservation"
133111	//   ],
133112	//   "parameters": {
133113	//     "project": {
133114	//       "description": "Project ID for this request.",
133115	//       "location": "path",
133116	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133117	//       "required": true,
133118	//       "type": "string"
133119	//     },
133120	//     "requestId": {
133121	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
133122	//       "location": "query",
133123	//       "type": "string"
133124	//     },
133125	//     "reservation": {
133126	//       "description": "Name of the reservation to delete.",
133127	//       "location": "path",
133128	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
133129	//       "required": true,
133130	//       "type": "string"
133131	//     },
133132	//     "zone": {
133133	//       "description": "Name of the zone for this request.",
133134	//       "location": "path",
133135	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
133136	//       "required": true,
133137	//       "type": "string"
133138	//     }
133139	//   },
133140	//   "path": "projects/{project}/zones/{zone}/reservations/{reservation}",
133141	//   "response": {
133142	//     "$ref": "Operation"
133143	//   },
133144	//   "scopes": [
133145	//     "https://www.googleapis.com/auth/cloud-platform",
133146	//     "https://www.googleapis.com/auth/compute"
133147	//   ]
133148	// }
133149
133150}
133151
133152// method id "compute.reservations.get":
133153
133154type ReservationsGetCall struct {
133155	s            *Service
133156	project      string
133157	zone         string
133158	reservation  string
133159	urlParams_   gensupport.URLParams
133160	ifNoneMatch_ string
133161	ctx_         context.Context
133162	header_      http.Header
133163}
133164
133165// Get: Retrieves information about the specified reservation.
133166//
133167// - project: Project ID for this request.
133168// - reservation: Name of the reservation to retrieve.
133169// - zone: Name of the zone for this request.
133170func (r *ReservationsService) Get(project string, zone string, reservation string) *ReservationsGetCall {
133171	c := &ReservationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133172	c.project = project
133173	c.zone = zone
133174	c.reservation = reservation
133175	return c
133176}
133177
133178// Fields allows partial responses to be retrieved. See
133179// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133180// for more information.
133181func (c *ReservationsGetCall) Fields(s ...googleapi.Field) *ReservationsGetCall {
133182	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133183	return c
133184}
133185
133186// IfNoneMatch sets the optional parameter which makes the operation
133187// fail if the object's ETag matches the given value. This is useful for
133188// getting updates only after the object has changed since the last
133189// request. Use googleapi.IsNotModified to check whether the response
133190// error from Do is the result of In-None-Match.
133191func (c *ReservationsGetCall) IfNoneMatch(entityTag string) *ReservationsGetCall {
133192	c.ifNoneMatch_ = entityTag
133193	return c
133194}
133195
133196// Context sets the context to be used in this call's Do method. Any
133197// pending HTTP request will be aborted if the provided context is
133198// canceled.
133199func (c *ReservationsGetCall) Context(ctx context.Context) *ReservationsGetCall {
133200	c.ctx_ = ctx
133201	return c
133202}
133203
133204// Header returns an http.Header that can be modified by the caller to
133205// add HTTP headers to the request.
133206func (c *ReservationsGetCall) Header() http.Header {
133207	if c.header_ == nil {
133208		c.header_ = make(http.Header)
133209	}
133210	return c.header_
133211}
133212
133213func (c *ReservationsGetCall) doRequest(alt string) (*http.Response, error) {
133214	reqHeaders := make(http.Header)
133215	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
133216	for k, v := range c.header_ {
133217		reqHeaders[k] = v
133218	}
133219	reqHeaders.Set("User-Agent", c.s.userAgent())
133220	if c.ifNoneMatch_ != "" {
133221		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
133222	}
133223	var body io.Reader = nil
133224	c.urlParams_.Set("alt", alt)
133225	c.urlParams_.Set("prettyPrint", "false")
133226	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{reservation}")
133227	urls += "?" + c.urlParams_.Encode()
133228	req, err := http.NewRequest("GET", urls, body)
133229	if err != nil {
133230		return nil, err
133231	}
133232	req.Header = reqHeaders
133233	googleapi.Expand(req.URL, map[string]string{
133234		"project":     c.project,
133235		"zone":        c.zone,
133236		"reservation": c.reservation,
133237	})
133238	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133239}
133240
133241// Do executes the "compute.reservations.get" call.
133242// Exactly one of *Reservation or error will be non-nil. Any non-2xx
133243// status code is an error. Response headers are in either
133244// *Reservation.ServerResponse.Header or (if a response was returned at
133245// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
133246// to check whether the returned error was because
133247// http.StatusNotModified was returned.
133248func (c *ReservationsGetCall) Do(opts ...googleapi.CallOption) (*Reservation, error) {
133249	gensupport.SetOptions(c.urlParams_, opts...)
133250	res, err := c.doRequest("json")
133251	if res != nil && res.StatusCode == http.StatusNotModified {
133252		if res.Body != nil {
133253			res.Body.Close()
133254		}
133255		return nil, &googleapi.Error{
133256			Code:   res.StatusCode,
133257			Header: res.Header,
133258		}
133259	}
133260	if err != nil {
133261		return nil, err
133262	}
133263	defer googleapi.CloseBody(res)
133264	if err := googleapi.CheckResponse(res); err != nil {
133265		return nil, err
133266	}
133267	ret := &Reservation{
133268		ServerResponse: googleapi.ServerResponse{
133269			Header:         res.Header,
133270			HTTPStatusCode: res.StatusCode,
133271		},
133272	}
133273	target := &ret
133274	if err := gensupport.DecodeResponse(target, res); err != nil {
133275		return nil, err
133276	}
133277	return ret, nil
133278	// {
133279	//   "description": "Retrieves information about the specified reservation.",
133280	//   "httpMethod": "GET",
133281	//   "id": "compute.reservations.get",
133282	//   "parameterOrder": [
133283	//     "project",
133284	//     "zone",
133285	//     "reservation"
133286	//   ],
133287	//   "parameters": {
133288	//     "project": {
133289	//       "description": "Project ID for this request.",
133290	//       "location": "path",
133291	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133292	//       "required": true,
133293	//       "type": "string"
133294	//     },
133295	//     "reservation": {
133296	//       "description": "Name of the reservation to retrieve.",
133297	//       "location": "path",
133298	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
133299	//       "required": true,
133300	//       "type": "string"
133301	//     },
133302	//     "zone": {
133303	//       "description": "Name of the zone for this request.",
133304	//       "location": "path",
133305	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
133306	//       "required": true,
133307	//       "type": "string"
133308	//     }
133309	//   },
133310	//   "path": "projects/{project}/zones/{zone}/reservations/{reservation}",
133311	//   "response": {
133312	//     "$ref": "Reservation"
133313	//   },
133314	//   "scopes": [
133315	//     "https://www.googleapis.com/auth/cloud-platform",
133316	//     "https://www.googleapis.com/auth/compute",
133317	//     "https://www.googleapis.com/auth/compute.readonly"
133318	//   ]
133319	// }
133320
133321}
133322
133323// method id "compute.reservations.getIamPolicy":
133324
133325type ReservationsGetIamPolicyCall struct {
133326	s            *Service
133327	project      string
133328	zone         string
133329	resource     string
133330	urlParams_   gensupport.URLParams
133331	ifNoneMatch_ string
133332	ctx_         context.Context
133333	header_      http.Header
133334}
133335
133336// GetIamPolicy: Gets the access control policy for a resource. May be
133337// empty if no such policy or resource exists.
133338//
133339// - project: Project ID for this request.
133340// - resource: Name or id of the resource for this request.
133341// - zone: The name of the zone for this request.
133342func (r *ReservationsService) GetIamPolicy(project string, zone string, resource string) *ReservationsGetIamPolicyCall {
133343	c := &ReservationsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133344	c.project = project
133345	c.zone = zone
133346	c.resource = resource
133347	return c
133348}
133349
133350// OptionsRequestedPolicyVersion sets the optional parameter
133351// "optionsRequestedPolicyVersion": Requested IAM Policy version.
133352func (c *ReservationsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ReservationsGetIamPolicyCall {
133353	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
133354	return c
133355}
133356
133357// Fields allows partial responses to be retrieved. See
133358// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133359// for more information.
133360func (c *ReservationsGetIamPolicyCall) Fields(s ...googleapi.Field) *ReservationsGetIamPolicyCall {
133361	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133362	return c
133363}
133364
133365// IfNoneMatch sets the optional parameter which makes the operation
133366// fail if the object's ETag matches the given value. This is useful for
133367// getting updates only after the object has changed since the last
133368// request. Use googleapi.IsNotModified to check whether the response
133369// error from Do is the result of In-None-Match.
133370func (c *ReservationsGetIamPolicyCall) IfNoneMatch(entityTag string) *ReservationsGetIamPolicyCall {
133371	c.ifNoneMatch_ = entityTag
133372	return c
133373}
133374
133375// Context sets the context to be used in this call's Do method. Any
133376// pending HTTP request will be aborted if the provided context is
133377// canceled.
133378func (c *ReservationsGetIamPolicyCall) Context(ctx context.Context) *ReservationsGetIamPolicyCall {
133379	c.ctx_ = ctx
133380	return c
133381}
133382
133383// Header returns an http.Header that can be modified by the caller to
133384// add HTTP headers to the request.
133385func (c *ReservationsGetIamPolicyCall) Header() http.Header {
133386	if c.header_ == nil {
133387		c.header_ = make(http.Header)
133388	}
133389	return c.header_
133390}
133391
133392func (c *ReservationsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
133393	reqHeaders := make(http.Header)
133394	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
133395	for k, v := range c.header_ {
133396		reqHeaders[k] = v
133397	}
133398	reqHeaders.Set("User-Agent", c.s.userAgent())
133399	if c.ifNoneMatch_ != "" {
133400		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
133401	}
133402	var body io.Reader = nil
133403	c.urlParams_.Set("alt", alt)
133404	c.urlParams_.Set("prettyPrint", "false")
133405	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{resource}/getIamPolicy")
133406	urls += "?" + c.urlParams_.Encode()
133407	req, err := http.NewRequest("GET", urls, body)
133408	if err != nil {
133409		return nil, err
133410	}
133411	req.Header = reqHeaders
133412	googleapi.Expand(req.URL, map[string]string{
133413		"project":  c.project,
133414		"zone":     c.zone,
133415		"resource": c.resource,
133416	})
133417	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133418}
133419
133420// Do executes the "compute.reservations.getIamPolicy" call.
133421// Exactly one of *Policy or error will be non-nil. Any non-2xx status
133422// code is an error. Response headers are in either
133423// *Policy.ServerResponse.Header or (if a response was returned at all)
133424// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
133425// check whether the returned error was because http.StatusNotModified
133426// was returned.
133427func (c *ReservationsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
133428	gensupport.SetOptions(c.urlParams_, opts...)
133429	res, err := c.doRequest("json")
133430	if res != nil && res.StatusCode == http.StatusNotModified {
133431		if res.Body != nil {
133432			res.Body.Close()
133433		}
133434		return nil, &googleapi.Error{
133435			Code:   res.StatusCode,
133436			Header: res.Header,
133437		}
133438	}
133439	if err != nil {
133440		return nil, err
133441	}
133442	defer googleapi.CloseBody(res)
133443	if err := googleapi.CheckResponse(res); err != nil {
133444		return nil, err
133445	}
133446	ret := &Policy{
133447		ServerResponse: googleapi.ServerResponse{
133448			Header:         res.Header,
133449			HTTPStatusCode: res.StatusCode,
133450		},
133451	}
133452	target := &ret
133453	if err := gensupport.DecodeResponse(target, res); err != nil {
133454		return nil, err
133455	}
133456	return ret, nil
133457	// {
133458	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
133459	//   "httpMethod": "GET",
133460	//   "id": "compute.reservations.getIamPolicy",
133461	//   "parameterOrder": [
133462	//     "project",
133463	//     "zone",
133464	//     "resource"
133465	//   ],
133466	//   "parameters": {
133467	//     "optionsRequestedPolicyVersion": {
133468	//       "description": "Requested IAM Policy version.",
133469	//       "format": "int32",
133470	//       "location": "query",
133471	//       "type": "integer"
133472	//     },
133473	//     "project": {
133474	//       "description": "Project ID for this request.",
133475	//       "location": "path",
133476	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133477	//       "required": true,
133478	//       "type": "string"
133479	//     },
133480	//     "resource": {
133481	//       "description": "Name or id of the resource for this request.",
133482	//       "location": "path",
133483	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
133484	//       "required": true,
133485	//       "type": "string"
133486	//     },
133487	//     "zone": {
133488	//       "description": "The name of the zone for this request.",
133489	//       "location": "path",
133490	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
133491	//       "required": true,
133492	//       "type": "string"
133493	//     }
133494	//   },
133495	//   "path": "projects/{project}/zones/{zone}/reservations/{resource}/getIamPolicy",
133496	//   "response": {
133497	//     "$ref": "Policy"
133498	//   },
133499	//   "scopes": [
133500	//     "https://www.googleapis.com/auth/cloud-platform",
133501	//     "https://www.googleapis.com/auth/compute",
133502	//     "https://www.googleapis.com/auth/compute.readonly"
133503	//   ]
133504	// }
133505
133506}
133507
133508// method id "compute.reservations.insert":
133509
133510type ReservationsInsertCall struct {
133511	s           *Service
133512	project     string
133513	zone        string
133514	reservation *Reservation
133515	urlParams_  gensupport.URLParams
133516	ctx_        context.Context
133517	header_     http.Header
133518}
133519
133520// Insert: Creates a new reservation. For more information, read
133521// Reserving zonal resources.
133522//
133523// - project: Project ID for this request.
133524// - zone: Name of the zone for this request.
133525func (r *ReservationsService) Insert(project string, zone string, reservation *Reservation) *ReservationsInsertCall {
133526	c := &ReservationsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133527	c.project = project
133528	c.zone = zone
133529	c.reservation = reservation
133530	return c
133531}
133532
133533// RequestId sets the optional parameter "requestId": An optional
133534// request ID to identify requests. Specify a unique request ID so that
133535// if you must retry your request, the server will know to ignore the
133536// request if it has already been completed.
133537//
133538// For example, consider a situation where you make an initial request
133539// and the request times out. If you make the request again with the
133540// same request ID, the server can check if original operation with the
133541// same request ID was received, and if so, will ignore the second
133542// request. This prevents clients from accidentally creating duplicate
133543// commitments.
133544//
133545// The request ID must be a valid UUID with the exception that zero UUID
133546// is not supported (00000000-0000-0000-0000-000000000000).
133547func (c *ReservationsInsertCall) RequestId(requestId string) *ReservationsInsertCall {
133548	c.urlParams_.Set("requestId", requestId)
133549	return c
133550}
133551
133552// Fields allows partial responses to be retrieved. See
133553// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133554// for more information.
133555func (c *ReservationsInsertCall) Fields(s ...googleapi.Field) *ReservationsInsertCall {
133556	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133557	return c
133558}
133559
133560// Context sets the context to be used in this call's Do method. Any
133561// pending HTTP request will be aborted if the provided context is
133562// canceled.
133563func (c *ReservationsInsertCall) Context(ctx context.Context) *ReservationsInsertCall {
133564	c.ctx_ = ctx
133565	return c
133566}
133567
133568// Header returns an http.Header that can be modified by the caller to
133569// add HTTP headers to the request.
133570func (c *ReservationsInsertCall) Header() http.Header {
133571	if c.header_ == nil {
133572		c.header_ = make(http.Header)
133573	}
133574	return c.header_
133575}
133576
133577func (c *ReservationsInsertCall) doRequest(alt string) (*http.Response, error) {
133578	reqHeaders := make(http.Header)
133579	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
133580	for k, v := range c.header_ {
133581		reqHeaders[k] = v
133582	}
133583	reqHeaders.Set("User-Agent", c.s.userAgent())
133584	var body io.Reader = nil
133585	body, err := googleapi.WithoutDataWrapper.JSONReader(c.reservation)
133586	if err != nil {
133587		return nil, err
133588	}
133589	reqHeaders.Set("Content-Type", "application/json")
133590	c.urlParams_.Set("alt", alt)
133591	c.urlParams_.Set("prettyPrint", "false")
133592	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations")
133593	urls += "?" + c.urlParams_.Encode()
133594	req, err := http.NewRequest("POST", urls, body)
133595	if err != nil {
133596		return nil, err
133597	}
133598	req.Header = reqHeaders
133599	googleapi.Expand(req.URL, map[string]string{
133600		"project": c.project,
133601		"zone":    c.zone,
133602	})
133603	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133604}
133605
133606// Do executes the "compute.reservations.insert" call.
133607// Exactly one of *Operation or error will be non-nil. Any non-2xx
133608// status code is an error. Response headers are in either
133609// *Operation.ServerResponse.Header or (if a response was returned at
133610// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
133611// to check whether the returned error was because
133612// http.StatusNotModified was returned.
133613func (c *ReservationsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
133614	gensupport.SetOptions(c.urlParams_, opts...)
133615	res, err := c.doRequest("json")
133616	if res != nil && res.StatusCode == http.StatusNotModified {
133617		if res.Body != nil {
133618			res.Body.Close()
133619		}
133620		return nil, &googleapi.Error{
133621			Code:   res.StatusCode,
133622			Header: res.Header,
133623		}
133624	}
133625	if err != nil {
133626		return nil, err
133627	}
133628	defer googleapi.CloseBody(res)
133629	if err := googleapi.CheckResponse(res); err != nil {
133630		return nil, err
133631	}
133632	ret := &Operation{
133633		ServerResponse: googleapi.ServerResponse{
133634			Header:         res.Header,
133635			HTTPStatusCode: res.StatusCode,
133636		},
133637	}
133638	target := &ret
133639	if err := gensupport.DecodeResponse(target, res); err != nil {
133640		return nil, err
133641	}
133642	return ret, nil
133643	// {
133644	//   "description": "Creates a new reservation. For more information, read Reserving zonal resources.",
133645	//   "httpMethod": "POST",
133646	//   "id": "compute.reservations.insert",
133647	//   "parameterOrder": [
133648	//     "project",
133649	//     "zone"
133650	//   ],
133651	//   "parameters": {
133652	//     "project": {
133653	//       "description": "Project ID for this request.",
133654	//       "location": "path",
133655	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133656	//       "required": true,
133657	//       "type": "string"
133658	//     },
133659	//     "requestId": {
133660	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
133661	//       "location": "query",
133662	//       "type": "string"
133663	//     },
133664	//     "zone": {
133665	//       "description": "Name of the zone for this request.",
133666	//       "location": "path",
133667	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
133668	//       "required": true,
133669	//       "type": "string"
133670	//     }
133671	//   },
133672	//   "path": "projects/{project}/zones/{zone}/reservations",
133673	//   "request": {
133674	//     "$ref": "Reservation"
133675	//   },
133676	//   "response": {
133677	//     "$ref": "Operation"
133678	//   },
133679	//   "scopes": [
133680	//     "https://www.googleapis.com/auth/cloud-platform",
133681	//     "https://www.googleapis.com/auth/compute"
133682	//   ]
133683	// }
133684
133685}
133686
133687// method id "compute.reservations.list":
133688
133689type ReservationsListCall struct {
133690	s            *Service
133691	project      string
133692	zone         string
133693	urlParams_   gensupport.URLParams
133694	ifNoneMatch_ string
133695	ctx_         context.Context
133696	header_      http.Header
133697}
133698
133699// List: A list of all the reservations that have been configured for
133700// the specified project in specified zone.
133701//
133702// - project: Project ID for this request.
133703// - zone: Name of the zone for this request.
133704func (r *ReservationsService) List(project string, zone string) *ReservationsListCall {
133705	c := &ReservationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133706	c.project = project
133707	c.zone = zone
133708	return c
133709}
133710
133711// Filter sets the optional parameter "filter": A filter expression that
133712// filters resources listed in the response. The expression must specify
133713// the field name, a comparison operator, and the value that you want to
133714// use for filtering. The value must be a string, a number, or a
133715// boolean. The comparison operator must be either `=`, `!=`, `>`, or
133716// `<`.
133717//
133718// For example, if you are filtering Compute Engine instances, you can
133719// exclude instances named `example-instance` by specifying `name !=
133720// example-instance`.
133721//
133722// You can also filter nested fields. For example, you could specify
133723// `scheduling.automaticRestart = false` to include instances only if
133724// they are not scheduled for automatic restarts. You can use filtering
133725// on nested fields to filter based on resource labels.
133726//
133727// To filter on multiple expressions, provide each separate expression
133728// within parentheses. For example: ``` (scheduling.automaticRestart =
133729// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
133730// is an `AND` expression. However, you can include `AND` and `OR`
133731// expressions explicitly. For example: ``` (cpuPlatform = "Intel
133732// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
133733// (scheduling.automaticRestart = true) ```
133734func (c *ReservationsListCall) Filter(filter string) *ReservationsListCall {
133735	c.urlParams_.Set("filter", filter)
133736	return c
133737}
133738
133739// MaxResults sets the optional parameter "maxResults": The maximum
133740// number of results per page that should be returned. If the number of
133741// available results is larger than `maxResults`, Compute Engine returns
133742// a `nextPageToken` that can be used to get the next page of results in
133743// subsequent list requests. Acceptable values are `0` to `500`,
133744// inclusive. (Default: `500`)
133745func (c *ReservationsListCall) MaxResults(maxResults int64) *ReservationsListCall {
133746	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
133747	return c
133748}
133749
133750// OrderBy sets the optional parameter "orderBy": Sorts list results by
133751// a certain order. By default, results are returned in alphanumerical
133752// order based on the resource name.
133753//
133754// You can also sort results in descending order based on the creation
133755// timestamp using `orderBy="creationTimestamp desc". This sorts
133756// results based on the `creationTimestamp` field in reverse
133757// chronological order (newest result first). Use this to sort resources
133758// like operations so that the newest operation is returned
133759// first.
133760//
133761// Currently, only sorting by `name` or `creationTimestamp desc` is
133762// supported.
133763func (c *ReservationsListCall) OrderBy(orderBy string) *ReservationsListCall {
133764	c.urlParams_.Set("orderBy", orderBy)
133765	return c
133766}
133767
133768// PageToken sets the optional parameter "pageToken": Specifies a page
133769// token to use. Set `pageToken` to the `nextPageToken` returned by a
133770// previous list request to get the next page of results.
133771func (c *ReservationsListCall) PageToken(pageToken string) *ReservationsListCall {
133772	c.urlParams_.Set("pageToken", pageToken)
133773	return c
133774}
133775
133776// ReturnPartialSuccess sets the optional parameter
133777// "returnPartialSuccess": Opt-in for partial success behavior which
133778// provides partial results in case of failure. The default value is
133779// false.
133780func (c *ReservationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ReservationsListCall {
133781	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
133782	return c
133783}
133784
133785// Fields allows partial responses to be retrieved. See
133786// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133787// for more information.
133788func (c *ReservationsListCall) Fields(s ...googleapi.Field) *ReservationsListCall {
133789	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133790	return c
133791}
133792
133793// IfNoneMatch sets the optional parameter which makes the operation
133794// fail if the object's ETag matches the given value. This is useful for
133795// getting updates only after the object has changed since the last
133796// request. Use googleapi.IsNotModified to check whether the response
133797// error from Do is the result of In-None-Match.
133798func (c *ReservationsListCall) IfNoneMatch(entityTag string) *ReservationsListCall {
133799	c.ifNoneMatch_ = entityTag
133800	return c
133801}
133802
133803// Context sets the context to be used in this call's Do method. Any
133804// pending HTTP request will be aborted if the provided context is
133805// canceled.
133806func (c *ReservationsListCall) Context(ctx context.Context) *ReservationsListCall {
133807	c.ctx_ = ctx
133808	return c
133809}
133810
133811// Header returns an http.Header that can be modified by the caller to
133812// add HTTP headers to the request.
133813func (c *ReservationsListCall) Header() http.Header {
133814	if c.header_ == nil {
133815		c.header_ = make(http.Header)
133816	}
133817	return c.header_
133818}
133819
133820func (c *ReservationsListCall) doRequest(alt string) (*http.Response, error) {
133821	reqHeaders := make(http.Header)
133822	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
133823	for k, v := range c.header_ {
133824		reqHeaders[k] = v
133825	}
133826	reqHeaders.Set("User-Agent", c.s.userAgent())
133827	if c.ifNoneMatch_ != "" {
133828		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
133829	}
133830	var body io.Reader = nil
133831	c.urlParams_.Set("alt", alt)
133832	c.urlParams_.Set("prettyPrint", "false")
133833	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations")
133834	urls += "?" + c.urlParams_.Encode()
133835	req, err := http.NewRequest("GET", urls, body)
133836	if err != nil {
133837		return nil, err
133838	}
133839	req.Header = reqHeaders
133840	googleapi.Expand(req.URL, map[string]string{
133841		"project": c.project,
133842		"zone":    c.zone,
133843	})
133844	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133845}
133846
133847// Do executes the "compute.reservations.list" call.
133848// Exactly one of *ReservationList or error will be non-nil. Any non-2xx
133849// status code is an error. Response headers are in either
133850// *ReservationList.ServerResponse.Header or (if a response was returned
133851// at all) in error.(*googleapi.Error).Header. Use
133852// googleapi.IsNotModified to check whether the returned error was
133853// because http.StatusNotModified was returned.
133854func (c *ReservationsListCall) Do(opts ...googleapi.CallOption) (*ReservationList, error) {
133855	gensupport.SetOptions(c.urlParams_, opts...)
133856	res, err := c.doRequest("json")
133857	if res != nil && res.StatusCode == http.StatusNotModified {
133858		if res.Body != nil {
133859			res.Body.Close()
133860		}
133861		return nil, &googleapi.Error{
133862			Code:   res.StatusCode,
133863			Header: res.Header,
133864		}
133865	}
133866	if err != nil {
133867		return nil, err
133868	}
133869	defer googleapi.CloseBody(res)
133870	if err := googleapi.CheckResponse(res); err != nil {
133871		return nil, err
133872	}
133873	ret := &ReservationList{
133874		ServerResponse: googleapi.ServerResponse{
133875			Header:         res.Header,
133876			HTTPStatusCode: res.StatusCode,
133877		},
133878	}
133879	target := &ret
133880	if err := gensupport.DecodeResponse(target, res); err != nil {
133881		return nil, err
133882	}
133883	return ret, nil
133884	// {
133885	//   "description": "A list of all the reservations that have been configured for the specified project in specified zone.",
133886	//   "httpMethod": "GET",
133887	//   "id": "compute.reservations.list",
133888	//   "parameterOrder": [
133889	//     "project",
133890	//     "zone"
133891	//   ],
133892	//   "parameters": {
133893	//     "filter": {
133894	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
133895	//       "location": "query",
133896	//       "type": "string"
133897	//     },
133898	//     "maxResults": {
133899	//       "default": "500",
133900	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
133901	//       "format": "uint32",
133902	//       "location": "query",
133903	//       "minimum": "0",
133904	//       "type": "integer"
133905	//     },
133906	//     "orderBy": {
133907	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
133908	//       "location": "query",
133909	//       "type": "string"
133910	//     },
133911	//     "pageToken": {
133912	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
133913	//       "location": "query",
133914	//       "type": "string"
133915	//     },
133916	//     "project": {
133917	//       "description": "Project ID for this request.",
133918	//       "location": "path",
133919	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133920	//       "required": true,
133921	//       "type": "string"
133922	//     },
133923	//     "returnPartialSuccess": {
133924	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
133925	//       "location": "query",
133926	//       "type": "boolean"
133927	//     },
133928	//     "zone": {
133929	//       "description": "Name of the zone for this request.",
133930	//       "location": "path",
133931	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
133932	//       "required": true,
133933	//       "type": "string"
133934	//     }
133935	//   },
133936	//   "path": "projects/{project}/zones/{zone}/reservations",
133937	//   "response": {
133938	//     "$ref": "ReservationList"
133939	//   },
133940	//   "scopes": [
133941	//     "https://www.googleapis.com/auth/cloud-platform",
133942	//     "https://www.googleapis.com/auth/compute",
133943	//     "https://www.googleapis.com/auth/compute.readonly"
133944	//   ]
133945	// }
133946
133947}
133948
133949// Pages invokes f for each page of results.
133950// A non-nil error returned from f will halt the iteration.
133951// The provided context supersedes any context provided to the Context method.
133952func (c *ReservationsListCall) Pages(ctx context.Context, f func(*ReservationList) error) error {
133953	c.ctx_ = ctx
133954	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
133955	for {
133956		x, err := c.Do()
133957		if err != nil {
133958			return err
133959		}
133960		if err := f(x); err != nil {
133961			return err
133962		}
133963		if x.NextPageToken == "" {
133964			return nil
133965		}
133966		c.PageToken(x.NextPageToken)
133967	}
133968}
133969
133970// method id "compute.reservations.resize":
133971
133972type ReservationsResizeCall struct {
133973	s                         *Service
133974	project                   string
133975	zone                      string
133976	reservation               string
133977	reservationsresizerequest *ReservationsResizeRequest
133978	urlParams_                gensupport.URLParams
133979	ctx_                      context.Context
133980	header_                   http.Header
133981}
133982
133983// Resize: Resizes the reservation (applicable to standalone
133984// reservations only). For more information, read Modifying
133985// reservations.
133986//
133987// - project: Project ID for this request.
133988// - reservation: Name of the reservation to update.
133989// - zone: Name of the zone for this request.
133990func (r *ReservationsService) Resize(project string, zone string, reservation string, reservationsresizerequest *ReservationsResizeRequest) *ReservationsResizeCall {
133991	c := &ReservationsResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133992	c.project = project
133993	c.zone = zone
133994	c.reservation = reservation
133995	c.reservationsresizerequest = reservationsresizerequest
133996	return c
133997}
133998
133999// RequestId sets the optional parameter "requestId": An optional
134000// request ID to identify requests. Specify a unique request ID so that
134001// if you must retry your request, the server will know to ignore the
134002// request if it has already been completed.
134003//
134004// For example, consider a situation where you make an initial request
134005// and the request times out. If you make the request again with the
134006// same request ID, the server can check if original operation with the
134007// same request ID was received, and if so, will ignore the second
134008// request. This prevents clients from accidentally creating duplicate
134009// commitments.
134010//
134011// The request ID must be a valid UUID with the exception that zero UUID
134012// is not supported (00000000-0000-0000-0000-000000000000).
134013func (c *ReservationsResizeCall) RequestId(requestId string) *ReservationsResizeCall {
134014	c.urlParams_.Set("requestId", requestId)
134015	return c
134016}
134017
134018// Fields allows partial responses to be retrieved. See
134019// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134020// for more information.
134021func (c *ReservationsResizeCall) Fields(s ...googleapi.Field) *ReservationsResizeCall {
134022	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134023	return c
134024}
134025
134026// Context sets the context to be used in this call's Do method. Any
134027// pending HTTP request will be aborted if the provided context is
134028// canceled.
134029func (c *ReservationsResizeCall) Context(ctx context.Context) *ReservationsResizeCall {
134030	c.ctx_ = ctx
134031	return c
134032}
134033
134034// Header returns an http.Header that can be modified by the caller to
134035// add HTTP headers to the request.
134036func (c *ReservationsResizeCall) Header() http.Header {
134037	if c.header_ == nil {
134038		c.header_ = make(http.Header)
134039	}
134040	return c.header_
134041}
134042
134043func (c *ReservationsResizeCall) doRequest(alt string) (*http.Response, error) {
134044	reqHeaders := make(http.Header)
134045	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
134046	for k, v := range c.header_ {
134047		reqHeaders[k] = v
134048	}
134049	reqHeaders.Set("User-Agent", c.s.userAgent())
134050	var body io.Reader = nil
134051	body, err := googleapi.WithoutDataWrapper.JSONReader(c.reservationsresizerequest)
134052	if err != nil {
134053		return nil, err
134054	}
134055	reqHeaders.Set("Content-Type", "application/json")
134056	c.urlParams_.Set("alt", alt)
134057	c.urlParams_.Set("prettyPrint", "false")
134058	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{reservation}/resize")
134059	urls += "?" + c.urlParams_.Encode()
134060	req, err := http.NewRequest("POST", urls, body)
134061	if err != nil {
134062		return nil, err
134063	}
134064	req.Header = reqHeaders
134065	googleapi.Expand(req.URL, map[string]string{
134066		"project":     c.project,
134067		"zone":        c.zone,
134068		"reservation": c.reservation,
134069	})
134070	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134071}
134072
134073// Do executes the "compute.reservations.resize" call.
134074// Exactly one of *Operation or error will be non-nil. Any non-2xx
134075// status code is an error. Response headers are in either
134076// *Operation.ServerResponse.Header or (if a response was returned at
134077// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
134078// to check whether the returned error was because
134079// http.StatusNotModified was returned.
134080func (c *ReservationsResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
134081	gensupport.SetOptions(c.urlParams_, opts...)
134082	res, err := c.doRequest("json")
134083	if res != nil && res.StatusCode == http.StatusNotModified {
134084		if res.Body != nil {
134085			res.Body.Close()
134086		}
134087		return nil, &googleapi.Error{
134088			Code:   res.StatusCode,
134089			Header: res.Header,
134090		}
134091	}
134092	if err != nil {
134093		return nil, err
134094	}
134095	defer googleapi.CloseBody(res)
134096	if err := googleapi.CheckResponse(res); err != nil {
134097		return nil, err
134098	}
134099	ret := &Operation{
134100		ServerResponse: googleapi.ServerResponse{
134101			Header:         res.Header,
134102			HTTPStatusCode: res.StatusCode,
134103		},
134104	}
134105	target := &ret
134106	if err := gensupport.DecodeResponse(target, res); err != nil {
134107		return nil, err
134108	}
134109	return ret, nil
134110	// {
134111	//   "description": "Resizes the reservation (applicable to standalone reservations only). For more information, read Modifying reservations.",
134112	//   "httpMethod": "POST",
134113	//   "id": "compute.reservations.resize",
134114	//   "parameterOrder": [
134115	//     "project",
134116	//     "zone",
134117	//     "reservation"
134118	//   ],
134119	//   "parameters": {
134120	//     "project": {
134121	//       "description": "Project ID for this request.",
134122	//       "location": "path",
134123	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134124	//       "required": true,
134125	//       "type": "string"
134126	//     },
134127	//     "requestId": {
134128	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
134129	//       "location": "query",
134130	//       "type": "string"
134131	//     },
134132	//     "reservation": {
134133	//       "description": "Name of the reservation to update.",
134134	//       "location": "path",
134135	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
134136	//       "required": true,
134137	//       "type": "string"
134138	//     },
134139	//     "zone": {
134140	//       "description": "Name of the zone for this request.",
134141	//       "location": "path",
134142	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
134143	//       "required": true,
134144	//       "type": "string"
134145	//     }
134146	//   },
134147	//   "path": "projects/{project}/zones/{zone}/reservations/{reservation}/resize",
134148	//   "request": {
134149	//     "$ref": "ReservationsResizeRequest"
134150	//   },
134151	//   "response": {
134152	//     "$ref": "Operation"
134153	//   },
134154	//   "scopes": [
134155	//     "https://www.googleapis.com/auth/cloud-platform",
134156	//     "https://www.googleapis.com/auth/compute"
134157	//   ]
134158	// }
134159
134160}
134161
134162// method id "compute.reservations.setIamPolicy":
134163
134164type ReservationsSetIamPolicyCall struct {
134165	s                    *Service
134166	project              string
134167	zone                 string
134168	resource             string
134169	zonesetpolicyrequest *ZoneSetPolicyRequest
134170	urlParams_           gensupport.URLParams
134171	ctx_                 context.Context
134172	header_              http.Header
134173}
134174
134175// SetIamPolicy: Sets the access control policy on the specified
134176// resource. Replaces any existing policy.
134177//
134178// - project: Project ID for this request.
134179// - resource: Name or id of the resource for this request.
134180// - zone: The name of the zone for this request.
134181func (r *ReservationsService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *ReservationsSetIamPolicyCall {
134182	c := &ReservationsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134183	c.project = project
134184	c.zone = zone
134185	c.resource = resource
134186	c.zonesetpolicyrequest = zonesetpolicyrequest
134187	return c
134188}
134189
134190// Fields allows partial responses to be retrieved. See
134191// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134192// for more information.
134193func (c *ReservationsSetIamPolicyCall) Fields(s ...googleapi.Field) *ReservationsSetIamPolicyCall {
134194	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134195	return c
134196}
134197
134198// Context sets the context to be used in this call's Do method. Any
134199// pending HTTP request will be aborted if the provided context is
134200// canceled.
134201func (c *ReservationsSetIamPolicyCall) Context(ctx context.Context) *ReservationsSetIamPolicyCall {
134202	c.ctx_ = ctx
134203	return c
134204}
134205
134206// Header returns an http.Header that can be modified by the caller to
134207// add HTTP headers to the request.
134208func (c *ReservationsSetIamPolicyCall) Header() http.Header {
134209	if c.header_ == nil {
134210		c.header_ = make(http.Header)
134211	}
134212	return c.header_
134213}
134214
134215func (c *ReservationsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
134216	reqHeaders := make(http.Header)
134217	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
134218	for k, v := range c.header_ {
134219		reqHeaders[k] = v
134220	}
134221	reqHeaders.Set("User-Agent", c.s.userAgent())
134222	var body io.Reader = nil
134223	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
134224	if err != nil {
134225		return nil, err
134226	}
134227	reqHeaders.Set("Content-Type", "application/json")
134228	c.urlParams_.Set("alt", alt)
134229	c.urlParams_.Set("prettyPrint", "false")
134230	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{resource}/setIamPolicy")
134231	urls += "?" + c.urlParams_.Encode()
134232	req, err := http.NewRequest("POST", urls, body)
134233	if err != nil {
134234		return nil, err
134235	}
134236	req.Header = reqHeaders
134237	googleapi.Expand(req.URL, map[string]string{
134238		"project":  c.project,
134239		"zone":     c.zone,
134240		"resource": c.resource,
134241	})
134242	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134243}
134244
134245// Do executes the "compute.reservations.setIamPolicy" call.
134246// Exactly one of *Policy or error will be non-nil. Any non-2xx status
134247// code is an error. Response headers are in either
134248// *Policy.ServerResponse.Header or (if a response was returned at all)
134249// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
134250// check whether the returned error was because http.StatusNotModified
134251// was returned.
134252func (c *ReservationsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
134253	gensupport.SetOptions(c.urlParams_, opts...)
134254	res, err := c.doRequest("json")
134255	if res != nil && res.StatusCode == http.StatusNotModified {
134256		if res.Body != nil {
134257			res.Body.Close()
134258		}
134259		return nil, &googleapi.Error{
134260			Code:   res.StatusCode,
134261			Header: res.Header,
134262		}
134263	}
134264	if err != nil {
134265		return nil, err
134266	}
134267	defer googleapi.CloseBody(res)
134268	if err := googleapi.CheckResponse(res); err != nil {
134269		return nil, err
134270	}
134271	ret := &Policy{
134272		ServerResponse: googleapi.ServerResponse{
134273			Header:         res.Header,
134274			HTTPStatusCode: res.StatusCode,
134275		},
134276	}
134277	target := &ret
134278	if err := gensupport.DecodeResponse(target, res); err != nil {
134279		return nil, err
134280	}
134281	return ret, nil
134282	// {
134283	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
134284	//   "httpMethod": "POST",
134285	//   "id": "compute.reservations.setIamPolicy",
134286	//   "parameterOrder": [
134287	//     "project",
134288	//     "zone",
134289	//     "resource"
134290	//   ],
134291	//   "parameters": {
134292	//     "project": {
134293	//       "description": "Project ID for this request.",
134294	//       "location": "path",
134295	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134296	//       "required": true,
134297	//       "type": "string"
134298	//     },
134299	//     "resource": {
134300	//       "description": "Name or id of the resource for this request.",
134301	//       "location": "path",
134302	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
134303	//       "required": true,
134304	//       "type": "string"
134305	//     },
134306	//     "zone": {
134307	//       "description": "The name of the zone for this request.",
134308	//       "location": "path",
134309	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
134310	//       "required": true,
134311	//       "type": "string"
134312	//     }
134313	//   },
134314	//   "path": "projects/{project}/zones/{zone}/reservations/{resource}/setIamPolicy",
134315	//   "request": {
134316	//     "$ref": "ZoneSetPolicyRequest"
134317	//   },
134318	//   "response": {
134319	//     "$ref": "Policy"
134320	//   },
134321	//   "scopes": [
134322	//     "https://www.googleapis.com/auth/cloud-platform",
134323	//     "https://www.googleapis.com/auth/compute"
134324	//   ]
134325	// }
134326
134327}
134328
134329// method id "compute.reservations.testIamPermissions":
134330
134331type ReservationsTestIamPermissionsCall struct {
134332	s                      *Service
134333	project                string
134334	zone                   string
134335	resource               string
134336	testpermissionsrequest *TestPermissionsRequest
134337	urlParams_             gensupport.URLParams
134338	ctx_                   context.Context
134339	header_                http.Header
134340}
134341
134342// TestIamPermissions: Returns permissions that a caller has on the
134343// specified resource.
134344//
134345// - project: Project ID for this request.
134346// - resource: Name or id of the resource for this request.
134347// - zone: The name of the zone for this request.
134348func (r *ReservationsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *ReservationsTestIamPermissionsCall {
134349	c := &ReservationsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134350	c.project = project
134351	c.zone = zone
134352	c.resource = resource
134353	c.testpermissionsrequest = testpermissionsrequest
134354	return c
134355}
134356
134357// Fields allows partial responses to be retrieved. See
134358// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134359// for more information.
134360func (c *ReservationsTestIamPermissionsCall) Fields(s ...googleapi.Field) *ReservationsTestIamPermissionsCall {
134361	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134362	return c
134363}
134364
134365// Context sets the context to be used in this call's Do method. Any
134366// pending HTTP request will be aborted if the provided context is
134367// canceled.
134368func (c *ReservationsTestIamPermissionsCall) Context(ctx context.Context) *ReservationsTestIamPermissionsCall {
134369	c.ctx_ = ctx
134370	return c
134371}
134372
134373// Header returns an http.Header that can be modified by the caller to
134374// add HTTP headers to the request.
134375func (c *ReservationsTestIamPermissionsCall) Header() http.Header {
134376	if c.header_ == nil {
134377		c.header_ = make(http.Header)
134378	}
134379	return c.header_
134380}
134381
134382func (c *ReservationsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
134383	reqHeaders := make(http.Header)
134384	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
134385	for k, v := range c.header_ {
134386		reqHeaders[k] = v
134387	}
134388	reqHeaders.Set("User-Agent", c.s.userAgent())
134389	var body io.Reader = nil
134390	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
134391	if err != nil {
134392		return nil, err
134393	}
134394	reqHeaders.Set("Content-Type", "application/json")
134395	c.urlParams_.Set("alt", alt)
134396	c.urlParams_.Set("prettyPrint", "false")
134397	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/reservations/{resource}/testIamPermissions")
134398	urls += "?" + c.urlParams_.Encode()
134399	req, err := http.NewRequest("POST", urls, body)
134400	if err != nil {
134401		return nil, err
134402	}
134403	req.Header = reqHeaders
134404	googleapi.Expand(req.URL, map[string]string{
134405		"project":  c.project,
134406		"zone":     c.zone,
134407		"resource": c.resource,
134408	})
134409	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134410}
134411
134412// Do executes the "compute.reservations.testIamPermissions" call.
134413// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
134414// non-2xx status code is an error. Response headers are in either
134415// *TestPermissionsResponse.ServerResponse.Header or (if a response was
134416// returned at all) in error.(*googleapi.Error).Header. Use
134417// googleapi.IsNotModified to check whether the returned error was
134418// because http.StatusNotModified was returned.
134419func (c *ReservationsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
134420	gensupport.SetOptions(c.urlParams_, opts...)
134421	res, err := c.doRequest("json")
134422	if res != nil && res.StatusCode == http.StatusNotModified {
134423		if res.Body != nil {
134424			res.Body.Close()
134425		}
134426		return nil, &googleapi.Error{
134427			Code:   res.StatusCode,
134428			Header: res.Header,
134429		}
134430	}
134431	if err != nil {
134432		return nil, err
134433	}
134434	defer googleapi.CloseBody(res)
134435	if err := googleapi.CheckResponse(res); err != nil {
134436		return nil, err
134437	}
134438	ret := &TestPermissionsResponse{
134439		ServerResponse: googleapi.ServerResponse{
134440			Header:         res.Header,
134441			HTTPStatusCode: res.StatusCode,
134442		},
134443	}
134444	target := &ret
134445	if err := gensupport.DecodeResponse(target, res); err != nil {
134446		return nil, err
134447	}
134448	return ret, nil
134449	// {
134450	//   "description": "Returns permissions that a caller has on the specified resource.",
134451	//   "httpMethod": "POST",
134452	//   "id": "compute.reservations.testIamPermissions",
134453	//   "parameterOrder": [
134454	//     "project",
134455	//     "zone",
134456	//     "resource"
134457	//   ],
134458	//   "parameters": {
134459	//     "project": {
134460	//       "description": "Project ID for this request.",
134461	//       "location": "path",
134462	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134463	//       "required": true,
134464	//       "type": "string"
134465	//     },
134466	//     "resource": {
134467	//       "description": "Name or id of the resource for this request.",
134468	//       "location": "path",
134469	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
134470	//       "required": true,
134471	//       "type": "string"
134472	//     },
134473	//     "zone": {
134474	//       "description": "The name of the zone for this request.",
134475	//       "location": "path",
134476	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
134477	//       "required": true,
134478	//       "type": "string"
134479	//     }
134480	//   },
134481	//   "path": "projects/{project}/zones/{zone}/reservations/{resource}/testIamPermissions",
134482	//   "request": {
134483	//     "$ref": "TestPermissionsRequest"
134484	//   },
134485	//   "response": {
134486	//     "$ref": "TestPermissionsResponse"
134487	//   },
134488	//   "scopes": [
134489	//     "https://www.googleapis.com/auth/cloud-platform",
134490	//     "https://www.googleapis.com/auth/compute",
134491	//     "https://www.googleapis.com/auth/compute.readonly"
134492	//   ]
134493	// }
134494
134495}
134496
134497// method id "compute.resourcePolicies.aggregatedList":
134498
134499type ResourcePoliciesAggregatedListCall struct {
134500	s            *Service
134501	project      string
134502	urlParams_   gensupport.URLParams
134503	ifNoneMatch_ string
134504	ctx_         context.Context
134505	header_      http.Header
134506}
134507
134508// AggregatedList: Retrieves an aggregated list of resource policies.
134509//
134510// - project: Project ID for this request.
134511func (r *ResourcePoliciesService) AggregatedList(project string) *ResourcePoliciesAggregatedListCall {
134512	c := &ResourcePoliciesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134513	c.project = project
134514	return c
134515}
134516
134517// Filter sets the optional parameter "filter": A filter expression that
134518// filters resources listed in the response. The expression must specify
134519// the field name, a comparison operator, and the value that you want to
134520// use for filtering. The value must be a string, a number, or a
134521// boolean. The comparison operator must be either `=`, `!=`, `>`, or
134522// `<`.
134523//
134524// For example, if you are filtering Compute Engine instances, you can
134525// exclude instances named `example-instance` by specifying `name !=
134526// example-instance`.
134527//
134528// You can also filter nested fields. For example, you could specify
134529// `scheduling.automaticRestart = false` to include instances only if
134530// they are not scheduled for automatic restarts. You can use filtering
134531// on nested fields to filter based on resource labels.
134532//
134533// To filter on multiple expressions, provide each separate expression
134534// within parentheses. For example: ``` (scheduling.automaticRestart =
134535// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
134536// is an `AND` expression. However, you can include `AND` and `OR`
134537// expressions explicitly. For example: ``` (cpuPlatform = "Intel
134538// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
134539// (scheduling.automaticRestart = true) ```
134540func (c *ResourcePoliciesAggregatedListCall) Filter(filter string) *ResourcePoliciesAggregatedListCall {
134541	c.urlParams_.Set("filter", filter)
134542	return c
134543}
134544
134545// IncludeAllScopes sets the optional parameter "includeAllScopes":
134546// Indicates whether every visible scope for each scope type (zone,
134547// region, global) should be included in the response. For new resource
134548// types added after this field, the flag has no effect as new resource
134549// types will always include every visible scope for each scope type in
134550// response. For resource types which predate this field, if this flag
134551// is omitted or false, only scopes of the scope types where the
134552// resource type is expected to be found will be included.
134553func (c *ResourcePoliciesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ResourcePoliciesAggregatedListCall {
134554	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
134555	return c
134556}
134557
134558// MaxResults sets the optional parameter "maxResults": The maximum
134559// number of results per page that should be returned. If the number of
134560// available results is larger than `maxResults`, Compute Engine returns
134561// a `nextPageToken` that can be used to get the next page of results in
134562// subsequent list requests. Acceptable values are `0` to `500`,
134563// inclusive. (Default: `500`)
134564func (c *ResourcePoliciesAggregatedListCall) MaxResults(maxResults int64) *ResourcePoliciesAggregatedListCall {
134565	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
134566	return c
134567}
134568
134569// OrderBy sets the optional parameter "orderBy": Sorts list results by
134570// a certain order. By default, results are returned in alphanumerical
134571// order based on the resource name.
134572//
134573// You can also sort results in descending order based on the creation
134574// timestamp using `orderBy="creationTimestamp desc". This sorts
134575// results based on the `creationTimestamp` field in reverse
134576// chronological order (newest result first). Use this to sort resources
134577// like operations so that the newest operation is returned
134578// first.
134579//
134580// Currently, only sorting by `name` or `creationTimestamp desc` is
134581// supported.
134582func (c *ResourcePoliciesAggregatedListCall) OrderBy(orderBy string) *ResourcePoliciesAggregatedListCall {
134583	c.urlParams_.Set("orderBy", orderBy)
134584	return c
134585}
134586
134587// PageToken sets the optional parameter "pageToken": Specifies a page
134588// token to use. Set `pageToken` to the `nextPageToken` returned by a
134589// previous list request to get the next page of results.
134590func (c *ResourcePoliciesAggregatedListCall) PageToken(pageToken string) *ResourcePoliciesAggregatedListCall {
134591	c.urlParams_.Set("pageToken", pageToken)
134592	return c
134593}
134594
134595// ReturnPartialSuccess sets the optional parameter
134596// "returnPartialSuccess": Opt-in for partial success behavior which
134597// provides partial results in case of failure. The default value is
134598// false.
134599func (c *ResourcePoliciesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ResourcePoliciesAggregatedListCall {
134600	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
134601	return c
134602}
134603
134604// Fields allows partial responses to be retrieved. See
134605// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134606// for more information.
134607func (c *ResourcePoliciesAggregatedListCall) Fields(s ...googleapi.Field) *ResourcePoliciesAggregatedListCall {
134608	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134609	return c
134610}
134611
134612// IfNoneMatch sets the optional parameter which makes the operation
134613// fail if the object's ETag matches the given value. This is useful for
134614// getting updates only after the object has changed since the last
134615// request. Use googleapi.IsNotModified to check whether the response
134616// error from Do is the result of In-None-Match.
134617func (c *ResourcePoliciesAggregatedListCall) IfNoneMatch(entityTag string) *ResourcePoliciesAggregatedListCall {
134618	c.ifNoneMatch_ = entityTag
134619	return c
134620}
134621
134622// Context sets the context to be used in this call's Do method. Any
134623// pending HTTP request will be aborted if the provided context is
134624// canceled.
134625func (c *ResourcePoliciesAggregatedListCall) Context(ctx context.Context) *ResourcePoliciesAggregatedListCall {
134626	c.ctx_ = ctx
134627	return c
134628}
134629
134630// Header returns an http.Header that can be modified by the caller to
134631// add HTTP headers to the request.
134632func (c *ResourcePoliciesAggregatedListCall) Header() http.Header {
134633	if c.header_ == nil {
134634		c.header_ = make(http.Header)
134635	}
134636	return c.header_
134637}
134638
134639func (c *ResourcePoliciesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
134640	reqHeaders := make(http.Header)
134641	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
134642	for k, v := range c.header_ {
134643		reqHeaders[k] = v
134644	}
134645	reqHeaders.Set("User-Agent", c.s.userAgent())
134646	if c.ifNoneMatch_ != "" {
134647		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
134648	}
134649	var body io.Reader = nil
134650	c.urlParams_.Set("alt", alt)
134651	c.urlParams_.Set("prettyPrint", "false")
134652	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/resourcePolicies")
134653	urls += "?" + c.urlParams_.Encode()
134654	req, err := http.NewRequest("GET", urls, body)
134655	if err != nil {
134656		return nil, err
134657	}
134658	req.Header = reqHeaders
134659	googleapi.Expand(req.URL, map[string]string{
134660		"project": c.project,
134661	})
134662	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134663}
134664
134665// Do executes the "compute.resourcePolicies.aggregatedList" call.
134666// Exactly one of *ResourcePolicyAggregatedList or error will be
134667// non-nil. Any non-2xx status code is an error. Response headers are in
134668// either *ResourcePolicyAggregatedList.ServerResponse.Header or (if a
134669// response was returned at all) in error.(*googleapi.Error).Header. Use
134670// googleapi.IsNotModified to check whether the returned error was
134671// because http.StatusNotModified was returned.
134672func (c *ResourcePoliciesAggregatedListCall) Do(opts ...googleapi.CallOption) (*ResourcePolicyAggregatedList, error) {
134673	gensupport.SetOptions(c.urlParams_, opts...)
134674	res, err := c.doRequest("json")
134675	if res != nil && res.StatusCode == http.StatusNotModified {
134676		if res.Body != nil {
134677			res.Body.Close()
134678		}
134679		return nil, &googleapi.Error{
134680			Code:   res.StatusCode,
134681			Header: res.Header,
134682		}
134683	}
134684	if err != nil {
134685		return nil, err
134686	}
134687	defer googleapi.CloseBody(res)
134688	if err := googleapi.CheckResponse(res); err != nil {
134689		return nil, err
134690	}
134691	ret := &ResourcePolicyAggregatedList{
134692		ServerResponse: googleapi.ServerResponse{
134693			Header:         res.Header,
134694			HTTPStatusCode: res.StatusCode,
134695		},
134696	}
134697	target := &ret
134698	if err := gensupport.DecodeResponse(target, res); err != nil {
134699		return nil, err
134700	}
134701	return ret, nil
134702	// {
134703	//   "description": "Retrieves an aggregated list of resource policies.",
134704	//   "httpMethod": "GET",
134705	//   "id": "compute.resourcePolicies.aggregatedList",
134706	//   "parameterOrder": [
134707	//     "project"
134708	//   ],
134709	//   "parameters": {
134710	//     "filter": {
134711	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
134712	//       "location": "query",
134713	//       "type": "string"
134714	//     },
134715	//     "includeAllScopes": {
134716	//       "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.",
134717	//       "location": "query",
134718	//       "type": "boolean"
134719	//     },
134720	//     "maxResults": {
134721	//       "default": "500",
134722	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
134723	//       "format": "uint32",
134724	//       "location": "query",
134725	//       "minimum": "0",
134726	//       "type": "integer"
134727	//     },
134728	//     "orderBy": {
134729	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
134730	//       "location": "query",
134731	//       "type": "string"
134732	//     },
134733	//     "pageToken": {
134734	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
134735	//       "location": "query",
134736	//       "type": "string"
134737	//     },
134738	//     "project": {
134739	//       "description": "Project ID for this request.",
134740	//       "location": "path",
134741	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134742	//       "required": true,
134743	//       "type": "string"
134744	//     },
134745	//     "returnPartialSuccess": {
134746	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
134747	//       "location": "query",
134748	//       "type": "boolean"
134749	//     }
134750	//   },
134751	//   "path": "projects/{project}/aggregated/resourcePolicies",
134752	//   "response": {
134753	//     "$ref": "ResourcePolicyAggregatedList"
134754	//   },
134755	//   "scopes": [
134756	//     "https://www.googleapis.com/auth/cloud-platform",
134757	//     "https://www.googleapis.com/auth/compute",
134758	//     "https://www.googleapis.com/auth/compute.readonly"
134759	//   ]
134760	// }
134761
134762}
134763
134764// Pages invokes f for each page of results.
134765// A non-nil error returned from f will halt the iteration.
134766// The provided context supersedes any context provided to the Context method.
134767func (c *ResourcePoliciesAggregatedListCall) Pages(ctx context.Context, f func(*ResourcePolicyAggregatedList) error) error {
134768	c.ctx_ = ctx
134769	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
134770	for {
134771		x, err := c.Do()
134772		if err != nil {
134773			return err
134774		}
134775		if err := f(x); err != nil {
134776			return err
134777		}
134778		if x.NextPageToken == "" {
134779			return nil
134780		}
134781		c.PageToken(x.NextPageToken)
134782	}
134783}
134784
134785// method id "compute.resourcePolicies.delete":
134786
134787type ResourcePoliciesDeleteCall struct {
134788	s              *Service
134789	project        string
134790	region         string
134791	resourcePolicy string
134792	urlParams_     gensupport.URLParams
134793	ctx_           context.Context
134794	header_        http.Header
134795}
134796
134797// Delete: Deletes the specified resource policy.
134798//
134799// - project: Project ID for this request.
134800// - region: Name of the region for this request.
134801// - resourcePolicy: Name of the resource policy to delete.
134802func (r *ResourcePoliciesService) Delete(project string, region string, resourcePolicy string) *ResourcePoliciesDeleteCall {
134803	c := &ResourcePoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134804	c.project = project
134805	c.region = region
134806	c.resourcePolicy = resourcePolicy
134807	return c
134808}
134809
134810// RequestId sets the optional parameter "requestId": An optional
134811// request ID to identify requests. Specify a unique request ID so that
134812// if you must retry your request, the server will know to ignore the
134813// request if it has already been completed.
134814//
134815// For example, consider a situation where you make an initial request
134816// and the request times out. If you make the request again with the
134817// same request ID, the server can check if original operation with the
134818// same request ID was received, and if so, will ignore the second
134819// request. This prevents clients from accidentally creating duplicate
134820// commitments.
134821//
134822// The request ID must be a valid UUID with the exception that zero UUID
134823// is not supported (00000000-0000-0000-0000-000000000000).
134824func (c *ResourcePoliciesDeleteCall) RequestId(requestId string) *ResourcePoliciesDeleteCall {
134825	c.urlParams_.Set("requestId", requestId)
134826	return c
134827}
134828
134829// Fields allows partial responses to be retrieved. See
134830// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134831// for more information.
134832func (c *ResourcePoliciesDeleteCall) Fields(s ...googleapi.Field) *ResourcePoliciesDeleteCall {
134833	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134834	return c
134835}
134836
134837// Context sets the context to be used in this call's Do method. Any
134838// pending HTTP request will be aborted if the provided context is
134839// canceled.
134840func (c *ResourcePoliciesDeleteCall) Context(ctx context.Context) *ResourcePoliciesDeleteCall {
134841	c.ctx_ = ctx
134842	return c
134843}
134844
134845// Header returns an http.Header that can be modified by the caller to
134846// add HTTP headers to the request.
134847func (c *ResourcePoliciesDeleteCall) Header() http.Header {
134848	if c.header_ == nil {
134849		c.header_ = make(http.Header)
134850	}
134851	return c.header_
134852}
134853
134854func (c *ResourcePoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
134855	reqHeaders := make(http.Header)
134856	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
134857	for k, v := range c.header_ {
134858		reqHeaders[k] = v
134859	}
134860	reqHeaders.Set("User-Agent", c.s.userAgent())
134861	var body io.Reader = nil
134862	c.urlParams_.Set("alt", alt)
134863	c.urlParams_.Set("prettyPrint", "false")
134864	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}")
134865	urls += "?" + c.urlParams_.Encode()
134866	req, err := http.NewRequest("DELETE", urls, body)
134867	if err != nil {
134868		return nil, err
134869	}
134870	req.Header = reqHeaders
134871	googleapi.Expand(req.URL, map[string]string{
134872		"project":        c.project,
134873		"region":         c.region,
134874		"resourcePolicy": c.resourcePolicy,
134875	})
134876	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134877}
134878
134879// Do executes the "compute.resourcePolicies.delete" call.
134880// Exactly one of *Operation or error will be non-nil. Any non-2xx
134881// status code is an error. Response headers are in either
134882// *Operation.ServerResponse.Header or (if a response was returned at
134883// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
134884// to check whether the returned error was because
134885// http.StatusNotModified was returned.
134886func (c *ResourcePoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
134887	gensupport.SetOptions(c.urlParams_, opts...)
134888	res, err := c.doRequest("json")
134889	if res != nil && res.StatusCode == http.StatusNotModified {
134890		if res.Body != nil {
134891			res.Body.Close()
134892		}
134893		return nil, &googleapi.Error{
134894			Code:   res.StatusCode,
134895			Header: res.Header,
134896		}
134897	}
134898	if err != nil {
134899		return nil, err
134900	}
134901	defer googleapi.CloseBody(res)
134902	if err := googleapi.CheckResponse(res); err != nil {
134903		return nil, err
134904	}
134905	ret := &Operation{
134906		ServerResponse: googleapi.ServerResponse{
134907			Header:         res.Header,
134908			HTTPStatusCode: res.StatusCode,
134909		},
134910	}
134911	target := &ret
134912	if err := gensupport.DecodeResponse(target, res); err != nil {
134913		return nil, err
134914	}
134915	return ret, nil
134916	// {
134917	//   "description": "Deletes the specified resource policy.",
134918	//   "httpMethod": "DELETE",
134919	//   "id": "compute.resourcePolicies.delete",
134920	//   "parameterOrder": [
134921	//     "project",
134922	//     "region",
134923	//     "resourcePolicy"
134924	//   ],
134925	//   "parameters": {
134926	//     "project": {
134927	//       "description": "Project ID for this request.",
134928	//       "location": "path",
134929	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134930	//       "required": true,
134931	//       "type": "string"
134932	//     },
134933	//     "region": {
134934	//       "description": "Name of the region for this request.",
134935	//       "location": "path",
134936	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
134937	//       "required": true,
134938	//       "type": "string"
134939	//     },
134940	//     "requestId": {
134941	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
134942	//       "location": "query",
134943	//       "type": "string"
134944	//     },
134945	//     "resourcePolicy": {
134946	//       "description": "Name of the resource policy to delete.",
134947	//       "location": "path",
134948	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
134949	//       "required": true,
134950	//       "type": "string"
134951	//     }
134952	//   },
134953	//   "path": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}",
134954	//   "response": {
134955	//     "$ref": "Operation"
134956	//   },
134957	//   "scopes": [
134958	//     "https://www.googleapis.com/auth/cloud-platform",
134959	//     "https://www.googleapis.com/auth/compute"
134960	//   ]
134961	// }
134962
134963}
134964
134965// method id "compute.resourcePolicies.get":
134966
134967type ResourcePoliciesGetCall struct {
134968	s              *Service
134969	project        string
134970	region         string
134971	resourcePolicy string
134972	urlParams_     gensupport.URLParams
134973	ifNoneMatch_   string
134974	ctx_           context.Context
134975	header_        http.Header
134976}
134977
134978// Get: Retrieves all information of the specified resource policy.
134979//
134980// - project: Project ID for this request.
134981// - region: Name of the region for this request.
134982// - resourcePolicy: Name of the resource policy to retrieve.
134983func (r *ResourcePoliciesService) Get(project string, region string, resourcePolicy string) *ResourcePoliciesGetCall {
134984	c := &ResourcePoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134985	c.project = project
134986	c.region = region
134987	c.resourcePolicy = resourcePolicy
134988	return c
134989}
134990
134991// Fields allows partial responses to be retrieved. See
134992// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134993// for more information.
134994func (c *ResourcePoliciesGetCall) Fields(s ...googleapi.Field) *ResourcePoliciesGetCall {
134995	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134996	return c
134997}
134998
134999// IfNoneMatch sets the optional parameter which makes the operation
135000// fail if the object's ETag matches the given value. This is useful for
135001// getting updates only after the object has changed since the last
135002// request. Use googleapi.IsNotModified to check whether the response
135003// error from Do is the result of In-None-Match.
135004func (c *ResourcePoliciesGetCall) IfNoneMatch(entityTag string) *ResourcePoliciesGetCall {
135005	c.ifNoneMatch_ = entityTag
135006	return c
135007}
135008
135009// Context sets the context to be used in this call's Do method. Any
135010// pending HTTP request will be aborted if the provided context is
135011// canceled.
135012func (c *ResourcePoliciesGetCall) Context(ctx context.Context) *ResourcePoliciesGetCall {
135013	c.ctx_ = ctx
135014	return c
135015}
135016
135017// Header returns an http.Header that can be modified by the caller to
135018// add HTTP headers to the request.
135019func (c *ResourcePoliciesGetCall) Header() http.Header {
135020	if c.header_ == nil {
135021		c.header_ = make(http.Header)
135022	}
135023	return c.header_
135024}
135025
135026func (c *ResourcePoliciesGetCall) doRequest(alt string) (*http.Response, error) {
135027	reqHeaders := make(http.Header)
135028	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
135029	for k, v := range c.header_ {
135030		reqHeaders[k] = v
135031	}
135032	reqHeaders.Set("User-Agent", c.s.userAgent())
135033	if c.ifNoneMatch_ != "" {
135034		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
135035	}
135036	var body io.Reader = nil
135037	c.urlParams_.Set("alt", alt)
135038	c.urlParams_.Set("prettyPrint", "false")
135039	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}")
135040	urls += "?" + c.urlParams_.Encode()
135041	req, err := http.NewRequest("GET", urls, body)
135042	if err != nil {
135043		return nil, err
135044	}
135045	req.Header = reqHeaders
135046	googleapi.Expand(req.URL, map[string]string{
135047		"project":        c.project,
135048		"region":         c.region,
135049		"resourcePolicy": c.resourcePolicy,
135050	})
135051	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135052}
135053
135054// Do executes the "compute.resourcePolicies.get" call.
135055// Exactly one of *ResourcePolicy or error will be non-nil. Any non-2xx
135056// status code is an error. Response headers are in either
135057// *ResourcePolicy.ServerResponse.Header or (if a response was returned
135058// at all) in error.(*googleapi.Error).Header. Use
135059// googleapi.IsNotModified to check whether the returned error was
135060// because http.StatusNotModified was returned.
135061func (c *ResourcePoliciesGetCall) Do(opts ...googleapi.CallOption) (*ResourcePolicy, error) {
135062	gensupport.SetOptions(c.urlParams_, opts...)
135063	res, err := c.doRequest("json")
135064	if res != nil && res.StatusCode == http.StatusNotModified {
135065		if res.Body != nil {
135066			res.Body.Close()
135067		}
135068		return nil, &googleapi.Error{
135069			Code:   res.StatusCode,
135070			Header: res.Header,
135071		}
135072	}
135073	if err != nil {
135074		return nil, err
135075	}
135076	defer googleapi.CloseBody(res)
135077	if err := googleapi.CheckResponse(res); err != nil {
135078		return nil, err
135079	}
135080	ret := &ResourcePolicy{
135081		ServerResponse: googleapi.ServerResponse{
135082			Header:         res.Header,
135083			HTTPStatusCode: res.StatusCode,
135084		},
135085	}
135086	target := &ret
135087	if err := gensupport.DecodeResponse(target, res); err != nil {
135088		return nil, err
135089	}
135090	return ret, nil
135091	// {
135092	//   "description": "Retrieves all information of the specified resource policy.",
135093	//   "httpMethod": "GET",
135094	//   "id": "compute.resourcePolicies.get",
135095	//   "parameterOrder": [
135096	//     "project",
135097	//     "region",
135098	//     "resourcePolicy"
135099	//   ],
135100	//   "parameters": {
135101	//     "project": {
135102	//       "description": "Project ID for this request.",
135103	//       "location": "path",
135104	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135105	//       "required": true,
135106	//       "type": "string"
135107	//     },
135108	//     "region": {
135109	//       "description": "Name of the region for this request.",
135110	//       "location": "path",
135111	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
135112	//       "required": true,
135113	//       "type": "string"
135114	//     },
135115	//     "resourcePolicy": {
135116	//       "description": "Name of the resource policy to retrieve.",
135117	//       "location": "path",
135118	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
135119	//       "required": true,
135120	//       "type": "string"
135121	//     }
135122	//   },
135123	//   "path": "projects/{project}/regions/{region}/resourcePolicies/{resourcePolicy}",
135124	//   "response": {
135125	//     "$ref": "ResourcePolicy"
135126	//   },
135127	//   "scopes": [
135128	//     "https://www.googleapis.com/auth/cloud-platform",
135129	//     "https://www.googleapis.com/auth/compute",
135130	//     "https://www.googleapis.com/auth/compute.readonly"
135131	//   ]
135132	// }
135133
135134}
135135
135136// method id "compute.resourcePolicies.getIamPolicy":
135137
135138type ResourcePoliciesGetIamPolicyCall struct {
135139	s            *Service
135140	project      string
135141	region       string
135142	resource     string
135143	urlParams_   gensupport.URLParams
135144	ifNoneMatch_ string
135145	ctx_         context.Context
135146	header_      http.Header
135147}
135148
135149// GetIamPolicy: Gets the access control policy for a resource. May be
135150// empty if no such policy or resource exists.
135151//
135152// - project: Project ID for this request.
135153// - region: The name of the region for this request.
135154// - resource: Name or id of the resource for this request.
135155func (r *ResourcePoliciesService) GetIamPolicy(project string, region string, resource string) *ResourcePoliciesGetIamPolicyCall {
135156	c := &ResourcePoliciesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135157	c.project = project
135158	c.region = region
135159	c.resource = resource
135160	return c
135161}
135162
135163// OptionsRequestedPolicyVersion sets the optional parameter
135164// "optionsRequestedPolicyVersion": Requested IAM Policy version.
135165func (c *ResourcePoliciesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ResourcePoliciesGetIamPolicyCall {
135166	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
135167	return c
135168}
135169
135170// Fields allows partial responses to be retrieved. See
135171// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135172// for more information.
135173func (c *ResourcePoliciesGetIamPolicyCall) Fields(s ...googleapi.Field) *ResourcePoliciesGetIamPolicyCall {
135174	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135175	return c
135176}
135177
135178// IfNoneMatch sets the optional parameter which makes the operation
135179// fail if the object's ETag matches the given value. This is useful for
135180// getting updates only after the object has changed since the last
135181// request. Use googleapi.IsNotModified to check whether the response
135182// error from Do is the result of In-None-Match.
135183func (c *ResourcePoliciesGetIamPolicyCall) IfNoneMatch(entityTag string) *ResourcePoliciesGetIamPolicyCall {
135184	c.ifNoneMatch_ = entityTag
135185	return c
135186}
135187
135188// Context sets the context to be used in this call's Do method. Any
135189// pending HTTP request will be aborted if the provided context is
135190// canceled.
135191func (c *ResourcePoliciesGetIamPolicyCall) Context(ctx context.Context) *ResourcePoliciesGetIamPolicyCall {
135192	c.ctx_ = ctx
135193	return c
135194}
135195
135196// Header returns an http.Header that can be modified by the caller to
135197// add HTTP headers to the request.
135198func (c *ResourcePoliciesGetIamPolicyCall) Header() http.Header {
135199	if c.header_ == nil {
135200		c.header_ = make(http.Header)
135201	}
135202	return c.header_
135203}
135204
135205func (c *ResourcePoliciesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
135206	reqHeaders := make(http.Header)
135207	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
135208	for k, v := range c.header_ {
135209		reqHeaders[k] = v
135210	}
135211	reqHeaders.Set("User-Agent", c.s.userAgent())
135212	if c.ifNoneMatch_ != "" {
135213		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
135214	}
135215	var body io.Reader = nil
135216	c.urlParams_.Set("alt", alt)
135217	c.urlParams_.Set("prettyPrint", "false")
135218	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy")
135219	urls += "?" + c.urlParams_.Encode()
135220	req, err := http.NewRequest("GET", urls, body)
135221	if err != nil {
135222		return nil, err
135223	}
135224	req.Header = reqHeaders
135225	googleapi.Expand(req.URL, map[string]string{
135226		"project":  c.project,
135227		"region":   c.region,
135228		"resource": c.resource,
135229	})
135230	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135231}
135232
135233// Do executes the "compute.resourcePolicies.getIamPolicy" call.
135234// Exactly one of *Policy or error will be non-nil. Any non-2xx status
135235// code is an error. Response headers are in either
135236// *Policy.ServerResponse.Header or (if a response was returned at all)
135237// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
135238// check whether the returned error was because http.StatusNotModified
135239// was returned.
135240func (c *ResourcePoliciesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
135241	gensupport.SetOptions(c.urlParams_, opts...)
135242	res, err := c.doRequest("json")
135243	if res != nil && res.StatusCode == http.StatusNotModified {
135244		if res.Body != nil {
135245			res.Body.Close()
135246		}
135247		return nil, &googleapi.Error{
135248			Code:   res.StatusCode,
135249			Header: res.Header,
135250		}
135251	}
135252	if err != nil {
135253		return nil, err
135254	}
135255	defer googleapi.CloseBody(res)
135256	if err := googleapi.CheckResponse(res); err != nil {
135257		return nil, err
135258	}
135259	ret := &Policy{
135260		ServerResponse: googleapi.ServerResponse{
135261			Header:         res.Header,
135262			HTTPStatusCode: res.StatusCode,
135263		},
135264	}
135265	target := &ret
135266	if err := gensupport.DecodeResponse(target, res); err != nil {
135267		return nil, err
135268	}
135269	return ret, nil
135270	// {
135271	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
135272	//   "httpMethod": "GET",
135273	//   "id": "compute.resourcePolicies.getIamPolicy",
135274	//   "parameterOrder": [
135275	//     "project",
135276	//     "region",
135277	//     "resource"
135278	//   ],
135279	//   "parameters": {
135280	//     "optionsRequestedPolicyVersion": {
135281	//       "description": "Requested IAM Policy version.",
135282	//       "format": "int32",
135283	//       "location": "query",
135284	//       "type": "integer"
135285	//     },
135286	//     "project": {
135287	//       "description": "Project ID for this request.",
135288	//       "location": "path",
135289	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135290	//       "required": true,
135291	//       "type": "string"
135292	//     },
135293	//     "region": {
135294	//       "description": "The name of the region for this request.",
135295	//       "location": "path",
135296	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
135297	//       "required": true,
135298	//       "type": "string"
135299	//     },
135300	//     "resource": {
135301	//       "description": "Name or id of the resource for this request.",
135302	//       "location": "path",
135303	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
135304	//       "required": true,
135305	//       "type": "string"
135306	//     }
135307	//   },
135308	//   "path": "projects/{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy",
135309	//   "response": {
135310	//     "$ref": "Policy"
135311	//   },
135312	//   "scopes": [
135313	//     "https://www.googleapis.com/auth/cloud-platform",
135314	//     "https://www.googleapis.com/auth/compute",
135315	//     "https://www.googleapis.com/auth/compute.readonly"
135316	//   ]
135317	// }
135318
135319}
135320
135321// method id "compute.resourcePolicies.insert":
135322
135323type ResourcePoliciesInsertCall struct {
135324	s              *Service
135325	project        string
135326	region         string
135327	resourcepolicy *ResourcePolicy
135328	urlParams_     gensupport.URLParams
135329	ctx_           context.Context
135330	header_        http.Header
135331}
135332
135333// Insert: Creates a new resource policy.
135334//
135335// - project: Project ID for this request.
135336// - region: Name of the region for this request.
135337func (r *ResourcePoliciesService) Insert(project string, region string, resourcepolicy *ResourcePolicy) *ResourcePoliciesInsertCall {
135338	c := &ResourcePoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135339	c.project = project
135340	c.region = region
135341	c.resourcepolicy = resourcepolicy
135342	return c
135343}
135344
135345// RequestId sets the optional parameter "requestId": An optional
135346// request ID to identify requests. Specify a unique request ID so that
135347// if you must retry your request, the server will know to ignore the
135348// request if it has already been completed.
135349//
135350// For example, consider a situation where you make an initial request
135351// and the request times out. If you make the request again with the
135352// same request ID, the server can check if original operation with the
135353// same request ID was received, and if so, will ignore the second
135354// request. This prevents clients from accidentally creating duplicate
135355// commitments.
135356//
135357// The request ID must be a valid UUID with the exception that zero UUID
135358// is not supported (00000000-0000-0000-0000-000000000000).
135359func (c *ResourcePoliciesInsertCall) RequestId(requestId string) *ResourcePoliciesInsertCall {
135360	c.urlParams_.Set("requestId", requestId)
135361	return c
135362}
135363
135364// Fields allows partial responses to be retrieved. See
135365// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135366// for more information.
135367func (c *ResourcePoliciesInsertCall) Fields(s ...googleapi.Field) *ResourcePoliciesInsertCall {
135368	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135369	return c
135370}
135371
135372// Context sets the context to be used in this call's Do method. Any
135373// pending HTTP request will be aborted if the provided context is
135374// canceled.
135375func (c *ResourcePoliciesInsertCall) Context(ctx context.Context) *ResourcePoliciesInsertCall {
135376	c.ctx_ = ctx
135377	return c
135378}
135379
135380// Header returns an http.Header that can be modified by the caller to
135381// add HTTP headers to the request.
135382func (c *ResourcePoliciesInsertCall) Header() http.Header {
135383	if c.header_ == nil {
135384		c.header_ = make(http.Header)
135385	}
135386	return c.header_
135387}
135388
135389func (c *ResourcePoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
135390	reqHeaders := make(http.Header)
135391	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
135392	for k, v := range c.header_ {
135393		reqHeaders[k] = v
135394	}
135395	reqHeaders.Set("User-Agent", c.s.userAgent())
135396	var body io.Reader = nil
135397	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcepolicy)
135398	if err != nil {
135399		return nil, err
135400	}
135401	reqHeaders.Set("Content-Type", "application/json")
135402	c.urlParams_.Set("alt", alt)
135403	c.urlParams_.Set("prettyPrint", "false")
135404	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies")
135405	urls += "?" + c.urlParams_.Encode()
135406	req, err := http.NewRequest("POST", urls, body)
135407	if err != nil {
135408		return nil, err
135409	}
135410	req.Header = reqHeaders
135411	googleapi.Expand(req.URL, map[string]string{
135412		"project": c.project,
135413		"region":  c.region,
135414	})
135415	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135416}
135417
135418// Do executes the "compute.resourcePolicies.insert" call.
135419// Exactly one of *Operation or error will be non-nil. Any non-2xx
135420// status code is an error. Response headers are in either
135421// *Operation.ServerResponse.Header or (if a response was returned at
135422// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135423// to check whether the returned error was because
135424// http.StatusNotModified was returned.
135425func (c *ResourcePoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
135426	gensupport.SetOptions(c.urlParams_, opts...)
135427	res, err := c.doRequest("json")
135428	if res != nil && res.StatusCode == http.StatusNotModified {
135429		if res.Body != nil {
135430			res.Body.Close()
135431		}
135432		return nil, &googleapi.Error{
135433			Code:   res.StatusCode,
135434			Header: res.Header,
135435		}
135436	}
135437	if err != nil {
135438		return nil, err
135439	}
135440	defer googleapi.CloseBody(res)
135441	if err := googleapi.CheckResponse(res); err != nil {
135442		return nil, err
135443	}
135444	ret := &Operation{
135445		ServerResponse: googleapi.ServerResponse{
135446			Header:         res.Header,
135447			HTTPStatusCode: res.StatusCode,
135448		},
135449	}
135450	target := &ret
135451	if err := gensupport.DecodeResponse(target, res); err != nil {
135452		return nil, err
135453	}
135454	return ret, nil
135455	// {
135456	//   "description": "Creates a new resource policy.",
135457	//   "httpMethod": "POST",
135458	//   "id": "compute.resourcePolicies.insert",
135459	//   "parameterOrder": [
135460	//     "project",
135461	//     "region"
135462	//   ],
135463	//   "parameters": {
135464	//     "project": {
135465	//       "description": "Project ID for this request.",
135466	//       "location": "path",
135467	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135468	//       "required": true,
135469	//       "type": "string"
135470	//     },
135471	//     "region": {
135472	//       "description": "Name of the region for this request.",
135473	//       "location": "path",
135474	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
135475	//       "required": true,
135476	//       "type": "string"
135477	//     },
135478	//     "requestId": {
135479	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
135480	//       "location": "query",
135481	//       "type": "string"
135482	//     }
135483	//   },
135484	//   "path": "projects/{project}/regions/{region}/resourcePolicies",
135485	//   "request": {
135486	//     "$ref": "ResourcePolicy"
135487	//   },
135488	//   "response": {
135489	//     "$ref": "Operation"
135490	//   },
135491	//   "scopes": [
135492	//     "https://www.googleapis.com/auth/cloud-platform",
135493	//     "https://www.googleapis.com/auth/compute"
135494	//   ]
135495	// }
135496
135497}
135498
135499// method id "compute.resourcePolicies.list":
135500
135501type ResourcePoliciesListCall struct {
135502	s            *Service
135503	project      string
135504	region       string
135505	urlParams_   gensupport.URLParams
135506	ifNoneMatch_ string
135507	ctx_         context.Context
135508	header_      http.Header
135509}
135510
135511// List: A list all the resource policies that have been configured for
135512// the specified project in specified region.
135513//
135514// - project: Project ID for this request.
135515// - region: Name of the region for this request.
135516func (r *ResourcePoliciesService) List(project string, region string) *ResourcePoliciesListCall {
135517	c := &ResourcePoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135518	c.project = project
135519	c.region = region
135520	return c
135521}
135522
135523// Filter sets the optional parameter "filter": A filter expression that
135524// filters resources listed in the response. The expression must specify
135525// the field name, a comparison operator, and the value that you want to
135526// use for filtering. The value must be a string, a number, or a
135527// boolean. The comparison operator must be either `=`, `!=`, `>`, or
135528// `<`.
135529//
135530// For example, if you are filtering Compute Engine instances, you can
135531// exclude instances named `example-instance` by specifying `name !=
135532// example-instance`.
135533//
135534// You can also filter nested fields. For example, you could specify
135535// `scheduling.automaticRestart = false` to include instances only if
135536// they are not scheduled for automatic restarts. You can use filtering
135537// on nested fields to filter based on resource labels.
135538//
135539// To filter on multiple expressions, provide each separate expression
135540// within parentheses. For example: ``` (scheduling.automaticRestart =
135541// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
135542// is an `AND` expression. However, you can include `AND` and `OR`
135543// expressions explicitly. For example: ``` (cpuPlatform = "Intel
135544// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
135545// (scheduling.automaticRestart = true) ```
135546func (c *ResourcePoliciesListCall) Filter(filter string) *ResourcePoliciesListCall {
135547	c.urlParams_.Set("filter", filter)
135548	return c
135549}
135550
135551// MaxResults sets the optional parameter "maxResults": The maximum
135552// number of results per page that should be returned. If the number of
135553// available results is larger than `maxResults`, Compute Engine returns
135554// a `nextPageToken` that can be used to get the next page of results in
135555// subsequent list requests. Acceptable values are `0` to `500`,
135556// inclusive. (Default: `500`)
135557func (c *ResourcePoliciesListCall) MaxResults(maxResults int64) *ResourcePoliciesListCall {
135558	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
135559	return c
135560}
135561
135562// OrderBy sets the optional parameter "orderBy": Sorts list results by
135563// a certain order. By default, results are returned in alphanumerical
135564// order based on the resource name.
135565//
135566// You can also sort results in descending order based on the creation
135567// timestamp using `orderBy="creationTimestamp desc". This sorts
135568// results based on the `creationTimestamp` field in reverse
135569// chronological order (newest result first). Use this to sort resources
135570// like operations so that the newest operation is returned
135571// first.
135572//
135573// Currently, only sorting by `name` or `creationTimestamp desc` is
135574// supported.
135575func (c *ResourcePoliciesListCall) OrderBy(orderBy string) *ResourcePoliciesListCall {
135576	c.urlParams_.Set("orderBy", orderBy)
135577	return c
135578}
135579
135580// PageToken sets the optional parameter "pageToken": Specifies a page
135581// token to use. Set `pageToken` to the `nextPageToken` returned by a
135582// previous list request to get the next page of results.
135583func (c *ResourcePoliciesListCall) PageToken(pageToken string) *ResourcePoliciesListCall {
135584	c.urlParams_.Set("pageToken", pageToken)
135585	return c
135586}
135587
135588// ReturnPartialSuccess sets the optional parameter
135589// "returnPartialSuccess": Opt-in for partial success behavior which
135590// provides partial results in case of failure. The default value is
135591// false.
135592func (c *ResourcePoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ResourcePoliciesListCall {
135593	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
135594	return c
135595}
135596
135597// Fields allows partial responses to be retrieved. See
135598// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135599// for more information.
135600func (c *ResourcePoliciesListCall) Fields(s ...googleapi.Field) *ResourcePoliciesListCall {
135601	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135602	return c
135603}
135604
135605// IfNoneMatch sets the optional parameter which makes the operation
135606// fail if the object's ETag matches the given value. This is useful for
135607// getting updates only after the object has changed since the last
135608// request. Use googleapi.IsNotModified to check whether the response
135609// error from Do is the result of In-None-Match.
135610func (c *ResourcePoliciesListCall) IfNoneMatch(entityTag string) *ResourcePoliciesListCall {
135611	c.ifNoneMatch_ = entityTag
135612	return c
135613}
135614
135615// Context sets the context to be used in this call's Do method. Any
135616// pending HTTP request will be aborted if the provided context is
135617// canceled.
135618func (c *ResourcePoliciesListCall) Context(ctx context.Context) *ResourcePoliciesListCall {
135619	c.ctx_ = ctx
135620	return c
135621}
135622
135623// Header returns an http.Header that can be modified by the caller to
135624// add HTTP headers to the request.
135625func (c *ResourcePoliciesListCall) Header() http.Header {
135626	if c.header_ == nil {
135627		c.header_ = make(http.Header)
135628	}
135629	return c.header_
135630}
135631
135632func (c *ResourcePoliciesListCall) doRequest(alt string) (*http.Response, error) {
135633	reqHeaders := make(http.Header)
135634	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
135635	for k, v := range c.header_ {
135636		reqHeaders[k] = v
135637	}
135638	reqHeaders.Set("User-Agent", c.s.userAgent())
135639	if c.ifNoneMatch_ != "" {
135640		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
135641	}
135642	var body io.Reader = nil
135643	c.urlParams_.Set("alt", alt)
135644	c.urlParams_.Set("prettyPrint", "false")
135645	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies")
135646	urls += "?" + c.urlParams_.Encode()
135647	req, err := http.NewRequest("GET", urls, body)
135648	if err != nil {
135649		return nil, err
135650	}
135651	req.Header = reqHeaders
135652	googleapi.Expand(req.URL, map[string]string{
135653		"project": c.project,
135654		"region":  c.region,
135655	})
135656	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135657}
135658
135659// Do executes the "compute.resourcePolicies.list" call.
135660// Exactly one of *ResourcePolicyList or error will be non-nil. Any
135661// non-2xx status code is an error. Response headers are in either
135662// *ResourcePolicyList.ServerResponse.Header or (if a response was
135663// returned at all) in error.(*googleapi.Error).Header. Use
135664// googleapi.IsNotModified to check whether the returned error was
135665// because http.StatusNotModified was returned.
135666func (c *ResourcePoliciesListCall) Do(opts ...googleapi.CallOption) (*ResourcePolicyList, error) {
135667	gensupport.SetOptions(c.urlParams_, opts...)
135668	res, err := c.doRequest("json")
135669	if res != nil && res.StatusCode == http.StatusNotModified {
135670		if res.Body != nil {
135671			res.Body.Close()
135672		}
135673		return nil, &googleapi.Error{
135674			Code:   res.StatusCode,
135675			Header: res.Header,
135676		}
135677	}
135678	if err != nil {
135679		return nil, err
135680	}
135681	defer googleapi.CloseBody(res)
135682	if err := googleapi.CheckResponse(res); err != nil {
135683		return nil, err
135684	}
135685	ret := &ResourcePolicyList{
135686		ServerResponse: googleapi.ServerResponse{
135687			Header:         res.Header,
135688			HTTPStatusCode: res.StatusCode,
135689		},
135690	}
135691	target := &ret
135692	if err := gensupport.DecodeResponse(target, res); err != nil {
135693		return nil, err
135694	}
135695	return ret, nil
135696	// {
135697	//   "description": "A list all the resource policies that have been configured for the specified project in specified region.",
135698	//   "httpMethod": "GET",
135699	//   "id": "compute.resourcePolicies.list",
135700	//   "parameterOrder": [
135701	//     "project",
135702	//     "region"
135703	//   ],
135704	//   "parameters": {
135705	//     "filter": {
135706	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
135707	//       "location": "query",
135708	//       "type": "string"
135709	//     },
135710	//     "maxResults": {
135711	//       "default": "500",
135712	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
135713	//       "format": "uint32",
135714	//       "location": "query",
135715	//       "minimum": "0",
135716	//       "type": "integer"
135717	//     },
135718	//     "orderBy": {
135719	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
135720	//       "location": "query",
135721	//       "type": "string"
135722	//     },
135723	//     "pageToken": {
135724	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
135725	//       "location": "query",
135726	//       "type": "string"
135727	//     },
135728	//     "project": {
135729	//       "description": "Project ID for this request.",
135730	//       "location": "path",
135731	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135732	//       "required": true,
135733	//       "type": "string"
135734	//     },
135735	//     "region": {
135736	//       "description": "Name of the region for this request.",
135737	//       "location": "path",
135738	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
135739	//       "required": true,
135740	//       "type": "string"
135741	//     },
135742	//     "returnPartialSuccess": {
135743	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
135744	//       "location": "query",
135745	//       "type": "boolean"
135746	//     }
135747	//   },
135748	//   "path": "projects/{project}/regions/{region}/resourcePolicies",
135749	//   "response": {
135750	//     "$ref": "ResourcePolicyList"
135751	//   },
135752	//   "scopes": [
135753	//     "https://www.googleapis.com/auth/cloud-platform",
135754	//     "https://www.googleapis.com/auth/compute",
135755	//     "https://www.googleapis.com/auth/compute.readonly"
135756	//   ]
135757	// }
135758
135759}
135760
135761// Pages invokes f for each page of results.
135762// A non-nil error returned from f will halt the iteration.
135763// The provided context supersedes any context provided to the Context method.
135764func (c *ResourcePoliciesListCall) Pages(ctx context.Context, f func(*ResourcePolicyList) error) error {
135765	c.ctx_ = ctx
135766	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
135767	for {
135768		x, err := c.Do()
135769		if err != nil {
135770			return err
135771		}
135772		if err := f(x); err != nil {
135773			return err
135774		}
135775		if x.NextPageToken == "" {
135776			return nil
135777		}
135778		c.PageToken(x.NextPageToken)
135779	}
135780}
135781
135782// method id "compute.resourcePolicies.setIamPolicy":
135783
135784type ResourcePoliciesSetIamPolicyCall struct {
135785	s                      *Service
135786	project                string
135787	region                 string
135788	resource               string
135789	regionsetpolicyrequest *RegionSetPolicyRequest
135790	urlParams_             gensupport.URLParams
135791	ctx_                   context.Context
135792	header_                http.Header
135793}
135794
135795// SetIamPolicy: Sets the access control policy on the specified
135796// resource. Replaces any existing policy.
135797//
135798// - project: Project ID for this request.
135799// - region: The name of the region for this request.
135800// - resource: Name or id of the resource for this request.
135801func (r *ResourcePoliciesService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *ResourcePoliciesSetIamPolicyCall {
135802	c := &ResourcePoliciesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135803	c.project = project
135804	c.region = region
135805	c.resource = resource
135806	c.regionsetpolicyrequest = regionsetpolicyrequest
135807	return c
135808}
135809
135810// Fields allows partial responses to be retrieved. See
135811// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135812// for more information.
135813func (c *ResourcePoliciesSetIamPolicyCall) Fields(s ...googleapi.Field) *ResourcePoliciesSetIamPolicyCall {
135814	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135815	return c
135816}
135817
135818// Context sets the context to be used in this call's Do method. Any
135819// pending HTTP request will be aborted if the provided context is
135820// canceled.
135821func (c *ResourcePoliciesSetIamPolicyCall) Context(ctx context.Context) *ResourcePoliciesSetIamPolicyCall {
135822	c.ctx_ = ctx
135823	return c
135824}
135825
135826// Header returns an http.Header that can be modified by the caller to
135827// add HTTP headers to the request.
135828func (c *ResourcePoliciesSetIamPolicyCall) Header() http.Header {
135829	if c.header_ == nil {
135830		c.header_ = make(http.Header)
135831	}
135832	return c.header_
135833}
135834
135835func (c *ResourcePoliciesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
135836	reqHeaders := make(http.Header)
135837	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
135838	for k, v := range c.header_ {
135839		reqHeaders[k] = v
135840	}
135841	reqHeaders.Set("User-Agent", c.s.userAgent())
135842	var body io.Reader = nil
135843	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
135844	if err != nil {
135845		return nil, err
135846	}
135847	reqHeaders.Set("Content-Type", "application/json")
135848	c.urlParams_.Set("alt", alt)
135849	c.urlParams_.Set("prettyPrint", "false")
135850	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy")
135851	urls += "?" + c.urlParams_.Encode()
135852	req, err := http.NewRequest("POST", 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		"resource": c.resource,
135861	})
135862	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135863}
135864
135865// Do executes the "compute.resourcePolicies.setIamPolicy" call.
135866// Exactly one of *Policy or error will be non-nil. Any non-2xx status
135867// code is an error. Response headers are in either
135868// *Policy.ServerResponse.Header or (if a response was returned at all)
135869// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
135870// check whether the returned error was because http.StatusNotModified
135871// was returned.
135872func (c *ResourcePoliciesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, 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 := &Policy{
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": "Sets the access control policy on the specified resource. Replaces any existing policy.",
135904	//   "httpMethod": "POST",
135905	//   "id": "compute.resourcePolicies.setIamPolicy",
135906	//   "parameterOrder": [
135907	//     "project",
135908	//     "region",
135909	//     "resource"
135910	//   ],
135911	//   "parameters": {
135912	//     "project": {
135913	//       "description": "Project ID for this request.",
135914	//       "location": "path",
135915	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135916	//       "required": true,
135917	//       "type": "string"
135918	//     },
135919	//     "region": {
135920	//       "description": "The name of the region for this request.",
135921	//       "location": "path",
135922	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
135923	//       "required": true,
135924	//       "type": "string"
135925	//     },
135926	//     "resource": {
135927	//       "description": "Name or id of the resource for this request.",
135928	//       "location": "path",
135929	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
135930	//       "required": true,
135931	//       "type": "string"
135932	//     }
135933	//   },
135934	//   "path": "projects/{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy",
135935	//   "request": {
135936	//     "$ref": "RegionSetPolicyRequest"
135937	//   },
135938	//   "response": {
135939	//     "$ref": "Policy"
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.resourcePolicies.testIamPermissions":
135950
135951type ResourcePoliciesTestIamPermissionsCall struct {
135952	s                      *Service
135953	project                string
135954	region                 string
135955	resource               string
135956	testpermissionsrequest *TestPermissionsRequest
135957	urlParams_             gensupport.URLParams
135958	ctx_                   context.Context
135959	header_                http.Header
135960}
135961
135962// TestIamPermissions: Returns permissions that a caller has on the
135963// specified resource.
135964//
135965// - project: Project ID for this request.
135966// - region: The name of the region for this request.
135967// - resource: Name or id of the resource for this request.
135968func (r *ResourcePoliciesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *ResourcePoliciesTestIamPermissionsCall {
135969	c := &ResourcePoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135970	c.project = project
135971	c.region = region
135972	c.resource = resource
135973	c.testpermissionsrequest = testpermissionsrequest
135974	return c
135975}
135976
135977// Fields allows partial responses to be retrieved. See
135978// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135979// for more information.
135980func (c *ResourcePoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ResourcePoliciesTestIamPermissionsCall {
135981	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135982	return c
135983}
135984
135985// Context sets the context to be used in this call's Do method. Any
135986// pending HTTP request will be aborted if the provided context is
135987// canceled.
135988func (c *ResourcePoliciesTestIamPermissionsCall) Context(ctx context.Context) *ResourcePoliciesTestIamPermissionsCall {
135989	c.ctx_ = ctx
135990	return c
135991}
135992
135993// Header returns an http.Header that can be modified by the caller to
135994// add HTTP headers to the request.
135995func (c *ResourcePoliciesTestIamPermissionsCall) Header() http.Header {
135996	if c.header_ == nil {
135997		c.header_ = make(http.Header)
135998	}
135999	return c.header_
136000}
136001
136002func (c *ResourcePoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
136003	reqHeaders := make(http.Header)
136004	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
136005	for k, v := range c.header_ {
136006		reqHeaders[k] = v
136007	}
136008	reqHeaders.Set("User-Agent", c.s.userAgent())
136009	var body io.Reader = nil
136010	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
136011	if err != nil {
136012		return nil, err
136013	}
136014	reqHeaders.Set("Content-Type", "application/json")
136015	c.urlParams_.Set("alt", alt)
136016	c.urlParams_.Set("prettyPrint", "false")
136017	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions")
136018	urls += "?" + c.urlParams_.Encode()
136019	req, err := http.NewRequest("POST", urls, body)
136020	if err != nil {
136021		return nil, err
136022	}
136023	req.Header = reqHeaders
136024	googleapi.Expand(req.URL, map[string]string{
136025		"project":  c.project,
136026		"region":   c.region,
136027		"resource": c.resource,
136028	})
136029	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136030}
136031
136032// Do executes the "compute.resourcePolicies.testIamPermissions" call.
136033// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
136034// non-2xx status code is an error. Response headers are in either
136035// *TestPermissionsResponse.ServerResponse.Header or (if a response was
136036// returned at all) in error.(*googleapi.Error).Header. Use
136037// googleapi.IsNotModified to check whether the returned error was
136038// because http.StatusNotModified was returned.
136039func (c *ResourcePoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
136040	gensupport.SetOptions(c.urlParams_, opts...)
136041	res, err := c.doRequest("json")
136042	if res != nil && res.StatusCode == http.StatusNotModified {
136043		if res.Body != nil {
136044			res.Body.Close()
136045		}
136046		return nil, &googleapi.Error{
136047			Code:   res.StatusCode,
136048			Header: res.Header,
136049		}
136050	}
136051	if err != nil {
136052		return nil, err
136053	}
136054	defer googleapi.CloseBody(res)
136055	if err := googleapi.CheckResponse(res); err != nil {
136056		return nil, err
136057	}
136058	ret := &TestPermissionsResponse{
136059		ServerResponse: googleapi.ServerResponse{
136060			Header:         res.Header,
136061			HTTPStatusCode: res.StatusCode,
136062		},
136063	}
136064	target := &ret
136065	if err := gensupport.DecodeResponse(target, res); err != nil {
136066		return nil, err
136067	}
136068	return ret, nil
136069	// {
136070	//   "description": "Returns permissions that a caller has on the specified resource.",
136071	//   "httpMethod": "POST",
136072	//   "id": "compute.resourcePolicies.testIamPermissions",
136073	//   "parameterOrder": [
136074	//     "project",
136075	//     "region",
136076	//     "resource"
136077	//   ],
136078	//   "parameters": {
136079	//     "project": {
136080	//       "description": "Project ID for this request.",
136081	//       "location": "path",
136082	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136083	//       "required": true,
136084	//       "type": "string"
136085	//     },
136086	//     "region": {
136087	//       "description": "The name of the region for this request.",
136088	//       "location": "path",
136089	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
136090	//       "required": true,
136091	//       "type": "string"
136092	//     },
136093	//     "resource": {
136094	//       "description": "Name or id of the resource for this request.",
136095	//       "location": "path",
136096	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
136097	//       "required": true,
136098	//       "type": "string"
136099	//     }
136100	//   },
136101	//   "path": "projects/{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions",
136102	//   "request": {
136103	//     "$ref": "TestPermissionsRequest"
136104	//   },
136105	//   "response": {
136106	//     "$ref": "TestPermissionsResponse"
136107	//   },
136108	//   "scopes": [
136109	//     "https://www.googleapis.com/auth/cloud-platform",
136110	//     "https://www.googleapis.com/auth/compute",
136111	//     "https://www.googleapis.com/auth/compute.readonly"
136112	//   ]
136113	// }
136114
136115}
136116
136117// method id "compute.routers.aggregatedList":
136118
136119type RoutersAggregatedListCall struct {
136120	s            *Service
136121	project      string
136122	urlParams_   gensupport.URLParams
136123	ifNoneMatch_ string
136124	ctx_         context.Context
136125	header_      http.Header
136126}
136127
136128// AggregatedList: Retrieves an aggregated list of routers.
136129//
136130// - project: Project ID for this request.
136131func (r *RoutersService) AggregatedList(project string) *RoutersAggregatedListCall {
136132	c := &RoutersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136133	c.project = project
136134	return c
136135}
136136
136137// Filter sets the optional parameter "filter": A filter expression that
136138// filters resources listed in the response. The expression must specify
136139// the field name, a comparison operator, and the value that you want to
136140// use for filtering. The value must be a string, a number, or a
136141// boolean. The comparison operator must be either `=`, `!=`, `>`, or
136142// `<`.
136143//
136144// For example, if you are filtering Compute Engine instances, you can
136145// exclude instances named `example-instance` by specifying `name !=
136146// example-instance`.
136147//
136148// You can also filter nested fields. For example, you could specify
136149// `scheduling.automaticRestart = false` to include instances only if
136150// they are not scheduled for automatic restarts. You can use filtering
136151// on nested fields to filter based on resource labels.
136152//
136153// To filter on multiple expressions, provide each separate expression
136154// within parentheses. For example: ``` (scheduling.automaticRestart =
136155// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
136156// is an `AND` expression. However, you can include `AND` and `OR`
136157// expressions explicitly. For example: ``` (cpuPlatform = "Intel
136158// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
136159// (scheduling.automaticRestart = true) ```
136160func (c *RoutersAggregatedListCall) Filter(filter string) *RoutersAggregatedListCall {
136161	c.urlParams_.Set("filter", filter)
136162	return c
136163}
136164
136165// IncludeAllScopes sets the optional parameter "includeAllScopes":
136166// Indicates whether every visible scope for each scope type (zone,
136167// region, global) should be included in the response. For new resource
136168// types added after this field, the flag has no effect as new resource
136169// types will always include every visible scope for each scope type in
136170// response. For resource types which predate this field, if this flag
136171// is omitted or false, only scopes of the scope types where the
136172// resource type is expected to be found will be included.
136173func (c *RoutersAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *RoutersAggregatedListCall {
136174	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
136175	return c
136176}
136177
136178// MaxResults sets the optional parameter "maxResults": The maximum
136179// number of results per page that should be returned. If the number of
136180// available results is larger than `maxResults`, Compute Engine returns
136181// a `nextPageToken` that can be used to get the next page of results in
136182// subsequent list requests. Acceptable values are `0` to `500`,
136183// inclusive. (Default: `500`)
136184func (c *RoutersAggregatedListCall) MaxResults(maxResults int64) *RoutersAggregatedListCall {
136185	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
136186	return c
136187}
136188
136189// OrderBy sets the optional parameter "orderBy": Sorts list results by
136190// a certain order. By default, results are returned in alphanumerical
136191// order based on the resource name.
136192//
136193// You can also sort results in descending order based on the creation
136194// timestamp using `orderBy="creationTimestamp desc". This sorts
136195// results based on the `creationTimestamp` field in reverse
136196// chronological order (newest result first). Use this to sort resources
136197// like operations so that the newest operation is returned
136198// first.
136199//
136200// Currently, only sorting by `name` or `creationTimestamp desc` is
136201// supported.
136202func (c *RoutersAggregatedListCall) OrderBy(orderBy string) *RoutersAggregatedListCall {
136203	c.urlParams_.Set("orderBy", orderBy)
136204	return c
136205}
136206
136207// PageToken sets the optional parameter "pageToken": Specifies a page
136208// token to use. Set `pageToken` to the `nextPageToken` returned by a
136209// previous list request to get the next page of results.
136210func (c *RoutersAggregatedListCall) PageToken(pageToken string) *RoutersAggregatedListCall {
136211	c.urlParams_.Set("pageToken", pageToken)
136212	return c
136213}
136214
136215// ReturnPartialSuccess sets the optional parameter
136216// "returnPartialSuccess": Opt-in for partial success behavior which
136217// provides partial results in case of failure. The default value is
136218// false.
136219func (c *RoutersAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RoutersAggregatedListCall {
136220	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
136221	return c
136222}
136223
136224// Fields allows partial responses to be retrieved. See
136225// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136226// for more information.
136227func (c *RoutersAggregatedListCall) Fields(s ...googleapi.Field) *RoutersAggregatedListCall {
136228	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136229	return c
136230}
136231
136232// IfNoneMatch sets the optional parameter which makes the operation
136233// fail if the object's ETag matches the given value. This is useful for
136234// getting updates only after the object has changed since the last
136235// request. Use googleapi.IsNotModified to check whether the response
136236// error from Do is the result of In-None-Match.
136237func (c *RoutersAggregatedListCall) IfNoneMatch(entityTag string) *RoutersAggregatedListCall {
136238	c.ifNoneMatch_ = entityTag
136239	return c
136240}
136241
136242// Context sets the context to be used in this call's Do method. Any
136243// pending HTTP request will be aborted if the provided context is
136244// canceled.
136245func (c *RoutersAggregatedListCall) Context(ctx context.Context) *RoutersAggregatedListCall {
136246	c.ctx_ = ctx
136247	return c
136248}
136249
136250// Header returns an http.Header that can be modified by the caller to
136251// add HTTP headers to the request.
136252func (c *RoutersAggregatedListCall) Header() http.Header {
136253	if c.header_ == nil {
136254		c.header_ = make(http.Header)
136255	}
136256	return c.header_
136257}
136258
136259func (c *RoutersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
136260	reqHeaders := make(http.Header)
136261	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
136262	for k, v := range c.header_ {
136263		reqHeaders[k] = v
136264	}
136265	reqHeaders.Set("User-Agent", c.s.userAgent())
136266	if c.ifNoneMatch_ != "" {
136267		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
136268	}
136269	var body io.Reader = nil
136270	c.urlParams_.Set("alt", alt)
136271	c.urlParams_.Set("prettyPrint", "false")
136272	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/routers")
136273	urls += "?" + c.urlParams_.Encode()
136274	req, err := http.NewRequest("GET", urls, body)
136275	if err != nil {
136276		return nil, err
136277	}
136278	req.Header = reqHeaders
136279	googleapi.Expand(req.URL, map[string]string{
136280		"project": c.project,
136281	})
136282	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136283}
136284
136285// Do executes the "compute.routers.aggregatedList" call.
136286// Exactly one of *RouterAggregatedList or error will be non-nil. Any
136287// non-2xx status code is an error. Response headers are in either
136288// *RouterAggregatedList.ServerResponse.Header or (if a response was
136289// returned at all) in error.(*googleapi.Error).Header. Use
136290// googleapi.IsNotModified to check whether the returned error was
136291// because http.StatusNotModified was returned.
136292func (c *RoutersAggregatedListCall) Do(opts ...googleapi.CallOption) (*RouterAggregatedList, error) {
136293	gensupport.SetOptions(c.urlParams_, opts...)
136294	res, err := c.doRequest("json")
136295	if res != nil && res.StatusCode == http.StatusNotModified {
136296		if res.Body != nil {
136297			res.Body.Close()
136298		}
136299		return nil, &googleapi.Error{
136300			Code:   res.StatusCode,
136301			Header: res.Header,
136302		}
136303	}
136304	if err != nil {
136305		return nil, err
136306	}
136307	defer googleapi.CloseBody(res)
136308	if err := googleapi.CheckResponse(res); err != nil {
136309		return nil, err
136310	}
136311	ret := &RouterAggregatedList{
136312		ServerResponse: googleapi.ServerResponse{
136313			Header:         res.Header,
136314			HTTPStatusCode: res.StatusCode,
136315		},
136316	}
136317	target := &ret
136318	if err := gensupport.DecodeResponse(target, res); err != nil {
136319		return nil, err
136320	}
136321	return ret, nil
136322	// {
136323	//   "description": "Retrieves an aggregated list of routers.",
136324	//   "httpMethod": "GET",
136325	//   "id": "compute.routers.aggregatedList",
136326	//   "parameterOrder": [
136327	//     "project"
136328	//   ],
136329	//   "parameters": {
136330	//     "filter": {
136331	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
136332	//       "location": "query",
136333	//       "type": "string"
136334	//     },
136335	//     "includeAllScopes": {
136336	//       "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.",
136337	//       "location": "query",
136338	//       "type": "boolean"
136339	//     },
136340	//     "maxResults": {
136341	//       "default": "500",
136342	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
136343	//       "format": "uint32",
136344	//       "location": "query",
136345	//       "minimum": "0",
136346	//       "type": "integer"
136347	//     },
136348	//     "orderBy": {
136349	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
136350	//       "location": "query",
136351	//       "type": "string"
136352	//     },
136353	//     "pageToken": {
136354	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
136355	//       "location": "query",
136356	//       "type": "string"
136357	//     },
136358	//     "project": {
136359	//       "description": "Project ID for this request.",
136360	//       "location": "path",
136361	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136362	//       "required": true,
136363	//       "type": "string"
136364	//     },
136365	//     "returnPartialSuccess": {
136366	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
136367	//       "location": "query",
136368	//       "type": "boolean"
136369	//     }
136370	//   },
136371	//   "path": "projects/{project}/aggregated/routers",
136372	//   "response": {
136373	//     "$ref": "RouterAggregatedList"
136374	//   },
136375	//   "scopes": [
136376	//     "https://www.googleapis.com/auth/cloud-platform",
136377	//     "https://www.googleapis.com/auth/compute",
136378	//     "https://www.googleapis.com/auth/compute.readonly"
136379	//   ]
136380	// }
136381
136382}
136383
136384// Pages invokes f for each page of results.
136385// A non-nil error returned from f will halt the iteration.
136386// The provided context supersedes any context provided to the Context method.
136387func (c *RoutersAggregatedListCall) Pages(ctx context.Context, f func(*RouterAggregatedList) error) error {
136388	c.ctx_ = ctx
136389	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
136390	for {
136391		x, err := c.Do()
136392		if err != nil {
136393			return err
136394		}
136395		if err := f(x); err != nil {
136396			return err
136397		}
136398		if x.NextPageToken == "" {
136399			return nil
136400		}
136401		c.PageToken(x.NextPageToken)
136402	}
136403}
136404
136405// method id "compute.routers.delete":
136406
136407type RoutersDeleteCall struct {
136408	s          *Service
136409	project    string
136410	region     string
136411	router     string
136412	urlParams_ gensupport.URLParams
136413	ctx_       context.Context
136414	header_    http.Header
136415}
136416
136417// Delete: Deletes the specified Router resource.
136418//
136419// - project: Project ID for this request.
136420// - region: Name of the region for this request.
136421// - router: Name of the Router resource to delete.
136422func (r *RoutersService) Delete(project string, region string, router string) *RoutersDeleteCall {
136423	c := &RoutersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136424	c.project = project
136425	c.region = region
136426	c.router = router
136427	return c
136428}
136429
136430// RequestId sets the optional parameter "requestId": An optional
136431// request ID to identify requests. Specify a unique request ID so that
136432// if you must retry your request, the server will know to ignore the
136433// request if it has already been completed.
136434//
136435// For example, consider a situation where you make an initial request
136436// and the request times out. If you make the request again with the
136437// same request ID, the server can check if original operation with the
136438// same request ID was received, and if so, will ignore the second
136439// request. This prevents clients from accidentally creating duplicate
136440// commitments.
136441//
136442// The request ID must be a valid UUID with the exception that zero UUID
136443// is not supported (00000000-0000-0000-0000-000000000000).
136444func (c *RoutersDeleteCall) RequestId(requestId string) *RoutersDeleteCall {
136445	c.urlParams_.Set("requestId", requestId)
136446	return c
136447}
136448
136449// Fields allows partial responses to be retrieved. See
136450// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136451// for more information.
136452func (c *RoutersDeleteCall) Fields(s ...googleapi.Field) *RoutersDeleteCall {
136453	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136454	return c
136455}
136456
136457// Context sets the context to be used in this call's Do method. Any
136458// pending HTTP request will be aborted if the provided context is
136459// canceled.
136460func (c *RoutersDeleteCall) Context(ctx context.Context) *RoutersDeleteCall {
136461	c.ctx_ = ctx
136462	return c
136463}
136464
136465// Header returns an http.Header that can be modified by the caller to
136466// add HTTP headers to the request.
136467func (c *RoutersDeleteCall) Header() http.Header {
136468	if c.header_ == nil {
136469		c.header_ = make(http.Header)
136470	}
136471	return c.header_
136472}
136473
136474func (c *RoutersDeleteCall) doRequest(alt string) (*http.Response, error) {
136475	reqHeaders := make(http.Header)
136476	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
136477	for k, v := range c.header_ {
136478		reqHeaders[k] = v
136479	}
136480	reqHeaders.Set("User-Agent", c.s.userAgent())
136481	var body io.Reader = nil
136482	c.urlParams_.Set("alt", alt)
136483	c.urlParams_.Set("prettyPrint", "false")
136484	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}")
136485	urls += "?" + c.urlParams_.Encode()
136486	req, err := http.NewRequest("DELETE", urls, body)
136487	if err != nil {
136488		return nil, err
136489	}
136490	req.Header = reqHeaders
136491	googleapi.Expand(req.URL, map[string]string{
136492		"project": c.project,
136493		"region":  c.region,
136494		"router":  c.router,
136495	})
136496	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136497}
136498
136499// Do executes the "compute.routers.delete" call.
136500// Exactly one of *Operation or error will be non-nil. Any non-2xx
136501// status code is an error. Response headers are in either
136502// *Operation.ServerResponse.Header or (if a response was returned at
136503// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
136504// to check whether the returned error was because
136505// http.StatusNotModified was returned.
136506func (c *RoutersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
136507	gensupport.SetOptions(c.urlParams_, opts...)
136508	res, err := c.doRequest("json")
136509	if res != nil && res.StatusCode == http.StatusNotModified {
136510		if res.Body != nil {
136511			res.Body.Close()
136512		}
136513		return nil, &googleapi.Error{
136514			Code:   res.StatusCode,
136515			Header: res.Header,
136516		}
136517	}
136518	if err != nil {
136519		return nil, err
136520	}
136521	defer googleapi.CloseBody(res)
136522	if err := googleapi.CheckResponse(res); err != nil {
136523		return nil, err
136524	}
136525	ret := &Operation{
136526		ServerResponse: googleapi.ServerResponse{
136527			Header:         res.Header,
136528			HTTPStatusCode: res.StatusCode,
136529		},
136530	}
136531	target := &ret
136532	if err := gensupport.DecodeResponse(target, res); err != nil {
136533		return nil, err
136534	}
136535	return ret, nil
136536	// {
136537	//   "description": "Deletes the specified Router resource.",
136538	//   "httpMethod": "DELETE",
136539	//   "id": "compute.routers.delete",
136540	//   "parameterOrder": [
136541	//     "project",
136542	//     "region",
136543	//     "router"
136544	//   ],
136545	//   "parameters": {
136546	//     "project": {
136547	//       "description": "Project ID for this request.",
136548	//       "location": "path",
136549	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136550	//       "required": true,
136551	//       "type": "string"
136552	//     },
136553	//     "region": {
136554	//       "description": "Name of the region for this request.",
136555	//       "location": "path",
136556	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
136557	//       "required": true,
136558	//       "type": "string"
136559	//     },
136560	//     "requestId": {
136561	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
136562	//       "location": "query",
136563	//       "type": "string"
136564	//     },
136565	//     "router": {
136566	//       "description": "Name of the Router resource to delete.",
136567	//       "location": "path",
136568	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
136569	//       "required": true,
136570	//       "type": "string"
136571	//     }
136572	//   },
136573	//   "path": "projects/{project}/regions/{region}/routers/{router}",
136574	//   "response": {
136575	//     "$ref": "Operation"
136576	//   },
136577	//   "scopes": [
136578	//     "https://www.googleapis.com/auth/cloud-platform",
136579	//     "https://www.googleapis.com/auth/compute"
136580	//   ]
136581	// }
136582
136583}
136584
136585// method id "compute.routers.get":
136586
136587type RoutersGetCall struct {
136588	s            *Service
136589	project      string
136590	region       string
136591	router       string
136592	urlParams_   gensupport.URLParams
136593	ifNoneMatch_ string
136594	ctx_         context.Context
136595	header_      http.Header
136596}
136597
136598// Get: Returns the specified Router resource. Gets a list of available
136599// routers by making a list() request.
136600//
136601// - project: Project ID for this request.
136602// - region: Name of the region for this request.
136603// - router: Name of the Router resource to return.
136604func (r *RoutersService) Get(project string, region string, router string) *RoutersGetCall {
136605	c := &RoutersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136606	c.project = project
136607	c.region = region
136608	c.router = router
136609	return c
136610}
136611
136612// Fields allows partial responses to be retrieved. See
136613// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136614// for more information.
136615func (c *RoutersGetCall) Fields(s ...googleapi.Field) *RoutersGetCall {
136616	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136617	return c
136618}
136619
136620// IfNoneMatch sets the optional parameter which makes the operation
136621// fail if the object's ETag matches the given value. This is useful for
136622// getting updates only after the object has changed since the last
136623// request. Use googleapi.IsNotModified to check whether the response
136624// error from Do is the result of In-None-Match.
136625func (c *RoutersGetCall) IfNoneMatch(entityTag string) *RoutersGetCall {
136626	c.ifNoneMatch_ = entityTag
136627	return c
136628}
136629
136630// Context sets the context to be used in this call's Do method. Any
136631// pending HTTP request will be aborted if the provided context is
136632// canceled.
136633func (c *RoutersGetCall) Context(ctx context.Context) *RoutersGetCall {
136634	c.ctx_ = ctx
136635	return c
136636}
136637
136638// Header returns an http.Header that can be modified by the caller to
136639// add HTTP headers to the request.
136640func (c *RoutersGetCall) Header() http.Header {
136641	if c.header_ == nil {
136642		c.header_ = make(http.Header)
136643	}
136644	return c.header_
136645}
136646
136647func (c *RoutersGetCall) doRequest(alt string) (*http.Response, error) {
136648	reqHeaders := make(http.Header)
136649	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
136650	for k, v := range c.header_ {
136651		reqHeaders[k] = v
136652	}
136653	reqHeaders.Set("User-Agent", c.s.userAgent())
136654	if c.ifNoneMatch_ != "" {
136655		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
136656	}
136657	var body io.Reader = nil
136658	c.urlParams_.Set("alt", alt)
136659	c.urlParams_.Set("prettyPrint", "false")
136660	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}")
136661	urls += "?" + c.urlParams_.Encode()
136662	req, err := http.NewRequest("GET", urls, body)
136663	if err != nil {
136664		return nil, err
136665	}
136666	req.Header = reqHeaders
136667	googleapi.Expand(req.URL, map[string]string{
136668		"project": c.project,
136669		"region":  c.region,
136670		"router":  c.router,
136671	})
136672	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136673}
136674
136675// Do executes the "compute.routers.get" call.
136676// Exactly one of *Router or error will be non-nil. Any non-2xx status
136677// code is an error. Response headers are in either
136678// *Router.ServerResponse.Header or (if a response was returned at all)
136679// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
136680// check whether the returned error was because http.StatusNotModified
136681// was returned.
136682func (c *RoutersGetCall) Do(opts ...googleapi.CallOption) (*Router, error) {
136683	gensupport.SetOptions(c.urlParams_, opts...)
136684	res, err := c.doRequest("json")
136685	if res != nil && res.StatusCode == http.StatusNotModified {
136686		if res.Body != nil {
136687			res.Body.Close()
136688		}
136689		return nil, &googleapi.Error{
136690			Code:   res.StatusCode,
136691			Header: res.Header,
136692		}
136693	}
136694	if err != nil {
136695		return nil, err
136696	}
136697	defer googleapi.CloseBody(res)
136698	if err := googleapi.CheckResponse(res); err != nil {
136699		return nil, err
136700	}
136701	ret := &Router{
136702		ServerResponse: googleapi.ServerResponse{
136703			Header:         res.Header,
136704			HTTPStatusCode: res.StatusCode,
136705		},
136706	}
136707	target := &ret
136708	if err := gensupport.DecodeResponse(target, res); err != nil {
136709		return nil, err
136710	}
136711	return ret, nil
136712	// {
136713	//   "description": "Returns the specified Router resource. Gets a list of available routers by making a list() request.",
136714	//   "httpMethod": "GET",
136715	//   "id": "compute.routers.get",
136716	//   "parameterOrder": [
136717	//     "project",
136718	//     "region",
136719	//     "router"
136720	//   ],
136721	//   "parameters": {
136722	//     "project": {
136723	//       "description": "Project ID for this request.",
136724	//       "location": "path",
136725	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136726	//       "required": true,
136727	//       "type": "string"
136728	//     },
136729	//     "region": {
136730	//       "description": "Name of the region for this request.",
136731	//       "location": "path",
136732	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
136733	//       "required": true,
136734	//       "type": "string"
136735	//     },
136736	//     "router": {
136737	//       "description": "Name of the Router resource to return.",
136738	//       "location": "path",
136739	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
136740	//       "required": true,
136741	//       "type": "string"
136742	//     }
136743	//   },
136744	//   "path": "projects/{project}/regions/{region}/routers/{router}",
136745	//   "response": {
136746	//     "$ref": "Router"
136747	//   },
136748	//   "scopes": [
136749	//     "https://www.googleapis.com/auth/cloud-platform",
136750	//     "https://www.googleapis.com/auth/compute",
136751	//     "https://www.googleapis.com/auth/compute.readonly"
136752	//   ]
136753	// }
136754
136755}
136756
136757// method id "compute.routers.getNatMappingInfo":
136758
136759type RoutersGetNatMappingInfoCall struct {
136760	s            *Service
136761	project      string
136762	region       string
136763	router       string
136764	urlParams_   gensupport.URLParams
136765	ifNoneMatch_ string
136766	ctx_         context.Context
136767	header_      http.Header
136768}
136769
136770// GetNatMappingInfo: Retrieves runtime Nat mapping information of VM
136771// endpoints.
136772//
136773// - project: Project ID for this request.
136774// - region: Name of the region for this request.
136775// - router: Name of the Router resource to query for Nat Mapping
136776//   information of VM endpoints.
136777func (r *RoutersService) GetNatMappingInfo(project string, region string, router string) *RoutersGetNatMappingInfoCall {
136778	c := &RoutersGetNatMappingInfoCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136779	c.project = project
136780	c.region = region
136781	c.router = router
136782	return c
136783}
136784
136785// Filter sets the optional parameter "filter": A filter expression that
136786// filters resources listed in the response. The expression must specify
136787// the field name, a comparison operator, and the value that you want to
136788// use for filtering. The value must be a string, a number, or a
136789// boolean. The comparison operator must be either `=`, `!=`, `>`, or
136790// `<`.
136791//
136792// For example, if you are filtering Compute Engine instances, you can
136793// exclude instances named `example-instance` by specifying `name !=
136794// example-instance`.
136795//
136796// You can also filter nested fields. For example, you could specify
136797// `scheduling.automaticRestart = false` to include instances only if
136798// they are not scheduled for automatic restarts. You can use filtering
136799// on nested fields to filter based on resource labels.
136800//
136801// To filter on multiple expressions, provide each separate expression
136802// within parentheses. For example: ``` (scheduling.automaticRestart =
136803// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
136804// is an `AND` expression. However, you can include `AND` and `OR`
136805// expressions explicitly. For example: ``` (cpuPlatform = "Intel
136806// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
136807// (scheduling.automaticRestart = true) ```
136808func (c *RoutersGetNatMappingInfoCall) Filter(filter string) *RoutersGetNatMappingInfoCall {
136809	c.urlParams_.Set("filter", filter)
136810	return c
136811}
136812
136813// MaxResults sets the optional parameter "maxResults": The maximum
136814// number of results per page that should be returned. If the number of
136815// available results is larger than `maxResults`, Compute Engine returns
136816// a `nextPageToken` that can be used to get the next page of results in
136817// subsequent list requests. Acceptable values are `0` to `500`,
136818// inclusive. (Default: `500`)
136819func (c *RoutersGetNatMappingInfoCall) MaxResults(maxResults int64) *RoutersGetNatMappingInfoCall {
136820	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
136821	return c
136822}
136823
136824// OrderBy sets the optional parameter "orderBy": Sorts list results by
136825// a certain order. By default, results are returned in alphanumerical
136826// order based on the resource name.
136827//
136828// You can also sort results in descending order based on the creation
136829// timestamp using `orderBy="creationTimestamp desc". This sorts
136830// results based on the `creationTimestamp` field in reverse
136831// chronological order (newest result first). Use this to sort resources
136832// like operations so that the newest operation is returned
136833// first.
136834//
136835// Currently, only sorting by `name` or `creationTimestamp desc` is
136836// supported.
136837func (c *RoutersGetNatMappingInfoCall) OrderBy(orderBy string) *RoutersGetNatMappingInfoCall {
136838	c.urlParams_.Set("orderBy", orderBy)
136839	return c
136840}
136841
136842// PageToken sets the optional parameter "pageToken": Specifies a page
136843// token to use. Set `pageToken` to the `nextPageToken` returned by a
136844// previous list request to get the next page of results.
136845func (c *RoutersGetNatMappingInfoCall) PageToken(pageToken string) *RoutersGetNatMappingInfoCall {
136846	c.urlParams_.Set("pageToken", pageToken)
136847	return c
136848}
136849
136850// ReturnPartialSuccess sets the optional parameter
136851// "returnPartialSuccess": Opt-in for partial success behavior which
136852// provides partial results in case of failure. The default value is
136853// false.
136854func (c *RoutersGetNatMappingInfoCall) ReturnPartialSuccess(returnPartialSuccess bool) *RoutersGetNatMappingInfoCall {
136855	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
136856	return c
136857}
136858
136859// Fields allows partial responses to be retrieved. See
136860// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136861// for more information.
136862func (c *RoutersGetNatMappingInfoCall) Fields(s ...googleapi.Field) *RoutersGetNatMappingInfoCall {
136863	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136864	return c
136865}
136866
136867// IfNoneMatch sets the optional parameter which makes the operation
136868// fail if the object's ETag matches the given value. This is useful for
136869// getting updates only after the object has changed since the last
136870// request. Use googleapi.IsNotModified to check whether the response
136871// error from Do is the result of In-None-Match.
136872func (c *RoutersGetNatMappingInfoCall) IfNoneMatch(entityTag string) *RoutersGetNatMappingInfoCall {
136873	c.ifNoneMatch_ = entityTag
136874	return c
136875}
136876
136877// Context sets the context to be used in this call's Do method. Any
136878// pending HTTP request will be aborted if the provided context is
136879// canceled.
136880func (c *RoutersGetNatMappingInfoCall) Context(ctx context.Context) *RoutersGetNatMappingInfoCall {
136881	c.ctx_ = ctx
136882	return c
136883}
136884
136885// Header returns an http.Header that can be modified by the caller to
136886// add HTTP headers to the request.
136887func (c *RoutersGetNatMappingInfoCall) Header() http.Header {
136888	if c.header_ == nil {
136889		c.header_ = make(http.Header)
136890	}
136891	return c.header_
136892}
136893
136894func (c *RoutersGetNatMappingInfoCall) doRequest(alt string) (*http.Response, error) {
136895	reqHeaders := make(http.Header)
136896	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
136897	for k, v := range c.header_ {
136898		reqHeaders[k] = v
136899	}
136900	reqHeaders.Set("User-Agent", c.s.userAgent())
136901	if c.ifNoneMatch_ != "" {
136902		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
136903	}
136904	var body io.Reader = nil
136905	c.urlParams_.Set("alt", alt)
136906	c.urlParams_.Set("prettyPrint", "false")
136907	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo")
136908	urls += "?" + c.urlParams_.Encode()
136909	req, err := http.NewRequest("GET", urls, body)
136910	if err != nil {
136911		return nil, err
136912	}
136913	req.Header = reqHeaders
136914	googleapi.Expand(req.URL, map[string]string{
136915		"project": c.project,
136916		"region":  c.region,
136917		"router":  c.router,
136918	})
136919	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136920}
136921
136922// Do executes the "compute.routers.getNatMappingInfo" call.
136923// Exactly one of *VmEndpointNatMappingsList or error will be non-nil.
136924// Any non-2xx status code is an error. Response headers are in either
136925// *VmEndpointNatMappingsList.ServerResponse.Header or (if a response
136926// was returned at all) in error.(*googleapi.Error).Header. Use
136927// googleapi.IsNotModified to check whether the returned error was
136928// because http.StatusNotModified was returned.
136929func (c *RoutersGetNatMappingInfoCall) Do(opts ...googleapi.CallOption) (*VmEndpointNatMappingsList, error) {
136930	gensupport.SetOptions(c.urlParams_, opts...)
136931	res, err := c.doRequest("json")
136932	if res != nil && res.StatusCode == http.StatusNotModified {
136933		if res.Body != nil {
136934			res.Body.Close()
136935		}
136936		return nil, &googleapi.Error{
136937			Code:   res.StatusCode,
136938			Header: res.Header,
136939		}
136940	}
136941	if err != nil {
136942		return nil, err
136943	}
136944	defer googleapi.CloseBody(res)
136945	if err := googleapi.CheckResponse(res); err != nil {
136946		return nil, err
136947	}
136948	ret := &VmEndpointNatMappingsList{
136949		ServerResponse: googleapi.ServerResponse{
136950			Header:         res.Header,
136951			HTTPStatusCode: res.StatusCode,
136952		},
136953	}
136954	target := &ret
136955	if err := gensupport.DecodeResponse(target, res); err != nil {
136956		return nil, err
136957	}
136958	return ret, nil
136959	// {
136960	//   "description": "Retrieves runtime Nat mapping information of VM endpoints.",
136961	//   "httpMethod": "GET",
136962	//   "id": "compute.routers.getNatMappingInfo",
136963	//   "parameterOrder": [
136964	//     "project",
136965	//     "region",
136966	//     "router"
136967	//   ],
136968	//   "parameters": {
136969	//     "filter": {
136970	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
136971	//       "location": "query",
136972	//       "type": "string"
136973	//     },
136974	//     "maxResults": {
136975	//       "default": "500",
136976	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
136977	//       "format": "uint32",
136978	//       "location": "query",
136979	//       "minimum": "0",
136980	//       "type": "integer"
136981	//     },
136982	//     "orderBy": {
136983	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
136984	//       "location": "query",
136985	//       "type": "string"
136986	//     },
136987	//     "pageToken": {
136988	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
136989	//       "location": "query",
136990	//       "type": "string"
136991	//     },
136992	//     "project": {
136993	//       "description": "Project ID for this request.",
136994	//       "location": "path",
136995	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136996	//       "required": true,
136997	//       "type": "string"
136998	//     },
136999	//     "region": {
137000	//       "description": "Name of the region for this request.",
137001	//       "location": "path",
137002	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137003	//       "required": true,
137004	//       "type": "string"
137005	//     },
137006	//     "returnPartialSuccess": {
137007	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
137008	//       "location": "query",
137009	//       "type": "boolean"
137010	//     },
137011	//     "router": {
137012	//       "description": "Name of the Router resource to query for Nat Mapping information of VM endpoints.",
137013	//       "location": "path",
137014	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
137015	//       "required": true,
137016	//       "type": "string"
137017	//     }
137018	//   },
137019	//   "path": "projects/{project}/regions/{region}/routers/{router}/getNatMappingInfo",
137020	//   "response": {
137021	//     "$ref": "VmEndpointNatMappingsList"
137022	//   },
137023	//   "scopes": [
137024	//     "https://www.googleapis.com/auth/cloud-platform",
137025	//     "https://www.googleapis.com/auth/compute",
137026	//     "https://www.googleapis.com/auth/compute.readonly"
137027	//   ]
137028	// }
137029
137030}
137031
137032// Pages invokes f for each page of results.
137033// A non-nil error returned from f will halt the iteration.
137034// The provided context supersedes any context provided to the Context method.
137035func (c *RoutersGetNatMappingInfoCall) Pages(ctx context.Context, f func(*VmEndpointNatMappingsList) error) error {
137036	c.ctx_ = ctx
137037	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
137038	for {
137039		x, err := c.Do()
137040		if err != nil {
137041			return err
137042		}
137043		if err := f(x); err != nil {
137044			return err
137045		}
137046		if x.NextPageToken == "" {
137047			return nil
137048		}
137049		c.PageToken(x.NextPageToken)
137050	}
137051}
137052
137053// method id "compute.routers.getRouterStatus":
137054
137055type RoutersGetRouterStatusCall struct {
137056	s            *Service
137057	project      string
137058	region       string
137059	router       string
137060	urlParams_   gensupport.URLParams
137061	ifNoneMatch_ string
137062	ctx_         context.Context
137063	header_      http.Header
137064}
137065
137066// GetRouterStatus: Retrieves runtime information of the specified
137067// router.
137068//
137069// - project: Project ID for this request.
137070// - region: Name of the region for this request.
137071// - router: Name of the Router resource to query.
137072func (r *RoutersService) GetRouterStatus(project string, region string, router string) *RoutersGetRouterStatusCall {
137073	c := &RoutersGetRouterStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137074	c.project = project
137075	c.region = region
137076	c.router = router
137077	return c
137078}
137079
137080// Fields allows partial responses to be retrieved. See
137081// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137082// for more information.
137083func (c *RoutersGetRouterStatusCall) Fields(s ...googleapi.Field) *RoutersGetRouterStatusCall {
137084	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137085	return c
137086}
137087
137088// IfNoneMatch sets the optional parameter which makes the operation
137089// fail if the object's ETag matches the given value. This is useful for
137090// getting updates only after the object has changed since the last
137091// request. Use googleapi.IsNotModified to check whether the response
137092// error from Do is the result of In-None-Match.
137093func (c *RoutersGetRouterStatusCall) IfNoneMatch(entityTag string) *RoutersGetRouterStatusCall {
137094	c.ifNoneMatch_ = entityTag
137095	return c
137096}
137097
137098// Context sets the context to be used in this call's Do method. Any
137099// pending HTTP request will be aborted if the provided context is
137100// canceled.
137101func (c *RoutersGetRouterStatusCall) Context(ctx context.Context) *RoutersGetRouterStatusCall {
137102	c.ctx_ = ctx
137103	return c
137104}
137105
137106// Header returns an http.Header that can be modified by the caller to
137107// add HTTP headers to the request.
137108func (c *RoutersGetRouterStatusCall) Header() http.Header {
137109	if c.header_ == nil {
137110		c.header_ = make(http.Header)
137111	}
137112	return c.header_
137113}
137114
137115func (c *RoutersGetRouterStatusCall) doRequest(alt string) (*http.Response, error) {
137116	reqHeaders := make(http.Header)
137117	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
137118	for k, v := range c.header_ {
137119		reqHeaders[k] = v
137120	}
137121	reqHeaders.Set("User-Agent", c.s.userAgent())
137122	if c.ifNoneMatch_ != "" {
137123		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
137124	}
137125	var body io.Reader = nil
137126	c.urlParams_.Set("alt", alt)
137127	c.urlParams_.Set("prettyPrint", "false")
137128	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}/getRouterStatus")
137129	urls += "?" + c.urlParams_.Encode()
137130	req, err := http.NewRequest("GET", urls, body)
137131	if err != nil {
137132		return nil, err
137133	}
137134	req.Header = reqHeaders
137135	googleapi.Expand(req.URL, map[string]string{
137136		"project": c.project,
137137		"region":  c.region,
137138		"router":  c.router,
137139	})
137140	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137141}
137142
137143// Do executes the "compute.routers.getRouterStatus" call.
137144// Exactly one of *RouterStatusResponse or error will be non-nil. Any
137145// non-2xx status code is an error. Response headers are in either
137146// *RouterStatusResponse.ServerResponse.Header or (if a response was
137147// returned at all) in error.(*googleapi.Error).Header. Use
137148// googleapi.IsNotModified to check whether the returned error was
137149// because http.StatusNotModified was returned.
137150func (c *RoutersGetRouterStatusCall) Do(opts ...googleapi.CallOption) (*RouterStatusResponse, error) {
137151	gensupport.SetOptions(c.urlParams_, opts...)
137152	res, err := c.doRequest("json")
137153	if res != nil && res.StatusCode == http.StatusNotModified {
137154		if res.Body != nil {
137155			res.Body.Close()
137156		}
137157		return nil, &googleapi.Error{
137158			Code:   res.StatusCode,
137159			Header: res.Header,
137160		}
137161	}
137162	if err != nil {
137163		return nil, err
137164	}
137165	defer googleapi.CloseBody(res)
137166	if err := googleapi.CheckResponse(res); err != nil {
137167		return nil, err
137168	}
137169	ret := &RouterStatusResponse{
137170		ServerResponse: googleapi.ServerResponse{
137171			Header:         res.Header,
137172			HTTPStatusCode: res.StatusCode,
137173		},
137174	}
137175	target := &ret
137176	if err := gensupport.DecodeResponse(target, res); err != nil {
137177		return nil, err
137178	}
137179	return ret, nil
137180	// {
137181	//   "description": "Retrieves runtime information of the specified router.",
137182	//   "httpMethod": "GET",
137183	//   "id": "compute.routers.getRouterStatus",
137184	//   "parameterOrder": [
137185	//     "project",
137186	//     "region",
137187	//     "router"
137188	//   ],
137189	//   "parameters": {
137190	//     "project": {
137191	//       "description": "Project ID for this request.",
137192	//       "location": "path",
137193	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137194	//       "required": true,
137195	//       "type": "string"
137196	//     },
137197	//     "region": {
137198	//       "description": "Name of the region for this request.",
137199	//       "location": "path",
137200	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137201	//       "required": true,
137202	//       "type": "string"
137203	//     },
137204	//     "router": {
137205	//       "description": "Name of the Router resource to query.",
137206	//       "location": "path",
137207	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
137208	//       "required": true,
137209	//       "type": "string"
137210	//     }
137211	//   },
137212	//   "path": "projects/{project}/regions/{region}/routers/{router}/getRouterStatus",
137213	//   "response": {
137214	//     "$ref": "RouterStatusResponse"
137215	//   },
137216	//   "scopes": [
137217	//     "https://www.googleapis.com/auth/cloud-platform",
137218	//     "https://www.googleapis.com/auth/compute",
137219	//     "https://www.googleapis.com/auth/compute.readonly"
137220	//   ]
137221	// }
137222
137223}
137224
137225// method id "compute.routers.insert":
137226
137227type RoutersInsertCall struct {
137228	s          *Service
137229	project    string
137230	region     string
137231	router     *Router
137232	urlParams_ gensupport.URLParams
137233	ctx_       context.Context
137234	header_    http.Header
137235}
137236
137237// Insert: Creates a Router resource in the specified project and region
137238// using the data included in the request.
137239//
137240// - project: Project ID for this request.
137241// - region: Name of the region for this request.
137242func (r *RoutersService) Insert(project string, region string, router *Router) *RoutersInsertCall {
137243	c := &RoutersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137244	c.project = project
137245	c.region = region
137246	c.router = router
137247	return c
137248}
137249
137250// RequestId sets the optional parameter "requestId": An optional
137251// request ID to identify requests. Specify a unique request ID so that
137252// if you must retry your request, the server will know to ignore the
137253// request if it has already been completed.
137254//
137255// For example, consider a situation where you make an initial request
137256// and the request times out. If you make the request again with the
137257// same request ID, the server can check if original operation with the
137258// same request ID was received, and if so, will ignore the second
137259// request. This prevents clients from accidentally creating duplicate
137260// commitments.
137261//
137262// The request ID must be a valid UUID with the exception that zero UUID
137263// is not supported (00000000-0000-0000-0000-000000000000).
137264func (c *RoutersInsertCall) RequestId(requestId string) *RoutersInsertCall {
137265	c.urlParams_.Set("requestId", requestId)
137266	return c
137267}
137268
137269// Fields allows partial responses to be retrieved. See
137270// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137271// for more information.
137272func (c *RoutersInsertCall) Fields(s ...googleapi.Field) *RoutersInsertCall {
137273	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137274	return c
137275}
137276
137277// Context sets the context to be used in this call's Do method. Any
137278// pending HTTP request will be aborted if the provided context is
137279// canceled.
137280func (c *RoutersInsertCall) Context(ctx context.Context) *RoutersInsertCall {
137281	c.ctx_ = ctx
137282	return c
137283}
137284
137285// Header returns an http.Header that can be modified by the caller to
137286// add HTTP headers to the request.
137287func (c *RoutersInsertCall) Header() http.Header {
137288	if c.header_ == nil {
137289		c.header_ = make(http.Header)
137290	}
137291	return c.header_
137292}
137293
137294func (c *RoutersInsertCall) doRequest(alt string) (*http.Response, error) {
137295	reqHeaders := make(http.Header)
137296	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
137297	for k, v := range c.header_ {
137298		reqHeaders[k] = v
137299	}
137300	reqHeaders.Set("User-Agent", c.s.userAgent())
137301	var body io.Reader = nil
137302	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router)
137303	if err != nil {
137304		return nil, err
137305	}
137306	reqHeaders.Set("Content-Type", "application/json")
137307	c.urlParams_.Set("alt", alt)
137308	c.urlParams_.Set("prettyPrint", "false")
137309	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers")
137310	urls += "?" + c.urlParams_.Encode()
137311	req, err := http.NewRequest("POST", urls, body)
137312	if err != nil {
137313		return nil, err
137314	}
137315	req.Header = reqHeaders
137316	googleapi.Expand(req.URL, map[string]string{
137317		"project": c.project,
137318		"region":  c.region,
137319	})
137320	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137321}
137322
137323// Do executes the "compute.routers.insert" call.
137324// Exactly one of *Operation or error will be non-nil. Any non-2xx
137325// status code is an error. Response headers are in either
137326// *Operation.ServerResponse.Header or (if a response was returned at
137327// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
137328// to check whether the returned error was because
137329// http.StatusNotModified was returned.
137330func (c *RoutersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
137331	gensupport.SetOptions(c.urlParams_, opts...)
137332	res, err := c.doRequest("json")
137333	if res != nil && res.StatusCode == http.StatusNotModified {
137334		if res.Body != nil {
137335			res.Body.Close()
137336		}
137337		return nil, &googleapi.Error{
137338			Code:   res.StatusCode,
137339			Header: res.Header,
137340		}
137341	}
137342	if err != nil {
137343		return nil, err
137344	}
137345	defer googleapi.CloseBody(res)
137346	if err := googleapi.CheckResponse(res); err != nil {
137347		return nil, err
137348	}
137349	ret := &Operation{
137350		ServerResponse: googleapi.ServerResponse{
137351			Header:         res.Header,
137352			HTTPStatusCode: res.StatusCode,
137353		},
137354	}
137355	target := &ret
137356	if err := gensupport.DecodeResponse(target, res); err != nil {
137357		return nil, err
137358	}
137359	return ret, nil
137360	// {
137361	//   "description": "Creates a Router resource in the specified project and region using the data included in the request.",
137362	//   "httpMethod": "POST",
137363	//   "id": "compute.routers.insert",
137364	//   "parameterOrder": [
137365	//     "project",
137366	//     "region"
137367	//   ],
137368	//   "parameters": {
137369	//     "project": {
137370	//       "description": "Project ID for this request.",
137371	//       "location": "path",
137372	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137373	//       "required": true,
137374	//       "type": "string"
137375	//     },
137376	//     "region": {
137377	//       "description": "Name of the region for this request.",
137378	//       "location": "path",
137379	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137380	//       "required": true,
137381	//       "type": "string"
137382	//     },
137383	//     "requestId": {
137384	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
137385	//       "location": "query",
137386	//       "type": "string"
137387	//     }
137388	//   },
137389	//   "path": "projects/{project}/regions/{region}/routers",
137390	//   "request": {
137391	//     "$ref": "Router"
137392	//   },
137393	//   "response": {
137394	//     "$ref": "Operation"
137395	//   },
137396	//   "scopes": [
137397	//     "https://www.googleapis.com/auth/cloud-platform",
137398	//     "https://www.googleapis.com/auth/compute"
137399	//   ]
137400	// }
137401
137402}
137403
137404// method id "compute.routers.list":
137405
137406type RoutersListCall struct {
137407	s            *Service
137408	project      string
137409	region       string
137410	urlParams_   gensupport.URLParams
137411	ifNoneMatch_ string
137412	ctx_         context.Context
137413	header_      http.Header
137414}
137415
137416// List: Retrieves a list of Router resources available to the specified
137417// project.
137418//
137419// - project: Project ID for this request.
137420// - region: Name of the region for this request.
137421func (r *RoutersService) List(project string, region string) *RoutersListCall {
137422	c := &RoutersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137423	c.project = project
137424	c.region = region
137425	return c
137426}
137427
137428// Filter sets the optional parameter "filter": A filter expression that
137429// filters resources listed in the response. The expression must specify
137430// the field name, a comparison operator, and the value that you want to
137431// use for filtering. The value must be a string, a number, or a
137432// boolean. The comparison operator must be either `=`, `!=`, `>`, or
137433// `<`.
137434//
137435// For example, if you are filtering Compute Engine instances, you can
137436// exclude instances named `example-instance` by specifying `name !=
137437// example-instance`.
137438//
137439// You can also filter nested fields. For example, you could specify
137440// `scheduling.automaticRestart = false` to include instances only if
137441// they are not scheduled for automatic restarts. You can use filtering
137442// on nested fields to filter based on resource labels.
137443//
137444// To filter on multiple expressions, provide each separate expression
137445// within parentheses. For example: ``` (scheduling.automaticRestart =
137446// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
137447// is an `AND` expression. However, you can include `AND` and `OR`
137448// expressions explicitly. For example: ``` (cpuPlatform = "Intel
137449// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
137450// (scheduling.automaticRestart = true) ```
137451func (c *RoutersListCall) Filter(filter string) *RoutersListCall {
137452	c.urlParams_.Set("filter", filter)
137453	return c
137454}
137455
137456// MaxResults sets the optional parameter "maxResults": The maximum
137457// number of results per page that should be returned. If the number of
137458// available results is larger than `maxResults`, Compute Engine returns
137459// a `nextPageToken` that can be used to get the next page of results in
137460// subsequent list requests. Acceptable values are `0` to `500`,
137461// inclusive. (Default: `500`)
137462func (c *RoutersListCall) MaxResults(maxResults int64) *RoutersListCall {
137463	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
137464	return c
137465}
137466
137467// OrderBy sets the optional parameter "orderBy": Sorts list results by
137468// a certain order. By default, results are returned in alphanumerical
137469// order based on the resource name.
137470//
137471// You can also sort results in descending order based on the creation
137472// timestamp using `orderBy="creationTimestamp desc". This sorts
137473// results based on the `creationTimestamp` field in reverse
137474// chronological order (newest result first). Use this to sort resources
137475// like operations so that the newest operation is returned
137476// first.
137477//
137478// Currently, only sorting by `name` or `creationTimestamp desc` is
137479// supported.
137480func (c *RoutersListCall) OrderBy(orderBy string) *RoutersListCall {
137481	c.urlParams_.Set("orderBy", orderBy)
137482	return c
137483}
137484
137485// PageToken sets the optional parameter "pageToken": Specifies a page
137486// token to use. Set `pageToken` to the `nextPageToken` returned by a
137487// previous list request to get the next page of results.
137488func (c *RoutersListCall) PageToken(pageToken string) *RoutersListCall {
137489	c.urlParams_.Set("pageToken", pageToken)
137490	return c
137491}
137492
137493// ReturnPartialSuccess sets the optional parameter
137494// "returnPartialSuccess": Opt-in for partial success behavior which
137495// provides partial results in case of failure. The default value is
137496// false.
137497func (c *RoutersListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RoutersListCall {
137498	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
137499	return c
137500}
137501
137502// Fields allows partial responses to be retrieved. See
137503// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137504// for more information.
137505func (c *RoutersListCall) Fields(s ...googleapi.Field) *RoutersListCall {
137506	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137507	return c
137508}
137509
137510// IfNoneMatch sets the optional parameter which makes the operation
137511// fail if the object's ETag matches the given value. This is useful for
137512// getting updates only after the object has changed since the last
137513// request. Use googleapi.IsNotModified to check whether the response
137514// error from Do is the result of In-None-Match.
137515func (c *RoutersListCall) IfNoneMatch(entityTag string) *RoutersListCall {
137516	c.ifNoneMatch_ = entityTag
137517	return c
137518}
137519
137520// Context sets the context to be used in this call's Do method. Any
137521// pending HTTP request will be aborted if the provided context is
137522// canceled.
137523func (c *RoutersListCall) Context(ctx context.Context) *RoutersListCall {
137524	c.ctx_ = ctx
137525	return c
137526}
137527
137528// Header returns an http.Header that can be modified by the caller to
137529// add HTTP headers to the request.
137530func (c *RoutersListCall) Header() http.Header {
137531	if c.header_ == nil {
137532		c.header_ = make(http.Header)
137533	}
137534	return c.header_
137535}
137536
137537func (c *RoutersListCall) doRequest(alt string) (*http.Response, error) {
137538	reqHeaders := make(http.Header)
137539	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
137540	for k, v := range c.header_ {
137541		reqHeaders[k] = v
137542	}
137543	reqHeaders.Set("User-Agent", c.s.userAgent())
137544	if c.ifNoneMatch_ != "" {
137545		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
137546	}
137547	var body io.Reader = nil
137548	c.urlParams_.Set("alt", alt)
137549	c.urlParams_.Set("prettyPrint", "false")
137550	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers")
137551	urls += "?" + c.urlParams_.Encode()
137552	req, err := http.NewRequest("GET", urls, body)
137553	if err != nil {
137554		return nil, err
137555	}
137556	req.Header = reqHeaders
137557	googleapi.Expand(req.URL, map[string]string{
137558		"project": c.project,
137559		"region":  c.region,
137560	})
137561	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137562}
137563
137564// Do executes the "compute.routers.list" call.
137565// Exactly one of *RouterList or error will be non-nil. Any non-2xx
137566// status code is an error. Response headers are in either
137567// *RouterList.ServerResponse.Header or (if a response was returned at
137568// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
137569// to check whether the returned error was because
137570// http.StatusNotModified was returned.
137571func (c *RoutersListCall) Do(opts ...googleapi.CallOption) (*RouterList, error) {
137572	gensupport.SetOptions(c.urlParams_, opts...)
137573	res, err := c.doRequest("json")
137574	if res != nil && res.StatusCode == http.StatusNotModified {
137575		if res.Body != nil {
137576			res.Body.Close()
137577		}
137578		return nil, &googleapi.Error{
137579			Code:   res.StatusCode,
137580			Header: res.Header,
137581		}
137582	}
137583	if err != nil {
137584		return nil, err
137585	}
137586	defer googleapi.CloseBody(res)
137587	if err := googleapi.CheckResponse(res); err != nil {
137588		return nil, err
137589	}
137590	ret := &RouterList{
137591		ServerResponse: googleapi.ServerResponse{
137592			Header:         res.Header,
137593			HTTPStatusCode: res.StatusCode,
137594		},
137595	}
137596	target := &ret
137597	if err := gensupport.DecodeResponse(target, res); err != nil {
137598		return nil, err
137599	}
137600	return ret, nil
137601	// {
137602	//   "description": "Retrieves a list of Router resources available to the specified project.",
137603	//   "httpMethod": "GET",
137604	//   "id": "compute.routers.list",
137605	//   "parameterOrder": [
137606	//     "project",
137607	//     "region"
137608	//   ],
137609	//   "parameters": {
137610	//     "filter": {
137611	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
137612	//       "location": "query",
137613	//       "type": "string"
137614	//     },
137615	//     "maxResults": {
137616	//       "default": "500",
137617	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
137618	//       "format": "uint32",
137619	//       "location": "query",
137620	//       "minimum": "0",
137621	//       "type": "integer"
137622	//     },
137623	//     "orderBy": {
137624	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
137625	//       "location": "query",
137626	//       "type": "string"
137627	//     },
137628	//     "pageToken": {
137629	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
137630	//       "location": "query",
137631	//       "type": "string"
137632	//     },
137633	//     "project": {
137634	//       "description": "Project ID for this request.",
137635	//       "location": "path",
137636	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137637	//       "required": true,
137638	//       "type": "string"
137639	//     },
137640	//     "region": {
137641	//       "description": "Name of the region for this request.",
137642	//       "location": "path",
137643	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137644	//       "required": true,
137645	//       "type": "string"
137646	//     },
137647	//     "returnPartialSuccess": {
137648	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
137649	//       "location": "query",
137650	//       "type": "boolean"
137651	//     }
137652	//   },
137653	//   "path": "projects/{project}/regions/{region}/routers",
137654	//   "response": {
137655	//     "$ref": "RouterList"
137656	//   },
137657	//   "scopes": [
137658	//     "https://www.googleapis.com/auth/cloud-platform",
137659	//     "https://www.googleapis.com/auth/compute",
137660	//     "https://www.googleapis.com/auth/compute.readonly"
137661	//   ]
137662	// }
137663
137664}
137665
137666// Pages invokes f for each page of results.
137667// A non-nil error returned from f will halt the iteration.
137668// The provided context supersedes any context provided to the Context method.
137669func (c *RoutersListCall) Pages(ctx context.Context, f func(*RouterList) error) error {
137670	c.ctx_ = ctx
137671	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
137672	for {
137673		x, err := c.Do()
137674		if err != nil {
137675			return err
137676		}
137677		if err := f(x); err != nil {
137678			return err
137679		}
137680		if x.NextPageToken == "" {
137681			return nil
137682		}
137683		c.PageToken(x.NextPageToken)
137684	}
137685}
137686
137687// method id "compute.routers.patch":
137688
137689type RoutersPatchCall struct {
137690	s          *Service
137691	project    string
137692	region     string
137693	router     string
137694	router2    *Router
137695	urlParams_ gensupport.URLParams
137696	ctx_       context.Context
137697	header_    http.Header
137698}
137699
137700// Patch: Patches the specified Router resource with the data included
137701// in the request. This method supports PATCH semantics and uses JSON
137702// merge patch format and processing rules.
137703//
137704// - project: Project ID for this request.
137705// - region: Name of the region for this request.
137706// - router: Name of the Router resource to patch.
137707func (r *RoutersService) Patch(project string, region string, router string, router2 *Router) *RoutersPatchCall {
137708	c := &RoutersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137709	c.project = project
137710	c.region = region
137711	c.router = router
137712	c.router2 = router2
137713	return c
137714}
137715
137716// RequestId sets the optional parameter "requestId": An optional
137717// request ID to identify requests. Specify a unique request ID so that
137718// if you must retry your request, the server will know to ignore the
137719// request if it has already been completed.
137720//
137721// For example, consider a situation where you make an initial request
137722// and the request times out. If you make the request again with the
137723// same request ID, the server can check if original operation with the
137724// same request ID was received, and if so, will ignore the second
137725// request. This prevents clients from accidentally creating duplicate
137726// commitments.
137727//
137728// The request ID must be a valid UUID with the exception that zero UUID
137729// is not supported (00000000-0000-0000-0000-000000000000).
137730func (c *RoutersPatchCall) RequestId(requestId string) *RoutersPatchCall {
137731	c.urlParams_.Set("requestId", requestId)
137732	return c
137733}
137734
137735// Fields allows partial responses to be retrieved. See
137736// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137737// for more information.
137738func (c *RoutersPatchCall) Fields(s ...googleapi.Field) *RoutersPatchCall {
137739	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137740	return c
137741}
137742
137743// Context sets the context to be used in this call's Do method. Any
137744// pending HTTP request will be aborted if the provided context is
137745// canceled.
137746func (c *RoutersPatchCall) Context(ctx context.Context) *RoutersPatchCall {
137747	c.ctx_ = ctx
137748	return c
137749}
137750
137751// Header returns an http.Header that can be modified by the caller to
137752// add HTTP headers to the request.
137753func (c *RoutersPatchCall) Header() http.Header {
137754	if c.header_ == nil {
137755		c.header_ = make(http.Header)
137756	}
137757	return c.header_
137758}
137759
137760func (c *RoutersPatchCall) doRequest(alt string) (*http.Response, error) {
137761	reqHeaders := make(http.Header)
137762	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
137763	for k, v := range c.header_ {
137764		reqHeaders[k] = v
137765	}
137766	reqHeaders.Set("User-Agent", c.s.userAgent())
137767	var body io.Reader = nil
137768	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
137769	if err != nil {
137770		return nil, err
137771	}
137772	reqHeaders.Set("Content-Type", "application/json")
137773	c.urlParams_.Set("alt", alt)
137774	c.urlParams_.Set("prettyPrint", "false")
137775	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}")
137776	urls += "?" + c.urlParams_.Encode()
137777	req, err := http.NewRequest("PATCH", urls, body)
137778	if err != nil {
137779		return nil, err
137780	}
137781	req.Header = reqHeaders
137782	googleapi.Expand(req.URL, map[string]string{
137783		"project": c.project,
137784		"region":  c.region,
137785		"router":  c.router,
137786	})
137787	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137788}
137789
137790// Do executes the "compute.routers.patch" call.
137791// Exactly one of *Operation or error will be non-nil. Any non-2xx
137792// status code is an error. Response headers are in either
137793// *Operation.ServerResponse.Header or (if a response was returned at
137794// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
137795// to check whether the returned error was because
137796// http.StatusNotModified was returned.
137797func (c *RoutersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
137798	gensupport.SetOptions(c.urlParams_, opts...)
137799	res, err := c.doRequest("json")
137800	if res != nil && res.StatusCode == http.StatusNotModified {
137801		if res.Body != nil {
137802			res.Body.Close()
137803		}
137804		return nil, &googleapi.Error{
137805			Code:   res.StatusCode,
137806			Header: res.Header,
137807		}
137808	}
137809	if err != nil {
137810		return nil, err
137811	}
137812	defer googleapi.CloseBody(res)
137813	if err := googleapi.CheckResponse(res); err != nil {
137814		return nil, err
137815	}
137816	ret := &Operation{
137817		ServerResponse: googleapi.ServerResponse{
137818			Header:         res.Header,
137819			HTTPStatusCode: res.StatusCode,
137820		},
137821	}
137822	target := &ret
137823	if err := gensupport.DecodeResponse(target, res); err != nil {
137824		return nil, err
137825	}
137826	return ret, nil
137827	// {
137828	//   "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.",
137829	//   "httpMethod": "PATCH",
137830	//   "id": "compute.routers.patch",
137831	//   "parameterOrder": [
137832	//     "project",
137833	//     "region",
137834	//     "router"
137835	//   ],
137836	//   "parameters": {
137837	//     "project": {
137838	//       "description": "Project ID for this request.",
137839	//       "location": "path",
137840	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137841	//       "required": true,
137842	//       "type": "string"
137843	//     },
137844	//     "region": {
137845	//       "description": "Name of the region for this request.",
137846	//       "location": "path",
137847	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137848	//       "required": true,
137849	//       "type": "string"
137850	//     },
137851	//     "requestId": {
137852	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
137853	//       "location": "query",
137854	//       "type": "string"
137855	//     },
137856	//     "router": {
137857	//       "description": "Name of the Router resource to patch.",
137858	//       "location": "path",
137859	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
137860	//       "required": true,
137861	//       "type": "string"
137862	//     }
137863	//   },
137864	//   "path": "projects/{project}/regions/{region}/routers/{router}",
137865	//   "request": {
137866	//     "$ref": "Router"
137867	//   },
137868	//   "response": {
137869	//     "$ref": "Operation"
137870	//   },
137871	//   "scopes": [
137872	//     "https://www.googleapis.com/auth/cloud-platform",
137873	//     "https://www.googleapis.com/auth/compute"
137874	//   ]
137875	// }
137876
137877}
137878
137879// method id "compute.routers.preview":
137880
137881type RoutersPreviewCall struct {
137882	s          *Service
137883	project    string
137884	region     string
137885	router     string
137886	router2    *Router
137887	urlParams_ gensupport.URLParams
137888	ctx_       context.Context
137889	header_    http.Header
137890}
137891
137892// Preview: Preview fields auto-generated during router create and
137893// update operations. Calling this method does NOT create or update the
137894// router.
137895//
137896// - project: Project ID for this request.
137897// - region: Name of the region for this request.
137898// - router: Name of the Router resource to query.
137899func (r *RoutersService) Preview(project string, region string, router string, router2 *Router) *RoutersPreviewCall {
137900	c := &RoutersPreviewCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137901	c.project = project
137902	c.region = region
137903	c.router = router
137904	c.router2 = router2
137905	return c
137906}
137907
137908// Fields allows partial responses to be retrieved. See
137909// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137910// for more information.
137911func (c *RoutersPreviewCall) Fields(s ...googleapi.Field) *RoutersPreviewCall {
137912	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137913	return c
137914}
137915
137916// Context sets the context to be used in this call's Do method. Any
137917// pending HTTP request will be aborted if the provided context is
137918// canceled.
137919func (c *RoutersPreviewCall) Context(ctx context.Context) *RoutersPreviewCall {
137920	c.ctx_ = ctx
137921	return c
137922}
137923
137924// Header returns an http.Header that can be modified by the caller to
137925// add HTTP headers to the request.
137926func (c *RoutersPreviewCall) Header() http.Header {
137927	if c.header_ == nil {
137928		c.header_ = make(http.Header)
137929	}
137930	return c.header_
137931}
137932
137933func (c *RoutersPreviewCall) doRequest(alt string) (*http.Response, error) {
137934	reqHeaders := make(http.Header)
137935	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
137936	for k, v := range c.header_ {
137937		reqHeaders[k] = v
137938	}
137939	reqHeaders.Set("User-Agent", c.s.userAgent())
137940	var body io.Reader = nil
137941	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
137942	if err != nil {
137943		return nil, err
137944	}
137945	reqHeaders.Set("Content-Type", "application/json")
137946	c.urlParams_.Set("alt", alt)
137947	c.urlParams_.Set("prettyPrint", "false")
137948	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}/preview")
137949	urls += "?" + c.urlParams_.Encode()
137950	req, err := http.NewRequest("POST", urls, body)
137951	if err != nil {
137952		return nil, err
137953	}
137954	req.Header = reqHeaders
137955	googleapi.Expand(req.URL, map[string]string{
137956		"project": c.project,
137957		"region":  c.region,
137958		"router":  c.router,
137959	})
137960	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137961}
137962
137963// Do executes the "compute.routers.preview" call.
137964// Exactly one of *RoutersPreviewResponse or error will be non-nil. Any
137965// non-2xx status code is an error. Response headers are in either
137966// *RoutersPreviewResponse.ServerResponse.Header or (if a response was
137967// returned at all) in error.(*googleapi.Error).Header. Use
137968// googleapi.IsNotModified to check whether the returned error was
137969// because http.StatusNotModified was returned.
137970func (c *RoutersPreviewCall) Do(opts ...googleapi.CallOption) (*RoutersPreviewResponse, error) {
137971	gensupport.SetOptions(c.urlParams_, opts...)
137972	res, err := c.doRequest("json")
137973	if res != nil && res.StatusCode == http.StatusNotModified {
137974		if res.Body != nil {
137975			res.Body.Close()
137976		}
137977		return nil, &googleapi.Error{
137978			Code:   res.StatusCode,
137979			Header: res.Header,
137980		}
137981	}
137982	if err != nil {
137983		return nil, err
137984	}
137985	defer googleapi.CloseBody(res)
137986	if err := googleapi.CheckResponse(res); err != nil {
137987		return nil, err
137988	}
137989	ret := &RoutersPreviewResponse{
137990		ServerResponse: googleapi.ServerResponse{
137991			Header:         res.Header,
137992			HTTPStatusCode: res.StatusCode,
137993		},
137994	}
137995	target := &ret
137996	if err := gensupport.DecodeResponse(target, res); err != nil {
137997		return nil, err
137998	}
137999	return ret, nil
138000	// {
138001	//   "description": "Preview fields auto-generated during router create and update operations. Calling this method does NOT create or update the router.",
138002	//   "httpMethod": "POST",
138003	//   "id": "compute.routers.preview",
138004	//   "parameterOrder": [
138005	//     "project",
138006	//     "region",
138007	//     "router"
138008	//   ],
138009	//   "parameters": {
138010	//     "project": {
138011	//       "description": "Project ID for this request.",
138012	//       "location": "path",
138013	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138014	//       "required": true,
138015	//       "type": "string"
138016	//     },
138017	//     "region": {
138018	//       "description": "Name of the region for this request.",
138019	//       "location": "path",
138020	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
138021	//       "required": true,
138022	//       "type": "string"
138023	//     },
138024	//     "router": {
138025	//       "description": "Name of the Router resource to query.",
138026	//       "location": "path",
138027	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
138028	//       "required": true,
138029	//       "type": "string"
138030	//     }
138031	//   },
138032	//   "path": "projects/{project}/regions/{region}/routers/{router}/preview",
138033	//   "request": {
138034	//     "$ref": "Router"
138035	//   },
138036	//   "response": {
138037	//     "$ref": "RoutersPreviewResponse"
138038	//   },
138039	//   "scopes": [
138040	//     "https://www.googleapis.com/auth/cloud-platform",
138041	//     "https://www.googleapis.com/auth/compute",
138042	//     "https://www.googleapis.com/auth/compute.readonly"
138043	//   ]
138044	// }
138045
138046}
138047
138048// method id "compute.routers.update":
138049
138050type RoutersUpdateCall struct {
138051	s          *Service
138052	project    string
138053	region     string
138054	router     string
138055	router2    *Router
138056	urlParams_ gensupport.URLParams
138057	ctx_       context.Context
138058	header_    http.Header
138059}
138060
138061// Update: Updates the specified Router resource with the data included
138062// in the request. This method conforms to PUT semantics, which requests
138063// that the state of the target resource be created or replaced with the
138064// state defined by the representation enclosed in the request message
138065// payload.
138066//
138067// - project: Project ID for this request.
138068// - region: Name of the region for this request.
138069// - router: Name of the Router resource to update.
138070func (r *RoutersService) Update(project string, region string, router string, router2 *Router) *RoutersUpdateCall {
138071	c := &RoutersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138072	c.project = project
138073	c.region = region
138074	c.router = router
138075	c.router2 = router2
138076	return c
138077}
138078
138079// RequestId sets the optional parameter "requestId": An optional
138080// request ID to identify requests. Specify a unique request ID so that
138081// if you must retry your request, the server will know to ignore the
138082// request if it has already been completed.
138083//
138084// For example, consider a situation where you make an initial request
138085// and the request times out. If you make the request again with the
138086// same request ID, the server can check if original operation with the
138087// same request ID was received, and if so, will ignore the second
138088// request. This prevents clients from accidentally creating duplicate
138089// commitments.
138090//
138091// The request ID must be a valid UUID with the exception that zero UUID
138092// is not supported (00000000-0000-0000-0000-000000000000).
138093func (c *RoutersUpdateCall) RequestId(requestId string) *RoutersUpdateCall {
138094	c.urlParams_.Set("requestId", requestId)
138095	return c
138096}
138097
138098// Fields allows partial responses to be retrieved. See
138099// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138100// for more information.
138101func (c *RoutersUpdateCall) Fields(s ...googleapi.Field) *RoutersUpdateCall {
138102	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138103	return c
138104}
138105
138106// Context sets the context to be used in this call's Do method. Any
138107// pending HTTP request will be aborted if the provided context is
138108// canceled.
138109func (c *RoutersUpdateCall) Context(ctx context.Context) *RoutersUpdateCall {
138110	c.ctx_ = ctx
138111	return c
138112}
138113
138114// Header returns an http.Header that can be modified by the caller to
138115// add HTTP headers to the request.
138116func (c *RoutersUpdateCall) Header() http.Header {
138117	if c.header_ == nil {
138118		c.header_ = make(http.Header)
138119	}
138120	return c.header_
138121}
138122
138123func (c *RoutersUpdateCall) doRequest(alt string) (*http.Response, error) {
138124	reqHeaders := make(http.Header)
138125	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
138126	for k, v := range c.header_ {
138127		reqHeaders[k] = v
138128	}
138129	reqHeaders.Set("User-Agent", c.s.userAgent())
138130	var body io.Reader = nil
138131	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
138132	if err != nil {
138133		return nil, err
138134	}
138135	reqHeaders.Set("Content-Type", "application/json")
138136	c.urlParams_.Set("alt", alt)
138137	c.urlParams_.Set("prettyPrint", "false")
138138	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/routers/{router}")
138139	urls += "?" + c.urlParams_.Encode()
138140	req, err := http.NewRequest("PUT", urls, body)
138141	if err != nil {
138142		return nil, err
138143	}
138144	req.Header = reqHeaders
138145	googleapi.Expand(req.URL, map[string]string{
138146		"project": c.project,
138147		"region":  c.region,
138148		"router":  c.router,
138149	})
138150	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138151}
138152
138153// Do executes the "compute.routers.update" call.
138154// Exactly one of *Operation or error will be non-nil. Any non-2xx
138155// status code is an error. Response headers are in either
138156// *Operation.ServerResponse.Header or (if a response was returned at
138157// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
138158// to check whether the returned error was because
138159// http.StatusNotModified was returned.
138160func (c *RoutersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
138161	gensupport.SetOptions(c.urlParams_, opts...)
138162	res, err := c.doRequest("json")
138163	if res != nil && res.StatusCode == http.StatusNotModified {
138164		if res.Body != nil {
138165			res.Body.Close()
138166		}
138167		return nil, &googleapi.Error{
138168			Code:   res.StatusCode,
138169			Header: res.Header,
138170		}
138171	}
138172	if err != nil {
138173		return nil, err
138174	}
138175	defer googleapi.CloseBody(res)
138176	if err := googleapi.CheckResponse(res); err != nil {
138177		return nil, err
138178	}
138179	ret := &Operation{
138180		ServerResponse: googleapi.ServerResponse{
138181			Header:         res.Header,
138182			HTTPStatusCode: res.StatusCode,
138183		},
138184	}
138185	target := &ret
138186	if err := gensupport.DecodeResponse(target, res); err != nil {
138187		return nil, err
138188	}
138189	return ret, nil
138190	// {
138191	//   "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.",
138192	//   "httpMethod": "PUT",
138193	//   "id": "compute.routers.update",
138194	//   "parameterOrder": [
138195	//     "project",
138196	//     "region",
138197	//     "router"
138198	//   ],
138199	//   "parameters": {
138200	//     "project": {
138201	//       "description": "Project ID for this request.",
138202	//       "location": "path",
138203	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138204	//       "required": true,
138205	//       "type": "string"
138206	//     },
138207	//     "region": {
138208	//       "description": "Name of the region for this request.",
138209	//       "location": "path",
138210	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
138211	//       "required": true,
138212	//       "type": "string"
138213	//     },
138214	//     "requestId": {
138215	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
138216	//       "location": "query",
138217	//       "type": "string"
138218	//     },
138219	//     "router": {
138220	//       "description": "Name of the Router resource to update.",
138221	//       "location": "path",
138222	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
138223	//       "required": true,
138224	//       "type": "string"
138225	//     }
138226	//   },
138227	//   "path": "projects/{project}/regions/{region}/routers/{router}",
138228	//   "request": {
138229	//     "$ref": "Router"
138230	//   },
138231	//   "response": {
138232	//     "$ref": "Operation"
138233	//   },
138234	//   "scopes": [
138235	//     "https://www.googleapis.com/auth/cloud-platform",
138236	//     "https://www.googleapis.com/auth/compute"
138237	//   ]
138238	// }
138239
138240}
138241
138242// method id "compute.routes.delete":
138243
138244type RoutesDeleteCall struct {
138245	s          *Service
138246	project    string
138247	route      string
138248	urlParams_ gensupport.URLParams
138249	ctx_       context.Context
138250	header_    http.Header
138251}
138252
138253// Delete: Deletes the specified Route resource.
138254//
138255// - project: Project ID for this request.
138256// - route: Name of the Route resource to delete.
138257// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/delete
138258func (r *RoutesService) Delete(project string, route string) *RoutesDeleteCall {
138259	c := &RoutesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138260	c.project = project
138261	c.route = route
138262	return c
138263}
138264
138265// RequestId sets the optional parameter "requestId": An optional
138266// request ID to identify requests. Specify a unique request ID so that
138267// if you must retry your request, the server will know to ignore the
138268// request if it has already been completed.
138269//
138270// For example, consider a situation where you make an initial request
138271// and the request times out. If you make the request again with the
138272// same request ID, the server can check if original operation with the
138273// same request ID was received, and if so, will ignore the second
138274// request. This prevents clients from accidentally creating duplicate
138275// commitments.
138276//
138277// The request ID must be a valid UUID with the exception that zero UUID
138278// is not supported (00000000-0000-0000-0000-000000000000).
138279func (c *RoutesDeleteCall) RequestId(requestId string) *RoutesDeleteCall {
138280	c.urlParams_.Set("requestId", requestId)
138281	return c
138282}
138283
138284// Fields allows partial responses to be retrieved. See
138285// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138286// for more information.
138287func (c *RoutesDeleteCall) Fields(s ...googleapi.Field) *RoutesDeleteCall {
138288	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138289	return c
138290}
138291
138292// Context sets the context to be used in this call's Do method. Any
138293// pending HTTP request will be aborted if the provided context is
138294// canceled.
138295func (c *RoutesDeleteCall) Context(ctx context.Context) *RoutesDeleteCall {
138296	c.ctx_ = ctx
138297	return c
138298}
138299
138300// Header returns an http.Header that can be modified by the caller to
138301// add HTTP headers to the request.
138302func (c *RoutesDeleteCall) Header() http.Header {
138303	if c.header_ == nil {
138304		c.header_ = make(http.Header)
138305	}
138306	return c.header_
138307}
138308
138309func (c *RoutesDeleteCall) doRequest(alt string) (*http.Response, error) {
138310	reqHeaders := make(http.Header)
138311	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
138312	for k, v := range c.header_ {
138313		reqHeaders[k] = v
138314	}
138315	reqHeaders.Set("User-Agent", c.s.userAgent())
138316	var body io.Reader = nil
138317	c.urlParams_.Set("alt", alt)
138318	c.urlParams_.Set("prettyPrint", "false")
138319	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/routes/{route}")
138320	urls += "?" + c.urlParams_.Encode()
138321	req, err := http.NewRequest("DELETE", urls, body)
138322	if err != nil {
138323		return nil, err
138324	}
138325	req.Header = reqHeaders
138326	googleapi.Expand(req.URL, map[string]string{
138327		"project": c.project,
138328		"route":   c.route,
138329	})
138330	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138331}
138332
138333// Do executes the "compute.routes.delete" call.
138334// Exactly one of *Operation or error will be non-nil. Any non-2xx
138335// status code is an error. Response headers are in either
138336// *Operation.ServerResponse.Header or (if a response was returned at
138337// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
138338// to check whether the returned error was because
138339// http.StatusNotModified was returned.
138340func (c *RoutesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
138341	gensupport.SetOptions(c.urlParams_, opts...)
138342	res, err := c.doRequest("json")
138343	if res != nil && res.StatusCode == http.StatusNotModified {
138344		if res.Body != nil {
138345			res.Body.Close()
138346		}
138347		return nil, &googleapi.Error{
138348			Code:   res.StatusCode,
138349			Header: res.Header,
138350		}
138351	}
138352	if err != nil {
138353		return nil, err
138354	}
138355	defer googleapi.CloseBody(res)
138356	if err := googleapi.CheckResponse(res); err != nil {
138357		return nil, err
138358	}
138359	ret := &Operation{
138360		ServerResponse: googleapi.ServerResponse{
138361			Header:         res.Header,
138362			HTTPStatusCode: res.StatusCode,
138363		},
138364	}
138365	target := &ret
138366	if err := gensupport.DecodeResponse(target, res); err != nil {
138367		return nil, err
138368	}
138369	return ret, nil
138370	// {
138371	//   "description": "Deletes the specified Route resource.",
138372	//   "httpMethod": "DELETE",
138373	//   "id": "compute.routes.delete",
138374	//   "parameterOrder": [
138375	//     "project",
138376	//     "route"
138377	//   ],
138378	//   "parameters": {
138379	//     "project": {
138380	//       "description": "Project ID for this request.",
138381	//       "location": "path",
138382	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138383	//       "required": true,
138384	//       "type": "string"
138385	//     },
138386	//     "requestId": {
138387	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
138388	//       "location": "query",
138389	//       "type": "string"
138390	//     },
138391	//     "route": {
138392	//       "description": "Name of the Route resource to delete.",
138393	//       "location": "path",
138394	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
138395	//       "required": true,
138396	//       "type": "string"
138397	//     }
138398	//   },
138399	//   "path": "projects/{project}/global/routes/{route}",
138400	//   "response": {
138401	//     "$ref": "Operation"
138402	//   },
138403	//   "scopes": [
138404	//     "https://www.googleapis.com/auth/cloud-platform",
138405	//     "https://www.googleapis.com/auth/compute"
138406	//   ]
138407	// }
138408
138409}
138410
138411// method id "compute.routes.get":
138412
138413type RoutesGetCall struct {
138414	s            *Service
138415	project      string
138416	route        string
138417	urlParams_   gensupport.URLParams
138418	ifNoneMatch_ string
138419	ctx_         context.Context
138420	header_      http.Header
138421}
138422
138423// Get: Returns the specified Route resource. Gets a list of available
138424// routes by making a list() request.
138425//
138426// - project: Project ID for this request.
138427// - route: Name of the Route resource to return.
138428// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/get
138429func (r *RoutesService) Get(project string, route string) *RoutesGetCall {
138430	c := &RoutesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138431	c.project = project
138432	c.route = route
138433	return c
138434}
138435
138436// Fields allows partial responses to be retrieved. See
138437// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138438// for more information.
138439func (c *RoutesGetCall) Fields(s ...googleapi.Field) *RoutesGetCall {
138440	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138441	return c
138442}
138443
138444// IfNoneMatch sets the optional parameter which makes the operation
138445// fail if the object's ETag matches the given value. This is useful for
138446// getting updates only after the object has changed since the last
138447// request. Use googleapi.IsNotModified to check whether the response
138448// error from Do is the result of In-None-Match.
138449func (c *RoutesGetCall) IfNoneMatch(entityTag string) *RoutesGetCall {
138450	c.ifNoneMatch_ = entityTag
138451	return c
138452}
138453
138454// Context sets the context to be used in this call's Do method. Any
138455// pending HTTP request will be aborted if the provided context is
138456// canceled.
138457func (c *RoutesGetCall) Context(ctx context.Context) *RoutesGetCall {
138458	c.ctx_ = ctx
138459	return c
138460}
138461
138462// Header returns an http.Header that can be modified by the caller to
138463// add HTTP headers to the request.
138464func (c *RoutesGetCall) Header() http.Header {
138465	if c.header_ == nil {
138466		c.header_ = make(http.Header)
138467	}
138468	return c.header_
138469}
138470
138471func (c *RoutesGetCall) doRequest(alt string) (*http.Response, error) {
138472	reqHeaders := make(http.Header)
138473	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
138474	for k, v := range c.header_ {
138475		reqHeaders[k] = v
138476	}
138477	reqHeaders.Set("User-Agent", c.s.userAgent())
138478	if c.ifNoneMatch_ != "" {
138479		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
138480	}
138481	var body io.Reader = nil
138482	c.urlParams_.Set("alt", alt)
138483	c.urlParams_.Set("prettyPrint", "false")
138484	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/routes/{route}")
138485	urls += "?" + c.urlParams_.Encode()
138486	req, err := http.NewRequest("GET", urls, body)
138487	if err != nil {
138488		return nil, err
138489	}
138490	req.Header = reqHeaders
138491	googleapi.Expand(req.URL, map[string]string{
138492		"project": c.project,
138493		"route":   c.route,
138494	})
138495	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138496}
138497
138498// Do executes the "compute.routes.get" call.
138499// Exactly one of *Route or error will be non-nil. Any non-2xx status
138500// code is an error. Response headers are in either
138501// *Route.ServerResponse.Header or (if a response was returned at all)
138502// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
138503// check whether the returned error was because http.StatusNotModified
138504// was returned.
138505func (c *RoutesGetCall) Do(opts ...googleapi.CallOption) (*Route, error) {
138506	gensupport.SetOptions(c.urlParams_, opts...)
138507	res, err := c.doRequest("json")
138508	if res != nil && res.StatusCode == http.StatusNotModified {
138509		if res.Body != nil {
138510			res.Body.Close()
138511		}
138512		return nil, &googleapi.Error{
138513			Code:   res.StatusCode,
138514			Header: res.Header,
138515		}
138516	}
138517	if err != nil {
138518		return nil, err
138519	}
138520	defer googleapi.CloseBody(res)
138521	if err := googleapi.CheckResponse(res); err != nil {
138522		return nil, err
138523	}
138524	ret := &Route{
138525		ServerResponse: googleapi.ServerResponse{
138526			Header:         res.Header,
138527			HTTPStatusCode: res.StatusCode,
138528		},
138529	}
138530	target := &ret
138531	if err := gensupport.DecodeResponse(target, res); err != nil {
138532		return nil, err
138533	}
138534	return ret, nil
138535	// {
138536	//   "description": "Returns the specified Route resource. Gets a list of available routes by making a list() request.",
138537	//   "httpMethod": "GET",
138538	//   "id": "compute.routes.get",
138539	//   "parameterOrder": [
138540	//     "project",
138541	//     "route"
138542	//   ],
138543	//   "parameters": {
138544	//     "project": {
138545	//       "description": "Project ID for this request.",
138546	//       "location": "path",
138547	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138548	//       "required": true,
138549	//       "type": "string"
138550	//     },
138551	//     "route": {
138552	//       "description": "Name of the Route resource to return.",
138553	//       "location": "path",
138554	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
138555	//       "required": true,
138556	//       "type": "string"
138557	//     }
138558	//   },
138559	//   "path": "projects/{project}/global/routes/{route}",
138560	//   "response": {
138561	//     "$ref": "Route"
138562	//   },
138563	//   "scopes": [
138564	//     "https://www.googleapis.com/auth/cloud-platform",
138565	//     "https://www.googleapis.com/auth/compute",
138566	//     "https://www.googleapis.com/auth/compute.readonly"
138567	//   ]
138568	// }
138569
138570}
138571
138572// method id "compute.routes.insert":
138573
138574type RoutesInsertCall struct {
138575	s          *Service
138576	project    string
138577	route      *Route
138578	urlParams_ gensupport.URLParams
138579	ctx_       context.Context
138580	header_    http.Header
138581}
138582
138583// Insert: Creates a Route resource in the specified project using the
138584// data included in the request.
138585//
138586// - project: Project ID for this request.
138587// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/insert
138588func (r *RoutesService) Insert(project string, route *Route) *RoutesInsertCall {
138589	c := &RoutesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138590	c.project = project
138591	c.route = route
138592	return c
138593}
138594
138595// RequestId sets the optional parameter "requestId": An optional
138596// request ID to identify requests. Specify a unique request ID so that
138597// if you must retry your request, the server will know to ignore the
138598// request if it has already been completed.
138599//
138600// For example, consider a situation where you make an initial request
138601// and the request times out. If you make the request again with the
138602// same request ID, the server can check if original operation with the
138603// same request ID was received, and if so, will ignore the second
138604// request. This prevents clients from accidentally creating duplicate
138605// commitments.
138606//
138607// The request ID must be a valid UUID with the exception that zero UUID
138608// is not supported (00000000-0000-0000-0000-000000000000).
138609func (c *RoutesInsertCall) RequestId(requestId string) *RoutesInsertCall {
138610	c.urlParams_.Set("requestId", requestId)
138611	return c
138612}
138613
138614// Fields allows partial responses to be retrieved. See
138615// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138616// for more information.
138617func (c *RoutesInsertCall) Fields(s ...googleapi.Field) *RoutesInsertCall {
138618	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138619	return c
138620}
138621
138622// Context sets the context to be used in this call's Do method. Any
138623// pending HTTP request will be aborted if the provided context is
138624// canceled.
138625func (c *RoutesInsertCall) Context(ctx context.Context) *RoutesInsertCall {
138626	c.ctx_ = ctx
138627	return c
138628}
138629
138630// Header returns an http.Header that can be modified by the caller to
138631// add HTTP headers to the request.
138632func (c *RoutesInsertCall) Header() http.Header {
138633	if c.header_ == nil {
138634		c.header_ = make(http.Header)
138635	}
138636	return c.header_
138637}
138638
138639func (c *RoutesInsertCall) doRequest(alt string) (*http.Response, error) {
138640	reqHeaders := make(http.Header)
138641	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
138642	for k, v := range c.header_ {
138643		reqHeaders[k] = v
138644	}
138645	reqHeaders.Set("User-Agent", c.s.userAgent())
138646	var body io.Reader = nil
138647	body, err := googleapi.WithoutDataWrapper.JSONReader(c.route)
138648	if err != nil {
138649		return nil, err
138650	}
138651	reqHeaders.Set("Content-Type", "application/json")
138652	c.urlParams_.Set("alt", alt)
138653	c.urlParams_.Set("prettyPrint", "false")
138654	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/routes")
138655	urls += "?" + c.urlParams_.Encode()
138656	req, err := http.NewRequest("POST", urls, body)
138657	if err != nil {
138658		return nil, err
138659	}
138660	req.Header = reqHeaders
138661	googleapi.Expand(req.URL, map[string]string{
138662		"project": c.project,
138663	})
138664	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138665}
138666
138667// Do executes the "compute.routes.insert" call.
138668// Exactly one of *Operation or error will be non-nil. Any non-2xx
138669// status code is an error. Response headers are in either
138670// *Operation.ServerResponse.Header or (if a response was returned at
138671// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
138672// to check whether the returned error was because
138673// http.StatusNotModified was returned.
138674func (c *RoutesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
138675	gensupport.SetOptions(c.urlParams_, opts...)
138676	res, err := c.doRequest("json")
138677	if res != nil && res.StatusCode == http.StatusNotModified {
138678		if res.Body != nil {
138679			res.Body.Close()
138680		}
138681		return nil, &googleapi.Error{
138682			Code:   res.StatusCode,
138683			Header: res.Header,
138684		}
138685	}
138686	if err != nil {
138687		return nil, err
138688	}
138689	defer googleapi.CloseBody(res)
138690	if err := googleapi.CheckResponse(res); err != nil {
138691		return nil, err
138692	}
138693	ret := &Operation{
138694		ServerResponse: googleapi.ServerResponse{
138695			Header:         res.Header,
138696			HTTPStatusCode: res.StatusCode,
138697		},
138698	}
138699	target := &ret
138700	if err := gensupport.DecodeResponse(target, res); err != nil {
138701		return nil, err
138702	}
138703	return ret, nil
138704	// {
138705	//   "description": "Creates a Route resource in the specified project using the data included in the request.",
138706	//   "httpMethod": "POST",
138707	//   "id": "compute.routes.insert",
138708	//   "parameterOrder": [
138709	//     "project"
138710	//   ],
138711	//   "parameters": {
138712	//     "project": {
138713	//       "description": "Project ID for this request.",
138714	//       "location": "path",
138715	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138716	//       "required": true,
138717	//       "type": "string"
138718	//     },
138719	//     "requestId": {
138720	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
138721	//       "location": "query",
138722	//       "type": "string"
138723	//     }
138724	//   },
138725	//   "path": "projects/{project}/global/routes",
138726	//   "request": {
138727	//     "$ref": "Route"
138728	//   },
138729	//   "response": {
138730	//     "$ref": "Operation"
138731	//   },
138732	//   "scopes": [
138733	//     "https://www.googleapis.com/auth/cloud-platform",
138734	//     "https://www.googleapis.com/auth/compute"
138735	//   ]
138736	// }
138737
138738}
138739
138740// method id "compute.routes.list":
138741
138742type RoutesListCall struct {
138743	s            *Service
138744	project      string
138745	urlParams_   gensupport.URLParams
138746	ifNoneMatch_ string
138747	ctx_         context.Context
138748	header_      http.Header
138749}
138750
138751// List: Retrieves the list of Route resources available to the
138752// specified project.
138753//
138754// - project: Project ID for this request.
138755// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/list
138756func (r *RoutesService) List(project string) *RoutesListCall {
138757	c := &RoutesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138758	c.project = project
138759	return c
138760}
138761
138762// Filter sets the optional parameter "filter": A filter expression that
138763// filters resources listed in the response. The expression must specify
138764// the field name, a comparison operator, and the value that you want to
138765// use for filtering. The value must be a string, a number, or a
138766// boolean. The comparison operator must be either `=`, `!=`, `>`, or
138767// `<`.
138768//
138769// For example, if you are filtering Compute Engine instances, you can
138770// exclude instances named `example-instance` by specifying `name !=
138771// example-instance`.
138772//
138773// You can also filter nested fields. For example, you could specify
138774// `scheduling.automaticRestart = false` to include instances only if
138775// they are not scheduled for automatic restarts. You can use filtering
138776// on nested fields to filter based on resource labels.
138777//
138778// To filter on multiple expressions, provide each separate expression
138779// within parentheses. For example: ``` (scheduling.automaticRestart =
138780// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
138781// is an `AND` expression. However, you can include `AND` and `OR`
138782// expressions explicitly. For example: ``` (cpuPlatform = "Intel
138783// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
138784// (scheduling.automaticRestart = true) ```
138785func (c *RoutesListCall) Filter(filter string) *RoutesListCall {
138786	c.urlParams_.Set("filter", filter)
138787	return c
138788}
138789
138790// MaxResults sets the optional parameter "maxResults": The maximum
138791// number of results per page that should be returned. If the number of
138792// available results is larger than `maxResults`, Compute Engine returns
138793// a `nextPageToken` that can be used to get the next page of results in
138794// subsequent list requests. Acceptable values are `0` to `500`,
138795// inclusive. (Default: `500`)
138796func (c *RoutesListCall) MaxResults(maxResults int64) *RoutesListCall {
138797	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
138798	return c
138799}
138800
138801// OrderBy sets the optional parameter "orderBy": Sorts list results by
138802// a certain order. By default, results are returned in alphanumerical
138803// order based on the resource name.
138804//
138805// You can also sort results in descending order based on the creation
138806// timestamp using `orderBy="creationTimestamp desc". This sorts
138807// results based on the `creationTimestamp` field in reverse
138808// chronological order (newest result first). Use this to sort resources
138809// like operations so that the newest operation is returned
138810// first.
138811//
138812// Currently, only sorting by `name` or `creationTimestamp desc` is
138813// supported.
138814func (c *RoutesListCall) OrderBy(orderBy string) *RoutesListCall {
138815	c.urlParams_.Set("orderBy", orderBy)
138816	return c
138817}
138818
138819// PageToken sets the optional parameter "pageToken": Specifies a page
138820// token to use. Set `pageToken` to the `nextPageToken` returned by a
138821// previous list request to get the next page of results.
138822func (c *RoutesListCall) PageToken(pageToken string) *RoutesListCall {
138823	c.urlParams_.Set("pageToken", pageToken)
138824	return c
138825}
138826
138827// ReturnPartialSuccess sets the optional parameter
138828// "returnPartialSuccess": Opt-in for partial success behavior which
138829// provides partial results in case of failure. The default value is
138830// false.
138831func (c *RoutesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *RoutesListCall {
138832	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
138833	return c
138834}
138835
138836// Fields allows partial responses to be retrieved. See
138837// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138838// for more information.
138839func (c *RoutesListCall) Fields(s ...googleapi.Field) *RoutesListCall {
138840	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138841	return c
138842}
138843
138844// IfNoneMatch sets the optional parameter which makes the operation
138845// fail if the object's ETag matches the given value. This is useful for
138846// getting updates only after the object has changed since the last
138847// request. Use googleapi.IsNotModified to check whether the response
138848// error from Do is the result of In-None-Match.
138849func (c *RoutesListCall) IfNoneMatch(entityTag string) *RoutesListCall {
138850	c.ifNoneMatch_ = entityTag
138851	return c
138852}
138853
138854// Context sets the context to be used in this call's Do method. Any
138855// pending HTTP request will be aborted if the provided context is
138856// canceled.
138857func (c *RoutesListCall) Context(ctx context.Context) *RoutesListCall {
138858	c.ctx_ = ctx
138859	return c
138860}
138861
138862// Header returns an http.Header that can be modified by the caller to
138863// add HTTP headers to the request.
138864func (c *RoutesListCall) Header() http.Header {
138865	if c.header_ == nil {
138866		c.header_ = make(http.Header)
138867	}
138868	return c.header_
138869}
138870
138871func (c *RoutesListCall) doRequest(alt string) (*http.Response, error) {
138872	reqHeaders := make(http.Header)
138873	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
138874	for k, v := range c.header_ {
138875		reqHeaders[k] = v
138876	}
138877	reqHeaders.Set("User-Agent", c.s.userAgent())
138878	if c.ifNoneMatch_ != "" {
138879		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
138880	}
138881	var body io.Reader = nil
138882	c.urlParams_.Set("alt", alt)
138883	c.urlParams_.Set("prettyPrint", "false")
138884	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/routes")
138885	urls += "?" + c.urlParams_.Encode()
138886	req, err := http.NewRequest("GET", urls, body)
138887	if err != nil {
138888		return nil, err
138889	}
138890	req.Header = reqHeaders
138891	googleapi.Expand(req.URL, map[string]string{
138892		"project": c.project,
138893	})
138894	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138895}
138896
138897// Do executes the "compute.routes.list" call.
138898// Exactly one of *RouteList or error will be non-nil. Any non-2xx
138899// status code is an error. Response headers are in either
138900// *RouteList.ServerResponse.Header or (if a response was returned at
138901// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
138902// to check whether the returned error was because
138903// http.StatusNotModified was returned.
138904func (c *RoutesListCall) Do(opts ...googleapi.CallOption) (*RouteList, error) {
138905	gensupport.SetOptions(c.urlParams_, opts...)
138906	res, err := c.doRequest("json")
138907	if res != nil && res.StatusCode == http.StatusNotModified {
138908		if res.Body != nil {
138909			res.Body.Close()
138910		}
138911		return nil, &googleapi.Error{
138912			Code:   res.StatusCode,
138913			Header: res.Header,
138914		}
138915	}
138916	if err != nil {
138917		return nil, err
138918	}
138919	defer googleapi.CloseBody(res)
138920	if err := googleapi.CheckResponse(res); err != nil {
138921		return nil, err
138922	}
138923	ret := &RouteList{
138924		ServerResponse: googleapi.ServerResponse{
138925			Header:         res.Header,
138926			HTTPStatusCode: res.StatusCode,
138927		},
138928	}
138929	target := &ret
138930	if err := gensupport.DecodeResponse(target, res); err != nil {
138931		return nil, err
138932	}
138933	return ret, nil
138934	// {
138935	//   "description": "Retrieves the list of Route resources available to the specified project.",
138936	//   "httpMethod": "GET",
138937	//   "id": "compute.routes.list",
138938	//   "parameterOrder": [
138939	//     "project"
138940	//   ],
138941	//   "parameters": {
138942	//     "filter": {
138943	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
138944	//       "location": "query",
138945	//       "type": "string"
138946	//     },
138947	//     "maxResults": {
138948	//       "default": "500",
138949	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
138950	//       "format": "uint32",
138951	//       "location": "query",
138952	//       "minimum": "0",
138953	//       "type": "integer"
138954	//     },
138955	//     "orderBy": {
138956	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
138957	//       "location": "query",
138958	//       "type": "string"
138959	//     },
138960	//     "pageToken": {
138961	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
138962	//       "location": "query",
138963	//       "type": "string"
138964	//     },
138965	//     "project": {
138966	//       "description": "Project ID for this request.",
138967	//       "location": "path",
138968	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138969	//       "required": true,
138970	//       "type": "string"
138971	//     },
138972	//     "returnPartialSuccess": {
138973	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
138974	//       "location": "query",
138975	//       "type": "boolean"
138976	//     }
138977	//   },
138978	//   "path": "projects/{project}/global/routes",
138979	//   "response": {
138980	//     "$ref": "RouteList"
138981	//   },
138982	//   "scopes": [
138983	//     "https://www.googleapis.com/auth/cloud-platform",
138984	//     "https://www.googleapis.com/auth/compute",
138985	//     "https://www.googleapis.com/auth/compute.readonly"
138986	//   ]
138987	// }
138988
138989}
138990
138991// Pages invokes f for each page of results.
138992// A non-nil error returned from f will halt the iteration.
138993// The provided context supersedes any context provided to the Context method.
138994func (c *RoutesListCall) Pages(ctx context.Context, f func(*RouteList) error) error {
138995	c.ctx_ = ctx
138996	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
138997	for {
138998		x, err := c.Do()
138999		if err != nil {
139000			return err
139001		}
139002		if err := f(x); err != nil {
139003			return err
139004		}
139005		if x.NextPageToken == "" {
139006			return nil
139007		}
139008		c.PageToken(x.NextPageToken)
139009	}
139010}
139011
139012// method id "compute.securityPolicies.addRule":
139013
139014type SecurityPoliciesAddRuleCall struct {
139015	s                  *Service
139016	project            string
139017	securityPolicy     string
139018	securitypolicyrule *SecurityPolicyRule
139019	urlParams_         gensupport.URLParams
139020	ctx_               context.Context
139021	header_            http.Header
139022}
139023
139024// AddRule: Inserts a rule into a security policy.
139025//
139026// - project: Project ID for this request.
139027// - securityPolicy: Name of the security policy to update.
139028func (r *SecurityPoliciesService) AddRule(project string, securityPolicy string, securitypolicyrule *SecurityPolicyRule) *SecurityPoliciesAddRuleCall {
139029	c := &SecurityPoliciesAddRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139030	c.project = project
139031	c.securityPolicy = securityPolicy
139032	c.securitypolicyrule = securitypolicyrule
139033	return c
139034}
139035
139036// Fields allows partial responses to be retrieved. See
139037// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139038// for more information.
139039func (c *SecurityPoliciesAddRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesAddRuleCall {
139040	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139041	return c
139042}
139043
139044// Context sets the context to be used in this call's Do method. Any
139045// pending HTTP request will be aborted if the provided context is
139046// canceled.
139047func (c *SecurityPoliciesAddRuleCall) Context(ctx context.Context) *SecurityPoliciesAddRuleCall {
139048	c.ctx_ = ctx
139049	return c
139050}
139051
139052// Header returns an http.Header that can be modified by the caller to
139053// add HTTP headers to the request.
139054func (c *SecurityPoliciesAddRuleCall) Header() http.Header {
139055	if c.header_ == nil {
139056		c.header_ = make(http.Header)
139057	}
139058	return c.header_
139059}
139060
139061func (c *SecurityPoliciesAddRuleCall) doRequest(alt string) (*http.Response, error) {
139062	reqHeaders := make(http.Header)
139063	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
139064	for k, v := range c.header_ {
139065		reqHeaders[k] = v
139066	}
139067	reqHeaders.Set("User-Agent", c.s.userAgent())
139068	var body io.Reader = nil
139069	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule)
139070	if err != nil {
139071		return nil, err
139072	}
139073	reqHeaders.Set("Content-Type", "application/json")
139074	c.urlParams_.Set("alt", alt)
139075	c.urlParams_.Set("prettyPrint", "false")
139076	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}/addRule")
139077	urls += "?" + c.urlParams_.Encode()
139078	req, err := http.NewRequest("POST", urls, body)
139079	if err != nil {
139080		return nil, err
139081	}
139082	req.Header = reqHeaders
139083	googleapi.Expand(req.URL, map[string]string{
139084		"project":        c.project,
139085		"securityPolicy": c.securityPolicy,
139086	})
139087	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139088}
139089
139090// Do executes the "compute.securityPolicies.addRule" call.
139091// Exactly one of *Operation or error will be non-nil. Any non-2xx
139092// status code is an error. Response headers are in either
139093// *Operation.ServerResponse.Header or (if a response was returned at
139094// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
139095// to check whether the returned error was because
139096// http.StatusNotModified was returned.
139097func (c *SecurityPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
139098	gensupport.SetOptions(c.urlParams_, opts...)
139099	res, err := c.doRequest("json")
139100	if res != nil && res.StatusCode == http.StatusNotModified {
139101		if res.Body != nil {
139102			res.Body.Close()
139103		}
139104		return nil, &googleapi.Error{
139105			Code:   res.StatusCode,
139106			Header: res.Header,
139107		}
139108	}
139109	if err != nil {
139110		return nil, err
139111	}
139112	defer googleapi.CloseBody(res)
139113	if err := googleapi.CheckResponse(res); err != nil {
139114		return nil, err
139115	}
139116	ret := &Operation{
139117		ServerResponse: googleapi.ServerResponse{
139118			Header:         res.Header,
139119			HTTPStatusCode: res.StatusCode,
139120		},
139121	}
139122	target := &ret
139123	if err := gensupport.DecodeResponse(target, res); err != nil {
139124		return nil, err
139125	}
139126	return ret, nil
139127	// {
139128	//   "description": "Inserts a rule into a security policy.",
139129	//   "httpMethod": "POST",
139130	//   "id": "compute.securityPolicies.addRule",
139131	//   "parameterOrder": [
139132	//     "project",
139133	//     "securityPolicy"
139134	//   ],
139135	//   "parameters": {
139136	//     "project": {
139137	//       "description": "Project ID for this request.",
139138	//       "location": "path",
139139	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139140	//       "required": true,
139141	//       "type": "string"
139142	//     },
139143	//     "securityPolicy": {
139144	//       "description": "Name of the security policy to update.",
139145	//       "location": "path",
139146	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
139147	//       "required": true,
139148	//       "type": "string"
139149	//     }
139150	//   },
139151	//   "path": "projects/{project}/global/securityPolicies/{securityPolicy}/addRule",
139152	//   "request": {
139153	//     "$ref": "SecurityPolicyRule"
139154	//   },
139155	//   "response": {
139156	//     "$ref": "Operation"
139157	//   },
139158	//   "scopes": [
139159	//     "https://www.googleapis.com/auth/cloud-platform",
139160	//     "https://www.googleapis.com/auth/compute"
139161	//   ]
139162	// }
139163
139164}
139165
139166// method id "compute.securityPolicies.delete":
139167
139168type SecurityPoliciesDeleteCall struct {
139169	s              *Service
139170	project        string
139171	securityPolicy string
139172	urlParams_     gensupport.URLParams
139173	ctx_           context.Context
139174	header_        http.Header
139175}
139176
139177// Delete: Deletes the specified policy.
139178//
139179// - project: Project ID for this request.
139180// - securityPolicy: Name of the security policy to delete.
139181func (r *SecurityPoliciesService) Delete(project string, securityPolicy string) *SecurityPoliciesDeleteCall {
139182	c := &SecurityPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139183	c.project = project
139184	c.securityPolicy = securityPolicy
139185	return c
139186}
139187
139188// RequestId sets the optional parameter "requestId": An optional
139189// request ID to identify requests. Specify a unique request ID so that
139190// if you must retry your request, the server will know to ignore the
139191// request if it has already been completed.
139192//
139193// For example, consider a situation where you make an initial request
139194// and the request times out. If you make the request again with the
139195// same request ID, the server can check if original operation with the
139196// same request ID was received, and if so, will ignore the second
139197// request. This prevents clients from accidentally creating duplicate
139198// commitments.
139199//
139200// The request ID must be a valid UUID with the exception that zero UUID
139201// is not supported (00000000-0000-0000-0000-000000000000).
139202func (c *SecurityPoliciesDeleteCall) RequestId(requestId string) *SecurityPoliciesDeleteCall {
139203	c.urlParams_.Set("requestId", requestId)
139204	return c
139205}
139206
139207// Fields allows partial responses to be retrieved. See
139208// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139209// for more information.
139210func (c *SecurityPoliciesDeleteCall) Fields(s ...googleapi.Field) *SecurityPoliciesDeleteCall {
139211	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139212	return c
139213}
139214
139215// Context sets the context to be used in this call's Do method. Any
139216// pending HTTP request will be aborted if the provided context is
139217// canceled.
139218func (c *SecurityPoliciesDeleteCall) Context(ctx context.Context) *SecurityPoliciesDeleteCall {
139219	c.ctx_ = ctx
139220	return c
139221}
139222
139223// Header returns an http.Header that can be modified by the caller to
139224// add HTTP headers to the request.
139225func (c *SecurityPoliciesDeleteCall) Header() http.Header {
139226	if c.header_ == nil {
139227		c.header_ = make(http.Header)
139228	}
139229	return c.header_
139230}
139231
139232func (c *SecurityPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
139233	reqHeaders := make(http.Header)
139234	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
139235	for k, v := range c.header_ {
139236		reqHeaders[k] = v
139237	}
139238	reqHeaders.Set("User-Agent", c.s.userAgent())
139239	var body io.Reader = nil
139240	c.urlParams_.Set("alt", alt)
139241	c.urlParams_.Set("prettyPrint", "false")
139242	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}")
139243	urls += "?" + c.urlParams_.Encode()
139244	req, err := http.NewRequest("DELETE", urls, body)
139245	if err != nil {
139246		return nil, err
139247	}
139248	req.Header = reqHeaders
139249	googleapi.Expand(req.URL, map[string]string{
139250		"project":        c.project,
139251		"securityPolicy": c.securityPolicy,
139252	})
139253	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139254}
139255
139256// Do executes the "compute.securityPolicies.delete" call.
139257// Exactly one of *Operation or error will be non-nil. Any non-2xx
139258// status code is an error. Response headers are in either
139259// *Operation.ServerResponse.Header or (if a response was returned at
139260// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
139261// to check whether the returned error was because
139262// http.StatusNotModified was returned.
139263func (c *SecurityPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
139264	gensupport.SetOptions(c.urlParams_, opts...)
139265	res, err := c.doRequest("json")
139266	if res != nil && res.StatusCode == http.StatusNotModified {
139267		if res.Body != nil {
139268			res.Body.Close()
139269		}
139270		return nil, &googleapi.Error{
139271			Code:   res.StatusCode,
139272			Header: res.Header,
139273		}
139274	}
139275	if err != nil {
139276		return nil, err
139277	}
139278	defer googleapi.CloseBody(res)
139279	if err := googleapi.CheckResponse(res); err != nil {
139280		return nil, err
139281	}
139282	ret := &Operation{
139283		ServerResponse: googleapi.ServerResponse{
139284			Header:         res.Header,
139285			HTTPStatusCode: res.StatusCode,
139286		},
139287	}
139288	target := &ret
139289	if err := gensupport.DecodeResponse(target, res); err != nil {
139290		return nil, err
139291	}
139292	return ret, nil
139293	// {
139294	//   "description": "Deletes the specified policy.",
139295	//   "httpMethod": "DELETE",
139296	//   "id": "compute.securityPolicies.delete",
139297	//   "parameterOrder": [
139298	//     "project",
139299	//     "securityPolicy"
139300	//   ],
139301	//   "parameters": {
139302	//     "project": {
139303	//       "description": "Project ID for this request.",
139304	//       "location": "path",
139305	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139306	//       "required": true,
139307	//       "type": "string"
139308	//     },
139309	//     "requestId": {
139310	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
139311	//       "location": "query",
139312	//       "type": "string"
139313	//     },
139314	//     "securityPolicy": {
139315	//       "description": "Name of the security policy to delete.",
139316	//       "location": "path",
139317	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
139318	//       "required": true,
139319	//       "type": "string"
139320	//     }
139321	//   },
139322	//   "path": "projects/{project}/global/securityPolicies/{securityPolicy}",
139323	//   "response": {
139324	//     "$ref": "Operation"
139325	//   },
139326	//   "scopes": [
139327	//     "https://www.googleapis.com/auth/cloud-platform",
139328	//     "https://www.googleapis.com/auth/compute"
139329	//   ]
139330	// }
139331
139332}
139333
139334// method id "compute.securityPolicies.get":
139335
139336type SecurityPoliciesGetCall struct {
139337	s              *Service
139338	project        string
139339	securityPolicy string
139340	urlParams_     gensupport.URLParams
139341	ifNoneMatch_   string
139342	ctx_           context.Context
139343	header_        http.Header
139344}
139345
139346// Get: List all of the ordered rules present in a single specified
139347// policy.
139348//
139349// - project: Project ID for this request.
139350// - securityPolicy: Name of the security policy to get.
139351func (r *SecurityPoliciesService) Get(project string, securityPolicy string) *SecurityPoliciesGetCall {
139352	c := &SecurityPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139353	c.project = project
139354	c.securityPolicy = securityPolicy
139355	return c
139356}
139357
139358// Fields allows partial responses to be retrieved. See
139359// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139360// for more information.
139361func (c *SecurityPoliciesGetCall) Fields(s ...googleapi.Field) *SecurityPoliciesGetCall {
139362	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139363	return c
139364}
139365
139366// IfNoneMatch sets the optional parameter which makes the operation
139367// fail if the object's ETag matches the given value. This is useful for
139368// getting updates only after the object has changed since the last
139369// request. Use googleapi.IsNotModified to check whether the response
139370// error from Do is the result of In-None-Match.
139371func (c *SecurityPoliciesGetCall) IfNoneMatch(entityTag string) *SecurityPoliciesGetCall {
139372	c.ifNoneMatch_ = entityTag
139373	return c
139374}
139375
139376// Context sets the context to be used in this call's Do method. Any
139377// pending HTTP request will be aborted if the provided context is
139378// canceled.
139379func (c *SecurityPoliciesGetCall) Context(ctx context.Context) *SecurityPoliciesGetCall {
139380	c.ctx_ = ctx
139381	return c
139382}
139383
139384// Header returns an http.Header that can be modified by the caller to
139385// add HTTP headers to the request.
139386func (c *SecurityPoliciesGetCall) Header() http.Header {
139387	if c.header_ == nil {
139388		c.header_ = make(http.Header)
139389	}
139390	return c.header_
139391}
139392
139393func (c *SecurityPoliciesGetCall) doRequest(alt string) (*http.Response, error) {
139394	reqHeaders := make(http.Header)
139395	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
139396	for k, v := range c.header_ {
139397		reqHeaders[k] = v
139398	}
139399	reqHeaders.Set("User-Agent", c.s.userAgent())
139400	if c.ifNoneMatch_ != "" {
139401		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
139402	}
139403	var body io.Reader = nil
139404	c.urlParams_.Set("alt", alt)
139405	c.urlParams_.Set("prettyPrint", "false")
139406	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}")
139407	urls += "?" + c.urlParams_.Encode()
139408	req, err := http.NewRequest("GET", urls, body)
139409	if err != nil {
139410		return nil, err
139411	}
139412	req.Header = reqHeaders
139413	googleapi.Expand(req.URL, map[string]string{
139414		"project":        c.project,
139415		"securityPolicy": c.securityPolicy,
139416	})
139417	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139418}
139419
139420// Do executes the "compute.securityPolicies.get" call.
139421// Exactly one of *SecurityPolicy or error will be non-nil. Any non-2xx
139422// status code is an error. Response headers are in either
139423// *SecurityPolicy.ServerResponse.Header or (if a response was returned
139424// at all) in error.(*googleapi.Error).Header. Use
139425// googleapi.IsNotModified to check whether the returned error was
139426// because http.StatusNotModified was returned.
139427func (c *SecurityPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SecurityPolicy, error) {
139428	gensupport.SetOptions(c.urlParams_, opts...)
139429	res, err := c.doRequest("json")
139430	if res != nil && res.StatusCode == http.StatusNotModified {
139431		if res.Body != nil {
139432			res.Body.Close()
139433		}
139434		return nil, &googleapi.Error{
139435			Code:   res.StatusCode,
139436			Header: res.Header,
139437		}
139438	}
139439	if err != nil {
139440		return nil, err
139441	}
139442	defer googleapi.CloseBody(res)
139443	if err := googleapi.CheckResponse(res); err != nil {
139444		return nil, err
139445	}
139446	ret := &SecurityPolicy{
139447		ServerResponse: googleapi.ServerResponse{
139448			Header:         res.Header,
139449			HTTPStatusCode: res.StatusCode,
139450		},
139451	}
139452	target := &ret
139453	if err := gensupport.DecodeResponse(target, res); err != nil {
139454		return nil, err
139455	}
139456	return ret, nil
139457	// {
139458	//   "description": "List all of the ordered rules present in a single specified policy.",
139459	//   "httpMethod": "GET",
139460	//   "id": "compute.securityPolicies.get",
139461	//   "parameterOrder": [
139462	//     "project",
139463	//     "securityPolicy"
139464	//   ],
139465	//   "parameters": {
139466	//     "project": {
139467	//       "description": "Project ID for this request.",
139468	//       "location": "path",
139469	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139470	//       "required": true,
139471	//       "type": "string"
139472	//     },
139473	//     "securityPolicy": {
139474	//       "description": "Name of the security policy to get.",
139475	//       "location": "path",
139476	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
139477	//       "required": true,
139478	//       "type": "string"
139479	//     }
139480	//   },
139481	//   "path": "projects/{project}/global/securityPolicies/{securityPolicy}",
139482	//   "response": {
139483	//     "$ref": "SecurityPolicy"
139484	//   },
139485	//   "scopes": [
139486	//     "https://www.googleapis.com/auth/cloud-platform",
139487	//     "https://www.googleapis.com/auth/compute",
139488	//     "https://www.googleapis.com/auth/compute.readonly"
139489	//   ]
139490	// }
139491
139492}
139493
139494// method id "compute.securityPolicies.getRule":
139495
139496type SecurityPoliciesGetRuleCall struct {
139497	s              *Service
139498	project        string
139499	securityPolicy string
139500	urlParams_     gensupport.URLParams
139501	ifNoneMatch_   string
139502	ctx_           context.Context
139503	header_        http.Header
139504}
139505
139506// GetRule: Gets a rule at the specified priority.
139507//
139508// - project: Project ID for this request.
139509// - securityPolicy: Name of the security policy to which the queried
139510//   rule belongs.
139511func (r *SecurityPoliciesService) GetRule(project string, securityPolicy string) *SecurityPoliciesGetRuleCall {
139512	c := &SecurityPoliciesGetRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139513	c.project = project
139514	c.securityPolicy = securityPolicy
139515	return c
139516}
139517
139518// Priority sets the optional parameter "priority": The priority of the
139519// rule to get from the security policy.
139520func (c *SecurityPoliciesGetRuleCall) Priority(priority int64) *SecurityPoliciesGetRuleCall {
139521	c.urlParams_.Set("priority", fmt.Sprint(priority))
139522	return c
139523}
139524
139525// Fields allows partial responses to be retrieved. See
139526// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139527// for more information.
139528func (c *SecurityPoliciesGetRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesGetRuleCall {
139529	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139530	return c
139531}
139532
139533// IfNoneMatch sets the optional parameter which makes the operation
139534// fail if the object's ETag matches the given value. This is useful for
139535// getting updates only after the object has changed since the last
139536// request. Use googleapi.IsNotModified to check whether the response
139537// error from Do is the result of In-None-Match.
139538func (c *SecurityPoliciesGetRuleCall) IfNoneMatch(entityTag string) *SecurityPoliciesGetRuleCall {
139539	c.ifNoneMatch_ = entityTag
139540	return c
139541}
139542
139543// Context sets the context to be used in this call's Do method. Any
139544// pending HTTP request will be aborted if the provided context is
139545// canceled.
139546func (c *SecurityPoliciesGetRuleCall) Context(ctx context.Context) *SecurityPoliciesGetRuleCall {
139547	c.ctx_ = ctx
139548	return c
139549}
139550
139551// Header returns an http.Header that can be modified by the caller to
139552// add HTTP headers to the request.
139553func (c *SecurityPoliciesGetRuleCall) Header() http.Header {
139554	if c.header_ == nil {
139555		c.header_ = make(http.Header)
139556	}
139557	return c.header_
139558}
139559
139560func (c *SecurityPoliciesGetRuleCall) doRequest(alt string) (*http.Response, error) {
139561	reqHeaders := make(http.Header)
139562	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
139563	for k, v := range c.header_ {
139564		reqHeaders[k] = v
139565	}
139566	reqHeaders.Set("User-Agent", c.s.userAgent())
139567	if c.ifNoneMatch_ != "" {
139568		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
139569	}
139570	var body io.Reader = nil
139571	c.urlParams_.Set("alt", alt)
139572	c.urlParams_.Set("prettyPrint", "false")
139573	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}/getRule")
139574	urls += "?" + c.urlParams_.Encode()
139575	req, err := http.NewRequest("GET", urls, body)
139576	if err != nil {
139577		return nil, err
139578	}
139579	req.Header = reqHeaders
139580	googleapi.Expand(req.URL, map[string]string{
139581		"project":        c.project,
139582		"securityPolicy": c.securityPolicy,
139583	})
139584	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139585}
139586
139587// Do executes the "compute.securityPolicies.getRule" call.
139588// Exactly one of *SecurityPolicyRule or error will be non-nil. Any
139589// non-2xx status code is an error. Response headers are in either
139590// *SecurityPolicyRule.ServerResponse.Header or (if a response was
139591// returned at all) in error.(*googleapi.Error).Header. Use
139592// googleapi.IsNotModified to check whether the returned error was
139593// because http.StatusNotModified was returned.
139594func (c *SecurityPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyRule, error) {
139595	gensupport.SetOptions(c.urlParams_, opts...)
139596	res, err := c.doRequest("json")
139597	if res != nil && res.StatusCode == http.StatusNotModified {
139598		if res.Body != nil {
139599			res.Body.Close()
139600		}
139601		return nil, &googleapi.Error{
139602			Code:   res.StatusCode,
139603			Header: res.Header,
139604		}
139605	}
139606	if err != nil {
139607		return nil, err
139608	}
139609	defer googleapi.CloseBody(res)
139610	if err := googleapi.CheckResponse(res); err != nil {
139611		return nil, err
139612	}
139613	ret := &SecurityPolicyRule{
139614		ServerResponse: googleapi.ServerResponse{
139615			Header:         res.Header,
139616			HTTPStatusCode: res.StatusCode,
139617		},
139618	}
139619	target := &ret
139620	if err := gensupport.DecodeResponse(target, res); err != nil {
139621		return nil, err
139622	}
139623	return ret, nil
139624	// {
139625	//   "description": "Gets a rule at the specified priority.",
139626	//   "httpMethod": "GET",
139627	//   "id": "compute.securityPolicies.getRule",
139628	//   "parameterOrder": [
139629	//     "project",
139630	//     "securityPolicy"
139631	//   ],
139632	//   "parameters": {
139633	//     "priority": {
139634	//       "description": "The priority of the rule to get from the security policy.",
139635	//       "format": "int32",
139636	//       "location": "query",
139637	//       "type": "integer"
139638	//     },
139639	//     "project": {
139640	//       "description": "Project ID for this request.",
139641	//       "location": "path",
139642	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139643	//       "required": true,
139644	//       "type": "string"
139645	//     },
139646	//     "securityPolicy": {
139647	//       "description": "Name of the security policy to which the queried rule belongs.",
139648	//       "location": "path",
139649	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
139650	//       "required": true,
139651	//       "type": "string"
139652	//     }
139653	//   },
139654	//   "path": "projects/{project}/global/securityPolicies/{securityPolicy}/getRule",
139655	//   "response": {
139656	//     "$ref": "SecurityPolicyRule"
139657	//   },
139658	//   "scopes": [
139659	//     "https://www.googleapis.com/auth/cloud-platform",
139660	//     "https://www.googleapis.com/auth/compute",
139661	//     "https://www.googleapis.com/auth/compute.readonly"
139662	//   ]
139663	// }
139664
139665}
139666
139667// method id "compute.securityPolicies.insert":
139668
139669type SecurityPoliciesInsertCall struct {
139670	s              *Service
139671	project        string
139672	securitypolicy *SecurityPolicy
139673	urlParams_     gensupport.URLParams
139674	ctx_           context.Context
139675	header_        http.Header
139676}
139677
139678// Insert: Creates a new policy in the specified project using the data
139679// included in the request.
139680//
139681// - project: Project ID for this request.
139682func (r *SecurityPoliciesService) Insert(project string, securitypolicy *SecurityPolicy) *SecurityPoliciesInsertCall {
139683	c := &SecurityPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139684	c.project = project
139685	c.securitypolicy = securitypolicy
139686	return c
139687}
139688
139689// RequestId sets the optional parameter "requestId": An optional
139690// request ID to identify requests. Specify a unique request ID so that
139691// if you must retry your request, the server will know to ignore the
139692// request if it has already been completed.
139693//
139694// For example, consider a situation where you make an initial request
139695// and the request times out. If you make the request again with the
139696// same request ID, the server can check if original operation with the
139697// same request ID was received, and if so, will ignore the second
139698// request. This prevents clients from accidentally creating duplicate
139699// commitments.
139700//
139701// The request ID must be a valid UUID with the exception that zero UUID
139702// is not supported (00000000-0000-0000-0000-000000000000).
139703func (c *SecurityPoliciesInsertCall) RequestId(requestId string) *SecurityPoliciesInsertCall {
139704	c.urlParams_.Set("requestId", requestId)
139705	return c
139706}
139707
139708// Fields allows partial responses to be retrieved. See
139709// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139710// for more information.
139711func (c *SecurityPoliciesInsertCall) Fields(s ...googleapi.Field) *SecurityPoliciesInsertCall {
139712	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139713	return c
139714}
139715
139716// Context sets the context to be used in this call's Do method. Any
139717// pending HTTP request will be aborted if the provided context is
139718// canceled.
139719func (c *SecurityPoliciesInsertCall) Context(ctx context.Context) *SecurityPoliciesInsertCall {
139720	c.ctx_ = ctx
139721	return c
139722}
139723
139724// Header returns an http.Header that can be modified by the caller to
139725// add HTTP headers to the request.
139726func (c *SecurityPoliciesInsertCall) Header() http.Header {
139727	if c.header_ == nil {
139728		c.header_ = make(http.Header)
139729	}
139730	return c.header_
139731}
139732
139733func (c *SecurityPoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
139734	reqHeaders := make(http.Header)
139735	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
139736	for k, v := range c.header_ {
139737		reqHeaders[k] = v
139738	}
139739	reqHeaders.Set("User-Agent", c.s.userAgent())
139740	var body io.Reader = nil
139741	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy)
139742	if err != nil {
139743		return nil, err
139744	}
139745	reqHeaders.Set("Content-Type", "application/json")
139746	c.urlParams_.Set("alt", alt)
139747	c.urlParams_.Set("prettyPrint", "false")
139748	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies")
139749	urls += "?" + c.urlParams_.Encode()
139750	req, err := http.NewRequest("POST", urls, body)
139751	if err != nil {
139752		return nil, err
139753	}
139754	req.Header = reqHeaders
139755	googleapi.Expand(req.URL, map[string]string{
139756		"project": c.project,
139757	})
139758	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139759}
139760
139761// Do executes the "compute.securityPolicies.insert" call.
139762// Exactly one of *Operation or error will be non-nil. Any non-2xx
139763// status code is an error. Response headers are in either
139764// *Operation.ServerResponse.Header or (if a response was returned at
139765// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
139766// to check whether the returned error was because
139767// http.StatusNotModified was returned.
139768func (c *SecurityPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
139769	gensupport.SetOptions(c.urlParams_, opts...)
139770	res, err := c.doRequest("json")
139771	if res != nil && res.StatusCode == http.StatusNotModified {
139772		if res.Body != nil {
139773			res.Body.Close()
139774		}
139775		return nil, &googleapi.Error{
139776			Code:   res.StatusCode,
139777			Header: res.Header,
139778		}
139779	}
139780	if err != nil {
139781		return nil, err
139782	}
139783	defer googleapi.CloseBody(res)
139784	if err := googleapi.CheckResponse(res); err != nil {
139785		return nil, err
139786	}
139787	ret := &Operation{
139788		ServerResponse: googleapi.ServerResponse{
139789			Header:         res.Header,
139790			HTTPStatusCode: res.StatusCode,
139791		},
139792	}
139793	target := &ret
139794	if err := gensupport.DecodeResponse(target, res); err != nil {
139795		return nil, err
139796	}
139797	return ret, nil
139798	// {
139799	//   "description": "Creates a new policy in the specified project using the data included in the request.",
139800	//   "httpMethod": "POST",
139801	//   "id": "compute.securityPolicies.insert",
139802	//   "parameterOrder": [
139803	//     "project"
139804	//   ],
139805	//   "parameters": {
139806	//     "project": {
139807	//       "description": "Project ID for this request.",
139808	//       "location": "path",
139809	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139810	//       "required": true,
139811	//       "type": "string"
139812	//     },
139813	//     "requestId": {
139814	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
139815	//       "location": "query",
139816	//       "type": "string"
139817	//     }
139818	//   },
139819	//   "path": "projects/{project}/global/securityPolicies",
139820	//   "request": {
139821	//     "$ref": "SecurityPolicy"
139822	//   },
139823	//   "response": {
139824	//     "$ref": "Operation"
139825	//   },
139826	//   "scopes": [
139827	//     "https://www.googleapis.com/auth/cloud-platform",
139828	//     "https://www.googleapis.com/auth/compute"
139829	//   ]
139830	// }
139831
139832}
139833
139834// method id "compute.securityPolicies.list":
139835
139836type SecurityPoliciesListCall struct {
139837	s            *Service
139838	project      string
139839	urlParams_   gensupport.URLParams
139840	ifNoneMatch_ string
139841	ctx_         context.Context
139842	header_      http.Header
139843}
139844
139845// List: List all the policies that have been configured for the
139846// specified project.
139847//
139848// - project: Project ID for this request.
139849func (r *SecurityPoliciesService) List(project string) *SecurityPoliciesListCall {
139850	c := &SecurityPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139851	c.project = project
139852	return c
139853}
139854
139855// Filter sets the optional parameter "filter": A filter expression that
139856// filters resources listed in the response. The expression must specify
139857// the field name, a comparison operator, and the value that you want to
139858// use for filtering. The value must be a string, a number, or a
139859// boolean. The comparison operator must be either `=`, `!=`, `>`, or
139860// `<`.
139861//
139862// For example, if you are filtering Compute Engine instances, you can
139863// exclude instances named `example-instance` by specifying `name !=
139864// example-instance`.
139865//
139866// You can also filter nested fields. For example, you could specify
139867// `scheduling.automaticRestart = false` to include instances only if
139868// they are not scheduled for automatic restarts. You can use filtering
139869// on nested fields to filter based on resource labels.
139870//
139871// To filter on multiple expressions, provide each separate expression
139872// within parentheses. For example: ``` (scheduling.automaticRestart =
139873// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
139874// is an `AND` expression. However, you can include `AND` and `OR`
139875// expressions explicitly. For example: ``` (cpuPlatform = "Intel
139876// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
139877// (scheduling.automaticRestart = true) ```
139878func (c *SecurityPoliciesListCall) Filter(filter string) *SecurityPoliciesListCall {
139879	c.urlParams_.Set("filter", filter)
139880	return c
139881}
139882
139883// MaxResults sets the optional parameter "maxResults": The maximum
139884// number of results per page that should be returned. If the number of
139885// available results is larger than `maxResults`, Compute Engine returns
139886// a `nextPageToken` that can be used to get the next page of results in
139887// subsequent list requests. Acceptable values are `0` to `500`,
139888// inclusive. (Default: `500`)
139889func (c *SecurityPoliciesListCall) MaxResults(maxResults int64) *SecurityPoliciesListCall {
139890	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
139891	return c
139892}
139893
139894// OrderBy sets the optional parameter "orderBy": Sorts list results by
139895// a certain order. By default, results are returned in alphanumerical
139896// order based on the resource name.
139897//
139898// You can also sort results in descending order based on the creation
139899// timestamp using `orderBy="creationTimestamp desc". This sorts
139900// results based on the `creationTimestamp` field in reverse
139901// chronological order (newest result first). Use this to sort resources
139902// like operations so that the newest operation is returned
139903// first.
139904//
139905// Currently, only sorting by `name` or `creationTimestamp desc` is
139906// supported.
139907func (c *SecurityPoliciesListCall) OrderBy(orderBy string) *SecurityPoliciesListCall {
139908	c.urlParams_.Set("orderBy", orderBy)
139909	return c
139910}
139911
139912// PageToken sets the optional parameter "pageToken": Specifies a page
139913// token to use. Set `pageToken` to the `nextPageToken` returned by a
139914// previous list request to get the next page of results.
139915func (c *SecurityPoliciesListCall) PageToken(pageToken string) *SecurityPoliciesListCall {
139916	c.urlParams_.Set("pageToken", pageToken)
139917	return c
139918}
139919
139920// ReturnPartialSuccess sets the optional parameter
139921// "returnPartialSuccess": Opt-in for partial success behavior which
139922// provides partial results in case of failure. The default value is
139923// false.
139924func (c *SecurityPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SecurityPoliciesListCall {
139925	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
139926	return c
139927}
139928
139929// Fields allows partial responses to be retrieved. See
139930// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139931// for more information.
139932func (c *SecurityPoliciesListCall) Fields(s ...googleapi.Field) *SecurityPoliciesListCall {
139933	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139934	return c
139935}
139936
139937// IfNoneMatch sets the optional parameter which makes the operation
139938// fail if the object's ETag matches the given value. This is useful for
139939// getting updates only after the object has changed since the last
139940// request. Use googleapi.IsNotModified to check whether the response
139941// error from Do is the result of In-None-Match.
139942func (c *SecurityPoliciesListCall) IfNoneMatch(entityTag string) *SecurityPoliciesListCall {
139943	c.ifNoneMatch_ = entityTag
139944	return c
139945}
139946
139947// Context sets the context to be used in this call's Do method. Any
139948// pending HTTP request will be aborted if the provided context is
139949// canceled.
139950func (c *SecurityPoliciesListCall) Context(ctx context.Context) *SecurityPoliciesListCall {
139951	c.ctx_ = ctx
139952	return c
139953}
139954
139955// Header returns an http.Header that can be modified by the caller to
139956// add HTTP headers to the request.
139957func (c *SecurityPoliciesListCall) Header() http.Header {
139958	if c.header_ == nil {
139959		c.header_ = make(http.Header)
139960	}
139961	return c.header_
139962}
139963
139964func (c *SecurityPoliciesListCall) doRequest(alt string) (*http.Response, error) {
139965	reqHeaders := make(http.Header)
139966	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
139967	for k, v := range c.header_ {
139968		reqHeaders[k] = v
139969	}
139970	reqHeaders.Set("User-Agent", c.s.userAgent())
139971	if c.ifNoneMatch_ != "" {
139972		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
139973	}
139974	var body io.Reader = nil
139975	c.urlParams_.Set("alt", alt)
139976	c.urlParams_.Set("prettyPrint", "false")
139977	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies")
139978	urls += "?" + c.urlParams_.Encode()
139979	req, err := http.NewRequest("GET", urls, body)
139980	if err != nil {
139981		return nil, err
139982	}
139983	req.Header = reqHeaders
139984	googleapi.Expand(req.URL, map[string]string{
139985		"project": c.project,
139986	})
139987	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139988}
139989
139990// Do executes the "compute.securityPolicies.list" call.
139991// Exactly one of *SecurityPolicyList or error will be non-nil. Any
139992// non-2xx status code is an error. Response headers are in either
139993// *SecurityPolicyList.ServerResponse.Header or (if a response was
139994// returned at all) in error.(*googleapi.Error).Header. Use
139995// googleapi.IsNotModified to check whether the returned error was
139996// because http.StatusNotModified was returned.
139997func (c *SecurityPoliciesListCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyList, error) {
139998	gensupport.SetOptions(c.urlParams_, opts...)
139999	res, err := c.doRequest("json")
140000	if res != nil && res.StatusCode == http.StatusNotModified {
140001		if res.Body != nil {
140002			res.Body.Close()
140003		}
140004		return nil, &googleapi.Error{
140005			Code:   res.StatusCode,
140006			Header: res.Header,
140007		}
140008	}
140009	if err != nil {
140010		return nil, err
140011	}
140012	defer googleapi.CloseBody(res)
140013	if err := googleapi.CheckResponse(res); err != nil {
140014		return nil, err
140015	}
140016	ret := &SecurityPolicyList{
140017		ServerResponse: googleapi.ServerResponse{
140018			Header:         res.Header,
140019			HTTPStatusCode: res.StatusCode,
140020		},
140021	}
140022	target := &ret
140023	if err := gensupport.DecodeResponse(target, res); err != nil {
140024		return nil, err
140025	}
140026	return ret, nil
140027	// {
140028	//   "description": "List all the policies that have been configured for the specified project.",
140029	//   "httpMethod": "GET",
140030	//   "id": "compute.securityPolicies.list",
140031	//   "parameterOrder": [
140032	//     "project"
140033	//   ],
140034	//   "parameters": {
140035	//     "filter": {
140036	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
140037	//       "location": "query",
140038	//       "type": "string"
140039	//     },
140040	//     "maxResults": {
140041	//       "default": "500",
140042	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
140043	//       "format": "uint32",
140044	//       "location": "query",
140045	//       "minimum": "0",
140046	//       "type": "integer"
140047	//     },
140048	//     "orderBy": {
140049	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
140050	//       "location": "query",
140051	//       "type": "string"
140052	//     },
140053	//     "pageToken": {
140054	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
140055	//       "location": "query",
140056	//       "type": "string"
140057	//     },
140058	//     "project": {
140059	//       "description": "Project ID for this request.",
140060	//       "location": "path",
140061	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140062	//       "required": true,
140063	//       "type": "string"
140064	//     },
140065	//     "returnPartialSuccess": {
140066	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
140067	//       "location": "query",
140068	//       "type": "boolean"
140069	//     }
140070	//   },
140071	//   "path": "projects/{project}/global/securityPolicies",
140072	//   "response": {
140073	//     "$ref": "SecurityPolicyList"
140074	//   },
140075	//   "scopes": [
140076	//     "https://www.googleapis.com/auth/cloud-platform",
140077	//     "https://www.googleapis.com/auth/compute",
140078	//     "https://www.googleapis.com/auth/compute.readonly"
140079	//   ]
140080	// }
140081
140082}
140083
140084// Pages invokes f for each page of results.
140085// A non-nil error returned from f will halt the iteration.
140086// The provided context supersedes any context provided to the Context method.
140087func (c *SecurityPoliciesListCall) Pages(ctx context.Context, f func(*SecurityPolicyList) error) error {
140088	c.ctx_ = ctx
140089	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
140090	for {
140091		x, err := c.Do()
140092		if err != nil {
140093			return err
140094		}
140095		if err := f(x); err != nil {
140096			return err
140097		}
140098		if x.NextPageToken == "" {
140099			return nil
140100		}
140101		c.PageToken(x.NextPageToken)
140102	}
140103}
140104
140105// method id "compute.securityPolicies.listPreconfiguredExpressionSets":
140106
140107type SecurityPoliciesListPreconfiguredExpressionSetsCall struct {
140108	s            *Service
140109	project      string
140110	urlParams_   gensupport.URLParams
140111	ifNoneMatch_ string
140112	ctx_         context.Context
140113	header_      http.Header
140114}
140115
140116// ListPreconfiguredExpressionSets: Gets the current list of
140117// preconfigured Web Application Firewall (WAF) expressions.
140118//
140119// - project: Project ID for this request.
140120func (r *SecurityPoliciesService) ListPreconfiguredExpressionSets(project string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
140121	c := &SecurityPoliciesListPreconfiguredExpressionSetsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140122	c.project = project
140123	return c
140124}
140125
140126// Filter sets the optional parameter "filter": A filter expression that
140127// filters resources listed in the response. The expression must specify
140128// the field name, a comparison operator, and the value that you want to
140129// use for filtering. The value must be a string, a number, or a
140130// boolean. The comparison operator must be either `=`, `!=`, `>`, or
140131// `<`.
140132//
140133// For example, if you are filtering Compute Engine instances, you can
140134// exclude instances named `example-instance` by specifying `name !=
140135// example-instance`.
140136//
140137// You can also filter nested fields. For example, you could specify
140138// `scheduling.automaticRestart = false` to include instances only if
140139// they are not scheduled for automatic restarts. You can use filtering
140140// on nested fields to filter based on resource labels.
140141//
140142// To filter on multiple expressions, provide each separate expression
140143// within parentheses. For example: ``` (scheduling.automaticRestart =
140144// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
140145// is an `AND` expression. However, you can include `AND` and `OR`
140146// expressions explicitly. For example: ``` (cpuPlatform = "Intel
140147// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
140148// (scheduling.automaticRestart = true) ```
140149func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Filter(filter string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
140150	c.urlParams_.Set("filter", filter)
140151	return c
140152}
140153
140154// MaxResults sets the optional parameter "maxResults": The maximum
140155// number of results per page that should be returned. If the number of
140156// available results is larger than `maxResults`, Compute Engine returns
140157// a `nextPageToken` that can be used to get the next page of results in
140158// subsequent list requests. Acceptable values are `0` to `500`,
140159// inclusive. (Default: `500`)
140160func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) MaxResults(maxResults int64) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
140161	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
140162	return c
140163}
140164
140165// OrderBy sets the optional parameter "orderBy": Sorts list results by
140166// a certain order. By default, results are returned in alphanumerical
140167// order based on the resource name.
140168//
140169// You can also sort results in descending order based on the creation
140170// timestamp using `orderBy="creationTimestamp desc". This sorts
140171// results based on the `creationTimestamp` field in reverse
140172// chronological order (newest result first). Use this to sort resources
140173// like operations so that the newest operation is returned
140174// first.
140175//
140176// Currently, only sorting by `name` or `creationTimestamp desc` is
140177// supported.
140178func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) OrderBy(orderBy string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
140179	c.urlParams_.Set("orderBy", orderBy)
140180	return c
140181}
140182
140183// PageToken sets the optional parameter "pageToken": Specifies a page
140184// token to use. Set `pageToken` to the `nextPageToken` returned by a
140185// previous list request to get the next page of results.
140186func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) PageToken(pageToken string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
140187	c.urlParams_.Set("pageToken", pageToken)
140188	return c
140189}
140190
140191// ReturnPartialSuccess sets the optional parameter
140192// "returnPartialSuccess": Opt-in for partial success behavior which
140193// provides partial results in case of failure. The default value is
140194// false.
140195func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) ReturnPartialSuccess(returnPartialSuccess bool) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
140196	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
140197	return c
140198}
140199
140200// Fields allows partial responses to be retrieved. See
140201// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140202// for more information.
140203func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Fields(s ...googleapi.Field) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
140204	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140205	return c
140206}
140207
140208// IfNoneMatch sets the optional parameter which makes the operation
140209// fail if the object's ETag matches the given value. This is useful for
140210// getting updates only after the object has changed since the last
140211// request. Use googleapi.IsNotModified to check whether the response
140212// error from Do is the result of In-None-Match.
140213func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) IfNoneMatch(entityTag string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
140214	c.ifNoneMatch_ = entityTag
140215	return c
140216}
140217
140218// Context sets the context to be used in this call's Do method. Any
140219// pending HTTP request will be aborted if the provided context is
140220// canceled.
140221func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Context(ctx context.Context) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
140222	c.ctx_ = ctx
140223	return c
140224}
140225
140226// Header returns an http.Header that can be modified by the caller to
140227// add HTTP headers to the request.
140228func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Header() http.Header {
140229	if c.header_ == nil {
140230		c.header_ = make(http.Header)
140231	}
140232	return c.header_
140233}
140234
140235func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) doRequest(alt string) (*http.Response, error) {
140236	reqHeaders := make(http.Header)
140237	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
140238	for k, v := range c.header_ {
140239		reqHeaders[k] = v
140240	}
140241	reqHeaders.Set("User-Agent", c.s.userAgent())
140242	if c.ifNoneMatch_ != "" {
140243		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
140244	}
140245	var body io.Reader = nil
140246	c.urlParams_.Set("alt", alt)
140247	c.urlParams_.Set("prettyPrint", "false")
140248	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/listPreconfiguredExpressionSets")
140249	urls += "?" + c.urlParams_.Encode()
140250	req, err := http.NewRequest("GET", urls, body)
140251	if err != nil {
140252		return nil, err
140253	}
140254	req.Header = reqHeaders
140255	googleapi.Expand(req.URL, map[string]string{
140256		"project": c.project,
140257	})
140258	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140259}
140260
140261// Do executes the "compute.securityPolicies.listPreconfiguredExpressionSets" call.
140262// Exactly one of
140263// *SecurityPoliciesListPreconfiguredExpressionSetsResponse or error
140264// will be non-nil. Any non-2xx status code is an error. Response
140265// headers are in either
140266// *SecurityPoliciesListPreconfiguredExpressionSetsResponse.ServerRespons
140267// e.Header or (if a response was returned at all) in
140268// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
140269// whether the returned error was because http.StatusNotModified was
140270// returned.
140271func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Do(opts ...googleapi.CallOption) (*SecurityPoliciesListPreconfiguredExpressionSetsResponse, error) {
140272	gensupport.SetOptions(c.urlParams_, opts...)
140273	res, err := c.doRequest("json")
140274	if res != nil && res.StatusCode == http.StatusNotModified {
140275		if res.Body != nil {
140276			res.Body.Close()
140277		}
140278		return nil, &googleapi.Error{
140279			Code:   res.StatusCode,
140280			Header: res.Header,
140281		}
140282	}
140283	if err != nil {
140284		return nil, err
140285	}
140286	defer googleapi.CloseBody(res)
140287	if err := googleapi.CheckResponse(res); err != nil {
140288		return nil, err
140289	}
140290	ret := &SecurityPoliciesListPreconfiguredExpressionSetsResponse{
140291		ServerResponse: googleapi.ServerResponse{
140292			Header:         res.Header,
140293			HTTPStatusCode: res.StatusCode,
140294		},
140295	}
140296	target := &ret
140297	if err := gensupport.DecodeResponse(target, res); err != nil {
140298		return nil, err
140299	}
140300	return ret, nil
140301	// {
140302	//   "description": "Gets the current list of preconfigured Web Application Firewall (WAF) expressions.",
140303	//   "httpMethod": "GET",
140304	//   "id": "compute.securityPolicies.listPreconfiguredExpressionSets",
140305	//   "parameterOrder": [
140306	//     "project"
140307	//   ],
140308	//   "parameters": {
140309	//     "filter": {
140310	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
140311	//       "location": "query",
140312	//       "type": "string"
140313	//     },
140314	//     "maxResults": {
140315	//       "default": "500",
140316	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
140317	//       "format": "uint32",
140318	//       "location": "query",
140319	//       "minimum": "0",
140320	//       "type": "integer"
140321	//     },
140322	//     "orderBy": {
140323	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
140324	//       "location": "query",
140325	//       "type": "string"
140326	//     },
140327	//     "pageToken": {
140328	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
140329	//       "location": "query",
140330	//       "type": "string"
140331	//     },
140332	//     "project": {
140333	//       "description": "Project ID for this request.",
140334	//       "location": "path",
140335	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140336	//       "required": true,
140337	//       "type": "string"
140338	//     },
140339	//     "returnPartialSuccess": {
140340	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
140341	//       "location": "query",
140342	//       "type": "boolean"
140343	//     }
140344	//   },
140345	//   "path": "projects/{project}/global/securityPolicies/listPreconfiguredExpressionSets",
140346	//   "response": {
140347	//     "$ref": "SecurityPoliciesListPreconfiguredExpressionSetsResponse"
140348	//   },
140349	//   "scopes": [
140350	//     "https://www.googleapis.com/auth/cloud-platform",
140351	//     "https://www.googleapis.com/auth/compute"
140352	//   ]
140353	// }
140354
140355}
140356
140357// method id "compute.securityPolicies.patch":
140358
140359type SecurityPoliciesPatchCall struct {
140360	s              *Service
140361	project        string
140362	securityPolicy string
140363	securitypolicy *SecurityPolicy
140364	urlParams_     gensupport.URLParams
140365	ctx_           context.Context
140366	header_        http.Header
140367}
140368
140369// Patch: Patches the specified policy with the data included in the
140370// request. This cannot be used to be update the rules in the policy.
140371// Please use the per rule methods like addRule, patchRule, and
140372// removeRule instead.
140373//
140374// - project: Project ID for this request.
140375// - securityPolicy: Name of the security policy to update.
140376func (r *SecurityPoliciesService) Patch(project string, securityPolicy string, securitypolicy *SecurityPolicy) *SecurityPoliciesPatchCall {
140377	c := &SecurityPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140378	c.project = project
140379	c.securityPolicy = securityPolicy
140380	c.securitypolicy = securitypolicy
140381	return c
140382}
140383
140384// RequestId sets the optional parameter "requestId": An optional
140385// request ID to identify requests. Specify a unique request ID so that
140386// if you must retry your request, the server will know to ignore the
140387// request if it has already been completed.
140388//
140389// For example, consider a situation where you make an initial request
140390// and the request times out. If you make the request again with the
140391// same request ID, the server can check if original operation with the
140392// same request ID was received, and if so, will ignore the second
140393// request. This prevents clients from accidentally creating duplicate
140394// commitments.
140395//
140396// The request ID must be a valid UUID with the exception that zero UUID
140397// is not supported (00000000-0000-0000-0000-000000000000).
140398func (c *SecurityPoliciesPatchCall) RequestId(requestId string) *SecurityPoliciesPatchCall {
140399	c.urlParams_.Set("requestId", requestId)
140400	return c
140401}
140402
140403// Fields allows partial responses to be retrieved. See
140404// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140405// for more information.
140406func (c *SecurityPoliciesPatchCall) Fields(s ...googleapi.Field) *SecurityPoliciesPatchCall {
140407	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140408	return c
140409}
140410
140411// Context sets the context to be used in this call's Do method. Any
140412// pending HTTP request will be aborted if the provided context is
140413// canceled.
140414func (c *SecurityPoliciesPatchCall) Context(ctx context.Context) *SecurityPoliciesPatchCall {
140415	c.ctx_ = ctx
140416	return c
140417}
140418
140419// Header returns an http.Header that can be modified by the caller to
140420// add HTTP headers to the request.
140421func (c *SecurityPoliciesPatchCall) Header() http.Header {
140422	if c.header_ == nil {
140423		c.header_ = make(http.Header)
140424	}
140425	return c.header_
140426}
140427
140428func (c *SecurityPoliciesPatchCall) doRequest(alt string) (*http.Response, error) {
140429	reqHeaders := make(http.Header)
140430	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
140431	for k, v := range c.header_ {
140432		reqHeaders[k] = v
140433	}
140434	reqHeaders.Set("User-Agent", c.s.userAgent())
140435	var body io.Reader = nil
140436	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy)
140437	if err != nil {
140438		return nil, err
140439	}
140440	reqHeaders.Set("Content-Type", "application/json")
140441	c.urlParams_.Set("alt", alt)
140442	c.urlParams_.Set("prettyPrint", "false")
140443	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}")
140444	urls += "?" + c.urlParams_.Encode()
140445	req, err := http.NewRequest("PATCH", urls, body)
140446	if err != nil {
140447		return nil, err
140448	}
140449	req.Header = reqHeaders
140450	googleapi.Expand(req.URL, map[string]string{
140451		"project":        c.project,
140452		"securityPolicy": c.securityPolicy,
140453	})
140454	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140455}
140456
140457// Do executes the "compute.securityPolicies.patch" call.
140458// Exactly one of *Operation or error will be non-nil. Any non-2xx
140459// status code is an error. Response headers are in either
140460// *Operation.ServerResponse.Header or (if a response was returned at
140461// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
140462// to check whether the returned error was because
140463// http.StatusNotModified was returned.
140464func (c *SecurityPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
140465	gensupport.SetOptions(c.urlParams_, opts...)
140466	res, err := c.doRequest("json")
140467	if res != nil && res.StatusCode == http.StatusNotModified {
140468		if res.Body != nil {
140469			res.Body.Close()
140470		}
140471		return nil, &googleapi.Error{
140472			Code:   res.StatusCode,
140473			Header: res.Header,
140474		}
140475	}
140476	if err != nil {
140477		return nil, err
140478	}
140479	defer googleapi.CloseBody(res)
140480	if err := googleapi.CheckResponse(res); err != nil {
140481		return nil, err
140482	}
140483	ret := &Operation{
140484		ServerResponse: googleapi.ServerResponse{
140485			Header:         res.Header,
140486			HTTPStatusCode: res.StatusCode,
140487		},
140488	}
140489	target := &ret
140490	if err := gensupport.DecodeResponse(target, res); err != nil {
140491		return nil, err
140492	}
140493	return ret, nil
140494	// {
140495	//   "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.",
140496	//   "httpMethod": "PATCH",
140497	//   "id": "compute.securityPolicies.patch",
140498	//   "parameterOrder": [
140499	//     "project",
140500	//     "securityPolicy"
140501	//   ],
140502	//   "parameters": {
140503	//     "project": {
140504	//       "description": "Project ID for this request.",
140505	//       "location": "path",
140506	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140507	//       "required": true,
140508	//       "type": "string"
140509	//     },
140510	//     "requestId": {
140511	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
140512	//       "location": "query",
140513	//       "type": "string"
140514	//     },
140515	//     "securityPolicy": {
140516	//       "description": "Name of the security policy to update.",
140517	//       "location": "path",
140518	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
140519	//       "required": true,
140520	//       "type": "string"
140521	//     }
140522	//   },
140523	//   "path": "projects/{project}/global/securityPolicies/{securityPolicy}",
140524	//   "request": {
140525	//     "$ref": "SecurityPolicy"
140526	//   },
140527	//   "response": {
140528	//     "$ref": "Operation"
140529	//   },
140530	//   "scopes": [
140531	//     "https://www.googleapis.com/auth/cloud-platform",
140532	//     "https://www.googleapis.com/auth/compute"
140533	//   ]
140534	// }
140535
140536}
140537
140538// method id "compute.securityPolicies.patchRule":
140539
140540type SecurityPoliciesPatchRuleCall struct {
140541	s                  *Service
140542	project            string
140543	securityPolicy     string
140544	securitypolicyrule *SecurityPolicyRule
140545	urlParams_         gensupport.URLParams
140546	ctx_               context.Context
140547	header_            http.Header
140548}
140549
140550// PatchRule: Patches a rule at the specified priority.
140551//
140552// - project: Project ID for this request.
140553// - securityPolicy: Name of the security policy to update.
140554func (r *SecurityPoliciesService) PatchRule(project string, securityPolicy string, securitypolicyrule *SecurityPolicyRule) *SecurityPoliciesPatchRuleCall {
140555	c := &SecurityPoliciesPatchRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140556	c.project = project
140557	c.securityPolicy = securityPolicy
140558	c.securitypolicyrule = securitypolicyrule
140559	return c
140560}
140561
140562// Priority sets the optional parameter "priority": The priority of the
140563// rule to patch.
140564func (c *SecurityPoliciesPatchRuleCall) Priority(priority int64) *SecurityPoliciesPatchRuleCall {
140565	c.urlParams_.Set("priority", fmt.Sprint(priority))
140566	return c
140567}
140568
140569// Fields allows partial responses to be retrieved. See
140570// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140571// for more information.
140572func (c *SecurityPoliciesPatchRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesPatchRuleCall {
140573	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140574	return c
140575}
140576
140577// Context sets the context to be used in this call's Do method. Any
140578// pending HTTP request will be aborted if the provided context is
140579// canceled.
140580func (c *SecurityPoliciesPatchRuleCall) Context(ctx context.Context) *SecurityPoliciesPatchRuleCall {
140581	c.ctx_ = ctx
140582	return c
140583}
140584
140585// Header returns an http.Header that can be modified by the caller to
140586// add HTTP headers to the request.
140587func (c *SecurityPoliciesPatchRuleCall) Header() http.Header {
140588	if c.header_ == nil {
140589		c.header_ = make(http.Header)
140590	}
140591	return c.header_
140592}
140593
140594func (c *SecurityPoliciesPatchRuleCall) doRequest(alt string) (*http.Response, error) {
140595	reqHeaders := make(http.Header)
140596	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
140597	for k, v := range c.header_ {
140598		reqHeaders[k] = v
140599	}
140600	reqHeaders.Set("User-Agent", c.s.userAgent())
140601	var body io.Reader = nil
140602	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule)
140603	if err != nil {
140604		return nil, err
140605	}
140606	reqHeaders.Set("Content-Type", "application/json")
140607	c.urlParams_.Set("alt", alt)
140608	c.urlParams_.Set("prettyPrint", "false")
140609	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}/patchRule")
140610	urls += "?" + c.urlParams_.Encode()
140611	req, err := http.NewRequest("POST", urls, body)
140612	if err != nil {
140613		return nil, err
140614	}
140615	req.Header = reqHeaders
140616	googleapi.Expand(req.URL, map[string]string{
140617		"project":        c.project,
140618		"securityPolicy": c.securityPolicy,
140619	})
140620	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140621}
140622
140623// Do executes the "compute.securityPolicies.patchRule" call.
140624// Exactly one of *Operation or error will be non-nil. Any non-2xx
140625// status code is an error. Response headers are in either
140626// *Operation.ServerResponse.Header or (if a response was returned at
140627// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
140628// to check whether the returned error was because
140629// http.StatusNotModified was returned.
140630func (c *SecurityPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
140631	gensupport.SetOptions(c.urlParams_, opts...)
140632	res, err := c.doRequest("json")
140633	if res != nil && res.StatusCode == http.StatusNotModified {
140634		if res.Body != nil {
140635			res.Body.Close()
140636		}
140637		return nil, &googleapi.Error{
140638			Code:   res.StatusCode,
140639			Header: res.Header,
140640		}
140641	}
140642	if err != nil {
140643		return nil, err
140644	}
140645	defer googleapi.CloseBody(res)
140646	if err := googleapi.CheckResponse(res); err != nil {
140647		return nil, err
140648	}
140649	ret := &Operation{
140650		ServerResponse: googleapi.ServerResponse{
140651			Header:         res.Header,
140652			HTTPStatusCode: res.StatusCode,
140653		},
140654	}
140655	target := &ret
140656	if err := gensupport.DecodeResponse(target, res); err != nil {
140657		return nil, err
140658	}
140659	return ret, nil
140660	// {
140661	//   "description": "Patches a rule at the specified priority.",
140662	//   "httpMethod": "POST",
140663	//   "id": "compute.securityPolicies.patchRule",
140664	//   "parameterOrder": [
140665	//     "project",
140666	//     "securityPolicy"
140667	//   ],
140668	//   "parameters": {
140669	//     "priority": {
140670	//       "description": "The priority of the rule to patch.",
140671	//       "format": "int32",
140672	//       "location": "query",
140673	//       "type": "integer"
140674	//     },
140675	//     "project": {
140676	//       "description": "Project ID for this request.",
140677	//       "location": "path",
140678	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140679	//       "required": true,
140680	//       "type": "string"
140681	//     },
140682	//     "securityPolicy": {
140683	//       "description": "Name of the security policy to update.",
140684	//       "location": "path",
140685	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
140686	//       "required": true,
140687	//       "type": "string"
140688	//     }
140689	//   },
140690	//   "path": "projects/{project}/global/securityPolicies/{securityPolicy}/patchRule",
140691	//   "request": {
140692	//     "$ref": "SecurityPolicyRule"
140693	//   },
140694	//   "response": {
140695	//     "$ref": "Operation"
140696	//   },
140697	//   "scopes": [
140698	//     "https://www.googleapis.com/auth/cloud-platform",
140699	//     "https://www.googleapis.com/auth/compute"
140700	//   ]
140701	// }
140702
140703}
140704
140705// method id "compute.securityPolicies.removeRule":
140706
140707type SecurityPoliciesRemoveRuleCall struct {
140708	s              *Service
140709	project        string
140710	securityPolicy string
140711	urlParams_     gensupport.URLParams
140712	ctx_           context.Context
140713	header_        http.Header
140714}
140715
140716// RemoveRule: Deletes a rule at the specified priority.
140717//
140718// - project: Project ID for this request.
140719// - securityPolicy: Name of the security policy to update.
140720func (r *SecurityPoliciesService) RemoveRule(project string, securityPolicy string) *SecurityPoliciesRemoveRuleCall {
140721	c := &SecurityPoliciesRemoveRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140722	c.project = project
140723	c.securityPolicy = securityPolicy
140724	return c
140725}
140726
140727// Priority sets the optional parameter "priority": The priority of the
140728// rule to remove from the security policy.
140729func (c *SecurityPoliciesRemoveRuleCall) Priority(priority int64) *SecurityPoliciesRemoveRuleCall {
140730	c.urlParams_.Set("priority", fmt.Sprint(priority))
140731	return c
140732}
140733
140734// Fields allows partial responses to be retrieved. See
140735// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140736// for more information.
140737func (c *SecurityPoliciesRemoveRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesRemoveRuleCall {
140738	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140739	return c
140740}
140741
140742// Context sets the context to be used in this call's Do method. Any
140743// pending HTTP request will be aborted if the provided context is
140744// canceled.
140745func (c *SecurityPoliciesRemoveRuleCall) Context(ctx context.Context) *SecurityPoliciesRemoveRuleCall {
140746	c.ctx_ = ctx
140747	return c
140748}
140749
140750// Header returns an http.Header that can be modified by the caller to
140751// add HTTP headers to the request.
140752func (c *SecurityPoliciesRemoveRuleCall) Header() http.Header {
140753	if c.header_ == nil {
140754		c.header_ = make(http.Header)
140755	}
140756	return c.header_
140757}
140758
140759func (c *SecurityPoliciesRemoveRuleCall) doRequest(alt string) (*http.Response, error) {
140760	reqHeaders := make(http.Header)
140761	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
140762	for k, v := range c.header_ {
140763		reqHeaders[k] = v
140764	}
140765	reqHeaders.Set("User-Agent", c.s.userAgent())
140766	var body io.Reader = nil
140767	c.urlParams_.Set("alt", alt)
140768	c.urlParams_.Set("prettyPrint", "false")
140769	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/securityPolicies/{securityPolicy}/removeRule")
140770	urls += "?" + c.urlParams_.Encode()
140771	req, err := http.NewRequest("POST", urls, body)
140772	if err != nil {
140773		return nil, err
140774	}
140775	req.Header = reqHeaders
140776	googleapi.Expand(req.URL, map[string]string{
140777		"project":        c.project,
140778		"securityPolicy": c.securityPolicy,
140779	})
140780	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140781}
140782
140783// Do executes the "compute.securityPolicies.removeRule" call.
140784// Exactly one of *Operation or error will be non-nil. Any non-2xx
140785// status code is an error. Response headers are in either
140786// *Operation.ServerResponse.Header or (if a response was returned at
140787// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
140788// to check whether the returned error was because
140789// http.StatusNotModified was returned.
140790func (c *SecurityPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
140791	gensupport.SetOptions(c.urlParams_, opts...)
140792	res, err := c.doRequest("json")
140793	if res != nil && res.StatusCode == http.StatusNotModified {
140794		if res.Body != nil {
140795			res.Body.Close()
140796		}
140797		return nil, &googleapi.Error{
140798			Code:   res.StatusCode,
140799			Header: res.Header,
140800		}
140801	}
140802	if err != nil {
140803		return nil, err
140804	}
140805	defer googleapi.CloseBody(res)
140806	if err := googleapi.CheckResponse(res); err != nil {
140807		return nil, err
140808	}
140809	ret := &Operation{
140810		ServerResponse: googleapi.ServerResponse{
140811			Header:         res.Header,
140812			HTTPStatusCode: res.StatusCode,
140813		},
140814	}
140815	target := &ret
140816	if err := gensupport.DecodeResponse(target, res); err != nil {
140817		return nil, err
140818	}
140819	return ret, nil
140820	// {
140821	//   "description": "Deletes a rule at the specified priority.",
140822	//   "httpMethod": "POST",
140823	//   "id": "compute.securityPolicies.removeRule",
140824	//   "parameterOrder": [
140825	//     "project",
140826	//     "securityPolicy"
140827	//   ],
140828	//   "parameters": {
140829	//     "priority": {
140830	//       "description": "The priority of the rule to remove from the security policy.",
140831	//       "format": "int32",
140832	//       "location": "query",
140833	//       "type": "integer"
140834	//     },
140835	//     "project": {
140836	//       "description": "Project ID for this request.",
140837	//       "location": "path",
140838	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140839	//       "required": true,
140840	//       "type": "string"
140841	//     },
140842	//     "securityPolicy": {
140843	//       "description": "Name of the security policy to update.",
140844	//       "location": "path",
140845	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
140846	//       "required": true,
140847	//       "type": "string"
140848	//     }
140849	//   },
140850	//   "path": "projects/{project}/global/securityPolicies/{securityPolicy}/removeRule",
140851	//   "response": {
140852	//     "$ref": "Operation"
140853	//   },
140854	//   "scopes": [
140855	//     "https://www.googleapis.com/auth/cloud-platform",
140856	//     "https://www.googleapis.com/auth/compute"
140857	//   ]
140858	// }
140859
140860}
140861
140862// method id "compute.snapshots.delete":
140863
140864type SnapshotsDeleteCall struct {
140865	s          *Service
140866	project    string
140867	snapshot   string
140868	urlParams_ gensupport.URLParams
140869	ctx_       context.Context
140870	header_    http.Header
140871}
140872
140873// Delete: Deletes the specified Snapshot resource. Keep in mind that
140874// deleting a single snapshot might not necessarily delete all the data
140875// on that snapshot. If any data on the snapshot that is marked for
140876// deletion is needed for subsequent snapshots, the data will be moved
140877// to the next corresponding snapshot.
140878//
140879// For more information, see Deleting snapshots.
140880//
140881// - project: Project ID for this request.
140882// - snapshot: Name of the Snapshot resource to delete.
140883// For details, see https://cloud.google.com/compute/docs/reference/latest/snapshots/delete
140884func (r *SnapshotsService) Delete(project string, snapshot string) *SnapshotsDeleteCall {
140885	c := &SnapshotsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140886	c.project = project
140887	c.snapshot = snapshot
140888	return c
140889}
140890
140891// RequestId sets the optional parameter "requestId": An optional
140892// request ID to identify requests. Specify a unique request ID so that
140893// if you must retry your request, the server will know to ignore the
140894// request if it has already been completed.
140895//
140896// For example, consider a situation where you make an initial request
140897// and the request times out. If you make the request again with the
140898// same request ID, the server can check if original operation with the
140899// same request ID was received, and if so, will ignore the second
140900// request. This prevents clients from accidentally creating duplicate
140901// commitments.
140902//
140903// The request ID must be a valid UUID with the exception that zero UUID
140904// is not supported (00000000-0000-0000-0000-000000000000).
140905func (c *SnapshotsDeleteCall) RequestId(requestId string) *SnapshotsDeleteCall {
140906	c.urlParams_.Set("requestId", requestId)
140907	return c
140908}
140909
140910// Fields allows partial responses to be retrieved. See
140911// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140912// for more information.
140913func (c *SnapshotsDeleteCall) Fields(s ...googleapi.Field) *SnapshotsDeleteCall {
140914	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140915	return c
140916}
140917
140918// Context sets the context to be used in this call's Do method. Any
140919// pending HTTP request will be aborted if the provided context is
140920// canceled.
140921func (c *SnapshotsDeleteCall) Context(ctx context.Context) *SnapshotsDeleteCall {
140922	c.ctx_ = ctx
140923	return c
140924}
140925
140926// Header returns an http.Header that can be modified by the caller to
140927// add HTTP headers to the request.
140928func (c *SnapshotsDeleteCall) Header() http.Header {
140929	if c.header_ == nil {
140930		c.header_ = make(http.Header)
140931	}
140932	return c.header_
140933}
140934
140935func (c *SnapshotsDeleteCall) doRequest(alt string) (*http.Response, error) {
140936	reqHeaders := make(http.Header)
140937	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
140938	for k, v := range c.header_ {
140939		reqHeaders[k] = v
140940	}
140941	reqHeaders.Set("User-Agent", c.s.userAgent())
140942	var body io.Reader = nil
140943	c.urlParams_.Set("alt", alt)
140944	c.urlParams_.Set("prettyPrint", "false")
140945	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{snapshot}")
140946	urls += "?" + c.urlParams_.Encode()
140947	req, err := http.NewRequest("DELETE", urls, body)
140948	if err != nil {
140949		return nil, err
140950	}
140951	req.Header = reqHeaders
140952	googleapi.Expand(req.URL, map[string]string{
140953		"project":  c.project,
140954		"snapshot": c.snapshot,
140955	})
140956	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140957}
140958
140959// Do executes the "compute.snapshots.delete" call.
140960// Exactly one of *Operation or error will be non-nil. Any non-2xx
140961// status code is an error. Response headers are in either
140962// *Operation.ServerResponse.Header or (if a response was returned at
140963// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
140964// to check whether the returned error was because
140965// http.StatusNotModified was returned.
140966func (c *SnapshotsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
140967	gensupport.SetOptions(c.urlParams_, opts...)
140968	res, err := c.doRequest("json")
140969	if res != nil && res.StatusCode == http.StatusNotModified {
140970		if res.Body != nil {
140971			res.Body.Close()
140972		}
140973		return nil, &googleapi.Error{
140974			Code:   res.StatusCode,
140975			Header: res.Header,
140976		}
140977	}
140978	if err != nil {
140979		return nil, err
140980	}
140981	defer googleapi.CloseBody(res)
140982	if err := googleapi.CheckResponse(res); err != nil {
140983		return nil, err
140984	}
140985	ret := &Operation{
140986		ServerResponse: googleapi.ServerResponse{
140987			Header:         res.Header,
140988			HTTPStatusCode: res.StatusCode,
140989		},
140990	}
140991	target := &ret
140992	if err := gensupport.DecodeResponse(target, res); err != nil {
140993		return nil, err
140994	}
140995	return ret, nil
140996	// {
140997	//   "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.",
140998	//   "httpMethod": "DELETE",
140999	//   "id": "compute.snapshots.delete",
141000	//   "parameterOrder": [
141001	//     "project",
141002	//     "snapshot"
141003	//   ],
141004	//   "parameters": {
141005	//     "project": {
141006	//       "description": "Project ID for this request.",
141007	//       "location": "path",
141008	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141009	//       "required": true,
141010	//       "type": "string"
141011	//     },
141012	//     "requestId": {
141013	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
141014	//       "location": "query",
141015	//       "type": "string"
141016	//     },
141017	//     "snapshot": {
141018	//       "description": "Name of the Snapshot resource to delete.",
141019	//       "location": "path",
141020	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
141021	//       "required": true,
141022	//       "type": "string"
141023	//     }
141024	//   },
141025	//   "path": "projects/{project}/global/snapshots/{snapshot}",
141026	//   "response": {
141027	//     "$ref": "Operation"
141028	//   },
141029	//   "scopes": [
141030	//     "https://www.googleapis.com/auth/cloud-platform",
141031	//     "https://www.googleapis.com/auth/compute"
141032	//   ]
141033	// }
141034
141035}
141036
141037// method id "compute.snapshots.get":
141038
141039type SnapshotsGetCall struct {
141040	s            *Service
141041	project      string
141042	snapshot     string
141043	urlParams_   gensupport.URLParams
141044	ifNoneMatch_ string
141045	ctx_         context.Context
141046	header_      http.Header
141047}
141048
141049// Get: Returns the specified Snapshot resource. Gets a list of
141050// available snapshots by making a list() request.
141051//
141052// - project: Project ID for this request.
141053// - snapshot: Name of the Snapshot resource to return.
141054// For details, see https://cloud.google.com/compute/docs/reference/latest/snapshots/get
141055func (r *SnapshotsService) Get(project string, snapshot string) *SnapshotsGetCall {
141056	c := &SnapshotsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141057	c.project = project
141058	c.snapshot = snapshot
141059	return c
141060}
141061
141062// Fields allows partial responses to be retrieved. See
141063// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141064// for more information.
141065func (c *SnapshotsGetCall) Fields(s ...googleapi.Field) *SnapshotsGetCall {
141066	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141067	return c
141068}
141069
141070// IfNoneMatch sets the optional parameter which makes the operation
141071// fail if the object's ETag matches the given value. This is useful for
141072// getting updates only after the object has changed since the last
141073// request. Use googleapi.IsNotModified to check whether the response
141074// error from Do is the result of In-None-Match.
141075func (c *SnapshotsGetCall) IfNoneMatch(entityTag string) *SnapshotsGetCall {
141076	c.ifNoneMatch_ = entityTag
141077	return c
141078}
141079
141080// Context sets the context to be used in this call's Do method. Any
141081// pending HTTP request will be aborted if the provided context is
141082// canceled.
141083func (c *SnapshotsGetCall) Context(ctx context.Context) *SnapshotsGetCall {
141084	c.ctx_ = ctx
141085	return c
141086}
141087
141088// Header returns an http.Header that can be modified by the caller to
141089// add HTTP headers to the request.
141090func (c *SnapshotsGetCall) Header() http.Header {
141091	if c.header_ == nil {
141092		c.header_ = make(http.Header)
141093	}
141094	return c.header_
141095}
141096
141097func (c *SnapshotsGetCall) doRequest(alt string) (*http.Response, error) {
141098	reqHeaders := make(http.Header)
141099	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
141100	for k, v := range c.header_ {
141101		reqHeaders[k] = v
141102	}
141103	reqHeaders.Set("User-Agent", c.s.userAgent())
141104	if c.ifNoneMatch_ != "" {
141105		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
141106	}
141107	var body io.Reader = nil
141108	c.urlParams_.Set("alt", alt)
141109	c.urlParams_.Set("prettyPrint", "false")
141110	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{snapshot}")
141111	urls += "?" + c.urlParams_.Encode()
141112	req, err := http.NewRequest("GET", urls, body)
141113	if err != nil {
141114		return nil, err
141115	}
141116	req.Header = reqHeaders
141117	googleapi.Expand(req.URL, map[string]string{
141118		"project":  c.project,
141119		"snapshot": c.snapshot,
141120	})
141121	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141122}
141123
141124// Do executes the "compute.snapshots.get" call.
141125// Exactly one of *Snapshot or error will be non-nil. Any non-2xx status
141126// code is an error. Response headers are in either
141127// *Snapshot.ServerResponse.Header or (if a response was returned at
141128// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
141129// to check whether the returned error was because
141130// http.StatusNotModified was returned.
141131func (c *SnapshotsGetCall) Do(opts ...googleapi.CallOption) (*Snapshot, error) {
141132	gensupport.SetOptions(c.urlParams_, opts...)
141133	res, err := c.doRequest("json")
141134	if res != nil && res.StatusCode == http.StatusNotModified {
141135		if res.Body != nil {
141136			res.Body.Close()
141137		}
141138		return nil, &googleapi.Error{
141139			Code:   res.StatusCode,
141140			Header: res.Header,
141141		}
141142	}
141143	if err != nil {
141144		return nil, err
141145	}
141146	defer googleapi.CloseBody(res)
141147	if err := googleapi.CheckResponse(res); err != nil {
141148		return nil, err
141149	}
141150	ret := &Snapshot{
141151		ServerResponse: googleapi.ServerResponse{
141152			Header:         res.Header,
141153			HTTPStatusCode: res.StatusCode,
141154		},
141155	}
141156	target := &ret
141157	if err := gensupport.DecodeResponse(target, res); err != nil {
141158		return nil, err
141159	}
141160	return ret, nil
141161	// {
141162	//   "description": "Returns the specified Snapshot resource. Gets a list of available snapshots by making a list() request.",
141163	//   "httpMethod": "GET",
141164	//   "id": "compute.snapshots.get",
141165	//   "parameterOrder": [
141166	//     "project",
141167	//     "snapshot"
141168	//   ],
141169	//   "parameters": {
141170	//     "project": {
141171	//       "description": "Project ID for this request.",
141172	//       "location": "path",
141173	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141174	//       "required": true,
141175	//       "type": "string"
141176	//     },
141177	//     "snapshot": {
141178	//       "description": "Name of the Snapshot resource to return.",
141179	//       "location": "path",
141180	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
141181	//       "required": true,
141182	//       "type": "string"
141183	//     }
141184	//   },
141185	//   "path": "projects/{project}/global/snapshots/{snapshot}",
141186	//   "response": {
141187	//     "$ref": "Snapshot"
141188	//   },
141189	//   "scopes": [
141190	//     "https://www.googleapis.com/auth/cloud-platform",
141191	//     "https://www.googleapis.com/auth/compute",
141192	//     "https://www.googleapis.com/auth/compute.readonly"
141193	//   ]
141194	// }
141195
141196}
141197
141198// method id "compute.snapshots.getIamPolicy":
141199
141200type SnapshotsGetIamPolicyCall struct {
141201	s            *Service
141202	project      string
141203	resource     string
141204	urlParams_   gensupport.URLParams
141205	ifNoneMatch_ string
141206	ctx_         context.Context
141207	header_      http.Header
141208}
141209
141210// GetIamPolicy: Gets the access control policy for a resource. May be
141211// empty if no such policy or resource exists.
141212//
141213// - project: Project ID for this request.
141214// - resource: Name or id of the resource for this request.
141215func (r *SnapshotsService) GetIamPolicy(project string, resource string) *SnapshotsGetIamPolicyCall {
141216	c := &SnapshotsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141217	c.project = project
141218	c.resource = resource
141219	return c
141220}
141221
141222// OptionsRequestedPolicyVersion sets the optional parameter
141223// "optionsRequestedPolicyVersion": Requested IAM Policy version.
141224func (c *SnapshotsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *SnapshotsGetIamPolicyCall {
141225	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
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 *SnapshotsGetIamPolicyCall) Fields(s ...googleapi.Field) *SnapshotsGetIamPolicyCall {
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 *SnapshotsGetIamPolicyCall) IfNoneMatch(entityTag string) *SnapshotsGetIamPolicyCall {
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 *SnapshotsGetIamPolicyCall) Context(ctx context.Context) *SnapshotsGetIamPolicyCall {
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 *SnapshotsGetIamPolicyCall) Header() http.Header {
141258	if c.header_ == nil {
141259		c.header_ = make(http.Header)
141260	}
141261	return c.header_
141262}
141263
141264func (c *SnapshotsGetIamPolicyCall) 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}/global/snapshots/{resource}/getIamPolicy")
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		"resource": c.resource,
141287	})
141288	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141289}
141290
141291// Do executes the "compute.snapshots.getIamPolicy" call.
141292// Exactly one of *Policy or error will be non-nil. Any non-2xx status
141293// code is an error. Response headers are in either
141294// *Policy.ServerResponse.Header or (if a response was returned at all)
141295// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
141296// check whether the returned error was because http.StatusNotModified
141297// was returned.
141298func (c *SnapshotsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
141299	gensupport.SetOptions(c.urlParams_, opts...)
141300	res, err := c.doRequest("json")
141301	if res != nil && res.StatusCode == http.StatusNotModified {
141302		if res.Body != nil {
141303			res.Body.Close()
141304		}
141305		return nil, &googleapi.Error{
141306			Code:   res.StatusCode,
141307			Header: res.Header,
141308		}
141309	}
141310	if err != nil {
141311		return nil, err
141312	}
141313	defer googleapi.CloseBody(res)
141314	if err := googleapi.CheckResponse(res); err != nil {
141315		return nil, err
141316	}
141317	ret := &Policy{
141318		ServerResponse: googleapi.ServerResponse{
141319			Header:         res.Header,
141320			HTTPStatusCode: res.StatusCode,
141321		},
141322	}
141323	target := &ret
141324	if err := gensupport.DecodeResponse(target, res); err != nil {
141325		return nil, err
141326	}
141327	return ret, nil
141328	// {
141329	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
141330	//   "httpMethod": "GET",
141331	//   "id": "compute.snapshots.getIamPolicy",
141332	//   "parameterOrder": [
141333	//     "project",
141334	//     "resource"
141335	//   ],
141336	//   "parameters": {
141337	//     "optionsRequestedPolicyVersion": {
141338	//       "description": "Requested IAM Policy version.",
141339	//       "format": "int32",
141340	//       "location": "query",
141341	//       "type": "integer"
141342	//     },
141343	//     "project": {
141344	//       "description": "Project ID for this request.",
141345	//       "location": "path",
141346	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141347	//       "required": true,
141348	//       "type": "string"
141349	//     },
141350	//     "resource": {
141351	//       "description": "Name or id of the resource for this request.",
141352	//       "location": "path",
141353	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
141354	//       "required": true,
141355	//       "type": "string"
141356	//     }
141357	//   },
141358	//   "path": "projects/{project}/global/snapshots/{resource}/getIamPolicy",
141359	//   "response": {
141360	//     "$ref": "Policy"
141361	//   },
141362	//   "scopes": [
141363	//     "https://www.googleapis.com/auth/cloud-platform",
141364	//     "https://www.googleapis.com/auth/compute",
141365	//     "https://www.googleapis.com/auth/compute.readonly"
141366	//   ]
141367	// }
141368
141369}
141370
141371// method id "compute.snapshots.list":
141372
141373type SnapshotsListCall struct {
141374	s            *Service
141375	project      string
141376	urlParams_   gensupport.URLParams
141377	ifNoneMatch_ string
141378	ctx_         context.Context
141379	header_      http.Header
141380}
141381
141382// List: Retrieves the list of Snapshot resources contained within the
141383// specified project.
141384//
141385// - project: Project ID for this request.
141386// For details, see https://cloud.google.com/compute/docs/reference/latest/snapshots/list
141387func (r *SnapshotsService) List(project string) *SnapshotsListCall {
141388	c := &SnapshotsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141389	c.project = project
141390	return c
141391}
141392
141393// Filter sets the optional parameter "filter": A filter expression that
141394// filters resources listed in the response. The expression must specify
141395// the field name, a comparison operator, and the value that you want to
141396// use for filtering. The value must be a string, a number, or a
141397// boolean. The comparison operator must be either `=`, `!=`, `>`, or
141398// `<`.
141399//
141400// For example, if you are filtering Compute Engine instances, you can
141401// exclude instances named `example-instance` by specifying `name !=
141402// example-instance`.
141403//
141404// You can also filter nested fields. For example, you could specify
141405// `scheduling.automaticRestart = false` to include instances only if
141406// they are not scheduled for automatic restarts. You can use filtering
141407// on nested fields to filter based on resource labels.
141408//
141409// To filter on multiple expressions, provide each separate expression
141410// within parentheses. For example: ``` (scheduling.automaticRestart =
141411// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
141412// is an `AND` expression. However, you can include `AND` and `OR`
141413// expressions explicitly. For example: ``` (cpuPlatform = "Intel
141414// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
141415// (scheduling.automaticRestart = true) ```
141416func (c *SnapshotsListCall) Filter(filter string) *SnapshotsListCall {
141417	c.urlParams_.Set("filter", filter)
141418	return c
141419}
141420
141421// MaxResults sets the optional parameter "maxResults": The maximum
141422// number of results per page that should be returned. If the number of
141423// available results is larger than `maxResults`, Compute Engine returns
141424// a `nextPageToken` that can be used to get the next page of results in
141425// subsequent list requests. Acceptable values are `0` to `500`,
141426// inclusive. (Default: `500`)
141427func (c *SnapshotsListCall) MaxResults(maxResults int64) *SnapshotsListCall {
141428	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
141429	return c
141430}
141431
141432// OrderBy sets the optional parameter "orderBy": Sorts list results by
141433// a certain order. By default, results are returned in alphanumerical
141434// order based on the resource name.
141435//
141436// You can also sort results in descending order based on the creation
141437// timestamp using `orderBy="creationTimestamp desc". This sorts
141438// results based on the `creationTimestamp` field in reverse
141439// chronological order (newest result first). Use this to sort resources
141440// like operations so that the newest operation is returned
141441// first.
141442//
141443// Currently, only sorting by `name` or `creationTimestamp desc` is
141444// supported.
141445func (c *SnapshotsListCall) OrderBy(orderBy string) *SnapshotsListCall {
141446	c.urlParams_.Set("orderBy", orderBy)
141447	return c
141448}
141449
141450// PageToken sets the optional parameter "pageToken": Specifies a page
141451// token to use. Set `pageToken` to the `nextPageToken` returned by a
141452// previous list request to get the next page of results.
141453func (c *SnapshotsListCall) PageToken(pageToken string) *SnapshotsListCall {
141454	c.urlParams_.Set("pageToken", pageToken)
141455	return c
141456}
141457
141458// ReturnPartialSuccess sets the optional parameter
141459// "returnPartialSuccess": Opt-in for partial success behavior which
141460// provides partial results in case of failure. The default value is
141461// false.
141462func (c *SnapshotsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SnapshotsListCall {
141463	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
141464	return c
141465}
141466
141467// Fields allows partial responses to be retrieved. See
141468// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141469// for more information.
141470func (c *SnapshotsListCall) Fields(s ...googleapi.Field) *SnapshotsListCall {
141471	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141472	return c
141473}
141474
141475// IfNoneMatch sets the optional parameter which makes the operation
141476// fail if the object's ETag matches the given value. This is useful for
141477// getting updates only after the object has changed since the last
141478// request. Use googleapi.IsNotModified to check whether the response
141479// error from Do is the result of In-None-Match.
141480func (c *SnapshotsListCall) IfNoneMatch(entityTag string) *SnapshotsListCall {
141481	c.ifNoneMatch_ = entityTag
141482	return c
141483}
141484
141485// Context sets the context to be used in this call's Do method. Any
141486// pending HTTP request will be aborted if the provided context is
141487// canceled.
141488func (c *SnapshotsListCall) Context(ctx context.Context) *SnapshotsListCall {
141489	c.ctx_ = ctx
141490	return c
141491}
141492
141493// Header returns an http.Header that can be modified by the caller to
141494// add HTTP headers to the request.
141495func (c *SnapshotsListCall) Header() http.Header {
141496	if c.header_ == nil {
141497		c.header_ = make(http.Header)
141498	}
141499	return c.header_
141500}
141501
141502func (c *SnapshotsListCall) doRequest(alt string) (*http.Response, error) {
141503	reqHeaders := make(http.Header)
141504	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
141505	for k, v := range c.header_ {
141506		reqHeaders[k] = v
141507	}
141508	reqHeaders.Set("User-Agent", c.s.userAgent())
141509	if c.ifNoneMatch_ != "" {
141510		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
141511	}
141512	var body io.Reader = nil
141513	c.urlParams_.Set("alt", alt)
141514	c.urlParams_.Set("prettyPrint", "false")
141515	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots")
141516	urls += "?" + c.urlParams_.Encode()
141517	req, err := http.NewRequest("GET", urls, body)
141518	if err != nil {
141519		return nil, err
141520	}
141521	req.Header = reqHeaders
141522	googleapi.Expand(req.URL, map[string]string{
141523		"project": c.project,
141524	})
141525	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141526}
141527
141528// Do executes the "compute.snapshots.list" call.
141529// Exactly one of *SnapshotList or error will be non-nil. Any non-2xx
141530// status code is an error. Response headers are in either
141531// *SnapshotList.ServerResponse.Header or (if a response was returned at
141532// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
141533// to check whether the returned error was because
141534// http.StatusNotModified was returned.
141535func (c *SnapshotsListCall) Do(opts ...googleapi.CallOption) (*SnapshotList, error) {
141536	gensupport.SetOptions(c.urlParams_, opts...)
141537	res, err := c.doRequest("json")
141538	if res != nil && res.StatusCode == http.StatusNotModified {
141539		if res.Body != nil {
141540			res.Body.Close()
141541		}
141542		return nil, &googleapi.Error{
141543			Code:   res.StatusCode,
141544			Header: res.Header,
141545		}
141546	}
141547	if err != nil {
141548		return nil, err
141549	}
141550	defer googleapi.CloseBody(res)
141551	if err := googleapi.CheckResponse(res); err != nil {
141552		return nil, err
141553	}
141554	ret := &SnapshotList{
141555		ServerResponse: googleapi.ServerResponse{
141556			Header:         res.Header,
141557			HTTPStatusCode: res.StatusCode,
141558		},
141559	}
141560	target := &ret
141561	if err := gensupport.DecodeResponse(target, res); err != nil {
141562		return nil, err
141563	}
141564	return ret, nil
141565	// {
141566	//   "description": "Retrieves the list of Snapshot resources contained within the specified project.",
141567	//   "httpMethod": "GET",
141568	//   "id": "compute.snapshots.list",
141569	//   "parameterOrder": [
141570	//     "project"
141571	//   ],
141572	//   "parameters": {
141573	//     "filter": {
141574	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
141575	//       "location": "query",
141576	//       "type": "string"
141577	//     },
141578	//     "maxResults": {
141579	//       "default": "500",
141580	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
141581	//       "format": "uint32",
141582	//       "location": "query",
141583	//       "minimum": "0",
141584	//       "type": "integer"
141585	//     },
141586	//     "orderBy": {
141587	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
141588	//       "location": "query",
141589	//       "type": "string"
141590	//     },
141591	//     "pageToken": {
141592	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
141593	//       "location": "query",
141594	//       "type": "string"
141595	//     },
141596	//     "project": {
141597	//       "description": "Project ID for this request.",
141598	//       "location": "path",
141599	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141600	//       "required": true,
141601	//       "type": "string"
141602	//     },
141603	//     "returnPartialSuccess": {
141604	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
141605	//       "location": "query",
141606	//       "type": "boolean"
141607	//     }
141608	//   },
141609	//   "path": "projects/{project}/global/snapshots",
141610	//   "response": {
141611	//     "$ref": "SnapshotList"
141612	//   },
141613	//   "scopes": [
141614	//     "https://www.googleapis.com/auth/cloud-platform",
141615	//     "https://www.googleapis.com/auth/compute",
141616	//     "https://www.googleapis.com/auth/compute.readonly"
141617	//   ]
141618	// }
141619
141620}
141621
141622// Pages invokes f for each page of results.
141623// A non-nil error returned from f will halt the iteration.
141624// The provided context supersedes any context provided to the Context method.
141625func (c *SnapshotsListCall) Pages(ctx context.Context, f func(*SnapshotList) error) error {
141626	c.ctx_ = ctx
141627	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
141628	for {
141629		x, err := c.Do()
141630		if err != nil {
141631			return err
141632		}
141633		if err := f(x); err != nil {
141634			return err
141635		}
141636		if x.NextPageToken == "" {
141637			return nil
141638		}
141639		c.PageToken(x.NextPageToken)
141640	}
141641}
141642
141643// method id "compute.snapshots.setIamPolicy":
141644
141645type SnapshotsSetIamPolicyCall struct {
141646	s                      *Service
141647	project                string
141648	resource               string
141649	globalsetpolicyrequest *GlobalSetPolicyRequest
141650	urlParams_             gensupport.URLParams
141651	ctx_                   context.Context
141652	header_                http.Header
141653}
141654
141655// SetIamPolicy: Sets the access control policy on the specified
141656// resource. Replaces any existing policy.
141657//
141658// - project: Project ID for this request.
141659// - resource: Name or id of the resource for this request.
141660func (r *SnapshotsService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *SnapshotsSetIamPolicyCall {
141661	c := &SnapshotsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141662	c.project = project
141663	c.resource = resource
141664	c.globalsetpolicyrequest = globalsetpolicyrequest
141665	return c
141666}
141667
141668// Fields allows partial responses to be retrieved. See
141669// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141670// for more information.
141671func (c *SnapshotsSetIamPolicyCall) Fields(s ...googleapi.Field) *SnapshotsSetIamPolicyCall {
141672	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141673	return c
141674}
141675
141676// Context sets the context to be used in this call's Do method. Any
141677// pending HTTP request will be aborted if the provided context is
141678// canceled.
141679func (c *SnapshotsSetIamPolicyCall) Context(ctx context.Context) *SnapshotsSetIamPolicyCall {
141680	c.ctx_ = ctx
141681	return c
141682}
141683
141684// Header returns an http.Header that can be modified by the caller to
141685// add HTTP headers to the request.
141686func (c *SnapshotsSetIamPolicyCall) Header() http.Header {
141687	if c.header_ == nil {
141688		c.header_ = make(http.Header)
141689	}
141690	return c.header_
141691}
141692
141693func (c *SnapshotsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
141694	reqHeaders := make(http.Header)
141695	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
141696	for k, v := range c.header_ {
141697		reqHeaders[k] = v
141698	}
141699	reqHeaders.Set("User-Agent", c.s.userAgent())
141700	var body io.Reader = nil
141701	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
141702	if err != nil {
141703		return nil, err
141704	}
141705	reqHeaders.Set("Content-Type", "application/json")
141706	c.urlParams_.Set("alt", alt)
141707	c.urlParams_.Set("prettyPrint", "false")
141708	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{resource}/setIamPolicy")
141709	urls += "?" + c.urlParams_.Encode()
141710	req, err := http.NewRequest("POST", urls, body)
141711	if err != nil {
141712		return nil, err
141713	}
141714	req.Header = reqHeaders
141715	googleapi.Expand(req.URL, map[string]string{
141716		"project":  c.project,
141717		"resource": c.resource,
141718	})
141719	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141720}
141721
141722// Do executes the "compute.snapshots.setIamPolicy" call.
141723// Exactly one of *Policy or error will be non-nil. Any non-2xx status
141724// code is an error. Response headers are in either
141725// *Policy.ServerResponse.Header or (if a response was returned at all)
141726// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
141727// check whether the returned error was because http.StatusNotModified
141728// was returned.
141729func (c *SnapshotsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
141730	gensupport.SetOptions(c.urlParams_, opts...)
141731	res, err := c.doRequest("json")
141732	if res != nil && res.StatusCode == http.StatusNotModified {
141733		if res.Body != nil {
141734			res.Body.Close()
141735		}
141736		return nil, &googleapi.Error{
141737			Code:   res.StatusCode,
141738			Header: res.Header,
141739		}
141740	}
141741	if err != nil {
141742		return nil, err
141743	}
141744	defer googleapi.CloseBody(res)
141745	if err := googleapi.CheckResponse(res); err != nil {
141746		return nil, err
141747	}
141748	ret := &Policy{
141749		ServerResponse: googleapi.ServerResponse{
141750			Header:         res.Header,
141751			HTTPStatusCode: res.StatusCode,
141752		},
141753	}
141754	target := &ret
141755	if err := gensupport.DecodeResponse(target, res); err != nil {
141756		return nil, err
141757	}
141758	return ret, nil
141759	// {
141760	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
141761	//   "httpMethod": "POST",
141762	//   "id": "compute.snapshots.setIamPolicy",
141763	//   "parameterOrder": [
141764	//     "project",
141765	//     "resource"
141766	//   ],
141767	//   "parameters": {
141768	//     "project": {
141769	//       "description": "Project ID for this request.",
141770	//       "location": "path",
141771	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141772	//       "required": true,
141773	//       "type": "string"
141774	//     },
141775	//     "resource": {
141776	//       "description": "Name or id of the resource for this request.",
141777	//       "location": "path",
141778	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
141779	//       "required": true,
141780	//       "type": "string"
141781	//     }
141782	//   },
141783	//   "path": "projects/{project}/global/snapshots/{resource}/setIamPolicy",
141784	//   "request": {
141785	//     "$ref": "GlobalSetPolicyRequest"
141786	//   },
141787	//   "response": {
141788	//     "$ref": "Policy"
141789	//   },
141790	//   "scopes": [
141791	//     "https://www.googleapis.com/auth/cloud-platform",
141792	//     "https://www.googleapis.com/auth/compute"
141793	//   ]
141794	// }
141795
141796}
141797
141798// method id "compute.snapshots.setLabels":
141799
141800type SnapshotsSetLabelsCall struct {
141801	s                      *Service
141802	project                string
141803	resource               string
141804	globalsetlabelsrequest *GlobalSetLabelsRequest
141805	urlParams_             gensupport.URLParams
141806	ctx_                   context.Context
141807	header_                http.Header
141808}
141809
141810// SetLabels: Sets the labels on a snapshot. To learn more about labels,
141811// read the Labeling Resources documentation.
141812//
141813// - project: Project ID for this request.
141814// - resource: Name or id of the resource for this request.
141815func (r *SnapshotsService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *SnapshotsSetLabelsCall {
141816	c := &SnapshotsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141817	c.project = project
141818	c.resource = resource
141819	c.globalsetlabelsrequest = globalsetlabelsrequest
141820	return c
141821}
141822
141823// Fields allows partial responses to be retrieved. See
141824// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141825// for more information.
141826func (c *SnapshotsSetLabelsCall) Fields(s ...googleapi.Field) *SnapshotsSetLabelsCall {
141827	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141828	return c
141829}
141830
141831// Context sets the context to be used in this call's Do method. Any
141832// pending HTTP request will be aborted if the provided context is
141833// canceled.
141834func (c *SnapshotsSetLabelsCall) Context(ctx context.Context) *SnapshotsSetLabelsCall {
141835	c.ctx_ = ctx
141836	return c
141837}
141838
141839// Header returns an http.Header that can be modified by the caller to
141840// add HTTP headers to the request.
141841func (c *SnapshotsSetLabelsCall) Header() http.Header {
141842	if c.header_ == nil {
141843		c.header_ = make(http.Header)
141844	}
141845	return c.header_
141846}
141847
141848func (c *SnapshotsSetLabelsCall) doRequest(alt string) (*http.Response, error) {
141849	reqHeaders := make(http.Header)
141850	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
141851	for k, v := range c.header_ {
141852		reqHeaders[k] = v
141853	}
141854	reqHeaders.Set("User-Agent", c.s.userAgent())
141855	var body io.Reader = nil
141856	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
141857	if err != nil {
141858		return nil, err
141859	}
141860	reqHeaders.Set("Content-Type", "application/json")
141861	c.urlParams_.Set("alt", alt)
141862	c.urlParams_.Set("prettyPrint", "false")
141863	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{resource}/setLabels")
141864	urls += "?" + c.urlParams_.Encode()
141865	req, err := http.NewRequest("POST", urls, body)
141866	if err != nil {
141867		return nil, err
141868	}
141869	req.Header = reqHeaders
141870	googleapi.Expand(req.URL, map[string]string{
141871		"project":  c.project,
141872		"resource": c.resource,
141873	})
141874	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141875}
141876
141877// Do executes the "compute.snapshots.setLabels" call.
141878// Exactly one of *Operation or error will be non-nil. Any non-2xx
141879// status code is an error. Response headers are in either
141880// *Operation.ServerResponse.Header or (if a response was returned at
141881// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
141882// to check whether the returned error was because
141883// http.StatusNotModified was returned.
141884func (c *SnapshotsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
141885	gensupport.SetOptions(c.urlParams_, opts...)
141886	res, err := c.doRequest("json")
141887	if res != nil && res.StatusCode == http.StatusNotModified {
141888		if res.Body != nil {
141889			res.Body.Close()
141890		}
141891		return nil, &googleapi.Error{
141892			Code:   res.StatusCode,
141893			Header: res.Header,
141894		}
141895	}
141896	if err != nil {
141897		return nil, err
141898	}
141899	defer googleapi.CloseBody(res)
141900	if err := googleapi.CheckResponse(res); err != nil {
141901		return nil, err
141902	}
141903	ret := &Operation{
141904		ServerResponse: googleapi.ServerResponse{
141905			Header:         res.Header,
141906			HTTPStatusCode: res.StatusCode,
141907		},
141908	}
141909	target := &ret
141910	if err := gensupport.DecodeResponse(target, res); err != nil {
141911		return nil, err
141912	}
141913	return ret, nil
141914	// {
141915	//   "description": "Sets the labels on a snapshot. To learn more about labels, read the Labeling Resources documentation.",
141916	//   "httpMethod": "POST",
141917	//   "id": "compute.snapshots.setLabels",
141918	//   "parameterOrder": [
141919	//     "project",
141920	//     "resource"
141921	//   ],
141922	//   "parameters": {
141923	//     "project": {
141924	//       "description": "Project ID for this request.",
141925	//       "location": "path",
141926	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141927	//       "required": true,
141928	//       "type": "string"
141929	//     },
141930	//     "resource": {
141931	//       "description": "Name or id of the resource for this request.",
141932	//       "location": "path",
141933	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
141934	//       "required": true,
141935	//       "type": "string"
141936	//     }
141937	//   },
141938	//   "path": "projects/{project}/global/snapshots/{resource}/setLabels",
141939	//   "request": {
141940	//     "$ref": "GlobalSetLabelsRequest"
141941	//   },
141942	//   "response": {
141943	//     "$ref": "Operation"
141944	//   },
141945	//   "scopes": [
141946	//     "https://www.googleapis.com/auth/cloud-platform",
141947	//     "https://www.googleapis.com/auth/compute"
141948	//   ]
141949	// }
141950
141951}
141952
141953// method id "compute.snapshots.testIamPermissions":
141954
141955type SnapshotsTestIamPermissionsCall struct {
141956	s                      *Service
141957	project                string
141958	resource               string
141959	testpermissionsrequest *TestPermissionsRequest
141960	urlParams_             gensupport.URLParams
141961	ctx_                   context.Context
141962	header_                http.Header
141963}
141964
141965// TestIamPermissions: Returns permissions that a caller has on the
141966// specified resource.
141967//
141968// - project: Project ID for this request.
141969// - resource: Name or id of the resource for this request.
141970func (r *SnapshotsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *SnapshotsTestIamPermissionsCall {
141971	c := &SnapshotsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141972	c.project = project
141973	c.resource = resource
141974	c.testpermissionsrequest = testpermissionsrequest
141975	return c
141976}
141977
141978// Fields allows partial responses to be retrieved. See
141979// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141980// for more information.
141981func (c *SnapshotsTestIamPermissionsCall) Fields(s ...googleapi.Field) *SnapshotsTestIamPermissionsCall {
141982	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141983	return c
141984}
141985
141986// Context sets the context to be used in this call's Do method. Any
141987// pending HTTP request will be aborted if the provided context is
141988// canceled.
141989func (c *SnapshotsTestIamPermissionsCall) Context(ctx context.Context) *SnapshotsTestIamPermissionsCall {
141990	c.ctx_ = ctx
141991	return c
141992}
141993
141994// Header returns an http.Header that can be modified by the caller to
141995// add HTTP headers to the request.
141996func (c *SnapshotsTestIamPermissionsCall) Header() http.Header {
141997	if c.header_ == nil {
141998		c.header_ = make(http.Header)
141999	}
142000	return c.header_
142001}
142002
142003func (c *SnapshotsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
142004	reqHeaders := make(http.Header)
142005	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
142006	for k, v := range c.header_ {
142007		reqHeaders[k] = v
142008	}
142009	reqHeaders.Set("User-Agent", c.s.userAgent())
142010	var body io.Reader = nil
142011	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
142012	if err != nil {
142013		return nil, err
142014	}
142015	reqHeaders.Set("Content-Type", "application/json")
142016	c.urlParams_.Set("alt", alt)
142017	c.urlParams_.Set("prettyPrint", "false")
142018	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/snapshots/{resource}/testIamPermissions")
142019	urls += "?" + c.urlParams_.Encode()
142020	req, err := http.NewRequest("POST", urls, body)
142021	if err != nil {
142022		return nil, err
142023	}
142024	req.Header = reqHeaders
142025	googleapi.Expand(req.URL, map[string]string{
142026		"project":  c.project,
142027		"resource": c.resource,
142028	})
142029	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142030}
142031
142032// Do executes the "compute.snapshots.testIamPermissions" call.
142033// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
142034// non-2xx status code is an error. Response headers are in either
142035// *TestPermissionsResponse.ServerResponse.Header or (if a response was
142036// returned at all) in error.(*googleapi.Error).Header. Use
142037// googleapi.IsNotModified to check whether the returned error was
142038// because http.StatusNotModified was returned.
142039func (c *SnapshotsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
142040	gensupport.SetOptions(c.urlParams_, opts...)
142041	res, err := c.doRequest("json")
142042	if res != nil && res.StatusCode == http.StatusNotModified {
142043		if res.Body != nil {
142044			res.Body.Close()
142045		}
142046		return nil, &googleapi.Error{
142047			Code:   res.StatusCode,
142048			Header: res.Header,
142049		}
142050	}
142051	if err != nil {
142052		return nil, err
142053	}
142054	defer googleapi.CloseBody(res)
142055	if err := googleapi.CheckResponse(res); err != nil {
142056		return nil, err
142057	}
142058	ret := &TestPermissionsResponse{
142059		ServerResponse: googleapi.ServerResponse{
142060			Header:         res.Header,
142061			HTTPStatusCode: res.StatusCode,
142062		},
142063	}
142064	target := &ret
142065	if err := gensupport.DecodeResponse(target, res); err != nil {
142066		return nil, err
142067	}
142068	return ret, nil
142069	// {
142070	//   "description": "Returns permissions that a caller has on the specified resource.",
142071	//   "httpMethod": "POST",
142072	//   "id": "compute.snapshots.testIamPermissions",
142073	//   "parameterOrder": [
142074	//     "project",
142075	//     "resource"
142076	//   ],
142077	//   "parameters": {
142078	//     "project": {
142079	//       "description": "Project ID for this request.",
142080	//       "location": "path",
142081	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142082	//       "required": true,
142083	//       "type": "string"
142084	//     },
142085	//     "resource": {
142086	//       "description": "Name or id of the resource for this request.",
142087	//       "location": "path",
142088	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
142089	//       "required": true,
142090	//       "type": "string"
142091	//     }
142092	//   },
142093	//   "path": "projects/{project}/global/snapshots/{resource}/testIamPermissions",
142094	//   "request": {
142095	//     "$ref": "TestPermissionsRequest"
142096	//   },
142097	//   "response": {
142098	//     "$ref": "TestPermissionsResponse"
142099	//   },
142100	//   "scopes": [
142101	//     "https://www.googleapis.com/auth/cloud-platform",
142102	//     "https://www.googleapis.com/auth/compute",
142103	//     "https://www.googleapis.com/auth/compute.readonly"
142104	//   ]
142105	// }
142106
142107}
142108
142109// method id "compute.sslCertificates.aggregatedList":
142110
142111type SslCertificatesAggregatedListCall struct {
142112	s            *Service
142113	project      string
142114	urlParams_   gensupport.URLParams
142115	ifNoneMatch_ string
142116	ctx_         context.Context
142117	header_      http.Header
142118}
142119
142120// AggregatedList: Retrieves the list of all SslCertificate resources,
142121// regional and global, available to the specified project.
142122//
142123// - project: Name of the project scoping this request.
142124func (r *SslCertificatesService) AggregatedList(project string) *SslCertificatesAggregatedListCall {
142125	c := &SslCertificatesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142126	c.project = project
142127	return c
142128}
142129
142130// Filter sets the optional parameter "filter": A filter expression that
142131// filters resources listed in the response. The expression must specify
142132// the field name, a comparison operator, and the value that you want to
142133// use for filtering. The value must be a string, a number, or a
142134// boolean. The comparison operator must be either `=`, `!=`, `>`, or
142135// `<`.
142136//
142137// For example, if you are filtering Compute Engine instances, you can
142138// exclude instances named `example-instance` by specifying `name !=
142139// example-instance`.
142140//
142141// You can also filter nested fields. For example, you could specify
142142// `scheduling.automaticRestart = false` to include instances only if
142143// they are not scheduled for automatic restarts. You can use filtering
142144// on nested fields to filter based on resource labels.
142145//
142146// To filter on multiple expressions, provide each separate expression
142147// within parentheses. For example: ``` (scheduling.automaticRestart =
142148// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
142149// is an `AND` expression. However, you can include `AND` and `OR`
142150// expressions explicitly. For example: ``` (cpuPlatform = "Intel
142151// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
142152// (scheduling.automaticRestart = true) ```
142153func (c *SslCertificatesAggregatedListCall) Filter(filter string) *SslCertificatesAggregatedListCall {
142154	c.urlParams_.Set("filter", filter)
142155	return c
142156}
142157
142158// IncludeAllScopes sets the optional parameter "includeAllScopes":
142159// Indicates whether every visible scope for each scope type (zone,
142160// region, global) should be included in the response. For new resource
142161// types added after this field, the flag has no effect as new resource
142162// types will always include every visible scope for each scope type in
142163// response. For resource types which predate this field, if this flag
142164// is omitted or false, only scopes of the scope types where the
142165// resource type is expected to be found will be included.
142166func (c *SslCertificatesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *SslCertificatesAggregatedListCall {
142167	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
142168	return c
142169}
142170
142171// MaxResults sets the optional parameter "maxResults": The maximum
142172// number of results per page that should be returned. If the number of
142173// available results is larger than `maxResults`, Compute Engine returns
142174// a `nextPageToken` that can be used to get the next page of results in
142175// subsequent list requests. Acceptable values are `0` to `500`,
142176// inclusive. (Default: `500`)
142177func (c *SslCertificatesAggregatedListCall) MaxResults(maxResults int64) *SslCertificatesAggregatedListCall {
142178	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
142179	return c
142180}
142181
142182// OrderBy sets the optional parameter "orderBy": Sorts list results by
142183// a certain order. By default, results are returned in alphanumerical
142184// order based on the resource name.
142185//
142186// You can also sort results in descending order based on the creation
142187// timestamp using `orderBy="creationTimestamp desc". This sorts
142188// results based on the `creationTimestamp` field in reverse
142189// chronological order (newest result first). Use this to sort resources
142190// like operations so that the newest operation is returned
142191// first.
142192//
142193// Currently, only sorting by `name` or `creationTimestamp desc` is
142194// supported.
142195func (c *SslCertificatesAggregatedListCall) OrderBy(orderBy string) *SslCertificatesAggregatedListCall {
142196	c.urlParams_.Set("orderBy", orderBy)
142197	return c
142198}
142199
142200// PageToken sets the optional parameter "pageToken": Specifies a page
142201// token to use. Set `pageToken` to the `nextPageToken` returned by a
142202// previous list request to get the next page of results.
142203func (c *SslCertificatesAggregatedListCall) PageToken(pageToken string) *SslCertificatesAggregatedListCall {
142204	c.urlParams_.Set("pageToken", pageToken)
142205	return c
142206}
142207
142208// ReturnPartialSuccess sets the optional parameter
142209// "returnPartialSuccess": Opt-in for partial success behavior which
142210// provides partial results in case of failure. The default value is
142211// false.
142212func (c *SslCertificatesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SslCertificatesAggregatedListCall {
142213	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
142214	return c
142215}
142216
142217// Fields allows partial responses to be retrieved. See
142218// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142219// for more information.
142220func (c *SslCertificatesAggregatedListCall) Fields(s ...googleapi.Field) *SslCertificatesAggregatedListCall {
142221	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142222	return c
142223}
142224
142225// IfNoneMatch sets the optional parameter which makes the operation
142226// fail if the object's ETag matches the given value. This is useful for
142227// getting updates only after the object has changed since the last
142228// request. Use googleapi.IsNotModified to check whether the response
142229// error from Do is the result of In-None-Match.
142230func (c *SslCertificatesAggregatedListCall) IfNoneMatch(entityTag string) *SslCertificatesAggregatedListCall {
142231	c.ifNoneMatch_ = entityTag
142232	return c
142233}
142234
142235// Context sets the context to be used in this call's Do method. Any
142236// pending HTTP request will be aborted if the provided context is
142237// canceled.
142238func (c *SslCertificatesAggregatedListCall) Context(ctx context.Context) *SslCertificatesAggregatedListCall {
142239	c.ctx_ = ctx
142240	return c
142241}
142242
142243// Header returns an http.Header that can be modified by the caller to
142244// add HTTP headers to the request.
142245func (c *SslCertificatesAggregatedListCall) Header() http.Header {
142246	if c.header_ == nil {
142247		c.header_ = make(http.Header)
142248	}
142249	return c.header_
142250}
142251
142252func (c *SslCertificatesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
142253	reqHeaders := make(http.Header)
142254	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
142255	for k, v := range c.header_ {
142256		reqHeaders[k] = v
142257	}
142258	reqHeaders.Set("User-Agent", c.s.userAgent())
142259	if c.ifNoneMatch_ != "" {
142260		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
142261	}
142262	var body io.Reader = nil
142263	c.urlParams_.Set("alt", alt)
142264	c.urlParams_.Set("prettyPrint", "false")
142265	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/sslCertificates")
142266	urls += "?" + c.urlParams_.Encode()
142267	req, err := http.NewRequest("GET", urls, body)
142268	if err != nil {
142269		return nil, err
142270	}
142271	req.Header = reqHeaders
142272	googleapi.Expand(req.URL, map[string]string{
142273		"project": c.project,
142274	})
142275	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142276}
142277
142278// Do executes the "compute.sslCertificates.aggregatedList" call.
142279// Exactly one of *SslCertificateAggregatedList or error will be
142280// non-nil. Any non-2xx status code is an error. Response headers are in
142281// either *SslCertificateAggregatedList.ServerResponse.Header or (if a
142282// response was returned at all) in error.(*googleapi.Error).Header. Use
142283// googleapi.IsNotModified to check whether the returned error was
142284// because http.StatusNotModified was returned.
142285func (c *SslCertificatesAggregatedListCall) Do(opts ...googleapi.CallOption) (*SslCertificateAggregatedList, error) {
142286	gensupport.SetOptions(c.urlParams_, opts...)
142287	res, err := c.doRequest("json")
142288	if res != nil && res.StatusCode == http.StatusNotModified {
142289		if res.Body != nil {
142290			res.Body.Close()
142291		}
142292		return nil, &googleapi.Error{
142293			Code:   res.StatusCode,
142294			Header: res.Header,
142295		}
142296	}
142297	if err != nil {
142298		return nil, err
142299	}
142300	defer googleapi.CloseBody(res)
142301	if err := googleapi.CheckResponse(res); err != nil {
142302		return nil, err
142303	}
142304	ret := &SslCertificateAggregatedList{
142305		ServerResponse: googleapi.ServerResponse{
142306			Header:         res.Header,
142307			HTTPStatusCode: res.StatusCode,
142308		},
142309	}
142310	target := &ret
142311	if err := gensupport.DecodeResponse(target, res); err != nil {
142312		return nil, err
142313	}
142314	return ret, nil
142315	// {
142316	//   "description": "Retrieves the list of all SslCertificate resources, regional and global, available to the specified project.",
142317	//   "httpMethod": "GET",
142318	//   "id": "compute.sslCertificates.aggregatedList",
142319	//   "parameterOrder": [
142320	//     "project"
142321	//   ],
142322	//   "parameters": {
142323	//     "filter": {
142324	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
142325	//       "location": "query",
142326	//       "type": "string"
142327	//     },
142328	//     "includeAllScopes": {
142329	//       "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.",
142330	//       "location": "query",
142331	//       "type": "boolean"
142332	//     },
142333	//     "maxResults": {
142334	//       "default": "500",
142335	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
142336	//       "format": "uint32",
142337	//       "location": "query",
142338	//       "minimum": "0",
142339	//       "type": "integer"
142340	//     },
142341	//     "orderBy": {
142342	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
142343	//       "location": "query",
142344	//       "type": "string"
142345	//     },
142346	//     "pageToken": {
142347	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
142348	//       "location": "query",
142349	//       "type": "string"
142350	//     },
142351	//     "project": {
142352	//       "description": "Name of the project scoping this request.",
142353	//       "location": "path",
142354	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142355	//       "required": true,
142356	//       "type": "string"
142357	//     },
142358	//     "returnPartialSuccess": {
142359	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
142360	//       "location": "query",
142361	//       "type": "boolean"
142362	//     }
142363	//   },
142364	//   "path": "projects/{project}/aggregated/sslCertificates",
142365	//   "response": {
142366	//     "$ref": "SslCertificateAggregatedList"
142367	//   },
142368	//   "scopes": [
142369	//     "https://www.googleapis.com/auth/cloud-platform",
142370	//     "https://www.googleapis.com/auth/compute",
142371	//     "https://www.googleapis.com/auth/compute.readonly"
142372	//   ]
142373	// }
142374
142375}
142376
142377// Pages invokes f for each page of results.
142378// A non-nil error returned from f will halt the iteration.
142379// The provided context supersedes any context provided to the Context method.
142380func (c *SslCertificatesAggregatedListCall) Pages(ctx context.Context, f func(*SslCertificateAggregatedList) error) error {
142381	c.ctx_ = ctx
142382	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
142383	for {
142384		x, err := c.Do()
142385		if err != nil {
142386			return err
142387		}
142388		if err := f(x); err != nil {
142389			return err
142390		}
142391		if x.NextPageToken == "" {
142392			return nil
142393		}
142394		c.PageToken(x.NextPageToken)
142395	}
142396}
142397
142398// method id "compute.sslCertificates.delete":
142399
142400type SslCertificatesDeleteCall struct {
142401	s              *Service
142402	project        string
142403	sslCertificate string
142404	urlParams_     gensupport.URLParams
142405	ctx_           context.Context
142406	header_        http.Header
142407}
142408
142409// Delete: Deletes the specified SslCertificate resource.
142410//
142411// - project: Project ID for this request.
142412// - sslCertificate: Name of the SslCertificate resource to delete.
142413func (r *SslCertificatesService) Delete(project string, sslCertificate string) *SslCertificatesDeleteCall {
142414	c := &SslCertificatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142415	c.project = project
142416	c.sslCertificate = sslCertificate
142417	return c
142418}
142419
142420// RequestId sets the optional parameter "requestId": An optional
142421// request ID to identify requests. Specify a unique request ID so that
142422// if you must retry your request, the server will know to ignore the
142423// request if it has already been completed.
142424//
142425// For example, consider a situation where you make an initial request
142426// and the request times out. If you make the request again with the
142427// same request ID, the server can check if original operation with the
142428// same request ID was received, and if so, will ignore the second
142429// request. This prevents clients from accidentally creating duplicate
142430// commitments.
142431//
142432// The request ID must be a valid UUID with the exception that zero UUID
142433// is not supported (00000000-0000-0000-0000-000000000000).
142434func (c *SslCertificatesDeleteCall) RequestId(requestId string) *SslCertificatesDeleteCall {
142435	c.urlParams_.Set("requestId", requestId)
142436	return c
142437}
142438
142439// Fields allows partial responses to be retrieved. See
142440// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142441// for more information.
142442func (c *SslCertificatesDeleteCall) Fields(s ...googleapi.Field) *SslCertificatesDeleteCall {
142443	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142444	return c
142445}
142446
142447// Context sets the context to be used in this call's Do method. Any
142448// pending HTTP request will be aborted if the provided context is
142449// canceled.
142450func (c *SslCertificatesDeleteCall) Context(ctx context.Context) *SslCertificatesDeleteCall {
142451	c.ctx_ = ctx
142452	return c
142453}
142454
142455// Header returns an http.Header that can be modified by the caller to
142456// add HTTP headers to the request.
142457func (c *SslCertificatesDeleteCall) Header() http.Header {
142458	if c.header_ == nil {
142459		c.header_ = make(http.Header)
142460	}
142461	return c.header_
142462}
142463
142464func (c *SslCertificatesDeleteCall) doRequest(alt string) (*http.Response, error) {
142465	reqHeaders := make(http.Header)
142466	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
142467	for k, v := range c.header_ {
142468		reqHeaders[k] = v
142469	}
142470	reqHeaders.Set("User-Agent", c.s.userAgent())
142471	var body io.Reader = nil
142472	c.urlParams_.Set("alt", alt)
142473	c.urlParams_.Set("prettyPrint", "false")
142474	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslCertificates/{sslCertificate}")
142475	urls += "?" + c.urlParams_.Encode()
142476	req, err := http.NewRequest("DELETE", urls, body)
142477	if err != nil {
142478		return nil, err
142479	}
142480	req.Header = reqHeaders
142481	googleapi.Expand(req.URL, map[string]string{
142482		"project":        c.project,
142483		"sslCertificate": c.sslCertificate,
142484	})
142485	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142486}
142487
142488// Do executes the "compute.sslCertificates.delete" call.
142489// Exactly one of *Operation or error will be non-nil. Any non-2xx
142490// status code is an error. Response headers are in either
142491// *Operation.ServerResponse.Header or (if a response was returned at
142492// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
142493// to check whether the returned error was because
142494// http.StatusNotModified was returned.
142495func (c *SslCertificatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
142496	gensupport.SetOptions(c.urlParams_, opts...)
142497	res, err := c.doRequest("json")
142498	if res != nil && res.StatusCode == http.StatusNotModified {
142499		if res.Body != nil {
142500			res.Body.Close()
142501		}
142502		return nil, &googleapi.Error{
142503			Code:   res.StatusCode,
142504			Header: res.Header,
142505		}
142506	}
142507	if err != nil {
142508		return nil, err
142509	}
142510	defer googleapi.CloseBody(res)
142511	if err := googleapi.CheckResponse(res); err != nil {
142512		return nil, err
142513	}
142514	ret := &Operation{
142515		ServerResponse: googleapi.ServerResponse{
142516			Header:         res.Header,
142517			HTTPStatusCode: res.StatusCode,
142518		},
142519	}
142520	target := &ret
142521	if err := gensupport.DecodeResponse(target, res); err != nil {
142522		return nil, err
142523	}
142524	return ret, nil
142525	// {
142526	//   "description": "Deletes the specified SslCertificate resource.",
142527	//   "httpMethod": "DELETE",
142528	//   "id": "compute.sslCertificates.delete",
142529	//   "parameterOrder": [
142530	//     "project",
142531	//     "sslCertificate"
142532	//   ],
142533	//   "parameters": {
142534	//     "project": {
142535	//       "description": "Project ID for this request.",
142536	//       "location": "path",
142537	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142538	//       "required": true,
142539	//       "type": "string"
142540	//     },
142541	//     "requestId": {
142542	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
142543	//       "location": "query",
142544	//       "type": "string"
142545	//     },
142546	//     "sslCertificate": {
142547	//       "description": "Name of the SslCertificate resource to delete.",
142548	//       "location": "path",
142549	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
142550	//       "required": true,
142551	//       "type": "string"
142552	//     }
142553	//   },
142554	//   "path": "projects/{project}/global/sslCertificates/{sslCertificate}",
142555	//   "response": {
142556	//     "$ref": "Operation"
142557	//   },
142558	//   "scopes": [
142559	//     "https://www.googleapis.com/auth/cloud-platform",
142560	//     "https://www.googleapis.com/auth/compute"
142561	//   ]
142562	// }
142563
142564}
142565
142566// method id "compute.sslCertificates.get":
142567
142568type SslCertificatesGetCall struct {
142569	s              *Service
142570	project        string
142571	sslCertificate string
142572	urlParams_     gensupport.URLParams
142573	ifNoneMatch_   string
142574	ctx_           context.Context
142575	header_        http.Header
142576}
142577
142578// Get: Returns the specified SslCertificate resource. Gets a list of
142579// available SSL certificates by making a list() request.
142580//
142581// - project: Project ID for this request.
142582// - sslCertificate: Name of the SslCertificate resource to return.
142583func (r *SslCertificatesService) Get(project string, sslCertificate string) *SslCertificatesGetCall {
142584	c := &SslCertificatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142585	c.project = project
142586	c.sslCertificate = sslCertificate
142587	return c
142588}
142589
142590// Fields allows partial responses to be retrieved. See
142591// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142592// for more information.
142593func (c *SslCertificatesGetCall) Fields(s ...googleapi.Field) *SslCertificatesGetCall {
142594	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142595	return c
142596}
142597
142598// IfNoneMatch sets the optional parameter which makes the operation
142599// fail if the object's ETag matches the given value. This is useful for
142600// getting updates only after the object has changed since the last
142601// request. Use googleapi.IsNotModified to check whether the response
142602// error from Do is the result of In-None-Match.
142603func (c *SslCertificatesGetCall) IfNoneMatch(entityTag string) *SslCertificatesGetCall {
142604	c.ifNoneMatch_ = entityTag
142605	return c
142606}
142607
142608// Context sets the context to be used in this call's Do method. Any
142609// pending HTTP request will be aborted if the provided context is
142610// canceled.
142611func (c *SslCertificatesGetCall) Context(ctx context.Context) *SslCertificatesGetCall {
142612	c.ctx_ = ctx
142613	return c
142614}
142615
142616// Header returns an http.Header that can be modified by the caller to
142617// add HTTP headers to the request.
142618func (c *SslCertificatesGetCall) Header() http.Header {
142619	if c.header_ == nil {
142620		c.header_ = make(http.Header)
142621	}
142622	return c.header_
142623}
142624
142625func (c *SslCertificatesGetCall) doRequest(alt string) (*http.Response, error) {
142626	reqHeaders := make(http.Header)
142627	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
142628	for k, v := range c.header_ {
142629		reqHeaders[k] = v
142630	}
142631	reqHeaders.Set("User-Agent", c.s.userAgent())
142632	if c.ifNoneMatch_ != "" {
142633		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
142634	}
142635	var body io.Reader = nil
142636	c.urlParams_.Set("alt", alt)
142637	c.urlParams_.Set("prettyPrint", "false")
142638	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslCertificates/{sslCertificate}")
142639	urls += "?" + c.urlParams_.Encode()
142640	req, err := http.NewRequest("GET", urls, body)
142641	if err != nil {
142642		return nil, err
142643	}
142644	req.Header = reqHeaders
142645	googleapi.Expand(req.URL, map[string]string{
142646		"project":        c.project,
142647		"sslCertificate": c.sslCertificate,
142648	})
142649	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142650}
142651
142652// Do executes the "compute.sslCertificates.get" call.
142653// Exactly one of *SslCertificate or error will be non-nil. Any non-2xx
142654// status code is an error. Response headers are in either
142655// *SslCertificate.ServerResponse.Header or (if a response was returned
142656// at all) in error.(*googleapi.Error).Header. Use
142657// googleapi.IsNotModified to check whether the returned error was
142658// because http.StatusNotModified was returned.
142659func (c *SslCertificatesGetCall) Do(opts ...googleapi.CallOption) (*SslCertificate, error) {
142660	gensupport.SetOptions(c.urlParams_, opts...)
142661	res, err := c.doRequest("json")
142662	if res != nil && res.StatusCode == http.StatusNotModified {
142663		if res.Body != nil {
142664			res.Body.Close()
142665		}
142666		return nil, &googleapi.Error{
142667			Code:   res.StatusCode,
142668			Header: res.Header,
142669		}
142670	}
142671	if err != nil {
142672		return nil, err
142673	}
142674	defer googleapi.CloseBody(res)
142675	if err := googleapi.CheckResponse(res); err != nil {
142676		return nil, err
142677	}
142678	ret := &SslCertificate{
142679		ServerResponse: googleapi.ServerResponse{
142680			Header:         res.Header,
142681			HTTPStatusCode: res.StatusCode,
142682		},
142683	}
142684	target := &ret
142685	if err := gensupport.DecodeResponse(target, res); err != nil {
142686		return nil, err
142687	}
142688	return ret, nil
142689	// {
142690	//   "description": "Returns the specified SslCertificate resource. Gets a list of available SSL certificates by making a list() request.",
142691	//   "httpMethod": "GET",
142692	//   "id": "compute.sslCertificates.get",
142693	//   "parameterOrder": [
142694	//     "project",
142695	//     "sslCertificate"
142696	//   ],
142697	//   "parameters": {
142698	//     "project": {
142699	//       "description": "Project ID for this request.",
142700	//       "location": "path",
142701	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142702	//       "required": true,
142703	//       "type": "string"
142704	//     },
142705	//     "sslCertificate": {
142706	//       "description": "Name of the SslCertificate resource to return.",
142707	//       "location": "path",
142708	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
142709	//       "required": true,
142710	//       "type": "string"
142711	//     }
142712	//   },
142713	//   "path": "projects/{project}/global/sslCertificates/{sslCertificate}",
142714	//   "response": {
142715	//     "$ref": "SslCertificate"
142716	//   },
142717	//   "scopes": [
142718	//     "https://www.googleapis.com/auth/cloud-platform",
142719	//     "https://www.googleapis.com/auth/compute",
142720	//     "https://www.googleapis.com/auth/compute.readonly"
142721	//   ]
142722	// }
142723
142724}
142725
142726// method id "compute.sslCertificates.insert":
142727
142728type SslCertificatesInsertCall struct {
142729	s              *Service
142730	project        string
142731	sslcertificate *SslCertificate
142732	urlParams_     gensupport.URLParams
142733	ctx_           context.Context
142734	header_        http.Header
142735}
142736
142737// Insert: Creates a SslCertificate resource in the specified project
142738// using the data included in the request.
142739//
142740// - project: Project ID for this request.
142741func (r *SslCertificatesService) Insert(project string, sslcertificate *SslCertificate) *SslCertificatesInsertCall {
142742	c := &SslCertificatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142743	c.project = project
142744	c.sslcertificate = sslcertificate
142745	return c
142746}
142747
142748// RequestId sets the optional parameter "requestId": An optional
142749// request ID to identify requests. Specify a unique request ID so that
142750// if you must retry your request, the server will know to ignore the
142751// request if it has already been completed.
142752//
142753// For example, consider a situation where you make an initial request
142754// and the request times out. If you make the request again with the
142755// same request ID, the server can check if original operation with the
142756// same request ID was received, and if so, will ignore the second
142757// request. This prevents clients from accidentally creating duplicate
142758// commitments.
142759//
142760// The request ID must be a valid UUID with the exception that zero UUID
142761// is not supported (00000000-0000-0000-0000-000000000000).
142762func (c *SslCertificatesInsertCall) RequestId(requestId string) *SslCertificatesInsertCall {
142763	c.urlParams_.Set("requestId", requestId)
142764	return c
142765}
142766
142767// Fields allows partial responses to be retrieved. See
142768// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142769// for more information.
142770func (c *SslCertificatesInsertCall) Fields(s ...googleapi.Field) *SslCertificatesInsertCall {
142771	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142772	return c
142773}
142774
142775// Context sets the context to be used in this call's Do method. Any
142776// pending HTTP request will be aborted if the provided context is
142777// canceled.
142778func (c *SslCertificatesInsertCall) Context(ctx context.Context) *SslCertificatesInsertCall {
142779	c.ctx_ = ctx
142780	return c
142781}
142782
142783// Header returns an http.Header that can be modified by the caller to
142784// add HTTP headers to the request.
142785func (c *SslCertificatesInsertCall) Header() http.Header {
142786	if c.header_ == nil {
142787		c.header_ = make(http.Header)
142788	}
142789	return c.header_
142790}
142791
142792func (c *SslCertificatesInsertCall) doRequest(alt string) (*http.Response, error) {
142793	reqHeaders := make(http.Header)
142794	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
142795	for k, v := range c.header_ {
142796		reqHeaders[k] = v
142797	}
142798	reqHeaders.Set("User-Agent", c.s.userAgent())
142799	var body io.Reader = nil
142800	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslcertificate)
142801	if err != nil {
142802		return nil, err
142803	}
142804	reqHeaders.Set("Content-Type", "application/json")
142805	c.urlParams_.Set("alt", alt)
142806	c.urlParams_.Set("prettyPrint", "false")
142807	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslCertificates")
142808	urls += "?" + c.urlParams_.Encode()
142809	req, err := http.NewRequest("POST", urls, body)
142810	if err != nil {
142811		return nil, err
142812	}
142813	req.Header = reqHeaders
142814	googleapi.Expand(req.URL, map[string]string{
142815		"project": c.project,
142816	})
142817	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142818}
142819
142820// Do executes the "compute.sslCertificates.insert" call.
142821// Exactly one of *Operation or error will be non-nil. Any non-2xx
142822// status code is an error. Response headers are in either
142823// *Operation.ServerResponse.Header or (if a response was returned at
142824// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
142825// to check whether the returned error was because
142826// http.StatusNotModified was returned.
142827func (c *SslCertificatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
142828	gensupport.SetOptions(c.urlParams_, opts...)
142829	res, err := c.doRequest("json")
142830	if res != nil && res.StatusCode == http.StatusNotModified {
142831		if res.Body != nil {
142832			res.Body.Close()
142833		}
142834		return nil, &googleapi.Error{
142835			Code:   res.StatusCode,
142836			Header: res.Header,
142837		}
142838	}
142839	if err != nil {
142840		return nil, err
142841	}
142842	defer googleapi.CloseBody(res)
142843	if err := googleapi.CheckResponse(res); err != nil {
142844		return nil, err
142845	}
142846	ret := &Operation{
142847		ServerResponse: googleapi.ServerResponse{
142848			Header:         res.Header,
142849			HTTPStatusCode: res.StatusCode,
142850		},
142851	}
142852	target := &ret
142853	if err := gensupport.DecodeResponse(target, res); err != nil {
142854		return nil, err
142855	}
142856	return ret, nil
142857	// {
142858	//   "description": "Creates a SslCertificate resource in the specified project using the data included in the request.",
142859	//   "httpMethod": "POST",
142860	//   "id": "compute.sslCertificates.insert",
142861	//   "parameterOrder": [
142862	//     "project"
142863	//   ],
142864	//   "parameters": {
142865	//     "project": {
142866	//       "description": "Project ID for this request.",
142867	//       "location": "path",
142868	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142869	//       "required": true,
142870	//       "type": "string"
142871	//     },
142872	//     "requestId": {
142873	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
142874	//       "location": "query",
142875	//       "type": "string"
142876	//     }
142877	//   },
142878	//   "path": "projects/{project}/global/sslCertificates",
142879	//   "request": {
142880	//     "$ref": "SslCertificate"
142881	//   },
142882	//   "response": {
142883	//     "$ref": "Operation"
142884	//   },
142885	//   "scopes": [
142886	//     "https://www.googleapis.com/auth/cloud-platform",
142887	//     "https://www.googleapis.com/auth/compute"
142888	//   ]
142889	// }
142890
142891}
142892
142893// method id "compute.sslCertificates.list":
142894
142895type SslCertificatesListCall struct {
142896	s            *Service
142897	project      string
142898	urlParams_   gensupport.URLParams
142899	ifNoneMatch_ string
142900	ctx_         context.Context
142901	header_      http.Header
142902}
142903
142904// List: Retrieves the list of SslCertificate resources available to the
142905// specified project.
142906//
142907// - project: Project ID for this request.
142908func (r *SslCertificatesService) List(project string) *SslCertificatesListCall {
142909	c := &SslCertificatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142910	c.project = project
142911	return c
142912}
142913
142914// Filter sets the optional parameter "filter": A filter expression that
142915// filters resources listed in the response. The expression must specify
142916// the field name, a comparison operator, and the value that you want to
142917// use for filtering. The value must be a string, a number, or a
142918// boolean. The comparison operator must be either `=`, `!=`, `>`, or
142919// `<`.
142920//
142921// For example, if you are filtering Compute Engine instances, you can
142922// exclude instances named `example-instance` by specifying `name !=
142923// example-instance`.
142924//
142925// You can also filter nested fields. For example, you could specify
142926// `scheduling.automaticRestart = false` to include instances only if
142927// they are not scheduled for automatic restarts. You can use filtering
142928// on nested fields to filter based on resource labels.
142929//
142930// To filter on multiple expressions, provide each separate expression
142931// within parentheses. For example: ``` (scheduling.automaticRestart =
142932// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
142933// is an `AND` expression. However, you can include `AND` and `OR`
142934// expressions explicitly. For example: ``` (cpuPlatform = "Intel
142935// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
142936// (scheduling.automaticRestart = true) ```
142937func (c *SslCertificatesListCall) Filter(filter string) *SslCertificatesListCall {
142938	c.urlParams_.Set("filter", filter)
142939	return c
142940}
142941
142942// MaxResults sets the optional parameter "maxResults": The maximum
142943// number of results per page that should be returned. If the number of
142944// available results is larger than `maxResults`, Compute Engine returns
142945// a `nextPageToken` that can be used to get the next page of results in
142946// subsequent list requests. Acceptable values are `0` to `500`,
142947// inclusive. (Default: `500`)
142948func (c *SslCertificatesListCall) MaxResults(maxResults int64) *SslCertificatesListCall {
142949	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
142950	return c
142951}
142952
142953// OrderBy sets the optional parameter "orderBy": Sorts list results by
142954// a certain order. By default, results are returned in alphanumerical
142955// order based on the resource name.
142956//
142957// You can also sort results in descending order based on the creation
142958// timestamp using `orderBy="creationTimestamp desc". This sorts
142959// results based on the `creationTimestamp` field in reverse
142960// chronological order (newest result first). Use this to sort resources
142961// like operations so that the newest operation is returned
142962// first.
142963//
142964// Currently, only sorting by `name` or `creationTimestamp desc` is
142965// supported.
142966func (c *SslCertificatesListCall) OrderBy(orderBy string) *SslCertificatesListCall {
142967	c.urlParams_.Set("orderBy", orderBy)
142968	return c
142969}
142970
142971// PageToken sets the optional parameter "pageToken": Specifies a page
142972// token to use. Set `pageToken` to the `nextPageToken` returned by a
142973// previous list request to get the next page of results.
142974func (c *SslCertificatesListCall) PageToken(pageToken string) *SslCertificatesListCall {
142975	c.urlParams_.Set("pageToken", pageToken)
142976	return c
142977}
142978
142979// ReturnPartialSuccess sets the optional parameter
142980// "returnPartialSuccess": Opt-in for partial success behavior which
142981// provides partial results in case of failure. The default value is
142982// false.
142983func (c *SslCertificatesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SslCertificatesListCall {
142984	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
142985	return c
142986}
142987
142988// Fields allows partial responses to be retrieved. See
142989// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142990// for more information.
142991func (c *SslCertificatesListCall) Fields(s ...googleapi.Field) *SslCertificatesListCall {
142992	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142993	return c
142994}
142995
142996// IfNoneMatch sets the optional parameter which makes the operation
142997// fail if the object's ETag matches the given value. This is useful for
142998// getting updates only after the object has changed since the last
142999// request. Use googleapi.IsNotModified to check whether the response
143000// error from Do is the result of In-None-Match.
143001func (c *SslCertificatesListCall) IfNoneMatch(entityTag string) *SslCertificatesListCall {
143002	c.ifNoneMatch_ = entityTag
143003	return c
143004}
143005
143006// Context sets the context to be used in this call's Do method. Any
143007// pending HTTP request will be aborted if the provided context is
143008// canceled.
143009func (c *SslCertificatesListCall) Context(ctx context.Context) *SslCertificatesListCall {
143010	c.ctx_ = ctx
143011	return c
143012}
143013
143014// Header returns an http.Header that can be modified by the caller to
143015// add HTTP headers to the request.
143016func (c *SslCertificatesListCall) Header() http.Header {
143017	if c.header_ == nil {
143018		c.header_ = make(http.Header)
143019	}
143020	return c.header_
143021}
143022
143023func (c *SslCertificatesListCall) doRequest(alt string) (*http.Response, error) {
143024	reqHeaders := make(http.Header)
143025	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
143026	for k, v := range c.header_ {
143027		reqHeaders[k] = v
143028	}
143029	reqHeaders.Set("User-Agent", c.s.userAgent())
143030	if c.ifNoneMatch_ != "" {
143031		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
143032	}
143033	var body io.Reader = nil
143034	c.urlParams_.Set("alt", alt)
143035	c.urlParams_.Set("prettyPrint", "false")
143036	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslCertificates")
143037	urls += "?" + c.urlParams_.Encode()
143038	req, err := http.NewRequest("GET", urls, body)
143039	if err != nil {
143040		return nil, err
143041	}
143042	req.Header = reqHeaders
143043	googleapi.Expand(req.URL, map[string]string{
143044		"project": c.project,
143045	})
143046	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143047}
143048
143049// Do executes the "compute.sslCertificates.list" call.
143050// Exactly one of *SslCertificateList or error will be non-nil. Any
143051// non-2xx status code is an error. Response headers are in either
143052// *SslCertificateList.ServerResponse.Header or (if a response was
143053// returned at all) in error.(*googleapi.Error).Header. Use
143054// googleapi.IsNotModified to check whether the returned error was
143055// because http.StatusNotModified was returned.
143056func (c *SslCertificatesListCall) Do(opts ...googleapi.CallOption) (*SslCertificateList, error) {
143057	gensupport.SetOptions(c.urlParams_, opts...)
143058	res, err := c.doRequest("json")
143059	if res != nil && res.StatusCode == http.StatusNotModified {
143060		if res.Body != nil {
143061			res.Body.Close()
143062		}
143063		return nil, &googleapi.Error{
143064			Code:   res.StatusCode,
143065			Header: res.Header,
143066		}
143067	}
143068	if err != nil {
143069		return nil, err
143070	}
143071	defer googleapi.CloseBody(res)
143072	if err := googleapi.CheckResponse(res); err != nil {
143073		return nil, err
143074	}
143075	ret := &SslCertificateList{
143076		ServerResponse: googleapi.ServerResponse{
143077			Header:         res.Header,
143078			HTTPStatusCode: res.StatusCode,
143079		},
143080	}
143081	target := &ret
143082	if err := gensupport.DecodeResponse(target, res); err != nil {
143083		return nil, err
143084	}
143085	return ret, nil
143086	// {
143087	//   "description": "Retrieves the list of SslCertificate resources available to the specified project.",
143088	//   "httpMethod": "GET",
143089	//   "id": "compute.sslCertificates.list",
143090	//   "parameterOrder": [
143091	//     "project"
143092	//   ],
143093	//   "parameters": {
143094	//     "filter": {
143095	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
143096	//       "location": "query",
143097	//       "type": "string"
143098	//     },
143099	//     "maxResults": {
143100	//       "default": "500",
143101	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
143102	//       "format": "uint32",
143103	//       "location": "query",
143104	//       "minimum": "0",
143105	//       "type": "integer"
143106	//     },
143107	//     "orderBy": {
143108	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
143109	//       "location": "query",
143110	//       "type": "string"
143111	//     },
143112	//     "pageToken": {
143113	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
143114	//       "location": "query",
143115	//       "type": "string"
143116	//     },
143117	//     "project": {
143118	//       "description": "Project ID for this request.",
143119	//       "location": "path",
143120	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143121	//       "required": true,
143122	//       "type": "string"
143123	//     },
143124	//     "returnPartialSuccess": {
143125	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
143126	//       "location": "query",
143127	//       "type": "boolean"
143128	//     }
143129	//   },
143130	//   "path": "projects/{project}/global/sslCertificates",
143131	//   "response": {
143132	//     "$ref": "SslCertificateList"
143133	//   },
143134	//   "scopes": [
143135	//     "https://www.googleapis.com/auth/cloud-platform",
143136	//     "https://www.googleapis.com/auth/compute",
143137	//     "https://www.googleapis.com/auth/compute.readonly"
143138	//   ]
143139	// }
143140
143141}
143142
143143// Pages invokes f for each page of results.
143144// A non-nil error returned from f will halt the iteration.
143145// The provided context supersedes any context provided to the Context method.
143146func (c *SslCertificatesListCall) Pages(ctx context.Context, f func(*SslCertificateList) error) error {
143147	c.ctx_ = ctx
143148	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
143149	for {
143150		x, err := c.Do()
143151		if err != nil {
143152			return err
143153		}
143154		if err := f(x); err != nil {
143155			return err
143156		}
143157		if x.NextPageToken == "" {
143158			return nil
143159		}
143160		c.PageToken(x.NextPageToken)
143161	}
143162}
143163
143164// method id "compute.sslPolicies.delete":
143165
143166type SslPoliciesDeleteCall struct {
143167	s          *Service
143168	project    string
143169	sslPolicy  string
143170	urlParams_ gensupport.URLParams
143171	ctx_       context.Context
143172	header_    http.Header
143173}
143174
143175// Delete: Deletes the specified SSL policy. The SSL policy resource can
143176// be deleted only if it is not in use by any TargetHttpsProxy or
143177// TargetSslProxy resources.
143178//
143179// - project: Project ID for this request.
143180// - sslPolicy: Name of the SSL policy to delete. The name must be 1-63
143181//   characters long, and comply with RFC1035.
143182func (r *SslPoliciesService) Delete(project string, sslPolicy string) *SslPoliciesDeleteCall {
143183	c := &SslPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143184	c.project = project
143185	c.sslPolicy = sslPolicy
143186	return c
143187}
143188
143189// RequestId sets the optional parameter "requestId": An optional
143190// request ID to identify requests. Specify a unique request ID so that
143191// if you must retry your request, the server will know to ignore the
143192// request if it has already been completed.
143193//
143194// For example, consider a situation where you make an initial request
143195// and the request times out. If you make the request again with the
143196// same request ID, the server can check if original operation with the
143197// same request ID was received, and if so, will ignore the second
143198// request. This prevents clients from accidentally creating duplicate
143199// commitments.
143200//
143201// The request ID must be a valid UUID with the exception that zero UUID
143202// is not supported (00000000-0000-0000-0000-000000000000).
143203func (c *SslPoliciesDeleteCall) RequestId(requestId string) *SslPoliciesDeleteCall {
143204	c.urlParams_.Set("requestId", requestId)
143205	return c
143206}
143207
143208// Fields allows partial responses to be retrieved. See
143209// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143210// for more information.
143211func (c *SslPoliciesDeleteCall) Fields(s ...googleapi.Field) *SslPoliciesDeleteCall {
143212	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143213	return c
143214}
143215
143216// Context sets the context to be used in this call's Do method. Any
143217// pending HTTP request will be aborted if the provided context is
143218// canceled.
143219func (c *SslPoliciesDeleteCall) Context(ctx context.Context) *SslPoliciesDeleteCall {
143220	c.ctx_ = ctx
143221	return c
143222}
143223
143224// Header returns an http.Header that can be modified by the caller to
143225// add HTTP headers to the request.
143226func (c *SslPoliciesDeleteCall) Header() http.Header {
143227	if c.header_ == nil {
143228		c.header_ = make(http.Header)
143229	}
143230	return c.header_
143231}
143232
143233func (c *SslPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
143234	reqHeaders := make(http.Header)
143235	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
143236	for k, v := range c.header_ {
143237		reqHeaders[k] = v
143238	}
143239	reqHeaders.Set("User-Agent", c.s.userAgent())
143240	var body io.Reader = nil
143241	c.urlParams_.Set("alt", alt)
143242	c.urlParams_.Set("prettyPrint", "false")
143243	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies/{sslPolicy}")
143244	urls += "?" + c.urlParams_.Encode()
143245	req, err := http.NewRequest("DELETE", urls, body)
143246	if err != nil {
143247		return nil, err
143248	}
143249	req.Header = reqHeaders
143250	googleapi.Expand(req.URL, map[string]string{
143251		"project":   c.project,
143252		"sslPolicy": c.sslPolicy,
143253	})
143254	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143255}
143256
143257// Do executes the "compute.sslPolicies.delete" call.
143258// Exactly one of *Operation or error will be non-nil. Any non-2xx
143259// status code is an error. Response headers are in either
143260// *Operation.ServerResponse.Header or (if a response was returned at
143261// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
143262// to check whether the returned error was because
143263// http.StatusNotModified was returned.
143264func (c *SslPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
143265	gensupport.SetOptions(c.urlParams_, opts...)
143266	res, err := c.doRequest("json")
143267	if res != nil && res.StatusCode == http.StatusNotModified {
143268		if res.Body != nil {
143269			res.Body.Close()
143270		}
143271		return nil, &googleapi.Error{
143272			Code:   res.StatusCode,
143273			Header: res.Header,
143274		}
143275	}
143276	if err != nil {
143277		return nil, err
143278	}
143279	defer googleapi.CloseBody(res)
143280	if err := googleapi.CheckResponse(res); err != nil {
143281		return nil, err
143282	}
143283	ret := &Operation{
143284		ServerResponse: googleapi.ServerResponse{
143285			Header:         res.Header,
143286			HTTPStatusCode: res.StatusCode,
143287		},
143288	}
143289	target := &ret
143290	if err := gensupport.DecodeResponse(target, res); err != nil {
143291		return nil, err
143292	}
143293	return ret, nil
143294	// {
143295	//   "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.",
143296	//   "httpMethod": "DELETE",
143297	//   "id": "compute.sslPolicies.delete",
143298	//   "parameterOrder": [
143299	//     "project",
143300	//     "sslPolicy"
143301	//   ],
143302	//   "parameters": {
143303	//     "project": {
143304	//       "description": "Project ID for this request.",
143305	//       "location": "path",
143306	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143307	//       "required": true,
143308	//       "type": "string"
143309	//     },
143310	//     "requestId": {
143311	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
143312	//       "location": "query",
143313	//       "type": "string"
143314	//     },
143315	//     "sslPolicy": {
143316	//       "description": "Name of the SSL policy to delete. The name must be 1-63 characters long, and comply with RFC1035.",
143317	//       "location": "path",
143318	//       "required": true,
143319	//       "type": "string"
143320	//     }
143321	//   },
143322	//   "path": "projects/{project}/global/sslPolicies/{sslPolicy}",
143323	//   "response": {
143324	//     "$ref": "Operation"
143325	//   },
143326	//   "scopes": [
143327	//     "https://www.googleapis.com/auth/cloud-platform",
143328	//     "https://www.googleapis.com/auth/compute"
143329	//   ]
143330	// }
143331
143332}
143333
143334// method id "compute.sslPolicies.get":
143335
143336type SslPoliciesGetCall struct {
143337	s            *Service
143338	project      string
143339	sslPolicy    string
143340	urlParams_   gensupport.URLParams
143341	ifNoneMatch_ string
143342	ctx_         context.Context
143343	header_      http.Header
143344}
143345
143346// Get: Lists all of the ordered rules present in a single specified
143347// policy.
143348//
143349// - project: Project ID for this request.
143350// - sslPolicy: Name of the SSL policy to update. The name must be 1-63
143351//   characters long, and comply with RFC1035.
143352func (r *SslPoliciesService) Get(project string, sslPolicy string) *SslPoliciesGetCall {
143353	c := &SslPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143354	c.project = project
143355	c.sslPolicy = sslPolicy
143356	return c
143357}
143358
143359// Fields allows partial responses to be retrieved. See
143360// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143361// for more information.
143362func (c *SslPoliciesGetCall) Fields(s ...googleapi.Field) *SslPoliciesGetCall {
143363	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143364	return c
143365}
143366
143367// IfNoneMatch sets the optional parameter which makes the operation
143368// fail if the object's ETag matches the given value. This is useful for
143369// getting updates only after the object has changed since the last
143370// request. Use googleapi.IsNotModified to check whether the response
143371// error from Do is the result of In-None-Match.
143372func (c *SslPoliciesGetCall) IfNoneMatch(entityTag string) *SslPoliciesGetCall {
143373	c.ifNoneMatch_ = entityTag
143374	return c
143375}
143376
143377// Context sets the context to be used in this call's Do method. Any
143378// pending HTTP request will be aborted if the provided context is
143379// canceled.
143380func (c *SslPoliciesGetCall) Context(ctx context.Context) *SslPoliciesGetCall {
143381	c.ctx_ = ctx
143382	return c
143383}
143384
143385// Header returns an http.Header that can be modified by the caller to
143386// add HTTP headers to the request.
143387func (c *SslPoliciesGetCall) Header() http.Header {
143388	if c.header_ == nil {
143389		c.header_ = make(http.Header)
143390	}
143391	return c.header_
143392}
143393
143394func (c *SslPoliciesGetCall) doRequest(alt string) (*http.Response, error) {
143395	reqHeaders := make(http.Header)
143396	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
143397	for k, v := range c.header_ {
143398		reqHeaders[k] = v
143399	}
143400	reqHeaders.Set("User-Agent", c.s.userAgent())
143401	if c.ifNoneMatch_ != "" {
143402		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
143403	}
143404	var body io.Reader = nil
143405	c.urlParams_.Set("alt", alt)
143406	c.urlParams_.Set("prettyPrint", "false")
143407	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies/{sslPolicy}")
143408	urls += "?" + c.urlParams_.Encode()
143409	req, err := http.NewRequest("GET", urls, body)
143410	if err != nil {
143411		return nil, err
143412	}
143413	req.Header = reqHeaders
143414	googleapi.Expand(req.URL, map[string]string{
143415		"project":   c.project,
143416		"sslPolicy": c.sslPolicy,
143417	})
143418	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143419}
143420
143421// Do executes the "compute.sslPolicies.get" call.
143422// Exactly one of *SslPolicy or error will be non-nil. Any non-2xx
143423// status code is an error. Response headers are in either
143424// *SslPolicy.ServerResponse.Header or (if a response was returned at
143425// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
143426// to check whether the returned error was because
143427// http.StatusNotModified was returned.
143428func (c *SslPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SslPolicy, error) {
143429	gensupport.SetOptions(c.urlParams_, opts...)
143430	res, err := c.doRequest("json")
143431	if res != nil && res.StatusCode == http.StatusNotModified {
143432		if res.Body != nil {
143433			res.Body.Close()
143434		}
143435		return nil, &googleapi.Error{
143436			Code:   res.StatusCode,
143437			Header: res.Header,
143438		}
143439	}
143440	if err != nil {
143441		return nil, err
143442	}
143443	defer googleapi.CloseBody(res)
143444	if err := googleapi.CheckResponse(res); err != nil {
143445		return nil, err
143446	}
143447	ret := &SslPolicy{
143448		ServerResponse: googleapi.ServerResponse{
143449			Header:         res.Header,
143450			HTTPStatusCode: res.StatusCode,
143451		},
143452	}
143453	target := &ret
143454	if err := gensupport.DecodeResponse(target, res); err != nil {
143455		return nil, err
143456	}
143457	return ret, nil
143458	// {
143459	//   "description": "Lists all of the ordered rules present in a single specified policy.",
143460	//   "httpMethod": "GET",
143461	//   "id": "compute.sslPolicies.get",
143462	//   "parameterOrder": [
143463	//     "project",
143464	//     "sslPolicy"
143465	//   ],
143466	//   "parameters": {
143467	//     "project": {
143468	//       "description": "Project ID for this request.",
143469	//       "location": "path",
143470	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143471	//       "required": true,
143472	//       "type": "string"
143473	//     },
143474	//     "sslPolicy": {
143475	//       "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.",
143476	//       "location": "path",
143477	//       "required": true,
143478	//       "type": "string"
143479	//     }
143480	//   },
143481	//   "path": "projects/{project}/global/sslPolicies/{sslPolicy}",
143482	//   "response": {
143483	//     "$ref": "SslPolicy"
143484	//   },
143485	//   "scopes": [
143486	//     "https://www.googleapis.com/auth/cloud-platform",
143487	//     "https://www.googleapis.com/auth/compute",
143488	//     "https://www.googleapis.com/auth/compute.readonly"
143489	//   ]
143490	// }
143491
143492}
143493
143494// method id "compute.sslPolicies.insert":
143495
143496type SslPoliciesInsertCall struct {
143497	s          *Service
143498	project    string
143499	sslpolicy  *SslPolicy
143500	urlParams_ gensupport.URLParams
143501	ctx_       context.Context
143502	header_    http.Header
143503}
143504
143505// Insert: Returns the specified SSL policy resource. Gets a list of
143506// available SSL policies by making a list() request.
143507//
143508// - project: Project ID for this request.
143509func (r *SslPoliciesService) Insert(project string, sslpolicy *SslPolicy) *SslPoliciesInsertCall {
143510	c := &SslPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143511	c.project = project
143512	c.sslpolicy = sslpolicy
143513	return c
143514}
143515
143516// RequestId sets the optional parameter "requestId": An optional
143517// request ID to identify requests. Specify a unique request ID so that
143518// if you must retry your request, the server will know to ignore the
143519// request if it has already been completed.
143520//
143521// For example, consider a situation where you make an initial request
143522// and the request times out. If you make the request again with the
143523// same request ID, the server can check if original operation with the
143524// same request ID was received, and if so, will ignore the second
143525// request. This prevents clients from accidentally creating duplicate
143526// commitments.
143527//
143528// The request ID must be a valid UUID with the exception that zero UUID
143529// is not supported (00000000-0000-0000-0000-000000000000).
143530func (c *SslPoliciesInsertCall) RequestId(requestId string) *SslPoliciesInsertCall {
143531	c.urlParams_.Set("requestId", requestId)
143532	return c
143533}
143534
143535// Fields allows partial responses to be retrieved. See
143536// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143537// for more information.
143538func (c *SslPoliciesInsertCall) Fields(s ...googleapi.Field) *SslPoliciesInsertCall {
143539	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143540	return c
143541}
143542
143543// Context sets the context to be used in this call's Do method. Any
143544// pending HTTP request will be aborted if the provided context is
143545// canceled.
143546func (c *SslPoliciesInsertCall) Context(ctx context.Context) *SslPoliciesInsertCall {
143547	c.ctx_ = ctx
143548	return c
143549}
143550
143551// Header returns an http.Header that can be modified by the caller to
143552// add HTTP headers to the request.
143553func (c *SslPoliciesInsertCall) Header() http.Header {
143554	if c.header_ == nil {
143555		c.header_ = make(http.Header)
143556	}
143557	return c.header_
143558}
143559
143560func (c *SslPoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
143561	reqHeaders := make(http.Header)
143562	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
143563	for k, v := range c.header_ {
143564		reqHeaders[k] = v
143565	}
143566	reqHeaders.Set("User-Agent", c.s.userAgent())
143567	var body io.Reader = nil
143568	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicy)
143569	if err != nil {
143570		return nil, err
143571	}
143572	reqHeaders.Set("Content-Type", "application/json")
143573	c.urlParams_.Set("alt", alt)
143574	c.urlParams_.Set("prettyPrint", "false")
143575	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies")
143576	urls += "?" + c.urlParams_.Encode()
143577	req, err := http.NewRequest("POST", urls, body)
143578	if err != nil {
143579		return nil, err
143580	}
143581	req.Header = reqHeaders
143582	googleapi.Expand(req.URL, map[string]string{
143583		"project": c.project,
143584	})
143585	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143586}
143587
143588// Do executes the "compute.sslPolicies.insert" call.
143589// Exactly one of *Operation or error will be non-nil. Any non-2xx
143590// status code is an error. Response headers are in either
143591// *Operation.ServerResponse.Header or (if a response was returned at
143592// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
143593// to check whether the returned error was because
143594// http.StatusNotModified was returned.
143595func (c *SslPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
143596	gensupport.SetOptions(c.urlParams_, opts...)
143597	res, err := c.doRequest("json")
143598	if res != nil && res.StatusCode == http.StatusNotModified {
143599		if res.Body != nil {
143600			res.Body.Close()
143601		}
143602		return nil, &googleapi.Error{
143603			Code:   res.StatusCode,
143604			Header: res.Header,
143605		}
143606	}
143607	if err != nil {
143608		return nil, err
143609	}
143610	defer googleapi.CloseBody(res)
143611	if err := googleapi.CheckResponse(res); err != nil {
143612		return nil, err
143613	}
143614	ret := &Operation{
143615		ServerResponse: googleapi.ServerResponse{
143616			Header:         res.Header,
143617			HTTPStatusCode: res.StatusCode,
143618		},
143619	}
143620	target := &ret
143621	if err := gensupport.DecodeResponse(target, res); err != nil {
143622		return nil, err
143623	}
143624	return ret, nil
143625	// {
143626	//   "description": "Returns the specified SSL policy resource. Gets a list of available SSL policies by making a list() request.",
143627	//   "httpMethod": "POST",
143628	//   "id": "compute.sslPolicies.insert",
143629	//   "parameterOrder": [
143630	//     "project"
143631	//   ],
143632	//   "parameters": {
143633	//     "project": {
143634	//       "description": "Project ID for this request.",
143635	//       "location": "path",
143636	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143637	//       "required": true,
143638	//       "type": "string"
143639	//     },
143640	//     "requestId": {
143641	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
143642	//       "location": "query",
143643	//       "type": "string"
143644	//     }
143645	//   },
143646	//   "path": "projects/{project}/global/sslPolicies",
143647	//   "request": {
143648	//     "$ref": "SslPolicy"
143649	//   },
143650	//   "response": {
143651	//     "$ref": "Operation"
143652	//   },
143653	//   "scopes": [
143654	//     "https://www.googleapis.com/auth/cloud-platform",
143655	//     "https://www.googleapis.com/auth/compute"
143656	//   ]
143657	// }
143658
143659}
143660
143661// method id "compute.sslPolicies.list":
143662
143663type SslPoliciesListCall struct {
143664	s            *Service
143665	project      string
143666	urlParams_   gensupport.URLParams
143667	ifNoneMatch_ string
143668	ctx_         context.Context
143669	header_      http.Header
143670}
143671
143672// List: Lists all the SSL policies that have been configured for the
143673// specified project.
143674//
143675// - project: Project ID for this request.
143676func (r *SslPoliciesService) List(project string) *SslPoliciesListCall {
143677	c := &SslPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143678	c.project = project
143679	return c
143680}
143681
143682// Filter sets the optional parameter "filter": A filter expression that
143683// filters resources listed in the response. The expression must specify
143684// the field name, a comparison operator, and the value that you want to
143685// use for filtering. The value must be a string, a number, or a
143686// boolean. The comparison operator must be either `=`, `!=`, `>`, or
143687// `<`.
143688//
143689// For example, if you are filtering Compute Engine instances, you can
143690// exclude instances named `example-instance` by specifying `name !=
143691// example-instance`.
143692//
143693// You can also filter nested fields. For example, you could specify
143694// `scheduling.automaticRestart = false` to include instances only if
143695// they are not scheduled for automatic restarts. You can use filtering
143696// on nested fields to filter based on resource labels.
143697//
143698// To filter on multiple expressions, provide each separate expression
143699// within parentheses. For example: ``` (scheduling.automaticRestart =
143700// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
143701// is an `AND` expression. However, you can include `AND` and `OR`
143702// expressions explicitly. For example: ``` (cpuPlatform = "Intel
143703// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
143704// (scheduling.automaticRestart = true) ```
143705func (c *SslPoliciesListCall) Filter(filter string) *SslPoliciesListCall {
143706	c.urlParams_.Set("filter", filter)
143707	return c
143708}
143709
143710// MaxResults sets the optional parameter "maxResults": The maximum
143711// number of results per page that should be returned. If the number of
143712// available results is larger than `maxResults`, Compute Engine returns
143713// a `nextPageToken` that can be used to get the next page of results in
143714// subsequent list requests. Acceptable values are `0` to `500`,
143715// inclusive. (Default: `500`)
143716func (c *SslPoliciesListCall) MaxResults(maxResults int64) *SslPoliciesListCall {
143717	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
143718	return c
143719}
143720
143721// OrderBy sets the optional parameter "orderBy": Sorts list results by
143722// a certain order. By default, results are returned in alphanumerical
143723// order based on the resource name.
143724//
143725// You can also sort results in descending order based on the creation
143726// timestamp using `orderBy="creationTimestamp desc". This sorts
143727// results based on the `creationTimestamp` field in reverse
143728// chronological order (newest result first). Use this to sort resources
143729// like operations so that the newest operation is returned
143730// first.
143731//
143732// Currently, only sorting by `name` or `creationTimestamp desc` is
143733// supported.
143734func (c *SslPoliciesListCall) OrderBy(orderBy string) *SslPoliciesListCall {
143735	c.urlParams_.Set("orderBy", orderBy)
143736	return c
143737}
143738
143739// PageToken sets the optional parameter "pageToken": Specifies a page
143740// token to use. Set `pageToken` to the `nextPageToken` returned by a
143741// previous list request to get the next page of results.
143742func (c *SslPoliciesListCall) PageToken(pageToken string) *SslPoliciesListCall {
143743	c.urlParams_.Set("pageToken", pageToken)
143744	return c
143745}
143746
143747// ReturnPartialSuccess sets the optional parameter
143748// "returnPartialSuccess": Opt-in for partial success behavior which
143749// provides partial results in case of failure. The default value is
143750// false.
143751func (c *SslPoliciesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SslPoliciesListCall {
143752	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
143753	return c
143754}
143755
143756// Fields allows partial responses to be retrieved. See
143757// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143758// for more information.
143759func (c *SslPoliciesListCall) Fields(s ...googleapi.Field) *SslPoliciesListCall {
143760	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143761	return c
143762}
143763
143764// IfNoneMatch sets the optional parameter which makes the operation
143765// fail if the object's ETag matches the given value. This is useful for
143766// getting updates only after the object has changed since the last
143767// request. Use googleapi.IsNotModified to check whether the response
143768// error from Do is the result of In-None-Match.
143769func (c *SslPoliciesListCall) IfNoneMatch(entityTag string) *SslPoliciesListCall {
143770	c.ifNoneMatch_ = entityTag
143771	return c
143772}
143773
143774// Context sets the context to be used in this call's Do method. Any
143775// pending HTTP request will be aborted if the provided context is
143776// canceled.
143777func (c *SslPoliciesListCall) Context(ctx context.Context) *SslPoliciesListCall {
143778	c.ctx_ = ctx
143779	return c
143780}
143781
143782// Header returns an http.Header that can be modified by the caller to
143783// add HTTP headers to the request.
143784func (c *SslPoliciesListCall) Header() http.Header {
143785	if c.header_ == nil {
143786		c.header_ = make(http.Header)
143787	}
143788	return c.header_
143789}
143790
143791func (c *SslPoliciesListCall) doRequest(alt string) (*http.Response, error) {
143792	reqHeaders := make(http.Header)
143793	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
143794	for k, v := range c.header_ {
143795		reqHeaders[k] = v
143796	}
143797	reqHeaders.Set("User-Agent", c.s.userAgent())
143798	if c.ifNoneMatch_ != "" {
143799		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
143800	}
143801	var body io.Reader = nil
143802	c.urlParams_.Set("alt", alt)
143803	c.urlParams_.Set("prettyPrint", "false")
143804	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies")
143805	urls += "?" + c.urlParams_.Encode()
143806	req, err := http.NewRequest("GET", urls, body)
143807	if err != nil {
143808		return nil, err
143809	}
143810	req.Header = reqHeaders
143811	googleapi.Expand(req.URL, map[string]string{
143812		"project": c.project,
143813	})
143814	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143815}
143816
143817// Do executes the "compute.sslPolicies.list" call.
143818// Exactly one of *SslPoliciesList or error will be non-nil. Any non-2xx
143819// status code is an error. Response headers are in either
143820// *SslPoliciesList.ServerResponse.Header or (if a response was returned
143821// at all) in error.(*googleapi.Error).Header. Use
143822// googleapi.IsNotModified to check whether the returned error was
143823// because http.StatusNotModified was returned.
143824func (c *SslPoliciesListCall) Do(opts ...googleapi.CallOption) (*SslPoliciesList, error) {
143825	gensupport.SetOptions(c.urlParams_, opts...)
143826	res, err := c.doRequest("json")
143827	if res != nil && res.StatusCode == http.StatusNotModified {
143828		if res.Body != nil {
143829			res.Body.Close()
143830		}
143831		return nil, &googleapi.Error{
143832			Code:   res.StatusCode,
143833			Header: res.Header,
143834		}
143835	}
143836	if err != nil {
143837		return nil, err
143838	}
143839	defer googleapi.CloseBody(res)
143840	if err := googleapi.CheckResponse(res); err != nil {
143841		return nil, err
143842	}
143843	ret := &SslPoliciesList{
143844		ServerResponse: googleapi.ServerResponse{
143845			Header:         res.Header,
143846			HTTPStatusCode: res.StatusCode,
143847		},
143848	}
143849	target := &ret
143850	if err := gensupport.DecodeResponse(target, res); err != nil {
143851		return nil, err
143852	}
143853	return ret, nil
143854	// {
143855	//   "description": "Lists all the SSL policies that have been configured for the specified project.",
143856	//   "httpMethod": "GET",
143857	//   "id": "compute.sslPolicies.list",
143858	//   "parameterOrder": [
143859	//     "project"
143860	//   ],
143861	//   "parameters": {
143862	//     "filter": {
143863	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
143864	//       "location": "query",
143865	//       "type": "string"
143866	//     },
143867	//     "maxResults": {
143868	//       "default": "500",
143869	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
143870	//       "format": "uint32",
143871	//       "location": "query",
143872	//       "minimum": "0",
143873	//       "type": "integer"
143874	//     },
143875	//     "orderBy": {
143876	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
143877	//       "location": "query",
143878	//       "type": "string"
143879	//     },
143880	//     "pageToken": {
143881	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
143882	//       "location": "query",
143883	//       "type": "string"
143884	//     },
143885	//     "project": {
143886	//       "description": "Project ID for this request.",
143887	//       "location": "path",
143888	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143889	//       "required": true,
143890	//       "type": "string"
143891	//     },
143892	//     "returnPartialSuccess": {
143893	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
143894	//       "location": "query",
143895	//       "type": "boolean"
143896	//     }
143897	//   },
143898	//   "path": "projects/{project}/global/sslPolicies",
143899	//   "response": {
143900	//     "$ref": "SslPoliciesList"
143901	//   },
143902	//   "scopes": [
143903	//     "https://www.googleapis.com/auth/cloud-platform",
143904	//     "https://www.googleapis.com/auth/compute",
143905	//     "https://www.googleapis.com/auth/compute.readonly"
143906	//   ]
143907	// }
143908
143909}
143910
143911// Pages invokes f for each page of results.
143912// A non-nil error returned from f will halt the iteration.
143913// The provided context supersedes any context provided to the Context method.
143914func (c *SslPoliciesListCall) Pages(ctx context.Context, f func(*SslPoliciesList) error) error {
143915	c.ctx_ = ctx
143916	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
143917	for {
143918		x, err := c.Do()
143919		if err != nil {
143920			return err
143921		}
143922		if err := f(x); err != nil {
143923			return err
143924		}
143925		if x.NextPageToken == "" {
143926			return nil
143927		}
143928		c.PageToken(x.NextPageToken)
143929	}
143930}
143931
143932// method id "compute.sslPolicies.listAvailableFeatures":
143933
143934type SslPoliciesListAvailableFeaturesCall struct {
143935	s            *Service
143936	project      string
143937	urlParams_   gensupport.URLParams
143938	ifNoneMatch_ string
143939	ctx_         context.Context
143940	header_      http.Header
143941}
143942
143943// ListAvailableFeatures: Lists all features that can be specified in
143944// the SSL policy when using custom profile.
143945//
143946// - project: Project ID for this request.
143947func (r *SslPoliciesService) ListAvailableFeatures(project string) *SslPoliciesListAvailableFeaturesCall {
143948	c := &SslPoliciesListAvailableFeaturesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143949	c.project = project
143950	return c
143951}
143952
143953// Filter sets the optional parameter "filter": A filter expression that
143954// filters resources listed in the response. The expression must specify
143955// the field name, a comparison operator, and the value that you want to
143956// use for filtering. The value must be a string, a number, or a
143957// boolean. The comparison operator must be either `=`, `!=`, `>`, or
143958// `<`.
143959//
143960// For example, if you are filtering Compute Engine instances, you can
143961// exclude instances named `example-instance` by specifying `name !=
143962// example-instance`.
143963//
143964// You can also filter nested fields. For example, you could specify
143965// `scheduling.automaticRestart = false` to include instances only if
143966// they are not scheduled for automatic restarts. You can use filtering
143967// on nested fields to filter based on resource labels.
143968//
143969// To filter on multiple expressions, provide each separate expression
143970// within parentheses. For example: ``` (scheduling.automaticRestart =
143971// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
143972// is an `AND` expression. However, you can include `AND` and `OR`
143973// expressions explicitly. For example: ``` (cpuPlatform = "Intel
143974// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
143975// (scheduling.automaticRestart = true) ```
143976func (c *SslPoliciesListAvailableFeaturesCall) Filter(filter string) *SslPoliciesListAvailableFeaturesCall {
143977	c.urlParams_.Set("filter", filter)
143978	return c
143979}
143980
143981// MaxResults sets the optional parameter "maxResults": The maximum
143982// number of results per page that should be returned. If the number of
143983// available results is larger than `maxResults`, Compute Engine returns
143984// a `nextPageToken` that can be used to get the next page of results in
143985// subsequent list requests. Acceptable values are `0` to `500`,
143986// inclusive. (Default: `500`)
143987func (c *SslPoliciesListAvailableFeaturesCall) MaxResults(maxResults int64) *SslPoliciesListAvailableFeaturesCall {
143988	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
143989	return c
143990}
143991
143992// OrderBy sets the optional parameter "orderBy": Sorts list results by
143993// a certain order. By default, results are returned in alphanumerical
143994// order based on the resource name.
143995//
143996// You can also sort results in descending order based on the creation
143997// timestamp using `orderBy="creationTimestamp desc". This sorts
143998// results based on the `creationTimestamp` field in reverse
143999// chronological order (newest result first). Use this to sort resources
144000// like operations so that the newest operation is returned
144001// first.
144002//
144003// Currently, only sorting by `name` or `creationTimestamp desc` is
144004// supported.
144005func (c *SslPoliciesListAvailableFeaturesCall) OrderBy(orderBy string) *SslPoliciesListAvailableFeaturesCall {
144006	c.urlParams_.Set("orderBy", orderBy)
144007	return c
144008}
144009
144010// PageToken sets the optional parameter "pageToken": Specifies a page
144011// token to use. Set `pageToken` to the `nextPageToken` returned by a
144012// previous list request to get the next page of results.
144013func (c *SslPoliciesListAvailableFeaturesCall) PageToken(pageToken string) *SslPoliciesListAvailableFeaturesCall {
144014	c.urlParams_.Set("pageToken", pageToken)
144015	return c
144016}
144017
144018// ReturnPartialSuccess sets the optional parameter
144019// "returnPartialSuccess": Opt-in for partial success behavior which
144020// provides partial results in case of failure. The default value is
144021// false.
144022func (c *SslPoliciesListAvailableFeaturesCall) ReturnPartialSuccess(returnPartialSuccess bool) *SslPoliciesListAvailableFeaturesCall {
144023	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
144024	return c
144025}
144026
144027// Fields allows partial responses to be retrieved. See
144028// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144029// for more information.
144030func (c *SslPoliciesListAvailableFeaturesCall) Fields(s ...googleapi.Field) *SslPoliciesListAvailableFeaturesCall {
144031	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144032	return c
144033}
144034
144035// IfNoneMatch sets the optional parameter which makes the operation
144036// fail if the object's ETag matches the given value. This is useful for
144037// getting updates only after the object has changed since the last
144038// request. Use googleapi.IsNotModified to check whether the response
144039// error from Do is the result of In-None-Match.
144040func (c *SslPoliciesListAvailableFeaturesCall) IfNoneMatch(entityTag string) *SslPoliciesListAvailableFeaturesCall {
144041	c.ifNoneMatch_ = entityTag
144042	return c
144043}
144044
144045// Context sets the context to be used in this call's Do method. Any
144046// pending HTTP request will be aborted if the provided context is
144047// canceled.
144048func (c *SslPoliciesListAvailableFeaturesCall) Context(ctx context.Context) *SslPoliciesListAvailableFeaturesCall {
144049	c.ctx_ = ctx
144050	return c
144051}
144052
144053// Header returns an http.Header that can be modified by the caller to
144054// add HTTP headers to the request.
144055func (c *SslPoliciesListAvailableFeaturesCall) Header() http.Header {
144056	if c.header_ == nil {
144057		c.header_ = make(http.Header)
144058	}
144059	return c.header_
144060}
144061
144062func (c *SslPoliciesListAvailableFeaturesCall) doRequest(alt string) (*http.Response, error) {
144063	reqHeaders := make(http.Header)
144064	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
144065	for k, v := range c.header_ {
144066		reqHeaders[k] = v
144067	}
144068	reqHeaders.Set("User-Agent", c.s.userAgent())
144069	if c.ifNoneMatch_ != "" {
144070		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
144071	}
144072	var body io.Reader = nil
144073	c.urlParams_.Set("alt", alt)
144074	c.urlParams_.Set("prettyPrint", "false")
144075	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies/listAvailableFeatures")
144076	urls += "?" + c.urlParams_.Encode()
144077	req, err := http.NewRequest("GET", urls, body)
144078	if err != nil {
144079		return nil, err
144080	}
144081	req.Header = reqHeaders
144082	googleapi.Expand(req.URL, map[string]string{
144083		"project": c.project,
144084	})
144085	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144086}
144087
144088// Do executes the "compute.sslPolicies.listAvailableFeatures" call.
144089// Exactly one of *SslPoliciesListAvailableFeaturesResponse or error
144090// will be non-nil. Any non-2xx status code is an error. Response
144091// headers are in either
144092// *SslPoliciesListAvailableFeaturesResponse.ServerResponse.Header or
144093// (if a response was returned at all) in
144094// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
144095// whether the returned error was because http.StatusNotModified was
144096// returned.
144097func (c *SslPoliciesListAvailableFeaturesCall) Do(opts ...googleapi.CallOption) (*SslPoliciesListAvailableFeaturesResponse, error) {
144098	gensupport.SetOptions(c.urlParams_, opts...)
144099	res, err := c.doRequest("json")
144100	if res != nil && res.StatusCode == http.StatusNotModified {
144101		if res.Body != nil {
144102			res.Body.Close()
144103		}
144104		return nil, &googleapi.Error{
144105			Code:   res.StatusCode,
144106			Header: res.Header,
144107		}
144108	}
144109	if err != nil {
144110		return nil, err
144111	}
144112	defer googleapi.CloseBody(res)
144113	if err := googleapi.CheckResponse(res); err != nil {
144114		return nil, err
144115	}
144116	ret := &SslPoliciesListAvailableFeaturesResponse{
144117		ServerResponse: googleapi.ServerResponse{
144118			Header:         res.Header,
144119			HTTPStatusCode: res.StatusCode,
144120		},
144121	}
144122	target := &ret
144123	if err := gensupport.DecodeResponse(target, res); err != nil {
144124		return nil, err
144125	}
144126	return ret, nil
144127	// {
144128	//   "description": "Lists all features that can be specified in the SSL policy when using custom profile.",
144129	//   "httpMethod": "GET",
144130	//   "id": "compute.sslPolicies.listAvailableFeatures",
144131	//   "parameterOrder": [
144132	//     "project"
144133	//   ],
144134	//   "parameters": {
144135	//     "filter": {
144136	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
144137	//       "location": "query",
144138	//       "type": "string"
144139	//     },
144140	//     "maxResults": {
144141	//       "default": "500",
144142	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
144143	//       "format": "uint32",
144144	//       "location": "query",
144145	//       "minimum": "0",
144146	//       "type": "integer"
144147	//     },
144148	//     "orderBy": {
144149	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
144150	//       "location": "query",
144151	//       "type": "string"
144152	//     },
144153	//     "pageToken": {
144154	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
144155	//       "location": "query",
144156	//       "type": "string"
144157	//     },
144158	//     "project": {
144159	//       "description": "Project ID for this request.",
144160	//       "location": "path",
144161	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144162	//       "required": true,
144163	//       "type": "string"
144164	//     },
144165	//     "returnPartialSuccess": {
144166	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
144167	//       "location": "query",
144168	//       "type": "boolean"
144169	//     }
144170	//   },
144171	//   "path": "projects/{project}/global/sslPolicies/listAvailableFeatures",
144172	//   "response": {
144173	//     "$ref": "SslPoliciesListAvailableFeaturesResponse"
144174	//   },
144175	//   "scopes": [
144176	//     "https://www.googleapis.com/auth/cloud-platform",
144177	//     "https://www.googleapis.com/auth/compute",
144178	//     "https://www.googleapis.com/auth/compute.readonly"
144179	//   ]
144180	// }
144181
144182}
144183
144184// method id "compute.sslPolicies.patch":
144185
144186type SslPoliciesPatchCall struct {
144187	s          *Service
144188	project    string
144189	sslPolicy  string
144190	sslpolicy  *SslPolicy
144191	urlParams_ gensupport.URLParams
144192	ctx_       context.Context
144193	header_    http.Header
144194}
144195
144196// Patch: Patches the specified SSL policy with the data included in the
144197// request.
144198//
144199// - project: Project ID for this request.
144200// - sslPolicy: Name of the SSL policy to update. The name must be 1-63
144201//   characters long, and comply with RFC1035.
144202func (r *SslPoliciesService) Patch(project string, sslPolicy string, sslpolicy *SslPolicy) *SslPoliciesPatchCall {
144203	c := &SslPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144204	c.project = project
144205	c.sslPolicy = sslPolicy
144206	c.sslpolicy = sslpolicy
144207	return c
144208}
144209
144210// RequestId sets the optional parameter "requestId": An optional
144211// request ID to identify requests. Specify a unique request ID so that
144212// if you must retry your request, the server will know to ignore the
144213// request if it has already been completed.
144214//
144215// For example, consider a situation where you make an initial request
144216// and the request times out. If you make the request again with the
144217// same request ID, the server can check if original operation with the
144218// same request ID was received, and if so, will ignore the second
144219// request. This prevents clients from accidentally creating duplicate
144220// commitments.
144221//
144222// The request ID must be a valid UUID with the exception that zero UUID
144223// is not supported (00000000-0000-0000-0000-000000000000).
144224func (c *SslPoliciesPatchCall) RequestId(requestId string) *SslPoliciesPatchCall {
144225	c.urlParams_.Set("requestId", requestId)
144226	return c
144227}
144228
144229// Fields allows partial responses to be retrieved. See
144230// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144231// for more information.
144232func (c *SslPoliciesPatchCall) Fields(s ...googleapi.Field) *SslPoliciesPatchCall {
144233	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144234	return c
144235}
144236
144237// Context sets the context to be used in this call's Do method. Any
144238// pending HTTP request will be aborted if the provided context is
144239// canceled.
144240func (c *SslPoliciesPatchCall) Context(ctx context.Context) *SslPoliciesPatchCall {
144241	c.ctx_ = ctx
144242	return c
144243}
144244
144245// Header returns an http.Header that can be modified by the caller to
144246// add HTTP headers to the request.
144247func (c *SslPoliciesPatchCall) Header() http.Header {
144248	if c.header_ == nil {
144249		c.header_ = make(http.Header)
144250	}
144251	return c.header_
144252}
144253
144254func (c *SslPoliciesPatchCall) doRequest(alt string) (*http.Response, error) {
144255	reqHeaders := make(http.Header)
144256	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
144257	for k, v := range c.header_ {
144258		reqHeaders[k] = v
144259	}
144260	reqHeaders.Set("User-Agent", c.s.userAgent())
144261	var body io.Reader = nil
144262	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicy)
144263	if err != nil {
144264		return nil, err
144265	}
144266	reqHeaders.Set("Content-Type", "application/json")
144267	c.urlParams_.Set("alt", alt)
144268	c.urlParams_.Set("prettyPrint", "false")
144269	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/sslPolicies/{sslPolicy}")
144270	urls += "?" + c.urlParams_.Encode()
144271	req, err := http.NewRequest("PATCH", urls, body)
144272	if err != nil {
144273		return nil, err
144274	}
144275	req.Header = reqHeaders
144276	googleapi.Expand(req.URL, map[string]string{
144277		"project":   c.project,
144278		"sslPolicy": c.sslPolicy,
144279	})
144280	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144281}
144282
144283// Do executes the "compute.sslPolicies.patch" call.
144284// Exactly one of *Operation or error will be non-nil. Any non-2xx
144285// status code is an error. Response headers are in either
144286// *Operation.ServerResponse.Header or (if a response was returned at
144287// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
144288// to check whether the returned error was because
144289// http.StatusNotModified was returned.
144290func (c *SslPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
144291	gensupport.SetOptions(c.urlParams_, opts...)
144292	res, err := c.doRequest("json")
144293	if res != nil && res.StatusCode == http.StatusNotModified {
144294		if res.Body != nil {
144295			res.Body.Close()
144296		}
144297		return nil, &googleapi.Error{
144298			Code:   res.StatusCode,
144299			Header: res.Header,
144300		}
144301	}
144302	if err != nil {
144303		return nil, err
144304	}
144305	defer googleapi.CloseBody(res)
144306	if err := googleapi.CheckResponse(res); err != nil {
144307		return nil, err
144308	}
144309	ret := &Operation{
144310		ServerResponse: googleapi.ServerResponse{
144311			Header:         res.Header,
144312			HTTPStatusCode: res.StatusCode,
144313		},
144314	}
144315	target := &ret
144316	if err := gensupport.DecodeResponse(target, res); err != nil {
144317		return nil, err
144318	}
144319	return ret, nil
144320	// {
144321	//   "description": "Patches the specified SSL policy with the data included in the request.",
144322	//   "httpMethod": "PATCH",
144323	//   "id": "compute.sslPolicies.patch",
144324	//   "parameterOrder": [
144325	//     "project",
144326	//     "sslPolicy"
144327	//   ],
144328	//   "parameters": {
144329	//     "project": {
144330	//       "description": "Project ID for this request.",
144331	//       "location": "path",
144332	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144333	//       "required": true,
144334	//       "type": "string"
144335	//     },
144336	//     "requestId": {
144337	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
144338	//       "location": "query",
144339	//       "type": "string"
144340	//     },
144341	//     "sslPolicy": {
144342	//       "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.",
144343	//       "location": "path",
144344	//       "required": true,
144345	//       "type": "string"
144346	//     }
144347	//   },
144348	//   "path": "projects/{project}/global/sslPolicies/{sslPolicy}",
144349	//   "request": {
144350	//     "$ref": "SslPolicy"
144351	//   },
144352	//   "response": {
144353	//     "$ref": "Operation"
144354	//   },
144355	//   "scopes": [
144356	//     "https://www.googleapis.com/auth/cloud-platform",
144357	//     "https://www.googleapis.com/auth/compute"
144358	//   ]
144359	// }
144360
144361}
144362
144363// method id "compute.subnetworks.aggregatedList":
144364
144365type SubnetworksAggregatedListCall struct {
144366	s            *Service
144367	project      string
144368	urlParams_   gensupport.URLParams
144369	ifNoneMatch_ string
144370	ctx_         context.Context
144371	header_      http.Header
144372}
144373
144374// AggregatedList: Retrieves an aggregated list of subnetworks.
144375//
144376// - project: Project ID for this request.
144377func (r *SubnetworksService) AggregatedList(project string) *SubnetworksAggregatedListCall {
144378	c := &SubnetworksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144379	c.project = project
144380	return c
144381}
144382
144383// Filter sets the optional parameter "filter": A filter expression that
144384// filters resources listed in the response. The expression must specify
144385// the field name, a comparison operator, and the value that you want to
144386// use for filtering. The value must be a string, a number, or a
144387// boolean. The comparison operator must be either `=`, `!=`, `>`, or
144388// `<`.
144389//
144390// For example, if you are filtering Compute Engine instances, you can
144391// exclude instances named `example-instance` by specifying `name !=
144392// example-instance`.
144393//
144394// You can also filter nested fields. For example, you could specify
144395// `scheduling.automaticRestart = false` to include instances only if
144396// they are not scheduled for automatic restarts. You can use filtering
144397// on nested fields to filter based on resource labels.
144398//
144399// To filter on multiple expressions, provide each separate expression
144400// within parentheses. For example: ``` (scheduling.automaticRestart =
144401// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
144402// is an `AND` expression. However, you can include `AND` and `OR`
144403// expressions explicitly. For example: ``` (cpuPlatform = "Intel
144404// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
144405// (scheduling.automaticRestart = true) ```
144406func (c *SubnetworksAggregatedListCall) Filter(filter string) *SubnetworksAggregatedListCall {
144407	c.urlParams_.Set("filter", filter)
144408	return c
144409}
144410
144411// IncludeAllScopes sets the optional parameter "includeAllScopes":
144412// Indicates whether every visible scope for each scope type (zone,
144413// region, global) should be included in the response. For new resource
144414// types added after this field, the flag has no effect as new resource
144415// types will always include every visible scope for each scope type in
144416// response. For resource types which predate this field, if this flag
144417// is omitted or false, only scopes of the scope types where the
144418// resource type is expected to be found will be included.
144419func (c *SubnetworksAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *SubnetworksAggregatedListCall {
144420	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
144421	return c
144422}
144423
144424// MaxResults sets the optional parameter "maxResults": The maximum
144425// number of results per page that should be returned. If the number of
144426// available results is larger than `maxResults`, Compute Engine returns
144427// a `nextPageToken` that can be used to get the next page of results in
144428// subsequent list requests. Acceptable values are `0` to `500`,
144429// inclusive. (Default: `500`)
144430func (c *SubnetworksAggregatedListCall) MaxResults(maxResults int64) *SubnetworksAggregatedListCall {
144431	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
144432	return c
144433}
144434
144435// OrderBy sets the optional parameter "orderBy": Sorts list results by
144436// a certain order. By default, results are returned in alphanumerical
144437// order based on the resource name.
144438//
144439// You can also sort results in descending order based on the creation
144440// timestamp using `orderBy="creationTimestamp desc". This sorts
144441// results based on the `creationTimestamp` field in reverse
144442// chronological order (newest result first). Use this to sort resources
144443// like operations so that the newest operation is returned
144444// first.
144445//
144446// Currently, only sorting by `name` or `creationTimestamp desc` is
144447// supported.
144448func (c *SubnetworksAggregatedListCall) OrderBy(orderBy string) *SubnetworksAggregatedListCall {
144449	c.urlParams_.Set("orderBy", orderBy)
144450	return c
144451}
144452
144453// PageToken sets the optional parameter "pageToken": Specifies a page
144454// token to use. Set `pageToken` to the `nextPageToken` returned by a
144455// previous list request to get the next page of results.
144456func (c *SubnetworksAggregatedListCall) PageToken(pageToken string) *SubnetworksAggregatedListCall {
144457	c.urlParams_.Set("pageToken", pageToken)
144458	return c
144459}
144460
144461// ReturnPartialSuccess sets the optional parameter
144462// "returnPartialSuccess": Opt-in for partial success behavior which
144463// provides partial results in case of failure. The default value is
144464// false.
144465func (c *SubnetworksAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SubnetworksAggregatedListCall {
144466	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
144467	return c
144468}
144469
144470// Fields allows partial responses to be retrieved. See
144471// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144472// for more information.
144473func (c *SubnetworksAggregatedListCall) Fields(s ...googleapi.Field) *SubnetworksAggregatedListCall {
144474	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144475	return c
144476}
144477
144478// IfNoneMatch sets the optional parameter which makes the operation
144479// fail if the object's ETag matches the given value. This is useful for
144480// getting updates only after the object has changed since the last
144481// request. Use googleapi.IsNotModified to check whether the response
144482// error from Do is the result of In-None-Match.
144483func (c *SubnetworksAggregatedListCall) IfNoneMatch(entityTag string) *SubnetworksAggregatedListCall {
144484	c.ifNoneMatch_ = entityTag
144485	return c
144486}
144487
144488// Context sets the context to be used in this call's Do method. Any
144489// pending HTTP request will be aborted if the provided context is
144490// canceled.
144491func (c *SubnetworksAggregatedListCall) Context(ctx context.Context) *SubnetworksAggregatedListCall {
144492	c.ctx_ = ctx
144493	return c
144494}
144495
144496// Header returns an http.Header that can be modified by the caller to
144497// add HTTP headers to the request.
144498func (c *SubnetworksAggregatedListCall) Header() http.Header {
144499	if c.header_ == nil {
144500		c.header_ = make(http.Header)
144501	}
144502	return c.header_
144503}
144504
144505func (c *SubnetworksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
144506	reqHeaders := make(http.Header)
144507	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
144508	for k, v := range c.header_ {
144509		reqHeaders[k] = v
144510	}
144511	reqHeaders.Set("User-Agent", c.s.userAgent())
144512	if c.ifNoneMatch_ != "" {
144513		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
144514	}
144515	var body io.Reader = nil
144516	c.urlParams_.Set("alt", alt)
144517	c.urlParams_.Set("prettyPrint", "false")
144518	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/subnetworks")
144519	urls += "?" + c.urlParams_.Encode()
144520	req, err := http.NewRequest("GET", urls, body)
144521	if err != nil {
144522		return nil, err
144523	}
144524	req.Header = reqHeaders
144525	googleapi.Expand(req.URL, map[string]string{
144526		"project": c.project,
144527	})
144528	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144529}
144530
144531// Do executes the "compute.subnetworks.aggregatedList" call.
144532// Exactly one of *SubnetworkAggregatedList or error will be non-nil.
144533// Any non-2xx status code is an error. Response headers are in either
144534// *SubnetworkAggregatedList.ServerResponse.Header or (if a response was
144535// returned at all) in error.(*googleapi.Error).Header. Use
144536// googleapi.IsNotModified to check whether the returned error was
144537// because http.StatusNotModified was returned.
144538func (c *SubnetworksAggregatedListCall) Do(opts ...googleapi.CallOption) (*SubnetworkAggregatedList, error) {
144539	gensupport.SetOptions(c.urlParams_, opts...)
144540	res, err := c.doRequest("json")
144541	if res != nil && res.StatusCode == http.StatusNotModified {
144542		if res.Body != nil {
144543			res.Body.Close()
144544		}
144545		return nil, &googleapi.Error{
144546			Code:   res.StatusCode,
144547			Header: res.Header,
144548		}
144549	}
144550	if err != nil {
144551		return nil, err
144552	}
144553	defer googleapi.CloseBody(res)
144554	if err := googleapi.CheckResponse(res); err != nil {
144555		return nil, err
144556	}
144557	ret := &SubnetworkAggregatedList{
144558		ServerResponse: googleapi.ServerResponse{
144559			Header:         res.Header,
144560			HTTPStatusCode: res.StatusCode,
144561		},
144562	}
144563	target := &ret
144564	if err := gensupport.DecodeResponse(target, res); err != nil {
144565		return nil, err
144566	}
144567	return ret, nil
144568	// {
144569	//   "description": "Retrieves an aggregated list of subnetworks.",
144570	//   "httpMethod": "GET",
144571	//   "id": "compute.subnetworks.aggregatedList",
144572	//   "parameterOrder": [
144573	//     "project"
144574	//   ],
144575	//   "parameters": {
144576	//     "filter": {
144577	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
144578	//       "location": "query",
144579	//       "type": "string"
144580	//     },
144581	//     "includeAllScopes": {
144582	//       "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.",
144583	//       "location": "query",
144584	//       "type": "boolean"
144585	//     },
144586	//     "maxResults": {
144587	//       "default": "500",
144588	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
144589	//       "format": "uint32",
144590	//       "location": "query",
144591	//       "minimum": "0",
144592	//       "type": "integer"
144593	//     },
144594	//     "orderBy": {
144595	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
144596	//       "location": "query",
144597	//       "type": "string"
144598	//     },
144599	//     "pageToken": {
144600	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
144601	//       "location": "query",
144602	//       "type": "string"
144603	//     },
144604	//     "project": {
144605	//       "description": "Project ID for this request.",
144606	//       "location": "path",
144607	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144608	//       "required": true,
144609	//       "type": "string"
144610	//     },
144611	//     "returnPartialSuccess": {
144612	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
144613	//       "location": "query",
144614	//       "type": "boolean"
144615	//     }
144616	//   },
144617	//   "path": "projects/{project}/aggregated/subnetworks",
144618	//   "response": {
144619	//     "$ref": "SubnetworkAggregatedList"
144620	//   },
144621	//   "scopes": [
144622	//     "https://www.googleapis.com/auth/cloud-platform",
144623	//     "https://www.googleapis.com/auth/compute",
144624	//     "https://www.googleapis.com/auth/compute.readonly"
144625	//   ]
144626	// }
144627
144628}
144629
144630// Pages invokes f for each page of results.
144631// A non-nil error returned from f will halt the iteration.
144632// The provided context supersedes any context provided to the Context method.
144633func (c *SubnetworksAggregatedListCall) Pages(ctx context.Context, f func(*SubnetworkAggregatedList) error) error {
144634	c.ctx_ = ctx
144635	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
144636	for {
144637		x, err := c.Do()
144638		if err != nil {
144639			return err
144640		}
144641		if err := f(x); err != nil {
144642			return err
144643		}
144644		if x.NextPageToken == "" {
144645			return nil
144646		}
144647		c.PageToken(x.NextPageToken)
144648	}
144649}
144650
144651// method id "compute.subnetworks.delete":
144652
144653type SubnetworksDeleteCall struct {
144654	s          *Service
144655	project    string
144656	region     string
144657	subnetwork string
144658	urlParams_ gensupport.URLParams
144659	ctx_       context.Context
144660	header_    http.Header
144661}
144662
144663// Delete: Deletes the specified subnetwork.
144664//
144665// - project: Project ID for this request.
144666// - region: Name of the region scoping this request.
144667// - subnetwork: Name of the Subnetwork resource to delete.
144668func (r *SubnetworksService) Delete(project string, region string, subnetwork string) *SubnetworksDeleteCall {
144669	c := &SubnetworksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144670	c.project = project
144671	c.region = region
144672	c.subnetwork = subnetwork
144673	return c
144674}
144675
144676// RequestId sets the optional parameter "requestId": An optional
144677// request ID to identify requests. Specify a unique request ID so that
144678// if you must retry your request, the server will know to ignore the
144679// request if it has already been completed.
144680//
144681// For example, consider a situation where you make an initial request
144682// and the request times out. If you make the request again with the
144683// same request ID, the server can check if original operation with the
144684// same request ID was received, and if so, will ignore the second
144685// request. This prevents clients from accidentally creating duplicate
144686// commitments.
144687//
144688// The request ID must be a valid UUID with the exception that zero UUID
144689// is not supported (00000000-0000-0000-0000-000000000000).
144690func (c *SubnetworksDeleteCall) RequestId(requestId string) *SubnetworksDeleteCall {
144691	c.urlParams_.Set("requestId", requestId)
144692	return c
144693}
144694
144695// Fields allows partial responses to be retrieved. See
144696// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144697// for more information.
144698func (c *SubnetworksDeleteCall) Fields(s ...googleapi.Field) *SubnetworksDeleteCall {
144699	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144700	return c
144701}
144702
144703// Context sets the context to be used in this call's Do method. Any
144704// pending HTTP request will be aborted if the provided context is
144705// canceled.
144706func (c *SubnetworksDeleteCall) Context(ctx context.Context) *SubnetworksDeleteCall {
144707	c.ctx_ = ctx
144708	return c
144709}
144710
144711// Header returns an http.Header that can be modified by the caller to
144712// add HTTP headers to the request.
144713func (c *SubnetworksDeleteCall) Header() http.Header {
144714	if c.header_ == nil {
144715		c.header_ = make(http.Header)
144716	}
144717	return c.header_
144718}
144719
144720func (c *SubnetworksDeleteCall) doRequest(alt string) (*http.Response, error) {
144721	reqHeaders := make(http.Header)
144722	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
144723	for k, v := range c.header_ {
144724		reqHeaders[k] = v
144725	}
144726	reqHeaders.Set("User-Agent", c.s.userAgent())
144727	var body io.Reader = nil
144728	c.urlParams_.Set("alt", alt)
144729	c.urlParams_.Set("prettyPrint", "false")
144730	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{subnetwork}")
144731	urls += "?" + c.urlParams_.Encode()
144732	req, err := http.NewRequest("DELETE", urls, body)
144733	if err != nil {
144734		return nil, err
144735	}
144736	req.Header = reqHeaders
144737	googleapi.Expand(req.URL, map[string]string{
144738		"project":    c.project,
144739		"region":     c.region,
144740		"subnetwork": c.subnetwork,
144741	})
144742	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144743}
144744
144745// Do executes the "compute.subnetworks.delete" call.
144746// Exactly one of *Operation or error will be non-nil. Any non-2xx
144747// status code is an error. Response headers are in either
144748// *Operation.ServerResponse.Header or (if a response was returned at
144749// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
144750// to check whether the returned error was because
144751// http.StatusNotModified was returned.
144752func (c *SubnetworksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
144753	gensupport.SetOptions(c.urlParams_, opts...)
144754	res, err := c.doRequest("json")
144755	if res != nil && res.StatusCode == http.StatusNotModified {
144756		if res.Body != nil {
144757			res.Body.Close()
144758		}
144759		return nil, &googleapi.Error{
144760			Code:   res.StatusCode,
144761			Header: res.Header,
144762		}
144763	}
144764	if err != nil {
144765		return nil, err
144766	}
144767	defer googleapi.CloseBody(res)
144768	if err := googleapi.CheckResponse(res); err != nil {
144769		return nil, err
144770	}
144771	ret := &Operation{
144772		ServerResponse: googleapi.ServerResponse{
144773			Header:         res.Header,
144774			HTTPStatusCode: res.StatusCode,
144775		},
144776	}
144777	target := &ret
144778	if err := gensupport.DecodeResponse(target, res); err != nil {
144779		return nil, err
144780	}
144781	return ret, nil
144782	// {
144783	//   "description": "Deletes the specified subnetwork.",
144784	//   "httpMethod": "DELETE",
144785	//   "id": "compute.subnetworks.delete",
144786	//   "parameterOrder": [
144787	//     "project",
144788	//     "region",
144789	//     "subnetwork"
144790	//   ],
144791	//   "parameters": {
144792	//     "project": {
144793	//       "description": "Project ID for this request.",
144794	//       "location": "path",
144795	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144796	//       "required": true,
144797	//       "type": "string"
144798	//     },
144799	//     "region": {
144800	//       "description": "Name of the region scoping this request.",
144801	//       "location": "path",
144802	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144803	//       "required": true,
144804	//       "type": "string"
144805	//     },
144806	//     "requestId": {
144807	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
144808	//       "location": "query",
144809	//       "type": "string"
144810	//     },
144811	//     "subnetwork": {
144812	//       "description": "Name of the Subnetwork resource to delete.",
144813	//       "location": "path",
144814	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
144815	//       "required": true,
144816	//       "type": "string"
144817	//     }
144818	//   },
144819	//   "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}",
144820	//   "response": {
144821	//     "$ref": "Operation"
144822	//   },
144823	//   "scopes": [
144824	//     "https://www.googleapis.com/auth/cloud-platform",
144825	//     "https://www.googleapis.com/auth/compute"
144826	//   ]
144827	// }
144828
144829}
144830
144831// method id "compute.subnetworks.expandIpCidrRange":
144832
144833type SubnetworksExpandIpCidrRangeCall struct {
144834	s                                   *Service
144835	project                             string
144836	region                              string
144837	subnetwork                          string
144838	subnetworksexpandipcidrrangerequest *SubnetworksExpandIpCidrRangeRequest
144839	urlParams_                          gensupport.URLParams
144840	ctx_                                context.Context
144841	header_                             http.Header
144842}
144843
144844// ExpandIpCidrRange: Expands the IP CIDR range of the subnetwork to a
144845// specified value.
144846//
144847// - project: Project ID for this request.
144848// - region: Name of the region scoping this request.
144849// - subnetwork: Name of the Subnetwork resource to update.
144850func (r *SubnetworksService) ExpandIpCidrRange(project string, region string, subnetwork string, subnetworksexpandipcidrrangerequest *SubnetworksExpandIpCidrRangeRequest) *SubnetworksExpandIpCidrRangeCall {
144851	c := &SubnetworksExpandIpCidrRangeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144852	c.project = project
144853	c.region = region
144854	c.subnetwork = subnetwork
144855	c.subnetworksexpandipcidrrangerequest = subnetworksexpandipcidrrangerequest
144856	return c
144857}
144858
144859// RequestId sets the optional parameter "requestId": An optional
144860// request ID to identify requests. Specify a unique request ID so that
144861// if you must retry your request, the server will know to ignore the
144862// request if it has already been completed.
144863//
144864// For example, consider a situation where you make an initial request
144865// and the request times out. If you make the request again with the
144866// same request ID, the server can check if original operation with the
144867// same request ID was received, and if so, will ignore the second
144868// request. This prevents clients from accidentally creating duplicate
144869// commitments.
144870//
144871// The request ID must be a valid UUID with the exception that zero UUID
144872// is not supported (00000000-0000-0000-0000-000000000000).
144873func (c *SubnetworksExpandIpCidrRangeCall) RequestId(requestId string) *SubnetworksExpandIpCidrRangeCall {
144874	c.urlParams_.Set("requestId", requestId)
144875	return c
144876}
144877
144878// Fields allows partial responses to be retrieved. See
144879// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144880// for more information.
144881func (c *SubnetworksExpandIpCidrRangeCall) Fields(s ...googleapi.Field) *SubnetworksExpandIpCidrRangeCall {
144882	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144883	return c
144884}
144885
144886// Context sets the context to be used in this call's Do method. Any
144887// pending HTTP request will be aborted if the provided context is
144888// canceled.
144889func (c *SubnetworksExpandIpCidrRangeCall) Context(ctx context.Context) *SubnetworksExpandIpCidrRangeCall {
144890	c.ctx_ = ctx
144891	return c
144892}
144893
144894// Header returns an http.Header that can be modified by the caller to
144895// add HTTP headers to the request.
144896func (c *SubnetworksExpandIpCidrRangeCall) Header() http.Header {
144897	if c.header_ == nil {
144898		c.header_ = make(http.Header)
144899	}
144900	return c.header_
144901}
144902
144903func (c *SubnetworksExpandIpCidrRangeCall) doRequest(alt string) (*http.Response, error) {
144904	reqHeaders := make(http.Header)
144905	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
144906	for k, v := range c.header_ {
144907		reqHeaders[k] = v
144908	}
144909	reqHeaders.Set("User-Agent", c.s.userAgent())
144910	var body io.Reader = nil
144911	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetworksexpandipcidrrangerequest)
144912	if err != nil {
144913		return nil, err
144914	}
144915	reqHeaders.Set("Content-Type", "application/json")
144916	c.urlParams_.Set("alt", alt)
144917	c.urlParams_.Set("prettyPrint", "false")
144918	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange")
144919	urls += "?" + c.urlParams_.Encode()
144920	req, err := http.NewRequest("POST", urls, body)
144921	if err != nil {
144922		return nil, err
144923	}
144924	req.Header = reqHeaders
144925	googleapi.Expand(req.URL, map[string]string{
144926		"project":    c.project,
144927		"region":     c.region,
144928		"subnetwork": c.subnetwork,
144929	})
144930	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144931}
144932
144933// Do executes the "compute.subnetworks.expandIpCidrRange" call.
144934// Exactly one of *Operation or error will be non-nil. Any non-2xx
144935// status code is an error. Response headers are in either
144936// *Operation.ServerResponse.Header or (if a response was returned at
144937// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
144938// to check whether the returned error was because
144939// http.StatusNotModified was returned.
144940func (c *SubnetworksExpandIpCidrRangeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
144941	gensupport.SetOptions(c.urlParams_, opts...)
144942	res, err := c.doRequest("json")
144943	if res != nil && res.StatusCode == http.StatusNotModified {
144944		if res.Body != nil {
144945			res.Body.Close()
144946		}
144947		return nil, &googleapi.Error{
144948			Code:   res.StatusCode,
144949			Header: res.Header,
144950		}
144951	}
144952	if err != nil {
144953		return nil, err
144954	}
144955	defer googleapi.CloseBody(res)
144956	if err := googleapi.CheckResponse(res); err != nil {
144957		return nil, err
144958	}
144959	ret := &Operation{
144960		ServerResponse: googleapi.ServerResponse{
144961			Header:         res.Header,
144962			HTTPStatusCode: res.StatusCode,
144963		},
144964	}
144965	target := &ret
144966	if err := gensupport.DecodeResponse(target, res); err != nil {
144967		return nil, err
144968	}
144969	return ret, nil
144970	// {
144971	//   "description": "Expands the IP CIDR range of the subnetwork to a specified value.",
144972	//   "httpMethod": "POST",
144973	//   "id": "compute.subnetworks.expandIpCidrRange",
144974	//   "parameterOrder": [
144975	//     "project",
144976	//     "region",
144977	//     "subnetwork"
144978	//   ],
144979	//   "parameters": {
144980	//     "project": {
144981	//       "description": "Project ID for this request.",
144982	//       "location": "path",
144983	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144984	//       "required": true,
144985	//       "type": "string"
144986	//     },
144987	//     "region": {
144988	//       "description": "Name of the region scoping this request.",
144989	//       "location": "path",
144990	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144991	//       "required": true,
144992	//       "type": "string"
144993	//     },
144994	//     "requestId": {
144995	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
144996	//       "location": "query",
144997	//       "type": "string"
144998	//     },
144999	//     "subnetwork": {
145000	//       "description": "Name of the Subnetwork resource to update.",
145001	//       "location": "path",
145002	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
145003	//       "required": true,
145004	//       "type": "string"
145005	//     }
145006	//   },
145007	//   "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange",
145008	//   "request": {
145009	//     "$ref": "SubnetworksExpandIpCidrRangeRequest"
145010	//   },
145011	//   "response": {
145012	//     "$ref": "Operation"
145013	//   },
145014	//   "scopes": [
145015	//     "https://www.googleapis.com/auth/cloud-platform",
145016	//     "https://www.googleapis.com/auth/compute"
145017	//   ]
145018	// }
145019
145020}
145021
145022// method id "compute.subnetworks.get":
145023
145024type SubnetworksGetCall struct {
145025	s            *Service
145026	project      string
145027	region       string
145028	subnetwork   string
145029	urlParams_   gensupport.URLParams
145030	ifNoneMatch_ string
145031	ctx_         context.Context
145032	header_      http.Header
145033}
145034
145035// Get: Returns the specified subnetwork. Gets a list of available
145036// subnetworks list() request.
145037//
145038// - project: Project ID for this request.
145039// - region: Name of the region scoping this request.
145040// - subnetwork: Name of the Subnetwork resource to return.
145041func (r *SubnetworksService) Get(project string, region string, subnetwork string) *SubnetworksGetCall {
145042	c := &SubnetworksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145043	c.project = project
145044	c.region = region
145045	c.subnetwork = subnetwork
145046	return c
145047}
145048
145049// Fields allows partial responses to be retrieved. See
145050// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145051// for more information.
145052func (c *SubnetworksGetCall) Fields(s ...googleapi.Field) *SubnetworksGetCall {
145053	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145054	return c
145055}
145056
145057// IfNoneMatch sets the optional parameter which makes the operation
145058// fail if the object's ETag matches the given value. This is useful for
145059// getting updates only after the object has changed since the last
145060// request. Use googleapi.IsNotModified to check whether the response
145061// error from Do is the result of In-None-Match.
145062func (c *SubnetworksGetCall) IfNoneMatch(entityTag string) *SubnetworksGetCall {
145063	c.ifNoneMatch_ = entityTag
145064	return c
145065}
145066
145067// Context sets the context to be used in this call's Do method. Any
145068// pending HTTP request will be aborted if the provided context is
145069// canceled.
145070func (c *SubnetworksGetCall) Context(ctx context.Context) *SubnetworksGetCall {
145071	c.ctx_ = ctx
145072	return c
145073}
145074
145075// Header returns an http.Header that can be modified by the caller to
145076// add HTTP headers to the request.
145077func (c *SubnetworksGetCall) Header() http.Header {
145078	if c.header_ == nil {
145079		c.header_ = make(http.Header)
145080	}
145081	return c.header_
145082}
145083
145084func (c *SubnetworksGetCall) doRequest(alt string) (*http.Response, error) {
145085	reqHeaders := make(http.Header)
145086	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
145087	for k, v := range c.header_ {
145088		reqHeaders[k] = v
145089	}
145090	reqHeaders.Set("User-Agent", c.s.userAgent())
145091	if c.ifNoneMatch_ != "" {
145092		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
145093	}
145094	var body io.Reader = nil
145095	c.urlParams_.Set("alt", alt)
145096	c.urlParams_.Set("prettyPrint", "false")
145097	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{subnetwork}")
145098	urls += "?" + c.urlParams_.Encode()
145099	req, err := http.NewRequest("GET", urls, body)
145100	if err != nil {
145101		return nil, err
145102	}
145103	req.Header = reqHeaders
145104	googleapi.Expand(req.URL, map[string]string{
145105		"project":    c.project,
145106		"region":     c.region,
145107		"subnetwork": c.subnetwork,
145108	})
145109	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145110}
145111
145112// Do executes the "compute.subnetworks.get" call.
145113// Exactly one of *Subnetwork or error will be non-nil. Any non-2xx
145114// status code is an error. Response headers are in either
145115// *Subnetwork.ServerResponse.Header or (if a response was returned at
145116// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
145117// to check whether the returned error was because
145118// http.StatusNotModified was returned.
145119func (c *SubnetworksGetCall) Do(opts ...googleapi.CallOption) (*Subnetwork, error) {
145120	gensupport.SetOptions(c.urlParams_, opts...)
145121	res, err := c.doRequest("json")
145122	if res != nil && res.StatusCode == http.StatusNotModified {
145123		if res.Body != nil {
145124			res.Body.Close()
145125		}
145126		return nil, &googleapi.Error{
145127			Code:   res.StatusCode,
145128			Header: res.Header,
145129		}
145130	}
145131	if err != nil {
145132		return nil, err
145133	}
145134	defer googleapi.CloseBody(res)
145135	if err := googleapi.CheckResponse(res); err != nil {
145136		return nil, err
145137	}
145138	ret := &Subnetwork{
145139		ServerResponse: googleapi.ServerResponse{
145140			Header:         res.Header,
145141			HTTPStatusCode: res.StatusCode,
145142		},
145143	}
145144	target := &ret
145145	if err := gensupport.DecodeResponse(target, res); err != nil {
145146		return nil, err
145147	}
145148	return ret, nil
145149	// {
145150	//   "description": "Returns the specified subnetwork. Gets a list of available subnetworks list() request.",
145151	//   "httpMethod": "GET",
145152	//   "id": "compute.subnetworks.get",
145153	//   "parameterOrder": [
145154	//     "project",
145155	//     "region",
145156	//     "subnetwork"
145157	//   ],
145158	//   "parameters": {
145159	//     "project": {
145160	//       "description": "Project ID for this request.",
145161	//       "location": "path",
145162	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145163	//       "required": true,
145164	//       "type": "string"
145165	//     },
145166	//     "region": {
145167	//       "description": "Name of the region scoping this request.",
145168	//       "location": "path",
145169	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
145170	//       "required": true,
145171	//       "type": "string"
145172	//     },
145173	//     "subnetwork": {
145174	//       "description": "Name of the Subnetwork resource to return.",
145175	//       "location": "path",
145176	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
145177	//       "required": true,
145178	//       "type": "string"
145179	//     }
145180	//   },
145181	//   "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}",
145182	//   "response": {
145183	//     "$ref": "Subnetwork"
145184	//   },
145185	//   "scopes": [
145186	//     "https://www.googleapis.com/auth/cloud-platform",
145187	//     "https://www.googleapis.com/auth/compute",
145188	//     "https://www.googleapis.com/auth/compute.readonly"
145189	//   ]
145190	// }
145191
145192}
145193
145194// method id "compute.subnetworks.getIamPolicy":
145195
145196type SubnetworksGetIamPolicyCall struct {
145197	s            *Service
145198	project      string
145199	region       string
145200	resource     string
145201	urlParams_   gensupport.URLParams
145202	ifNoneMatch_ string
145203	ctx_         context.Context
145204	header_      http.Header
145205}
145206
145207// GetIamPolicy: Gets the access control policy for a resource. May be
145208// empty if no such policy or resource exists.
145209//
145210// - project: Project ID for this request.
145211// - region: The name of the region for this request.
145212// - resource: Name or id of the resource for this request.
145213func (r *SubnetworksService) GetIamPolicy(project string, region string, resource string) *SubnetworksGetIamPolicyCall {
145214	c := &SubnetworksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145215	c.project = project
145216	c.region = region
145217	c.resource = resource
145218	return c
145219}
145220
145221// OptionsRequestedPolicyVersion sets the optional parameter
145222// "optionsRequestedPolicyVersion": Requested IAM Policy version.
145223func (c *SubnetworksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *SubnetworksGetIamPolicyCall {
145224	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
145225	return c
145226}
145227
145228// Fields allows partial responses to be retrieved. See
145229// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145230// for more information.
145231func (c *SubnetworksGetIamPolicyCall) Fields(s ...googleapi.Field) *SubnetworksGetIamPolicyCall {
145232	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145233	return c
145234}
145235
145236// IfNoneMatch sets the optional parameter which makes the operation
145237// fail if the object's ETag matches the given value. This is useful for
145238// getting updates only after the object has changed since the last
145239// request. Use googleapi.IsNotModified to check whether the response
145240// error from Do is the result of In-None-Match.
145241func (c *SubnetworksGetIamPolicyCall) IfNoneMatch(entityTag string) *SubnetworksGetIamPolicyCall {
145242	c.ifNoneMatch_ = entityTag
145243	return c
145244}
145245
145246// Context sets the context to be used in this call's Do method. Any
145247// pending HTTP request will be aborted if the provided context is
145248// canceled.
145249func (c *SubnetworksGetIamPolicyCall) Context(ctx context.Context) *SubnetworksGetIamPolicyCall {
145250	c.ctx_ = ctx
145251	return c
145252}
145253
145254// Header returns an http.Header that can be modified by the caller to
145255// add HTTP headers to the request.
145256func (c *SubnetworksGetIamPolicyCall) Header() http.Header {
145257	if c.header_ == nil {
145258		c.header_ = make(http.Header)
145259	}
145260	return c.header_
145261}
145262
145263func (c *SubnetworksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
145264	reqHeaders := make(http.Header)
145265	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
145266	for k, v := range c.header_ {
145267		reqHeaders[k] = v
145268	}
145269	reqHeaders.Set("User-Agent", c.s.userAgent())
145270	if c.ifNoneMatch_ != "" {
145271		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
145272	}
145273	var body io.Reader = nil
145274	c.urlParams_.Set("alt", alt)
145275	c.urlParams_.Set("prettyPrint", "false")
145276	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{resource}/getIamPolicy")
145277	urls += "?" + c.urlParams_.Encode()
145278	req, err := http.NewRequest("GET", urls, body)
145279	if err != nil {
145280		return nil, err
145281	}
145282	req.Header = reqHeaders
145283	googleapi.Expand(req.URL, map[string]string{
145284		"project":  c.project,
145285		"region":   c.region,
145286		"resource": c.resource,
145287	})
145288	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145289}
145290
145291// Do executes the "compute.subnetworks.getIamPolicy" call.
145292// Exactly one of *Policy or error will be non-nil. Any non-2xx status
145293// code is an error. Response headers are in either
145294// *Policy.ServerResponse.Header or (if a response was returned at all)
145295// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
145296// check whether the returned error was because http.StatusNotModified
145297// was returned.
145298func (c *SubnetworksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
145299	gensupport.SetOptions(c.urlParams_, opts...)
145300	res, err := c.doRequest("json")
145301	if res != nil && res.StatusCode == http.StatusNotModified {
145302		if res.Body != nil {
145303			res.Body.Close()
145304		}
145305		return nil, &googleapi.Error{
145306			Code:   res.StatusCode,
145307			Header: res.Header,
145308		}
145309	}
145310	if err != nil {
145311		return nil, err
145312	}
145313	defer googleapi.CloseBody(res)
145314	if err := googleapi.CheckResponse(res); err != nil {
145315		return nil, err
145316	}
145317	ret := &Policy{
145318		ServerResponse: googleapi.ServerResponse{
145319			Header:         res.Header,
145320			HTTPStatusCode: res.StatusCode,
145321		},
145322	}
145323	target := &ret
145324	if err := gensupport.DecodeResponse(target, res); err != nil {
145325		return nil, err
145326	}
145327	return ret, nil
145328	// {
145329	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
145330	//   "httpMethod": "GET",
145331	//   "id": "compute.subnetworks.getIamPolicy",
145332	//   "parameterOrder": [
145333	//     "project",
145334	//     "region",
145335	//     "resource"
145336	//   ],
145337	//   "parameters": {
145338	//     "optionsRequestedPolicyVersion": {
145339	//       "description": "Requested IAM Policy version.",
145340	//       "format": "int32",
145341	//       "location": "query",
145342	//       "type": "integer"
145343	//     },
145344	//     "project": {
145345	//       "description": "Project ID for this request.",
145346	//       "location": "path",
145347	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145348	//       "required": true,
145349	//       "type": "string"
145350	//     },
145351	//     "region": {
145352	//       "description": "The name of the region for this request.",
145353	//       "location": "path",
145354	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
145355	//       "required": true,
145356	//       "type": "string"
145357	//     },
145358	//     "resource": {
145359	//       "description": "Name or id of the resource for this request.",
145360	//       "location": "path",
145361	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
145362	//       "required": true,
145363	//       "type": "string"
145364	//     }
145365	//   },
145366	//   "path": "projects/{project}/regions/{region}/subnetworks/{resource}/getIamPolicy",
145367	//   "response": {
145368	//     "$ref": "Policy"
145369	//   },
145370	//   "scopes": [
145371	//     "https://www.googleapis.com/auth/cloud-platform",
145372	//     "https://www.googleapis.com/auth/compute",
145373	//     "https://www.googleapis.com/auth/compute.readonly"
145374	//   ]
145375	// }
145376
145377}
145378
145379// method id "compute.subnetworks.insert":
145380
145381type SubnetworksInsertCall struct {
145382	s          *Service
145383	project    string
145384	region     string
145385	subnetwork *Subnetwork
145386	urlParams_ gensupport.URLParams
145387	ctx_       context.Context
145388	header_    http.Header
145389}
145390
145391// Insert: Creates a subnetwork in the specified project using the data
145392// included in the request.
145393//
145394// - project: Project ID for this request.
145395// - region: Name of the region scoping this request.
145396func (r *SubnetworksService) Insert(project string, region string, subnetwork *Subnetwork) *SubnetworksInsertCall {
145397	c := &SubnetworksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145398	c.project = project
145399	c.region = region
145400	c.subnetwork = subnetwork
145401	return c
145402}
145403
145404// RequestId sets the optional parameter "requestId": An optional
145405// request ID to identify requests. Specify a unique request ID so that
145406// if you must retry your request, the server will know to ignore the
145407// request if it has already been completed.
145408//
145409// For example, consider a situation where you make an initial request
145410// and the request times out. If you make the request again with the
145411// same request ID, the server can check if original operation with the
145412// same request ID was received, and if so, will ignore the second
145413// request. This prevents clients from accidentally creating duplicate
145414// commitments.
145415//
145416// The request ID must be a valid UUID with the exception that zero UUID
145417// is not supported (00000000-0000-0000-0000-000000000000).
145418func (c *SubnetworksInsertCall) RequestId(requestId string) *SubnetworksInsertCall {
145419	c.urlParams_.Set("requestId", requestId)
145420	return c
145421}
145422
145423// Fields allows partial responses to be retrieved. See
145424// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145425// for more information.
145426func (c *SubnetworksInsertCall) Fields(s ...googleapi.Field) *SubnetworksInsertCall {
145427	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145428	return c
145429}
145430
145431// Context sets the context to be used in this call's Do method. Any
145432// pending HTTP request will be aborted if the provided context is
145433// canceled.
145434func (c *SubnetworksInsertCall) Context(ctx context.Context) *SubnetworksInsertCall {
145435	c.ctx_ = ctx
145436	return c
145437}
145438
145439// Header returns an http.Header that can be modified by the caller to
145440// add HTTP headers to the request.
145441func (c *SubnetworksInsertCall) Header() http.Header {
145442	if c.header_ == nil {
145443		c.header_ = make(http.Header)
145444	}
145445	return c.header_
145446}
145447
145448func (c *SubnetworksInsertCall) doRequest(alt string) (*http.Response, error) {
145449	reqHeaders := make(http.Header)
145450	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
145451	for k, v := range c.header_ {
145452		reqHeaders[k] = v
145453	}
145454	reqHeaders.Set("User-Agent", c.s.userAgent())
145455	var body io.Reader = nil
145456	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetwork)
145457	if err != nil {
145458		return nil, err
145459	}
145460	reqHeaders.Set("Content-Type", "application/json")
145461	c.urlParams_.Set("alt", alt)
145462	c.urlParams_.Set("prettyPrint", "false")
145463	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks")
145464	urls += "?" + c.urlParams_.Encode()
145465	req, err := http.NewRequest("POST", urls, body)
145466	if err != nil {
145467		return nil, err
145468	}
145469	req.Header = reqHeaders
145470	googleapi.Expand(req.URL, map[string]string{
145471		"project": c.project,
145472		"region":  c.region,
145473	})
145474	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145475}
145476
145477// Do executes the "compute.subnetworks.insert" call.
145478// Exactly one of *Operation or error will be non-nil. Any non-2xx
145479// status code is an error. Response headers are in either
145480// *Operation.ServerResponse.Header or (if a response was returned at
145481// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
145482// to check whether the returned error was because
145483// http.StatusNotModified was returned.
145484func (c *SubnetworksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
145485	gensupport.SetOptions(c.urlParams_, opts...)
145486	res, err := c.doRequest("json")
145487	if res != nil && res.StatusCode == http.StatusNotModified {
145488		if res.Body != nil {
145489			res.Body.Close()
145490		}
145491		return nil, &googleapi.Error{
145492			Code:   res.StatusCode,
145493			Header: res.Header,
145494		}
145495	}
145496	if err != nil {
145497		return nil, err
145498	}
145499	defer googleapi.CloseBody(res)
145500	if err := googleapi.CheckResponse(res); err != nil {
145501		return nil, err
145502	}
145503	ret := &Operation{
145504		ServerResponse: googleapi.ServerResponse{
145505			Header:         res.Header,
145506			HTTPStatusCode: res.StatusCode,
145507		},
145508	}
145509	target := &ret
145510	if err := gensupport.DecodeResponse(target, res); err != nil {
145511		return nil, err
145512	}
145513	return ret, nil
145514	// {
145515	//   "description": "Creates a subnetwork in the specified project using the data included in the request.",
145516	//   "httpMethod": "POST",
145517	//   "id": "compute.subnetworks.insert",
145518	//   "parameterOrder": [
145519	//     "project",
145520	//     "region"
145521	//   ],
145522	//   "parameters": {
145523	//     "project": {
145524	//       "description": "Project ID for this request.",
145525	//       "location": "path",
145526	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145527	//       "required": true,
145528	//       "type": "string"
145529	//     },
145530	//     "region": {
145531	//       "description": "Name of the region scoping this request.",
145532	//       "location": "path",
145533	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
145534	//       "required": true,
145535	//       "type": "string"
145536	//     },
145537	//     "requestId": {
145538	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
145539	//       "location": "query",
145540	//       "type": "string"
145541	//     }
145542	//   },
145543	//   "path": "projects/{project}/regions/{region}/subnetworks",
145544	//   "request": {
145545	//     "$ref": "Subnetwork"
145546	//   },
145547	//   "response": {
145548	//     "$ref": "Operation"
145549	//   },
145550	//   "scopes": [
145551	//     "https://www.googleapis.com/auth/cloud-platform",
145552	//     "https://www.googleapis.com/auth/compute"
145553	//   ]
145554	// }
145555
145556}
145557
145558// method id "compute.subnetworks.list":
145559
145560type SubnetworksListCall struct {
145561	s            *Service
145562	project      string
145563	region       string
145564	urlParams_   gensupport.URLParams
145565	ifNoneMatch_ string
145566	ctx_         context.Context
145567	header_      http.Header
145568}
145569
145570// List: Retrieves a list of subnetworks available to the specified
145571// project.
145572//
145573// - project: Project ID for this request.
145574// - region: Name of the region scoping this request.
145575func (r *SubnetworksService) List(project string, region string) *SubnetworksListCall {
145576	c := &SubnetworksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145577	c.project = project
145578	c.region = region
145579	return c
145580}
145581
145582// Filter sets the optional parameter "filter": A filter expression that
145583// filters resources listed in the response. The expression must specify
145584// the field name, a comparison operator, and the value that you want to
145585// use for filtering. The value must be a string, a number, or a
145586// boolean. The comparison operator must be either `=`, `!=`, `>`, or
145587// `<`.
145588//
145589// For example, if you are filtering Compute Engine instances, you can
145590// exclude instances named `example-instance` by specifying `name !=
145591// example-instance`.
145592//
145593// You can also filter nested fields. For example, you could specify
145594// `scheduling.automaticRestart = false` to include instances only if
145595// they are not scheduled for automatic restarts. You can use filtering
145596// on nested fields to filter based on resource labels.
145597//
145598// To filter on multiple expressions, provide each separate expression
145599// within parentheses. For example: ``` (scheduling.automaticRestart =
145600// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
145601// is an `AND` expression. However, you can include `AND` and `OR`
145602// expressions explicitly. For example: ``` (cpuPlatform = "Intel
145603// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
145604// (scheduling.automaticRestart = true) ```
145605func (c *SubnetworksListCall) Filter(filter string) *SubnetworksListCall {
145606	c.urlParams_.Set("filter", filter)
145607	return c
145608}
145609
145610// MaxResults sets the optional parameter "maxResults": The maximum
145611// number of results per page that should be returned. If the number of
145612// available results is larger than `maxResults`, Compute Engine returns
145613// a `nextPageToken` that can be used to get the next page of results in
145614// subsequent list requests. Acceptable values are `0` to `500`,
145615// inclusive. (Default: `500`)
145616func (c *SubnetworksListCall) MaxResults(maxResults int64) *SubnetworksListCall {
145617	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
145618	return c
145619}
145620
145621// OrderBy sets the optional parameter "orderBy": Sorts list results by
145622// a certain order. By default, results are returned in alphanumerical
145623// order based on the resource name.
145624//
145625// You can also sort results in descending order based on the creation
145626// timestamp using `orderBy="creationTimestamp desc". This sorts
145627// results based on the `creationTimestamp` field in reverse
145628// chronological order (newest result first). Use this to sort resources
145629// like operations so that the newest operation is returned
145630// first.
145631//
145632// Currently, only sorting by `name` or `creationTimestamp desc` is
145633// supported.
145634func (c *SubnetworksListCall) OrderBy(orderBy string) *SubnetworksListCall {
145635	c.urlParams_.Set("orderBy", orderBy)
145636	return c
145637}
145638
145639// PageToken sets the optional parameter "pageToken": Specifies a page
145640// token to use. Set `pageToken` to the `nextPageToken` returned by a
145641// previous list request to get the next page of results.
145642func (c *SubnetworksListCall) PageToken(pageToken string) *SubnetworksListCall {
145643	c.urlParams_.Set("pageToken", pageToken)
145644	return c
145645}
145646
145647// ReturnPartialSuccess sets the optional parameter
145648// "returnPartialSuccess": Opt-in for partial success behavior which
145649// provides partial results in case of failure. The default value is
145650// false.
145651func (c *SubnetworksListCall) ReturnPartialSuccess(returnPartialSuccess bool) *SubnetworksListCall {
145652	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
145653	return c
145654}
145655
145656// Fields allows partial responses to be retrieved. See
145657// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145658// for more information.
145659func (c *SubnetworksListCall) Fields(s ...googleapi.Field) *SubnetworksListCall {
145660	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145661	return c
145662}
145663
145664// IfNoneMatch sets the optional parameter which makes the operation
145665// fail if the object's ETag matches the given value. This is useful for
145666// getting updates only after the object has changed since the last
145667// request. Use googleapi.IsNotModified to check whether the response
145668// error from Do is the result of In-None-Match.
145669func (c *SubnetworksListCall) IfNoneMatch(entityTag string) *SubnetworksListCall {
145670	c.ifNoneMatch_ = entityTag
145671	return c
145672}
145673
145674// Context sets the context to be used in this call's Do method. Any
145675// pending HTTP request will be aborted if the provided context is
145676// canceled.
145677func (c *SubnetworksListCall) Context(ctx context.Context) *SubnetworksListCall {
145678	c.ctx_ = ctx
145679	return c
145680}
145681
145682// Header returns an http.Header that can be modified by the caller to
145683// add HTTP headers to the request.
145684func (c *SubnetworksListCall) Header() http.Header {
145685	if c.header_ == nil {
145686		c.header_ = make(http.Header)
145687	}
145688	return c.header_
145689}
145690
145691func (c *SubnetworksListCall) doRequest(alt string) (*http.Response, error) {
145692	reqHeaders := make(http.Header)
145693	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
145694	for k, v := range c.header_ {
145695		reqHeaders[k] = v
145696	}
145697	reqHeaders.Set("User-Agent", c.s.userAgent())
145698	if c.ifNoneMatch_ != "" {
145699		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
145700	}
145701	var body io.Reader = nil
145702	c.urlParams_.Set("alt", alt)
145703	c.urlParams_.Set("prettyPrint", "false")
145704	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks")
145705	urls += "?" + c.urlParams_.Encode()
145706	req, err := http.NewRequest("GET", urls, body)
145707	if err != nil {
145708		return nil, err
145709	}
145710	req.Header = reqHeaders
145711	googleapi.Expand(req.URL, map[string]string{
145712		"project": c.project,
145713		"region":  c.region,
145714	})
145715	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145716}
145717
145718// Do executes the "compute.subnetworks.list" call.
145719// Exactly one of *SubnetworkList or error will be non-nil. Any non-2xx
145720// status code is an error. Response headers are in either
145721// *SubnetworkList.ServerResponse.Header or (if a response was returned
145722// at all) in error.(*googleapi.Error).Header. Use
145723// googleapi.IsNotModified to check whether the returned error was
145724// because http.StatusNotModified was returned.
145725func (c *SubnetworksListCall) Do(opts ...googleapi.CallOption) (*SubnetworkList, error) {
145726	gensupport.SetOptions(c.urlParams_, opts...)
145727	res, err := c.doRequest("json")
145728	if res != nil && res.StatusCode == http.StatusNotModified {
145729		if res.Body != nil {
145730			res.Body.Close()
145731		}
145732		return nil, &googleapi.Error{
145733			Code:   res.StatusCode,
145734			Header: res.Header,
145735		}
145736	}
145737	if err != nil {
145738		return nil, err
145739	}
145740	defer googleapi.CloseBody(res)
145741	if err := googleapi.CheckResponse(res); err != nil {
145742		return nil, err
145743	}
145744	ret := &SubnetworkList{
145745		ServerResponse: googleapi.ServerResponse{
145746			Header:         res.Header,
145747			HTTPStatusCode: res.StatusCode,
145748		},
145749	}
145750	target := &ret
145751	if err := gensupport.DecodeResponse(target, res); err != nil {
145752		return nil, err
145753	}
145754	return ret, nil
145755	// {
145756	//   "description": "Retrieves a list of subnetworks available to the specified project.",
145757	//   "httpMethod": "GET",
145758	//   "id": "compute.subnetworks.list",
145759	//   "parameterOrder": [
145760	//     "project",
145761	//     "region"
145762	//   ],
145763	//   "parameters": {
145764	//     "filter": {
145765	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
145766	//       "location": "query",
145767	//       "type": "string"
145768	//     },
145769	//     "maxResults": {
145770	//       "default": "500",
145771	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
145772	//       "format": "uint32",
145773	//       "location": "query",
145774	//       "minimum": "0",
145775	//       "type": "integer"
145776	//     },
145777	//     "orderBy": {
145778	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
145779	//       "location": "query",
145780	//       "type": "string"
145781	//     },
145782	//     "pageToken": {
145783	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
145784	//       "location": "query",
145785	//       "type": "string"
145786	//     },
145787	//     "project": {
145788	//       "description": "Project ID for this request.",
145789	//       "location": "path",
145790	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145791	//       "required": true,
145792	//       "type": "string"
145793	//     },
145794	//     "region": {
145795	//       "description": "Name of the region scoping this request.",
145796	//       "location": "path",
145797	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
145798	//       "required": true,
145799	//       "type": "string"
145800	//     },
145801	//     "returnPartialSuccess": {
145802	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
145803	//       "location": "query",
145804	//       "type": "boolean"
145805	//     }
145806	//   },
145807	//   "path": "projects/{project}/regions/{region}/subnetworks",
145808	//   "response": {
145809	//     "$ref": "SubnetworkList"
145810	//   },
145811	//   "scopes": [
145812	//     "https://www.googleapis.com/auth/cloud-platform",
145813	//     "https://www.googleapis.com/auth/compute",
145814	//     "https://www.googleapis.com/auth/compute.readonly"
145815	//   ]
145816	// }
145817
145818}
145819
145820// Pages invokes f for each page of results.
145821// A non-nil error returned from f will halt the iteration.
145822// The provided context supersedes any context provided to the Context method.
145823func (c *SubnetworksListCall) Pages(ctx context.Context, f func(*SubnetworkList) error) error {
145824	c.ctx_ = ctx
145825	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
145826	for {
145827		x, err := c.Do()
145828		if err != nil {
145829			return err
145830		}
145831		if err := f(x); err != nil {
145832			return err
145833		}
145834		if x.NextPageToken == "" {
145835			return nil
145836		}
145837		c.PageToken(x.NextPageToken)
145838	}
145839}
145840
145841// method id "compute.subnetworks.listUsable":
145842
145843type SubnetworksListUsableCall struct {
145844	s            *Service
145845	project      string
145846	urlParams_   gensupport.URLParams
145847	ifNoneMatch_ string
145848	ctx_         context.Context
145849	header_      http.Header
145850}
145851
145852// ListUsable: Retrieves an aggregated list of all usable subnetworks in
145853// the project.
145854//
145855// - project: Project ID for this request.
145856func (r *SubnetworksService) ListUsable(project string) *SubnetworksListUsableCall {
145857	c := &SubnetworksListUsableCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145858	c.project = project
145859	return c
145860}
145861
145862// Filter sets the optional parameter "filter": A filter expression that
145863// filters resources listed in the response. The expression must specify
145864// the field name, a comparison operator, and the value that you want to
145865// use for filtering. The value must be a string, a number, or a
145866// boolean. The comparison operator must be either `=`, `!=`, `>`, or
145867// `<`.
145868//
145869// For example, if you are filtering Compute Engine instances, you can
145870// exclude instances named `example-instance` by specifying `name !=
145871// example-instance`.
145872//
145873// You can also filter nested fields. For example, you could specify
145874// `scheduling.automaticRestart = false` to include instances only if
145875// they are not scheduled for automatic restarts. You can use filtering
145876// on nested fields to filter based on resource labels.
145877//
145878// To filter on multiple expressions, provide each separate expression
145879// within parentheses. For example: ``` (scheduling.automaticRestart =
145880// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
145881// is an `AND` expression. However, you can include `AND` and `OR`
145882// expressions explicitly. For example: ``` (cpuPlatform = "Intel
145883// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
145884// (scheduling.automaticRestart = true) ```
145885func (c *SubnetworksListUsableCall) Filter(filter string) *SubnetworksListUsableCall {
145886	c.urlParams_.Set("filter", filter)
145887	return c
145888}
145889
145890// MaxResults sets the optional parameter "maxResults": The maximum
145891// number of results per page that should be returned. If the number of
145892// available results is larger than `maxResults`, Compute Engine returns
145893// a `nextPageToken` that can be used to get the next page of results in
145894// subsequent list requests. Acceptable values are `0` to `500`,
145895// inclusive. (Default: `500`)
145896func (c *SubnetworksListUsableCall) MaxResults(maxResults int64) *SubnetworksListUsableCall {
145897	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
145898	return c
145899}
145900
145901// OrderBy sets the optional parameter "orderBy": Sorts list results by
145902// a certain order. By default, results are returned in alphanumerical
145903// order based on the resource name.
145904//
145905// You can also sort results in descending order based on the creation
145906// timestamp using `orderBy="creationTimestamp desc". This sorts
145907// results based on the `creationTimestamp` field in reverse
145908// chronological order (newest result first). Use this to sort resources
145909// like operations so that the newest operation is returned
145910// first.
145911//
145912// Currently, only sorting by `name` or `creationTimestamp desc` is
145913// supported.
145914func (c *SubnetworksListUsableCall) OrderBy(orderBy string) *SubnetworksListUsableCall {
145915	c.urlParams_.Set("orderBy", orderBy)
145916	return c
145917}
145918
145919// PageToken sets the optional parameter "pageToken": Specifies a page
145920// token to use. Set `pageToken` to the `nextPageToken` returned by a
145921// previous list request to get the next page of results.
145922func (c *SubnetworksListUsableCall) PageToken(pageToken string) *SubnetworksListUsableCall {
145923	c.urlParams_.Set("pageToken", pageToken)
145924	return c
145925}
145926
145927// ReturnPartialSuccess sets the optional parameter
145928// "returnPartialSuccess": Opt-in for partial success behavior which
145929// provides partial results in case of failure. The default value is
145930// false.
145931func (c *SubnetworksListUsableCall) ReturnPartialSuccess(returnPartialSuccess bool) *SubnetworksListUsableCall {
145932	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
145933	return c
145934}
145935
145936// Fields allows partial responses to be retrieved. See
145937// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145938// for more information.
145939func (c *SubnetworksListUsableCall) Fields(s ...googleapi.Field) *SubnetworksListUsableCall {
145940	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145941	return c
145942}
145943
145944// IfNoneMatch sets the optional parameter which makes the operation
145945// fail if the object's ETag matches the given value. This is useful for
145946// getting updates only after the object has changed since the last
145947// request. Use googleapi.IsNotModified to check whether the response
145948// error from Do is the result of In-None-Match.
145949func (c *SubnetworksListUsableCall) IfNoneMatch(entityTag string) *SubnetworksListUsableCall {
145950	c.ifNoneMatch_ = entityTag
145951	return c
145952}
145953
145954// Context sets the context to be used in this call's Do method. Any
145955// pending HTTP request will be aborted if the provided context is
145956// canceled.
145957func (c *SubnetworksListUsableCall) Context(ctx context.Context) *SubnetworksListUsableCall {
145958	c.ctx_ = ctx
145959	return c
145960}
145961
145962// Header returns an http.Header that can be modified by the caller to
145963// add HTTP headers to the request.
145964func (c *SubnetworksListUsableCall) Header() http.Header {
145965	if c.header_ == nil {
145966		c.header_ = make(http.Header)
145967	}
145968	return c.header_
145969}
145970
145971func (c *SubnetworksListUsableCall) doRequest(alt string) (*http.Response, error) {
145972	reqHeaders := make(http.Header)
145973	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
145974	for k, v := range c.header_ {
145975		reqHeaders[k] = v
145976	}
145977	reqHeaders.Set("User-Agent", c.s.userAgent())
145978	if c.ifNoneMatch_ != "" {
145979		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
145980	}
145981	var body io.Reader = nil
145982	c.urlParams_.Set("alt", alt)
145983	c.urlParams_.Set("prettyPrint", "false")
145984	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/subnetworks/listUsable")
145985	urls += "?" + c.urlParams_.Encode()
145986	req, err := http.NewRequest("GET", urls, body)
145987	if err != nil {
145988		return nil, err
145989	}
145990	req.Header = reqHeaders
145991	googleapi.Expand(req.URL, map[string]string{
145992		"project": c.project,
145993	})
145994	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145995}
145996
145997// Do executes the "compute.subnetworks.listUsable" call.
145998// Exactly one of *UsableSubnetworksAggregatedList or error will be
145999// non-nil. Any non-2xx status code is an error. Response headers are in
146000// either *UsableSubnetworksAggregatedList.ServerResponse.Header or (if
146001// a response was returned at all) in error.(*googleapi.Error).Header.
146002// Use googleapi.IsNotModified to check whether the returned error was
146003// because http.StatusNotModified was returned.
146004func (c *SubnetworksListUsableCall) Do(opts ...googleapi.CallOption) (*UsableSubnetworksAggregatedList, error) {
146005	gensupport.SetOptions(c.urlParams_, opts...)
146006	res, err := c.doRequest("json")
146007	if res != nil && res.StatusCode == http.StatusNotModified {
146008		if res.Body != nil {
146009			res.Body.Close()
146010		}
146011		return nil, &googleapi.Error{
146012			Code:   res.StatusCode,
146013			Header: res.Header,
146014		}
146015	}
146016	if err != nil {
146017		return nil, err
146018	}
146019	defer googleapi.CloseBody(res)
146020	if err := googleapi.CheckResponse(res); err != nil {
146021		return nil, err
146022	}
146023	ret := &UsableSubnetworksAggregatedList{
146024		ServerResponse: googleapi.ServerResponse{
146025			Header:         res.Header,
146026			HTTPStatusCode: res.StatusCode,
146027		},
146028	}
146029	target := &ret
146030	if err := gensupport.DecodeResponse(target, res); err != nil {
146031		return nil, err
146032	}
146033	return ret, nil
146034	// {
146035	//   "description": "Retrieves an aggregated list of all usable subnetworks in the project.",
146036	//   "httpMethod": "GET",
146037	//   "id": "compute.subnetworks.listUsable",
146038	//   "parameterOrder": [
146039	//     "project"
146040	//   ],
146041	//   "parameters": {
146042	//     "filter": {
146043	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
146044	//       "location": "query",
146045	//       "type": "string"
146046	//     },
146047	//     "maxResults": {
146048	//       "default": "500",
146049	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
146050	//       "format": "uint32",
146051	//       "location": "query",
146052	//       "minimum": "0",
146053	//       "type": "integer"
146054	//     },
146055	//     "orderBy": {
146056	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
146057	//       "location": "query",
146058	//       "type": "string"
146059	//     },
146060	//     "pageToken": {
146061	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
146062	//       "location": "query",
146063	//       "type": "string"
146064	//     },
146065	//     "project": {
146066	//       "description": "Project ID for this request.",
146067	//       "location": "path",
146068	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146069	//       "required": true,
146070	//       "type": "string"
146071	//     },
146072	//     "returnPartialSuccess": {
146073	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
146074	//       "location": "query",
146075	//       "type": "boolean"
146076	//     }
146077	//   },
146078	//   "path": "projects/{project}/aggregated/subnetworks/listUsable",
146079	//   "response": {
146080	//     "$ref": "UsableSubnetworksAggregatedList"
146081	//   },
146082	//   "scopes": [
146083	//     "https://www.googleapis.com/auth/cloud-platform",
146084	//     "https://www.googleapis.com/auth/compute",
146085	//     "https://www.googleapis.com/auth/compute.readonly"
146086	//   ]
146087	// }
146088
146089}
146090
146091// Pages invokes f for each page of results.
146092// A non-nil error returned from f will halt the iteration.
146093// The provided context supersedes any context provided to the Context method.
146094func (c *SubnetworksListUsableCall) Pages(ctx context.Context, f func(*UsableSubnetworksAggregatedList) error) error {
146095	c.ctx_ = ctx
146096	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
146097	for {
146098		x, err := c.Do()
146099		if err != nil {
146100			return err
146101		}
146102		if err := f(x); err != nil {
146103			return err
146104		}
146105		if x.NextPageToken == "" {
146106			return nil
146107		}
146108		c.PageToken(x.NextPageToken)
146109	}
146110}
146111
146112// method id "compute.subnetworks.patch":
146113
146114type SubnetworksPatchCall struct {
146115	s           *Service
146116	project     string
146117	region      string
146118	subnetwork  string
146119	subnetwork2 *Subnetwork
146120	urlParams_  gensupport.URLParams
146121	ctx_        context.Context
146122	header_     http.Header
146123}
146124
146125// Patch: Patches the specified subnetwork with the data included in the
146126// request. Only certain fields can be updated with a patch request as
146127// indicated in the field descriptions. You must specify the current
146128// fingerprint of the subnetwork resource being patched.
146129//
146130// - project: Project ID for this request.
146131// - region: Name of the region scoping this request.
146132// - subnetwork: Name of the Subnetwork resource to patch.
146133func (r *SubnetworksService) Patch(project string, region string, subnetwork string, subnetwork2 *Subnetwork) *SubnetworksPatchCall {
146134	c := &SubnetworksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146135	c.project = project
146136	c.region = region
146137	c.subnetwork = subnetwork
146138	c.subnetwork2 = subnetwork2
146139	return c
146140}
146141
146142// DrainTimeoutSeconds sets the optional parameter
146143// "drainTimeoutSeconds": The drain timeout specifies the upper bound in
146144// seconds on the amount of time allowed to drain connections from the
146145// current ACTIVE subnetwork to the current BACKUP subnetwork. The drain
146146// timeout is only applicable when the following conditions are true: -
146147// the subnetwork being patched has purpose =
146148// INTERNAL_HTTPS_LOAD_BALANCER - the subnetwork being patched has role
146149// = BACKUP - the patch request is setting the role to ACTIVE. Note that
146150// after this patch operation the roles of the ACTIVE and BACKUP
146151// subnetworks will be swapped.
146152func (c *SubnetworksPatchCall) DrainTimeoutSeconds(drainTimeoutSeconds int64) *SubnetworksPatchCall {
146153	c.urlParams_.Set("drainTimeoutSeconds", fmt.Sprint(drainTimeoutSeconds))
146154	return c
146155}
146156
146157// RequestId sets the optional parameter "requestId": An optional
146158// request ID to identify requests. Specify a unique request ID so that
146159// if you must retry your request, the server will know to ignore the
146160// request if it has already been completed.
146161//
146162// For example, consider a situation where you make an initial request
146163// and the request times out. If you make the request again with the
146164// same request ID, the server can check if original operation with the
146165// same request ID was received, and if so, will ignore the second
146166// request. This prevents clients from accidentally creating duplicate
146167// commitments.
146168//
146169// The request ID must be a valid UUID with the exception that zero UUID
146170// is not supported (00000000-0000-0000-0000-000000000000).
146171func (c *SubnetworksPatchCall) RequestId(requestId string) *SubnetworksPatchCall {
146172	c.urlParams_.Set("requestId", requestId)
146173	return c
146174}
146175
146176// Fields allows partial responses to be retrieved. See
146177// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146178// for more information.
146179func (c *SubnetworksPatchCall) Fields(s ...googleapi.Field) *SubnetworksPatchCall {
146180	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146181	return c
146182}
146183
146184// Context sets the context to be used in this call's Do method. Any
146185// pending HTTP request will be aborted if the provided context is
146186// canceled.
146187func (c *SubnetworksPatchCall) Context(ctx context.Context) *SubnetworksPatchCall {
146188	c.ctx_ = ctx
146189	return c
146190}
146191
146192// Header returns an http.Header that can be modified by the caller to
146193// add HTTP headers to the request.
146194func (c *SubnetworksPatchCall) Header() http.Header {
146195	if c.header_ == nil {
146196		c.header_ = make(http.Header)
146197	}
146198	return c.header_
146199}
146200
146201func (c *SubnetworksPatchCall) doRequest(alt string) (*http.Response, error) {
146202	reqHeaders := make(http.Header)
146203	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
146204	for k, v := range c.header_ {
146205		reqHeaders[k] = v
146206	}
146207	reqHeaders.Set("User-Agent", c.s.userAgent())
146208	var body io.Reader = nil
146209	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetwork2)
146210	if err != nil {
146211		return nil, err
146212	}
146213	reqHeaders.Set("Content-Type", "application/json")
146214	c.urlParams_.Set("alt", alt)
146215	c.urlParams_.Set("prettyPrint", "false")
146216	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{subnetwork}")
146217	urls += "?" + c.urlParams_.Encode()
146218	req, err := http.NewRequest("PATCH", urls, body)
146219	if err != nil {
146220		return nil, err
146221	}
146222	req.Header = reqHeaders
146223	googleapi.Expand(req.URL, map[string]string{
146224		"project":    c.project,
146225		"region":     c.region,
146226		"subnetwork": c.subnetwork,
146227	})
146228	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146229}
146230
146231// Do executes the "compute.subnetworks.patch" call.
146232// Exactly one of *Operation or error will be non-nil. Any non-2xx
146233// status code is an error. Response headers are in either
146234// *Operation.ServerResponse.Header or (if a response was returned at
146235// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
146236// to check whether the returned error was because
146237// http.StatusNotModified was returned.
146238func (c *SubnetworksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
146239	gensupport.SetOptions(c.urlParams_, opts...)
146240	res, err := c.doRequest("json")
146241	if res != nil && res.StatusCode == http.StatusNotModified {
146242		if res.Body != nil {
146243			res.Body.Close()
146244		}
146245		return nil, &googleapi.Error{
146246			Code:   res.StatusCode,
146247			Header: res.Header,
146248		}
146249	}
146250	if err != nil {
146251		return nil, err
146252	}
146253	defer googleapi.CloseBody(res)
146254	if err := googleapi.CheckResponse(res); err != nil {
146255		return nil, err
146256	}
146257	ret := &Operation{
146258		ServerResponse: googleapi.ServerResponse{
146259			Header:         res.Header,
146260			HTTPStatusCode: res.StatusCode,
146261		},
146262	}
146263	target := &ret
146264	if err := gensupport.DecodeResponse(target, res); err != nil {
146265		return nil, err
146266	}
146267	return ret, nil
146268	// {
146269	//   "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.",
146270	//   "httpMethod": "PATCH",
146271	//   "id": "compute.subnetworks.patch",
146272	//   "parameterOrder": [
146273	//     "project",
146274	//     "region",
146275	//     "subnetwork"
146276	//   ],
146277	//   "parameters": {
146278	//     "drainTimeoutSeconds": {
146279	//       "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.",
146280	//       "format": "int32",
146281	//       "location": "query",
146282	//       "type": "integer"
146283	//     },
146284	//     "project": {
146285	//       "description": "Project ID for this request.",
146286	//       "location": "path",
146287	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146288	//       "required": true,
146289	//       "type": "string"
146290	//     },
146291	//     "region": {
146292	//       "description": "Name of the region scoping this request.",
146293	//       "location": "path",
146294	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
146295	//       "required": true,
146296	//       "type": "string"
146297	//     },
146298	//     "requestId": {
146299	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
146300	//       "location": "query",
146301	//       "type": "string"
146302	//     },
146303	//     "subnetwork": {
146304	//       "description": "Name of the Subnetwork resource to patch.",
146305	//       "location": "path",
146306	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146307	//       "required": true,
146308	//       "type": "string"
146309	//     }
146310	//   },
146311	//   "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}",
146312	//   "request": {
146313	//     "$ref": "Subnetwork"
146314	//   },
146315	//   "response": {
146316	//     "$ref": "Operation"
146317	//   },
146318	//   "scopes": [
146319	//     "https://www.googleapis.com/auth/cloud-platform",
146320	//     "https://www.googleapis.com/auth/compute"
146321	//   ]
146322	// }
146323
146324}
146325
146326// method id "compute.subnetworks.setIamPolicy":
146327
146328type SubnetworksSetIamPolicyCall struct {
146329	s                      *Service
146330	project                string
146331	region                 string
146332	resource               string
146333	regionsetpolicyrequest *RegionSetPolicyRequest
146334	urlParams_             gensupport.URLParams
146335	ctx_                   context.Context
146336	header_                http.Header
146337}
146338
146339// SetIamPolicy: Sets the access control policy on the specified
146340// resource. Replaces any existing policy.
146341//
146342// - project: Project ID for this request.
146343// - region: The name of the region for this request.
146344// - resource: Name or id of the resource for this request.
146345func (r *SubnetworksService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *SubnetworksSetIamPolicyCall {
146346	c := &SubnetworksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146347	c.project = project
146348	c.region = region
146349	c.resource = resource
146350	c.regionsetpolicyrequest = regionsetpolicyrequest
146351	return c
146352}
146353
146354// Fields allows partial responses to be retrieved. See
146355// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146356// for more information.
146357func (c *SubnetworksSetIamPolicyCall) Fields(s ...googleapi.Field) *SubnetworksSetIamPolicyCall {
146358	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146359	return c
146360}
146361
146362// Context sets the context to be used in this call's Do method. Any
146363// pending HTTP request will be aborted if the provided context is
146364// canceled.
146365func (c *SubnetworksSetIamPolicyCall) Context(ctx context.Context) *SubnetworksSetIamPolicyCall {
146366	c.ctx_ = ctx
146367	return c
146368}
146369
146370// Header returns an http.Header that can be modified by the caller to
146371// add HTTP headers to the request.
146372func (c *SubnetworksSetIamPolicyCall) Header() http.Header {
146373	if c.header_ == nil {
146374		c.header_ = make(http.Header)
146375	}
146376	return c.header_
146377}
146378
146379func (c *SubnetworksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
146380	reqHeaders := make(http.Header)
146381	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
146382	for k, v := range c.header_ {
146383		reqHeaders[k] = v
146384	}
146385	reqHeaders.Set("User-Agent", c.s.userAgent())
146386	var body io.Reader = nil
146387	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
146388	if err != nil {
146389		return nil, err
146390	}
146391	reqHeaders.Set("Content-Type", "application/json")
146392	c.urlParams_.Set("alt", alt)
146393	c.urlParams_.Set("prettyPrint", "false")
146394	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{resource}/setIamPolicy")
146395	urls += "?" + c.urlParams_.Encode()
146396	req, err := http.NewRequest("POST", urls, body)
146397	if err != nil {
146398		return nil, err
146399	}
146400	req.Header = reqHeaders
146401	googleapi.Expand(req.URL, map[string]string{
146402		"project":  c.project,
146403		"region":   c.region,
146404		"resource": c.resource,
146405	})
146406	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146407}
146408
146409// Do executes the "compute.subnetworks.setIamPolicy" call.
146410// Exactly one of *Policy or error will be non-nil. Any non-2xx status
146411// code is an error. Response headers are in either
146412// *Policy.ServerResponse.Header or (if a response was returned at all)
146413// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
146414// check whether the returned error was because http.StatusNotModified
146415// was returned.
146416func (c *SubnetworksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
146417	gensupport.SetOptions(c.urlParams_, opts...)
146418	res, err := c.doRequest("json")
146419	if res != nil && res.StatusCode == http.StatusNotModified {
146420		if res.Body != nil {
146421			res.Body.Close()
146422		}
146423		return nil, &googleapi.Error{
146424			Code:   res.StatusCode,
146425			Header: res.Header,
146426		}
146427	}
146428	if err != nil {
146429		return nil, err
146430	}
146431	defer googleapi.CloseBody(res)
146432	if err := googleapi.CheckResponse(res); err != nil {
146433		return nil, err
146434	}
146435	ret := &Policy{
146436		ServerResponse: googleapi.ServerResponse{
146437			Header:         res.Header,
146438			HTTPStatusCode: res.StatusCode,
146439		},
146440	}
146441	target := &ret
146442	if err := gensupport.DecodeResponse(target, res); err != nil {
146443		return nil, err
146444	}
146445	return ret, nil
146446	// {
146447	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
146448	//   "httpMethod": "POST",
146449	//   "id": "compute.subnetworks.setIamPolicy",
146450	//   "parameterOrder": [
146451	//     "project",
146452	//     "region",
146453	//     "resource"
146454	//   ],
146455	//   "parameters": {
146456	//     "project": {
146457	//       "description": "Project ID for this request.",
146458	//       "location": "path",
146459	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146460	//       "required": true,
146461	//       "type": "string"
146462	//     },
146463	//     "region": {
146464	//       "description": "The name of the region for this request.",
146465	//       "location": "path",
146466	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
146467	//       "required": true,
146468	//       "type": "string"
146469	//     },
146470	//     "resource": {
146471	//       "description": "Name or id of the resource for this request.",
146472	//       "location": "path",
146473	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146474	//       "required": true,
146475	//       "type": "string"
146476	//     }
146477	//   },
146478	//   "path": "projects/{project}/regions/{region}/subnetworks/{resource}/setIamPolicy",
146479	//   "request": {
146480	//     "$ref": "RegionSetPolicyRequest"
146481	//   },
146482	//   "response": {
146483	//     "$ref": "Policy"
146484	//   },
146485	//   "scopes": [
146486	//     "https://www.googleapis.com/auth/cloud-platform",
146487	//     "https://www.googleapis.com/auth/compute"
146488	//   ]
146489	// }
146490
146491}
146492
146493// method id "compute.subnetworks.setPrivateIpGoogleAccess":
146494
146495type SubnetworksSetPrivateIpGoogleAccessCall struct {
146496	s                                          *Service
146497	project                                    string
146498	region                                     string
146499	subnetwork                                 string
146500	subnetworkssetprivateipgoogleaccessrequest *SubnetworksSetPrivateIpGoogleAccessRequest
146501	urlParams_                                 gensupport.URLParams
146502	ctx_                                       context.Context
146503	header_                                    http.Header
146504}
146505
146506// SetPrivateIpGoogleAccess: Set whether VMs in this subnet can access
146507// Google services without assigning external IP addresses through
146508// Private Google Access.
146509//
146510// - project: Project ID for this request.
146511// - region: Name of the region scoping this request.
146512// - subnetwork: Name of the Subnetwork resource.
146513func (r *SubnetworksService) SetPrivateIpGoogleAccess(project string, region string, subnetwork string, subnetworkssetprivateipgoogleaccessrequest *SubnetworksSetPrivateIpGoogleAccessRequest) *SubnetworksSetPrivateIpGoogleAccessCall {
146514	c := &SubnetworksSetPrivateIpGoogleAccessCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146515	c.project = project
146516	c.region = region
146517	c.subnetwork = subnetwork
146518	c.subnetworkssetprivateipgoogleaccessrequest = subnetworkssetprivateipgoogleaccessrequest
146519	return c
146520}
146521
146522// RequestId sets the optional parameter "requestId": An optional
146523// request ID to identify requests. Specify a unique request ID so that
146524// if you must retry your request, the server will know to ignore the
146525// request if it has already been completed.
146526//
146527// For example, consider a situation where you make an initial request
146528// and the request times out. If you make the request again with the
146529// same request ID, the server can check if original operation with the
146530// same request ID was received, and if so, will ignore the second
146531// request. This prevents clients from accidentally creating duplicate
146532// commitments.
146533//
146534// The request ID must be a valid UUID with the exception that zero UUID
146535// is not supported (00000000-0000-0000-0000-000000000000).
146536func (c *SubnetworksSetPrivateIpGoogleAccessCall) RequestId(requestId string) *SubnetworksSetPrivateIpGoogleAccessCall {
146537	c.urlParams_.Set("requestId", requestId)
146538	return c
146539}
146540
146541// Fields allows partial responses to be retrieved. See
146542// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146543// for more information.
146544func (c *SubnetworksSetPrivateIpGoogleAccessCall) Fields(s ...googleapi.Field) *SubnetworksSetPrivateIpGoogleAccessCall {
146545	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146546	return c
146547}
146548
146549// Context sets the context to be used in this call's Do method. Any
146550// pending HTTP request will be aborted if the provided context is
146551// canceled.
146552func (c *SubnetworksSetPrivateIpGoogleAccessCall) Context(ctx context.Context) *SubnetworksSetPrivateIpGoogleAccessCall {
146553	c.ctx_ = ctx
146554	return c
146555}
146556
146557// Header returns an http.Header that can be modified by the caller to
146558// add HTTP headers to the request.
146559func (c *SubnetworksSetPrivateIpGoogleAccessCall) Header() http.Header {
146560	if c.header_ == nil {
146561		c.header_ = make(http.Header)
146562	}
146563	return c.header_
146564}
146565
146566func (c *SubnetworksSetPrivateIpGoogleAccessCall) doRequest(alt string) (*http.Response, error) {
146567	reqHeaders := make(http.Header)
146568	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
146569	for k, v := range c.header_ {
146570		reqHeaders[k] = v
146571	}
146572	reqHeaders.Set("User-Agent", c.s.userAgent())
146573	var body io.Reader = nil
146574	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetworkssetprivateipgoogleaccessrequest)
146575	if err != nil {
146576		return nil, err
146577	}
146578	reqHeaders.Set("Content-Type", "application/json")
146579	c.urlParams_.Set("alt", alt)
146580	c.urlParams_.Set("prettyPrint", "false")
146581	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess")
146582	urls += "?" + c.urlParams_.Encode()
146583	req, err := http.NewRequest("POST", urls, body)
146584	if err != nil {
146585		return nil, err
146586	}
146587	req.Header = reqHeaders
146588	googleapi.Expand(req.URL, map[string]string{
146589		"project":    c.project,
146590		"region":     c.region,
146591		"subnetwork": c.subnetwork,
146592	})
146593	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146594}
146595
146596// Do executes the "compute.subnetworks.setPrivateIpGoogleAccess" call.
146597// Exactly one of *Operation or error will be non-nil. Any non-2xx
146598// status code is an error. Response headers are in either
146599// *Operation.ServerResponse.Header or (if a response was returned at
146600// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
146601// to check whether the returned error was because
146602// http.StatusNotModified was returned.
146603func (c *SubnetworksSetPrivateIpGoogleAccessCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
146604	gensupport.SetOptions(c.urlParams_, opts...)
146605	res, err := c.doRequest("json")
146606	if res != nil && res.StatusCode == http.StatusNotModified {
146607		if res.Body != nil {
146608			res.Body.Close()
146609		}
146610		return nil, &googleapi.Error{
146611			Code:   res.StatusCode,
146612			Header: res.Header,
146613		}
146614	}
146615	if err != nil {
146616		return nil, err
146617	}
146618	defer googleapi.CloseBody(res)
146619	if err := googleapi.CheckResponse(res); err != nil {
146620		return nil, err
146621	}
146622	ret := &Operation{
146623		ServerResponse: googleapi.ServerResponse{
146624			Header:         res.Header,
146625			HTTPStatusCode: res.StatusCode,
146626		},
146627	}
146628	target := &ret
146629	if err := gensupport.DecodeResponse(target, res); err != nil {
146630		return nil, err
146631	}
146632	return ret, nil
146633	// {
146634	//   "description": "Set whether VMs in this subnet can access Google services without assigning external IP addresses through Private Google Access.",
146635	//   "httpMethod": "POST",
146636	//   "id": "compute.subnetworks.setPrivateIpGoogleAccess",
146637	//   "parameterOrder": [
146638	//     "project",
146639	//     "region",
146640	//     "subnetwork"
146641	//   ],
146642	//   "parameters": {
146643	//     "project": {
146644	//       "description": "Project ID for this request.",
146645	//       "location": "path",
146646	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146647	//       "required": true,
146648	//       "type": "string"
146649	//     },
146650	//     "region": {
146651	//       "description": "Name of the region scoping this request.",
146652	//       "location": "path",
146653	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
146654	//       "required": true,
146655	//       "type": "string"
146656	//     },
146657	//     "requestId": {
146658	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
146659	//       "location": "query",
146660	//       "type": "string"
146661	//     },
146662	//     "subnetwork": {
146663	//       "description": "Name of the Subnetwork resource.",
146664	//       "location": "path",
146665	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146666	//       "required": true,
146667	//       "type": "string"
146668	//     }
146669	//   },
146670	//   "path": "projects/{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess",
146671	//   "request": {
146672	//     "$ref": "SubnetworksSetPrivateIpGoogleAccessRequest"
146673	//   },
146674	//   "response": {
146675	//     "$ref": "Operation"
146676	//   },
146677	//   "scopes": [
146678	//     "https://www.googleapis.com/auth/cloud-platform",
146679	//     "https://www.googleapis.com/auth/compute"
146680	//   ]
146681	// }
146682
146683}
146684
146685// method id "compute.subnetworks.testIamPermissions":
146686
146687type SubnetworksTestIamPermissionsCall struct {
146688	s                      *Service
146689	project                string
146690	region                 string
146691	resource               string
146692	testpermissionsrequest *TestPermissionsRequest
146693	urlParams_             gensupport.URLParams
146694	ctx_                   context.Context
146695	header_                http.Header
146696}
146697
146698// TestIamPermissions: Returns permissions that a caller has on the
146699// specified resource.
146700//
146701// - project: Project ID for this request.
146702// - region: The name of the region for this request.
146703// - resource: Name or id of the resource for this request.
146704func (r *SubnetworksService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *SubnetworksTestIamPermissionsCall {
146705	c := &SubnetworksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146706	c.project = project
146707	c.region = region
146708	c.resource = resource
146709	c.testpermissionsrequest = testpermissionsrequest
146710	return c
146711}
146712
146713// Fields allows partial responses to be retrieved. See
146714// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146715// for more information.
146716func (c *SubnetworksTestIamPermissionsCall) Fields(s ...googleapi.Field) *SubnetworksTestIamPermissionsCall {
146717	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146718	return c
146719}
146720
146721// Context sets the context to be used in this call's Do method. Any
146722// pending HTTP request will be aborted if the provided context is
146723// canceled.
146724func (c *SubnetworksTestIamPermissionsCall) Context(ctx context.Context) *SubnetworksTestIamPermissionsCall {
146725	c.ctx_ = ctx
146726	return c
146727}
146728
146729// Header returns an http.Header that can be modified by the caller to
146730// add HTTP headers to the request.
146731func (c *SubnetworksTestIamPermissionsCall) Header() http.Header {
146732	if c.header_ == nil {
146733		c.header_ = make(http.Header)
146734	}
146735	return c.header_
146736}
146737
146738func (c *SubnetworksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
146739	reqHeaders := make(http.Header)
146740	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
146741	for k, v := range c.header_ {
146742		reqHeaders[k] = v
146743	}
146744	reqHeaders.Set("User-Agent", c.s.userAgent())
146745	var body io.Reader = nil
146746	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
146747	if err != nil {
146748		return nil, err
146749	}
146750	reqHeaders.Set("Content-Type", "application/json")
146751	c.urlParams_.Set("alt", alt)
146752	c.urlParams_.Set("prettyPrint", "false")
146753	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/subnetworks/{resource}/testIamPermissions")
146754	urls += "?" + c.urlParams_.Encode()
146755	req, err := http.NewRequest("POST", urls, body)
146756	if err != nil {
146757		return nil, err
146758	}
146759	req.Header = reqHeaders
146760	googleapi.Expand(req.URL, map[string]string{
146761		"project":  c.project,
146762		"region":   c.region,
146763		"resource": c.resource,
146764	})
146765	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146766}
146767
146768// Do executes the "compute.subnetworks.testIamPermissions" call.
146769// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
146770// non-2xx status code is an error. Response headers are in either
146771// *TestPermissionsResponse.ServerResponse.Header or (if a response was
146772// returned at all) in error.(*googleapi.Error).Header. Use
146773// googleapi.IsNotModified to check whether the returned error was
146774// because http.StatusNotModified was returned.
146775func (c *SubnetworksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
146776	gensupport.SetOptions(c.urlParams_, opts...)
146777	res, err := c.doRequest("json")
146778	if res != nil && res.StatusCode == http.StatusNotModified {
146779		if res.Body != nil {
146780			res.Body.Close()
146781		}
146782		return nil, &googleapi.Error{
146783			Code:   res.StatusCode,
146784			Header: res.Header,
146785		}
146786	}
146787	if err != nil {
146788		return nil, err
146789	}
146790	defer googleapi.CloseBody(res)
146791	if err := googleapi.CheckResponse(res); err != nil {
146792		return nil, err
146793	}
146794	ret := &TestPermissionsResponse{
146795		ServerResponse: googleapi.ServerResponse{
146796			Header:         res.Header,
146797			HTTPStatusCode: res.StatusCode,
146798		},
146799	}
146800	target := &ret
146801	if err := gensupport.DecodeResponse(target, res); err != nil {
146802		return nil, err
146803	}
146804	return ret, nil
146805	// {
146806	//   "description": "Returns permissions that a caller has on the specified resource.",
146807	//   "httpMethod": "POST",
146808	//   "id": "compute.subnetworks.testIamPermissions",
146809	//   "parameterOrder": [
146810	//     "project",
146811	//     "region",
146812	//     "resource"
146813	//   ],
146814	//   "parameters": {
146815	//     "project": {
146816	//       "description": "Project ID for this request.",
146817	//       "location": "path",
146818	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146819	//       "required": true,
146820	//       "type": "string"
146821	//     },
146822	//     "region": {
146823	//       "description": "The name of the region for this request.",
146824	//       "location": "path",
146825	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
146826	//       "required": true,
146827	//       "type": "string"
146828	//     },
146829	//     "resource": {
146830	//       "description": "Name or id of the resource for this request.",
146831	//       "location": "path",
146832	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146833	//       "required": true,
146834	//       "type": "string"
146835	//     }
146836	//   },
146837	//   "path": "projects/{project}/regions/{region}/subnetworks/{resource}/testIamPermissions",
146838	//   "request": {
146839	//     "$ref": "TestPermissionsRequest"
146840	//   },
146841	//   "response": {
146842	//     "$ref": "TestPermissionsResponse"
146843	//   },
146844	//   "scopes": [
146845	//     "https://www.googleapis.com/auth/cloud-platform",
146846	//     "https://www.googleapis.com/auth/compute",
146847	//     "https://www.googleapis.com/auth/compute.readonly"
146848	//   ]
146849	// }
146850
146851}
146852
146853// method id "compute.targetGrpcProxies.delete":
146854
146855type TargetGrpcProxiesDeleteCall struct {
146856	s               *Service
146857	project         string
146858	targetGrpcProxy string
146859	urlParams_      gensupport.URLParams
146860	ctx_            context.Context
146861	header_         http.Header
146862}
146863
146864// Delete: Deletes the specified TargetGrpcProxy in the given scope
146865//
146866// - project: Project ID for this request.
146867// - targetGrpcProxy: Name of the TargetGrpcProxy resource to delete.
146868func (r *TargetGrpcProxiesService) Delete(project string, targetGrpcProxy string) *TargetGrpcProxiesDeleteCall {
146869	c := &TargetGrpcProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146870	c.project = project
146871	c.targetGrpcProxy = targetGrpcProxy
146872	return c
146873}
146874
146875// RequestId sets the optional parameter "requestId": An optional
146876// request ID to identify requests. Specify a unique request ID so that
146877// if you must retry your request, the server will know to ignore the
146878// request if it has already been completed.
146879//
146880// For example, consider a situation where you make an initial request
146881// and the request times out. If you make the request again with the
146882// same request ID, the server can check if original operation with the
146883// same request ID was received, and if so, will ignore the second
146884// request. This prevents clients from accidentally creating duplicate
146885// commitments.
146886//
146887// The request ID must be a valid UUID with the exception that zero UUID
146888// is not supported (00000000-0000-0000-0000-000000000000).
146889func (c *TargetGrpcProxiesDeleteCall) RequestId(requestId string) *TargetGrpcProxiesDeleteCall {
146890	c.urlParams_.Set("requestId", requestId)
146891	return c
146892}
146893
146894// Fields allows partial responses to be retrieved. See
146895// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146896// for more information.
146897func (c *TargetGrpcProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesDeleteCall {
146898	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146899	return c
146900}
146901
146902// Context sets the context to be used in this call's Do method. Any
146903// pending HTTP request will be aborted if the provided context is
146904// canceled.
146905func (c *TargetGrpcProxiesDeleteCall) Context(ctx context.Context) *TargetGrpcProxiesDeleteCall {
146906	c.ctx_ = ctx
146907	return c
146908}
146909
146910// Header returns an http.Header that can be modified by the caller to
146911// add HTTP headers to the request.
146912func (c *TargetGrpcProxiesDeleteCall) Header() http.Header {
146913	if c.header_ == nil {
146914		c.header_ = make(http.Header)
146915	}
146916	return c.header_
146917}
146918
146919func (c *TargetGrpcProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
146920	reqHeaders := make(http.Header)
146921	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
146922	for k, v := range c.header_ {
146923		reqHeaders[k] = v
146924	}
146925	reqHeaders.Set("User-Agent", c.s.userAgent())
146926	var body io.Reader = nil
146927	c.urlParams_.Set("alt", alt)
146928	c.urlParams_.Set("prettyPrint", "false")
146929	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}")
146930	urls += "?" + c.urlParams_.Encode()
146931	req, err := http.NewRequest("DELETE", urls, body)
146932	if err != nil {
146933		return nil, err
146934	}
146935	req.Header = reqHeaders
146936	googleapi.Expand(req.URL, map[string]string{
146937		"project":         c.project,
146938		"targetGrpcProxy": c.targetGrpcProxy,
146939	})
146940	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146941}
146942
146943// Do executes the "compute.targetGrpcProxies.delete" call.
146944// Exactly one of *Operation or error will be non-nil. Any non-2xx
146945// status code is an error. Response headers are in either
146946// *Operation.ServerResponse.Header or (if a response was returned at
146947// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
146948// to check whether the returned error was because
146949// http.StatusNotModified was returned.
146950func (c *TargetGrpcProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
146951	gensupport.SetOptions(c.urlParams_, opts...)
146952	res, err := c.doRequest("json")
146953	if res != nil && res.StatusCode == http.StatusNotModified {
146954		if res.Body != nil {
146955			res.Body.Close()
146956		}
146957		return nil, &googleapi.Error{
146958			Code:   res.StatusCode,
146959			Header: res.Header,
146960		}
146961	}
146962	if err != nil {
146963		return nil, err
146964	}
146965	defer googleapi.CloseBody(res)
146966	if err := googleapi.CheckResponse(res); err != nil {
146967		return nil, err
146968	}
146969	ret := &Operation{
146970		ServerResponse: googleapi.ServerResponse{
146971			Header:         res.Header,
146972			HTTPStatusCode: res.StatusCode,
146973		},
146974	}
146975	target := &ret
146976	if err := gensupport.DecodeResponse(target, res); err != nil {
146977		return nil, err
146978	}
146979	return ret, nil
146980	// {
146981	//   "description": "Deletes the specified TargetGrpcProxy in the given scope",
146982	//   "httpMethod": "DELETE",
146983	//   "id": "compute.targetGrpcProxies.delete",
146984	//   "parameterOrder": [
146985	//     "project",
146986	//     "targetGrpcProxy"
146987	//   ],
146988	//   "parameters": {
146989	//     "project": {
146990	//       "description": "Project ID for this request.",
146991	//       "location": "path",
146992	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146993	//       "required": true,
146994	//       "type": "string"
146995	//     },
146996	//     "requestId": {
146997	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
146998	//       "location": "query",
146999	//       "type": "string"
147000	//     },
147001	//     "targetGrpcProxy": {
147002	//       "description": "Name of the TargetGrpcProxy resource to delete.",
147003	//       "location": "path",
147004	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
147005	//       "required": true,
147006	//       "type": "string"
147007	//     }
147008	//   },
147009	//   "path": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}",
147010	//   "response": {
147011	//     "$ref": "Operation"
147012	//   },
147013	//   "scopes": [
147014	//     "https://www.googleapis.com/auth/cloud-platform",
147015	//     "https://www.googleapis.com/auth/compute"
147016	//   ]
147017	// }
147018
147019}
147020
147021// method id "compute.targetGrpcProxies.get":
147022
147023type TargetGrpcProxiesGetCall struct {
147024	s               *Service
147025	project         string
147026	targetGrpcProxy string
147027	urlParams_      gensupport.URLParams
147028	ifNoneMatch_    string
147029	ctx_            context.Context
147030	header_         http.Header
147031}
147032
147033// Get: Returns the specified TargetGrpcProxy resource in the given
147034// scope.
147035//
147036// - project: Project ID for this request.
147037// - targetGrpcProxy: Name of the TargetGrpcProxy resource to return.
147038func (r *TargetGrpcProxiesService) Get(project string, targetGrpcProxy string) *TargetGrpcProxiesGetCall {
147039	c := &TargetGrpcProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147040	c.project = project
147041	c.targetGrpcProxy = targetGrpcProxy
147042	return c
147043}
147044
147045// Fields allows partial responses to be retrieved. See
147046// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147047// for more information.
147048func (c *TargetGrpcProxiesGetCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesGetCall {
147049	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147050	return c
147051}
147052
147053// IfNoneMatch sets the optional parameter which makes the operation
147054// fail if the object's ETag matches the given value. This is useful for
147055// getting updates only after the object has changed since the last
147056// request. Use googleapi.IsNotModified to check whether the response
147057// error from Do is the result of In-None-Match.
147058func (c *TargetGrpcProxiesGetCall) IfNoneMatch(entityTag string) *TargetGrpcProxiesGetCall {
147059	c.ifNoneMatch_ = entityTag
147060	return c
147061}
147062
147063// Context sets the context to be used in this call's Do method. Any
147064// pending HTTP request will be aborted if the provided context is
147065// canceled.
147066func (c *TargetGrpcProxiesGetCall) Context(ctx context.Context) *TargetGrpcProxiesGetCall {
147067	c.ctx_ = ctx
147068	return c
147069}
147070
147071// Header returns an http.Header that can be modified by the caller to
147072// add HTTP headers to the request.
147073func (c *TargetGrpcProxiesGetCall) Header() http.Header {
147074	if c.header_ == nil {
147075		c.header_ = make(http.Header)
147076	}
147077	return c.header_
147078}
147079
147080func (c *TargetGrpcProxiesGetCall) doRequest(alt string) (*http.Response, error) {
147081	reqHeaders := make(http.Header)
147082	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
147083	for k, v := range c.header_ {
147084		reqHeaders[k] = v
147085	}
147086	reqHeaders.Set("User-Agent", c.s.userAgent())
147087	if c.ifNoneMatch_ != "" {
147088		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
147089	}
147090	var body io.Reader = nil
147091	c.urlParams_.Set("alt", alt)
147092	c.urlParams_.Set("prettyPrint", "false")
147093	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}")
147094	urls += "?" + c.urlParams_.Encode()
147095	req, err := http.NewRequest("GET", urls, body)
147096	if err != nil {
147097		return nil, err
147098	}
147099	req.Header = reqHeaders
147100	googleapi.Expand(req.URL, map[string]string{
147101		"project":         c.project,
147102		"targetGrpcProxy": c.targetGrpcProxy,
147103	})
147104	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147105}
147106
147107// Do executes the "compute.targetGrpcProxies.get" call.
147108// Exactly one of *TargetGrpcProxy or error will be non-nil. Any non-2xx
147109// status code is an error. Response headers are in either
147110// *TargetGrpcProxy.ServerResponse.Header or (if a response was returned
147111// at all) in error.(*googleapi.Error).Header. Use
147112// googleapi.IsNotModified to check whether the returned error was
147113// because http.StatusNotModified was returned.
147114func (c *TargetGrpcProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetGrpcProxy, error) {
147115	gensupport.SetOptions(c.urlParams_, opts...)
147116	res, err := c.doRequest("json")
147117	if res != nil && res.StatusCode == http.StatusNotModified {
147118		if res.Body != nil {
147119			res.Body.Close()
147120		}
147121		return nil, &googleapi.Error{
147122			Code:   res.StatusCode,
147123			Header: res.Header,
147124		}
147125	}
147126	if err != nil {
147127		return nil, err
147128	}
147129	defer googleapi.CloseBody(res)
147130	if err := googleapi.CheckResponse(res); err != nil {
147131		return nil, err
147132	}
147133	ret := &TargetGrpcProxy{
147134		ServerResponse: googleapi.ServerResponse{
147135			Header:         res.Header,
147136			HTTPStatusCode: res.StatusCode,
147137		},
147138	}
147139	target := &ret
147140	if err := gensupport.DecodeResponse(target, res); err != nil {
147141		return nil, err
147142	}
147143	return ret, nil
147144	// {
147145	//   "description": "Returns the specified TargetGrpcProxy resource in the given scope.",
147146	//   "httpMethod": "GET",
147147	//   "id": "compute.targetGrpcProxies.get",
147148	//   "parameterOrder": [
147149	//     "project",
147150	//     "targetGrpcProxy"
147151	//   ],
147152	//   "parameters": {
147153	//     "project": {
147154	//       "description": "Project ID for this request.",
147155	//       "location": "path",
147156	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147157	//       "required": true,
147158	//       "type": "string"
147159	//     },
147160	//     "targetGrpcProxy": {
147161	//       "description": "Name of the TargetGrpcProxy resource to return.",
147162	//       "location": "path",
147163	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
147164	//       "required": true,
147165	//       "type": "string"
147166	//     }
147167	//   },
147168	//   "path": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}",
147169	//   "response": {
147170	//     "$ref": "TargetGrpcProxy"
147171	//   },
147172	//   "scopes": [
147173	//     "https://www.googleapis.com/auth/cloud-platform",
147174	//     "https://www.googleapis.com/auth/compute",
147175	//     "https://www.googleapis.com/auth/compute.readonly"
147176	//   ]
147177	// }
147178
147179}
147180
147181// method id "compute.targetGrpcProxies.insert":
147182
147183type TargetGrpcProxiesInsertCall struct {
147184	s               *Service
147185	project         string
147186	targetgrpcproxy *TargetGrpcProxy
147187	urlParams_      gensupport.URLParams
147188	ctx_            context.Context
147189	header_         http.Header
147190}
147191
147192// Insert: Creates a TargetGrpcProxy in the specified project in the
147193// given scope using the parameters that are included in the request.
147194//
147195// - project: Project ID for this request.
147196func (r *TargetGrpcProxiesService) Insert(project string, targetgrpcproxy *TargetGrpcProxy) *TargetGrpcProxiesInsertCall {
147197	c := &TargetGrpcProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147198	c.project = project
147199	c.targetgrpcproxy = targetgrpcproxy
147200	return c
147201}
147202
147203// RequestId sets the optional parameter "requestId": An optional
147204// request ID to identify requests. Specify a unique request ID so that
147205// if you must retry your request, the server will know to ignore the
147206// request if it has already been completed.
147207//
147208// For example, consider a situation where you make an initial request
147209// and the request times out. If you make the request again with the
147210// same request ID, the server can check if original operation with the
147211// same request ID was received, and if so, will ignore the second
147212// request. This prevents clients from accidentally creating duplicate
147213// commitments.
147214//
147215// The request ID must be a valid UUID with the exception that zero UUID
147216// is not supported (00000000-0000-0000-0000-000000000000).
147217func (c *TargetGrpcProxiesInsertCall) RequestId(requestId string) *TargetGrpcProxiesInsertCall {
147218	c.urlParams_.Set("requestId", requestId)
147219	return c
147220}
147221
147222// Fields allows partial responses to be retrieved. See
147223// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147224// for more information.
147225func (c *TargetGrpcProxiesInsertCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesInsertCall {
147226	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147227	return c
147228}
147229
147230// Context sets the context to be used in this call's Do method. Any
147231// pending HTTP request will be aborted if the provided context is
147232// canceled.
147233func (c *TargetGrpcProxiesInsertCall) Context(ctx context.Context) *TargetGrpcProxiesInsertCall {
147234	c.ctx_ = ctx
147235	return c
147236}
147237
147238// Header returns an http.Header that can be modified by the caller to
147239// add HTTP headers to the request.
147240func (c *TargetGrpcProxiesInsertCall) Header() http.Header {
147241	if c.header_ == nil {
147242		c.header_ = make(http.Header)
147243	}
147244	return c.header_
147245}
147246
147247func (c *TargetGrpcProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
147248	reqHeaders := make(http.Header)
147249	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
147250	for k, v := range c.header_ {
147251		reqHeaders[k] = v
147252	}
147253	reqHeaders.Set("User-Agent", c.s.userAgent())
147254	var body io.Reader = nil
147255	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetgrpcproxy)
147256	if err != nil {
147257		return nil, err
147258	}
147259	reqHeaders.Set("Content-Type", "application/json")
147260	c.urlParams_.Set("alt", alt)
147261	c.urlParams_.Set("prettyPrint", "false")
147262	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetGrpcProxies")
147263	urls += "?" + c.urlParams_.Encode()
147264	req, err := http.NewRequest("POST", urls, body)
147265	if err != nil {
147266		return nil, err
147267	}
147268	req.Header = reqHeaders
147269	googleapi.Expand(req.URL, map[string]string{
147270		"project": c.project,
147271	})
147272	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147273}
147274
147275// Do executes the "compute.targetGrpcProxies.insert" call.
147276// Exactly one of *Operation or error will be non-nil. Any non-2xx
147277// status code is an error. Response headers are in either
147278// *Operation.ServerResponse.Header or (if a response was returned at
147279// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
147280// to check whether the returned error was because
147281// http.StatusNotModified was returned.
147282func (c *TargetGrpcProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
147283	gensupport.SetOptions(c.urlParams_, opts...)
147284	res, err := c.doRequest("json")
147285	if res != nil && res.StatusCode == http.StatusNotModified {
147286		if res.Body != nil {
147287			res.Body.Close()
147288		}
147289		return nil, &googleapi.Error{
147290			Code:   res.StatusCode,
147291			Header: res.Header,
147292		}
147293	}
147294	if err != nil {
147295		return nil, err
147296	}
147297	defer googleapi.CloseBody(res)
147298	if err := googleapi.CheckResponse(res); err != nil {
147299		return nil, err
147300	}
147301	ret := &Operation{
147302		ServerResponse: googleapi.ServerResponse{
147303			Header:         res.Header,
147304			HTTPStatusCode: res.StatusCode,
147305		},
147306	}
147307	target := &ret
147308	if err := gensupport.DecodeResponse(target, res); err != nil {
147309		return nil, err
147310	}
147311	return ret, nil
147312	// {
147313	//   "description": "Creates a TargetGrpcProxy in the specified project in the given scope using the parameters that are included in the request.",
147314	//   "httpMethod": "POST",
147315	//   "id": "compute.targetGrpcProxies.insert",
147316	//   "parameterOrder": [
147317	//     "project"
147318	//   ],
147319	//   "parameters": {
147320	//     "project": {
147321	//       "description": "Project ID for this request.",
147322	//       "location": "path",
147323	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147324	//       "required": true,
147325	//       "type": "string"
147326	//     },
147327	//     "requestId": {
147328	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
147329	//       "location": "query",
147330	//       "type": "string"
147331	//     }
147332	//   },
147333	//   "path": "projects/{project}/global/targetGrpcProxies",
147334	//   "request": {
147335	//     "$ref": "TargetGrpcProxy"
147336	//   },
147337	//   "response": {
147338	//     "$ref": "Operation"
147339	//   },
147340	//   "scopes": [
147341	//     "https://www.googleapis.com/auth/cloud-platform",
147342	//     "https://www.googleapis.com/auth/compute"
147343	//   ]
147344	// }
147345
147346}
147347
147348// method id "compute.targetGrpcProxies.list":
147349
147350type TargetGrpcProxiesListCall struct {
147351	s            *Service
147352	project      string
147353	urlParams_   gensupport.URLParams
147354	ifNoneMatch_ string
147355	ctx_         context.Context
147356	header_      http.Header
147357}
147358
147359// List: Lists the TargetGrpcProxies for a project in the given scope.
147360//
147361// - project: Project ID for this request.
147362func (r *TargetGrpcProxiesService) List(project string) *TargetGrpcProxiesListCall {
147363	c := &TargetGrpcProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147364	c.project = project
147365	return c
147366}
147367
147368// Filter sets the optional parameter "filter": A filter expression that
147369// filters resources listed in the response. The expression must specify
147370// the field name, a comparison operator, and the value that you want to
147371// use for filtering. The value must be a string, a number, or a
147372// boolean. The comparison operator must be either `=`, `!=`, `>`, or
147373// `<`.
147374//
147375// For example, if you are filtering Compute Engine instances, you can
147376// exclude instances named `example-instance` by specifying `name !=
147377// example-instance`.
147378//
147379// You can also filter nested fields. For example, you could specify
147380// `scheduling.automaticRestart = false` to include instances only if
147381// they are not scheduled for automatic restarts. You can use filtering
147382// on nested fields to filter based on resource labels.
147383//
147384// To filter on multiple expressions, provide each separate expression
147385// within parentheses. For example: ``` (scheduling.automaticRestart =
147386// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
147387// is an `AND` expression. However, you can include `AND` and `OR`
147388// expressions explicitly. For example: ``` (cpuPlatform = "Intel
147389// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
147390// (scheduling.automaticRestart = true) ```
147391func (c *TargetGrpcProxiesListCall) Filter(filter string) *TargetGrpcProxiesListCall {
147392	c.urlParams_.Set("filter", filter)
147393	return c
147394}
147395
147396// MaxResults sets the optional parameter "maxResults": The maximum
147397// number of results per page that should be returned. If the number of
147398// available results is larger than `maxResults`, Compute Engine returns
147399// a `nextPageToken` that can be used to get the next page of results in
147400// subsequent list requests. Acceptable values are `0` to `500`,
147401// inclusive. (Default: `500`)
147402func (c *TargetGrpcProxiesListCall) MaxResults(maxResults int64) *TargetGrpcProxiesListCall {
147403	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
147404	return c
147405}
147406
147407// OrderBy sets the optional parameter "orderBy": Sorts list results by
147408// a certain order. By default, results are returned in alphanumerical
147409// order based on the resource name.
147410//
147411// You can also sort results in descending order based on the creation
147412// timestamp using `orderBy="creationTimestamp desc". This sorts
147413// results based on the `creationTimestamp` field in reverse
147414// chronological order (newest result first). Use this to sort resources
147415// like operations so that the newest operation is returned
147416// first.
147417//
147418// Currently, only sorting by `name` or `creationTimestamp desc` is
147419// supported.
147420func (c *TargetGrpcProxiesListCall) OrderBy(orderBy string) *TargetGrpcProxiesListCall {
147421	c.urlParams_.Set("orderBy", orderBy)
147422	return c
147423}
147424
147425// PageToken sets the optional parameter "pageToken": Specifies a page
147426// token to use. Set `pageToken` to the `nextPageToken` returned by a
147427// previous list request to get the next page of results.
147428func (c *TargetGrpcProxiesListCall) PageToken(pageToken string) *TargetGrpcProxiesListCall {
147429	c.urlParams_.Set("pageToken", pageToken)
147430	return c
147431}
147432
147433// ReturnPartialSuccess sets the optional parameter
147434// "returnPartialSuccess": Opt-in for partial success behavior which
147435// provides partial results in case of failure. The default value is
147436// false.
147437func (c *TargetGrpcProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetGrpcProxiesListCall {
147438	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
147439	return c
147440}
147441
147442// Fields allows partial responses to be retrieved. See
147443// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147444// for more information.
147445func (c *TargetGrpcProxiesListCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesListCall {
147446	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147447	return c
147448}
147449
147450// IfNoneMatch sets the optional parameter which makes the operation
147451// fail if the object's ETag matches the given value. This is useful for
147452// getting updates only after the object has changed since the last
147453// request. Use googleapi.IsNotModified to check whether the response
147454// error from Do is the result of In-None-Match.
147455func (c *TargetGrpcProxiesListCall) IfNoneMatch(entityTag string) *TargetGrpcProxiesListCall {
147456	c.ifNoneMatch_ = entityTag
147457	return c
147458}
147459
147460// Context sets the context to be used in this call's Do method. Any
147461// pending HTTP request will be aborted if the provided context is
147462// canceled.
147463func (c *TargetGrpcProxiesListCall) Context(ctx context.Context) *TargetGrpcProxiesListCall {
147464	c.ctx_ = ctx
147465	return c
147466}
147467
147468// Header returns an http.Header that can be modified by the caller to
147469// add HTTP headers to the request.
147470func (c *TargetGrpcProxiesListCall) Header() http.Header {
147471	if c.header_ == nil {
147472		c.header_ = make(http.Header)
147473	}
147474	return c.header_
147475}
147476
147477func (c *TargetGrpcProxiesListCall) doRequest(alt string) (*http.Response, error) {
147478	reqHeaders := make(http.Header)
147479	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
147480	for k, v := range c.header_ {
147481		reqHeaders[k] = v
147482	}
147483	reqHeaders.Set("User-Agent", c.s.userAgent())
147484	if c.ifNoneMatch_ != "" {
147485		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
147486	}
147487	var body io.Reader = nil
147488	c.urlParams_.Set("alt", alt)
147489	c.urlParams_.Set("prettyPrint", "false")
147490	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetGrpcProxies")
147491	urls += "?" + c.urlParams_.Encode()
147492	req, err := http.NewRequest("GET", urls, body)
147493	if err != nil {
147494		return nil, err
147495	}
147496	req.Header = reqHeaders
147497	googleapi.Expand(req.URL, map[string]string{
147498		"project": c.project,
147499	})
147500	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147501}
147502
147503// Do executes the "compute.targetGrpcProxies.list" call.
147504// Exactly one of *TargetGrpcProxyList or error will be non-nil. Any
147505// non-2xx status code is an error. Response headers are in either
147506// *TargetGrpcProxyList.ServerResponse.Header or (if a response was
147507// returned at all) in error.(*googleapi.Error).Header. Use
147508// googleapi.IsNotModified to check whether the returned error was
147509// because http.StatusNotModified was returned.
147510func (c *TargetGrpcProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetGrpcProxyList, error) {
147511	gensupport.SetOptions(c.urlParams_, opts...)
147512	res, err := c.doRequest("json")
147513	if res != nil && res.StatusCode == http.StatusNotModified {
147514		if res.Body != nil {
147515			res.Body.Close()
147516		}
147517		return nil, &googleapi.Error{
147518			Code:   res.StatusCode,
147519			Header: res.Header,
147520		}
147521	}
147522	if err != nil {
147523		return nil, err
147524	}
147525	defer googleapi.CloseBody(res)
147526	if err := googleapi.CheckResponse(res); err != nil {
147527		return nil, err
147528	}
147529	ret := &TargetGrpcProxyList{
147530		ServerResponse: googleapi.ServerResponse{
147531			Header:         res.Header,
147532			HTTPStatusCode: res.StatusCode,
147533		},
147534	}
147535	target := &ret
147536	if err := gensupport.DecodeResponse(target, res); err != nil {
147537		return nil, err
147538	}
147539	return ret, nil
147540	// {
147541	//   "description": "Lists the TargetGrpcProxies for a project in the given scope.",
147542	//   "httpMethod": "GET",
147543	//   "id": "compute.targetGrpcProxies.list",
147544	//   "parameterOrder": [
147545	//     "project"
147546	//   ],
147547	//   "parameters": {
147548	//     "filter": {
147549	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
147550	//       "location": "query",
147551	//       "type": "string"
147552	//     },
147553	//     "maxResults": {
147554	//       "default": "500",
147555	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
147556	//       "format": "uint32",
147557	//       "location": "query",
147558	//       "minimum": "0",
147559	//       "type": "integer"
147560	//     },
147561	//     "orderBy": {
147562	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
147563	//       "location": "query",
147564	//       "type": "string"
147565	//     },
147566	//     "pageToken": {
147567	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
147568	//       "location": "query",
147569	//       "type": "string"
147570	//     },
147571	//     "project": {
147572	//       "description": "Project ID for this request.",
147573	//       "location": "path",
147574	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147575	//       "required": true,
147576	//       "type": "string"
147577	//     },
147578	//     "returnPartialSuccess": {
147579	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
147580	//       "location": "query",
147581	//       "type": "boolean"
147582	//     }
147583	//   },
147584	//   "path": "projects/{project}/global/targetGrpcProxies",
147585	//   "response": {
147586	//     "$ref": "TargetGrpcProxyList"
147587	//   },
147588	//   "scopes": [
147589	//     "https://www.googleapis.com/auth/cloud-platform",
147590	//     "https://www.googleapis.com/auth/compute",
147591	//     "https://www.googleapis.com/auth/compute.readonly"
147592	//   ]
147593	// }
147594
147595}
147596
147597// Pages invokes f for each page of results.
147598// A non-nil error returned from f will halt the iteration.
147599// The provided context supersedes any context provided to the Context method.
147600func (c *TargetGrpcProxiesListCall) Pages(ctx context.Context, f func(*TargetGrpcProxyList) error) error {
147601	c.ctx_ = ctx
147602	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
147603	for {
147604		x, err := c.Do()
147605		if err != nil {
147606			return err
147607		}
147608		if err := f(x); err != nil {
147609			return err
147610		}
147611		if x.NextPageToken == "" {
147612			return nil
147613		}
147614		c.PageToken(x.NextPageToken)
147615	}
147616}
147617
147618// method id "compute.targetGrpcProxies.patch":
147619
147620type TargetGrpcProxiesPatchCall struct {
147621	s               *Service
147622	project         string
147623	targetGrpcProxy string
147624	targetgrpcproxy *TargetGrpcProxy
147625	urlParams_      gensupport.URLParams
147626	ctx_            context.Context
147627	header_         http.Header
147628}
147629
147630// Patch: Patches the specified TargetGrpcProxy resource with the data
147631// included in the request. This method supports PATCH semantics and
147632// uses JSON merge patch format and processing rules.
147633//
147634// - project: Project ID for this request.
147635// - targetGrpcProxy: Name of the TargetGrpcProxy resource to patch.
147636func (r *TargetGrpcProxiesService) Patch(project string, targetGrpcProxy string, targetgrpcproxy *TargetGrpcProxy) *TargetGrpcProxiesPatchCall {
147637	c := &TargetGrpcProxiesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147638	c.project = project
147639	c.targetGrpcProxy = targetGrpcProxy
147640	c.targetgrpcproxy = targetgrpcproxy
147641	return c
147642}
147643
147644// RequestId sets the optional parameter "requestId": An optional
147645// request ID to identify requests. Specify a unique request ID so that
147646// if you must retry your request, the server will know to ignore the
147647// request if it has already been completed.
147648//
147649// For example, consider a situation where you make an initial request
147650// and the request times out. If you make the request again with the
147651// same request ID, the server can check if original operation with the
147652// same request ID was received, and if so, will ignore the second
147653// request. This prevents clients from accidentally creating duplicate
147654// commitments.
147655//
147656// The request ID must be a valid UUID with the exception that zero UUID
147657// is not supported (00000000-0000-0000-0000-000000000000).
147658func (c *TargetGrpcProxiesPatchCall) RequestId(requestId string) *TargetGrpcProxiesPatchCall {
147659	c.urlParams_.Set("requestId", requestId)
147660	return c
147661}
147662
147663// Fields allows partial responses to be retrieved. See
147664// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147665// for more information.
147666func (c *TargetGrpcProxiesPatchCall) Fields(s ...googleapi.Field) *TargetGrpcProxiesPatchCall {
147667	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147668	return c
147669}
147670
147671// Context sets the context to be used in this call's Do method. Any
147672// pending HTTP request will be aborted if the provided context is
147673// canceled.
147674func (c *TargetGrpcProxiesPatchCall) Context(ctx context.Context) *TargetGrpcProxiesPatchCall {
147675	c.ctx_ = ctx
147676	return c
147677}
147678
147679// Header returns an http.Header that can be modified by the caller to
147680// add HTTP headers to the request.
147681func (c *TargetGrpcProxiesPatchCall) Header() http.Header {
147682	if c.header_ == nil {
147683		c.header_ = make(http.Header)
147684	}
147685	return c.header_
147686}
147687
147688func (c *TargetGrpcProxiesPatchCall) doRequest(alt string) (*http.Response, error) {
147689	reqHeaders := make(http.Header)
147690	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
147691	for k, v := range c.header_ {
147692		reqHeaders[k] = v
147693	}
147694	reqHeaders.Set("User-Agent", c.s.userAgent())
147695	var body io.Reader = nil
147696	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetgrpcproxy)
147697	if err != nil {
147698		return nil, err
147699	}
147700	reqHeaders.Set("Content-Type", "application/json")
147701	c.urlParams_.Set("alt", alt)
147702	c.urlParams_.Set("prettyPrint", "false")
147703	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}")
147704	urls += "?" + c.urlParams_.Encode()
147705	req, err := http.NewRequest("PATCH", urls, body)
147706	if err != nil {
147707		return nil, err
147708	}
147709	req.Header = reqHeaders
147710	googleapi.Expand(req.URL, map[string]string{
147711		"project":         c.project,
147712		"targetGrpcProxy": c.targetGrpcProxy,
147713	})
147714	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147715}
147716
147717// Do executes the "compute.targetGrpcProxies.patch" call.
147718// Exactly one of *Operation or error will be non-nil. Any non-2xx
147719// status code is an error. Response headers are in either
147720// *Operation.ServerResponse.Header or (if a response was returned at
147721// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
147722// to check whether the returned error was because
147723// http.StatusNotModified was returned.
147724func (c *TargetGrpcProxiesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
147725	gensupport.SetOptions(c.urlParams_, opts...)
147726	res, err := c.doRequest("json")
147727	if res != nil && res.StatusCode == http.StatusNotModified {
147728		if res.Body != nil {
147729			res.Body.Close()
147730		}
147731		return nil, &googleapi.Error{
147732			Code:   res.StatusCode,
147733			Header: res.Header,
147734		}
147735	}
147736	if err != nil {
147737		return nil, err
147738	}
147739	defer googleapi.CloseBody(res)
147740	if err := googleapi.CheckResponse(res); err != nil {
147741		return nil, err
147742	}
147743	ret := &Operation{
147744		ServerResponse: googleapi.ServerResponse{
147745			Header:         res.Header,
147746			HTTPStatusCode: res.StatusCode,
147747		},
147748	}
147749	target := &ret
147750	if err := gensupport.DecodeResponse(target, res); err != nil {
147751		return nil, err
147752	}
147753	return ret, nil
147754	// {
147755	//   "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.",
147756	//   "httpMethod": "PATCH",
147757	//   "id": "compute.targetGrpcProxies.patch",
147758	//   "parameterOrder": [
147759	//     "project",
147760	//     "targetGrpcProxy"
147761	//   ],
147762	//   "parameters": {
147763	//     "project": {
147764	//       "description": "Project ID for this request.",
147765	//       "location": "path",
147766	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147767	//       "required": true,
147768	//       "type": "string"
147769	//     },
147770	//     "requestId": {
147771	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
147772	//       "location": "query",
147773	//       "type": "string"
147774	//     },
147775	//     "targetGrpcProxy": {
147776	//       "description": "Name of the TargetGrpcProxy resource to patch.",
147777	//       "location": "path",
147778	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
147779	//       "required": true,
147780	//       "type": "string"
147781	//     }
147782	//   },
147783	//   "path": "projects/{project}/global/targetGrpcProxies/{targetGrpcProxy}",
147784	//   "request": {
147785	//     "$ref": "TargetGrpcProxy"
147786	//   },
147787	//   "response": {
147788	//     "$ref": "Operation"
147789	//   },
147790	//   "scopes": [
147791	//     "https://www.googleapis.com/auth/cloud-platform",
147792	//     "https://www.googleapis.com/auth/compute"
147793	//   ]
147794	// }
147795
147796}
147797
147798// method id "compute.targetHttpProxies.aggregatedList":
147799
147800type TargetHttpProxiesAggregatedListCall struct {
147801	s            *Service
147802	project      string
147803	urlParams_   gensupport.URLParams
147804	ifNoneMatch_ string
147805	ctx_         context.Context
147806	header_      http.Header
147807}
147808
147809// AggregatedList: Retrieves the list of all TargetHttpProxy resources,
147810// regional and global, available to the specified project.
147811//
147812// - project: Name of the project scoping this request.
147813func (r *TargetHttpProxiesService) AggregatedList(project string) *TargetHttpProxiesAggregatedListCall {
147814	c := &TargetHttpProxiesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147815	c.project = project
147816	return c
147817}
147818
147819// Filter sets the optional parameter "filter": A filter expression that
147820// filters resources listed in the response. The expression must specify
147821// the field name, a comparison operator, and the value that you want to
147822// use for filtering. The value must be a string, a number, or a
147823// boolean. The comparison operator must be either `=`, `!=`, `>`, or
147824// `<`.
147825//
147826// For example, if you are filtering Compute Engine instances, you can
147827// exclude instances named `example-instance` by specifying `name !=
147828// example-instance`.
147829//
147830// You can also filter nested fields. For example, you could specify
147831// `scheduling.automaticRestart = false` to include instances only if
147832// they are not scheduled for automatic restarts. You can use filtering
147833// on nested fields to filter based on resource labels.
147834//
147835// To filter on multiple expressions, provide each separate expression
147836// within parentheses. For example: ``` (scheduling.automaticRestart =
147837// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
147838// is an `AND` expression. However, you can include `AND` and `OR`
147839// expressions explicitly. For example: ``` (cpuPlatform = "Intel
147840// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
147841// (scheduling.automaticRestart = true) ```
147842func (c *TargetHttpProxiesAggregatedListCall) Filter(filter string) *TargetHttpProxiesAggregatedListCall {
147843	c.urlParams_.Set("filter", filter)
147844	return c
147845}
147846
147847// IncludeAllScopes sets the optional parameter "includeAllScopes":
147848// Indicates whether every visible scope for each scope type (zone,
147849// region, global) should be included in the response. For new resource
147850// types added after this field, the flag has no effect as new resource
147851// types will always include every visible scope for each scope type in
147852// response. For resource types which predate this field, if this flag
147853// is omitted or false, only scopes of the scope types where the
147854// resource type is expected to be found will be included.
147855func (c *TargetHttpProxiesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetHttpProxiesAggregatedListCall {
147856	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
147857	return c
147858}
147859
147860// MaxResults sets the optional parameter "maxResults": The maximum
147861// number of results per page that should be returned. If the number of
147862// available results is larger than `maxResults`, Compute Engine returns
147863// a `nextPageToken` that can be used to get the next page of results in
147864// subsequent list requests. Acceptable values are `0` to `500`,
147865// inclusive. (Default: `500`)
147866func (c *TargetHttpProxiesAggregatedListCall) MaxResults(maxResults int64) *TargetHttpProxiesAggregatedListCall {
147867	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
147868	return c
147869}
147870
147871// OrderBy sets the optional parameter "orderBy": Sorts list results by
147872// a certain order. By default, results are returned in alphanumerical
147873// order based on the resource name.
147874//
147875// You can also sort results in descending order based on the creation
147876// timestamp using `orderBy="creationTimestamp desc". This sorts
147877// results based on the `creationTimestamp` field in reverse
147878// chronological order (newest result first). Use this to sort resources
147879// like operations so that the newest operation is returned
147880// first.
147881//
147882// Currently, only sorting by `name` or `creationTimestamp desc` is
147883// supported.
147884func (c *TargetHttpProxiesAggregatedListCall) OrderBy(orderBy string) *TargetHttpProxiesAggregatedListCall {
147885	c.urlParams_.Set("orderBy", orderBy)
147886	return c
147887}
147888
147889// PageToken sets the optional parameter "pageToken": Specifies a page
147890// token to use. Set `pageToken` to the `nextPageToken` returned by a
147891// previous list request to get the next page of results.
147892func (c *TargetHttpProxiesAggregatedListCall) PageToken(pageToken string) *TargetHttpProxiesAggregatedListCall {
147893	c.urlParams_.Set("pageToken", pageToken)
147894	return c
147895}
147896
147897// ReturnPartialSuccess sets the optional parameter
147898// "returnPartialSuccess": Opt-in for partial success behavior which
147899// provides partial results in case of failure. The default value is
147900// false.
147901func (c *TargetHttpProxiesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetHttpProxiesAggregatedListCall {
147902	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
147903	return c
147904}
147905
147906// Fields allows partial responses to be retrieved. See
147907// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147908// for more information.
147909func (c *TargetHttpProxiesAggregatedListCall) Fields(s ...googleapi.Field) *TargetHttpProxiesAggregatedListCall {
147910	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147911	return c
147912}
147913
147914// IfNoneMatch sets the optional parameter which makes the operation
147915// fail if the object's ETag matches the given value. This is useful for
147916// getting updates only after the object has changed since the last
147917// request. Use googleapi.IsNotModified to check whether the response
147918// error from Do is the result of In-None-Match.
147919func (c *TargetHttpProxiesAggregatedListCall) IfNoneMatch(entityTag string) *TargetHttpProxiesAggregatedListCall {
147920	c.ifNoneMatch_ = entityTag
147921	return c
147922}
147923
147924// Context sets the context to be used in this call's Do method. Any
147925// pending HTTP request will be aborted if the provided context is
147926// canceled.
147927func (c *TargetHttpProxiesAggregatedListCall) Context(ctx context.Context) *TargetHttpProxiesAggregatedListCall {
147928	c.ctx_ = ctx
147929	return c
147930}
147931
147932// Header returns an http.Header that can be modified by the caller to
147933// add HTTP headers to the request.
147934func (c *TargetHttpProxiesAggregatedListCall) Header() http.Header {
147935	if c.header_ == nil {
147936		c.header_ = make(http.Header)
147937	}
147938	return c.header_
147939}
147940
147941func (c *TargetHttpProxiesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
147942	reqHeaders := make(http.Header)
147943	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
147944	for k, v := range c.header_ {
147945		reqHeaders[k] = v
147946	}
147947	reqHeaders.Set("User-Agent", c.s.userAgent())
147948	if c.ifNoneMatch_ != "" {
147949		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
147950	}
147951	var body io.Reader = nil
147952	c.urlParams_.Set("alt", alt)
147953	c.urlParams_.Set("prettyPrint", "false")
147954	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/targetHttpProxies")
147955	urls += "?" + c.urlParams_.Encode()
147956	req, err := http.NewRequest("GET", urls, body)
147957	if err != nil {
147958		return nil, err
147959	}
147960	req.Header = reqHeaders
147961	googleapi.Expand(req.URL, map[string]string{
147962		"project": c.project,
147963	})
147964	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147965}
147966
147967// Do executes the "compute.targetHttpProxies.aggregatedList" call.
147968// Exactly one of *TargetHttpProxyAggregatedList or error will be
147969// non-nil. Any non-2xx status code is an error. Response headers are in
147970// either *TargetHttpProxyAggregatedList.ServerResponse.Header or (if a
147971// response was returned at all) in error.(*googleapi.Error).Header. Use
147972// googleapi.IsNotModified to check whether the returned error was
147973// because http.StatusNotModified was returned.
147974func (c *TargetHttpProxiesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyAggregatedList, error) {
147975	gensupport.SetOptions(c.urlParams_, opts...)
147976	res, err := c.doRequest("json")
147977	if res != nil && res.StatusCode == http.StatusNotModified {
147978		if res.Body != nil {
147979			res.Body.Close()
147980		}
147981		return nil, &googleapi.Error{
147982			Code:   res.StatusCode,
147983			Header: res.Header,
147984		}
147985	}
147986	if err != nil {
147987		return nil, err
147988	}
147989	defer googleapi.CloseBody(res)
147990	if err := googleapi.CheckResponse(res); err != nil {
147991		return nil, err
147992	}
147993	ret := &TargetHttpProxyAggregatedList{
147994		ServerResponse: googleapi.ServerResponse{
147995			Header:         res.Header,
147996			HTTPStatusCode: res.StatusCode,
147997		},
147998	}
147999	target := &ret
148000	if err := gensupport.DecodeResponse(target, res); err != nil {
148001		return nil, err
148002	}
148003	return ret, nil
148004	// {
148005	//   "description": "Retrieves the list of all TargetHttpProxy resources, regional and global, available to the specified project.",
148006	//   "httpMethod": "GET",
148007	//   "id": "compute.targetHttpProxies.aggregatedList",
148008	//   "parameterOrder": [
148009	//     "project"
148010	//   ],
148011	//   "parameters": {
148012	//     "filter": {
148013	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
148014	//       "location": "query",
148015	//       "type": "string"
148016	//     },
148017	//     "includeAllScopes": {
148018	//       "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.",
148019	//       "location": "query",
148020	//       "type": "boolean"
148021	//     },
148022	//     "maxResults": {
148023	//       "default": "500",
148024	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
148025	//       "format": "uint32",
148026	//       "location": "query",
148027	//       "minimum": "0",
148028	//       "type": "integer"
148029	//     },
148030	//     "orderBy": {
148031	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
148032	//       "location": "query",
148033	//       "type": "string"
148034	//     },
148035	//     "pageToken": {
148036	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
148037	//       "location": "query",
148038	//       "type": "string"
148039	//     },
148040	//     "project": {
148041	//       "description": "Name of the project scoping this request.",
148042	//       "location": "path",
148043	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148044	//       "required": true,
148045	//       "type": "string"
148046	//     },
148047	//     "returnPartialSuccess": {
148048	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
148049	//       "location": "query",
148050	//       "type": "boolean"
148051	//     }
148052	//   },
148053	//   "path": "projects/{project}/aggregated/targetHttpProxies",
148054	//   "response": {
148055	//     "$ref": "TargetHttpProxyAggregatedList"
148056	//   },
148057	//   "scopes": [
148058	//     "https://www.googleapis.com/auth/cloud-platform",
148059	//     "https://www.googleapis.com/auth/compute",
148060	//     "https://www.googleapis.com/auth/compute.readonly"
148061	//   ]
148062	// }
148063
148064}
148065
148066// Pages invokes f for each page of results.
148067// A non-nil error returned from f will halt the iteration.
148068// The provided context supersedes any context provided to the Context method.
148069func (c *TargetHttpProxiesAggregatedListCall) Pages(ctx context.Context, f func(*TargetHttpProxyAggregatedList) error) error {
148070	c.ctx_ = ctx
148071	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
148072	for {
148073		x, err := c.Do()
148074		if err != nil {
148075			return err
148076		}
148077		if err := f(x); err != nil {
148078			return err
148079		}
148080		if x.NextPageToken == "" {
148081			return nil
148082		}
148083		c.PageToken(x.NextPageToken)
148084	}
148085}
148086
148087// method id "compute.targetHttpProxies.delete":
148088
148089type TargetHttpProxiesDeleteCall struct {
148090	s               *Service
148091	project         string
148092	targetHttpProxy string
148093	urlParams_      gensupport.URLParams
148094	ctx_            context.Context
148095	header_         http.Header
148096}
148097
148098// Delete: Deletes the specified TargetHttpProxy resource.
148099//
148100// - project: Project ID for this request.
148101// - targetHttpProxy: Name of the TargetHttpProxy resource to delete.
148102// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/delete
148103func (r *TargetHttpProxiesService) Delete(project string, targetHttpProxy string) *TargetHttpProxiesDeleteCall {
148104	c := &TargetHttpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148105	c.project = project
148106	c.targetHttpProxy = targetHttpProxy
148107	return c
148108}
148109
148110// RequestId sets the optional parameter "requestId": An optional
148111// request ID to identify requests. Specify a unique request ID so that
148112// if you must retry your request, the server will know to ignore the
148113// request if it has already been completed.
148114//
148115// For example, consider a situation where you make an initial request
148116// and the request times out. If you make the request again with the
148117// same request ID, the server can check if original operation with the
148118// same request ID was received, and if so, will ignore the second
148119// request. This prevents clients from accidentally creating duplicate
148120// commitments.
148121//
148122// The request ID must be a valid UUID with the exception that zero UUID
148123// is not supported (00000000-0000-0000-0000-000000000000).
148124func (c *TargetHttpProxiesDeleteCall) RequestId(requestId string) *TargetHttpProxiesDeleteCall {
148125	c.urlParams_.Set("requestId", requestId)
148126	return c
148127}
148128
148129// Fields allows partial responses to be retrieved. See
148130// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148131// for more information.
148132func (c *TargetHttpProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetHttpProxiesDeleteCall {
148133	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148134	return c
148135}
148136
148137// Context sets the context to be used in this call's Do method. Any
148138// pending HTTP request will be aborted if the provided context is
148139// canceled.
148140func (c *TargetHttpProxiesDeleteCall) Context(ctx context.Context) *TargetHttpProxiesDeleteCall {
148141	c.ctx_ = ctx
148142	return c
148143}
148144
148145// Header returns an http.Header that can be modified by the caller to
148146// add HTTP headers to the request.
148147func (c *TargetHttpProxiesDeleteCall) Header() http.Header {
148148	if c.header_ == nil {
148149		c.header_ = make(http.Header)
148150	}
148151	return c.header_
148152}
148153
148154func (c *TargetHttpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
148155	reqHeaders := make(http.Header)
148156	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
148157	for k, v := range c.header_ {
148158		reqHeaders[k] = v
148159	}
148160	reqHeaders.Set("User-Agent", c.s.userAgent())
148161	var body io.Reader = nil
148162	c.urlParams_.Set("alt", alt)
148163	c.urlParams_.Set("prettyPrint", "false")
148164	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpProxies/{targetHttpProxy}")
148165	urls += "?" + c.urlParams_.Encode()
148166	req, err := http.NewRequest("DELETE", urls, body)
148167	if err != nil {
148168		return nil, err
148169	}
148170	req.Header = reqHeaders
148171	googleapi.Expand(req.URL, map[string]string{
148172		"project":         c.project,
148173		"targetHttpProxy": c.targetHttpProxy,
148174	})
148175	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148176}
148177
148178// Do executes the "compute.targetHttpProxies.delete" call.
148179// Exactly one of *Operation or error will be non-nil. Any non-2xx
148180// status code is an error. Response headers are in either
148181// *Operation.ServerResponse.Header or (if a response was returned at
148182// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
148183// to check whether the returned error was because
148184// http.StatusNotModified was returned.
148185func (c *TargetHttpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
148186	gensupport.SetOptions(c.urlParams_, opts...)
148187	res, err := c.doRequest("json")
148188	if res != nil && res.StatusCode == http.StatusNotModified {
148189		if res.Body != nil {
148190			res.Body.Close()
148191		}
148192		return nil, &googleapi.Error{
148193			Code:   res.StatusCode,
148194			Header: res.Header,
148195		}
148196	}
148197	if err != nil {
148198		return nil, err
148199	}
148200	defer googleapi.CloseBody(res)
148201	if err := googleapi.CheckResponse(res); err != nil {
148202		return nil, err
148203	}
148204	ret := &Operation{
148205		ServerResponse: googleapi.ServerResponse{
148206			Header:         res.Header,
148207			HTTPStatusCode: res.StatusCode,
148208		},
148209	}
148210	target := &ret
148211	if err := gensupport.DecodeResponse(target, res); err != nil {
148212		return nil, err
148213	}
148214	return ret, nil
148215	// {
148216	//   "description": "Deletes the specified TargetHttpProxy resource.",
148217	//   "httpMethod": "DELETE",
148218	//   "id": "compute.targetHttpProxies.delete",
148219	//   "parameterOrder": [
148220	//     "project",
148221	//     "targetHttpProxy"
148222	//   ],
148223	//   "parameters": {
148224	//     "project": {
148225	//       "description": "Project ID for this request.",
148226	//       "location": "path",
148227	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148228	//       "required": true,
148229	//       "type": "string"
148230	//     },
148231	//     "requestId": {
148232	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
148233	//       "location": "query",
148234	//       "type": "string"
148235	//     },
148236	//     "targetHttpProxy": {
148237	//       "description": "Name of the TargetHttpProxy resource to delete.",
148238	//       "location": "path",
148239	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
148240	//       "required": true,
148241	//       "type": "string"
148242	//     }
148243	//   },
148244	//   "path": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}",
148245	//   "response": {
148246	//     "$ref": "Operation"
148247	//   },
148248	//   "scopes": [
148249	//     "https://www.googleapis.com/auth/cloud-platform",
148250	//     "https://www.googleapis.com/auth/compute"
148251	//   ]
148252	// }
148253
148254}
148255
148256// method id "compute.targetHttpProxies.get":
148257
148258type TargetHttpProxiesGetCall struct {
148259	s               *Service
148260	project         string
148261	targetHttpProxy string
148262	urlParams_      gensupport.URLParams
148263	ifNoneMatch_    string
148264	ctx_            context.Context
148265	header_         http.Header
148266}
148267
148268// Get: Returns the specified TargetHttpProxy resource. Gets a list of
148269// available target HTTP proxies by making a list() request.
148270//
148271// - project: Project ID for this request.
148272// - targetHttpProxy: Name of the TargetHttpProxy resource to return.
148273// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/get
148274func (r *TargetHttpProxiesService) Get(project string, targetHttpProxy string) *TargetHttpProxiesGetCall {
148275	c := &TargetHttpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148276	c.project = project
148277	c.targetHttpProxy = targetHttpProxy
148278	return c
148279}
148280
148281// Fields allows partial responses to be retrieved. See
148282// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148283// for more information.
148284func (c *TargetHttpProxiesGetCall) Fields(s ...googleapi.Field) *TargetHttpProxiesGetCall {
148285	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148286	return c
148287}
148288
148289// IfNoneMatch sets the optional parameter which makes the operation
148290// fail if the object's ETag matches the given value. This is useful for
148291// getting updates only after the object has changed since the last
148292// request. Use googleapi.IsNotModified to check whether the response
148293// error from Do is the result of In-None-Match.
148294func (c *TargetHttpProxiesGetCall) IfNoneMatch(entityTag string) *TargetHttpProxiesGetCall {
148295	c.ifNoneMatch_ = entityTag
148296	return c
148297}
148298
148299// Context sets the context to be used in this call's Do method. Any
148300// pending HTTP request will be aborted if the provided context is
148301// canceled.
148302func (c *TargetHttpProxiesGetCall) Context(ctx context.Context) *TargetHttpProxiesGetCall {
148303	c.ctx_ = ctx
148304	return c
148305}
148306
148307// Header returns an http.Header that can be modified by the caller to
148308// add HTTP headers to the request.
148309func (c *TargetHttpProxiesGetCall) Header() http.Header {
148310	if c.header_ == nil {
148311		c.header_ = make(http.Header)
148312	}
148313	return c.header_
148314}
148315
148316func (c *TargetHttpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
148317	reqHeaders := make(http.Header)
148318	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
148319	for k, v := range c.header_ {
148320		reqHeaders[k] = v
148321	}
148322	reqHeaders.Set("User-Agent", c.s.userAgent())
148323	if c.ifNoneMatch_ != "" {
148324		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
148325	}
148326	var body io.Reader = nil
148327	c.urlParams_.Set("alt", alt)
148328	c.urlParams_.Set("prettyPrint", "false")
148329	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpProxies/{targetHttpProxy}")
148330	urls += "?" + c.urlParams_.Encode()
148331	req, err := http.NewRequest("GET", urls, body)
148332	if err != nil {
148333		return nil, err
148334	}
148335	req.Header = reqHeaders
148336	googleapi.Expand(req.URL, map[string]string{
148337		"project":         c.project,
148338		"targetHttpProxy": c.targetHttpProxy,
148339	})
148340	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148341}
148342
148343// Do executes the "compute.targetHttpProxies.get" call.
148344// Exactly one of *TargetHttpProxy or error will be non-nil. Any non-2xx
148345// status code is an error. Response headers are in either
148346// *TargetHttpProxy.ServerResponse.Header or (if a response was returned
148347// at all) in error.(*googleapi.Error).Header. Use
148348// googleapi.IsNotModified to check whether the returned error was
148349// because http.StatusNotModified was returned.
148350func (c *TargetHttpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxy, error) {
148351	gensupport.SetOptions(c.urlParams_, opts...)
148352	res, err := c.doRequest("json")
148353	if res != nil && res.StatusCode == http.StatusNotModified {
148354		if res.Body != nil {
148355			res.Body.Close()
148356		}
148357		return nil, &googleapi.Error{
148358			Code:   res.StatusCode,
148359			Header: res.Header,
148360		}
148361	}
148362	if err != nil {
148363		return nil, err
148364	}
148365	defer googleapi.CloseBody(res)
148366	if err := googleapi.CheckResponse(res); err != nil {
148367		return nil, err
148368	}
148369	ret := &TargetHttpProxy{
148370		ServerResponse: googleapi.ServerResponse{
148371			Header:         res.Header,
148372			HTTPStatusCode: res.StatusCode,
148373		},
148374	}
148375	target := &ret
148376	if err := gensupport.DecodeResponse(target, res); err != nil {
148377		return nil, err
148378	}
148379	return ret, nil
148380	// {
148381	//   "description": "Returns the specified TargetHttpProxy resource. Gets a list of available target HTTP proxies by making a list() request.",
148382	//   "httpMethod": "GET",
148383	//   "id": "compute.targetHttpProxies.get",
148384	//   "parameterOrder": [
148385	//     "project",
148386	//     "targetHttpProxy"
148387	//   ],
148388	//   "parameters": {
148389	//     "project": {
148390	//       "description": "Project ID for this request.",
148391	//       "location": "path",
148392	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148393	//       "required": true,
148394	//       "type": "string"
148395	//     },
148396	//     "targetHttpProxy": {
148397	//       "description": "Name of the TargetHttpProxy resource to return.",
148398	//       "location": "path",
148399	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
148400	//       "required": true,
148401	//       "type": "string"
148402	//     }
148403	//   },
148404	//   "path": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}",
148405	//   "response": {
148406	//     "$ref": "TargetHttpProxy"
148407	//   },
148408	//   "scopes": [
148409	//     "https://www.googleapis.com/auth/cloud-platform",
148410	//     "https://www.googleapis.com/auth/compute",
148411	//     "https://www.googleapis.com/auth/compute.readonly"
148412	//   ]
148413	// }
148414
148415}
148416
148417// method id "compute.targetHttpProxies.insert":
148418
148419type TargetHttpProxiesInsertCall struct {
148420	s               *Service
148421	project         string
148422	targethttpproxy *TargetHttpProxy
148423	urlParams_      gensupport.URLParams
148424	ctx_            context.Context
148425	header_         http.Header
148426}
148427
148428// Insert: Creates a TargetHttpProxy resource in the specified project
148429// using the data included in the request.
148430//
148431// - project: Project ID for this request.
148432// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/insert
148433func (r *TargetHttpProxiesService) Insert(project string, targethttpproxy *TargetHttpProxy) *TargetHttpProxiesInsertCall {
148434	c := &TargetHttpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148435	c.project = project
148436	c.targethttpproxy = targethttpproxy
148437	return c
148438}
148439
148440// RequestId sets the optional parameter "requestId": An optional
148441// request ID to identify requests. Specify a unique request ID so that
148442// if you must retry your request, the server will know to ignore the
148443// request if it has already been completed.
148444//
148445// For example, consider a situation where you make an initial request
148446// and the request times out. If you make the request again with the
148447// same request ID, the server can check if original operation with the
148448// same request ID was received, and if so, will ignore the second
148449// request. This prevents clients from accidentally creating duplicate
148450// commitments.
148451//
148452// The request ID must be a valid UUID with the exception that zero UUID
148453// is not supported (00000000-0000-0000-0000-000000000000).
148454func (c *TargetHttpProxiesInsertCall) RequestId(requestId string) *TargetHttpProxiesInsertCall {
148455	c.urlParams_.Set("requestId", requestId)
148456	return c
148457}
148458
148459// Fields allows partial responses to be retrieved. See
148460// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148461// for more information.
148462func (c *TargetHttpProxiesInsertCall) Fields(s ...googleapi.Field) *TargetHttpProxiesInsertCall {
148463	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148464	return c
148465}
148466
148467// Context sets the context to be used in this call's Do method. Any
148468// pending HTTP request will be aborted if the provided context is
148469// canceled.
148470func (c *TargetHttpProxiesInsertCall) Context(ctx context.Context) *TargetHttpProxiesInsertCall {
148471	c.ctx_ = ctx
148472	return c
148473}
148474
148475// Header returns an http.Header that can be modified by the caller to
148476// add HTTP headers to the request.
148477func (c *TargetHttpProxiesInsertCall) Header() http.Header {
148478	if c.header_ == nil {
148479		c.header_ = make(http.Header)
148480	}
148481	return c.header_
148482}
148483
148484func (c *TargetHttpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
148485	reqHeaders := make(http.Header)
148486	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
148487	for k, v := range c.header_ {
148488		reqHeaders[k] = v
148489	}
148490	reqHeaders.Set("User-Agent", c.s.userAgent())
148491	var body io.Reader = nil
148492	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpproxy)
148493	if err != nil {
148494		return nil, err
148495	}
148496	reqHeaders.Set("Content-Type", "application/json")
148497	c.urlParams_.Set("alt", alt)
148498	c.urlParams_.Set("prettyPrint", "false")
148499	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpProxies")
148500	urls += "?" + c.urlParams_.Encode()
148501	req, err := http.NewRequest("POST", urls, body)
148502	if err != nil {
148503		return nil, err
148504	}
148505	req.Header = reqHeaders
148506	googleapi.Expand(req.URL, map[string]string{
148507		"project": c.project,
148508	})
148509	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148510}
148511
148512// Do executes the "compute.targetHttpProxies.insert" call.
148513// Exactly one of *Operation or error will be non-nil. Any non-2xx
148514// status code is an error. Response headers are in either
148515// *Operation.ServerResponse.Header or (if a response was returned at
148516// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
148517// to check whether the returned error was because
148518// http.StatusNotModified was returned.
148519func (c *TargetHttpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
148520	gensupport.SetOptions(c.urlParams_, opts...)
148521	res, err := c.doRequest("json")
148522	if res != nil && res.StatusCode == http.StatusNotModified {
148523		if res.Body != nil {
148524			res.Body.Close()
148525		}
148526		return nil, &googleapi.Error{
148527			Code:   res.StatusCode,
148528			Header: res.Header,
148529		}
148530	}
148531	if err != nil {
148532		return nil, err
148533	}
148534	defer googleapi.CloseBody(res)
148535	if err := googleapi.CheckResponse(res); err != nil {
148536		return nil, err
148537	}
148538	ret := &Operation{
148539		ServerResponse: googleapi.ServerResponse{
148540			Header:         res.Header,
148541			HTTPStatusCode: res.StatusCode,
148542		},
148543	}
148544	target := &ret
148545	if err := gensupport.DecodeResponse(target, res); err != nil {
148546		return nil, err
148547	}
148548	return ret, nil
148549	// {
148550	//   "description": "Creates a TargetHttpProxy resource in the specified project using the data included in the request.",
148551	//   "httpMethod": "POST",
148552	//   "id": "compute.targetHttpProxies.insert",
148553	//   "parameterOrder": [
148554	//     "project"
148555	//   ],
148556	//   "parameters": {
148557	//     "project": {
148558	//       "description": "Project ID for this request.",
148559	//       "location": "path",
148560	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148561	//       "required": true,
148562	//       "type": "string"
148563	//     },
148564	//     "requestId": {
148565	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
148566	//       "location": "query",
148567	//       "type": "string"
148568	//     }
148569	//   },
148570	//   "path": "projects/{project}/global/targetHttpProxies",
148571	//   "request": {
148572	//     "$ref": "TargetHttpProxy"
148573	//   },
148574	//   "response": {
148575	//     "$ref": "Operation"
148576	//   },
148577	//   "scopes": [
148578	//     "https://www.googleapis.com/auth/cloud-platform",
148579	//     "https://www.googleapis.com/auth/compute"
148580	//   ]
148581	// }
148582
148583}
148584
148585// method id "compute.targetHttpProxies.list":
148586
148587type TargetHttpProxiesListCall struct {
148588	s            *Service
148589	project      string
148590	urlParams_   gensupport.URLParams
148591	ifNoneMatch_ string
148592	ctx_         context.Context
148593	header_      http.Header
148594}
148595
148596// List: Retrieves the list of TargetHttpProxy resources available to
148597// the specified project.
148598//
148599// - project: Project ID for this request.
148600// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/list
148601func (r *TargetHttpProxiesService) List(project string) *TargetHttpProxiesListCall {
148602	c := &TargetHttpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148603	c.project = project
148604	return c
148605}
148606
148607// Filter sets the optional parameter "filter": A filter expression that
148608// filters resources listed in the response. The expression must specify
148609// the field name, a comparison operator, and the value that you want to
148610// use for filtering. The value must be a string, a number, or a
148611// boolean. The comparison operator must be either `=`, `!=`, `>`, or
148612// `<`.
148613//
148614// For example, if you are filtering Compute Engine instances, you can
148615// exclude instances named `example-instance` by specifying `name !=
148616// example-instance`.
148617//
148618// You can also filter nested fields. For example, you could specify
148619// `scheduling.automaticRestart = false` to include instances only if
148620// they are not scheduled for automatic restarts. You can use filtering
148621// on nested fields to filter based on resource labels.
148622//
148623// To filter on multiple expressions, provide each separate expression
148624// within parentheses. For example: ``` (scheduling.automaticRestart =
148625// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
148626// is an `AND` expression. However, you can include `AND` and `OR`
148627// expressions explicitly. For example: ``` (cpuPlatform = "Intel
148628// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
148629// (scheduling.automaticRestart = true) ```
148630func (c *TargetHttpProxiesListCall) Filter(filter string) *TargetHttpProxiesListCall {
148631	c.urlParams_.Set("filter", filter)
148632	return c
148633}
148634
148635// MaxResults sets the optional parameter "maxResults": The maximum
148636// number of results per page that should be returned. If the number of
148637// available results is larger than `maxResults`, Compute Engine returns
148638// a `nextPageToken` that can be used to get the next page of results in
148639// subsequent list requests. Acceptable values are `0` to `500`,
148640// inclusive. (Default: `500`)
148641func (c *TargetHttpProxiesListCall) MaxResults(maxResults int64) *TargetHttpProxiesListCall {
148642	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
148643	return c
148644}
148645
148646// OrderBy sets the optional parameter "orderBy": Sorts list results by
148647// a certain order. By default, results are returned in alphanumerical
148648// order based on the resource name.
148649//
148650// You can also sort results in descending order based on the creation
148651// timestamp using `orderBy="creationTimestamp desc". This sorts
148652// results based on the `creationTimestamp` field in reverse
148653// chronological order (newest result first). Use this to sort resources
148654// like operations so that the newest operation is returned
148655// first.
148656//
148657// Currently, only sorting by `name` or `creationTimestamp desc` is
148658// supported.
148659func (c *TargetHttpProxiesListCall) OrderBy(orderBy string) *TargetHttpProxiesListCall {
148660	c.urlParams_.Set("orderBy", orderBy)
148661	return c
148662}
148663
148664// PageToken sets the optional parameter "pageToken": Specifies a page
148665// token to use. Set `pageToken` to the `nextPageToken` returned by a
148666// previous list request to get the next page of results.
148667func (c *TargetHttpProxiesListCall) PageToken(pageToken string) *TargetHttpProxiesListCall {
148668	c.urlParams_.Set("pageToken", pageToken)
148669	return c
148670}
148671
148672// ReturnPartialSuccess sets the optional parameter
148673// "returnPartialSuccess": Opt-in for partial success behavior which
148674// provides partial results in case of failure. The default value is
148675// false.
148676func (c *TargetHttpProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetHttpProxiesListCall {
148677	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
148678	return c
148679}
148680
148681// Fields allows partial responses to be retrieved. See
148682// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148683// for more information.
148684func (c *TargetHttpProxiesListCall) Fields(s ...googleapi.Field) *TargetHttpProxiesListCall {
148685	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148686	return c
148687}
148688
148689// IfNoneMatch sets the optional parameter which makes the operation
148690// fail if the object's ETag matches the given value. This is useful for
148691// getting updates only after the object has changed since the last
148692// request. Use googleapi.IsNotModified to check whether the response
148693// error from Do is the result of In-None-Match.
148694func (c *TargetHttpProxiesListCall) IfNoneMatch(entityTag string) *TargetHttpProxiesListCall {
148695	c.ifNoneMatch_ = entityTag
148696	return c
148697}
148698
148699// Context sets the context to be used in this call's Do method. Any
148700// pending HTTP request will be aborted if the provided context is
148701// canceled.
148702func (c *TargetHttpProxiesListCall) Context(ctx context.Context) *TargetHttpProxiesListCall {
148703	c.ctx_ = ctx
148704	return c
148705}
148706
148707// Header returns an http.Header that can be modified by the caller to
148708// add HTTP headers to the request.
148709func (c *TargetHttpProxiesListCall) Header() http.Header {
148710	if c.header_ == nil {
148711		c.header_ = make(http.Header)
148712	}
148713	return c.header_
148714}
148715
148716func (c *TargetHttpProxiesListCall) doRequest(alt string) (*http.Response, error) {
148717	reqHeaders := make(http.Header)
148718	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
148719	for k, v := range c.header_ {
148720		reqHeaders[k] = v
148721	}
148722	reqHeaders.Set("User-Agent", c.s.userAgent())
148723	if c.ifNoneMatch_ != "" {
148724		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
148725	}
148726	var body io.Reader = nil
148727	c.urlParams_.Set("alt", alt)
148728	c.urlParams_.Set("prettyPrint", "false")
148729	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpProxies")
148730	urls += "?" + c.urlParams_.Encode()
148731	req, err := http.NewRequest("GET", urls, body)
148732	if err != nil {
148733		return nil, err
148734	}
148735	req.Header = reqHeaders
148736	googleapi.Expand(req.URL, map[string]string{
148737		"project": c.project,
148738	})
148739	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148740}
148741
148742// Do executes the "compute.targetHttpProxies.list" call.
148743// Exactly one of *TargetHttpProxyList or error will be non-nil. Any
148744// non-2xx status code is an error. Response headers are in either
148745// *TargetHttpProxyList.ServerResponse.Header or (if a response was
148746// returned at all) in error.(*googleapi.Error).Header. Use
148747// googleapi.IsNotModified to check whether the returned error was
148748// because http.StatusNotModified was returned.
148749func (c *TargetHttpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyList, error) {
148750	gensupport.SetOptions(c.urlParams_, opts...)
148751	res, err := c.doRequest("json")
148752	if res != nil && res.StatusCode == http.StatusNotModified {
148753		if res.Body != nil {
148754			res.Body.Close()
148755		}
148756		return nil, &googleapi.Error{
148757			Code:   res.StatusCode,
148758			Header: res.Header,
148759		}
148760	}
148761	if err != nil {
148762		return nil, err
148763	}
148764	defer googleapi.CloseBody(res)
148765	if err := googleapi.CheckResponse(res); err != nil {
148766		return nil, err
148767	}
148768	ret := &TargetHttpProxyList{
148769		ServerResponse: googleapi.ServerResponse{
148770			Header:         res.Header,
148771			HTTPStatusCode: res.StatusCode,
148772		},
148773	}
148774	target := &ret
148775	if err := gensupport.DecodeResponse(target, res); err != nil {
148776		return nil, err
148777	}
148778	return ret, nil
148779	// {
148780	//   "description": "Retrieves the list of TargetHttpProxy resources available to the specified project.",
148781	//   "httpMethod": "GET",
148782	//   "id": "compute.targetHttpProxies.list",
148783	//   "parameterOrder": [
148784	//     "project"
148785	//   ],
148786	//   "parameters": {
148787	//     "filter": {
148788	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
148789	//       "location": "query",
148790	//       "type": "string"
148791	//     },
148792	//     "maxResults": {
148793	//       "default": "500",
148794	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
148795	//       "format": "uint32",
148796	//       "location": "query",
148797	//       "minimum": "0",
148798	//       "type": "integer"
148799	//     },
148800	//     "orderBy": {
148801	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
148802	//       "location": "query",
148803	//       "type": "string"
148804	//     },
148805	//     "pageToken": {
148806	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
148807	//       "location": "query",
148808	//       "type": "string"
148809	//     },
148810	//     "project": {
148811	//       "description": "Project ID for this request.",
148812	//       "location": "path",
148813	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148814	//       "required": true,
148815	//       "type": "string"
148816	//     },
148817	//     "returnPartialSuccess": {
148818	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
148819	//       "location": "query",
148820	//       "type": "boolean"
148821	//     }
148822	//   },
148823	//   "path": "projects/{project}/global/targetHttpProxies",
148824	//   "response": {
148825	//     "$ref": "TargetHttpProxyList"
148826	//   },
148827	//   "scopes": [
148828	//     "https://www.googleapis.com/auth/cloud-platform",
148829	//     "https://www.googleapis.com/auth/compute",
148830	//     "https://www.googleapis.com/auth/compute.readonly"
148831	//   ]
148832	// }
148833
148834}
148835
148836// Pages invokes f for each page of results.
148837// A non-nil error returned from f will halt the iteration.
148838// The provided context supersedes any context provided to the Context method.
148839func (c *TargetHttpProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpProxyList) error) error {
148840	c.ctx_ = ctx
148841	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
148842	for {
148843		x, err := c.Do()
148844		if err != nil {
148845			return err
148846		}
148847		if err := f(x); err != nil {
148848			return err
148849		}
148850		if x.NextPageToken == "" {
148851			return nil
148852		}
148853		c.PageToken(x.NextPageToken)
148854	}
148855}
148856
148857// method id "compute.targetHttpProxies.patch":
148858
148859type TargetHttpProxiesPatchCall struct {
148860	s               *Service
148861	project         string
148862	targetHttpProxy string
148863	targethttpproxy *TargetHttpProxy
148864	urlParams_      gensupport.URLParams
148865	ctx_            context.Context
148866	header_         http.Header
148867}
148868
148869// Patch: Patches the specified TargetHttpProxy resource with the data
148870// included in the request. This method supports PATCH semantics and
148871// uses JSON merge patch format and processing rules. (==
148872// suppress_warning http-rest-shadowed ==)
148873//
148874// - project: Project ID for this request.
148875// - targetHttpProxy: Name of the TargetHttpProxy resource to patch.
148876func (r *TargetHttpProxiesService) Patch(project string, targetHttpProxy string, targethttpproxy *TargetHttpProxy) *TargetHttpProxiesPatchCall {
148877	c := &TargetHttpProxiesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148878	c.project = project
148879	c.targetHttpProxy = targetHttpProxy
148880	c.targethttpproxy = targethttpproxy
148881	return c
148882}
148883
148884// RequestId sets the optional parameter "requestId": An optional
148885// request ID to identify requests. Specify a unique request ID so that
148886// if you must retry your request, the server will know to ignore the
148887// request if it has already been completed.
148888//
148889// For example, consider a situation where you make an initial request
148890// and the request times out. If you make the request again with the
148891// same request ID, the server can check if original operation with the
148892// same request ID was received, and if so, will ignore the second
148893// request. This prevents clients from accidentally creating duplicate
148894// commitments.
148895//
148896// The request ID must be a valid UUID with the exception that zero UUID
148897// is not supported (00000000-0000-0000-0000-000000000000).
148898func (c *TargetHttpProxiesPatchCall) RequestId(requestId string) *TargetHttpProxiesPatchCall {
148899	c.urlParams_.Set("requestId", requestId)
148900	return c
148901}
148902
148903// Fields allows partial responses to be retrieved. See
148904// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148905// for more information.
148906func (c *TargetHttpProxiesPatchCall) Fields(s ...googleapi.Field) *TargetHttpProxiesPatchCall {
148907	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148908	return c
148909}
148910
148911// Context sets the context to be used in this call's Do method. Any
148912// pending HTTP request will be aborted if the provided context is
148913// canceled.
148914func (c *TargetHttpProxiesPatchCall) Context(ctx context.Context) *TargetHttpProxiesPatchCall {
148915	c.ctx_ = ctx
148916	return c
148917}
148918
148919// Header returns an http.Header that can be modified by the caller to
148920// add HTTP headers to the request.
148921func (c *TargetHttpProxiesPatchCall) Header() http.Header {
148922	if c.header_ == nil {
148923		c.header_ = make(http.Header)
148924	}
148925	return c.header_
148926}
148927
148928func (c *TargetHttpProxiesPatchCall) doRequest(alt string) (*http.Response, error) {
148929	reqHeaders := make(http.Header)
148930	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
148931	for k, v := range c.header_ {
148932		reqHeaders[k] = v
148933	}
148934	reqHeaders.Set("User-Agent", c.s.userAgent())
148935	var body io.Reader = nil
148936	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpproxy)
148937	if err != nil {
148938		return nil, err
148939	}
148940	reqHeaders.Set("Content-Type", "application/json")
148941	c.urlParams_.Set("alt", alt)
148942	c.urlParams_.Set("prettyPrint", "false")
148943	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpProxies/{targetHttpProxy}")
148944	urls += "?" + c.urlParams_.Encode()
148945	req, err := http.NewRequest("PATCH", urls, body)
148946	if err != nil {
148947		return nil, err
148948	}
148949	req.Header = reqHeaders
148950	googleapi.Expand(req.URL, map[string]string{
148951		"project":         c.project,
148952		"targetHttpProxy": c.targetHttpProxy,
148953	})
148954	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148955}
148956
148957// Do executes the "compute.targetHttpProxies.patch" call.
148958// Exactly one of *Operation or error will be non-nil. Any non-2xx
148959// status code is an error. Response headers are in either
148960// *Operation.ServerResponse.Header or (if a response was returned at
148961// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
148962// to check whether the returned error was because
148963// http.StatusNotModified was returned.
148964func (c *TargetHttpProxiesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
148965	gensupport.SetOptions(c.urlParams_, opts...)
148966	res, err := c.doRequest("json")
148967	if res != nil && res.StatusCode == http.StatusNotModified {
148968		if res.Body != nil {
148969			res.Body.Close()
148970		}
148971		return nil, &googleapi.Error{
148972			Code:   res.StatusCode,
148973			Header: res.Header,
148974		}
148975	}
148976	if err != nil {
148977		return nil, err
148978	}
148979	defer googleapi.CloseBody(res)
148980	if err := googleapi.CheckResponse(res); err != nil {
148981		return nil, err
148982	}
148983	ret := &Operation{
148984		ServerResponse: googleapi.ServerResponse{
148985			Header:         res.Header,
148986			HTTPStatusCode: res.StatusCode,
148987		},
148988	}
148989	target := &ret
148990	if err := gensupport.DecodeResponse(target, res); err != nil {
148991		return nil, err
148992	}
148993	return ret, nil
148994	// {
148995	//   "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 ==)",
148996	//   "httpMethod": "PATCH",
148997	//   "id": "compute.targetHttpProxies.patch",
148998	//   "parameterOrder": [
148999	//     "project",
149000	//     "targetHttpProxy"
149001	//   ],
149002	//   "parameters": {
149003	//     "project": {
149004	//       "description": "Project ID for this request.",
149005	//       "location": "path",
149006	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149007	//       "required": true,
149008	//       "type": "string"
149009	//     },
149010	//     "requestId": {
149011	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
149012	//       "location": "query",
149013	//       "type": "string"
149014	//     },
149015	//     "targetHttpProxy": {
149016	//       "description": "Name of the TargetHttpProxy resource to patch.",
149017	//       "location": "path",
149018	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
149019	//       "required": true,
149020	//       "type": "string"
149021	//     }
149022	//   },
149023	//   "path": "projects/{project}/global/targetHttpProxies/{targetHttpProxy}",
149024	//   "request": {
149025	//     "$ref": "TargetHttpProxy"
149026	//   },
149027	//   "response": {
149028	//     "$ref": "Operation"
149029	//   },
149030	//   "scopes": [
149031	//     "https://www.googleapis.com/auth/cloud-platform",
149032	//     "https://www.googleapis.com/auth/compute"
149033	//   ]
149034	// }
149035
149036}
149037
149038// method id "compute.targetHttpProxies.setUrlMap":
149039
149040type TargetHttpProxiesSetUrlMapCall struct {
149041	s               *Service
149042	project         string
149043	targetHttpProxy string
149044	urlmapreference *UrlMapReference
149045	urlParams_      gensupport.URLParams
149046	ctx_            context.Context
149047	header_         http.Header
149048}
149049
149050// SetUrlMap: Changes the URL map for TargetHttpProxy.
149051//
149052// - project: Project ID for this request.
149053// - targetHttpProxy: Name of the TargetHttpProxy to set a URL map for.
149054// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/setUrlMap
149055func (r *TargetHttpProxiesService) SetUrlMap(project string, targetHttpProxy string, urlmapreference *UrlMapReference) *TargetHttpProxiesSetUrlMapCall {
149056	c := &TargetHttpProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149057	c.project = project
149058	c.targetHttpProxy = targetHttpProxy
149059	c.urlmapreference = urlmapreference
149060	return c
149061}
149062
149063// RequestId sets the optional parameter "requestId": An optional
149064// request ID to identify requests. Specify a unique request ID so that
149065// if you must retry your request, the server will know to ignore the
149066// request if it has already been completed.
149067//
149068// For example, consider a situation where you make an initial request
149069// and the request times out. If you make the request again with the
149070// same request ID, the server can check if original operation with the
149071// same request ID was received, and if so, will ignore the second
149072// request. This prevents clients from accidentally creating duplicate
149073// commitments.
149074//
149075// The request ID must be a valid UUID with the exception that zero UUID
149076// is not supported (00000000-0000-0000-0000-000000000000).
149077func (c *TargetHttpProxiesSetUrlMapCall) RequestId(requestId string) *TargetHttpProxiesSetUrlMapCall {
149078	c.urlParams_.Set("requestId", requestId)
149079	return c
149080}
149081
149082// Fields allows partial responses to be retrieved. See
149083// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149084// for more information.
149085func (c *TargetHttpProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *TargetHttpProxiesSetUrlMapCall {
149086	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149087	return c
149088}
149089
149090// Context sets the context to be used in this call's Do method. Any
149091// pending HTTP request will be aborted if the provided context is
149092// canceled.
149093func (c *TargetHttpProxiesSetUrlMapCall) Context(ctx context.Context) *TargetHttpProxiesSetUrlMapCall {
149094	c.ctx_ = ctx
149095	return c
149096}
149097
149098// Header returns an http.Header that can be modified by the caller to
149099// add HTTP headers to the request.
149100func (c *TargetHttpProxiesSetUrlMapCall) Header() http.Header {
149101	if c.header_ == nil {
149102		c.header_ = make(http.Header)
149103	}
149104	return c.header_
149105}
149106
149107func (c *TargetHttpProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
149108	reqHeaders := make(http.Header)
149109	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
149110	for k, v := range c.header_ {
149111		reqHeaders[k] = v
149112	}
149113	reqHeaders.Set("User-Agent", c.s.userAgent())
149114	var body io.Reader = nil
149115	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
149116	if err != nil {
149117		return nil, err
149118	}
149119	reqHeaders.Set("Content-Type", "application/json")
149120	c.urlParams_.Set("alt", alt)
149121	c.urlParams_.Set("prettyPrint", "false")
149122	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap")
149123	urls += "?" + c.urlParams_.Encode()
149124	req, err := http.NewRequest("POST", urls, body)
149125	if err != nil {
149126		return nil, err
149127	}
149128	req.Header = reqHeaders
149129	googleapi.Expand(req.URL, map[string]string{
149130		"project":         c.project,
149131		"targetHttpProxy": c.targetHttpProxy,
149132	})
149133	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149134}
149135
149136// Do executes the "compute.targetHttpProxies.setUrlMap" call.
149137// Exactly one of *Operation or error will be non-nil. Any non-2xx
149138// status code is an error. Response headers are in either
149139// *Operation.ServerResponse.Header or (if a response was returned at
149140// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
149141// to check whether the returned error was because
149142// http.StatusNotModified was returned.
149143func (c *TargetHttpProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
149144	gensupport.SetOptions(c.urlParams_, opts...)
149145	res, err := c.doRequest("json")
149146	if res != nil && res.StatusCode == http.StatusNotModified {
149147		if res.Body != nil {
149148			res.Body.Close()
149149		}
149150		return nil, &googleapi.Error{
149151			Code:   res.StatusCode,
149152			Header: res.Header,
149153		}
149154	}
149155	if err != nil {
149156		return nil, err
149157	}
149158	defer googleapi.CloseBody(res)
149159	if err := googleapi.CheckResponse(res); err != nil {
149160		return nil, err
149161	}
149162	ret := &Operation{
149163		ServerResponse: googleapi.ServerResponse{
149164			Header:         res.Header,
149165			HTTPStatusCode: res.StatusCode,
149166		},
149167	}
149168	target := &ret
149169	if err := gensupport.DecodeResponse(target, res); err != nil {
149170		return nil, err
149171	}
149172	return ret, nil
149173	// {
149174	//   "description": "Changes the URL map for TargetHttpProxy.",
149175	//   "httpMethod": "POST",
149176	//   "id": "compute.targetHttpProxies.setUrlMap",
149177	//   "parameterOrder": [
149178	//     "project",
149179	//     "targetHttpProxy"
149180	//   ],
149181	//   "parameters": {
149182	//     "project": {
149183	//       "description": "Project ID for this request.",
149184	//       "location": "path",
149185	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149186	//       "required": true,
149187	//       "type": "string"
149188	//     },
149189	//     "requestId": {
149190	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
149191	//       "location": "query",
149192	//       "type": "string"
149193	//     },
149194	//     "targetHttpProxy": {
149195	//       "description": "Name of the TargetHttpProxy to set a URL map for.",
149196	//       "location": "path",
149197	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
149198	//       "required": true,
149199	//       "type": "string"
149200	//     }
149201	//   },
149202	//   "path": "projects/{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap",
149203	//   "request": {
149204	//     "$ref": "UrlMapReference"
149205	//   },
149206	//   "response": {
149207	//     "$ref": "Operation"
149208	//   },
149209	//   "scopes": [
149210	//     "https://www.googleapis.com/auth/cloud-platform",
149211	//     "https://www.googleapis.com/auth/compute"
149212	//   ]
149213	// }
149214
149215}
149216
149217// method id "compute.targetHttpsProxies.aggregatedList":
149218
149219type TargetHttpsProxiesAggregatedListCall struct {
149220	s            *Service
149221	project      string
149222	urlParams_   gensupport.URLParams
149223	ifNoneMatch_ string
149224	ctx_         context.Context
149225	header_      http.Header
149226}
149227
149228// AggregatedList: Retrieves the list of all TargetHttpsProxy resources,
149229// regional and global, available to the specified project.
149230//
149231// - project: Name of the project scoping this request.
149232func (r *TargetHttpsProxiesService) AggregatedList(project string) *TargetHttpsProxiesAggregatedListCall {
149233	c := &TargetHttpsProxiesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149234	c.project = project
149235	return c
149236}
149237
149238// Filter sets the optional parameter "filter": A filter expression that
149239// filters resources listed in the response. The expression must specify
149240// the field name, a comparison operator, and the value that you want to
149241// use for filtering. The value must be a string, a number, or a
149242// boolean. The comparison operator must be either `=`, `!=`, `>`, or
149243// `<`.
149244//
149245// For example, if you are filtering Compute Engine instances, you can
149246// exclude instances named `example-instance` by specifying `name !=
149247// example-instance`.
149248//
149249// You can also filter nested fields. For example, you could specify
149250// `scheduling.automaticRestart = false` to include instances only if
149251// they are not scheduled for automatic restarts. You can use filtering
149252// on nested fields to filter based on resource labels.
149253//
149254// To filter on multiple expressions, provide each separate expression
149255// within parentheses. For example: ``` (scheduling.automaticRestart =
149256// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
149257// is an `AND` expression. However, you can include `AND` and `OR`
149258// expressions explicitly. For example: ``` (cpuPlatform = "Intel
149259// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
149260// (scheduling.automaticRestart = true) ```
149261func (c *TargetHttpsProxiesAggregatedListCall) Filter(filter string) *TargetHttpsProxiesAggregatedListCall {
149262	c.urlParams_.Set("filter", filter)
149263	return c
149264}
149265
149266// IncludeAllScopes sets the optional parameter "includeAllScopes":
149267// Indicates whether every visible scope for each scope type (zone,
149268// region, global) should be included in the response. For new resource
149269// types added after this field, the flag has no effect as new resource
149270// types will always include every visible scope for each scope type in
149271// response. For resource types which predate this field, if this flag
149272// is omitted or false, only scopes of the scope types where the
149273// resource type is expected to be found will be included.
149274func (c *TargetHttpsProxiesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetHttpsProxiesAggregatedListCall {
149275	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
149276	return c
149277}
149278
149279// MaxResults sets the optional parameter "maxResults": The maximum
149280// number of results per page that should be returned. If the number of
149281// available results is larger than `maxResults`, Compute Engine returns
149282// a `nextPageToken` that can be used to get the next page of results in
149283// subsequent list requests. Acceptable values are `0` to `500`,
149284// inclusive. (Default: `500`)
149285func (c *TargetHttpsProxiesAggregatedListCall) MaxResults(maxResults int64) *TargetHttpsProxiesAggregatedListCall {
149286	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
149287	return c
149288}
149289
149290// OrderBy sets the optional parameter "orderBy": Sorts list results by
149291// a certain order. By default, results are returned in alphanumerical
149292// order based on the resource name.
149293//
149294// You can also sort results in descending order based on the creation
149295// timestamp using `orderBy="creationTimestamp desc". This sorts
149296// results based on the `creationTimestamp` field in reverse
149297// chronological order (newest result first). Use this to sort resources
149298// like operations so that the newest operation is returned
149299// first.
149300//
149301// Currently, only sorting by `name` or `creationTimestamp desc` is
149302// supported.
149303func (c *TargetHttpsProxiesAggregatedListCall) OrderBy(orderBy string) *TargetHttpsProxiesAggregatedListCall {
149304	c.urlParams_.Set("orderBy", orderBy)
149305	return c
149306}
149307
149308// PageToken sets the optional parameter "pageToken": Specifies a page
149309// token to use. Set `pageToken` to the `nextPageToken` returned by a
149310// previous list request to get the next page of results.
149311func (c *TargetHttpsProxiesAggregatedListCall) PageToken(pageToken string) *TargetHttpsProxiesAggregatedListCall {
149312	c.urlParams_.Set("pageToken", pageToken)
149313	return c
149314}
149315
149316// ReturnPartialSuccess sets the optional parameter
149317// "returnPartialSuccess": Opt-in for partial success behavior which
149318// provides partial results in case of failure. The default value is
149319// false.
149320func (c *TargetHttpsProxiesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetHttpsProxiesAggregatedListCall {
149321	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
149322	return c
149323}
149324
149325// Fields allows partial responses to be retrieved. See
149326// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149327// for more information.
149328func (c *TargetHttpsProxiesAggregatedListCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesAggregatedListCall {
149329	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149330	return c
149331}
149332
149333// IfNoneMatch sets the optional parameter which makes the operation
149334// fail if the object's ETag matches the given value. This is useful for
149335// getting updates only after the object has changed since the last
149336// request. Use googleapi.IsNotModified to check whether the response
149337// error from Do is the result of In-None-Match.
149338func (c *TargetHttpsProxiesAggregatedListCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesAggregatedListCall {
149339	c.ifNoneMatch_ = entityTag
149340	return c
149341}
149342
149343// Context sets the context to be used in this call's Do method. Any
149344// pending HTTP request will be aborted if the provided context is
149345// canceled.
149346func (c *TargetHttpsProxiesAggregatedListCall) Context(ctx context.Context) *TargetHttpsProxiesAggregatedListCall {
149347	c.ctx_ = ctx
149348	return c
149349}
149350
149351// Header returns an http.Header that can be modified by the caller to
149352// add HTTP headers to the request.
149353func (c *TargetHttpsProxiesAggregatedListCall) Header() http.Header {
149354	if c.header_ == nil {
149355		c.header_ = make(http.Header)
149356	}
149357	return c.header_
149358}
149359
149360func (c *TargetHttpsProxiesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
149361	reqHeaders := make(http.Header)
149362	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
149363	for k, v := range c.header_ {
149364		reqHeaders[k] = v
149365	}
149366	reqHeaders.Set("User-Agent", c.s.userAgent())
149367	if c.ifNoneMatch_ != "" {
149368		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
149369	}
149370	var body io.Reader = nil
149371	c.urlParams_.Set("alt", alt)
149372	c.urlParams_.Set("prettyPrint", "false")
149373	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/targetHttpsProxies")
149374	urls += "?" + c.urlParams_.Encode()
149375	req, err := http.NewRequest("GET", urls, body)
149376	if err != nil {
149377		return nil, err
149378	}
149379	req.Header = reqHeaders
149380	googleapi.Expand(req.URL, map[string]string{
149381		"project": c.project,
149382	})
149383	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149384}
149385
149386// Do executes the "compute.targetHttpsProxies.aggregatedList" call.
149387// Exactly one of *TargetHttpsProxyAggregatedList or error will be
149388// non-nil. Any non-2xx status code is an error. Response headers are in
149389// either *TargetHttpsProxyAggregatedList.ServerResponse.Header or (if a
149390// response was returned at all) in error.(*googleapi.Error).Header. Use
149391// googleapi.IsNotModified to check whether the returned error was
149392// because http.StatusNotModified was returned.
149393func (c *TargetHttpsProxiesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyAggregatedList, error) {
149394	gensupport.SetOptions(c.urlParams_, opts...)
149395	res, err := c.doRequest("json")
149396	if res != nil && res.StatusCode == http.StatusNotModified {
149397		if res.Body != nil {
149398			res.Body.Close()
149399		}
149400		return nil, &googleapi.Error{
149401			Code:   res.StatusCode,
149402			Header: res.Header,
149403		}
149404	}
149405	if err != nil {
149406		return nil, err
149407	}
149408	defer googleapi.CloseBody(res)
149409	if err := googleapi.CheckResponse(res); err != nil {
149410		return nil, err
149411	}
149412	ret := &TargetHttpsProxyAggregatedList{
149413		ServerResponse: googleapi.ServerResponse{
149414			Header:         res.Header,
149415			HTTPStatusCode: res.StatusCode,
149416		},
149417	}
149418	target := &ret
149419	if err := gensupport.DecodeResponse(target, res); err != nil {
149420		return nil, err
149421	}
149422	return ret, nil
149423	// {
149424	//   "description": "Retrieves the list of all TargetHttpsProxy resources, regional and global, available to the specified project.",
149425	//   "httpMethod": "GET",
149426	//   "id": "compute.targetHttpsProxies.aggregatedList",
149427	//   "parameterOrder": [
149428	//     "project"
149429	//   ],
149430	//   "parameters": {
149431	//     "filter": {
149432	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
149433	//       "location": "query",
149434	//       "type": "string"
149435	//     },
149436	//     "includeAllScopes": {
149437	//       "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.",
149438	//       "location": "query",
149439	//       "type": "boolean"
149440	//     },
149441	//     "maxResults": {
149442	//       "default": "500",
149443	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
149444	//       "format": "uint32",
149445	//       "location": "query",
149446	//       "minimum": "0",
149447	//       "type": "integer"
149448	//     },
149449	//     "orderBy": {
149450	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
149451	//       "location": "query",
149452	//       "type": "string"
149453	//     },
149454	//     "pageToken": {
149455	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
149456	//       "location": "query",
149457	//       "type": "string"
149458	//     },
149459	//     "project": {
149460	//       "description": "Name of the project scoping this request.",
149461	//       "location": "path",
149462	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149463	//       "required": true,
149464	//       "type": "string"
149465	//     },
149466	//     "returnPartialSuccess": {
149467	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
149468	//       "location": "query",
149469	//       "type": "boolean"
149470	//     }
149471	//   },
149472	//   "path": "projects/{project}/aggregated/targetHttpsProxies",
149473	//   "response": {
149474	//     "$ref": "TargetHttpsProxyAggregatedList"
149475	//   },
149476	//   "scopes": [
149477	//     "https://www.googleapis.com/auth/cloud-platform",
149478	//     "https://www.googleapis.com/auth/compute",
149479	//     "https://www.googleapis.com/auth/compute.readonly"
149480	//   ]
149481	// }
149482
149483}
149484
149485// Pages invokes f for each page of results.
149486// A non-nil error returned from f will halt the iteration.
149487// The provided context supersedes any context provided to the Context method.
149488func (c *TargetHttpsProxiesAggregatedListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyAggregatedList) error) error {
149489	c.ctx_ = ctx
149490	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
149491	for {
149492		x, err := c.Do()
149493		if err != nil {
149494			return err
149495		}
149496		if err := f(x); err != nil {
149497			return err
149498		}
149499		if x.NextPageToken == "" {
149500			return nil
149501		}
149502		c.PageToken(x.NextPageToken)
149503	}
149504}
149505
149506// method id "compute.targetHttpsProxies.delete":
149507
149508type TargetHttpsProxiesDeleteCall struct {
149509	s                *Service
149510	project          string
149511	targetHttpsProxy string
149512	urlParams_       gensupport.URLParams
149513	ctx_             context.Context
149514	header_          http.Header
149515}
149516
149517// Delete: Deletes the specified TargetHttpsProxy resource.
149518//
149519// - project: Project ID for this request.
149520// - targetHttpsProxy: Name of the TargetHttpsProxy resource to delete.
149521func (r *TargetHttpsProxiesService) Delete(project string, targetHttpsProxy string) *TargetHttpsProxiesDeleteCall {
149522	c := &TargetHttpsProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149523	c.project = project
149524	c.targetHttpsProxy = targetHttpsProxy
149525	return c
149526}
149527
149528// RequestId sets the optional parameter "requestId": An optional
149529// request ID to identify requests. Specify a unique request ID so that
149530// if you must retry your request, the server will know to ignore the
149531// request if it has already been completed.
149532//
149533// For example, consider a situation where you make an initial request
149534// and the request times out. If you make the request again with the
149535// same request ID, the server can check if original operation with the
149536// same request ID was received, and if so, will ignore the second
149537// request. This prevents clients from accidentally creating duplicate
149538// commitments.
149539//
149540// The request ID must be a valid UUID with the exception that zero UUID
149541// is not supported (00000000-0000-0000-0000-000000000000).
149542func (c *TargetHttpsProxiesDeleteCall) RequestId(requestId string) *TargetHttpsProxiesDeleteCall {
149543	c.urlParams_.Set("requestId", requestId)
149544	return c
149545}
149546
149547// Fields allows partial responses to be retrieved. See
149548// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149549// for more information.
149550func (c *TargetHttpsProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesDeleteCall {
149551	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149552	return c
149553}
149554
149555// Context sets the context to be used in this call's Do method. Any
149556// pending HTTP request will be aborted if the provided context is
149557// canceled.
149558func (c *TargetHttpsProxiesDeleteCall) Context(ctx context.Context) *TargetHttpsProxiesDeleteCall {
149559	c.ctx_ = ctx
149560	return c
149561}
149562
149563// Header returns an http.Header that can be modified by the caller to
149564// add HTTP headers to the request.
149565func (c *TargetHttpsProxiesDeleteCall) Header() http.Header {
149566	if c.header_ == nil {
149567		c.header_ = make(http.Header)
149568	}
149569	return c.header_
149570}
149571
149572func (c *TargetHttpsProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
149573	reqHeaders := make(http.Header)
149574	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
149575	for k, v := range c.header_ {
149576		reqHeaders[k] = v
149577	}
149578	reqHeaders.Set("User-Agent", c.s.userAgent())
149579	var body io.Reader = nil
149580	c.urlParams_.Set("alt", alt)
149581	c.urlParams_.Set("prettyPrint", "false")
149582	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}")
149583	urls += "?" + c.urlParams_.Encode()
149584	req, err := http.NewRequest("DELETE", urls, body)
149585	if err != nil {
149586		return nil, err
149587	}
149588	req.Header = reqHeaders
149589	googleapi.Expand(req.URL, map[string]string{
149590		"project":          c.project,
149591		"targetHttpsProxy": c.targetHttpsProxy,
149592	})
149593	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149594}
149595
149596// Do executes the "compute.targetHttpsProxies.delete" call.
149597// Exactly one of *Operation or error will be non-nil. Any non-2xx
149598// status code is an error. Response headers are in either
149599// *Operation.ServerResponse.Header or (if a response was returned at
149600// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
149601// to check whether the returned error was because
149602// http.StatusNotModified was returned.
149603func (c *TargetHttpsProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
149604	gensupport.SetOptions(c.urlParams_, opts...)
149605	res, err := c.doRequest("json")
149606	if res != nil && res.StatusCode == http.StatusNotModified {
149607		if res.Body != nil {
149608			res.Body.Close()
149609		}
149610		return nil, &googleapi.Error{
149611			Code:   res.StatusCode,
149612			Header: res.Header,
149613		}
149614	}
149615	if err != nil {
149616		return nil, err
149617	}
149618	defer googleapi.CloseBody(res)
149619	if err := googleapi.CheckResponse(res); err != nil {
149620		return nil, err
149621	}
149622	ret := &Operation{
149623		ServerResponse: googleapi.ServerResponse{
149624			Header:         res.Header,
149625			HTTPStatusCode: res.StatusCode,
149626		},
149627	}
149628	target := &ret
149629	if err := gensupport.DecodeResponse(target, res); err != nil {
149630		return nil, err
149631	}
149632	return ret, nil
149633	// {
149634	//   "description": "Deletes the specified TargetHttpsProxy resource.",
149635	//   "httpMethod": "DELETE",
149636	//   "id": "compute.targetHttpsProxies.delete",
149637	//   "parameterOrder": [
149638	//     "project",
149639	//     "targetHttpsProxy"
149640	//   ],
149641	//   "parameters": {
149642	//     "project": {
149643	//       "description": "Project ID for this request.",
149644	//       "location": "path",
149645	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149646	//       "required": true,
149647	//       "type": "string"
149648	//     },
149649	//     "requestId": {
149650	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
149651	//       "location": "query",
149652	//       "type": "string"
149653	//     },
149654	//     "targetHttpsProxy": {
149655	//       "description": "Name of the TargetHttpsProxy resource to delete.",
149656	//       "location": "path",
149657	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
149658	//       "required": true,
149659	//       "type": "string"
149660	//     }
149661	//   },
149662	//   "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}",
149663	//   "response": {
149664	//     "$ref": "Operation"
149665	//   },
149666	//   "scopes": [
149667	//     "https://www.googleapis.com/auth/cloud-platform",
149668	//     "https://www.googleapis.com/auth/compute"
149669	//   ]
149670	// }
149671
149672}
149673
149674// method id "compute.targetHttpsProxies.get":
149675
149676type TargetHttpsProxiesGetCall struct {
149677	s                *Service
149678	project          string
149679	targetHttpsProxy string
149680	urlParams_       gensupport.URLParams
149681	ifNoneMatch_     string
149682	ctx_             context.Context
149683	header_          http.Header
149684}
149685
149686// Get: Returns the specified TargetHttpsProxy resource. Gets a list of
149687// available target HTTPS proxies by making a list() request.
149688//
149689// - project: Project ID for this request.
149690// - targetHttpsProxy: Name of the TargetHttpsProxy resource to return.
149691func (r *TargetHttpsProxiesService) Get(project string, targetHttpsProxy string) *TargetHttpsProxiesGetCall {
149692	c := &TargetHttpsProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149693	c.project = project
149694	c.targetHttpsProxy = targetHttpsProxy
149695	return c
149696}
149697
149698// Fields allows partial responses to be retrieved. See
149699// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149700// for more information.
149701func (c *TargetHttpsProxiesGetCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesGetCall {
149702	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149703	return c
149704}
149705
149706// IfNoneMatch sets the optional parameter which makes the operation
149707// fail if the object's ETag matches the given value. This is useful for
149708// getting updates only after the object has changed since the last
149709// request. Use googleapi.IsNotModified to check whether the response
149710// error from Do is the result of In-None-Match.
149711func (c *TargetHttpsProxiesGetCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesGetCall {
149712	c.ifNoneMatch_ = entityTag
149713	return c
149714}
149715
149716// Context sets the context to be used in this call's Do method. Any
149717// pending HTTP request will be aborted if the provided context is
149718// canceled.
149719func (c *TargetHttpsProxiesGetCall) Context(ctx context.Context) *TargetHttpsProxiesGetCall {
149720	c.ctx_ = ctx
149721	return c
149722}
149723
149724// Header returns an http.Header that can be modified by the caller to
149725// add HTTP headers to the request.
149726func (c *TargetHttpsProxiesGetCall) Header() http.Header {
149727	if c.header_ == nil {
149728		c.header_ = make(http.Header)
149729	}
149730	return c.header_
149731}
149732
149733func (c *TargetHttpsProxiesGetCall) doRequest(alt string) (*http.Response, error) {
149734	reqHeaders := make(http.Header)
149735	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
149736	for k, v := range c.header_ {
149737		reqHeaders[k] = v
149738	}
149739	reqHeaders.Set("User-Agent", c.s.userAgent())
149740	if c.ifNoneMatch_ != "" {
149741		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
149742	}
149743	var body io.Reader = nil
149744	c.urlParams_.Set("alt", alt)
149745	c.urlParams_.Set("prettyPrint", "false")
149746	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}")
149747	urls += "?" + c.urlParams_.Encode()
149748	req, err := http.NewRequest("GET", urls, body)
149749	if err != nil {
149750		return nil, err
149751	}
149752	req.Header = reqHeaders
149753	googleapi.Expand(req.URL, map[string]string{
149754		"project":          c.project,
149755		"targetHttpsProxy": c.targetHttpsProxy,
149756	})
149757	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149758}
149759
149760// Do executes the "compute.targetHttpsProxies.get" call.
149761// Exactly one of *TargetHttpsProxy or error will be non-nil. Any
149762// non-2xx status code is an error. Response headers are in either
149763// *TargetHttpsProxy.ServerResponse.Header or (if a response was
149764// returned at all) in error.(*googleapi.Error).Header. Use
149765// googleapi.IsNotModified to check whether the returned error was
149766// because http.StatusNotModified was returned.
149767func (c *TargetHttpsProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxy, error) {
149768	gensupport.SetOptions(c.urlParams_, opts...)
149769	res, err := c.doRequest("json")
149770	if res != nil && res.StatusCode == http.StatusNotModified {
149771		if res.Body != nil {
149772			res.Body.Close()
149773		}
149774		return nil, &googleapi.Error{
149775			Code:   res.StatusCode,
149776			Header: res.Header,
149777		}
149778	}
149779	if err != nil {
149780		return nil, err
149781	}
149782	defer googleapi.CloseBody(res)
149783	if err := googleapi.CheckResponse(res); err != nil {
149784		return nil, err
149785	}
149786	ret := &TargetHttpsProxy{
149787		ServerResponse: googleapi.ServerResponse{
149788			Header:         res.Header,
149789			HTTPStatusCode: res.StatusCode,
149790		},
149791	}
149792	target := &ret
149793	if err := gensupport.DecodeResponse(target, res); err != nil {
149794		return nil, err
149795	}
149796	return ret, nil
149797	// {
149798	//   "description": "Returns the specified TargetHttpsProxy resource. Gets a list of available target HTTPS proxies by making a list() request.",
149799	//   "httpMethod": "GET",
149800	//   "id": "compute.targetHttpsProxies.get",
149801	//   "parameterOrder": [
149802	//     "project",
149803	//     "targetHttpsProxy"
149804	//   ],
149805	//   "parameters": {
149806	//     "project": {
149807	//       "description": "Project ID for this request.",
149808	//       "location": "path",
149809	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149810	//       "required": true,
149811	//       "type": "string"
149812	//     },
149813	//     "targetHttpsProxy": {
149814	//       "description": "Name of the TargetHttpsProxy resource to return.",
149815	//       "location": "path",
149816	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
149817	//       "required": true,
149818	//       "type": "string"
149819	//     }
149820	//   },
149821	//   "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}",
149822	//   "response": {
149823	//     "$ref": "TargetHttpsProxy"
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.targetHttpsProxies.insert":
149835
149836type TargetHttpsProxiesInsertCall struct {
149837	s                *Service
149838	project          string
149839	targethttpsproxy *TargetHttpsProxy
149840	urlParams_       gensupport.URLParams
149841	ctx_             context.Context
149842	header_          http.Header
149843}
149844
149845// Insert: Creates a TargetHttpsProxy resource in the specified project
149846// using the data included in the request.
149847//
149848// - project: Project ID for this request.
149849func (r *TargetHttpsProxiesService) Insert(project string, targethttpsproxy *TargetHttpsProxy) *TargetHttpsProxiesInsertCall {
149850	c := &TargetHttpsProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149851	c.project = project
149852	c.targethttpsproxy = targethttpsproxy
149853	return c
149854}
149855
149856// RequestId sets the optional parameter "requestId": An optional
149857// request ID to identify requests. Specify a unique request ID so that
149858// if you must retry your request, the server will know to ignore the
149859// request if it has already been completed.
149860//
149861// For example, consider a situation where you make an initial request
149862// and the request times out. If you make the request again with the
149863// same request ID, the server can check if original operation with the
149864// same request ID was received, and if so, will ignore the second
149865// request. This prevents clients from accidentally creating duplicate
149866// commitments.
149867//
149868// The request ID must be a valid UUID with the exception that zero UUID
149869// is not supported (00000000-0000-0000-0000-000000000000).
149870func (c *TargetHttpsProxiesInsertCall) RequestId(requestId string) *TargetHttpsProxiesInsertCall {
149871	c.urlParams_.Set("requestId", requestId)
149872	return c
149873}
149874
149875// Fields allows partial responses to be retrieved. See
149876// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149877// for more information.
149878func (c *TargetHttpsProxiesInsertCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesInsertCall {
149879	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149880	return c
149881}
149882
149883// Context sets the context to be used in this call's Do method. Any
149884// pending HTTP request will be aborted if the provided context is
149885// canceled.
149886func (c *TargetHttpsProxiesInsertCall) Context(ctx context.Context) *TargetHttpsProxiesInsertCall {
149887	c.ctx_ = ctx
149888	return c
149889}
149890
149891// Header returns an http.Header that can be modified by the caller to
149892// add HTTP headers to the request.
149893func (c *TargetHttpsProxiesInsertCall) Header() http.Header {
149894	if c.header_ == nil {
149895		c.header_ = make(http.Header)
149896	}
149897	return c.header_
149898}
149899
149900func (c *TargetHttpsProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
149901	reqHeaders := make(http.Header)
149902	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
149903	for k, v := range c.header_ {
149904		reqHeaders[k] = v
149905	}
149906	reqHeaders.Set("User-Agent", c.s.userAgent())
149907	var body io.Reader = nil
149908	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxy)
149909	if err != nil {
149910		return nil, err
149911	}
149912	reqHeaders.Set("Content-Type", "application/json")
149913	c.urlParams_.Set("alt", alt)
149914	c.urlParams_.Set("prettyPrint", "false")
149915	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies")
149916	urls += "?" + c.urlParams_.Encode()
149917	req, err := http.NewRequest("POST", urls, body)
149918	if err != nil {
149919		return nil, err
149920	}
149921	req.Header = reqHeaders
149922	googleapi.Expand(req.URL, map[string]string{
149923		"project": c.project,
149924	})
149925	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149926}
149927
149928// Do executes the "compute.targetHttpsProxies.insert" call.
149929// Exactly one of *Operation or error will be non-nil. Any non-2xx
149930// status code is an error. Response headers are in either
149931// *Operation.ServerResponse.Header or (if a response was returned at
149932// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
149933// to check whether the returned error was because
149934// http.StatusNotModified was returned.
149935func (c *TargetHttpsProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
149936	gensupport.SetOptions(c.urlParams_, opts...)
149937	res, err := c.doRequest("json")
149938	if res != nil && res.StatusCode == http.StatusNotModified {
149939		if res.Body != nil {
149940			res.Body.Close()
149941		}
149942		return nil, &googleapi.Error{
149943			Code:   res.StatusCode,
149944			Header: res.Header,
149945		}
149946	}
149947	if err != nil {
149948		return nil, err
149949	}
149950	defer googleapi.CloseBody(res)
149951	if err := googleapi.CheckResponse(res); err != nil {
149952		return nil, err
149953	}
149954	ret := &Operation{
149955		ServerResponse: googleapi.ServerResponse{
149956			Header:         res.Header,
149957			HTTPStatusCode: res.StatusCode,
149958		},
149959	}
149960	target := &ret
149961	if err := gensupport.DecodeResponse(target, res); err != nil {
149962		return nil, err
149963	}
149964	return ret, nil
149965	// {
149966	//   "description": "Creates a TargetHttpsProxy resource in the specified project using the data included in the request.",
149967	//   "httpMethod": "POST",
149968	//   "id": "compute.targetHttpsProxies.insert",
149969	//   "parameterOrder": [
149970	//     "project"
149971	//   ],
149972	//   "parameters": {
149973	//     "project": {
149974	//       "description": "Project ID for this request.",
149975	//       "location": "path",
149976	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149977	//       "required": true,
149978	//       "type": "string"
149979	//     },
149980	//     "requestId": {
149981	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
149982	//       "location": "query",
149983	//       "type": "string"
149984	//     }
149985	//   },
149986	//   "path": "projects/{project}/global/targetHttpsProxies",
149987	//   "request": {
149988	//     "$ref": "TargetHttpsProxy"
149989	//   },
149990	//   "response": {
149991	//     "$ref": "Operation"
149992	//   },
149993	//   "scopes": [
149994	//     "https://www.googleapis.com/auth/cloud-platform",
149995	//     "https://www.googleapis.com/auth/compute"
149996	//   ]
149997	// }
149998
149999}
150000
150001// method id "compute.targetHttpsProxies.list":
150002
150003type TargetHttpsProxiesListCall struct {
150004	s            *Service
150005	project      string
150006	urlParams_   gensupport.URLParams
150007	ifNoneMatch_ string
150008	ctx_         context.Context
150009	header_      http.Header
150010}
150011
150012// List: Retrieves the list of TargetHttpsProxy resources available to
150013// the specified project.
150014//
150015// - project: Project ID for this request.
150016func (r *TargetHttpsProxiesService) List(project string) *TargetHttpsProxiesListCall {
150017	c := &TargetHttpsProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150018	c.project = project
150019	return c
150020}
150021
150022// Filter sets the optional parameter "filter": A filter expression that
150023// filters resources listed in the response. The expression must specify
150024// the field name, a comparison operator, and the value that you want to
150025// use for filtering. The value must be a string, a number, or a
150026// boolean. The comparison operator must be either `=`, `!=`, `>`, or
150027// `<`.
150028//
150029// For example, if you are filtering Compute Engine instances, you can
150030// exclude instances named `example-instance` by specifying `name !=
150031// example-instance`.
150032//
150033// You can also filter nested fields. For example, you could specify
150034// `scheduling.automaticRestart = false` to include instances only if
150035// they are not scheduled for automatic restarts. You can use filtering
150036// on nested fields to filter based on resource labels.
150037//
150038// To filter on multiple expressions, provide each separate expression
150039// within parentheses. For example: ``` (scheduling.automaticRestart =
150040// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
150041// is an `AND` expression. However, you can include `AND` and `OR`
150042// expressions explicitly. For example: ``` (cpuPlatform = "Intel
150043// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
150044// (scheduling.automaticRestart = true) ```
150045func (c *TargetHttpsProxiesListCall) Filter(filter string) *TargetHttpsProxiesListCall {
150046	c.urlParams_.Set("filter", filter)
150047	return c
150048}
150049
150050// MaxResults sets the optional parameter "maxResults": The maximum
150051// number of results per page that should be returned. If the number of
150052// available results is larger than `maxResults`, Compute Engine returns
150053// a `nextPageToken` that can be used to get the next page of results in
150054// subsequent list requests. Acceptable values are `0` to `500`,
150055// inclusive. (Default: `500`)
150056func (c *TargetHttpsProxiesListCall) MaxResults(maxResults int64) *TargetHttpsProxiesListCall {
150057	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
150058	return c
150059}
150060
150061// OrderBy sets the optional parameter "orderBy": Sorts list results by
150062// a certain order. By default, results are returned in alphanumerical
150063// order based on the resource name.
150064//
150065// You can also sort results in descending order based on the creation
150066// timestamp using `orderBy="creationTimestamp desc". This sorts
150067// results based on the `creationTimestamp` field in reverse
150068// chronological order (newest result first). Use this to sort resources
150069// like operations so that the newest operation is returned
150070// first.
150071//
150072// Currently, only sorting by `name` or `creationTimestamp desc` is
150073// supported.
150074func (c *TargetHttpsProxiesListCall) OrderBy(orderBy string) *TargetHttpsProxiesListCall {
150075	c.urlParams_.Set("orderBy", orderBy)
150076	return c
150077}
150078
150079// PageToken sets the optional parameter "pageToken": Specifies a page
150080// token to use. Set `pageToken` to the `nextPageToken` returned by a
150081// previous list request to get the next page of results.
150082func (c *TargetHttpsProxiesListCall) PageToken(pageToken string) *TargetHttpsProxiesListCall {
150083	c.urlParams_.Set("pageToken", pageToken)
150084	return c
150085}
150086
150087// ReturnPartialSuccess sets the optional parameter
150088// "returnPartialSuccess": Opt-in for partial success behavior which
150089// provides partial results in case of failure. The default value is
150090// false.
150091func (c *TargetHttpsProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetHttpsProxiesListCall {
150092	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
150093	return c
150094}
150095
150096// Fields allows partial responses to be retrieved. See
150097// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150098// for more information.
150099func (c *TargetHttpsProxiesListCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesListCall {
150100	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150101	return c
150102}
150103
150104// IfNoneMatch sets the optional parameter which makes the operation
150105// fail if the object's ETag matches the given value. This is useful for
150106// getting updates only after the object has changed since the last
150107// request. Use googleapi.IsNotModified to check whether the response
150108// error from Do is the result of In-None-Match.
150109func (c *TargetHttpsProxiesListCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesListCall {
150110	c.ifNoneMatch_ = entityTag
150111	return c
150112}
150113
150114// Context sets the context to be used in this call's Do method. Any
150115// pending HTTP request will be aborted if the provided context is
150116// canceled.
150117func (c *TargetHttpsProxiesListCall) Context(ctx context.Context) *TargetHttpsProxiesListCall {
150118	c.ctx_ = ctx
150119	return c
150120}
150121
150122// Header returns an http.Header that can be modified by the caller to
150123// add HTTP headers to the request.
150124func (c *TargetHttpsProxiesListCall) Header() http.Header {
150125	if c.header_ == nil {
150126		c.header_ = make(http.Header)
150127	}
150128	return c.header_
150129}
150130
150131func (c *TargetHttpsProxiesListCall) doRequest(alt string) (*http.Response, error) {
150132	reqHeaders := make(http.Header)
150133	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
150134	for k, v := range c.header_ {
150135		reqHeaders[k] = v
150136	}
150137	reqHeaders.Set("User-Agent", c.s.userAgent())
150138	if c.ifNoneMatch_ != "" {
150139		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
150140	}
150141	var body io.Reader = nil
150142	c.urlParams_.Set("alt", alt)
150143	c.urlParams_.Set("prettyPrint", "false")
150144	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies")
150145	urls += "?" + c.urlParams_.Encode()
150146	req, err := http.NewRequest("GET", urls, body)
150147	if err != nil {
150148		return nil, err
150149	}
150150	req.Header = reqHeaders
150151	googleapi.Expand(req.URL, map[string]string{
150152		"project": c.project,
150153	})
150154	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150155}
150156
150157// Do executes the "compute.targetHttpsProxies.list" call.
150158// Exactly one of *TargetHttpsProxyList or error will be non-nil. Any
150159// non-2xx status code is an error. Response headers are in either
150160// *TargetHttpsProxyList.ServerResponse.Header or (if a response was
150161// returned at all) in error.(*googleapi.Error).Header. Use
150162// googleapi.IsNotModified to check whether the returned error was
150163// because http.StatusNotModified was returned.
150164func (c *TargetHttpsProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyList, error) {
150165	gensupport.SetOptions(c.urlParams_, opts...)
150166	res, err := c.doRequest("json")
150167	if res != nil && res.StatusCode == http.StatusNotModified {
150168		if res.Body != nil {
150169			res.Body.Close()
150170		}
150171		return nil, &googleapi.Error{
150172			Code:   res.StatusCode,
150173			Header: res.Header,
150174		}
150175	}
150176	if err != nil {
150177		return nil, err
150178	}
150179	defer googleapi.CloseBody(res)
150180	if err := googleapi.CheckResponse(res); err != nil {
150181		return nil, err
150182	}
150183	ret := &TargetHttpsProxyList{
150184		ServerResponse: googleapi.ServerResponse{
150185			Header:         res.Header,
150186			HTTPStatusCode: res.StatusCode,
150187		},
150188	}
150189	target := &ret
150190	if err := gensupport.DecodeResponse(target, res); err != nil {
150191		return nil, err
150192	}
150193	return ret, nil
150194	// {
150195	//   "description": "Retrieves the list of TargetHttpsProxy resources available to the specified project.",
150196	//   "httpMethod": "GET",
150197	//   "id": "compute.targetHttpsProxies.list",
150198	//   "parameterOrder": [
150199	//     "project"
150200	//   ],
150201	//   "parameters": {
150202	//     "filter": {
150203	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
150204	//       "location": "query",
150205	//       "type": "string"
150206	//     },
150207	//     "maxResults": {
150208	//       "default": "500",
150209	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
150210	//       "format": "uint32",
150211	//       "location": "query",
150212	//       "minimum": "0",
150213	//       "type": "integer"
150214	//     },
150215	//     "orderBy": {
150216	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
150217	//       "location": "query",
150218	//       "type": "string"
150219	//     },
150220	//     "pageToken": {
150221	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
150222	//       "location": "query",
150223	//       "type": "string"
150224	//     },
150225	//     "project": {
150226	//       "description": "Project ID for this request.",
150227	//       "location": "path",
150228	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150229	//       "required": true,
150230	//       "type": "string"
150231	//     },
150232	//     "returnPartialSuccess": {
150233	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
150234	//       "location": "query",
150235	//       "type": "boolean"
150236	//     }
150237	//   },
150238	//   "path": "projects/{project}/global/targetHttpsProxies",
150239	//   "response": {
150240	//     "$ref": "TargetHttpsProxyList"
150241	//   },
150242	//   "scopes": [
150243	//     "https://www.googleapis.com/auth/cloud-platform",
150244	//     "https://www.googleapis.com/auth/compute",
150245	//     "https://www.googleapis.com/auth/compute.readonly"
150246	//   ]
150247	// }
150248
150249}
150250
150251// Pages invokes f for each page of results.
150252// A non-nil error returned from f will halt the iteration.
150253// The provided context supersedes any context provided to the Context method.
150254func (c *TargetHttpsProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyList) error) error {
150255	c.ctx_ = ctx
150256	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
150257	for {
150258		x, err := c.Do()
150259		if err != nil {
150260			return err
150261		}
150262		if err := f(x); err != nil {
150263			return err
150264		}
150265		if x.NextPageToken == "" {
150266			return nil
150267		}
150268		c.PageToken(x.NextPageToken)
150269	}
150270}
150271
150272// method id "compute.targetHttpsProxies.patch":
150273
150274type TargetHttpsProxiesPatchCall struct {
150275	s                *Service
150276	project          string
150277	targetHttpsProxy string
150278	targethttpsproxy *TargetHttpsProxy
150279	urlParams_       gensupport.URLParams
150280	ctx_             context.Context
150281	header_          http.Header
150282}
150283
150284// Patch: Patches the specified TargetHttpsProxy resource with the data
150285// included in the request. This method supports PATCH semantics and
150286// uses JSON merge patch format and processing rules. (==
150287// suppress_warning http-rest-shadowed ==)
150288//
150289// - project: Project ID for this request.
150290// - targetHttpsProxy: Name of the TargetHttpsProxy resource to patch.
150291func (r *TargetHttpsProxiesService) Patch(project string, targetHttpsProxy string, targethttpsproxy *TargetHttpsProxy) *TargetHttpsProxiesPatchCall {
150292	c := &TargetHttpsProxiesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150293	c.project = project
150294	c.targetHttpsProxy = targetHttpsProxy
150295	c.targethttpsproxy = targethttpsproxy
150296	return c
150297}
150298
150299// RequestId sets the optional parameter "requestId": An optional
150300// request ID to identify requests. Specify a unique request ID so that
150301// if you must retry your request, the server will know to ignore the
150302// request if it has already been completed.
150303//
150304// For example, consider a situation where you make an initial request
150305// and the request times out. If you make the request again with the
150306// same request ID, the server can check if original operation with the
150307// same request ID was received, and if so, will ignore the second
150308// request. This prevents clients from accidentally creating duplicate
150309// commitments.
150310//
150311// The request ID must be a valid UUID with the exception that zero UUID
150312// is not supported (00000000-0000-0000-0000-000000000000).
150313func (c *TargetHttpsProxiesPatchCall) RequestId(requestId string) *TargetHttpsProxiesPatchCall {
150314	c.urlParams_.Set("requestId", requestId)
150315	return c
150316}
150317
150318// Fields allows partial responses to be retrieved. See
150319// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150320// for more information.
150321func (c *TargetHttpsProxiesPatchCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesPatchCall {
150322	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150323	return c
150324}
150325
150326// Context sets the context to be used in this call's Do method. Any
150327// pending HTTP request will be aborted if the provided context is
150328// canceled.
150329func (c *TargetHttpsProxiesPatchCall) Context(ctx context.Context) *TargetHttpsProxiesPatchCall {
150330	c.ctx_ = ctx
150331	return c
150332}
150333
150334// Header returns an http.Header that can be modified by the caller to
150335// add HTTP headers to the request.
150336func (c *TargetHttpsProxiesPatchCall) Header() http.Header {
150337	if c.header_ == nil {
150338		c.header_ = make(http.Header)
150339	}
150340	return c.header_
150341}
150342
150343func (c *TargetHttpsProxiesPatchCall) doRequest(alt string) (*http.Response, error) {
150344	reqHeaders := make(http.Header)
150345	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
150346	for k, v := range c.header_ {
150347		reqHeaders[k] = v
150348	}
150349	reqHeaders.Set("User-Agent", c.s.userAgent())
150350	var body io.Reader = nil
150351	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxy)
150352	if err != nil {
150353		return nil, err
150354	}
150355	reqHeaders.Set("Content-Type", "application/json")
150356	c.urlParams_.Set("alt", alt)
150357	c.urlParams_.Set("prettyPrint", "false")
150358	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}")
150359	urls += "?" + c.urlParams_.Encode()
150360	req, err := http.NewRequest("PATCH", urls, body)
150361	if err != nil {
150362		return nil, err
150363	}
150364	req.Header = reqHeaders
150365	googleapi.Expand(req.URL, map[string]string{
150366		"project":          c.project,
150367		"targetHttpsProxy": c.targetHttpsProxy,
150368	})
150369	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150370}
150371
150372// Do executes the "compute.targetHttpsProxies.patch" call.
150373// Exactly one of *Operation or error will be non-nil. Any non-2xx
150374// status code is an error. Response headers are in either
150375// *Operation.ServerResponse.Header or (if a response was returned at
150376// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
150377// to check whether the returned error was because
150378// http.StatusNotModified was returned.
150379func (c *TargetHttpsProxiesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
150380	gensupport.SetOptions(c.urlParams_, opts...)
150381	res, err := c.doRequest("json")
150382	if res != nil && res.StatusCode == http.StatusNotModified {
150383		if res.Body != nil {
150384			res.Body.Close()
150385		}
150386		return nil, &googleapi.Error{
150387			Code:   res.StatusCode,
150388			Header: res.Header,
150389		}
150390	}
150391	if err != nil {
150392		return nil, err
150393	}
150394	defer googleapi.CloseBody(res)
150395	if err := googleapi.CheckResponse(res); err != nil {
150396		return nil, err
150397	}
150398	ret := &Operation{
150399		ServerResponse: googleapi.ServerResponse{
150400			Header:         res.Header,
150401			HTTPStatusCode: res.StatusCode,
150402		},
150403	}
150404	target := &ret
150405	if err := gensupport.DecodeResponse(target, res); err != nil {
150406		return nil, err
150407	}
150408	return ret, nil
150409	// {
150410	//   "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 ==)",
150411	//   "httpMethod": "PATCH",
150412	//   "id": "compute.targetHttpsProxies.patch",
150413	//   "parameterOrder": [
150414	//     "project",
150415	//     "targetHttpsProxy"
150416	//   ],
150417	//   "parameters": {
150418	//     "project": {
150419	//       "description": "Project ID for this request.",
150420	//       "location": "path",
150421	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150422	//       "required": true,
150423	//       "type": "string"
150424	//     },
150425	//     "requestId": {
150426	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
150427	//       "location": "query",
150428	//       "type": "string"
150429	//     },
150430	//     "targetHttpsProxy": {
150431	//       "description": "Name of the TargetHttpsProxy resource to patch.",
150432	//       "location": "path",
150433	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
150434	//       "required": true,
150435	//       "type": "string"
150436	//     }
150437	//   },
150438	//   "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}",
150439	//   "request": {
150440	//     "$ref": "TargetHttpsProxy"
150441	//   },
150442	//   "response": {
150443	//     "$ref": "Operation"
150444	//   },
150445	//   "scopes": [
150446	//     "https://www.googleapis.com/auth/cloud-platform",
150447	//     "https://www.googleapis.com/auth/compute"
150448	//   ]
150449	// }
150450
150451}
150452
150453// method id "compute.targetHttpsProxies.setQuicOverride":
150454
150455type TargetHttpsProxiesSetQuicOverrideCall struct {
150456	s                                        *Service
150457	project                                  string
150458	targetHttpsProxy                         string
150459	targethttpsproxiessetquicoverriderequest *TargetHttpsProxiesSetQuicOverrideRequest
150460	urlParams_                               gensupport.URLParams
150461	ctx_                                     context.Context
150462	header_                                  http.Header
150463}
150464
150465// SetQuicOverride: Sets the QUIC override policy for TargetHttpsProxy.
150466//
150467// - project: Project ID for this request.
150468// - targetHttpsProxy: Name of the TargetHttpsProxy resource to set the
150469//   QUIC override policy for. The name should conform to RFC1035.
150470func (r *TargetHttpsProxiesService) SetQuicOverride(project string, targetHttpsProxy string, targethttpsproxiessetquicoverriderequest *TargetHttpsProxiesSetQuicOverrideRequest) *TargetHttpsProxiesSetQuicOverrideCall {
150471	c := &TargetHttpsProxiesSetQuicOverrideCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150472	c.project = project
150473	c.targetHttpsProxy = targetHttpsProxy
150474	c.targethttpsproxiessetquicoverriderequest = targethttpsproxiessetquicoverriderequest
150475	return c
150476}
150477
150478// RequestId sets the optional parameter "requestId": An optional
150479// request ID to identify requests. Specify a unique request ID so that
150480// if you must retry your request, the server will know to ignore the
150481// request if it has already been completed.
150482//
150483// For example, consider a situation where you make an initial request
150484// and the request times out. If you make the request again with the
150485// same request ID, the server can check if original operation with the
150486// same request ID was received, and if so, will ignore the second
150487// request. This prevents clients from accidentally creating duplicate
150488// commitments.
150489//
150490// The request ID must be a valid UUID with the exception that zero UUID
150491// is not supported (00000000-0000-0000-0000-000000000000).
150492func (c *TargetHttpsProxiesSetQuicOverrideCall) RequestId(requestId string) *TargetHttpsProxiesSetQuicOverrideCall {
150493	c.urlParams_.Set("requestId", requestId)
150494	return c
150495}
150496
150497// Fields allows partial responses to be retrieved. See
150498// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150499// for more information.
150500func (c *TargetHttpsProxiesSetQuicOverrideCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetQuicOverrideCall {
150501	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150502	return c
150503}
150504
150505// Context sets the context to be used in this call's Do method. Any
150506// pending HTTP request will be aborted if the provided context is
150507// canceled.
150508func (c *TargetHttpsProxiesSetQuicOverrideCall) Context(ctx context.Context) *TargetHttpsProxiesSetQuicOverrideCall {
150509	c.ctx_ = ctx
150510	return c
150511}
150512
150513// Header returns an http.Header that can be modified by the caller to
150514// add HTTP headers to the request.
150515func (c *TargetHttpsProxiesSetQuicOverrideCall) Header() http.Header {
150516	if c.header_ == nil {
150517		c.header_ = make(http.Header)
150518	}
150519	return c.header_
150520}
150521
150522func (c *TargetHttpsProxiesSetQuicOverrideCall) doRequest(alt string) (*http.Response, error) {
150523	reqHeaders := make(http.Header)
150524	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
150525	for k, v := range c.header_ {
150526		reqHeaders[k] = v
150527	}
150528	reqHeaders.Set("User-Agent", c.s.userAgent())
150529	var body io.Reader = nil
150530	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxiessetquicoverriderequest)
150531	if err != nil {
150532		return nil, err
150533	}
150534	reqHeaders.Set("Content-Type", "application/json")
150535	c.urlParams_.Set("alt", alt)
150536	c.urlParams_.Set("prettyPrint", "false")
150537	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride")
150538	urls += "?" + c.urlParams_.Encode()
150539	req, err := http.NewRequest("POST", urls, body)
150540	if err != nil {
150541		return nil, err
150542	}
150543	req.Header = reqHeaders
150544	googleapi.Expand(req.URL, map[string]string{
150545		"project":          c.project,
150546		"targetHttpsProxy": c.targetHttpsProxy,
150547	})
150548	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150549}
150550
150551// Do executes the "compute.targetHttpsProxies.setQuicOverride" call.
150552// Exactly one of *Operation or error will be non-nil. Any non-2xx
150553// status code is an error. Response headers are in either
150554// *Operation.ServerResponse.Header or (if a response was returned at
150555// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
150556// to check whether the returned error was because
150557// http.StatusNotModified was returned.
150558func (c *TargetHttpsProxiesSetQuicOverrideCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
150559	gensupport.SetOptions(c.urlParams_, opts...)
150560	res, err := c.doRequest("json")
150561	if res != nil && res.StatusCode == http.StatusNotModified {
150562		if res.Body != nil {
150563			res.Body.Close()
150564		}
150565		return nil, &googleapi.Error{
150566			Code:   res.StatusCode,
150567			Header: res.Header,
150568		}
150569	}
150570	if err != nil {
150571		return nil, err
150572	}
150573	defer googleapi.CloseBody(res)
150574	if err := googleapi.CheckResponse(res); err != nil {
150575		return nil, err
150576	}
150577	ret := &Operation{
150578		ServerResponse: googleapi.ServerResponse{
150579			Header:         res.Header,
150580			HTTPStatusCode: res.StatusCode,
150581		},
150582	}
150583	target := &ret
150584	if err := gensupport.DecodeResponse(target, res); err != nil {
150585		return nil, err
150586	}
150587	return ret, nil
150588	// {
150589	//   "description": "Sets the QUIC override policy for TargetHttpsProxy.",
150590	//   "httpMethod": "POST",
150591	//   "id": "compute.targetHttpsProxies.setQuicOverride",
150592	//   "parameterOrder": [
150593	//     "project",
150594	//     "targetHttpsProxy"
150595	//   ],
150596	//   "parameters": {
150597	//     "project": {
150598	//       "description": "Project ID for this request.",
150599	//       "location": "path",
150600	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150601	//       "required": true,
150602	//       "type": "string"
150603	//     },
150604	//     "requestId": {
150605	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
150606	//       "location": "query",
150607	//       "type": "string"
150608	//     },
150609	//     "targetHttpsProxy": {
150610	//       "description": "Name of the TargetHttpsProxy resource to set the QUIC override policy for. The name should conform to RFC1035.",
150611	//       "location": "path",
150612	//       "required": true,
150613	//       "type": "string"
150614	//     }
150615	//   },
150616	//   "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride",
150617	//   "request": {
150618	//     "$ref": "TargetHttpsProxiesSetQuicOverrideRequest"
150619	//   },
150620	//   "response": {
150621	//     "$ref": "Operation"
150622	//   },
150623	//   "scopes": [
150624	//     "https://www.googleapis.com/auth/cloud-platform",
150625	//     "https://www.googleapis.com/auth/compute"
150626	//   ]
150627	// }
150628
150629}
150630
150631// method id "compute.targetHttpsProxies.setSslCertificates":
150632
150633type TargetHttpsProxiesSetSslCertificatesCall struct {
150634	s                                           *Service
150635	project                                     string
150636	targetHttpsProxy                            string
150637	targethttpsproxiessetsslcertificatesrequest *TargetHttpsProxiesSetSslCertificatesRequest
150638	urlParams_                                  gensupport.URLParams
150639	ctx_                                        context.Context
150640	header_                                     http.Header
150641}
150642
150643// SetSslCertificates: Replaces SslCertificates for TargetHttpsProxy.
150644//
150645// - project: Project ID for this request.
150646// - targetHttpsProxy: Name of the TargetHttpsProxy resource to set an
150647//   SslCertificates resource for.
150648func (r *TargetHttpsProxiesService) SetSslCertificates(project string, targetHttpsProxy string, targethttpsproxiessetsslcertificatesrequest *TargetHttpsProxiesSetSslCertificatesRequest) *TargetHttpsProxiesSetSslCertificatesCall {
150649	c := &TargetHttpsProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150650	c.project = project
150651	c.targetHttpsProxy = targetHttpsProxy
150652	c.targethttpsproxiessetsslcertificatesrequest = targethttpsproxiessetsslcertificatesrequest
150653	return c
150654}
150655
150656// RequestId sets the optional parameter "requestId": An optional
150657// request ID to identify requests. Specify a unique request ID so that
150658// if you must retry your request, the server will know to ignore the
150659// request if it has already been completed.
150660//
150661// For example, consider a situation where you make an initial request
150662// and the request times out. If you make the request again with the
150663// same request ID, the server can check if original operation with the
150664// same request ID was received, and if so, will ignore the second
150665// request. This prevents clients from accidentally creating duplicate
150666// commitments.
150667//
150668// The request ID must be a valid UUID with the exception that zero UUID
150669// is not supported (00000000-0000-0000-0000-000000000000).
150670func (c *TargetHttpsProxiesSetSslCertificatesCall) RequestId(requestId string) *TargetHttpsProxiesSetSslCertificatesCall {
150671	c.urlParams_.Set("requestId", requestId)
150672	return c
150673}
150674
150675// Fields allows partial responses to be retrieved. See
150676// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150677// for more information.
150678func (c *TargetHttpsProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetSslCertificatesCall {
150679	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150680	return c
150681}
150682
150683// Context sets the context to be used in this call's Do method. Any
150684// pending HTTP request will be aborted if the provided context is
150685// canceled.
150686func (c *TargetHttpsProxiesSetSslCertificatesCall) Context(ctx context.Context) *TargetHttpsProxiesSetSslCertificatesCall {
150687	c.ctx_ = ctx
150688	return c
150689}
150690
150691// Header returns an http.Header that can be modified by the caller to
150692// add HTTP headers to the request.
150693func (c *TargetHttpsProxiesSetSslCertificatesCall) Header() http.Header {
150694	if c.header_ == nil {
150695		c.header_ = make(http.Header)
150696	}
150697	return c.header_
150698}
150699
150700func (c *TargetHttpsProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
150701	reqHeaders := make(http.Header)
150702	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
150703	for k, v := range c.header_ {
150704		reqHeaders[k] = v
150705	}
150706	reqHeaders.Set("User-Agent", c.s.userAgent())
150707	var body io.Reader = nil
150708	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxiessetsslcertificatesrequest)
150709	if err != nil {
150710		return nil, err
150711	}
150712	reqHeaders.Set("Content-Type", "application/json")
150713	c.urlParams_.Set("alt", alt)
150714	c.urlParams_.Set("prettyPrint", "false")
150715	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates")
150716	urls += "?" + c.urlParams_.Encode()
150717	req, err := http.NewRequest("POST", urls, body)
150718	if err != nil {
150719		return nil, err
150720	}
150721	req.Header = reqHeaders
150722	googleapi.Expand(req.URL, map[string]string{
150723		"project":          c.project,
150724		"targetHttpsProxy": c.targetHttpsProxy,
150725	})
150726	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150727}
150728
150729// Do executes the "compute.targetHttpsProxies.setSslCertificates" call.
150730// Exactly one of *Operation or error will be non-nil. Any non-2xx
150731// status code is an error. Response headers are in either
150732// *Operation.ServerResponse.Header or (if a response was returned at
150733// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
150734// to check whether the returned error was because
150735// http.StatusNotModified was returned.
150736func (c *TargetHttpsProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
150737	gensupport.SetOptions(c.urlParams_, opts...)
150738	res, err := c.doRequest("json")
150739	if res != nil && res.StatusCode == http.StatusNotModified {
150740		if res.Body != nil {
150741			res.Body.Close()
150742		}
150743		return nil, &googleapi.Error{
150744			Code:   res.StatusCode,
150745			Header: res.Header,
150746		}
150747	}
150748	if err != nil {
150749		return nil, err
150750	}
150751	defer googleapi.CloseBody(res)
150752	if err := googleapi.CheckResponse(res); err != nil {
150753		return nil, err
150754	}
150755	ret := &Operation{
150756		ServerResponse: googleapi.ServerResponse{
150757			Header:         res.Header,
150758			HTTPStatusCode: res.StatusCode,
150759		},
150760	}
150761	target := &ret
150762	if err := gensupport.DecodeResponse(target, res); err != nil {
150763		return nil, err
150764	}
150765	return ret, nil
150766	// {
150767	//   "description": "Replaces SslCertificates for TargetHttpsProxy.",
150768	//   "httpMethod": "POST",
150769	//   "id": "compute.targetHttpsProxies.setSslCertificates",
150770	//   "parameterOrder": [
150771	//     "project",
150772	//     "targetHttpsProxy"
150773	//   ],
150774	//   "parameters": {
150775	//     "project": {
150776	//       "description": "Project ID for this request.",
150777	//       "location": "path",
150778	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150779	//       "required": true,
150780	//       "type": "string"
150781	//     },
150782	//     "requestId": {
150783	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
150784	//       "location": "query",
150785	//       "type": "string"
150786	//     },
150787	//     "targetHttpsProxy": {
150788	//       "description": "Name of the TargetHttpsProxy resource to set an SslCertificates resource for.",
150789	//       "location": "path",
150790	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
150791	//       "required": true,
150792	//       "type": "string"
150793	//     }
150794	//   },
150795	//   "path": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates",
150796	//   "request": {
150797	//     "$ref": "TargetHttpsProxiesSetSslCertificatesRequest"
150798	//   },
150799	//   "response": {
150800	//     "$ref": "Operation"
150801	//   },
150802	//   "scopes": [
150803	//     "https://www.googleapis.com/auth/cloud-platform",
150804	//     "https://www.googleapis.com/auth/compute"
150805	//   ]
150806	// }
150807
150808}
150809
150810// method id "compute.targetHttpsProxies.setSslPolicy":
150811
150812type TargetHttpsProxiesSetSslPolicyCall struct {
150813	s                  *Service
150814	project            string
150815	targetHttpsProxy   string
150816	sslpolicyreference *SslPolicyReference
150817	urlParams_         gensupport.URLParams
150818	ctx_               context.Context
150819	header_            http.Header
150820}
150821
150822// SetSslPolicy: Sets the SSL policy for TargetHttpsProxy. The SSL
150823// policy specifies the server-side support for SSL features. This
150824// affects connections between clients and the HTTPS proxy load
150825// balancer. They do not affect the connection between the load balancer
150826// and the backends.
150827//
150828// - project: Project ID for this request.
150829// - targetHttpsProxy: Name of the TargetHttpsProxy resource whose SSL
150830//   policy is to be set. The name must be 1-63 characters long, and
150831//   comply with RFC1035.
150832func (r *TargetHttpsProxiesService) SetSslPolicy(project string, targetHttpsProxy string, sslpolicyreference *SslPolicyReference) *TargetHttpsProxiesSetSslPolicyCall {
150833	c := &TargetHttpsProxiesSetSslPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150834	c.project = project
150835	c.targetHttpsProxy = targetHttpsProxy
150836	c.sslpolicyreference = sslpolicyreference
150837	return c
150838}
150839
150840// RequestId sets the optional parameter "requestId": An optional
150841// request ID to identify requests. Specify a unique request ID so that
150842// if you must retry your request, the server will know to ignore the
150843// request if it has already been completed.
150844//
150845// For example, consider a situation where you make an initial request
150846// and the request times out. If you make the request again with the
150847// same request ID, the server can check if original operation with the
150848// same request ID was received, and if so, will ignore the second
150849// request. This prevents clients from accidentally creating duplicate
150850// commitments.
150851//
150852// The request ID must be a valid UUID with the exception that zero UUID
150853// is not supported (00000000-0000-0000-0000-000000000000).
150854func (c *TargetHttpsProxiesSetSslPolicyCall) RequestId(requestId string) *TargetHttpsProxiesSetSslPolicyCall {
150855	c.urlParams_.Set("requestId", requestId)
150856	return c
150857}
150858
150859// Fields allows partial responses to be retrieved. See
150860// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150861// for more information.
150862func (c *TargetHttpsProxiesSetSslPolicyCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetSslPolicyCall {
150863	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150864	return c
150865}
150866
150867// Context sets the context to be used in this call's Do method. Any
150868// pending HTTP request will be aborted if the provided context is
150869// canceled.
150870func (c *TargetHttpsProxiesSetSslPolicyCall) Context(ctx context.Context) *TargetHttpsProxiesSetSslPolicyCall {
150871	c.ctx_ = ctx
150872	return c
150873}
150874
150875// Header returns an http.Header that can be modified by the caller to
150876// add HTTP headers to the request.
150877func (c *TargetHttpsProxiesSetSslPolicyCall) Header() http.Header {
150878	if c.header_ == nil {
150879		c.header_ = make(http.Header)
150880	}
150881	return c.header_
150882}
150883
150884func (c *TargetHttpsProxiesSetSslPolicyCall) doRequest(alt string) (*http.Response, error) {
150885	reqHeaders := make(http.Header)
150886	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
150887	for k, v := range c.header_ {
150888		reqHeaders[k] = v
150889	}
150890	reqHeaders.Set("User-Agent", c.s.userAgent())
150891	var body io.Reader = nil
150892	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicyreference)
150893	if err != nil {
150894		return nil, err
150895	}
150896	reqHeaders.Set("Content-Type", "application/json")
150897	c.urlParams_.Set("alt", alt)
150898	c.urlParams_.Set("prettyPrint", "false")
150899	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy")
150900	urls += "?" + c.urlParams_.Encode()
150901	req, err := http.NewRequest("POST", urls, body)
150902	if err != nil {
150903		return nil, err
150904	}
150905	req.Header = reqHeaders
150906	googleapi.Expand(req.URL, map[string]string{
150907		"project":          c.project,
150908		"targetHttpsProxy": c.targetHttpsProxy,
150909	})
150910	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150911}
150912
150913// Do executes the "compute.targetHttpsProxies.setSslPolicy" call.
150914// Exactly one of *Operation or error will be non-nil. Any non-2xx
150915// status code is an error. Response headers are in either
150916// *Operation.ServerResponse.Header or (if a response was returned at
150917// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
150918// to check whether the returned error was because
150919// http.StatusNotModified was returned.
150920func (c *TargetHttpsProxiesSetSslPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
150921	gensupport.SetOptions(c.urlParams_, opts...)
150922	res, err := c.doRequest("json")
150923	if res != nil && res.StatusCode == http.StatusNotModified {
150924		if res.Body != nil {
150925			res.Body.Close()
150926		}
150927		return nil, &googleapi.Error{
150928			Code:   res.StatusCode,
150929			Header: res.Header,
150930		}
150931	}
150932	if err != nil {
150933		return nil, err
150934	}
150935	defer googleapi.CloseBody(res)
150936	if err := googleapi.CheckResponse(res); err != nil {
150937		return nil, err
150938	}
150939	ret := &Operation{
150940		ServerResponse: googleapi.ServerResponse{
150941			Header:         res.Header,
150942			HTTPStatusCode: res.StatusCode,
150943		},
150944	}
150945	target := &ret
150946	if err := gensupport.DecodeResponse(target, res); err != nil {
150947		return nil, err
150948	}
150949	return ret, nil
150950	// {
150951	//   "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.",
150952	//   "httpMethod": "POST",
150953	//   "id": "compute.targetHttpsProxies.setSslPolicy",
150954	//   "parameterOrder": [
150955	//     "project",
150956	//     "targetHttpsProxy"
150957	//   ],
150958	//   "parameters": {
150959	//     "project": {
150960	//       "description": "Project ID for this request.",
150961	//       "location": "path",
150962	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150963	//       "required": true,
150964	//       "type": "string"
150965	//     },
150966	//     "requestId": {
150967	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
150968	//       "location": "query",
150969	//       "type": "string"
150970	//     },
150971	//     "targetHttpsProxy": {
150972	//       "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.",
150973	//       "location": "path",
150974	//       "required": true,
150975	//       "type": "string"
150976	//     }
150977	//   },
150978	//   "path": "projects/{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy",
150979	//   "request": {
150980	//     "$ref": "SslPolicyReference"
150981	//   },
150982	//   "response": {
150983	//     "$ref": "Operation"
150984	//   },
150985	//   "scopes": [
150986	//     "https://www.googleapis.com/auth/cloud-platform",
150987	//     "https://www.googleapis.com/auth/compute"
150988	//   ]
150989	// }
150990
150991}
150992
150993// method id "compute.targetHttpsProxies.setUrlMap":
150994
150995type TargetHttpsProxiesSetUrlMapCall struct {
150996	s                *Service
150997	project          string
150998	targetHttpsProxy string
150999	urlmapreference  *UrlMapReference
151000	urlParams_       gensupport.URLParams
151001	ctx_             context.Context
151002	header_          http.Header
151003}
151004
151005// SetUrlMap: Changes the URL map for TargetHttpsProxy.
151006//
151007// - project: Project ID for this request.
151008// - targetHttpsProxy: Name of the TargetHttpsProxy resource whose URL
151009//   map is to be set.
151010func (r *TargetHttpsProxiesService) SetUrlMap(project string, targetHttpsProxy string, urlmapreference *UrlMapReference) *TargetHttpsProxiesSetUrlMapCall {
151011	c := &TargetHttpsProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151012	c.project = project
151013	c.targetHttpsProxy = targetHttpsProxy
151014	c.urlmapreference = urlmapreference
151015	return c
151016}
151017
151018// RequestId sets the optional parameter "requestId": An optional
151019// request ID to identify requests. Specify a unique request ID so that
151020// if you must retry your request, the server will know to ignore the
151021// request if it has already been completed.
151022//
151023// For example, consider a situation where you make an initial request
151024// and the request times out. If you make the request again with the
151025// same request ID, the server can check if original operation with the
151026// same request ID was received, and if so, will ignore the second
151027// request. This prevents clients from accidentally creating duplicate
151028// commitments.
151029//
151030// The request ID must be a valid UUID with the exception that zero UUID
151031// is not supported (00000000-0000-0000-0000-000000000000).
151032func (c *TargetHttpsProxiesSetUrlMapCall) RequestId(requestId string) *TargetHttpsProxiesSetUrlMapCall {
151033	c.urlParams_.Set("requestId", requestId)
151034	return c
151035}
151036
151037// Fields allows partial responses to be retrieved. See
151038// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151039// for more information.
151040func (c *TargetHttpsProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetUrlMapCall {
151041	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151042	return c
151043}
151044
151045// Context sets the context to be used in this call's Do method. Any
151046// pending HTTP request will be aborted if the provided context is
151047// canceled.
151048func (c *TargetHttpsProxiesSetUrlMapCall) Context(ctx context.Context) *TargetHttpsProxiesSetUrlMapCall {
151049	c.ctx_ = ctx
151050	return c
151051}
151052
151053// Header returns an http.Header that can be modified by the caller to
151054// add HTTP headers to the request.
151055func (c *TargetHttpsProxiesSetUrlMapCall) Header() http.Header {
151056	if c.header_ == nil {
151057		c.header_ = make(http.Header)
151058	}
151059	return c.header_
151060}
151061
151062func (c *TargetHttpsProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
151063	reqHeaders := make(http.Header)
151064	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
151065	for k, v := range c.header_ {
151066		reqHeaders[k] = v
151067	}
151068	reqHeaders.Set("User-Agent", c.s.userAgent())
151069	var body io.Reader = nil
151070	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
151071	if err != nil {
151072		return nil, err
151073	}
151074	reqHeaders.Set("Content-Type", "application/json")
151075	c.urlParams_.Set("alt", alt)
151076	c.urlParams_.Set("prettyPrint", "false")
151077	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap")
151078	urls += "?" + c.urlParams_.Encode()
151079	req, err := http.NewRequest("POST", urls, body)
151080	if err != nil {
151081		return nil, err
151082	}
151083	req.Header = reqHeaders
151084	googleapi.Expand(req.URL, map[string]string{
151085		"project":          c.project,
151086		"targetHttpsProxy": c.targetHttpsProxy,
151087	})
151088	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151089}
151090
151091// Do executes the "compute.targetHttpsProxies.setUrlMap" call.
151092// Exactly one of *Operation or error will be non-nil. Any non-2xx
151093// status code is an error. Response headers are in either
151094// *Operation.ServerResponse.Header or (if a response was returned at
151095// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
151096// to check whether the returned error was because
151097// http.StatusNotModified was returned.
151098func (c *TargetHttpsProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
151099	gensupport.SetOptions(c.urlParams_, opts...)
151100	res, err := c.doRequest("json")
151101	if res != nil && res.StatusCode == http.StatusNotModified {
151102		if res.Body != nil {
151103			res.Body.Close()
151104		}
151105		return nil, &googleapi.Error{
151106			Code:   res.StatusCode,
151107			Header: res.Header,
151108		}
151109	}
151110	if err != nil {
151111		return nil, err
151112	}
151113	defer googleapi.CloseBody(res)
151114	if err := googleapi.CheckResponse(res); err != nil {
151115		return nil, err
151116	}
151117	ret := &Operation{
151118		ServerResponse: googleapi.ServerResponse{
151119			Header:         res.Header,
151120			HTTPStatusCode: res.StatusCode,
151121		},
151122	}
151123	target := &ret
151124	if err := gensupport.DecodeResponse(target, res); err != nil {
151125		return nil, err
151126	}
151127	return ret, nil
151128	// {
151129	//   "description": "Changes the URL map for TargetHttpsProxy.",
151130	//   "httpMethod": "POST",
151131	//   "id": "compute.targetHttpsProxies.setUrlMap",
151132	//   "parameterOrder": [
151133	//     "project",
151134	//     "targetHttpsProxy"
151135	//   ],
151136	//   "parameters": {
151137	//     "project": {
151138	//       "description": "Project ID for this request.",
151139	//       "location": "path",
151140	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151141	//       "required": true,
151142	//       "type": "string"
151143	//     },
151144	//     "requestId": {
151145	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
151146	//       "location": "query",
151147	//       "type": "string"
151148	//     },
151149	//     "targetHttpsProxy": {
151150	//       "description": "Name of the TargetHttpsProxy resource whose URL map is to be set.",
151151	//       "location": "path",
151152	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
151153	//       "required": true,
151154	//       "type": "string"
151155	//     }
151156	//   },
151157	//   "path": "projects/{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap",
151158	//   "request": {
151159	//     "$ref": "UrlMapReference"
151160	//   },
151161	//   "response": {
151162	//     "$ref": "Operation"
151163	//   },
151164	//   "scopes": [
151165	//     "https://www.googleapis.com/auth/cloud-platform",
151166	//     "https://www.googleapis.com/auth/compute"
151167	//   ]
151168	// }
151169
151170}
151171
151172// method id "compute.targetInstances.aggregatedList":
151173
151174type TargetInstancesAggregatedListCall struct {
151175	s            *Service
151176	project      string
151177	urlParams_   gensupport.URLParams
151178	ifNoneMatch_ string
151179	ctx_         context.Context
151180	header_      http.Header
151181}
151182
151183// AggregatedList: Retrieves an aggregated list of target instances.
151184//
151185// - project: Project ID for this request.
151186// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/aggregatedList
151187func (r *TargetInstancesService) AggregatedList(project string) *TargetInstancesAggregatedListCall {
151188	c := &TargetInstancesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151189	c.project = project
151190	return c
151191}
151192
151193// Filter sets the optional parameter "filter": A filter expression that
151194// filters resources listed in the response. The expression must specify
151195// the field name, a comparison operator, and the value that you want to
151196// use for filtering. The value must be a string, a number, or a
151197// boolean. The comparison operator must be either `=`, `!=`, `>`, or
151198// `<`.
151199//
151200// For example, if you are filtering Compute Engine instances, you can
151201// exclude instances named `example-instance` by specifying `name !=
151202// example-instance`.
151203//
151204// You can also filter nested fields. For example, you could specify
151205// `scheduling.automaticRestart = false` to include instances only if
151206// they are not scheduled for automatic restarts. You can use filtering
151207// on nested fields to filter based on resource labels.
151208//
151209// To filter on multiple expressions, provide each separate expression
151210// within parentheses. For example: ``` (scheduling.automaticRestart =
151211// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
151212// is an `AND` expression. However, you can include `AND` and `OR`
151213// expressions explicitly. For example: ``` (cpuPlatform = "Intel
151214// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
151215// (scheduling.automaticRestart = true) ```
151216func (c *TargetInstancesAggregatedListCall) Filter(filter string) *TargetInstancesAggregatedListCall {
151217	c.urlParams_.Set("filter", filter)
151218	return c
151219}
151220
151221// IncludeAllScopes sets the optional parameter "includeAllScopes":
151222// Indicates whether every visible scope for each scope type (zone,
151223// region, global) should be included in the response. For new resource
151224// types added after this field, the flag has no effect as new resource
151225// types will always include every visible scope for each scope type in
151226// response. For resource types which predate this field, if this flag
151227// is omitted or false, only scopes of the scope types where the
151228// resource type is expected to be found will be included.
151229func (c *TargetInstancesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetInstancesAggregatedListCall {
151230	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
151231	return c
151232}
151233
151234// MaxResults sets the optional parameter "maxResults": The maximum
151235// number of results per page that should be returned. If the number of
151236// available results is larger than `maxResults`, Compute Engine returns
151237// a `nextPageToken` that can be used to get the next page of results in
151238// subsequent list requests. Acceptable values are `0` to `500`,
151239// inclusive. (Default: `500`)
151240func (c *TargetInstancesAggregatedListCall) MaxResults(maxResults int64) *TargetInstancesAggregatedListCall {
151241	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
151242	return c
151243}
151244
151245// OrderBy sets the optional parameter "orderBy": Sorts list results by
151246// a certain order. By default, results are returned in alphanumerical
151247// order based on the resource name.
151248//
151249// You can also sort results in descending order based on the creation
151250// timestamp using `orderBy="creationTimestamp desc". This sorts
151251// results based on the `creationTimestamp` field in reverse
151252// chronological order (newest result first). Use this to sort resources
151253// like operations so that the newest operation is returned
151254// first.
151255//
151256// Currently, only sorting by `name` or `creationTimestamp desc` is
151257// supported.
151258func (c *TargetInstancesAggregatedListCall) OrderBy(orderBy string) *TargetInstancesAggregatedListCall {
151259	c.urlParams_.Set("orderBy", orderBy)
151260	return c
151261}
151262
151263// PageToken sets the optional parameter "pageToken": Specifies a page
151264// token to use. Set `pageToken` to the `nextPageToken` returned by a
151265// previous list request to get the next page of results.
151266func (c *TargetInstancesAggregatedListCall) PageToken(pageToken string) *TargetInstancesAggregatedListCall {
151267	c.urlParams_.Set("pageToken", pageToken)
151268	return c
151269}
151270
151271// ReturnPartialSuccess sets the optional parameter
151272// "returnPartialSuccess": Opt-in for partial success behavior which
151273// provides partial results in case of failure. The default value is
151274// false.
151275func (c *TargetInstancesAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetInstancesAggregatedListCall {
151276	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
151277	return c
151278}
151279
151280// Fields allows partial responses to be retrieved. See
151281// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151282// for more information.
151283func (c *TargetInstancesAggregatedListCall) Fields(s ...googleapi.Field) *TargetInstancesAggregatedListCall {
151284	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151285	return c
151286}
151287
151288// IfNoneMatch sets the optional parameter which makes the operation
151289// fail if the object's ETag matches the given value. This is useful for
151290// getting updates only after the object has changed since the last
151291// request. Use googleapi.IsNotModified to check whether the response
151292// error from Do is the result of In-None-Match.
151293func (c *TargetInstancesAggregatedListCall) IfNoneMatch(entityTag string) *TargetInstancesAggregatedListCall {
151294	c.ifNoneMatch_ = entityTag
151295	return c
151296}
151297
151298// Context sets the context to be used in this call's Do method. Any
151299// pending HTTP request will be aborted if the provided context is
151300// canceled.
151301func (c *TargetInstancesAggregatedListCall) Context(ctx context.Context) *TargetInstancesAggregatedListCall {
151302	c.ctx_ = ctx
151303	return c
151304}
151305
151306// Header returns an http.Header that can be modified by the caller to
151307// add HTTP headers to the request.
151308func (c *TargetInstancesAggregatedListCall) Header() http.Header {
151309	if c.header_ == nil {
151310		c.header_ = make(http.Header)
151311	}
151312	return c.header_
151313}
151314
151315func (c *TargetInstancesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
151316	reqHeaders := make(http.Header)
151317	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
151318	for k, v := range c.header_ {
151319		reqHeaders[k] = v
151320	}
151321	reqHeaders.Set("User-Agent", c.s.userAgent())
151322	if c.ifNoneMatch_ != "" {
151323		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
151324	}
151325	var body io.Reader = nil
151326	c.urlParams_.Set("alt", alt)
151327	c.urlParams_.Set("prettyPrint", "false")
151328	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/targetInstances")
151329	urls += "?" + c.urlParams_.Encode()
151330	req, err := http.NewRequest("GET", urls, body)
151331	if err != nil {
151332		return nil, err
151333	}
151334	req.Header = reqHeaders
151335	googleapi.Expand(req.URL, map[string]string{
151336		"project": c.project,
151337	})
151338	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151339}
151340
151341// Do executes the "compute.targetInstances.aggregatedList" call.
151342// Exactly one of *TargetInstanceAggregatedList or error will be
151343// non-nil. Any non-2xx status code is an error. Response headers are in
151344// either *TargetInstanceAggregatedList.ServerResponse.Header or (if a
151345// response was returned at all) in error.(*googleapi.Error).Header. Use
151346// googleapi.IsNotModified to check whether the returned error was
151347// because http.StatusNotModified was returned.
151348func (c *TargetInstancesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetInstanceAggregatedList, error) {
151349	gensupport.SetOptions(c.urlParams_, opts...)
151350	res, err := c.doRequest("json")
151351	if res != nil && res.StatusCode == http.StatusNotModified {
151352		if res.Body != nil {
151353			res.Body.Close()
151354		}
151355		return nil, &googleapi.Error{
151356			Code:   res.StatusCode,
151357			Header: res.Header,
151358		}
151359	}
151360	if err != nil {
151361		return nil, err
151362	}
151363	defer googleapi.CloseBody(res)
151364	if err := googleapi.CheckResponse(res); err != nil {
151365		return nil, err
151366	}
151367	ret := &TargetInstanceAggregatedList{
151368		ServerResponse: googleapi.ServerResponse{
151369			Header:         res.Header,
151370			HTTPStatusCode: res.StatusCode,
151371		},
151372	}
151373	target := &ret
151374	if err := gensupport.DecodeResponse(target, res); err != nil {
151375		return nil, err
151376	}
151377	return ret, nil
151378	// {
151379	//   "description": "Retrieves an aggregated list of target instances.",
151380	//   "httpMethod": "GET",
151381	//   "id": "compute.targetInstances.aggregatedList",
151382	//   "parameterOrder": [
151383	//     "project"
151384	//   ],
151385	//   "parameters": {
151386	//     "filter": {
151387	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
151388	//       "location": "query",
151389	//       "type": "string"
151390	//     },
151391	//     "includeAllScopes": {
151392	//       "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.",
151393	//       "location": "query",
151394	//       "type": "boolean"
151395	//     },
151396	//     "maxResults": {
151397	//       "default": "500",
151398	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
151399	//       "format": "uint32",
151400	//       "location": "query",
151401	//       "minimum": "0",
151402	//       "type": "integer"
151403	//     },
151404	//     "orderBy": {
151405	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
151406	//       "location": "query",
151407	//       "type": "string"
151408	//     },
151409	//     "pageToken": {
151410	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
151411	//       "location": "query",
151412	//       "type": "string"
151413	//     },
151414	//     "project": {
151415	//       "description": "Project ID for this request.",
151416	//       "location": "path",
151417	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151418	//       "required": true,
151419	//       "type": "string"
151420	//     },
151421	//     "returnPartialSuccess": {
151422	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
151423	//       "location": "query",
151424	//       "type": "boolean"
151425	//     }
151426	//   },
151427	//   "path": "projects/{project}/aggregated/targetInstances",
151428	//   "response": {
151429	//     "$ref": "TargetInstanceAggregatedList"
151430	//   },
151431	//   "scopes": [
151432	//     "https://www.googleapis.com/auth/cloud-platform",
151433	//     "https://www.googleapis.com/auth/compute",
151434	//     "https://www.googleapis.com/auth/compute.readonly"
151435	//   ]
151436	// }
151437
151438}
151439
151440// Pages invokes f for each page of results.
151441// A non-nil error returned from f will halt the iteration.
151442// The provided context supersedes any context provided to the Context method.
151443func (c *TargetInstancesAggregatedListCall) Pages(ctx context.Context, f func(*TargetInstanceAggregatedList) error) error {
151444	c.ctx_ = ctx
151445	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
151446	for {
151447		x, err := c.Do()
151448		if err != nil {
151449			return err
151450		}
151451		if err := f(x); err != nil {
151452			return err
151453		}
151454		if x.NextPageToken == "" {
151455			return nil
151456		}
151457		c.PageToken(x.NextPageToken)
151458	}
151459}
151460
151461// method id "compute.targetInstances.delete":
151462
151463type TargetInstancesDeleteCall struct {
151464	s              *Service
151465	project        string
151466	zone           string
151467	targetInstance string
151468	urlParams_     gensupport.URLParams
151469	ctx_           context.Context
151470	header_        http.Header
151471}
151472
151473// Delete: Deletes the specified TargetInstance resource.
151474//
151475// - project: Project ID for this request.
151476// - targetInstance: Name of the TargetInstance resource to delete.
151477// - zone: Name of the zone scoping this request.
151478// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/delete
151479func (r *TargetInstancesService) Delete(project string, zone string, targetInstance string) *TargetInstancesDeleteCall {
151480	c := &TargetInstancesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151481	c.project = project
151482	c.zone = zone
151483	c.targetInstance = targetInstance
151484	return c
151485}
151486
151487// RequestId sets the optional parameter "requestId": An optional
151488// request ID to identify requests. Specify a unique request ID so that
151489// if you must retry your request, the server will know to ignore the
151490// request if it has already been completed.
151491//
151492// For example, consider a situation where you make an initial request
151493// and the request times out. If you make the request again with the
151494// same request ID, the server can check if original operation with the
151495// same request ID was received, and if so, will ignore the second
151496// request. This prevents clients from accidentally creating duplicate
151497// commitments.
151498//
151499// The request ID must be a valid UUID with the exception that zero UUID
151500// is not supported (00000000-0000-0000-0000-000000000000).
151501func (c *TargetInstancesDeleteCall) RequestId(requestId string) *TargetInstancesDeleteCall {
151502	c.urlParams_.Set("requestId", requestId)
151503	return c
151504}
151505
151506// Fields allows partial responses to be retrieved. See
151507// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151508// for more information.
151509func (c *TargetInstancesDeleteCall) Fields(s ...googleapi.Field) *TargetInstancesDeleteCall {
151510	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151511	return c
151512}
151513
151514// Context sets the context to be used in this call's Do method. Any
151515// pending HTTP request will be aborted if the provided context is
151516// canceled.
151517func (c *TargetInstancesDeleteCall) Context(ctx context.Context) *TargetInstancesDeleteCall {
151518	c.ctx_ = ctx
151519	return c
151520}
151521
151522// Header returns an http.Header that can be modified by the caller to
151523// add HTTP headers to the request.
151524func (c *TargetInstancesDeleteCall) Header() http.Header {
151525	if c.header_ == nil {
151526		c.header_ = make(http.Header)
151527	}
151528	return c.header_
151529}
151530
151531func (c *TargetInstancesDeleteCall) doRequest(alt string) (*http.Response, error) {
151532	reqHeaders := make(http.Header)
151533	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
151534	for k, v := range c.header_ {
151535		reqHeaders[k] = v
151536	}
151537	reqHeaders.Set("User-Agent", c.s.userAgent())
151538	var body io.Reader = nil
151539	c.urlParams_.Set("alt", alt)
151540	c.urlParams_.Set("prettyPrint", "false")
151541	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/targetInstances/{targetInstance}")
151542	urls += "?" + c.urlParams_.Encode()
151543	req, err := http.NewRequest("DELETE", urls, body)
151544	if err != nil {
151545		return nil, err
151546	}
151547	req.Header = reqHeaders
151548	googleapi.Expand(req.URL, map[string]string{
151549		"project":        c.project,
151550		"zone":           c.zone,
151551		"targetInstance": c.targetInstance,
151552	})
151553	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151554}
151555
151556// Do executes the "compute.targetInstances.delete" call.
151557// Exactly one of *Operation or error will be non-nil. Any non-2xx
151558// status code is an error. Response headers are in either
151559// *Operation.ServerResponse.Header or (if a response was returned at
151560// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
151561// to check whether the returned error was because
151562// http.StatusNotModified was returned.
151563func (c *TargetInstancesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
151564	gensupport.SetOptions(c.urlParams_, opts...)
151565	res, err := c.doRequest("json")
151566	if res != nil && res.StatusCode == http.StatusNotModified {
151567		if res.Body != nil {
151568			res.Body.Close()
151569		}
151570		return nil, &googleapi.Error{
151571			Code:   res.StatusCode,
151572			Header: res.Header,
151573		}
151574	}
151575	if err != nil {
151576		return nil, err
151577	}
151578	defer googleapi.CloseBody(res)
151579	if err := googleapi.CheckResponse(res); err != nil {
151580		return nil, err
151581	}
151582	ret := &Operation{
151583		ServerResponse: googleapi.ServerResponse{
151584			Header:         res.Header,
151585			HTTPStatusCode: res.StatusCode,
151586		},
151587	}
151588	target := &ret
151589	if err := gensupport.DecodeResponse(target, res); err != nil {
151590		return nil, err
151591	}
151592	return ret, nil
151593	// {
151594	//   "description": "Deletes the specified TargetInstance resource.",
151595	//   "httpMethod": "DELETE",
151596	//   "id": "compute.targetInstances.delete",
151597	//   "parameterOrder": [
151598	//     "project",
151599	//     "zone",
151600	//     "targetInstance"
151601	//   ],
151602	//   "parameters": {
151603	//     "project": {
151604	//       "description": "Project ID for this request.",
151605	//       "location": "path",
151606	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151607	//       "required": true,
151608	//       "type": "string"
151609	//     },
151610	//     "requestId": {
151611	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
151612	//       "location": "query",
151613	//       "type": "string"
151614	//     },
151615	//     "targetInstance": {
151616	//       "description": "Name of the TargetInstance resource to delete.",
151617	//       "location": "path",
151618	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
151619	//       "required": true,
151620	//       "type": "string"
151621	//     },
151622	//     "zone": {
151623	//       "description": "Name of the zone scoping this request.",
151624	//       "location": "path",
151625	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
151626	//       "required": true,
151627	//       "type": "string"
151628	//     }
151629	//   },
151630	//   "path": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}",
151631	//   "response": {
151632	//     "$ref": "Operation"
151633	//   },
151634	//   "scopes": [
151635	//     "https://www.googleapis.com/auth/cloud-platform",
151636	//     "https://www.googleapis.com/auth/compute"
151637	//   ]
151638	// }
151639
151640}
151641
151642// method id "compute.targetInstances.get":
151643
151644type TargetInstancesGetCall struct {
151645	s              *Service
151646	project        string
151647	zone           string
151648	targetInstance string
151649	urlParams_     gensupport.URLParams
151650	ifNoneMatch_   string
151651	ctx_           context.Context
151652	header_        http.Header
151653}
151654
151655// Get: Returns the specified TargetInstance resource. Gets a list of
151656// available target instances by making a list() request.
151657//
151658// - project: Project ID for this request.
151659// - targetInstance: Name of the TargetInstance resource to return.
151660// - zone: Name of the zone scoping this request.
151661// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/get
151662func (r *TargetInstancesService) Get(project string, zone string, targetInstance string) *TargetInstancesGetCall {
151663	c := &TargetInstancesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151664	c.project = project
151665	c.zone = zone
151666	c.targetInstance = targetInstance
151667	return c
151668}
151669
151670// Fields allows partial responses to be retrieved. See
151671// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151672// for more information.
151673func (c *TargetInstancesGetCall) Fields(s ...googleapi.Field) *TargetInstancesGetCall {
151674	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151675	return c
151676}
151677
151678// IfNoneMatch sets the optional parameter which makes the operation
151679// fail if the object's ETag matches the given value. This is useful for
151680// getting updates only after the object has changed since the last
151681// request. Use googleapi.IsNotModified to check whether the response
151682// error from Do is the result of In-None-Match.
151683func (c *TargetInstancesGetCall) IfNoneMatch(entityTag string) *TargetInstancesGetCall {
151684	c.ifNoneMatch_ = entityTag
151685	return c
151686}
151687
151688// Context sets the context to be used in this call's Do method. Any
151689// pending HTTP request will be aborted if the provided context is
151690// canceled.
151691func (c *TargetInstancesGetCall) Context(ctx context.Context) *TargetInstancesGetCall {
151692	c.ctx_ = ctx
151693	return c
151694}
151695
151696// Header returns an http.Header that can be modified by the caller to
151697// add HTTP headers to the request.
151698func (c *TargetInstancesGetCall) Header() http.Header {
151699	if c.header_ == nil {
151700		c.header_ = make(http.Header)
151701	}
151702	return c.header_
151703}
151704
151705func (c *TargetInstancesGetCall) doRequest(alt string) (*http.Response, error) {
151706	reqHeaders := make(http.Header)
151707	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
151708	for k, v := range c.header_ {
151709		reqHeaders[k] = v
151710	}
151711	reqHeaders.Set("User-Agent", c.s.userAgent())
151712	if c.ifNoneMatch_ != "" {
151713		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
151714	}
151715	var body io.Reader = nil
151716	c.urlParams_.Set("alt", alt)
151717	c.urlParams_.Set("prettyPrint", "false")
151718	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/targetInstances/{targetInstance}")
151719	urls += "?" + c.urlParams_.Encode()
151720	req, err := http.NewRequest("GET", urls, body)
151721	if err != nil {
151722		return nil, err
151723	}
151724	req.Header = reqHeaders
151725	googleapi.Expand(req.URL, map[string]string{
151726		"project":        c.project,
151727		"zone":           c.zone,
151728		"targetInstance": c.targetInstance,
151729	})
151730	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151731}
151732
151733// Do executes the "compute.targetInstances.get" call.
151734// Exactly one of *TargetInstance or error will be non-nil. Any non-2xx
151735// status code is an error. Response headers are in either
151736// *TargetInstance.ServerResponse.Header or (if a response was returned
151737// at all) in error.(*googleapi.Error).Header. Use
151738// googleapi.IsNotModified to check whether the returned error was
151739// because http.StatusNotModified was returned.
151740func (c *TargetInstancesGetCall) Do(opts ...googleapi.CallOption) (*TargetInstance, error) {
151741	gensupport.SetOptions(c.urlParams_, opts...)
151742	res, err := c.doRequest("json")
151743	if res != nil && res.StatusCode == http.StatusNotModified {
151744		if res.Body != nil {
151745			res.Body.Close()
151746		}
151747		return nil, &googleapi.Error{
151748			Code:   res.StatusCode,
151749			Header: res.Header,
151750		}
151751	}
151752	if err != nil {
151753		return nil, err
151754	}
151755	defer googleapi.CloseBody(res)
151756	if err := googleapi.CheckResponse(res); err != nil {
151757		return nil, err
151758	}
151759	ret := &TargetInstance{
151760		ServerResponse: googleapi.ServerResponse{
151761			Header:         res.Header,
151762			HTTPStatusCode: res.StatusCode,
151763		},
151764	}
151765	target := &ret
151766	if err := gensupport.DecodeResponse(target, res); err != nil {
151767		return nil, err
151768	}
151769	return ret, nil
151770	// {
151771	//   "description": "Returns the specified TargetInstance resource. Gets a list of available target instances by making a list() request.",
151772	//   "httpMethod": "GET",
151773	//   "id": "compute.targetInstances.get",
151774	//   "parameterOrder": [
151775	//     "project",
151776	//     "zone",
151777	//     "targetInstance"
151778	//   ],
151779	//   "parameters": {
151780	//     "project": {
151781	//       "description": "Project ID for this request.",
151782	//       "location": "path",
151783	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151784	//       "required": true,
151785	//       "type": "string"
151786	//     },
151787	//     "targetInstance": {
151788	//       "description": "Name of the TargetInstance resource to return.",
151789	//       "location": "path",
151790	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
151791	//       "required": true,
151792	//       "type": "string"
151793	//     },
151794	//     "zone": {
151795	//       "description": "Name of the zone scoping this request.",
151796	//       "location": "path",
151797	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
151798	//       "required": true,
151799	//       "type": "string"
151800	//     }
151801	//   },
151802	//   "path": "projects/{project}/zones/{zone}/targetInstances/{targetInstance}",
151803	//   "response": {
151804	//     "$ref": "TargetInstance"
151805	//   },
151806	//   "scopes": [
151807	//     "https://www.googleapis.com/auth/cloud-platform",
151808	//     "https://www.googleapis.com/auth/compute",
151809	//     "https://www.googleapis.com/auth/compute.readonly"
151810	//   ]
151811	// }
151812
151813}
151814
151815// method id "compute.targetInstances.insert":
151816
151817type TargetInstancesInsertCall struct {
151818	s              *Service
151819	project        string
151820	zone           string
151821	targetinstance *TargetInstance
151822	urlParams_     gensupport.URLParams
151823	ctx_           context.Context
151824	header_        http.Header
151825}
151826
151827// Insert: Creates a TargetInstance resource in the specified project
151828// and zone using the data included in the request.
151829//
151830// - project: Project ID for this request.
151831// - zone: Name of the zone scoping this request.
151832// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/insert
151833func (r *TargetInstancesService) Insert(project string, zone string, targetinstance *TargetInstance) *TargetInstancesInsertCall {
151834	c := &TargetInstancesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151835	c.project = project
151836	c.zone = zone
151837	c.targetinstance = targetinstance
151838	return c
151839}
151840
151841// RequestId sets the optional parameter "requestId": An optional
151842// request ID to identify requests. Specify a unique request ID so that
151843// if you must retry your request, the server will know to ignore the
151844// request if it has already been completed.
151845//
151846// For example, consider a situation where you make an initial request
151847// and the request times out. If you make the request again with the
151848// same request ID, the server can check if original operation with the
151849// same request ID was received, and if so, will ignore the second
151850// request. This prevents clients from accidentally creating duplicate
151851// commitments.
151852//
151853// The request ID must be a valid UUID with the exception that zero UUID
151854// is not supported (00000000-0000-0000-0000-000000000000).
151855func (c *TargetInstancesInsertCall) RequestId(requestId string) *TargetInstancesInsertCall {
151856	c.urlParams_.Set("requestId", requestId)
151857	return c
151858}
151859
151860// Fields allows partial responses to be retrieved. See
151861// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151862// for more information.
151863func (c *TargetInstancesInsertCall) Fields(s ...googleapi.Field) *TargetInstancesInsertCall {
151864	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151865	return c
151866}
151867
151868// Context sets the context to be used in this call's Do method. Any
151869// pending HTTP request will be aborted if the provided context is
151870// canceled.
151871func (c *TargetInstancesInsertCall) Context(ctx context.Context) *TargetInstancesInsertCall {
151872	c.ctx_ = ctx
151873	return c
151874}
151875
151876// Header returns an http.Header that can be modified by the caller to
151877// add HTTP headers to the request.
151878func (c *TargetInstancesInsertCall) Header() http.Header {
151879	if c.header_ == nil {
151880		c.header_ = make(http.Header)
151881	}
151882	return c.header_
151883}
151884
151885func (c *TargetInstancesInsertCall) doRequest(alt string) (*http.Response, error) {
151886	reqHeaders := make(http.Header)
151887	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
151888	for k, v := range c.header_ {
151889		reqHeaders[k] = v
151890	}
151891	reqHeaders.Set("User-Agent", c.s.userAgent())
151892	var body io.Reader = nil
151893	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetinstance)
151894	if err != nil {
151895		return nil, err
151896	}
151897	reqHeaders.Set("Content-Type", "application/json")
151898	c.urlParams_.Set("alt", alt)
151899	c.urlParams_.Set("prettyPrint", "false")
151900	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/targetInstances")
151901	urls += "?" + c.urlParams_.Encode()
151902	req, err := http.NewRequest("POST", urls, body)
151903	if err != nil {
151904		return nil, err
151905	}
151906	req.Header = reqHeaders
151907	googleapi.Expand(req.URL, map[string]string{
151908		"project": c.project,
151909		"zone":    c.zone,
151910	})
151911	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151912}
151913
151914// Do executes the "compute.targetInstances.insert" call.
151915// Exactly one of *Operation or error will be non-nil. Any non-2xx
151916// status code is an error. Response headers are in either
151917// *Operation.ServerResponse.Header or (if a response was returned at
151918// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
151919// to check whether the returned error was because
151920// http.StatusNotModified was returned.
151921func (c *TargetInstancesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
151922	gensupport.SetOptions(c.urlParams_, opts...)
151923	res, err := c.doRequest("json")
151924	if res != nil && res.StatusCode == http.StatusNotModified {
151925		if res.Body != nil {
151926			res.Body.Close()
151927		}
151928		return nil, &googleapi.Error{
151929			Code:   res.StatusCode,
151930			Header: res.Header,
151931		}
151932	}
151933	if err != nil {
151934		return nil, err
151935	}
151936	defer googleapi.CloseBody(res)
151937	if err := googleapi.CheckResponse(res); err != nil {
151938		return nil, err
151939	}
151940	ret := &Operation{
151941		ServerResponse: googleapi.ServerResponse{
151942			Header:         res.Header,
151943			HTTPStatusCode: res.StatusCode,
151944		},
151945	}
151946	target := &ret
151947	if err := gensupport.DecodeResponse(target, res); err != nil {
151948		return nil, err
151949	}
151950	return ret, nil
151951	// {
151952	//   "description": "Creates a TargetInstance resource in the specified project and zone using the data included in the request.",
151953	//   "httpMethod": "POST",
151954	//   "id": "compute.targetInstances.insert",
151955	//   "parameterOrder": [
151956	//     "project",
151957	//     "zone"
151958	//   ],
151959	//   "parameters": {
151960	//     "project": {
151961	//       "description": "Project ID for this request.",
151962	//       "location": "path",
151963	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151964	//       "required": true,
151965	//       "type": "string"
151966	//     },
151967	//     "requestId": {
151968	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
151969	//       "location": "query",
151970	//       "type": "string"
151971	//     },
151972	//     "zone": {
151973	//       "description": "Name of the zone scoping this request.",
151974	//       "location": "path",
151975	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
151976	//       "required": true,
151977	//       "type": "string"
151978	//     }
151979	//   },
151980	//   "path": "projects/{project}/zones/{zone}/targetInstances",
151981	//   "request": {
151982	//     "$ref": "TargetInstance"
151983	//   },
151984	//   "response": {
151985	//     "$ref": "Operation"
151986	//   },
151987	//   "scopes": [
151988	//     "https://www.googleapis.com/auth/cloud-platform",
151989	//     "https://www.googleapis.com/auth/compute"
151990	//   ]
151991	// }
151992
151993}
151994
151995// method id "compute.targetInstances.list":
151996
151997type TargetInstancesListCall struct {
151998	s            *Service
151999	project      string
152000	zone         string
152001	urlParams_   gensupport.URLParams
152002	ifNoneMatch_ string
152003	ctx_         context.Context
152004	header_      http.Header
152005}
152006
152007// List: Retrieves a list of TargetInstance resources available to the
152008// specified project and zone.
152009//
152010// - project: Project ID for this request.
152011// - zone: Name of the zone scoping this request.
152012// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/list
152013func (r *TargetInstancesService) List(project string, zone string) *TargetInstancesListCall {
152014	c := &TargetInstancesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152015	c.project = project
152016	c.zone = zone
152017	return c
152018}
152019
152020// Filter sets the optional parameter "filter": A filter expression that
152021// filters resources listed in the response. The expression must specify
152022// the field name, a comparison operator, and the value that you want to
152023// use for filtering. The value must be a string, a number, or a
152024// boolean. The comparison operator must be either `=`, `!=`, `>`, or
152025// `<`.
152026//
152027// For example, if you are filtering Compute Engine instances, you can
152028// exclude instances named `example-instance` by specifying `name !=
152029// example-instance`.
152030//
152031// You can also filter nested fields. For example, you could specify
152032// `scheduling.automaticRestart = false` to include instances only if
152033// they are not scheduled for automatic restarts. You can use filtering
152034// on nested fields to filter based on resource labels.
152035//
152036// To filter on multiple expressions, provide each separate expression
152037// within parentheses. For example: ``` (scheduling.automaticRestart =
152038// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
152039// is an `AND` expression. However, you can include `AND` and `OR`
152040// expressions explicitly. For example: ``` (cpuPlatform = "Intel
152041// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
152042// (scheduling.automaticRestart = true) ```
152043func (c *TargetInstancesListCall) Filter(filter string) *TargetInstancesListCall {
152044	c.urlParams_.Set("filter", filter)
152045	return c
152046}
152047
152048// MaxResults sets the optional parameter "maxResults": The maximum
152049// number of results per page that should be returned. If the number of
152050// available results is larger than `maxResults`, Compute Engine returns
152051// a `nextPageToken` that can be used to get the next page of results in
152052// subsequent list requests. Acceptable values are `0` to `500`,
152053// inclusive. (Default: `500`)
152054func (c *TargetInstancesListCall) MaxResults(maxResults int64) *TargetInstancesListCall {
152055	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
152056	return c
152057}
152058
152059// OrderBy sets the optional parameter "orderBy": Sorts list results by
152060// a certain order. By default, results are returned in alphanumerical
152061// order based on the resource name.
152062//
152063// You can also sort results in descending order based on the creation
152064// timestamp using `orderBy="creationTimestamp desc". This sorts
152065// results based on the `creationTimestamp` field in reverse
152066// chronological order (newest result first). Use this to sort resources
152067// like operations so that the newest operation is returned
152068// first.
152069//
152070// Currently, only sorting by `name` or `creationTimestamp desc` is
152071// supported.
152072func (c *TargetInstancesListCall) OrderBy(orderBy string) *TargetInstancesListCall {
152073	c.urlParams_.Set("orderBy", orderBy)
152074	return c
152075}
152076
152077// PageToken sets the optional parameter "pageToken": Specifies a page
152078// token to use. Set `pageToken` to the `nextPageToken` returned by a
152079// previous list request to get the next page of results.
152080func (c *TargetInstancesListCall) PageToken(pageToken string) *TargetInstancesListCall {
152081	c.urlParams_.Set("pageToken", pageToken)
152082	return c
152083}
152084
152085// ReturnPartialSuccess sets the optional parameter
152086// "returnPartialSuccess": Opt-in for partial success behavior which
152087// provides partial results in case of failure. The default value is
152088// false.
152089func (c *TargetInstancesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetInstancesListCall {
152090	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
152091	return c
152092}
152093
152094// Fields allows partial responses to be retrieved. See
152095// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152096// for more information.
152097func (c *TargetInstancesListCall) Fields(s ...googleapi.Field) *TargetInstancesListCall {
152098	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152099	return c
152100}
152101
152102// IfNoneMatch sets the optional parameter which makes the operation
152103// fail if the object's ETag matches the given value. This is useful for
152104// getting updates only after the object has changed since the last
152105// request. Use googleapi.IsNotModified to check whether the response
152106// error from Do is the result of In-None-Match.
152107func (c *TargetInstancesListCall) IfNoneMatch(entityTag string) *TargetInstancesListCall {
152108	c.ifNoneMatch_ = entityTag
152109	return c
152110}
152111
152112// Context sets the context to be used in this call's Do method. Any
152113// pending HTTP request will be aborted if the provided context is
152114// canceled.
152115func (c *TargetInstancesListCall) Context(ctx context.Context) *TargetInstancesListCall {
152116	c.ctx_ = ctx
152117	return c
152118}
152119
152120// Header returns an http.Header that can be modified by the caller to
152121// add HTTP headers to the request.
152122func (c *TargetInstancesListCall) Header() http.Header {
152123	if c.header_ == nil {
152124		c.header_ = make(http.Header)
152125	}
152126	return c.header_
152127}
152128
152129func (c *TargetInstancesListCall) doRequest(alt string) (*http.Response, error) {
152130	reqHeaders := make(http.Header)
152131	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
152132	for k, v := range c.header_ {
152133		reqHeaders[k] = v
152134	}
152135	reqHeaders.Set("User-Agent", c.s.userAgent())
152136	if c.ifNoneMatch_ != "" {
152137		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
152138	}
152139	var body io.Reader = nil
152140	c.urlParams_.Set("alt", alt)
152141	c.urlParams_.Set("prettyPrint", "false")
152142	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/targetInstances")
152143	urls += "?" + c.urlParams_.Encode()
152144	req, err := http.NewRequest("GET", urls, body)
152145	if err != nil {
152146		return nil, err
152147	}
152148	req.Header = reqHeaders
152149	googleapi.Expand(req.URL, map[string]string{
152150		"project": c.project,
152151		"zone":    c.zone,
152152	})
152153	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152154}
152155
152156// Do executes the "compute.targetInstances.list" call.
152157// Exactly one of *TargetInstanceList or error will be non-nil. Any
152158// non-2xx status code is an error. Response headers are in either
152159// *TargetInstanceList.ServerResponse.Header or (if a response was
152160// returned at all) in error.(*googleapi.Error).Header. Use
152161// googleapi.IsNotModified to check whether the returned error was
152162// because http.StatusNotModified was returned.
152163func (c *TargetInstancesListCall) Do(opts ...googleapi.CallOption) (*TargetInstanceList, error) {
152164	gensupport.SetOptions(c.urlParams_, opts...)
152165	res, err := c.doRequest("json")
152166	if res != nil && res.StatusCode == http.StatusNotModified {
152167		if res.Body != nil {
152168			res.Body.Close()
152169		}
152170		return nil, &googleapi.Error{
152171			Code:   res.StatusCode,
152172			Header: res.Header,
152173		}
152174	}
152175	if err != nil {
152176		return nil, err
152177	}
152178	defer googleapi.CloseBody(res)
152179	if err := googleapi.CheckResponse(res); err != nil {
152180		return nil, err
152181	}
152182	ret := &TargetInstanceList{
152183		ServerResponse: googleapi.ServerResponse{
152184			Header:         res.Header,
152185			HTTPStatusCode: res.StatusCode,
152186		},
152187	}
152188	target := &ret
152189	if err := gensupport.DecodeResponse(target, res); err != nil {
152190		return nil, err
152191	}
152192	return ret, nil
152193	// {
152194	//   "description": "Retrieves a list of TargetInstance resources available to the specified project and zone.",
152195	//   "httpMethod": "GET",
152196	//   "id": "compute.targetInstances.list",
152197	//   "parameterOrder": [
152198	//     "project",
152199	//     "zone"
152200	//   ],
152201	//   "parameters": {
152202	//     "filter": {
152203	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
152204	//       "location": "query",
152205	//       "type": "string"
152206	//     },
152207	//     "maxResults": {
152208	//       "default": "500",
152209	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
152210	//       "format": "uint32",
152211	//       "location": "query",
152212	//       "minimum": "0",
152213	//       "type": "integer"
152214	//     },
152215	//     "orderBy": {
152216	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
152217	//       "location": "query",
152218	//       "type": "string"
152219	//     },
152220	//     "pageToken": {
152221	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
152222	//       "location": "query",
152223	//       "type": "string"
152224	//     },
152225	//     "project": {
152226	//       "description": "Project ID for this request.",
152227	//       "location": "path",
152228	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152229	//       "required": true,
152230	//       "type": "string"
152231	//     },
152232	//     "returnPartialSuccess": {
152233	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
152234	//       "location": "query",
152235	//       "type": "boolean"
152236	//     },
152237	//     "zone": {
152238	//       "description": "Name of the zone scoping this request.",
152239	//       "location": "path",
152240	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
152241	//       "required": true,
152242	//       "type": "string"
152243	//     }
152244	//   },
152245	//   "path": "projects/{project}/zones/{zone}/targetInstances",
152246	//   "response": {
152247	//     "$ref": "TargetInstanceList"
152248	//   },
152249	//   "scopes": [
152250	//     "https://www.googleapis.com/auth/cloud-platform",
152251	//     "https://www.googleapis.com/auth/compute",
152252	//     "https://www.googleapis.com/auth/compute.readonly"
152253	//   ]
152254	// }
152255
152256}
152257
152258// Pages invokes f for each page of results.
152259// A non-nil error returned from f will halt the iteration.
152260// The provided context supersedes any context provided to the Context method.
152261func (c *TargetInstancesListCall) Pages(ctx context.Context, f func(*TargetInstanceList) error) error {
152262	c.ctx_ = ctx
152263	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
152264	for {
152265		x, err := c.Do()
152266		if err != nil {
152267			return err
152268		}
152269		if err := f(x); err != nil {
152270			return err
152271		}
152272		if x.NextPageToken == "" {
152273			return nil
152274		}
152275		c.PageToken(x.NextPageToken)
152276	}
152277}
152278
152279// method id "compute.targetPools.addHealthCheck":
152280
152281type TargetPoolsAddHealthCheckCall struct {
152282	s                                *Service
152283	project                          string
152284	region                           string
152285	targetPool                       string
152286	targetpoolsaddhealthcheckrequest *TargetPoolsAddHealthCheckRequest
152287	urlParams_                       gensupport.URLParams
152288	ctx_                             context.Context
152289	header_                          http.Header
152290}
152291
152292// AddHealthCheck: Adds health check URLs to a target pool.
152293//
152294// - project: Project ID for this request.
152295// - region: Name of the region scoping this request.
152296// - targetPool: Name of the target pool to add a health check to.
152297// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/addHealthCheck
152298func (r *TargetPoolsService) AddHealthCheck(project string, region string, targetPool string, targetpoolsaddhealthcheckrequest *TargetPoolsAddHealthCheckRequest) *TargetPoolsAddHealthCheckCall {
152299	c := &TargetPoolsAddHealthCheckCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152300	c.project = project
152301	c.region = region
152302	c.targetPool = targetPool
152303	c.targetpoolsaddhealthcheckrequest = targetpoolsaddhealthcheckrequest
152304	return c
152305}
152306
152307// RequestId sets the optional parameter "requestId": An optional
152308// request ID to identify requests. Specify a unique request ID so that
152309// if you must retry your request, the server will know to ignore the
152310// request if it has already been completed.
152311//
152312// For example, consider a situation where you make an initial request
152313// and the request times out. If you make the request again with the
152314// same request ID, the server can check if original operation with the
152315// same request ID was received, and if so, will ignore the second
152316// request. This prevents clients from accidentally creating duplicate
152317// commitments.
152318//
152319// The request ID must be a valid UUID with the exception that zero UUID
152320// is not supported (00000000-0000-0000-0000-000000000000).
152321func (c *TargetPoolsAddHealthCheckCall) RequestId(requestId string) *TargetPoolsAddHealthCheckCall {
152322	c.urlParams_.Set("requestId", requestId)
152323	return c
152324}
152325
152326// Fields allows partial responses to be retrieved. See
152327// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152328// for more information.
152329func (c *TargetPoolsAddHealthCheckCall) Fields(s ...googleapi.Field) *TargetPoolsAddHealthCheckCall {
152330	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152331	return c
152332}
152333
152334// Context sets the context to be used in this call's Do method. Any
152335// pending HTTP request will be aborted if the provided context is
152336// canceled.
152337func (c *TargetPoolsAddHealthCheckCall) Context(ctx context.Context) *TargetPoolsAddHealthCheckCall {
152338	c.ctx_ = ctx
152339	return c
152340}
152341
152342// Header returns an http.Header that can be modified by the caller to
152343// add HTTP headers to the request.
152344func (c *TargetPoolsAddHealthCheckCall) Header() http.Header {
152345	if c.header_ == nil {
152346		c.header_ = make(http.Header)
152347	}
152348	return c.header_
152349}
152350
152351func (c *TargetPoolsAddHealthCheckCall) doRequest(alt string) (*http.Response, error) {
152352	reqHeaders := make(http.Header)
152353	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
152354	for k, v := range c.header_ {
152355		reqHeaders[k] = v
152356	}
152357	reqHeaders.Set("User-Agent", c.s.userAgent())
152358	var body io.Reader = nil
152359	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsaddhealthcheckrequest)
152360	if err != nil {
152361		return nil, err
152362	}
152363	reqHeaders.Set("Content-Type", "application/json")
152364	c.urlParams_.Set("alt", alt)
152365	c.urlParams_.Set("prettyPrint", "false")
152366	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck")
152367	urls += "?" + c.urlParams_.Encode()
152368	req, err := http.NewRequest("POST", urls, body)
152369	if err != nil {
152370		return nil, err
152371	}
152372	req.Header = reqHeaders
152373	googleapi.Expand(req.URL, map[string]string{
152374		"project":    c.project,
152375		"region":     c.region,
152376		"targetPool": c.targetPool,
152377	})
152378	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152379}
152380
152381// Do executes the "compute.targetPools.addHealthCheck" call.
152382// Exactly one of *Operation or error will be non-nil. Any non-2xx
152383// status code is an error. Response headers are in either
152384// *Operation.ServerResponse.Header or (if a response was returned at
152385// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
152386// to check whether the returned error was because
152387// http.StatusNotModified was returned.
152388func (c *TargetPoolsAddHealthCheckCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
152389	gensupport.SetOptions(c.urlParams_, opts...)
152390	res, err := c.doRequest("json")
152391	if res != nil && res.StatusCode == http.StatusNotModified {
152392		if res.Body != nil {
152393			res.Body.Close()
152394		}
152395		return nil, &googleapi.Error{
152396			Code:   res.StatusCode,
152397			Header: res.Header,
152398		}
152399	}
152400	if err != nil {
152401		return nil, err
152402	}
152403	defer googleapi.CloseBody(res)
152404	if err := googleapi.CheckResponse(res); err != nil {
152405		return nil, err
152406	}
152407	ret := &Operation{
152408		ServerResponse: googleapi.ServerResponse{
152409			Header:         res.Header,
152410			HTTPStatusCode: res.StatusCode,
152411		},
152412	}
152413	target := &ret
152414	if err := gensupport.DecodeResponse(target, res); err != nil {
152415		return nil, err
152416	}
152417	return ret, nil
152418	// {
152419	//   "description": "Adds health check URLs to a target pool.",
152420	//   "httpMethod": "POST",
152421	//   "id": "compute.targetPools.addHealthCheck",
152422	//   "parameterOrder": [
152423	//     "project",
152424	//     "region",
152425	//     "targetPool"
152426	//   ],
152427	//   "parameters": {
152428	//     "project": {
152429	//       "description": "Project ID for this request.",
152430	//       "location": "path",
152431	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152432	//       "required": true,
152433	//       "type": "string"
152434	//     },
152435	//     "region": {
152436	//       "description": "Name of the region scoping this request.",
152437	//       "location": "path",
152438	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
152439	//       "required": true,
152440	//       "type": "string"
152441	//     },
152442	//     "requestId": {
152443	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
152444	//       "location": "query",
152445	//       "type": "string"
152446	//     },
152447	//     "targetPool": {
152448	//       "description": "Name of the target pool to add a health check to.",
152449	//       "location": "path",
152450	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
152451	//       "required": true,
152452	//       "type": "string"
152453	//     }
152454	//   },
152455	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck",
152456	//   "request": {
152457	//     "$ref": "TargetPoolsAddHealthCheckRequest"
152458	//   },
152459	//   "response": {
152460	//     "$ref": "Operation"
152461	//   },
152462	//   "scopes": [
152463	//     "https://www.googleapis.com/auth/cloud-platform",
152464	//     "https://www.googleapis.com/auth/compute"
152465	//   ]
152466	// }
152467
152468}
152469
152470// method id "compute.targetPools.addInstance":
152471
152472type TargetPoolsAddInstanceCall struct {
152473	s                             *Service
152474	project                       string
152475	region                        string
152476	targetPool                    string
152477	targetpoolsaddinstancerequest *TargetPoolsAddInstanceRequest
152478	urlParams_                    gensupport.URLParams
152479	ctx_                          context.Context
152480	header_                       http.Header
152481}
152482
152483// AddInstance: Adds an instance to a target pool.
152484//
152485// - project: Project ID for this request.
152486// - region: Name of the region scoping this request.
152487// - targetPool: Name of the TargetPool resource to add instances to.
152488// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/addInstance
152489func (r *TargetPoolsService) AddInstance(project string, region string, targetPool string, targetpoolsaddinstancerequest *TargetPoolsAddInstanceRequest) *TargetPoolsAddInstanceCall {
152490	c := &TargetPoolsAddInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152491	c.project = project
152492	c.region = region
152493	c.targetPool = targetPool
152494	c.targetpoolsaddinstancerequest = targetpoolsaddinstancerequest
152495	return c
152496}
152497
152498// RequestId sets the optional parameter "requestId": An optional
152499// request ID to identify requests. Specify a unique request ID so that
152500// if you must retry your request, the server will know to ignore the
152501// request if it has already been completed.
152502//
152503// For example, consider a situation where you make an initial request
152504// and the request times out. If you make the request again with the
152505// same request ID, the server can check if original operation with the
152506// same request ID was received, and if so, will ignore the second
152507// request. This prevents clients from accidentally creating duplicate
152508// commitments.
152509//
152510// The request ID must be a valid UUID with the exception that zero UUID
152511// is not supported (00000000-0000-0000-0000-000000000000).
152512func (c *TargetPoolsAddInstanceCall) RequestId(requestId string) *TargetPoolsAddInstanceCall {
152513	c.urlParams_.Set("requestId", requestId)
152514	return c
152515}
152516
152517// Fields allows partial responses to be retrieved. See
152518// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152519// for more information.
152520func (c *TargetPoolsAddInstanceCall) Fields(s ...googleapi.Field) *TargetPoolsAddInstanceCall {
152521	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152522	return c
152523}
152524
152525// Context sets the context to be used in this call's Do method. Any
152526// pending HTTP request will be aborted if the provided context is
152527// canceled.
152528func (c *TargetPoolsAddInstanceCall) Context(ctx context.Context) *TargetPoolsAddInstanceCall {
152529	c.ctx_ = ctx
152530	return c
152531}
152532
152533// Header returns an http.Header that can be modified by the caller to
152534// add HTTP headers to the request.
152535func (c *TargetPoolsAddInstanceCall) Header() http.Header {
152536	if c.header_ == nil {
152537		c.header_ = make(http.Header)
152538	}
152539	return c.header_
152540}
152541
152542func (c *TargetPoolsAddInstanceCall) doRequest(alt string) (*http.Response, error) {
152543	reqHeaders := make(http.Header)
152544	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
152545	for k, v := range c.header_ {
152546		reqHeaders[k] = v
152547	}
152548	reqHeaders.Set("User-Agent", c.s.userAgent())
152549	var body io.Reader = nil
152550	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsaddinstancerequest)
152551	if err != nil {
152552		return nil, err
152553	}
152554	reqHeaders.Set("Content-Type", "application/json")
152555	c.urlParams_.Set("alt", alt)
152556	c.urlParams_.Set("prettyPrint", "false")
152557	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/addInstance")
152558	urls += "?" + c.urlParams_.Encode()
152559	req, err := http.NewRequest("POST", urls, body)
152560	if err != nil {
152561		return nil, err
152562	}
152563	req.Header = reqHeaders
152564	googleapi.Expand(req.URL, map[string]string{
152565		"project":    c.project,
152566		"region":     c.region,
152567		"targetPool": c.targetPool,
152568	})
152569	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152570}
152571
152572// Do executes the "compute.targetPools.addInstance" call.
152573// Exactly one of *Operation or error will be non-nil. Any non-2xx
152574// status code is an error. Response headers are in either
152575// *Operation.ServerResponse.Header or (if a response was returned at
152576// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
152577// to check whether the returned error was because
152578// http.StatusNotModified was returned.
152579func (c *TargetPoolsAddInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
152580	gensupport.SetOptions(c.urlParams_, opts...)
152581	res, err := c.doRequest("json")
152582	if res != nil && res.StatusCode == http.StatusNotModified {
152583		if res.Body != nil {
152584			res.Body.Close()
152585		}
152586		return nil, &googleapi.Error{
152587			Code:   res.StatusCode,
152588			Header: res.Header,
152589		}
152590	}
152591	if err != nil {
152592		return nil, err
152593	}
152594	defer googleapi.CloseBody(res)
152595	if err := googleapi.CheckResponse(res); err != nil {
152596		return nil, err
152597	}
152598	ret := &Operation{
152599		ServerResponse: googleapi.ServerResponse{
152600			Header:         res.Header,
152601			HTTPStatusCode: res.StatusCode,
152602		},
152603	}
152604	target := &ret
152605	if err := gensupport.DecodeResponse(target, res); err != nil {
152606		return nil, err
152607	}
152608	return ret, nil
152609	// {
152610	//   "description": "Adds an instance to a target pool.",
152611	//   "httpMethod": "POST",
152612	//   "id": "compute.targetPools.addInstance",
152613	//   "parameterOrder": [
152614	//     "project",
152615	//     "region",
152616	//     "targetPool"
152617	//   ],
152618	//   "parameters": {
152619	//     "project": {
152620	//       "description": "Project ID for this request.",
152621	//       "location": "path",
152622	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152623	//       "required": true,
152624	//       "type": "string"
152625	//     },
152626	//     "region": {
152627	//       "description": "Name of the region scoping this request.",
152628	//       "location": "path",
152629	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
152630	//       "required": true,
152631	//       "type": "string"
152632	//     },
152633	//     "requestId": {
152634	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
152635	//       "location": "query",
152636	//       "type": "string"
152637	//     },
152638	//     "targetPool": {
152639	//       "description": "Name of the TargetPool resource to add instances to.",
152640	//       "location": "path",
152641	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
152642	//       "required": true,
152643	//       "type": "string"
152644	//     }
152645	//   },
152646	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/addInstance",
152647	//   "request": {
152648	//     "$ref": "TargetPoolsAddInstanceRequest"
152649	//   },
152650	//   "response": {
152651	//     "$ref": "Operation"
152652	//   },
152653	//   "scopes": [
152654	//     "https://www.googleapis.com/auth/cloud-platform",
152655	//     "https://www.googleapis.com/auth/compute"
152656	//   ]
152657	// }
152658
152659}
152660
152661// method id "compute.targetPools.aggregatedList":
152662
152663type TargetPoolsAggregatedListCall struct {
152664	s            *Service
152665	project      string
152666	urlParams_   gensupport.URLParams
152667	ifNoneMatch_ string
152668	ctx_         context.Context
152669	header_      http.Header
152670}
152671
152672// AggregatedList: Retrieves an aggregated list of target pools.
152673//
152674// - project: Project ID for this request.
152675// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/aggregatedList
152676func (r *TargetPoolsService) AggregatedList(project string) *TargetPoolsAggregatedListCall {
152677	c := &TargetPoolsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152678	c.project = project
152679	return c
152680}
152681
152682// Filter sets the optional parameter "filter": A filter expression that
152683// filters resources listed in the response. The expression must specify
152684// the field name, a comparison operator, and the value that you want to
152685// use for filtering. The value must be a string, a number, or a
152686// boolean. The comparison operator must be either `=`, `!=`, `>`, or
152687// `<`.
152688//
152689// For example, if you are filtering Compute Engine instances, you can
152690// exclude instances named `example-instance` by specifying `name !=
152691// example-instance`.
152692//
152693// You can also filter nested fields. For example, you could specify
152694// `scheduling.automaticRestart = false` to include instances only if
152695// they are not scheduled for automatic restarts. You can use filtering
152696// on nested fields to filter based on resource labels.
152697//
152698// To filter on multiple expressions, provide each separate expression
152699// within parentheses. For example: ``` (scheduling.automaticRestart =
152700// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
152701// is an `AND` expression. However, you can include `AND` and `OR`
152702// expressions explicitly. For example: ``` (cpuPlatform = "Intel
152703// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
152704// (scheduling.automaticRestart = true) ```
152705func (c *TargetPoolsAggregatedListCall) Filter(filter string) *TargetPoolsAggregatedListCall {
152706	c.urlParams_.Set("filter", filter)
152707	return c
152708}
152709
152710// IncludeAllScopes sets the optional parameter "includeAllScopes":
152711// Indicates whether every visible scope for each scope type (zone,
152712// region, global) should be included in the response. For new resource
152713// types added after this field, the flag has no effect as new resource
152714// types will always include every visible scope for each scope type in
152715// response. For resource types which predate this field, if this flag
152716// is omitted or false, only scopes of the scope types where the
152717// resource type is expected to be found will be included.
152718func (c *TargetPoolsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetPoolsAggregatedListCall {
152719	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
152720	return c
152721}
152722
152723// MaxResults sets the optional parameter "maxResults": The maximum
152724// number of results per page that should be returned. If the number of
152725// available results is larger than `maxResults`, Compute Engine returns
152726// a `nextPageToken` that can be used to get the next page of results in
152727// subsequent list requests. Acceptable values are `0` to `500`,
152728// inclusive. (Default: `500`)
152729func (c *TargetPoolsAggregatedListCall) MaxResults(maxResults int64) *TargetPoolsAggregatedListCall {
152730	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
152731	return c
152732}
152733
152734// OrderBy sets the optional parameter "orderBy": Sorts list results by
152735// a certain order. By default, results are returned in alphanumerical
152736// order based on the resource name.
152737//
152738// You can also sort results in descending order based on the creation
152739// timestamp using `orderBy="creationTimestamp desc". This sorts
152740// results based on the `creationTimestamp` field in reverse
152741// chronological order (newest result first). Use this to sort resources
152742// like operations so that the newest operation is returned
152743// first.
152744//
152745// Currently, only sorting by `name` or `creationTimestamp desc` is
152746// supported.
152747func (c *TargetPoolsAggregatedListCall) OrderBy(orderBy string) *TargetPoolsAggregatedListCall {
152748	c.urlParams_.Set("orderBy", orderBy)
152749	return c
152750}
152751
152752// PageToken sets the optional parameter "pageToken": Specifies a page
152753// token to use. Set `pageToken` to the `nextPageToken` returned by a
152754// previous list request to get the next page of results.
152755func (c *TargetPoolsAggregatedListCall) PageToken(pageToken string) *TargetPoolsAggregatedListCall {
152756	c.urlParams_.Set("pageToken", pageToken)
152757	return c
152758}
152759
152760// ReturnPartialSuccess sets the optional parameter
152761// "returnPartialSuccess": Opt-in for partial success behavior which
152762// provides partial results in case of failure. The default value is
152763// false.
152764func (c *TargetPoolsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetPoolsAggregatedListCall {
152765	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
152766	return c
152767}
152768
152769// Fields allows partial responses to be retrieved. See
152770// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152771// for more information.
152772func (c *TargetPoolsAggregatedListCall) Fields(s ...googleapi.Field) *TargetPoolsAggregatedListCall {
152773	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152774	return c
152775}
152776
152777// IfNoneMatch sets the optional parameter which makes the operation
152778// fail if the object's ETag matches the given value. This is useful for
152779// getting updates only after the object has changed since the last
152780// request. Use googleapi.IsNotModified to check whether the response
152781// error from Do is the result of In-None-Match.
152782func (c *TargetPoolsAggregatedListCall) IfNoneMatch(entityTag string) *TargetPoolsAggregatedListCall {
152783	c.ifNoneMatch_ = entityTag
152784	return c
152785}
152786
152787// Context sets the context to be used in this call's Do method. Any
152788// pending HTTP request will be aborted if the provided context is
152789// canceled.
152790func (c *TargetPoolsAggregatedListCall) Context(ctx context.Context) *TargetPoolsAggregatedListCall {
152791	c.ctx_ = ctx
152792	return c
152793}
152794
152795// Header returns an http.Header that can be modified by the caller to
152796// add HTTP headers to the request.
152797func (c *TargetPoolsAggregatedListCall) Header() http.Header {
152798	if c.header_ == nil {
152799		c.header_ = make(http.Header)
152800	}
152801	return c.header_
152802}
152803
152804func (c *TargetPoolsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
152805	reqHeaders := make(http.Header)
152806	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
152807	for k, v := range c.header_ {
152808		reqHeaders[k] = v
152809	}
152810	reqHeaders.Set("User-Agent", c.s.userAgent())
152811	if c.ifNoneMatch_ != "" {
152812		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
152813	}
152814	var body io.Reader = nil
152815	c.urlParams_.Set("alt", alt)
152816	c.urlParams_.Set("prettyPrint", "false")
152817	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/targetPools")
152818	urls += "?" + c.urlParams_.Encode()
152819	req, err := http.NewRequest("GET", urls, body)
152820	if err != nil {
152821		return nil, err
152822	}
152823	req.Header = reqHeaders
152824	googleapi.Expand(req.URL, map[string]string{
152825		"project": c.project,
152826	})
152827	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152828}
152829
152830// Do executes the "compute.targetPools.aggregatedList" call.
152831// Exactly one of *TargetPoolAggregatedList or error will be non-nil.
152832// Any non-2xx status code is an error. Response headers are in either
152833// *TargetPoolAggregatedList.ServerResponse.Header or (if a response was
152834// returned at all) in error.(*googleapi.Error).Header. Use
152835// googleapi.IsNotModified to check whether the returned error was
152836// because http.StatusNotModified was returned.
152837func (c *TargetPoolsAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetPoolAggregatedList, error) {
152838	gensupport.SetOptions(c.urlParams_, opts...)
152839	res, err := c.doRequest("json")
152840	if res != nil && res.StatusCode == http.StatusNotModified {
152841		if res.Body != nil {
152842			res.Body.Close()
152843		}
152844		return nil, &googleapi.Error{
152845			Code:   res.StatusCode,
152846			Header: res.Header,
152847		}
152848	}
152849	if err != nil {
152850		return nil, err
152851	}
152852	defer googleapi.CloseBody(res)
152853	if err := googleapi.CheckResponse(res); err != nil {
152854		return nil, err
152855	}
152856	ret := &TargetPoolAggregatedList{
152857		ServerResponse: googleapi.ServerResponse{
152858			Header:         res.Header,
152859			HTTPStatusCode: res.StatusCode,
152860		},
152861	}
152862	target := &ret
152863	if err := gensupport.DecodeResponse(target, res); err != nil {
152864		return nil, err
152865	}
152866	return ret, nil
152867	// {
152868	//   "description": "Retrieves an aggregated list of target pools.",
152869	//   "httpMethod": "GET",
152870	//   "id": "compute.targetPools.aggregatedList",
152871	//   "parameterOrder": [
152872	//     "project"
152873	//   ],
152874	//   "parameters": {
152875	//     "filter": {
152876	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
152877	//       "location": "query",
152878	//       "type": "string"
152879	//     },
152880	//     "includeAllScopes": {
152881	//       "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.",
152882	//       "location": "query",
152883	//       "type": "boolean"
152884	//     },
152885	//     "maxResults": {
152886	//       "default": "500",
152887	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
152888	//       "format": "uint32",
152889	//       "location": "query",
152890	//       "minimum": "0",
152891	//       "type": "integer"
152892	//     },
152893	//     "orderBy": {
152894	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
152895	//       "location": "query",
152896	//       "type": "string"
152897	//     },
152898	//     "pageToken": {
152899	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
152900	//       "location": "query",
152901	//       "type": "string"
152902	//     },
152903	//     "project": {
152904	//       "description": "Project ID for this request.",
152905	//       "location": "path",
152906	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152907	//       "required": true,
152908	//       "type": "string"
152909	//     },
152910	//     "returnPartialSuccess": {
152911	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
152912	//       "location": "query",
152913	//       "type": "boolean"
152914	//     }
152915	//   },
152916	//   "path": "projects/{project}/aggregated/targetPools",
152917	//   "response": {
152918	//     "$ref": "TargetPoolAggregatedList"
152919	//   },
152920	//   "scopes": [
152921	//     "https://www.googleapis.com/auth/cloud-platform",
152922	//     "https://www.googleapis.com/auth/compute",
152923	//     "https://www.googleapis.com/auth/compute.readonly"
152924	//   ]
152925	// }
152926
152927}
152928
152929// Pages invokes f for each page of results.
152930// A non-nil error returned from f will halt the iteration.
152931// The provided context supersedes any context provided to the Context method.
152932func (c *TargetPoolsAggregatedListCall) Pages(ctx context.Context, f func(*TargetPoolAggregatedList) error) error {
152933	c.ctx_ = ctx
152934	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
152935	for {
152936		x, err := c.Do()
152937		if err != nil {
152938			return err
152939		}
152940		if err := f(x); err != nil {
152941			return err
152942		}
152943		if x.NextPageToken == "" {
152944			return nil
152945		}
152946		c.PageToken(x.NextPageToken)
152947	}
152948}
152949
152950// method id "compute.targetPools.delete":
152951
152952type TargetPoolsDeleteCall struct {
152953	s          *Service
152954	project    string
152955	region     string
152956	targetPool string
152957	urlParams_ gensupport.URLParams
152958	ctx_       context.Context
152959	header_    http.Header
152960}
152961
152962// Delete: Deletes the specified target pool.
152963//
152964// - project: Project ID for this request.
152965// - region: Name of the region scoping this request.
152966// - targetPool: Name of the TargetPool resource to delete.
152967// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/delete
152968func (r *TargetPoolsService) Delete(project string, region string, targetPool string) *TargetPoolsDeleteCall {
152969	c := &TargetPoolsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152970	c.project = project
152971	c.region = region
152972	c.targetPool = targetPool
152973	return c
152974}
152975
152976// RequestId sets the optional parameter "requestId": An optional
152977// request ID to identify requests. Specify a unique request ID so that
152978// if you must retry your request, the server will know to ignore the
152979// request if it has already been completed.
152980//
152981// For example, consider a situation where you make an initial request
152982// and the request times out. If you make the request again with the
152983// same request ID, the server can check if original operation with the
152984// same request ID was received, and if so, will ignore the second
152985// request. This prevents clients from accidentally creating duplicate
152986// commitments.
152987//
152988// The request ID must be a valid UUID with the exception that zero UUID
152989// is not supported (00000000-0000-0000-0000-000000000000).
152990func (c *TargetPoolsDeleteCall) RequestId(requestId string) *TargetPoolsDeleteCall {
152991	c.urlParams_.Set("requestId", requestId)
152992	return c
152993}
152994
152995// Fields allows partial responses to be retrieved. See
152996// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152997// for more information.
152998func (c *TargetPoolsDeleteCall) Fields(s ...googleapi.Field) *TargetPoolsDeleteCall {
152999	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153000	return c
153001}
153002
153003// Context sets the context to be used in this call's Do method. Any
153004// pending HTTP request will be aborted if the provided context is
153005// canceled.
153006func (c *TargetPoolsDeleteCall) Context(ctx context.Context) *TargetPoolsDeleteCall {
153007	c.ctx_ = ctx
153008	return c
153009}
153010
153011// Header returns an http.Header that can be modified by the caller to
153012// add HTTP headers to the request.
153013func (c *TargetPoolsDeleteCall) Header() http.Header {
153014	if c.header_ == nil {
153015		c.header_ = make(http.Header)
153016	}
153017	return c.header_
153018}
153019
153020func (c *TargetPoolsDeleteCall) doRequest(alt string) (*http.Response, error) {
153021	reqHeaders := make(http.Header)
153022	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
153023	for k, v := range c.header_ {
153024		reqHeaders[k] = v
153025	}
153026	reqHeaders.Set("User-Agent", c.s.userAgent())
153027	var body io.Reader = nil
153028	c.urlParams_.Set("alt", alt)
153029	c.urlParams_.Set("prettyPrint", "false")
153030	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}")
153031	urls += "?" + c.urlParams_.Encode()
153032	req, err := http.NewRequest("DELETE", urls, body)
153033	if err != nil {
153034		return nil, err
153035	}
153036	req.Header = reqHeaders
153037	googleapi.Expand(req.URL, map[string]string{
153038		"project":    c.project,
153039		"region":     c.region,
153040		"targetPool": c.targetPool,
153041	})
153042	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153043}
153044
153045// Do executes the "compute.targetPools.delete" call.
153046// Exactly one of *Operation or error will be non-nil. Any non-2xx
153047// status code is an error. Response headers are in either
153048// *Operation.ServerResponse.Header or (if a response was returned at
153049// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
153050// to check whether the returned error was because
153051// http.StatusNotModified was returned.
153052func (c *TargetPoolsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
153053	gensupport.SetOptions(c.urlParams_, opts...)
153054	res, err := c.doRequest("json")
153055	if res != nil && res.StatusCode == http.StatusNotModified {
153056		if res.Body != nil {
153057			res.Body.Close()
153058		}
153059		return nil, &googleapi.Error{
153060			Code:   res.StatusCode,
153061			Header: res.Header,
153062		}
153063	}
153064	if err != nil {
153065		return nil, err
153066	}
153067	defer googleapi.CloseBody(res)
153068	if err := googleapi.CheckResponse(res); err != nil {
153069		return nil, err
153070	}
153071	ret := &Operation{
153072		ServerResponse: googleapi.ServerResponse{
153073			Header:         res.Header,
153074			HTTPStatusCode: res.StatusCode,
153075		},
153076	}
153077	target := &ret
153078	if err := gensupport.DecodeResponse(target, res); err != nil {
153079		return nil, err
153080	}
153081	return ret, nil
153082	// {
153083	//   "description": "Deletes the specified target pool.",
153084	//   "httpMethod": "DELETE",
153085	//   "id": "compute.targetPools.delete",
153086	//   "parameterOrder": [
153087	//     "project",
153088	//     "region",
153089	//     "targetPool"
153090	//   ],
153091	//   "parameters": {
153092	//     "project": {
153093	//       "description": "Project ID for this request.",
153094	//       "location": "path",
153095	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153096	//       "required": true,
153097	//       "type": "string"
153098	//     },
153099	//     "region": {
153100	//       "description": "Name of the region scoping this request.",
153101	//       "location": "path",
153102	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
153103	//       "required": true,
153104	//       "type": "string"
153105	//     },
153106	//     "requestId": {
153107	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
153108	//       "location": "query",
153109	//       "type": "string"
153110	//     },
153111	//     "targetPool": {
153112	//       "description": "Name of the TargetPool resource to delete.",
153113	//       "location": "path",
153114	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
153115	//       "required": true,
153116	//       "type": "string"
153117	//     }
153118	//   },
153119	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}",
153120	//   "response": {
153121	//     "$ref": "Operation"
153122	//   },
153123	//   "scopes": [
153124	//     "https://www.googleapis.com/auth/cloud-platform",
153125	//     "https://www.googleapis.com/auth/compute"
153126	//   ]
153127	// }
153128
153129}
153130
153131// method id "compute.targetPools.get":
153132
153133type TargetPoolsGetCall struct {
153134	s            *Service
153135	project      string
153136	region       string
153137	targetPool   string
153138	urlParams_   gensupport.URLParams
153139	ifNoneMatch_ string
153140	ctx_         context.Context
153141	header_      http.Header
153142}
153143
153144// Get: Returns the specified target pool. Gets a list of available
153145// target pools by making a list() request.
153146//
153147// - project: Project ID for this request.
153148// - region: Name of the region scoping this request.
153149// - targetPool: Name of the TargetPool resource to return.
153150// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/get
153151func (r *TargetPoolsService) Get(project string, region string, targetPool string) *TargetPoolsGetCall {
153152	c := &TargetPoolsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153153	c.project = project
153154	c.region = region
153155	c.targetPool = targetPool
153156	return c
153157}
153158
153159// Fields allows partial responses to be retrieved. See
153160// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153161// for more information.
153162func (c *TargetPoolsGetCall) Fields(s ...googleapi.Field) *TargetPoolsGetCall {
153163	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153164	return c
153165}
153166
153167// IfNoneMatch sets the optional parameter which makes the operation
153168// fail if the object's ETag matches the given value. This is useful for
153169// getting updates only after the object has changed since the last
153170// request. Use googleapi.IsNotModified to check whether the response
153171// error from Do is the result of In-None-Match.
153172func (c *TargetPoolsGetCall) IfNoneMatch(entityTag string) *TargetPoolsGetCall {
153173	c.ifNoneMatch_ = entityTag
153174	return c
153175}
153176
153177// Context sets the context to be used in this call's Do method. Any
153178// pending HTTP request will be aborted if the provided context is
153179// canceled.
153180func (c *TargetPoolsGetCall) Context(ctx context.Context) *TargetPoolsGetCall {
153181	c.ctx_ = ctx
153182	return c
153183}
153184
153185// Header returns an http.Header that can be modified by the caller to
153186// add HTTP headers to the request.
153187func (c *TargetPoolsGetCall) Header() http.Header {
153188	if c.header_ == nil {
153189		c.header_ = make(http.Header)
153190	}
153191	return c.header_
153192}
153193
153194func (c *TargetPoolsGetCall) doRequest(alt string) (*http.Response, error) {
153195	reqHeaders := make(http.Header)
153196	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
153197	for k, v := range c.header_ {
153198		reqHeaders[k] = v
153199	}
153200	reqHeaders.Set("User-Agent", c.s.userAgent())
153201	if c.ifNoneMatch_ != "" {
153202		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
153203	}
153204	var body io.Reader = nil
153205	c.urlParams_.Set("alt", alt)
153206	c.urlParams_.Set("prettyPrint", "false")
153207	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}")
153208	urls += "?" + c.urlParams_.Encode()
153209	req, err := http.NewRequest("GET", urls, body)
153210	if err != nil {
153211		return nil, err
153212	}
153213	req.Header = reqHeaders
153214	googleapi.Expand(req.URL, map[string]string{
153215		"project":    c.project,
153216		"region":     c.region,
153217		"targetPool": c.targetPool,
153218	})
153219	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153220}
153221
153222// Do executes the "compute.targetPools.get" call.
153223// Exactly one of *TargetPool or error will be non-nil. Any non-2xx
153224// status code is an error. Response headers are in either
153225// *TargetPool.ServerResponse.Header or (if a response was returned at
153226// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
153227// to check whether the returned error was because
153228// http.StatusNotModified was returned.
153229func (c *TargetPoolsGetCall) Do(opts ...googleapi.CallOption) (*TargetPool, error) {
153230	gensupport.SetOptions(c.urlParams_, opts...)
153231	res, err := c.doRequest("json")
153232	if res != nil && res.StatusCode == http.StatusNotModified {
153233		if res.Body != nil {
153234			res.Body.Close()
153235		}
153236		return nil, &googleapi.Error{
153237			Code:   res.StatusCode,
153238			Header: res.Header,
153239		}
153240	}
153241	if err != nil {
153242		return nil, err
153243	}
153244	defer googleapi.CloseBody(res)
153245	if err := googleapi.CheckResponse(res); err != nil {
153246		return nil, err
153247	}
153248	ret := &TargetPool{
153249		ServerResponse: googleapi.ServerResponse{
153250			Header:         res.Header,
153251			HTTPStatusCode: res.StatusCode,
153252		},
153253	}
153254	target := &ret
153255	if err := gensupport.DecodeResponse(target, res); err != nil {
153256		return nil, err
153257	}
153258	return ret, nil
153259	// {
153260	//   "description": "Returns the specified target pool. Gets a list of available target pools by making a list() request.",
153261	//   "httpMethod": "GET",
153262	//   "id": "compute.targetPools.get",
153263	//   "parameterOrder": [
153264	//     "project",
153265	//     "region",
153266	//     "targetPool"
153267	//   ],
153268	//   "parameters": {
153269	//     "project": {
153270	//       "description": "Project ID for this request.",
153271	//       "location": "path",
153272	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153273	//       "required": true,
153274	//       "type": "string"
153275	//     },
153276	//     "region": {
153277	//       "description": "Name of the region scoping this request.",
153278	//       "location": "path",
153279	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
153280	//       "required": true,
153281	//       "type": "string"
153282	//     },
153283	//     "targetPool": {
153284	//       "description": "Name of the TargetPool resource to return.",
153285	//       "location": "path",
153286	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
153287	//       "required": true,
153288	//       "type": "string"
153289	//     }
153290	//   },
153291	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}",
153292	//   "response": {
153293	//     "$ref": "TargetPool"
153294	//   },
153295	//   "scopes": [
153296	//     "https://www.googleapis.com/auth/cloud-platform",
153297	//     "https://www.googleapis.com/auth/compute",
153298	//     "https://www.googleapis.com/auth/compute.readonly"
153299	//   ]
153300	// }
153301
153302}
153303
153304// method id "compute.targetPools.getHealth":
153305
153306type TargetPoolsGetHealthCall struct {
153307	s                 *Service
153308	project           string
153309	region            string
153310	targetPool        string
153311	instancereference *InstanceReference
153312	urlParams_        gensupport.URLParams
153313	ctx_              context.Context
153314	header_           http.Header
153315}
153316
153317// GetHealth: Gets the most recent health check results for each IP for
153318// the instance that is referenced by the given target pool.
153319//
153320// - project: Project ID for this request.
153321// - region: Name of the region scoping this request.
153322// - targetPool: Name of the TargetPool resource to which the queried
153323//   instance belongs.
153324// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/getHealth
153325func (r *TargetPoolsService) GetHealth(project string, region string, targetPool string, instancereference *InstanceReference) *TargetPoolsGetHealthCall {
153326	c := &TargetPoolsGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153327	c.project = project
153328	c.region = region
153329	c.targetPool = targetPool
153330	c.instancereference = instancereference
153331	return c
153332}
153333
153334// Fields allows partial responses to be retrieved. See
153335// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153336// for more information.
153337func (c *TargetPoolsGetHealthCall) Fields(s ...googleapi.Field) *TargetPoolsGetHealthCall {
153338	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153339	return c
153340}
153341
153342// Context sets the context to be used in this call's Do method. Any
153343// pending HTTP request will be aborted if the provided context is
153344// canceled.
153345func (c *TargetPoolsGetHealthCall) Context(ctx context.Context) *TargetPoolsGetHealthCall {
153346	c.ctx_ = ctx
153347	return c
153348}
153349
153350// Header returns an http.Header that can be modified by the caller to
153351// add HTTP headers to the request.
153352func (c *TargetPoolsGetHealthCall) Header() http.Header {
153353	if c.header_ == nil {
153354		c.header_ = make(http.Header)
153355	}
153356	return c.header_
153357}
153358
153359func (c *TargetPoolsGetHealthCall) doRequest(alt string) (*http.Response, error) {
153360	reqHeaders := make(http.Header)
153361	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
153362	for k, v := range c.header_ {
153363		reqHeaders[k] = v
153364	}
153365	reqHeaders.Set("User-Agent", c.s.userAgent())
153366	var body io.Reader = nil
153367	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancereference)
153368	if err != nil {
153369		return nil, err
153370	}
153371	reqHeaders.Set("Content-Type", "application/json")
153372	c.urlParams_.Set("alt", alt)
153373	c.urlParams_.Set("prettyPrint", "false")
153374	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/getHealth")
153375	urls += "?" + c.urlParams_.Encode()
153376	req, err := http.NewRequest("POST", urls, body)
153377	if err != nil {
153378		return nil, err
153379	}
153380	req.Header = reqHeaders
153381	googleapi.Expand(req.URL, map[string]string{
153382		"project":    c.project,
153383		"region":     c.region,
153384		"targetPool": c.targetPool,
153385	})
153386	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153387}
153388
153389// Do executes the "compute.targetPools.getHealth" call.
153390// Exactly one of *TargetPoolInstanceHealth or error will be non-nil.
153391// Any non-2xx status code is an error. Response headers are in either
153392// *TargetPoolInstanceHealth.ServerResponse.Header or (if a response was
153393// returned at all) in error.(*googleapi.Error).Header. Use
153394// googleapi.IsNotModified to check whether the returned error was
153395// because http.StatusNotModified was returned.
153396func (c *TargetPoolsGetHealthCall) Do(opts ...googleapi.CallOption) (*TargetPoolInstanceHealth, error) {
153397	gensupport.SetOptions(c.urlParams_, opts...)
153398	res, err := c.doRequest("json")
153399	if res != nil && res.StatusCode == http.StatusNotModified {
153400		if res.Body != nil {
153401			res.Body.Close()
153402		}
153403		return nil, &googleapi.Error{
153404			Code:   res.StatusCode,
153405			Header: res.Header,
153406		}
153407	}
153408	if err != nil {
153409		return nil, err
153410	}
153411	defer googleapi.CloseBody(res)
153412	if err := googleapi.CheckResponse(res); err != nil {
153413		return nil, err
153414	}
153415	ret := &TargetPoolInstanceHealth{
153416		ServerResponse: googleapi.ServerResponse{
153417			Header:         res.Header,
153418			HTTPStatusCode: res.StatusCode,
153419		},
153420	}
153421	target := &ret
153422	if err := gensupport.DecodeResponse(target, res); err != nil {
153423		return nil, err
153424	}
153425	return ret, nil
153426	// {
153427	//   "description": "Gets the most recent health check results for each IP for the instance that is referenced by the given target pool.",
153428	//   "httpMethod": "POST",
153429	//   "id": "compute.targetPools.getHealth",
153430	//   "parameterOrder": [
153431	//     "project",
153432	//     "region",
153433	//     "targetPool"
153434	//   ],
153435	//   "parameters": {
153436	//     "project": {
153437	//       "description": "Project ID for this request.",
153438	//       "location": "path",
153439	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153440	//       "required": true,
153441	//       "type": "string"
153442	//     },
153443	//     "region": {
153444	//       "description": "Name of the region scoping this request.",
153445	//       "location": "path",
153446	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
153447	//       "required": true,
153448	//       "type": "string"
153449	//     },
153450	//     "targetPool": {
153451	//       "description": "Name of the TargetPool resource to which the queried instance belongs.",
153452	//       "location": "path",
153453	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
153454	//       "required": true,
153455	//       "type": "string"
153456	//     }
153457	//   },
153458	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/getHealth",
153459	//   "request": {
153460	//     "$ref": "InstanceReference"
153461	//   },
153462	//   "response": {
153463	//     "$ref": "TargetPoolInstanceHealth"
153464	//   },
153465	//   "scopes": [
153466	//     "https://www.googleapis.com/auth/cloud-platform",
153467	//     "https://www.googleapis.com/auth/compute",
153468	//     "https://www.googleapis.com/auth/compute.readonly"
153469	//   ]
153470	// }
153471
153472}
153473
153474// method id "compute.targetPools.insert":
153475
153476type TargetPoolsInsertCall struct {
153477	s          *Service
153478	project    string
153479	region     string
153480	targetpool *TargetPool
153481	urlParams_ gensupport.URLParams
153482	ctx_       context.Context
153483	header_    http.Header
153484}
153485
153486// Insert: Creates a target pool in the specified project and region
153487// using the data included in the request.
153488//
153489// - project: Project ID for this request.
153490// - region: Name of the region scoping this request.
153491// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/insert
153492func (r *TargetPoolsService) Insert(project string, region string, targetpool *TargetPool) *TargetPoolsInsertCall {
153493	c := &TargetPoolsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153494	c.project = project
153495	c.region = region
153496	c.targetpool = targetpool
153497	return c
153498}
153499
153500// RequestId sets the optional parameter "requestId": An optional
153501// request ID to identify requests. Specify a unique request ID so that
153502// if you must retry your request, the server will know to ignore the
153503// request if it has already been completed.
153504//
153505// For example, consider a situation where you make an initial request
153506// and the request times out. If you make the request again with the
153507// same request ID, the server can check if original operation with the
153508// same request ID was received, and if so, will ignore the second
153509// request. This prevents clients from accidentally creating duplicate
153510// commitments.
153511//
153512// The request ID must be a valid UUID with the exception that zero UUID
153513// is not supported (00000000-0000-0000-0000-000000000000).
153514func (c *TargetPoolsInsertCall) RequestId(requestId string) *TargetPoolsInsertCall {
153515	c.urlParams_.Set("requestId", requestId)
153516	return c
153517}
153518
153519// Fields allows partial responses to be retrieved. See
153520// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153521// for more information.
153522func (c *TargetPoolsInsertCall) Fields(s ...googleapi.Field) *TargetPoolsInsertCall {
153523	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153524	return c
153525}
153526
153527// Context sets the context to be used in this call's Do method. Any
153528// pending HTTP request will be aborted if the provided context is
153529// canceled.
153530func (c *TargetPoolsInsertCall) Context(ctx context.Context) *TargetPoolsInsertCall {
153531	c.ctx_ = ctx
153532	return c
153533}
153534
153535// Header returns an http.Header that can be modified by the caller to
153536// add HTTP headers to the request.
153537func (c *TargetPoolsInsertCall) Header() http.Header {
153538	if c.header_ == nil {
153539		c.header_ = make(http.Header)
153540	}
153541	return c.header_
153542}
153543
153544func (c *TargetPoolsInsertCall) doRequest(alt string) (*http.Response, error) {
153545	reqHeaders := make(http.Header)
153546	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
153547	for k, v := range c.header_ {
153548		reqHeaders[k] = v
153549	}
153550	reqHeaders.Set("User-Agent", c.s.userAgent())
153551	var body io.Reader = nil
153552	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpool)
153553	if err != nil {
153554		return nil, err
153555	}
153556	reqHeaders.Set("Content-Type", "application/json")
153557	c.urlParams_.Set("alt", alt)
153558	c.urlParams_.Set("prettyPrint", "false")
153559	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools")
153560	urls += "?" + c.urlParams_.Encode()
153561	req, err := http.NewRequest("POST", urls, body)
153562	if err != nil {
153563		return nil, err
153564	}
153565	req.Header = reqHeaders
153566	googleapi.Expand(req.URL, map[string]string{
153567		"project": c.project,
153568		"region":  c.region,
153569	})
153570	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153571}
153572
153573// Do executes the "compute.targetPools.insert" call.
153574// Exactly one of *Operation or error will be non-nil. Any non-2xx
153575// status code is an error. Response headers are in either
153576// *Operation.ServerResponse.Header or (if a response was returned at
153577// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
153578// to check whether the returned error was because
153579// http.StatusNotModified was returned.
153580func (c *TargetPoolsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
153581	gensupport.SetOptions(c.urlParams_, opts...)
153582	res, err := c.doRequest("json")
153583	if res != nil && res.StatusCode == http.StatusNotModified {
153584		if res.Body != nil {
153585			res.Body.Close()
153586		}
153587		return nil, &googleapi.Error{
153588			Code:   res.StatusCode,
153589			Header: res.Header,
153590		}
153591	}
153592	if err != nil {
153593		return nil, err
153594	}
153595	defer googleapi.CloseBody(res)
153596	if err := googleapi.CheckResponse(res); err != nil {
153597		return nil, err
153598	}
153599	ret := &Operation{
153600		ServerResponse: googleapi.ServerResponse{
153601			Header:         res.Header,
153602			HTTPStatusCode: res.StatusCode,
153603		},
153604	}
153605	target := &ret
153606	if err := gensupport.DecodeResponse(target, res); err != nil {
153607		return nil, err
153608	}
153609	return ret, nil
153610	// {
153611	//   "description": "Creates a target pool in the specified project and region using the data included in the request.",
153612	//   "httpMethod": "POST",
153613	//   "id": "compute.targetPools.insert",
153614	//   "parameterOrder": [
153615	//     "project",
153616	//     "region"
153617	//   ],
153618	//   "parameters": {
153619	//     "project": {
153620	//       "description": "Project ID for this request.",
153621	//       "location": "path",
153622	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153623	//       "required": true,
153624	//       "type": "string"
153625	//     },
153626	//     "region": {
153627	//       "description": "Name of the region scoping this request.",
153628	//       "location": "path",
153629	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
153630	//       "required": true,
153631	//       "type": "string"
153632	//     },
153633	//     "requestId": {
153634	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
153635	//       "location": "query",
153636	//       "type": "string"
153637	//     }
153638	//   },
153639	//   "path": "projects/{project}/regions/{region}/targetPools",
153640	//   "request": {
153641	//     "$ref": "TargetPool"
153642	//   },
153643	//   "response": {
153644	//     "$ref": "Operation"
153645	//   },
153646	//   "scopes": [
153647	//     "https://www.googleapis.com/auth/cloud-platform",
153648	//     "https://www.googleapis.com/auth/compute"
153649	//   ]
153650	// }
153651
153652}
153653
153654// method id "compute.targetPools.list":
153655
153656type TargetPoolsListCall struct {
153657	s            *Service
153658	project      string
153659	region       string
153660	urlParams_   gensupport.URLParams
153661	ifNoneMatch_ string
153662	ctx_         context.Context
153663	header_      http.Header
153664}
153665
153666// List: Retrieves a list of target pools available to the specified
153667// project and region.
153668//
153669// - project: Project ID for this request.
153670// - region: Name of the region scoping this request.
153671// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/list
153672func (r *TargetPoolsService) List(project string, region string) *TargetPoolsListCall {
153673	c := &TargetPoolsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153674	c.project = project
153675	c.region = region
153676	return c
153677}
153678
153679// Filter sets the optional parameter "filter": A filter expression that
153680// filters resources listed in the response. The expression must specify
153681// the field name, a comparison operator, and the value that you want to
153682// use for filtering. The value must be a string, a number, or a
153683// boolean. The comparison operator must be either `=`, `!=`, `>`, or
153684// `<`.
153685//
153686// For example, if you are filtering Compute Engine instances, you can
153687// exclude instances named `example-instance` by specifying `name !=
153688// example-instance`.
153689//
153690// You can also filter nested fields. For example, you could specify
153691// `scheduling.automaticRestart = false` to include instances only if
153692// they are not scheduled for automatic restarts. You can use filtering
153693// on nested fields to filter based on resource labels.
153694//
153695// To filter on multiple expressions, provide each separate expression
153696// within parentheses. For example: ``` (scheduling.automaticRestart =
153697// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
153698// is an `AND` expression. However, you can include `AND` and `OR`
153699// expressions explicitly. For example: ``` (cpuPlatform = "Intel
153700// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
153701// (scheduling.automaticRestart = true) ```
153702func (c *TargetPoolsListCall) Filter(filter string) *TargetPoolsListCall {
153703	c.urlParams_.Set("filter", filter)
153704	return c
153705}
153706
153707// MaxResults sets the optional parameter "maxResults": The maximum
153708// number of results per page that should be returned. If the number of
153709// available results is larger than `maxResults`, Compute Engine returns
153710// a `nextPageToken` that can be used to get the next page of results in
153711// subsequent list requests. Acceptable values are `0` to `500`,
153712// inclusive. (Default: `500`)
153713func (c *TargetPoolsListCall) MaxResults(maxResults int64) *TargetPoolsListCall {
153714	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
153715	return c
153716}
153717
153718// OrderBy sets the optional parameter "orderBy": Sorts list results by
153719// a certain order. By default, results are returned in alphanumerical
153720// order based on the resource name.
153721//
153722// You can also sort results in descending order based on the creation
153723// timestamp using `orderBy="creationTimestamp desc". This sorts
153724// results based on the `creationTimestamp` field in reverse
153725// chronological order (newest result first). Use this to sort resources
153726// like operations so that the newest operation is returned
153727// first.
153728//
153729// Currently, only sorting by `name` or `creationTimestamp desc` is
153730// supported.
153731func (c *TargetPoolsListCall) OrderBy(orderBy string) *TargetPoolsListCall {
153732	c.urlParams_.Set("orderBy", orderBy)
153733	return c
153734}
153735
153736// PageToken sets the optional parameter "pageToken": Specifies a page
153737// token to use. Set `pageToken` to the `nextPageToken` returned by a
153738// previous list request to get the next page of results.
153739func (c *TargetPoolsListCall) PageToken(pageToken string) *TargetPoolsListCall {
153740	c.urlParams_.Set("pageToken", pageToken)
153741	return c
153742}
153743
153744// ReturnPartialSuccess sets the optional parameter
153745// "returnPartialSuccess": Opt-in for partial success behavior which
153746// provides partial results in case of failure. The default value is
153747// false.
153748func (c *TargetPoolsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetPoolsListCall {
153749	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
153750	return c
153751}
153752
153753// Fields allows partial responses to be retrieved. See
153754// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153755// for more information.
153756func (c *TargetPoolsListCall) Fields(s ...googleapi.Field) *TargetPoolsListCall {
153757	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153758	return c
153759}
153760
153761// IfNoneMatch sets the optional parameter which makes the operation
153762// fail if the object's ETag matches the given value. This is useful for
153763// getting updates only after the object has changed since the last
153764// request. Use googleapi.IsNotModified to check whether the response
153765// error from Do is the result of In-None-Match.
153766func (c *TargetPoolsListCall) IfNoneMatch(entityTag string) *TargetPoolsListCall {
153767	c.ifNoneMatch_ = entityTag
153768	return c
153769}
153770
153771// Context sets the context to be used in this call's Do method. Any
153772// pending HTTP request will be aborted if the provided context is
153773// canceled.
153774func (c *TargetPoolsListCall) Context(ctx context.Context) *TargetPoolsListCall {
153775	c.ctx_ = ctx
153776	return c
153777}
153778
153779// Header returns an http.Header that can be modified by the caller to
153780// add HTTP headers to the request.
153781func (c *TargetPoolsListCall) Header() http.Header {
153782	if c.header_ == nil {
153783		c.header_ = make(http.Header)
153784	}
153785	return c.header_
153786}
153787
153788func (c *TargetPoolsListCall) doRequest(alt string) (*http.Response, error) {
153789	reqHeaders := make(http.Header)
153790	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
153791	for k, v := range c.header_ {
153792		reqHeaders[k] = v
153793	}
153794	reqHeaders.Set("User-Agent", c.s.userAgent())
153795	if c.ifNoneMatch_ != "" {
153796		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
153797	}
153798	var body io.Reader = nil
153799	c.urlParams_.Set("alt", alt)
153800	c.urlParams_.Set("prettyPrint", "false")
153801	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools")
153802	urls += "?" + c.urlParams_.Encode()
153803	req, err := http.NewRequest("GET", urls, body)
153804	if err != nil {
153805		return nil, err
153806	}
153807	req.Header = reqHeaders
153808	googleapi.Expand(req.URL, map[string]string{
153809		"project": c.project,
153810		"region":  c.region,
153811	})
153812	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153813}
153814
153815// Do executes the "compute.targetPools.list" call.
153816// Exactly one of *TargetPoolList or error will be non-nil. Any non-2xx
153817// status code is an error. Response headers are in either
153818// *TargetPoolList.ServerResponse.Header or (if a response was returned
153819// at all) in error.(*googleapi.Error).Header. Use
153820// googleapi.IsNotModified to check whether the returned error was
153821// because http.StatusNotModified was returned.
153822func (c *TargetPoolsListCall) Do(opts ...googleapi.CallOption) (*TargetPoolList, error) {
153823	gensupport.SetOptions(c.urlParams_, opts...)
153824	res, err := c.doRequest("json")
153825	if res != nil && res.StatusCode == http.StatusNotModified {
153826		if res.Body != nil {
153827			res.Body.Close()
153828		}
153829		return nil, &googleapi.Error{
153830			Code:   res.StatusCode,
153831			Header: res.Header,
153832		}
153833	}
153834	if err != nil {
153835		return nil, err
153836	}
153837	defer googleapi.CloseBody(res)
153838	if err := googleapi.CheckResponse(res); err != nil {
153839		return nil, err
153840	}
153841	ret := &TargetPoolList{
153842		ServerResponse: googleapi.ServerResponse{
153843			Header:         res.Header,
153844			HTTPStatusCode: res.StatusCode,
153845		},
153846	}
153847	target := &ret
153848	if err := gensupport.DecodeResponse(target, res); err != nil {
153849		return nil, err
153850	}
153851	return ret, nil
153852	// {
153853	//   "description": "Retrieves a list of target pools available to the specified project and region.",
153854	//   "httpMethod": "GET",
153855	//   "id": "compute.targetPools.list",
153856	//   "parameterOrder": [
153857	//     "project",
153858	//     "region"
153859	//   ],
153860	//   "parameters": {
153861	//     "filter": {
153862	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
153863	//       "location": "query",
153864	//       "type": "string"
153865	//     },
153866	//     "maxResults": {
153867	//       "default": "500",
153868	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
153869	//       "format": "uint32",
153870	//       "location": "query",
153871	//       "minimum": "0",
153872	//       "type": "integer"
153873	//     },
153874	//     "orderBy": {
153875	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
153876	//       "location": "query",
153877	//       "type": "string"
153878	//     },
153879	//     "pageToken": {
153880	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
153881	//       "location": "query",
153882	//       "type": "string"
153883	//     },
153884	//     "project": {
153885	//       "description": "Project ID for this request.",
153886	//       "location": "path",
153887	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153888	//       "required": true,
153889	//       "type": "string"
153890	//     },
153891	//     "region": {
153892	//       "description": "Name of the region scoping this request.",
153893	//       "location": "path",
153894	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
153895	//       "required": true,
153896	//       "type": "string"
153897	//     },
153898	//     "returnPartialSuccess": {
153899	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
153900	//       "location": "query",
153901	//       "type": "boolean"
153902	//     }
153903	//   },
153904	//   "path": "projects/{project}/regions/{region}/targetPools",
153905	//   "response": {
153906	//     "$ref": "TargetPoolList"
153907	//   },
153908	//   "scopes": [
153909	//     "https://www.googleapis.com/auth/cloud-platform",
153910	//     "https://www.googleapis.com/auth/compute",
153911	//     "https://www.googleapis.com/auth/compute.readonly"
153912	//   ]
153913	// }
153914
153915}
153916
153917// Pages invokes f for each page of results.
153918// A non-nil error returned from f will halt the iteration.
153919// The provided context supersedes any context provided to the Context method.
153920func (c *TargetPoolsListCall) Pages(ctx context.Context, f func(*TargetPoolList) error) error {
153921	c.ctx_ = ctx
153922	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
153923	for {
153924		x, err := c.Do()
153925		if err != nil {
153926			return err
153927		}
153928		if err := f(x); err != nil {
153929			return err
153930		}
153931		if x.NextPageToken == "" {
153932			return nil
153933		}
153934		c.PageToken(x.NextPageToken)
153935	}
153936}
153937
153938// method id "compute.targetPools.removeHealthCheck":
153939
153940type TargetPoolsRemoveHealthCheckCall struct {
153941	s                                   *Service
153942	project                             string
153943	region                              string
153944	targetPool                          string
153945	targetpoolsremovehealthcheckrequest *TargetPoolsRemoveHealthCheckRequest
153946	urlParams_                          gensupport.URLParams
153947	ctx_                                context.Context
153948	header_                             http.Header
153949}
153950
153951// RemoveHealthCheck: Removes health check URL from a target pool.
153952//
153953// - project: Project ID for this request.
153954// - region: Name of the region for this request.
153955// - targetPool: Name of the target pool to remove health checks from.
153956// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/removeHealthCheck
153957func (r *TargetPoolsService) RemoveHealthCheck(project string, region string, targetPool string, targetpoolsremovehealthcheckrequest *TargetPoolsRemoveHealthCheckRequest) *TargetPoolsRemoveHealthCheckCall {
153958	c := &TargetPoolsRemoveHealthCheckCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153959	c.project = project
153960	c.region = region
153961	c.targetPool = targetPool
153962	c.targetpoolsremovehealthcheckrequest = targetpoolsremovehealthcheckrequest
153963	return c
153964}
153965
153966// RequestId sets the optional parameter "requestId": An optional
153967// request ID to identify requests. Specify a unique request ID so that
153968// if you must retry your request, the server will know to ignore the
153969// request if it has already been completed.
153970//
153971// For example, consider a situation where you make an initial request
153972// and the request times out. If you make the request again with the
153973// same request ID, the server can check if original operation with the
153974// same request ID was received, and if so, will ignore the second
153975// request. This prevents clients from accidentally creating duplicate
153976// commitments.
153977//
153978// The request ID must be a valid UUID with the exception that zero UUID
153979// is not supported (00000000-0000-0000-0000-000000000000).
153980func (c *TargetPoolsRemoveHealthCheckCall) RequestId(requestId string) *TargetPoolsRemoveHealthCheckCall {
153981	c.urlParams_.Set("requestId", requestId)
153982	return c
153983}
153984
153985// Fields allows partial responses to be retrieved. See
153986// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153987// for more information.
153988func (c *TargetPoolsRemoveHealthCheckCall) Fields(s ...googleapi.Field) *TargetPoolsRemoveHealthCheckCall {
153989	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153990	return c
153991}
153992
153993// Context sets the context to be used in this call's Do method. Any
153994// pending HTTP request will be aborted if the provided context is
153995// canceled.
153996func (c *TargetPoolsRemoveHealthCheckCall) Context(ctx context.Context) *TargetPoolsRemoveHealthCheckCall {
153997	c.ctx_ = ctx
153998	return c
153999}
154000
154001// Header returns an http.Header that can be modified by the caller to
154002// add HTTP headers to the request.
154003func (c *TargetPoolsRemoveHealthCheckCall) Header() http.Header {
154004	if c.header_ == nil {
154005		c.header_ = make(http.Header)
154006	}
154007	return c.header_
154008}
154009
154010func (c *TargetPoolsRemoveHealthCheckCall) doRequest(alt string) (*http.Response, error) {
154011	reqHeaders := make(http.Header)
154012	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
154013	for k, v := range c.header_ {
154014		reqHeaders[k] = v
154015	}
154016	reqHeaders.Set("User-Agent", c.s.userAgent())
154017	var body io.Reader = nil
154018	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsremovehealthcheckrequest)
154019	if err != nil {
154020		return nil, err
154021	}
154022	reqHeaders.Set("Content-Type", "application/json")
154023	c.urlParams_.Set("alt", alt)
154024	c.urlParams_.Set("prettyPrint", "false")
154025	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck")
154026	urls += "?" + c.urlParams_.Encode()
154027	req, err := http.NewRequest("POST", urls, body)
154028	if err != nil {
154029		return nil, err
154030	}
154031	req.Header = reqHeaders
154032	googleapi.Expand(req.URL, map[string]string{
154033		"project":    c.project,
154034		"region":     c.region,
154035		"targetPool": c.targetPool,
154036	})
154037	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154038}
154039
154040// Do executes the "compute.targetPools.removeHealthCheck" call.
154041// Exactly one of *Operation or error will be non-nil. Any non-2xx
154042// status code is an error. Response headers are in either
154043// *Operation.ServerResponse.Header or (if a response was returned at
154044// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
154045// to check whether the returned error was because
154046// http.StatusNotModified was returned.
154047func (c *TargetPoolsRemoveHealthCheckCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
154048	gensupport.SetOptions(c.urlParams_, opts...)
154049	res, err := c.doRequest("json")
154050	if res != nil && res.StatusCode == http.StatusNotModified {
154051		if res.Body != nil {
154052			res.Body.Close()
154053		}
154054		return nil, &googleapi.Error{
154055			Code:   res.StatusCode,
154056			Header: res.Header,
154057		}
154058	}
154059	if err != nil {
154060		return nil, err
154061	}
154062	defer googleapi.CloseBody(res)
154063	if err := googleapi.CheckResponse(res); err != nil {
154064		return nil, err
154065	}
154066	ret := &Operation{
154067		ServerResponse: googleapi.ServerResponse{
154068			Header:         res.Header,
154069			HTTPStatusCode: res.StatusCode,
154070		},
154071	}
154072	target := &ret
154073	if err := gensupport.DecodeResponse(target, res); err != nil {
154074		return nil, err
154075	}
154076	return ret, nil
154077	// {
154078	//   "description": "Removes health check URL from a target pool.",
154079	//   "httpMethod": "POST",
154080	//   "id": "compute.targetPools.removeHealthCheck",
154081	//   "parameterOrder": [
154082	//     "project",
154083	//     "region",
154084	//     "targetPool"
154085	//   ],
154086	//   "parameters": {
154087	//     "project": {
154088	//       "description": "Project ID for this request.",
154089	//       "location": "path",
154090	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154091	//       "required": true,
154092	//       "type": "string"
154093	//     },
154094	//     "region": {
154095	//       "description": "Name of the region for this request.",
154096	//       "location": "path",
154097	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
154098	//       "required": true,
154099	//       "type": "string"
154100	//     },
154101	//     "requestId": {
154102	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
154103	//       "location": "query",
154104	//       "type": "string"
154105	//     },
154106	//     "targetPool": {
154107	//       "description": "Name of the target pool to remove health checks from.",
154108	//       "location": "path",
154109	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154110	//       "required": true,
154111	//       "type": "string"
154112	//     }
154113	//   },
154114	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck",
154115	//   "request": {
154116	//     "$ref": "TargetPoolsRemoveHealthCheckRequest"
154117	//   },
154118	//   "response": {
154119	//     "$ref": "Operation"
154120	//   },
154121	//   "scopes": [
154122	//     "https://www.googleapis.com/auth/cloud-platform",
154123	//     "https://www.googleapis.com/auth/compute"
154124	//   ]
154125	// }
154126
154127}
154128
154129// method id "compute.targetPools.removeInstance":
154130
154131type TargetPoolsRemoveInstanceCall struct {
154132	s                                *Service
154133	project                          string
154134	region                           string
154135	targetPool                       string
154136	targetpoolsremoveinstancerequest *TargetPoolsRemoveInstanceRequest
154137	urlParams_                       gensupport.URLParams
154138	ctx_                             context.Context
154139	header_                          http.Header
154140}
154141
154142// RemoveInstance: Removes instance URL from a target pool.
154143//
154144// - project: Project ID for this request.
154145// - region: Name of the region scoping this request.
154146// - targetPool: Name of the TargetPool resource to remove instances
154147//   from.
154148// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/removeInstance
154149func (r *TargetPoolsService) RemoveInstance(project string, region string, targetPool string, targetpoolsremoveinstancerequest *TargetPoolsRemoveInstanceRequest) *TargetPoolsRemoveInstanceCall {
154150	c := &TargetPoolsRemoveInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154151	c.project = project
154152	c.region = region
154153	c.targetPool = targetPool
154154	c.targetpoolsremoveinstancerequest = targetpoolsremoveinstancerequest
154155	return c
154156}
154157
154158// RequestId sets the optional parameter "requestId": An optional
154159// request ID to identify requests. Specify a unique request ID so that
154160// if you must retry your request, the server will know to ignore the
154161// request if it has already been completed.
154162//
154163// For example, consider a situation where you make an initial request
154164// and the request times out. If you make the request again with the
154165// same request ID, the server can check if original operation with the
154166// same request ID was received, and if so, will ignore the second
154167// request. This prevents clients from accidentally creating duplicate
154168// commitments.
154169//
154170// The request ID must be a valid UUID with the exception that zero UUID
154171// is not supported (00000000-0000-0000-0000-000000000000).
154172func (c *TargetPoolsRemoveInstanceCall) RequestId(requestId string) *TargetPoolsRemoveInstanceCall {
154173	c.urlParams_.Set("requestId", requestId)
154174	return c
154175}
154176
154177// Fields allows partial responses to be retrieved. See
154178// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154179// for more information.
154180func (c *TargetPoolsRemoveInstanceCall) Fields(s ...googleapi.Field) *TargetPoolsRemoveInstanceCall {
154181	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154182	return c
154183}
154184
154185// Context sets the context to be used in this call's Do method. Any
154186// pending HTTP request will be aborted if the provided context is
154187// canceled.
154188func (c *TargetPoolsRemoveInstanceCall) Context(ctx context.Context) *TargetPoolsRemoveInstanceCall {
154189	c.ctx_ = ctx
154190	return c
154191}
154192
154193// Header returns an http.Header that can be modified by the caller to
154194// add HTTP headers to the request.
154195func (c *TargetPoolsRemoveInstanceCall) Header() http.Header {
154196	if c.header_ == nil {
154197		c.header_ = make(http.Header)
154198	}
154199	return c.header_
154200}
154201
154202func (c *TargetPoolsRemoveInstanceCall) doRequest(alt string) (*http.Response, error) {
154203	reqHeaders := make(http.Header)
154204	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
154205	for k, v := range c.header_ {
154206		reqHeaders[k] = v
154207	}
154208	reqHeaders.Set("User-Agent", c.s.userAgent())
154209	var body io.Reader = nil
154210	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsremoveinstancerequest)
154211	if err != nil {
154212		return nil, err
154213	}
154214	reqHeaders.Set("Content-Type", "application/json")
154215	c.urlParams_.Set("alt", alt)
154216	c.urlParams_.Set("prettyPrint", "false")
154217	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/removeInstance")
154218	urls += "?" + c.urlParams_.Encode()
154219	req, err := http.NewRequest("POST", urls, body)
154220	if err != nil {
154221		return nil, err
154222	}
154223	req.Header = reqHeaders
154224	googleapi.Expand(req.URL, map[string]string{
154225		"project":    c.project,
154226		"region":     c.region,
154227		"targetPool": c.targetPool,
154228	})
154229	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154230}
154231
154232// Do executes the "compute.targetPools.removeInstance" call.
154233// Exactly one of *Operation or error will be non-nil. Any non-2xx
154234// status code is an error. Response headers are in either
154235// *Operation.ServerResponse.Header or (if a response was returned at
154236// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
154237// to check whether the returned error was because
154238// http.StatusNotModified was returned.
154239func (c *TargetPoolsRemoveInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
154240	gensupport.SetOptions(c.urlParams_, opts...)
154241	res, err := c.doRequest("json")
154242	if res != nil && res.StatusCode == http.StatusNotModified {
154243		if res.Body != nil {
154244			res.Body.Close()
154245		}
154246		return nil, &googleapi.Error{
154247			Code:   res.StatusCode,
154248			Header: res.Header,
154249		}
154250	}
154251	if err != nil {
154252		return nil, err
154253	}
154254	defer googleapi.CloseBody(res)
154255	if err := googleapi.CheckResponse(res); err != nil {
154256		return nil, err
154257	}
154258	ret := &Operation{
154259		ServerResponse: googleapi.ServerResponse{
154260			Header:         res.Header,
154261			HTTPStatusCode: res.StatusCode,
154262		},
154263	}
154264	target := &ret
154265	if err := gensupport.DecodeResponse(target, res); err != nil {
154266		return nil, err
154267	}
154268	return ret, nil
154269	// {
154270	//   "description": "Removes instance URL from a target pool.",
154271	//   "httpMethod": "POST",
154272	//   "id": "compute.targetPools.removeInstance",
154273	//   "parameterOrder": [
154274	//     "project",
154275	//     "region",
154276	//     "targetPool"
154277	//   ],
154278	//   "parameters": {
154279	//     "project": {
154280	//       "description": "Project ID for this request.",
154281	//       "location": "path",
154282	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154283	//       "required": true,
154284	//       "type": "string"
154285	//     },
154286	//     "region": {
154287	//       "description": "Name of the region scoping this request.",
154288	//       "location": "path",
154289	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
154290	//       "required": true,
154291	//       "type": "string"
154292	//     },
154293	//     "requestId": {
154294	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
154295	//       "location": "query",
154296	//       "type": "string"
154297	//     },
154298	//     "targetPool": {
154299	//       "description": "Name of the TargetPool resource to remove instances from.",
154300	//       "location": "path",
154301	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154302	//       "required": true,
154303	//       "type": "string"
154304	//     }
154305	//   },
154306	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/removeInstance",
154307	//   "request": {
154308	//     "$ref": "TargetPoolsRemoveInstanceRequest"
154309	//   },
154310	//   "response": {
154311	//     "$ref": "Operation"
154312	//   },
154313	//   "scopes": [
154314	//     "https://www.googleapis.com/auth/cloud-platform",
154315	//     "https://www.googleapis.com/auth/compute"
154316	//   ]
154317	// }
154318
154319}
154320
154321// method id "compute.targetPools.setBackup":
154322
154323type TargetPoolsSetBackupCall struct {
154324	s               *Service
154325	project         string
154326	region          string
154327	targetPool      string
154328	targetreference *TargetReference
154329	urlParams_      gensupport.URLParams
154330	ctx_            context.Context
154331	header_         http.Header
154332}
154333
154334// SetBackup: Changes a backup target pool's configurations.
154335//
154336// - project: Project ID for this request.
154337// - region: Name of the region scoping this request.
154338// - targetPool: Name of the TargetPool resource to set a backup pool
154339//   for.
154340// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/setBackup
154341func (r *TargetPoolsService) SetBackup(project string, region string, targetPool string, targetreference *TargetReference) *TargetPoolsSetBackupCall {
154342	c := &TargetPoolsSetBackupCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154343	c.project = project
154344	c.region = region
154345	c.targetPool = targetPool
154346	c.targetreference = targetreference
154347	return c
154348}
154349
154350// FailoverRatio sets the optional parameter "failoverRatio": New
154351// failoverRatio value for the target pool.
154352func (c *TargetPoolsSetBackupCall) FailoverRatio(failoverRatio float64) *TargetPoolsSetBackupCall {
154353	c.urlParams_.Set("failoverRatio", fmt.Sprint(failoverRatio))
154354	return c
154355}
154356
154357// RequestId sets the optional parameter "requestId": An optional
154358// request ID to identify requests. Specify a unique request ID so that
154359// if you must retry your request, the server will know to ignore the
154360// request if it has already been completed.
154361//
154362// For example, consider a situation where you make an initial request
154363// and the request times out. If you make the request again with the
154364// same request ID, the server can check if original operation with the
154365// same request ID was received, and if so, will ignore the second
154366// request. This prevents clients from accidentally creating duplicate
154367// commitments.
154368//
154369// The request ID must be a valid UUID with the exception that zero UUID
154370// is not supported (00000000-0000-0000-0000-000000000000).
154371func (c *TargetPoolsSetBackupCall) RequestId(requestId string) *TargetPoolsSetBackupCall {
154372	c.urlParams_.Set("requestId", requestId)
154373	return c
154374}
154375
154376// Fields allows partial responses to be retrieved. See
154377// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154378// for more information.
154379func (c *TargetPoolsSetBackupCall) Fields(s ...googleapi.Field) *TargetPoolsSetBackupCall {
154380	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154381	return c
154382}
154383
154384// Context sets the context to be used in this call's Do method. Any
154385// pending HTTP request will be aborted if the provided context is
154386// canceled.
154387func (c *TargetPoolsSetBackupCall) Context(ctx context.Context) *TargetPoolsSetBackupCall {
154388	c.ctx_ = ctx
154389	return c
154390}
154391
154392// Header returns an http.Header that can be modified by the caller to
154393// add HTTP headers to the request.
154394func (c *TargetPoolsSetBackupCall) Header() http.Header {
154395	if c.header_ == nil {
154396		c.header_ = make(http.Header)
154397	}
154398	return c.header_
154399}
154400
154401func (c *TargetPoolsSetBackupCall) doRequest(alt string) (*http.Response, error) {
154402	reqHeaders := make(http.Header)
154403	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
154404	for k, v := range c.header_ {
154405		reqHeaders[k] = v
154406	}
154407	reqHeaders.Set("User-Agent", c.s.userAgent())
154408	var body io.Reader = nil
154409	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
154410	if err != nil {
154411		return nil, err
154412	}
154413	reqHeaders.Set("Content-Type", "application/json")
154414	c.urlParams_.Set("alt", alt)
154415	c.urlParams_.Set("prettyPrint", "false")
154416	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetPools/{targetPool}/setBackup")
154417	urls += "?" + c.urlParams_.Encode()
154418	req, err := http.NewRequest("POST", urls, body)
154419	if err != nil {
154420		return nil, err
154421	}
154422	req.Header = reqHeaders
154423	googleapi.Expand(req.URL, map[string]string{
154424		"project":    c.project,
154425		"region":     c.region,
154426		"targetPool": c.targetPool,
154427	})
154428	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154429}
154430
154431// Do executes the "compute.targetPools.setBackup" call.
154432// Exactly one of *Operation or error will be non-nil. Any non-2xx
154433// status code is an error. Response headers are in either
154434// *Operation.ServerResponse.Header or (if a response was returned at
154435// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
154436// to check whether the returned error was because
154437// http.StatusNotModified was returned.
154438func (c *TargetPoolsSetBackupCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
154439	gensupport.SetOptions(c.urlParams_, opts...)
154440	res, err := c.doRequest("json")
154441	if res != nil && res.StatusCode == http.StatusNotModified {
154442		if res.Body != nil {
154443			res.Body.Close()
154444		}
154445		return nil, &googleapi.Error{
154446			Code:   res.StatusCode,
154447			Header: res.Header,
154448		}
154449	}
154450	if err != nil {
154451		return nil, err
154452	}
154453	defer googleapi.CloseBody(res)
154454	if err := googleapi.CheckResponse(res); err != nil {
154455		return nil, err
154456	}
154457	ret := &Operation{
154458		ServerResponse: googleapi.ServerResponse{
154459			Header:         res.Header,
154460			HTTPStatusCode: res.StatusCode,
154461		},
154462	}
154463	target := &ret
154464	if err := gensupport.DecodeResponse(target, res); err != nil {
154465		return nil, err
154466	}
154467	return ret, nil
154468	// {
154469	//   "description": "Changes a backup target pool's configurations.",
154470	//   "httpMethod": "POST",
154471	//   "id": "compute.targetPools.setBackup",
154472	//   "parameterOrder": [
154473	//     "project",
154474	//     "region",
154475	//     "targetPool"
154476	//   ],
154477	//   "parameters": {
154478	//     "failoverRatio": {
154479	//       "description": "New failoverRatio value for the target pool.",
154480	//       "format": "float",
154481	//       "location": "query",
154482	//       "type": "number"
154483	//     },
154484	//     "project": {
154485	//       "description": "Project ID for this request.",
154486	//       "location": "path",
154487	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154488	//       "required": true,
154489	//       "type": "string"
154490	//     },
154491	//     "region": {
154492	//       "description": "Name of the region scoping this request.",
154493	//       "location": "path",
154494	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
154495	//       "required": true,
154496	//       "type": "string"
154497	//     },
154498	//     "requestId": {
154499	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
154500	//       "location": "query",
154501	//       "type": "string"
154502	//     },
154503	//     "targetPool": {
154504	//       "description": "Name of the TargetPool resource to set a backup pool for.",
154505	//       "location": "path",
154506	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154507	//       "required": true,
154508	//       "type": "string"
154509	//     }
154510	//   },
154511	//   "path": "projects/{project}/regions/{region}/targetPools/{targetPool}/setBackup",
154512	//   "request": {
154513	//     "$ref": "TargetReference"
154514	//   },
154515	//   "response": {
154516	//     "$ref": "Operation"
154517	//   },
154518	//   "scopes": [
154519	//     "https://www.googleapis.com/auth/cloud-platform",
154520	//     "https://www.googleapis.com/auth/compute"
154521	//   ]
154522	// }
154523
154524}
154525
154526// method id "compute.targetSslProxies.delete":
154527
154528type TargetSslProxiesDeleteCall struct {
154529	s              *Service
154530	project        string
154531	targetSslProxy string
154532	urlParams_     gensupport.URLParams
154533	ctx_           context.Context
154534	header_        http.Header
154535}
154536
154537// Delete: Deletes the specified TargetSslProxy resource.
154538//
154539// - project: Project ID for this request.
154540// - targetSslProxy: Name of the TargetSslProxy resource to delete.
154541func (r *TargetSslProxiesService) Delete(project string, targetSslProxy string) *TargetSslProxiesDeleteCall {
154542	c := &TargetSslProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154543	c.project = project
154544	c.targetSslProxy = targetSslProxy
154545	return c
154546}
154547
154548// RequestId sets the optional parameter "requestId": An optional
154549// request ID to identify requests. Specify a unique request ID so that
154550// if you must retry your request, the server will know to ignore the
154551// request if it has already been completed.
154552//
154553// For example, consider a situation where you make an initial request
154554// and the request times out. If you make the request again with the
154555// same request ID, the server can check if original operation with the
154556// same request ID was received, and if so, will ignore the second
154557// request. This prevents clients from accidentally creating duplicate
154558// commitments.
154559//
154560// The request ID must be a valid UUID with the exception that zero UUID
154561// is not supported (00000000-0000-0000-0000-000000000000).
154562func (c *TargetSslProxiesDeleteCall) RequestId(requestId string) *TargetSslProxiesDeleteCall {
154563	c.urlParams_.Set("requestId", requestId)
154564	return c
154565}
154566
154567// Fields allows partial responses to be retrieved. See
154568// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154569// for more information.
154570func (c *TargetSslProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetSslProxiesDeleteCall {
154571	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154572	return c
154573}
154574
154575// Context sets the context to be used in this call's Do method. Any
154576// pending HTTP request will be aborted if the provided context is
154577// canceled.
154578func (c *TargetSslProxiesDeleteCall) Context(ctx context.Context) *TargetSslProxiesDeleteCall {
154579	c.ctx_ = ctx
154580	return c
154581}
154582
154583// Header returns an http.Header that can be modified by the caller to
154584// add HTTP headers to the request.
154585func (c *TargetSslProxiesDeleteCall) Header() http.Header {
154586	if c.header_ == nil {
154587		c.header_ = make(http.Header)
154588	}
154589	return c.header_
154590}
154591
154592func (c *TargetSslProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
154593	reqHeaders := make(http.Header)
154594	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
154595	for k, v := range c.header_ {
154596		reqHeaders[k] = v
154597	}
154598	reqHeaders.Set("User-Agent", c.s.userAgent())
154599	var body io.Reader = nil
154600	c.urlParams_.Set("alt", alt)
154601	c.urlParams_.Set("prettyPrint", "false")
154602	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}")
154603	urls += "?" + c.urlParams_.Encode()
154604	req, err := http.NewRequest("DELETE", urls, body)
154605	if err != nil {
154606		return nil, err
154607	}
154608	req.Header = reqHeaders
154609	googleapi.Expand(req.URL, map[string]string{
154610		"project":        c.project,
154611		"targetSslProxy": c.targetSslProxy,
154612	})
154613	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154614}
154615
154616// Do executes the "compute.targetSslProxies.delete" call.
154617// Exactly one of *Operation or error will be non-nil. Any non-2xx
154618// status code is an error. Response headers are in either
154619// *Operation.ServerResponse.Header or (if a response was returned at
154620// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
154621// to check whether the returned error was because
154622// http.StatusNotModified was returned.
154623func (c *TargetSslProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
154624	gensupport.SetOptions(c.urlParams_, opts...)
154625	res, err := c.doRequest("json")
154626	if res != nil && res.StatusCode == http.StatusNotModified {
154627		if res.Body != nil {
154628			res.Body.Close()
154629		}
154630		return nil, &googleapi.Error{
154631			Code:   res.StatusCode,
154632			Header: res.Header,
154633		}
154634	}
154635	if err != nil {
154636		return nil, err
154637	}
154638	defer googleapi.CloseBody(res)
154639	if err := googleapi.CheckResponse(res); err != nil {
154640		return nil, err
154641	}
154642	ret := &Operation{
154643		ServerResponse: googleapi.ServerResponse{
154644			Header:         res.Header,
154645			HTTPStatusCode: res.StatusCode,
154646		},
154647	}
154648	target := &ret
154649	if err := gensupport.DecodeResponse(target, res); err != nil {
154650		return nil, err
154651	}
154652	return ret, nil
154653	// {
154654	//   "description": "Deletes the specified TargetSslProxy resource.",
154655	//   "httpMethod": "DELETE",
154656	//   "id": "compute.targetSslProxies.delete",
154657	//   "parameterOrder": [
154658	//     "project",
154659	//     "targetSslProxy"
154660	//   ],
154661	//   "parameters": {
154662	//     "project": {
154663	//       "description": "Project ID for this request.",
154664	//       "location": "path",
154665	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154666	//       "required": true,
154667	//       "type": "string"
154668	//     },
154669	//     "requestId": {
154670	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
154671	//       "location": "query",
154672	//       "type": "string"
154673	//     },
154674	//     "targetSslProxy": {
154675	//       "description": "Name of the TargetSslProxy resource to delete.",
154676	//       "location": "path",
154677	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154678	//       "required": true,
154679	//       "type": "string"
154680	//     }
154681	//   },
154682	//   "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}",
154683	//   "response": {
154684	//     "$ref": "Operation"
154685	//   },
154686	//   "scopes": [
154687	//     "https://www.googleapis.com/auth/cloud-platform",
154688	//     "https://www.googleapis.com/auth/compute"
154689	//   ]
154690	// }
154691
154692}
154693
154694// method id "compute.targetSslProxies.get":
154695
154696type TargetSslProxiesGetCall struct {
154697	s              *Service
154698	project        string
154699	targetSslProxy string
154700	urlParams_     gensupport.URLParams
154701	ifNoneMatch_   string
154702	ctx_           context.Context
154703	header_        http.Header
154704}
154705
154706// Get: Returns the specified TargetSslProxy resource. Gets a list of
154707// available target SSL proxies by making a list() request.
154708//
154709// - project: Project ID for this request.
154710// - targetSslProxy: Name of the TargetSslProxy resource to return.
154711func (r *TargetSslProxiesService) Get(project string, targetSslProxy string) *TargetSslProxiesGetCall {
154712	c := &TargetSslProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154713	c.project = project
154714	c.targetSslProxy = targetSslProxy
154715	return c
154716}
154717
154718// Fields allows partial responses to be retrieved. See
154719// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154720// for more information.
154721func (c *TargetSslProxiesGetCall) Fields(s ...googleapi.Field) *TargetSslProxiesGetCall {
154722	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154723	return c
154724}
154725
154726// IfNoneMatch sets the optional parameter which makes the operation
154727// fail if the object's ETag matches the given value. This is useful for
154728// getting updates only after the object has changed since the last
154729// request. Use googleapi.IsNotModified to check whether the response
154730// error from Do is the result of In-None-Match.
154731func (c *TargetSslProxiesGetCall) IfNoneMatch(entityTag string) *TargetSslProxiesGetCall {
154732	c.ifNoneMatch_ = entityTag
154733	return c
154734}
154735
154736// Context sets the context to be used in this call's Do method. Any
154737// pending HTTP request will be aborted if the provided context is
154738// canceled.
154739func (c *TargetSslProxiesGetCall) Context(ctx context.Context) *TargetSslProxiesGetCall {
154740	c.ctx_ = ctx
154741	return c
154742}
154743
154744// Header returns an http.Header that can be modified by the caller to
154745// add HTTP headers to the request.
154746func (c *TargetSslProxiesGetCall) Header() http.Header {
154747	if c.header_ == nil {
154748		c.header_ = make(http.Header)
154749	}
154750	return c.header_
154751}
154752
154753func (c *TargetSslProxiesGetCall) doRequest(alt string) (*http.Response, error) {
154754	reqHeaders := make(http.Header)
154755	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
154756	for k, v := range c.header_ {
154757		reqHeaders[k] = v
154758	}
154759	reqHeaders.Set("User-Agent", c.s.userAgent())
154760	if c.ifNoneMatch_ != "" {
154761		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
154762	}
154763	var body io.Reader = nil
154764	c.urlParams_.Set("alt", alt)
154765	c.urlParams_.Set("prettyPrint", "false")
154766	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}")
154767	urls += "?" + c.urlParams_.Encode()
154768	req, err := http.NewRequest("GET", urls, body)
154769	if err != nil {
154770		return nil, err
154771	}
154772	req.Header = reqHeaders
154773	googleapi.Expand(req.URL, map[string]string{
154774		"project":        c.project,
154775		"targetSslProxy": c.targetSslProxy,
154776	})
154777	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154778}
154779
154780// Do executes the "compute.targetSslProxies.get" call.
154781// Exactly one of *TargetSslProxy or error will be non-nil. Any non-2xx
154782// status code is an error. Response headers are in either
154783// *TargetSslProxy.ServerResponse.Header or (if a response was returned
154784// at all) in error.(*googleapi.Error).Header. Use
154785// googleapi.IsNotModified to check whether the returned error was
154786// because http.StatusNotModified was returned.
154787func (c *TargetSslProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetSslProxy, error) {
154788	gensupport.SetOptions(c.urlParams_, opts...)
154789	res, err := c.doRequest("json")
154790	if res != nil && res.StatusCode == http.StatusNotModified {
154791		if res.Body != nil {
154792			res.Body.Close()
154793		}
154794		return nil, &googleapi.Error{
154795			Code:   res.StatusCode,
154796			Header: res.Header,
154797		}
154798	}
154799	if err != nil {
154800		return nil, err
154801	}
154802	defer googleapi.CloseBody(res)
154803	if err := googleapi.CheckResponse(res); err != nil {
154804		return nil, err
154805	}
154806	ret := &TargetSslProxy{
154807		ServerResponse: googleapi.ServerResponse{
154808			Header:         res.Header,
154809			HTTPStatusCode: res.StatusCode,
154810		},
154811	}
154812	target := &ret
154813	if err := gensupport.DecodeResponse(target, res); err != nil {
154814		return nil, err
154815	}
154816	return ret, nil
154817	// {
154818	//   "description": "Returns the specified TargetSslProxy resource. Gets a list of available target SSL proxies by making a list() request.",
154819	//   "httpMethod": "GET",
154820	//   "id": "compute.targetSslProxies.get",
154821	//   "parameterOrder": [
154822	//     "project",
154823	//     "targetSslProxy"
154824	//   ],
154825	//   "parameters": {
154826	//     "project": {
154827	//       "description": "Project ID for this request.",
154828	//       "location": "path",
154829	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154830	//       "required": true,
154831	//       "type": "string"
154832	//     },
154833	//     "targetSslProxy": {
154834	//       "description": "Name of the TargetSslProxy resource to return.",
154835	//       "location": "path",
154836	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154837	//       "required": true,
154838	//       "type": "string"
154839	//     }
154840	//   },
154841	//   "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}",
154842	//   "response": {
154843	//     "$ref": "TargetSslProxy"
154844	//   },
154845	//   "scopes": [
154846	//     "https://www.googleapis.com/auth/cloud-platform",
154847	//     "https://www.googleapis.com/auth/compute",
154848	//     "https://www.googleapis.com/auth/compute.readonly"
154849	//   ]
154850	// }
154851
154852}
154853
154854// method id "compute.targetSslProxies.insert":
154855
154856type TargetSslProxiesInsertCall struct {
154857	s              *Service
154858	project        string
154859	targetsslproxy *TargetSslProxy
154860	urlParams_     gensupport.URLParams
154861	ctx_           context.Context
154862	header_        http.Header
154863}
154864
154865// Insert: Creates a TargetSslProxy resource in the specified project
154866// using the data included in the request.
154867//
154868// - project: Project ID for this request.
154869func (r *TargetSslProxiesService) Insert(project string, targetsslproxy *TargetSslProxy) *TargetSslProxiesInsertCall {
154870	c := &TargetSslProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154871	c.project = project
154872	c.targetsslproxy = targetsslproxy
154873	return c
154874}
154875
154876// RequestId sets the optional parameter "requestId": An optional
154877// request ID to identify requests. Specify a unique request ID so that
154878// if you must retry your request, the server will know to ignore the
154879// request if it has already been completed.
154880//
154881// For example, consider a situation where you make an initial request
154882// and the request times out. If you make the request again with the
154883// same request ID, the server can check if original operation with the
154884// same request ID was received, and if so, will ignore the second
154885// request. This prevents clients from accidentally creating duplicate
154886// commitments.
154887//
154888// The request ID must be a valid UUID with the exception that zero UUID
154889// is not supported (00000000-0000-0000-0000-000000000000).
154890func (c *TargetSslProxiesInsertCall) RequestId(requestId string) *TargetSslProxiesInsertCall {
154891	c.urlParams_.Set("requestId", requestId)
154892	return c
154893}
154894
154895// Fields allows partial responses to be retrieved. See
154896// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154897// for more information.
154898func (c *TargetSslProxiesInsertCall) Fields(s ...googleapi.Field) *TargetSslProxiesInsertCall {
154899	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154900	return c
154901}
154902
154903// Context sets the context to be used in this call's Do method. Any
154904// pending HTTP request will be aborted if the provided context is
154905// canceled.
154906func (c *TargetSslProxiesInsertCall) Context(ctx context.Context) *TargetSslProxiesInsertCall {
154907	c.ctx_ = ctx
154908	return c
154909}
154910
154911// Header returns an http.Header that can be modified by the caller to
154912// add HTTP headers to the request.
154913func (c *TargetSslProxiesInsertCall) Header() http.Header {
154914	if c.header_ == nil {
154915		c.header_ = make(http.Header)
154916	}
154917	return c.header_
154918}
154919
154920func (c *TargetSslProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
154921	reqHeaders := make(http.Header)
154922	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
154923	for k, v := range c.header_ {
154924		reqHeaders[k] = v
154925	}
154926	reqHeaders.Set("User-Agent", c.s.userAgent())
154927	var body io.Reader = nil
154928	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxy)
154929	if err != nil {
154930		return nil, err
154931	}
154932	reqHeaders.Set("Content-Type", "application/json")
154933	c.urlParams_.Set("alt", alt)
154934	c.urlParams_.Set("prettyPrint", "false")
154935	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies")
154936	urls += "?" + c.urlParams_.Encode()
154937	req, err := http.NewRequest("POST", urls, body)
154938	if err != nil {
154939		return nil, err
154940	}
154941	req.Header = reqHeaders
154942	googleapi.Expand(req.URL, map[string]string{
154943		"project": c.project,
154944	})
154945	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154946}
154947
154948// Do executes the "compute.targetSslProxies.insert" call.
154949// Exactly one of *Operation or error will be non-nil. Any non-2xx
154950// status code is an error. Response headers are in either
154951// *Operation.ServerResponse.Header or (if a response was returned at
154952// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
154953// to check whether the returned error was because
154954// http.StatusNotModified was returned.
154955func (c *TargetSslProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
154956	gensupport.SetOptions(c.urlParams_, opts...)
154957	res, err := c.doRequest("json")
154958	if res != nil && res.StatusCode == http.StatusNotModified {
154959		if res.Body != nil {
154960			res.Body.Close()
154961		}
154962		return nil, &googleapi.Error{
154963			Code:   res.StatusCode,
154964			Header: res.Header,
154965		}
154966	}
154967	if err != nil {
154968		return nil, err
154969	}
154970	defer googleapi.CloseBody(res)
154971	if err := googleapi.CheckResponse(res); err != nil {
154972		return nil, err
154973	}
154974	ret := &Operation{
154975		ServerResponse: googleapi.ServerResponse{
154976			Header:         res.Header,
154977			HTTPStatusCode: res.StatusCode,
154978		},
154979	}
154980	target := &ret
154981	if err := gensupport.DecodeResponse(target, res); err != nil {
154982		return nil, err
154983	}
154984	return ret, nil
154985	// {
154986	//   "description": "Creates a TargetSslProxy resource in the specified project using the data included in the request.",
154987	//   "httpMethod": "POST",
154988	//   "id": "compute.targetSslProxies.insert",
154989	//   "parameterOrder": [
154990	//     "project"
154991	//   ],
154992	//   "parameters": {
154993	//     "project": {
154994	//       "description": "Project ID for this request.",
154995	//       "location": "path",
154996	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154997	//       "required": true,
154998	//       "type": "string"
154999	//     },
155000	//     "requestId": {
155001	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
155002	//       "location": "query",
155003	//       "type": "string"
155004	//     }
155005	//   },
155006	//   "path": "projects/{project}/global/targetSslProxies",
155007	//   "request": {
155008	//     "$ref": "TargetSslProxy"
155009	//   },
155010	//   "response": {
155011	//     "$ref": "Operation"
155012	//   },
155013	//   "scopes": [
155014	//     "https://www.googleapis.com/auth/cloud-platform",
155015	//     "https://www.googleapis.com/auth/compute"
155016	//   ]
155017	// }
155018
155019}
155020
155021// method id "compute.targetSslProxies.list":
155022
155023type TargetSslProxiesListCall struct {
155024	s            *Service
155025	project      string
155026	urlParams_   gensupport.URLParams
155027	ifNoneMatch_ string
155028	ctx_         context.Context
155029	header_      http.Header
155030}
155031
155032// List: Retrieves the list of TargetSslProxy resources available to the
155033// specified project.
155034//
155035// - project: Project ID for this request.
155036func (r *TargetSslProxiesService) List(project string) *TargetSslProxiesListCall {
155037	c := &TargetSslProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155038	c.project = project
155039	return c
155040}
155041
155042// Filter sets the optional parameter "filter": A filter expression that
155043// filters resources listed in the response. The expression must specify
155044// the field name, a comparison operator, and the value that you want to
155045// use for filtering. The value must be a string, a number, or a
155046// boolean. The comparison operator must be either `=`, `!=`, `>`, or
155047// `<`.
155048//
155049// For example, if you are filtering Compute Engine instances, you can
155050// exclude instances named `example-instance` by specifying `name !=
155051// example-instance`.
155052//
155053// You can also filter nested fields. For example, you could specify
155054// `scheduling.automaticRestart = false` to include instances only if
155055// they are not scheduled for automatic restarts. You can use filtering
155056// on nested fields to filter based on resource labels.
155057//
155058// To filter on multiple expressions, provide each separate expression
155059// within parentheses. For example: ``` (scheduling.automaticRestart =
155060// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
155061// is an `AND` expression. However, you can include `AND` and `OR`
155062// expressions explicitly. For example: ``` (cpuPlatform = "Intel
155063// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
155064// (scheduling.automaticRestart = true) ```
155065func (c *TargetSslProxiesListCall) Filter(filter string) *TargetSslProxiesListCall {
155066	c.urlParams_.Set("filter", filter)
155067	return c
155068}
155069
155070// MaxResults sets the optional parameter "maxResults": The maximum
155071// number of results per page that should be returned. If the number of
155072// available results is larger than `maxResults`, Compute Engine returns
155073// a `nextPageToken` that can be used to get the next page of results in
155074// subsequent list requests. Acceptable values are `0` to `500`,
155075// inclusive. (Default: `500`)
155076func (c *TargetSslProxiesListCall) MaxResults(maxResults int64) *TargetSslProxiesListCall {
155077	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
155078	return c
155079}
155080
155081// OrderBy sets the optional parameter "orderBy": Sorts list results by
155082// a certain order. By default, results are returned in alphanumerical
155083// order based on the resource name.
155084//
155085// You can also sort results in descending order based on the creation
155086// timestamp using `orderBy="creationTimestamp desc". This sorts
155087// results based on the `creationTimestamp` field in reverse
155088// chronological order (newest result first). Use this to sort resources
155089// like operations so that the newest operation is returned
155090// first.
155091//
155092// Currently, only sorting by `name` or `creationTimestamp desc` is
155093// supported.
155094func (c *TargetSslProxiesListCall) OrderBy(orderBy string) *TargetSslProxiesListCall {
155095	c.urlParams_.Set("orderBy", orderBy)
155096	return c
155097}
155098
155099// PageToken sets the optional parameter "pageToken": Specifies a page
155100// token to use. Set `pageToken` to the `nextPageToken` returned by a
155101// previous list request to get the next page of results.
155102func (c *TargetSslProxiesListCall) PageToken(pageToken string) *TargetSslProxiesListCall {
155103	c.urlParams_.Set("pageToken", pageToken)
155104	return c
155105}
155106
155107// ReturnPartialSuccess sets the optional parameter
155108// "returnPartialSuccess": Opt-in for partial success behavior which
155109// provides partial results in case of failure. The default value is
155110// false.
155111func (c *TargetSslProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetSslProxiesListCall {
155112	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
155113	return c
155114}
155115
155116// Fields allows partial responses to be retrieved. See
155117// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155118// for more information.
155119func (c *TargetSslProxiesListCall) Fields(s ...googleapi.Field) *TargetSslProxiesListCall {
155120	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155121	return c
155122}
155123
155124// IfNoneMatch sets the optional parameter which makes the operation
155125// fail if the object's ETag matches the given value. This is useful for
155126// getting updates only after the object has changed since the last
155127// request. Use googleapi.IsNotModified to check whether the response
155128// error from Do is the result of In-None-Match.
155129func (c *TargetSslProxiesListCall) IfNoneMatch(entityTag string) *TargetSslProxiesListCall {
155130	c.ifNoneMatch_ = entityTag
155131	return c
155132}
155133
155134// Context sets the context to be used in this call's Do method. Any
155135// pending HTTP request will be aborted if the provided context is
155136// canceled.
155137func (c *TargetSslProxiesListCall) Context(ctx context.Context) *TargetSslProxiesListCall {
155138	c.ctx_ = ctx
155139	return c
155140}
155141
155142// Header returns an http.Header that can be modified by the caller to
155143// add HTTP headers to the request.
155144func (c *TargetSslProxiesListCall) Header() http.Header {
155145	if c.header_ == nil {
155146		c.header_ = make(http.Header)
155147	}
155148	return c.header_
155149}
155150
155151func (c *TargetSslProxiesListCall) doRequest(alt string) (*http.Response, error) {
155152	reqHeaders := make(http.Header)
155153	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
155154	for k, v := range c.header_ {
155155		reqHeaders[k] = v
155156	}
155157	reqHeaders.Set("User-Agent", c.s.userAgent())
155158	if c.ifNoneMatch_ != "" {
155159		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
155160	}
155161	var body io.Reader = nil
155162	c.urlParams_.Set("alt", alt)
155163	c.urlParams_.Set("prettyPrint", "false")
155164	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies")
155165	urls += "?" + c.urlParams_.Encode()
155166	req, err := http.NewRequest("GET", urls, body)
155167	if err != nil {
155168		return nil, err
155169	}
155170	req.Header = reqHeaders
155171	googleapi.Expand(req.URL, map[string]string{
155172		"project": c.project,
155173	})
155174	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155175}
155176
155177// Do executes the "compute.targetSslProxies.list" call.
155178// Exactly one of *TargetSslProxyList or error will be non-nil. Any
155179// non-2xx status code is an error. Response headers are in either
155180// *TargetSslProxyList.ServerResponse.Header or (if a response was
155181// returned at all) in error.(*googleapi.Error).Header. Use
155182// googleapi.IsNotModified to check whether the returned error was
155183// because http.StatusNotModified was returned.
155184func (c *TargetSslProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetSslProxyList, error) {
155185	gensupport.SetOptions(c.urlParams_, opts...)
155186	res, err := c.doRequest("json")
155187	if res != nil && res.StatusCode == http.StatusNotModified {
155188		if res.Body != nil {
155189			res.Body.Close()
155190		}
155191		return nil, &googleapi.Error{
155192			Code:   res.StatusCode,
155193			Header: res.Header,
155194		}
155195	}
155196	if err != nil {
155197		return nil, err
155198	}
155199	defer googleapi.CloseBody(res)
155200	if err := googleapi.CheckResponse(res); err != nil {
155201		return nil, err
155202	}
155203	ret := &TargetSslProxyList{
155204		ServerResponse: googleapi.ServerResponse{
155205			Header:         res.Header,
155206			HTTPStatusCode: res.StatusCode,
155207		},
155208	}
155209	target := &ret
155210	if err := gensupport.DecodeResponse(target, res); err != nil {
155211		return nil, err
155212	}
155213	return ret, nil
155214	// {
155215	//   "description": "Retrieves the list of TargetSslProxy resources available to the specified project.",
155216	//   "httpMethod": "GET",
155217	//   "id": "compute.targetSslProxies.list",
155218	//   "parameterOrder": [
155219	//     "project"
155220	//   ],
155221	//   "parameters": {
155222	//     "filter": {
155223	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
155224	//       "location": "query",
155225	//       "type": "string"
155226	//     },
155227	//     "maxResults": {
155228	//       "default": "500",
155229	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
155230	//       "format": "uint32",
155231	//       "location": "query",
155232	//       "minimum": "0",
155233	//       "type": "integer"
155234	//     },
155235	//     "orderBy": {
155236	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
155237	//       "location": "query",
155238	//       "type": "string"
155239	//     },
155240	//     "pageToken": {
155241	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
155242	//       "location": "query",
155243	//       "type": "string"
155244	//     },
155245	//     "project": {
155246	//       "description": "Project ID for this request.",
155247	//       "location": "path",
155248	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155249	//       "required": true,
155250	//       "type": "string"
155251	//     },
155252	//     "returnPartialSuccess": {
155253	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
155254	//       "location": "query",
155255	//       "type": "boolean"
155256	//     }
155257	//   },
155258	//   "path": "projects/{project}/global/targetSslProxies",
155259	//   "response": {
155260	//     "$ref": "TargetSslProxyList"
155261	//   },
155262	//   "scopes": [
155263	//     "https://www.googleapis.com/auth/cloud-platform",
155264	//     "https://www.googleapis.com/auth/compute",
155265	//     "https://www.googleapis.com/auth/compute.readonly"
155266	//   ]
155267	// }
155268
155269}
155270
155271// Pages invokes f for each page of results.
155272// A non-nil error returned from f will halt the iteration.
155273// The provided context supersedes any context provided to the Context method.
155274func (c *TargetSslProxiesListCall) Pages(ctx context.Context, f func(*TargetSslProxyList) error) error {
155275	c.ctx_ = ctx
155276	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
155277	for {
155278		x, err := c.Do()
155279		if err != nil {
155280			return err
155281		}
155282		if err := f(x); err != nil {
155283			return err
155284		}
155285		if x.NextPageToken == "" {
155286			return nil
155287		}
155288		c.PageToken(x.NextPageToken)
155289	}
155290}
155291
155292// method id "compute.targetSslProxies.setBackendService":
155293
155294type TargetSslProxiesSetBackendServiceCall struct {
155295	s                                        *Service
155296	project                                  string
155297	targetSslProxy                           string
155298	targetsslproxiessetbackendservicerequest *TargetSslProxiesSetBackendServiceRequest
155299	urlParams_                               gensupport.URLParams
155300	ctx_                                     context.Context
155301	header_                                  http.Header
155302}
155303
155304// SetBackendService: Changes the BackendService for TargetSslProxy.
155305//
155306// - project: Project ID for this request.
155307// - targetSslProxy: Name of the TargetSslProxy resource whose
155308//   BackendService resource is to be set.
155309func (r *TargetSslProxiesService) SetBackendService(project string, targetSslProxy string, targetsslproxiessetbackendservicerequest *TargetSslProxiesSetBackendServiceRequest) *TargetSslProxiesSetBackendServiceCall {
155310	c := &TargetSslProxiesSetBackendServiceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155311	c.project = project
155312	c.targetSslProxy = targetSslProxy
155313	c.targetsslproxiessetbackendservicerequest = targetsslproxiessetbackendservicerequest
155314	return c
155315}
155316
155317// RequestId sets the optional parameter "requestId": An optional
155318// request ID to identify requests. Specify a unique request ID so that
155319// if you must retry your request, the server will know to ignore the
155320// request if it has already been completed.
155321//
155322// For example, consider a situation where you make an initial request
155323// and the request times out. If you make the request again with the
155324// same request ID, the server can check if original operation with the
155325// same request ID was received, and if so, will ignore the second
155326// request. This prevents clients from accidentally creating duplicate
155327// commitments.
155328//
155329// The request ID must be a valid UUID with the exception that zero UUID
155330// is not supported (00000000-0000-0000-0000-000000000000).
155331func (c *TargetSslProxiesSetBackendServiceCall) RequestId(requestId string) *TargetSslProxiesSetBackendServiceCall {
155332	c.urlParams_.Set("requestId", requestId)
155333	return c
155334}
155335
155336// Fields allows partial responses to be retrieved. See
155337// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155338// for more information.
155339func (c *TargetSslProxiesSetBackendServiceCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetBackendServiceCall {
155340	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155341	return c
155342}
155343
155344// Context sets the context to be used in this call's Do method. Any
155345// pending HTTP request will be aborted if the provided context is
155346// canceled.
155347func (c *TargetSslProxiesSetBackendServiceCall) Context(ctx context.Context) *TargetSslProxiesSetBackendServiceCall {
155348	c.ctx_ = ctx
155349	return c
155350}
155351
155352// Header returns an http.Header that can be modified by the caller to
155353// add HTTP headers to the request.
155354func (c *TargetSslProxiesSetBackendServiceCall) Header() http.Header {
155355	if c.header_ == nil {
155356		c.header_ = make(http.Header)
155357	}
155358	return c.header_
155359}
155360
155361func (c *TargetSslProxiesSetBackendServiceCall) doRequest(alt string) (*http.Response, error) {
155362	reqHeaders := make(http.Header)
155363	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
155364	for k, v := range c.header_ {
155365		reqHeaders[k] = v
155366	}
155367	reqHeaders.Set("User-Agent", c.s.userAgent())
155368	var body io.Reader = nil
155369	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetbackendservicerequest)
155370	if err != nil {
155371		return nil, err
155372	}
155373	reqHeaders.Set("Content-Type", "application/json")
155374	c.urlParams_.Set("alt", alt)
155375	c.urlParams_.Set("prettyPrint", "false")
155376	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}/setBackendService")
155377	urls += "?" + c.urlParams_.Encode()
155378	req, err := http.NewRequest("POST", urls, body)
155379	if err != nil {
155380		return nil, err
155381	}
155382	req.Header = reqHeaders
155383	googleapi.Expand(req.URL, map[string]string{
155384		"project":        c.project,
155385		"targetSslProxy": c.targetSslProxy,
155386	})
155387	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155388}
155389
155390// Do executes the "compute.targetSslProxies.setBackendService" call.
155391// Exactly one of *Operation or error will be non-nil. Any non-2xx
155392// status code is an error. Response headers are in either
155393// *Operation.ServerResponse.Header or (if a response was returned at
155394// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
155395// to check whether the returned error was because
155396// http.StatusNotModified was returned.
155397func (c *TargetSslProxiesSetBackendServiceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
155398	gensupport.SetOptions(c.urlParams_, opts...)
155399	res, err := c.doRequest("json")
155400	if res != nil && res.StatusCode == http.StatusNotModified {
155401		if res.Body != nil {
155402			res.Body.Close()
155403		}
155404		return nil, &googleapi.Error{
155405			Code:   res.StatusCode,
155406			Header: res.Header,
155407		}
155408	}
155409	if err != nil {
155410		return nil, err
155411	}
155412	defer googleapi.CloseBody(res)
155413	if err := googleapi.CheckResponse(res); err != nil {
155414		return nil, err
155415	}
155416	ret := &Operation{
155417		ServerResponse: googleapi.ServerResponse{
155418			Header:         res.Header,
155419			HTTPStatusCode: res.StatusCode,
155420		},
155421	}
155422	target := &ret
155423	if err := gensupport.DecodeResponse(target, res); err != nil {
155424		return nil, err
155425	}
155426	return ret, nil
155427	// {
155428	//   "description": "Changes the BackendService for TargetSslProxy.",
155429	//   "httpMethod": "POST",
155430	//   "id": "compute.targetSslProxies.setBackendService",
155431	//   "parameterOrder": [
155432	//     "project",
155433	//     "targetSslProxy"
155434	//   ],
155435	//   "parameters": {
155436	//     "project": {
155437	//       "description": "Project ID for this request.",
155438	//       "location": "path",
155439	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155440	//       "required": true,
155441	//       "type": "string"
155442	//     },
155443	//     "requestId": {
155444	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
155445	//       "location": "query",
155446	//       "type": "string"
155447	//     },
155448	//     "targetSslProxy": {
155449	//       "description": "Name of the TargetSslProxy resource whose BackendService resource is to be set.",
155450	//       "location": "path",
155451	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
155452	//       "required": true,
155453	//       "type": "string"
155454	//     }
155455	//   },
155456	//   "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setBackendService",
155457	//   "request": {
155458	//     "$ref": "TargetSslProxiesSetBackendServiceRequest"
155459	//   },
155460	//   "response": {
155461	//     "$ref": "Operation"
155462	//   },
155463	//   "scopes": [
155464	//     "https://www.googleapis.com/auth/cloud-platform",
155465	//     "https://www.googleapis.com/auth/compute"
155466	//   ]
155467	// }
155468
155469}
155470
155471// method id "compute.targetSslProxies.setProxyHeader":
155472
155473type TargetSslProxiesSetProxyHeaderCall struct {
155474	s                                     *Service
155475	project                               string
155476	targetSslProxy                        string
155477	targetsslproxiessetproxyheaderrequest *TargetSslProxiesSetProxyHeaderRequest
155478	urlParams_                            gensupport.URLParams
155479	ctx_                                  context.Context
155480	header_                               http.Header
155481}
155482
155483// SetProxyHeader: Changes the ProxyHeaderType for TargetSslProxy.
155484//
155485// - project: Project ID for this request.
155486// - targetSslProxy: Name of the TargetSslProxy resource whose
155487//   ProxyHeader is to be set.
155488func (r *TargetSslProxiesService) SetProxyHeader(project string, targetSslProxy string, targetsslproxiessetproxyheaderrequest *TargetSslProxiesSetProxyHeaderRequest) *TargetSslProxiesSetProxyHeaderCall {
155489	c := &TargetSslProxiesSetProxyHeaderCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155490	c.project = project
155491	c.targetSslProxy = targetSslProxy
155492	c.targetsslproxiessetproxyheaderrequest = targetsslproxiessetproxyheaderrequest
155493	return c
155494}
155495
155496// RequestId sets the optional parameter "requestId": An optional
155497// request ID to identify requests. Specify a unique request ID so that
155498// if you must retry your request, the server will know to ignore the
155499// request if it has already been completed.
155500//
155501// For example, consider a situation where you make an initial request
155502// and the request times out. If you make the request again with the
155503// same request ID, the server can check if original operation with the
155504// same request ID was received, and if so, will ignore the second
155505// request. This prevents clients from accidentally creating duplicate
155506// commitments.
155507//
155508// The request ID must be a valid UUID with the exception that zero UUID
155509// is not supported (00000000-0000-0000-0000-000000000000).
155510func (c *TargetSslProxiesSetProxyHeaderCall) RequestId(requestId string) *TargetSslProxiesSetProxyHeaderCall {
155511	c.urlParams_.Set("requestId", requestId)
155512	return c
155513}
155514
155515// Fields allows partial responses to be retrieved. See
155516// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155517// for more information.
155518func (c *TargetSslProxiesSetProxyHeaderCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetProxyHeaderCall {
155519	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155520	return c
155521}
155522
155523// Context sets the context to be used in this call's Do method. Any
155524// pending HTTP request will be aborted if the provided context is
155525// canceled.
155526func (c *TargetSslProxiesSetProxyHeaderCall) Context(ctx context.Context) *TargetSslProxiesSetProxyHeaderCall {
155527	c.ctx_ = ctx
155528	return c
155529}
155530
155531// Header returns an http.Header that can be modified by the caller to
155532// add HTTP headers to the request.
155533func (c *TargetSslProxiesSetProxyHeaderCall) Header() http.Header {
155534	if c.header_ == nil {
155535		c.header_ = make(http.Header)
155536	}
155537	return c.header_
155538}
155539
155540func (c *TargetSslProxiesSetProxyHeaderCall) doRequest(alt string) (*http.Response, error) {
155541	reqHeaders := make(http.Header)
155542	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
155543	for k, v := range c.header_ {
155544		reqHeaders[k] = v
155545	}
155546	reqHeaders.Set("User-Agent", c.s.userAgent())
155547	var body io.Reader = nil
155548	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetproxyheaderrequest)
155549	if err != nil {
155550		return nil, err
155551	}
155552	reqHeaders.Set("Content-Type", "application/json")
155553	c.urlParams_.Set("alt", alt)
155554	c.urlParams_.Set("prettyPrint", "false")
155555	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader")
155556	urls += "?" + c.urlParams_.Encode()
155557	req, err := http.NewRequest("POST", urls, body)
155558	if err != nil {
155559		return nil, err
155560	}
155561	req.Header = reqHeaders
155562	googleapi.Expand(req.URL, map[string]string{
155563		"project":        c.project,
155564		"targetSslProxy": c.targetSslProxy,
155565	})
155566	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155567}
155568
155569// Do executes the "compute.targetSslProxies.setProxyHeader" call.
155570// Exactly one of *Operation or error will be non-nil. Any non-2xx
155571// status code is an error. Response headers are in either
155572// *Operation.ServerResponse.Header or (if a response was returned at
155573// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
155574// to check whether the returned error was because
155575// http.StatusNotModified was returned.
155576func (c *TargetSslProxiesSetProxyHeaderCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
155577	gensupport.SetOptions(c.urlParams_, opts...)
155578	res, err := c.doRequest("json")
155579	if res != nil && res.StatusCode == http.StatusNotModified {
155580		if res.Body != nil {
155581			res.Body.Close()
155582		}
155583		return nil, &googleapi.Error{
155584			Code:   res.StatusCode,
155585			Header: res.Header,
155586		}
155587	}
155588	if err != nil {
155589		return nil, err
155590	}
155591	defer googleapi.CloseBody(res)
155592	if err := googleapi.CheckResponse(res); err != nil {
155593		return nil, err
155594	}
155595	ret := &Operation{
155596		ServerResponse: googleapi.ServerResponse{
155597			Header:         res.Header,
155598			HTTPStatusCode: res.StatusCode,
155599		},
155600	}
155601	target := &ret
155602	if err := gensupport.DecodeResponse(target, res); err != nil {
155603		return nil, err
155604	}
155605	return ret, nil
155606	// {
155607	//   "description": "Changes the ProxyHeaderType for TargetSslProxy.",
155608	//   "httpMethod": "POST",
155609	//   "id": "compute.targetSslProxies.setProxyHeader",
155610	//   "parameterOrder": [
155611	//     "project",
155612	//     "targetSslProxy"
155613	//   ],
155614	//   "parameters": {
155615	//     "project": {
155616	//       "description": "Project ID for this request.",
155617	//       "location": "path",
155618	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155619	//       "required": true,
155620	//       "type": "string"
155621	//     },
155622	//     "requestId": {
155623	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
155624	//       "location": "query",
155625	//       "type": "string"
155626	//     },
155627	//     "targetSslProxy": {
155628	//       "description": "Name of the TargetSslProxy resource whose ProxyHeader is to be set.",
155629	//       "location": "path",
155630	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
155631	//       "required": true,
155632	//       "type": "string"
155633	//     }
155634	//   },
155635	//   "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader",
155636	//   "request": {
155637	//     "$ref": "TargetSslProxiesSetProxyHeaderRequest"
155638	//   },
155639	//   "response": {
155640	//     "$ref": "Operation"
155641	//   },
155642	//   "scopes": [
155643	//     "https://www.googleapis.com/auth/cloud-platform",
155644	//     "https://www.googleapis.com/auth/compute"
155645	//   ]
155646	// }
155647
155648}
155649
155650// method id "compute.targetSslProxies.setSslCertificates":
155651
155652type TargetSslProxiesSetSslCertificatesCall struct {
155653	s                                         *Service
155654	project                                   string
155655	targetSslProxy                            string
155656	targetsslproxiessetsslcertificatesrequest *TargetSslProxiesSetSslCertificatesRequest
155657	urlParams_                                gensupport.URLParams
155658	ctx_                                      context.Context
155659	header_                                   http.Header
155660}
155661
155662// SetSslCertificates: Changes SslCertificates for TargetSslProxy.
155663//
155664// - project: Project ID for this request.
155665// - targetSslProxy: Name of the TargetSslProxy resource whose
155666//   SslCertificate resource is to be set.
155667func (r *TargetSslProxiesService) SetSslCertificates(project string, targetSslProxy string, targetsslproxiessetsslcertificatesrequest *TargetSslProxiesSetSslCertificatesRequest) *TargetSslProxiesSetSslCertificatesCall {
155668	c := &TargetSslProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155669	c.project = project
155670	c.targetSslProxy = targetSslProxy
155671	c.targetsslproxiessetsslcertificatesrequest = targetsslproxiessetsslcertificatesrequest
155672	return c
155673}
155674
155675// RequestId sets the optional parameter "requestId": An optional
155676// request ID to identify requests. Specify a unique request ID so that
155677// if you must retry your request, the server will know to ignore the
155678// request if it has already been completed.
155679//
155680// For example, consider a situation where you make an initial request
155681// and the request times out. If you make the request again with the
155682// same request ID, the server can check if original operation with the
155683// same request ID was received, and if so, will ignore the second
155684// request. This prevents clients from accidentally creating duplicate
155685// commitments.
155686//
155687// The request ID must be a valid UUID with the exception that zero UUID
155688// is not supported (00000000-0000-0000-0000-000000000000).
155689func (c *TargetSslProxiesSetSslCertificatesCall) RequestId(requestId string) *TargetSslProxiesSetSslCertificatesCall {
155690	c.urlParams_.Set("requestId", requestId)
155691	return c
155692}
155693
155694// Fields allows partial responses to be retrieved. See
155695// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155696// for more information.
155697func (c *TargetSslProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetSslCertificatesCall {
155698	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155699	return c
155700}
155701
155702// Context sets the context to be used in this call's Do method. Any
155703// pending HTTP request will be aborted if the provided context is
155704// canceled.
155705func (c *TargetSslProxiesSetSslCertificatesCall) Context(ctx context.Context) *TargetSslProxiesSetSslCertificatesCall {
155706	c.ctx_ = ctx
155707	return c
155708}
155709
155710// Header returns an http.Header that can be modified by the caller to
155711// add HTTP headers to the request.
155712func (c *TargetSslProxiesSetSslCertificatesCall) Header() http.Header {
155713	if c.header_ == nil {
155714		c.header_ = make(http.Header)
155715	}
155716	return c.header_
155717}
155718
155719func (c *TargetSslProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
155720	reqHeaders := make(http.Header)
155721	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
155722	for k, v := range c.header_ {
155723		reqHeaders[k] = v
155724	}
155725	reqHeaders.Set("User-Agent", c.s.userAgent())
155726	var body io.Reader = nil
155727	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetsslcertificatesrequest)
155728	if err != nil {
155729		return nil, err
155730	}
155731	reqHeaders.Set("Content-Type", "application/json")
155732	c.urlParams_.Set("alt", alt)
155733	c.urlParams_.Set("prettyPrint", "false")
155734	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates")
155735	urls += "?" + c.urlParams_.Encode()
155736	req, err := http.NewRequest("POST", urls, body)
155737	if err != nil {
155738		return nil, err
155739	}
155740	req.Header = reqHeaders
155741	googleapi.Expand(req.URL, map[string]string{
155742		"project":        c.project,
155743		"targetSslProxy": c.targetSslProxy,
155744	})
155745	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155746}
155747
155748// Do executes the "compute.targetSslProxies.setSslCertificates" call.
155749// Exactly one of *Operation or error will be non-nil. Any non-2xx
155750// status code is an error. Response headers are in either
155751// *Operation.ServerResponse.Header or (if a response was returned at
155752// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
155753// to check whether the returned error was because
155754// http.StatusNotModified was returned.
155755func (c *TargetSslProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
155756	gensupport.SetOptions(c.urlParams_, opts...)
155757	res, err := c.doRequest("json")
155758	if res != nil && res.StatusCode == http.StatusNotModified {
155759		if res.Body != nil {
155760			res.Body.Close()
155761		}
155762		return nil, &googleapi.Error{
155763			Code:   res.StatusCode,
155764			Header: res.Header,
155765		}
155766	}
155767	if err != nil {
155768		return nil, err
155769	}
155770	defer googleapi.CloseBody(res)
155771	if err := googleapi.CheckResponse(res); err != nil {
155772		return nil, err
155773	}
155774	ret := &Operation{
155775		ServerResponse: googleapi.ServerResponse{
155776			Header:         res.Header,
155777			HTTPStatusCode: res.StatusCode,
155778		},
155779	}
155780	target := &ret
155781	if err := gensupport.DecodeResponse(target, res); err != nil {
155782		return nil, err
155783	}
155784	return ret, nil
155785	// {
155786	//   "description": "Changes SslCertificates for TargetSslProxy.",
155787	//   "httpMethod": "POST",
155788	//   "id": "compute.targetSslProxies.setSslCertificates",
155789	//   "parameterOrder": [
155790	//     "project",
155791	//     "targetSslProxy"
155792	//   ],
155793	//   "parameters": {
155794	//     "project": {
155795	//       "description": "Project ID for this request.",
155796	//       "location": "path",
155797	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155798	//       "required": true,
155799	//       "type": "string"
155800	//     },
155801	//     "requestId": {
155802	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
155803	//       "location": "query",
155804	//       "type": "string"
155805	//     },
155806	//     "targetSslProxy": {
155807	//       "description": "Name of the TargetSslProxy resource whose SslCertificate resource is to be set.",
155808	//       "location": "path",
155809	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
155810	//       "required": true,
155811	//       "type": "string"
155812	//     }
155813	//   },
155814	//   "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates",
155815	//   "request": {
155816	//     "$ref": "TargetSslProxiesSetSslCertificatesRequest"
155817	//   },
155818	//   "response": {
155819	//     "$ref": "Operation"
155820	//   },
155821	//   "scopes": [
155822	//     "https://www.googleapis.com/auth/cloud-platform",
155823	//     "https://www.googleapis.com/auth/compute"
155824	//   ]
155825	// }
155826
155827}
155828
155829// method id "compute.targetSslProxies.setSslPolicy":
155830
155831type TargetSslProxiesSetSslPolicyCall struct {
155832	s                  *Service
155833	project            string
155834	targetSslProxy     string
155835	sslpolicyreference *SslPolicyReference
155836	urlParams_         gensupport.URLParams
155837	ctx_               context.Context
155838	header_            http.Header
155839}
155840
155841// SetSslPolicy: Sets the SSL policy for TargetSslProxy. The SSL policy
155842// specifies the server-side support for SSL features. This affects
155843// connections between clients and the SSL proxy load balancer. They do
155844// not affect the connection between the load balancer and the backends.
155845//
155846// - project: Project ID for this request.
155847// - targetSslProxy: Name of the TargetSslProxy resource whose SSL
155848//   policy is to be set. The name must be 1-63 characters long, and
155849//   comply with RFC1035.
155850func (r *TargetSslProxiesService) SetSslPolicy(project string, targetSslProxy string, sslpolicyreference *SslPolicyReference) *TargetSslProxiesSetSslPolicyCall {
155851	c := &TargetSslProxiesSetSslPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155852	c.project = project
155853	c.targetSslProxy = targetSslProxy
155854	c.sslpolicyreference = sslpolicyreference
155855	return c
155856}
155857
155858// RequestId sets the optional parameter "requestId": An optional
155859// request ID to identify requests. Specify a unique request ID so that
155860// if you must retry your request, the server will know to ignore the
155861// request if it has already been completed.
155862//
155863// For example, consider a situation where you make an initial request
155864// and the request times out. If you make the request again with the
155865// same request ID, the server can check if original operation with the
155866// same request ID was received, and if so, will ignore the second
155867// request. This prevents clients from accidentally creating duplicate
155868// commitments.
155869//
155870// The request ID must be a valid UUID with the exception that zero UUID
155871// is not supported (00000000-0000-0000-0000-000000000000).
155872func (c *TargetSslProxiesSetSslPolicyCall) RequestId(requestId string) *TargetSslProxiesSetSslPolicyCall {
155873	c.urlParams_.Set("requestId", requestId)
155874	return c
155875}
155876
155877// Fields allows partial responses to be retrieved. See
155878// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155879// for more information.
155880func (c *TargetSslProxiesSetSslPolicyCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetSslPolicyCall {
155881	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155882	return c
155883}
155884
155885// Context sets the context to be used in this call's Do method. Any
155886// pending HTTP request will be aborted if the provided context is
155887// canceled.
155888func (c *TargetSslProxiesSetSslPolicyCall) Context(ctx context.Context) *TargetSslProxiesSetSslPolicyCall {
155889	c.ctx_ = ctx
155890	return c
155891}
155892
155893// Header returns an http.Header that can be modified by the caller to
155894// add HTTP headers to the request.
155895func (c *TargetSslProxiesSetSslPolicyCall) Header() http.Header {
155896	if c.header_ == nil {
155897		c.header_ = make(http.Header)
155898	}
155899	return c.header_
155900}
155901
155902func (c *TargetSslProxiesSetSslPolicyCall) doRequest(alt string) (*http.Response, error) {
155903	reqHeaders := make(http.Header)
155904	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
155905	for k, v := range c.header_ {
155906		reqHeaders[k] = v
155907	}
155908	reqHeaders.Set("User-Agent", c.s.userAgent())
155909	var body io.Reader = nil
155910	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicyreference)
155911	if err != nil {
155912		return nil, err
155913	}
155914	reqHeaders.Set("Content-Type", "application/json")
155915	c.urlParams_.Set("alt", alt)
155916	c.urlParams_.Set("prettyPrint", "false")
155917	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy")
155918	urls += "?" + c.urlParams_.Encode()
155919	req, err := http.NewRequest("POST", urls, body)
155920	if err != nil {
155921		return nil, err
155922	}
155923	req.Header = reqHeaders
155924	googleapi.Expand(req.URL, map[string]string{
155925		"project":        c.project,
155926		"targetSslProxy": c.targetSslProxy,
155927	})
155928	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155929}
155930
155931// Do executes the "compute.targetSslProxies.setSslPolicy" call.
155932// Exactly one of *Operation or error will be non-nil. Any non-2xx
155933// status code is an error. Response headers are in either
155934// *Operation.ServerResponse.Header or (if a response was returned at
155935// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
155936// to check whether the returned error was because
155937// http.StatusNotModified was returned.
155938func (c *TargetSslProxiesSetSslPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
155939	gensupport.SetOptions(c.urlParams_, opts...)
155940	res, err := c.doRequest("json")
155941	if res != nil && res.StatusCode == http.StatusNotModified {
155942		if res.Body != nil {
155943			res.Body.Close()
155944		}
155945		return nil, &googleapi.Error{
155946			Code:   res.StatusCode,
155947			Header: res.Header,
155948		}
155949	}
155950	if err != nil {
155951		return nil, err
155952	}
155953	defer googleapi.CloseBody(res)
155954	if err := googleapi.CheckResponse(res); err != nil {
155955		return nil, err
155956	}
155957	ret := &Operation{
155958		ServerResponse: googleapi.ServerResponse{
155959			Header:         res.Header,
155960			HTTPStatusCode: res.StatusCode,
155961		},
155962	}
155963	target := &ret
155964	if err := gensupport.DecodeResponse(target, res); err != nil {
155965		return nil, err
155966	}
155967	return ret, nil
155968	// {
155969	//   "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.",
155970	//   "httpMethod": "POST",
155971	//   "id": "compute.targetSslProxies.setSslPolicy",
155972	//   "parameterOrder": [
155973	//     "project",
155974	//     "targetSslProxy"
155975	//   ],
155976	//   "parameters": {
155977	//     "project": {
155978	//       "description": "Project ID for this request.",
155979	//       "location": "path",
155980	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155981	//       "required": true,
155982	//       "type": "string"
155983	//     },
155984	//     "requestId": {
155985	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
155986	//       "location": "query",
155987	//       "type": "string"
155988	//     },
155989	//     "targetSslProxy": {
155990	//       "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.",
155991	//       "location": "path",
155992	//       "required": true,
155993	//       "type": "string"
155994	//     }
155995	//   },
155996	//   "path": "projects/{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy",
155997	//   "request": {
155998	//     "$ref": "SslPolicyReference"
155999	//   },
156000	//   "response": {
156001	//     "$ref": "Operation"
156002	//   },
156003	//   "scopes": [
156004	//     "https://www.googleapis.com/auth/cloud-platform",
156005	//     "https://www.googleapis.com/auth/compute"
156006	//   ]
156007	// }
156008
156009}
156010
156011// method id "compute.targetTcpProxies.delete":
156012
156013type TargetTcpProxiesDeleteCall struct {
156014	s              *Service
156015	project        string
156016	targetTcpProxy string
156017	urlParams_     gensupport.URLParams
156018	ctx_           context.Context
156019	header_        http.Header
156020}
156021
156022// Delete: Deletes the specified TargetTcpProxy resource.
156023//
156024// - project: Project ID for this request.
156025// - targetTcpProxy: Name of the TargetTcpProxy resource to delete.
156026func (r *TargetTcpProxiesService) Delete(project string, targetTcpProxy string) *TargetTcpProxiesDeleteCall {
156027	c := &TargetTcpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156028	c.project = project
156029	c.targetTcpProxy = targetTcpProxy
156030	return c
156031}
156032
156033// RequestId sets the optional parameter "requestId": An optional
156034// request ID to identify requests. Specify a unique request ID so that
156035// if you must retry your request, the server will know to ignore the
156036// request if it has already been completed.
156037//
156038// For example, consider a situation where you make an initial request
156039// and the request times out. If you make the request again with the
156040// same request ID, the server can check if original operation with the
156041// same request ID was received, and if so, will ignore the second
156042// request. This prevents clients from accidentally creating duplicate
156043// commitments.
156044//
156045// The request ID must be a valid UUID with the exception that zero UUID
156046// is not supported (00000000-0000-0000-0000-000000000000).
156047func (c *TargetTcpProxiesDeleteCall) RequestId(requestId string) *TargetTcpProxiesDeleteCall {
156048	c.urlParams_.Set("requestId", requestId)
156049	return c
156050}
156051
156052// Fields allows partial responses to be retrieved. See
156053// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156054// for more information.
156055func (c *TargetTcpProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetTcpProxiesDeleteCall {
156056	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156057	return c
156058}
156059
156060// Context sets the context to be used in this call's Do method. Any
156061// pending HTTP request will be aborted if the provided context is
156062// canceled.
156063func (c *TargetTcpProxiesDeleteCall) Context(ctx context.Context) *TargetTcpProxiesDeleteCall {
156064	c.ctx_ = ctx
156065	return c
156066}
156067
156068// Header returns an http.Header that can be modified by the caller to
156069// add HTTP headers to the request.
156070func (c *TargetTcpProxiesDeleteCall) Header() http.Header {
156071	if c.header_ == nil {
156072		c.header_ = make(http.Header)
156073	}
156074	return c.header_
156075}
156076
156077func (c *TargetTcpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
156078	reqHeaders := make(http.Header)
156079	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
156080	for k, v := range c.header_ {
156081		reqHeaders[k] = v
156082	}
156083	reqHeaders.Set("User-Agent", c.s.userAgent())
156084	var body io.Reader = nil
156085	c.urlParams_.Set("alt", alt)
156086	c.urlParams_.Set("prettyPrint", "false")
156087	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies/{targetTcpProxy}")
156088	urls += "?" + c.urlParams_.Encode()
156089	req, err := http.NewRequest("DELETE", urls, body)
156090	if err != nil {
156091		return nil, err
156092	}
156093	req.Header = reqHeaders
156094	googleapi.Expand(req.URL, map[string]string{
156095		"project":        c.project,
156096		"targetTcpProxy": c.targetTcpProxy,
156097	})
156098	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156099}
156100
156101// Do executes the "compute.targetTcpProxies.delete" call.
156102// Exactly one of *Operation or error will be non-nil. Any non-2xx
156103// status code is an error. Response headers are in either
156104// *Operation.ServerResponse.Header or (if a response was returned at
156105// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
156106// to check whether the returned error was because
156107// http.StatusNotModified was returned.
156108func (c *TargetTcpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
156109	gensupport.SetOptions(c.urlParams_, opts...)
156110	res, err := c.doRequest("json")
156111	if res != nil && res.StatusCode == http.StatusNotModified {
156112		if res.Body != nil {
156113			res.Body.Close()
156114		}
156115		return nil, &googleapi.Error{
156116			Code:   res.StatusCode,
156117			Header: res.Header,
156118		}
156119	}
156120	if err != nil {
156121		return nil, err
156122	}
156123	defer googleapi.CloseBody(res)
156124	if err := googleapi.CheckResponse(res); err != nil {
156125		return nil, err
156126	}
156127	ret := &Operation{
156128		ServerResponse: googleapi.ServerResponse{
156129			Header:         res.Header,
156130			HTTPStatusCode: res.StatusCode,
156131		},
156132	}
156133	target := &ret
156134	if err := gensupport.DecodeResponse(target, res); err != nil {
156135		return nil, err
156136	}
156137	return ret, nil
156138	// {
156139	//   "description": "Deletes the specified TargetTcpProxy resource.",
156140	//   "httpMethod": "DELETE",
156141	//   "id": "compute.targetTcpProxies.delete",
156142	//   "parameterOrder": [
156143	//     "project",
156144	//     "targetTcpProxy"
156145	//   ],
156146	//   "parameters": {
156147	//     "project": {
156148	//       "description": "Project ID for this request.",
156149	//       "location": "path",
156150	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156151	//       "required": true,
156152	//       "type": "string"
156153	//     },
156154	//     "requestId": {
156155	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
156156	//       "location": "query",
156157	//       "type": "string"
156158	//     },
156159	//     "targetTcpProxy": {
156160	//       "description": "Name of the TargetTcpProxy resource to delete.",
156161	//       "location": "path",
156162	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
156163	//       "required": true,
156164	//       "type": "string"
156165	//     }
156166	//   },
156167	//   "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}",
156168	//   "response": {
156169	//     "$ref": "Operation"
156170	//   },
156171	//   "scopes": [
156172	//     "https://www.googleapis.com/auth/cloud-platform",
156173	//     "https://www.googleapis.com/auth/compute"
156174	//   ]
156175	// }
156176
156177}
156178
156179// method id "compute.targetTcpProxies.get":
156180
156181type TargetTcpProxiesGetCall struct {
156182	s              *Service
156183	project        string
156184	targetTcpProxy string
156185	urlParams_     gensupport.URLParams
156186	ifNoneMatch_   string
156187	ctx_           context.Context
156188	header_        http.Header
156189}
156190
156191// Get: Returns the specified TargetTcpProxy resource. Gets a list of
156192// available target TCP proxies by making a list() request.
156193//
156194// - project: Project ID for this request.
156195// - targetTcpProxy: Name of the TargetTcpProxy resource to return.
156196func (r *TargetTcpProxiesService) Get(project string, targetTcpProxy string) *TargetTcpProxiesGetCall {
156197	c := &TargetTcpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156198	c.project = project
156199	c.targetTcpProxy = targetTcpProxy
156200	return c
156201}
156202
156203// Fields allows partial responses to be retrieved. See
156204// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156205// for more information.
156206func (c *TargetTcpProxiesGetCall) Fields(s ...googleapi.Field) *TargetTcpProxiesGetCall {
156207	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156208	return c
156209}
156210
156211// IfNoneMatch sets the optional parameter which makes the operation
156212// fail if the object's ETag matches the given value. This is useful for
156213// getting updates only after the object has changed since the last
156214// request. Use googleapi.IsNotModified to check whether the response
156215// error from Do is the result of In-None-Match.
156216func (c *TargetTcpProxiesGetCall) IfNoneMatch(entityTag string) *TargetTcpProxiesGetCall {
156217	c.ifNoneMatch_ = entityTag
156218	return c
156219}
156220
156221// Context sets the context to be used in this call's Do method. Any
156222// pending HTTP request will be aborted if the provided context is
156223// canceled.
156224func (c *TargetTcpProxiesGetCall) Context(ctx context.Context) *TargetTcpProxiesGetCall {
156225	c.ctx_ = ctx
156226	return c
156227}
156228
156229// Header returns an http.Header that can be modified by the caller to
156230// add HTTP headers to the request.
156231func (c *TargetTcpProxiesGetCall) Header() http.Header {
156232	if c.header_ == nil {
156233		c.header_ = make(http.Header)
156234	}
156235	return c.header_
156236}
156237
156238func (c *TargetTcpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
156239	reqHeaders := make(http.Header)
156240	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
156241	for k, v := range c.header_ {
156242		reqHeaders[k] = v
156243	}
156244	reqHeaders.Set("User-Agent", c.s.userAgent())
156245	if c.ifNoneMatch_ != "" {
156246		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
156247	}
156248	var body io.Reader = nil
156249	c.urlParams_.Set("alt", alt)
156250	c.urlParams_.Set("prettyPrint", "false")
156251	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies/{targetTcpProxy}")
156252	urls += "?" + c.urlParams_.Encode()
156253	req, err := http.NewRequest("GET", urls, body)
156254	if err != nil {
156255		return nil, err
156256	}
156257	req.Header = reqHeaders
156258	googleapi.Expand(req.URL, map[string]string{
156259		"project":        c.project,
156260		"targetTcpProxy": c.targetTcpProxy,
156261	})
156262	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156263}
156264
156265// Do executes the "compute.targetTcpProxies.get" call.
156266// Exactly one of *TargetTcpProxy or error will be non-nil. Any non-2xx
156267// status code is an error. Response headers are in either
156268// *TargetTcpProxy.ServerResponse.Header or (if a response was returned
156269// at all) in error.(*googleapi.Error).Header. Use
156270// googleapi.IsNotModified to check whether the returned error was
156271// because http.StatusNotModified was returned.
156272func (c *TargetTcpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxy, error) {
156273	gensupport.SetOptions(c.urlParams_, opts...)
156274	res, err := c.doRequest("json")
156275	if res != nil && res.StatusCode == http.StatusNotModified {
156276		if res.Body != nil {
156277			res.Body.Close()
156278		}
156279		return nil, &googleapi.Error{
156280			Code:   res.StatusCode,
156281			Header: res.Header,
156282		}
156283	}
156284	if err != nil {
156285		return nil, err
156286	}
156287	defer googleapi.CloseBody(res)
156288	if err := googleapi.CheckResponse(res); err != nil {
156289		return nil, err
156290	}
156291	ret := &TargetTcpProxy{
156292		ServerResponse: googleapi.ServerResponse{
156293			Header:         res.Header,
156294			HTTPStatusCode: res.StatusCode,
156295		},
156296	}
156297	target := &ret
156298	if err := gensupport.DecodeResponse(target, res); err != nil {
156299		return nil, err
156300	}
156301	return ret, nil
156302	// {
156303	//   "description": "Returns the specified TargetTcpProxy resource. Gets a list of available target TCP proxies by making a list() request.",
156304	//   "httpMethod": "GET",
156305	//   "id": "compute.targetTcpProxies.get",
156306	//   "parameterOrder": [
156307	//     "project",
156308	//     "targetTcpProxy"
156309	//   ],
156310	//   "parameters": {
156311	//     "project": {
156312	//       "description": "Project ID for this request.",
156313	//       "location": "path",
156314	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156315	//       "required": true,
156316	//       "type": "string"
156317	//     },
156318	//     "targetTcpProxy": {
156319	//       "description": "Name of the TargetTcpProxy resource to return.",
156320	//       "location": "path",
156321	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
156322	//       "required": true,
156323	//       "type": "string"
156324	//     }
156325	//   },
156326	//   "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}",
156327	//   "response": {
156328	//     "$ref": "TargetTcpProxy"
156329	//   },
156330	//   "scopes": [
156331	//     "https://www.googleapis.com/auth/cloud-platform",
156332	//     "https://www.googleapis.com/auth/compute",
156333	//     "https://www.googleapis.com/auth/compute.readonly"
156334	//   ]
156335	// }
156336
156337}
156338
156339// method id "compute.targetTcpProxies.insert":
156340
156341type TargetTcpProxiesInsertCall struct {
156342	s              *Service
156343	project        string
156344	targettcpproxy *TargetTcpProxy
156345	urlParams_     gensupport.URLParams
156346	ctx_           context.Context
156347	header_        http.Header
156348}
156349
156350// Insert: Creates a TargetTcpProxy resource in the specified project
156351// using the data included in the request.
156352//
156353// - project: Project ID for this request.
156354func (r *TargetTcpProxiesService) Insert(project string, targettcpproxy *TargetTcpProxy) *TargetTcpProxiesInsertCall {
156355	c := &TargetTcpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156356	c.project = project
156357	c.targettcpproxy = targettcpproxy
156358	return c
156359}
156360
156361// RequestId sets the optional parameter "requestId": An optional
156362// request ID to identify requests. Specify a unique request ID so that
156363// if you must retry your request, the server will know to ignore the
156364// request if it has already been completed.
156365//
156366// For example, consider a situation where you make an initial request
156367// and the request times out. If you make the request again with the
156368// same request ID, the server can check if original operation with the
156369// same request ID was received, and if so, will ignore the second
156370// request. This prevents clients from accidentally creating duplicate
156371// commitments.
156372//
156373// The request ID must be a valid UUID with the exception that zero UUID
156374// is not supported (00000000-0000-0000-0000-000000000000).
156375func (c *TargetTcpProxiesInsertCall) RequestId(requestId string) *TargetTcpProxiesInsertCall {
156376	c.urlParams_.Set("requestId", requestId)
156377	return c
156378}
156379
156380// Fields allows partial responses to be retrieved. See
156381// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156382// for more information.
156383func (c *TargetTcpProxiesInsertCall) Fields(s ...googleapi.Field) *TargetTcpProxiesInsertCall {
156384	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156385	return c
156386}
156387
156388// Context sets the context to be used in this call's Do method. Any
156389// pending HTTP request will be aborted if the provided context is
156390// canceled.
156391func (c *TargetTcpProxiesInsertCall) Context(ctx context.Context) *TargetTcpProxiesInsertCall {
156392	c.ctx_ = ctx
156393	return c
156394}
156395
156396// Header returns an http.Header that can be modified by the caller to
156397// add HTTP headers to the request.
156398func (c *TargetTcpProxiesInsertCall) Header() http.Header {
156399	if c.header_ == nil {
156400		c.header_ = make(http.Header)
156401	}
156402	return c.header_
156403}
156404
156405func (c *TargetTcpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
156406	reqHeaders := make(http.Header)
156407	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
156408	for k, v := range c.header_ {
156409		reqHeaders[k] = v
156410	}
156411	reqHeaders.Set("User-Agent", c.s.userAgent())
156412	var body io.Reader = nil
156413	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxy)
156414	if err != nil {
156415		return nil, err
156416	}
156417	reqHeaders.Set("Content-Type", "application/json")
156418	c.urlParams_.Set("alt", alt)
156419	c.urlParams_.Set("prettyPrint", "false")
156420	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies")
156421	urls += "?" + c.urlParams_.Encode()
156422	req, err := http.NewRequest("POST", urls, body)
156423	if err != nil {
156424		return nil, err
156425	}
156426	req.Header = reqHeaders
156427	googleapi.Expand(req.URL, map[string]string{
156428		"project": c.project,
156429	})
156430	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156431}
156432
156433// Do executes the "compute.targetTcpProxies.insert" call.
156434// Exactly one of *Operation or error will be non-nil. Any non-2xx
156435// status code is an error. Response headers are in either
156436// *Operation.ServerResponse.Header or (if a response was returned at
156437// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
156438// to check whether the returned error was because
156439// http.StatusNotModified was returned.
156440func (c *TargetTcpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
156441	gensupport.SetOptions(c.urlParams_, opts...)
156442	res, err := c.doRequest("json")
156443	if res != nil && res.StatusCode == http.StatusNotModified {
156444		if res.Body != nil {
156445			res.Body.Close()
156446		}
156447		return nil, &googleapi.Error{
156448			Code:   res.StatusCode,
156449			Header: res.Header,
156450		}
156451	}
156452	if err != nil {
156453		return nil, err
156454	}
156455	defer googleapi.CloseBody(res)
156456	if err := googleapi.CheckResponse(res); err != nil {
156457		return nil, err
156458	}
156459	ret := &Operation{
156460		ServerResponse: googleapi.ServerResponse{
156461			Header:         res.Header,
156462			HTTPStatusCode: res.StatusCode,
156463		},
156464	}
156465	target := &ret
156466	if err := gensupport.DecodeResponse(target, res); err != nil {
156467		return nil, err
156468	}
156469	return ret, nil
156470	// {
156471	//   "description": "Creates a TargetTcpProxy resource in the specified project using the data included in the request.",
156472	//   "httpMethod": "POST",
156473	//   "id": "compute.targetTcpProxies.insert",
156474	//   "parameterOrder": [
156475	//     "project"
156476	//   ],
156477	//   "parameters": {
156478	//     "project": {
156479	//       "description": "Project ID for this request.",
156480	//       "location": "path",
156481	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156482	//       "required": true,
156483	//       "type": "string"
156484	//     },
156485	//     "requestId": {
156486	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
156487	//       "location": "query",
156488	//       "type": "string"
156489	//     }
156490	//   },
156491	//   "path": "projects/{project}/global/targetTcpProxies",
156492	//   "request": {
156493	//     "$ref": "TargetTcpProxy"
156494	//   },
156495	//   "response": {
156496	//     "$ref": "Operation"
156497	//   },
156498	//   "scopes": [
156499	//     "https://www.googleapis.com/auth/cloud-platform",
156500	//     "https://www.googleapis.com/auth/compute"
156501	//   ]
156502	// }
156503
156504}
156505
156506// method id "compute.targetTcpProxies.list":
156507
156508type TargetTcpProxiesListCall struct {
156509	s            *Service
156510	project      string
156511	urlParams_   gensupport.URLParams
156512	ifNoneMatch_ string
156513	ctx_         context.Context
156514	header_      http.Header
156515}
156516
156517// List: Retrieves the list of TargetTcpProxy resources available to the
156518// specified project.
156519//
156520// - project: Project ID for this request.
156521func (r *TargetTcpProxiesService) List(project string) *TargetTcpProxiesListCall {
156522	c := &TargetTcpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156523	c.project = project
156524	return c
156525}
156526
156527// Filter sets the optional parameter "filter": A filter expression that
156528// filters resources listed in the response. The expression must specify
156529// the field name, a comparison operator, and the value that you want to
156530// use for filtering. The value must be a string, a number, or a
156531// boolean. The comparison operator must be either `=`, `!=`, `>`, or
156532// `<`.
156533//
156534// For example, if you are filtering Compute Engine instances, you can
156535// exclude instances named `example-instance` by specifying `name !=
156536// example-instance`.
156537//
156538// You can also filter nested fields. For example, you could specify
156539// `scheduling.automaticRestart = false` to include instances only if
156540// they are not scheduled for automatic restarts. You can use filtering
156541// on nested fields to filter based on resource labels.
156542//
156543// To filter on multiple expressions, provide each separate expression
156544// within parentheses. For example: ``` (scheduling.automaticRestart =
156545// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
156546// is an `AND` expression. However, you can include `AND` and `OR`
156547// expressions explicitly. For example: ``` (cpuPlatform = "Intel
156548// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
156549// (scheduling.automaticRestart = true) ```
156550func (c *TargetTcpProxiesListCall) Filter(filter string) *TargetTcpProxiesListCall {
156551	c.urlParams_.Set("filter", filter)
156552	return c
156553}
156554
156555// MaxResults sets the optional parameter "maxResults": The maximum
156556// number of results per page that should be returned. If the number of
156557// available results is larger than `maxResults`, Compute Engine returns
156558// a `nextPageToken` that can be used to get the next page of results in
156559// subsequent list requests. Acceptable values are `0` to `500`,
156560// inclusive. (Default: `500`)
156561func (c *TargetTcpProxiesListCall) MaxResults(maxResults int64) *TargetTcpProxiesListCall {
156562	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
156563	return c
156564}
156565
156566// OrderBy sets the optional parameter "orderBy": Sorts list results by
156567// a certain order. By default, results are returned in alphanumerical
156568// order based on the resource name.
156569//
156570// You can also sort results in descending order based on the creation
156571// timestamp using `orderBy="creationTimestamp desc". This sorts
156572// results based on the `creationTimestamp` field in reverse
156573// chronological order (newest result first). Use this to sort resources
156574// like operations so that the newest operation is returned
156575// first.
156576//
156577// Currently, only sorting by `name` or `creationTimestamp desc` is
156578// supported.
156579func (c *TargetTcpProxiesListCall) OrderBy(orderBy string) *TargetTcpProxiesListCall {
156580	c.urlParams_.Set("orderBy", orderBy)
156581	return c
156582}
156583
156584// PageToken sets the optional parameter "pageToken": Specifies a page
156585// token to use. Set `pageToken` to the `nextPageToken` returned by a
156586// previous list request to get the next page of results.
156587func (c *TargetTcpProxiesListCall) PageToken(pageToken string) *TargetTcpProxiesListCall {
156588	c.urlParams_.Set("pageToken", pageToken)
156589	return c
156590}
156591
156592// ReturnPartialSuccess sets the optional parameter
156593// "returnPartialSuccess": Opt-in for partial success behavior which
156594// provides partial results in case of failure. The default value is
156595// false.
156596func (c *TargetTcpProxiesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetTcpProxiesListCall {
156597	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
156598	return c
156599}
156600
156601// Fields allows partial responses to be retrieved. See
156602// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156603// for more information.
156604func (c *TargetTcpProxiesListCall) Fields(s ...googleapi.Field) *TargetTcpProxiesListCall {
156605	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156606	return c
156607}
156608
156609// IfNoneMatch sets the optional parameter which makes the operation
156610// fail if the object's ETag matches the given value. This is useful for
156611// getting updates only after the object has changed since the last
156612// request. Use googleapi.IsNotModified to check whether the response
156613// error from Do is the result of In-None-Match.
156614func (c *TargetTcpProxiesListCall) IfNoneMatch(entityTag string) *TargetTcpProxiesListCall {
156615	c.ifNoneMatch_ = entityTag
156616	return c
156617}
156618
156619// Context sets the context to be used in this call's Do method. Any
156620// pending HTTP request will be aborted if the provided context is
156621// canceled.
156622func (c *TargetTcpProxiesListCall) Context(ctx context.Context) *TargetTcpProxiesListCall {
156623	c.ctx_ = ctx
156624	return c
156625}
156626
156627// Header returns an http.Header that can be modified by the caller to
156628// add HTTP headers to the request.
156629func (c *TargetTcpProxiesListCall) Header() http.Header {
156630	if c.header_ == nil {
156631		c.header_ = make(http.Header)
156632	}
156633	return c.header_
156634}
156635
156636func (c *TargetTcpProxiesListCall) doRequest(alt string) (*http.Response, error) {
156637	reqHeaders := make(http.Header)
156638	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
156639	for k, v := range c.header_ {
156640		reqHeaders[k] = v
156641	}
156642	reqHeaders.Set("User-Agent", c.s.userAgent())
156643	if c.ifNoneMatch_ != "" {
156644		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
156645	}
156646	var body io.Reader = nil
156647	c.urlParams_.Set("alt", alt)
156648	c.urlParams_.Set("prettyPrint", "false")
156649	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies")
156650	urls += "?" + c.urlParams_.Encode()
156651	req, err := http.NewRequest("GET", urls, body)
156652	if err != nil {
156653		return nil, err
156654	}
156655	req.Header = reqHeaders
156656	googleapi.Expand(req.URL, map[string]string{
156657		"project": c.project,
156658	})
156659	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156660}
156661
156662// Do executes the "compute.targetTcpProxies.list" call.
156663// Exactly one of *TargetTcpProxyList or error will be non-nil. Any
156664// non-2xx status code is an error. Response headers are in either
156665// *TargetTcpProxyList.ServerResponse.Header or (if a response was
156666// returned at all) in error.(*googleapi.Error).Header. Use
156667// googleapi.IsNotModified to check whether the returned error was
156668// because http.StatusNotModified was returned.
156669func (c *TargetTcpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxyList, error) {
156670	gensupport.SetOptions(c.urlParams_, opts...)
156671	res, err := c.doRequest("json")
156672	if res != nil && res.StatusCode == http.StatusNotModified {
156673		if res.Body != nil {
156674			res.Body.Close()
156675		}
156676		return nil, &googleapi.Error{
156677			Code:   res.StatusCode,
156678			Header: res.Header,
156679		}
156680	}
156681	if err != nil {
156682		return nil, err
156683	}
156684	defer googleapi.CloseBody(res)
156685	if err := googleapi.CheckResponse(res); err != nil {
156686		return nil, err
156687	}
156688	ret := &TargetTcpProxyList{
156689		ServerResponse: googleapi.ServerResponse{
156690			Header:         res.Header,
156691			HTTPStatusCode: res.StatusCode,
156692		},
156693	}
156694	target := &ret
156695	if err := gensupport.DecodeResponse(target, res); err != nil {
156696		return nil, err
156697	}
156698	return ret, nil
156699	// {
156700	//   "description": "Retrieves the list of TargetTcpProxy resources available to the specified project.",
156701	//   "httpMethod": "GET",
156702	//   "id": "compute.targetTcpProxies.list",
156703	//   "parameterOrder": [
156704	//     "project"
156705	//   ],
156706	//   "parameters": {
156707	//     "filter": {
156708	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
156709	//       "location": "query",
156710	//       "type": "string"
156711	//     },
156712	//     "maxResults": {
156713	//       "default": "500",
156714	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
156715	//       "format": "uint32",
156716	//       "location": "query",
156717	//       "minimum": "0",
156718	//       "type": "integer"
156719	//     },
156720	//     "orderBy": {
156721	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
156722	//       "location": "query",
156723	//       "type": "string"
156724	//     },
156725	//     "pageToken": {
156726	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
156727	//       "location": "query",
156728	//       "type": "string"
156729	//     },
156730	//     "project": {
156731	//       "description": "Project ID for this request.",
156732	//       "location": "path",
156733	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156734	//       "required": true,
156735	//       "type": "string"
156736	//     },
156737	//     "returnPartialSuccess": {
156738	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
156739	//       "location": "query",
156740	//       "type": "boolean"
156741	//     }
156742	//   },
156743	//   "path": "projects/{project}/global/targetTcpProxies",
156744	//   "response": {
156745	//     "$ref": "TargetTcpProxyList"
156746	//   },
156747	//   "scopes": [
156748	//     "https://www.googleapis.com/auth/cloud-platform",
156749	//     "https://www.googleapis.com/auth/compute",
156750	//     "https://www.googleapis.com/auth/compute.readonly"
156751	//   ]
156752	// }
156753
156754}
156755
156756// Pages invokes f for each page of results.
156757// A non-nil error returned from f will halt the iteration.
156758// The provided context supersedes any context provided to the Context method.
156759func (c *TargetTcpProxiesListCall) Pages(ctx context.Context, f func(*TargetTcpProxyList) error) error {
156760	c.ctx_ = ctx
156761	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
156762	for {
156763		x, err := c.Do()
156764		if err != nil {
156765			return err
156766		}
156767		if err := f(x); err != nil {
156768			return err
156769		}
156770		if x.NextPageToken == "" {
156771			return nil
156772		}
156773		c.PageToken(x.NextPageToken)
156774	}
156775}
156776
156777// method id "compute.targetTcpProxies.setBackendService":
156778
156779type TargetTcpProxiesSetBackendServiceCall struct {
156780	s                                        *Service
156781	project                                  string
156782	targetTcpProxy                           string
156783	targettcpproxiessetbackendservicerequest *TargetTcpProxiesSetBackendServiceRequest
156784	urlParams_                               gensupport.URLParams
156785	ctx_                                     context.Context
156786	header_                                  http.Header
156787}
156788
156789// SetBackendService: Changes the BackendService for TargetTcpProxy.
156790//
156791// - project: Project ID for this request.
156792// - targetTcpProxy: Name of the TargetTcpProxy resource whose
156793//   BackendService resource is to be set.
156794func (r *TargetTcpProxiesService) SetBackendService(project string, targetTcpProxy string, targettcpproxiessetbackendservicerequest *TargetTcpProxiesSetBackendServiceRequest) *TargetTcpProxiesSetBackendServiceCall {
156795	c := &TargetTcpProxiesSetBackendServiceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156796	c.project = project
156797	c.targetTcpProxy = targetTcpProxy
156798	c.targettcpproxiessetbackendservicerequest = targettcpproxiessetbackendservicerequest
156799	return c
156800}
156801
156802// RequestId sets the optional parameter "requestId": An optional
156803// request ID to identify requests. Specify a unique request ID so that
156804// if you must retry your request, the server will know to ignore the
156805// request if it has already been completed.
156806//
156807// For example, consider a situation where you make an initial request
156808// and the request times out. If you make the request again with the
156809// same request ID, the server can check if original operation with the
156810// same request ID was received, and if so, will ignore the second
156811// request. This prevents clients from accidentally creating duplicate
156812// commitments.
156813//
156814// The request ID must be a valid UUID with the exception that zero UUID
156815// is not supported (00000000-0000-0000-0000-000000000000).
156816func (c *TargetTcpProxiesSetBackendServiceCall) RequestId(requestId string) *TargetTcpProxiesSetBackendServiceCall {
156817	c.urlParams_.Set("requestId", requestId)
156818	return c
156819}
156820
156821// Fields allows partial responses to be retrieved. See
156822// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
156823// for more information.
156824func (c *TargetTcpProxiesSetBackendServiceCall) Fields(s ...googleapi.Field) *TargetTcpProxiesSetBackendServiceCall {
156825	c.urlParams_.Set("fields", googleapi.CombineFields(s))
156826	return c
156827}
156828
156829// Context sets the context to be used in this call's Do method. Any
156830// pending HTTP request will be aborted if the provided context is
156831// canceled.
156832func (c *TargetTcpProxiesSetBackendServiceCall) Context(ctx context.Context) *TargetTcpProxiesSetBackendServiceCall {
156833	c.ctx_ = ctx
156834	return c
156835}
156836
156837// Header returns an http.Header that can be modified by the caller to
156838// add HTTP headers to the request.
156839func (c *TargetTcpProxiesSetBackendServiceCall) Header() http.Header {
156840	if c.header_ == nil {
156841		c.header_ = make(http.Header)
156842	}
156843	return c.header_
156844}
156845
156846func (c *TargetTcpProxiesSetBackendServiceCall) doRequest(alt string) (*http.Response, error) {
156847	reqHeaders := make(http.Header)
156848	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
156849	for k, v := range c.header_ {
156850		reqHeaders[k] = v
156851	}
156852	reqHeaders.Set("User-Agent", c.s.userAgent())
156853	var body io.Reader = nil
156854	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxiessetbackendservicerequest)
156855	if err != nil {
156856		return nil, err
156857	}
156858	reqHeaders.Set("Content-Type", "application/json")
156859	c.urlParams_.Set("alt", alt)
156860	c.urlParams_.Set("prettyPrint", "false")
156861	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService")
156862	urls += "?" + c.urlParams_.Encode()
156863	req, err := http.NewRequest("POST", urls, body)
156864	if err != nil {
156865		return nil, err
156866	}
156867	req.Header = reqHeaders
156868	googleapi.Expand(req.URL, map[string]string{
156869		"project":        c.project,
156870		"targetTcpProxy": c.targetTcpProxy,
156871	})
156872	return gensupport.SendRequest(c.ctx_, c.s.client, req)
156873}
156874
156875// Do executes the "compute.targetTcpProxies.setBackendService" call.
156876// Exactly one of *Operation or error will be non-nil. Any non-2xx
156877// status code is an error. Response headers are in either
156878// *Operation.ServerResponse.Header or (if a response was returned at
156879// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
156880// to check whether the returned error was because
156881// http.StatusNotModified was returned.
156882func (c *TargetTcpProxiesSetBackendServiceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
156883	gensupport.SetOptions(c.urlParams_, opts...)
156884	res, err := c.doRequest("json")
156885	if res != nil && res.StatusCode == http.StatusNotModified {
156886		if res.Body != nil {
156887			res.Body.Close()
156888		}
156889		return nil, &googleapi.Error{
156890			Code:   res.StatusCode,
156891			Header: res.Header,
156892		}
156893	}
156894	if err != nil {
156895		return nil, err
156896	}
156897	defer googleapi.CloseBody(res)
156898	if err := googleapi.CheckResponse(res); err != nil {
156899		return nil, err
156900	}
156901	ret := &Operation{
156902		ServerResponse: googleapi.ServerResponse{
156903			Header:         res.Header,
156904			HTTPStatusCode: res.StatusCode,
156905		},
156906	}
156907	target := &ret
156908	if err := gensupport.DecodeResponse(target, res); err != nil {
156909		return nil, err
156910	}
156911	return ret, nil
156912	// {
156913	//   "description": "Changes the BackendService for TargetTcpProxy.",
156914	//   "httpMethod": "POST",
156915	//   "id": "compute.targetTcpProxies.setBackendService",
156916	//   "parameterOrder": [
156917	//     "project",
156918	//     "targetTcpProxy"
156919	//   ],
156920	//   "parameters": {
156921	//     "project": {
156922	//       "description": "Project ID for this request.",
156923	//       "location": "path",
156924	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
156925	//       "required": true,
156926	//       "type": "string"
156927	//     },
156928	//     "requestId": {
156929	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
156930	//       "location": "query",
156931	//       "type": "string"
156932	//     },
156933	//     "targetTcpProxy": {
156934	//       "description": "Name of the TargetTcpProxy resource whose BackendService resource is to be set.",
156935	//       "location": "path",
156936	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
156937	//       "required": true,
156938	//       "type": "string"
156939	//     }
156940	//   },
156941	//   "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService",
156942	//   "request": {
156943	//     "$ref": "TargetTcpProxiesSetBackendServiceRequest"
156944	//   },
156945	//   "response": {
156946	//     "$ref": "Operation"
156947	//   },
156948	//   "scopes": [
156949	//     "https://www.googleapis.com/auth/cloud-platform",
156950	//     "https://www.googleapis.com/auth/compute"
156951	//   ]
156952	// }
156953
156954}
156955
156956// method id "compute.targetTcpProxies.setProxyHeader":
156957
156958type TargetTcpProxiesSetProxyHeaderCall struct {
156959	s                                     *Service
156960	project                               string
156961	targetTcpProxy                        string
156962	targettcpproxiessetproxyheaderrequest *TargetTcpProxiesSetProxyHeaderRequest
156963	urlParams_                            gensupport.URLParams
156964	ctx_                                  context.Context
156965	header_                               http.Header
156966}
156967
156968// SetProxyHeader: Changes the ProxyHeaderType for TargetTcpProxy.
156969//
156970// - project: Project ID for this request.
156971// - targetTcpProxy: Name of the TargetTcpProxy resource whose
156972//   ProxyHeader is to be set.
156973func (r *TargetTcpProxiesService) SetProxyHeader(project string, targetTcpProxy string, targettcpproxiessetproxyheaderrequest *TargetTcpProxiesSetProxyHeaderRequest) *TargetTcpProxiesSetProxyHeaderCall {
156974	c := &TargetTcpProxiesSetProxyHeaderCall{s: r.s, urlParams_: make(gensupport.URLParams)}
156975	c.project = project
156976	c.targetTcpProxy = targetTcpProxy
156977	c.targettcpproxiessetproxyheaderrequest = targettcpproxiessetproxyheaderrequest
156978	return c
156979}
156980
156981// RequestId sets the optional parameter "requestId": An optional
156982// request ID to identify requests. Specify a unique request ID so that
156983// if you must retry your request, the server will know to ignore the
156984// request if it has already been completed.
156985//
156986// For example, consider a situation where you make an initial request
156987// and the request times out. If you make the request again with the
156988// same request ID, the server can check if original operation with the
156989// same request ID was received, and if so, will ignore the second
156990// request. This prevents clients from accidentally creating duplicate
156991// commitments.
156992//
156993// The request ID must be a valid UUID with the exception that zero UUID
156994// is not supported (00000000-0000-0000-0000-000000000000).
156995func (c *TargetTcpProxiesSetProxyHeaderCall) RequestId(requestId string) *TargetTcpProxiesSetProxyHeaderCall {
156996	c.urlParams_.Set("requestId", requestId)
156997	return c
156998}
156999
157000// Fields allows partial responses to be retrieved. See
157001// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157002// for more information.
157003func (c *TargetTcpProxiesSetProxyHeaderCall) Fields(s ...googleapi.Field) *TargetTcpProxiesSetProxyHeaderCall {
157004	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157005	return c
157006}
157007
157008// Context sets the context to be used in this call's Do method. Any
157009// pending HTTP request will be aborted if the provided context is
157010// canceled.
157011func (c *TargetTcpProxiesSetProxyHeaderCall) Context(ctx context.Context) *TargetTcpProxiesSetProxyHeaderCall {
157012	c.ctx_ = ctx
157013	return c
157014}
157015
157016// Header returns an http.Header that can be modified by the caller to
157017// add HTTP headers to the request.
157018func (c *TargetTcpProxiesSetProxyHeaderCall) Header() http.Header {
157019	if c.header_ == nil {
157020		c.header_ = make(http.Header)
157021	}
157022	return c.header_
157023}
157024
157025func (c *TargetTcpProxiesSetProxyHeaderCall) doRequest(alt string) (*http.Response, error) {
157026	reqHeaders := make(http.Header)
157027	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
157028	for k, v := range c.header_ {
157029		reqHeaders[k] = v
157030	}
157031	reqHeaders.Set("User-Agent", c.s.userAgent())
157032	var body io.Reader = nil
157033	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxiessetproxyheaderrequest)
157034	if err != nil {
157035		return nil, err
157036	}
157037	reqHeaders.Set("Content-Type", "application/json")
157038	c.urlParams_.Set("alt", alt)
157039	c.urlParams_.Set("prettyPrint", "false")
157040	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader")
157041	urls += "?" + c.urlParams_.Encode()
157042	req, err := http.NewRequest("POST", urls, body)
157043	if err != nil {
157044		return nil, err
157045	}
157046	req.Header = reqHeaders
157047	googleapi.Expand(req.URL, map[string]string{
157048		"project":        c.project,
157049		"targetTcpProxy": c.targetTcpProxy,
157050	})
157051	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157052}
157053
157054// Do executes the "compute.targetTcpProxies.setProxyHeader" call.
157055// Exactly one of *Operation or error will be non-nil. Any non-2xx
157056// status code is an error. Response headers are in either
157057// *Operation.ServerResponse.Header or (if a response was returned at
157058// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
157059// to check whether the returned error was because
157060// http.StatusNotModified was returned.
157061func (c *TargetTcpProxiesSetProxyHeaderCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
157062	gensupport.SetOptions(c.urlParams_, opts...)
157063	res, err := c.doRequest("json")
157064	if res != nil && res.StatusCode == http.StatusNotModified {
157065		if res.Body != nil {
157066			res.Body.Close()
157067		}
157068		return nil, &googleapi.Error{
157069			Code:   res.StatusCode,
157070			Header: res.Header,
157071		}
157072	}
157073	if err != nil {
157074		return nil, err
157075	}
157076	defer googleapi.CloseBody(res)
157077	if err := googleapi.CheckResponse(res); err != nil {
157078		return nil, err
157079	}
157080	ret := &Operation{
157081		ServerResponse: googleapi.ServerResponse{
157082			Header:         res.Header,
157083			HTTPStatusCode: res.StatusCode,
157084		},
157085	}
157086	target := &ret
157087	if err := gensupport.DecodeResponse(target, res); err != nil {
157088		return nil, err
157089	}
157090	return ret, nil
157091	// {
157092	//   "description": "Changes the ProxyHeaderType for TargetTcpProxy.",
157093	//   "httpMethod": "POST",
157094	//   "id": "compute.targetTcpProxies.setProxyHeader",
157095	//   "parameterOrder": [
157096	//     "project",
157097	//     "targetTcpProxy"
157098	//   ],
157099	//   "parameters": {
157100	//     "project": {
157101	//       "description": "Project ID for this request.",
157102	//       "location": "path",
157103	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157104	//       "required": true,
157105	//       "type": "string"
157106	//     },
157107	//     "requestId": {
157108	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
157109	//       "location": "query",
157110	//       "type": "string"
157111	//     },
157112	//     "targetTcpProxy": {
157113	//       "description": "Name of the TargetTcpProxy resource whose ProxyHeader is to be set.",
157114	//       "location": "path",
157115	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
157116	//       "required": true,
157117	//       "type": "string"
157118	//     }
157119	//   },
157120	//   "path": "projects/{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader",
157121	//   "request": {
157122	//     "$ref": "TargetTcpProxiesSetProxyHeaderRequest"
157123	//   },
157124	//   "response": {
157125	//     "$ref": "Operation"
157126	//   },
157127	//   "scopes": [
157128	//     "https://www.googleapis.com/auth/cloud-platform",
157129	//     "https://www.googleapis.com/auth/compute"
157130	//   ]
157131	// }
157132
157133}
157134
157135// method id "compute.targetVpnGateways.aggregatedList":
157136
157137type TargetVpnGatewaysAggregatedListCall struct {
157138	s            *Service
157139	project      string
157140	urlParams_   gensupport.URLParams
157141	ifNoneMatch_ string
157142	ctx_         context.Context
157143	header_      http.Header
157144}
157145
157146// AggregatedList: Retrieves an aggregated list of target VPN gateways.
157147//
157148// - project: Project ID for this request.
157149func (r *TargetVpnGatewaysService) AggregatedList(project string) *TargetVpnGatewaysAggregatedListCall {
157150	c := &TargetVpnGatewaysAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157151	c.project = project
157152	return c
157153}
157154
157155// Filter sets the optional parameter "filter": A filter expression that
157156// filters resources listed in the response. The expression must specify
157157// the field name, a comparison operator, and the value that you want to
157158// use for filtering. The value must be a string, a number, or a
157159// boolean. The comparison operator must be either `=`, `!=`, `>`, or
157160// `<`.
157161//
157162// For example, if you are filtering Compute Engine instances, you can
157163// exclude instances named `example-instance` by specifying `name !=
157164// example-instance`.
157165//
157166// You can also filter nested fields. For example, you could specify
157167// `scheduling.automaticRestart = false` to include instances only if
157168// they are not scheduled for automatic restarts. You can use filtering
157169// on nested fields to filter based on resource labels.
157170//
157171// To filter on multiple expressions, provide each separate expression
157172// within parentheses. For example: ``` (scheduling.automaticRestart =
157173// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
157174// is an `AND` expression. However, you can include `AND` and `OR`
157175// expressions explicitly. For example: ``` (cpuPlatform = "Intel
157176// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
157177// (scheduling.automaticRestart = true) ```
157178func (c *TargetVpnGatewaysAggregatedListCall) Filter(filter string) *TargetVpnGatewaysAggregatedListCall {
157179	c.urlParams_.Set("filter", filter)
157180	return c
157181}
157182
157183// IncludeAllScopes sets the optional parameter "includeAllScopes":
157184// Indicates whether every visible scope for each scope type (zone,
157185// region, global) should be included in the response. For new resource
157186// types added after this field, the flag has no effect as new resource
157187// types will always include every visible scope for each scope type in
157188// response. For resource types which predate this field, if this flag
157189// is omitted or false, only scopes of the scope types where the
157190// resource type is expected to be found will be included.
157191func (c *TargetVpnGatewaysAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetVpnGatewaysAggregatedListCall {
157192	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
157193	return c
157194}
157195
157196// MaxResults sets the optional parameter "maxResults": The maximum
157197// number of results per page that should be returned. If the number of
157198// available results is larger than `maxResults`, Compute Engine returns
157199// a `nextPageToken` that can be used to get the next page of results in
157200// subsequent list requests. Acceptable values are `0` to `500`,
157201// inclusive. (Default: `500`)
157202func (c *TargetVpnGatewaysAggregatedListCall) MaxResults(maxResults int64) *TargetVpnGatewaysAggregatedListCall {
157203	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
157204	return c
157205}
157206
157207// OrderBy sets the optional parameter "orderBy": Sorts list results by
157208// a certain order. By default, results are returned in alphanumerical
157209// order based on the resource name.
157210//
157211// You can also sort results in descending order based on the creation
157212// timestamp using `orderBy="creationTimestamp desc". This sorts
157213// results based on the `creationTimestamp` field in reverse
157214// chronological order (newest result first). Use this to sort resources
157215// like operations so that the newest operation is returned
157216// first.
157217//
157218// Currently, only sorting by `name` or `creationTimestamp desc` is
157219// supported.
157220func (c *TargetVpnGatewaysAggregatedListCall) OrderBy(orderBy string) *TargetVpnGatewaysAggregatedListCall {
157221	c.urlParams_.Set("orderBy", orderBy)
157222	return c
157223}
157224
157225// PageToken sets the optional parameter "pageToken": Specifies a page
157226// token to use. Set `pageToken` to the `nextPageToken` returned by a
157227// previous list request to get the next page of results.
157228func (c *TargetVpnGatewaysAggregatedListCall) PageToken(pageToken string) *TargetVpnGatewaysAggregatedListCall {
157229	c.urlParams_.Set("pageToken", pageToken)
157230	return c
157231}
157232
157233// ReturnPartialSuccess sets the optional parameter
157234// "returnPartialSuccess": Opt-in for partial success behavior which
157235// provides partial results in case of failure. The default value is
157236// false.
157237func (c *TargetVpnGatewaysAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetVpnGatewaysAggregatedListCall {
157238	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
157239	return c
157240}
157241
157242// Fields allows partial responses to be retrieved. See
157243// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157244// for more information.
157245func (c *TargetVpnGatewaysAggregatedListCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysAggregatedListCall {
157246	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157247	return c
157248}
157249
157250// IfNoneMatch sets the optional parameter which makes the operation
157251// fail if the object's ETag matches the given value. This is useful for
157252// getting updates only after the object has changed since the last
157253// request. Use googleapi.IsNotModified to check whether the response
157254// error from Do is the result of In-None-Match.
157255func (c *TargetVpnGatewaysAggregatedListCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysAggregatedListCall {
157256	c.ifNoneMatch_ = entityTag
157257	return c
157258}
157259
157260// Context sets the context to be used in this call's Do method. Any
157261// pending HTTP request will be aborted if the provided context is
157262// canceled.
157263func (c *TargetVpnGatewaysAggregatedListCall) Context(ctx context.Context) *TargetVpnGatewaysAggregatedListCall {
157264	c.ctx_ = ctx
157265	return c
157266}
157267
157268// Header returns an http.Header that can be modified by the caller to
157269// add HTTP headers to the request.
157270func (c *TargetVpnGatewaysAggregatedListCall) Header() http.Header {
157271	if c.header_ == nil {
157272		c.header_ = make(http.Header)
157273	}
157274	return c.header_
157275}
157276
157277func (c *TargetVpnGatewaysAggregatedListCall) doRequest(alt string) (*http.Response, error) {
157278	reqHeaders := make(http.Header)
157279	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
157280	for k, v := range c.header_ {
157281		reqHeaders[k] = v
157282	}
157283	reqHeaders.Set("User-Agent", c.s.userAgent())
157284	if c.ifNoneMatch_ != "" {
157285		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
157286	}
157287	var body io.Reader = nil
157288	c.urlParams_.Set("alt", alt)
157289	c.urlParams_.Set("prettyPrint", "false")
157290	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/targetVpnGateways")
157291	urls += "?" + c.urlParams_.Encode()
157292	req, err := http.NewRequest("GET", urls, body)
157293	if err != nil {
157294		return nil, err
157295	}
157296	req.Header = reqHeaders
157297	googleapi.Expand(req.URL, map[string]string{
157298		"project": c.project,
157299	})
157300	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157301}
157302
157303// Do executes the "compute.targetVpnGateways.aggregatedList" call.
157304// Exactly one of *TargetVpnGatewayAggregatedList or error will be
157305// non-nil. Any non-2xx status code is an error. Response headers are in
157306// either *TargetVpnGatewayAggregatedList.ServerResponse.Header or (if a
157307// response was returned at all) in error.(*googleapi.Error).Header. Use
157308// googleapi.IsNotModified to check whether the returned error was
157309// because http.StatusNotModified was returned.
157310func (c *TargetVpnGatewaysAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetVpnGatewayAggregatedList, error) {
157311	gensupport.SetOptions(c.urlParams_, opts...)
157312	res, err := c.doRequest("json")
157313	if res != nil && res.StatusCode == http.StatusNotModified {
157314		if res.Body != nil {
157315			res.Body.Close()
157316		}
157317		return nil, &googleapi.Error{
157318			Code:   res.StatusCode,
157319			Header: res.Header,
157320		}
157321	}
157322	if err != nil {
157323		return nil, err
157324	}
157325	defer googleapi.CloseBody(res)
157326	if err := googleapi.CheckResponse(res); err != nil {
157327		return nil, err
157328	}
157329	ret := &TargetVpnGatewayAggregatedList{
157330		ServerResponse: googleapi.ServerResponse{
157331			Header:         res.Header,
157332			HTTPStatusCode: res.StatusCode,
157333		},
157334	}
157335	target := &ret
157336	if err := gensupport.DecodeResponse(target, res); err != nil {
157337		return nil, err
157338	}
157339	return ret, nil
157340	// {
157341	//   "description": "Retrieves an aggregated list of target VPN gateways.",
157342	//   "httpMethod": "GET",
157343	//   "id": "compute.targetVpnGateways.aggregatedList",
157344	//   "parameterOrder": [
157345	//     "project"
157346	//   ],
157347	//   "parameters": {
157348	//     "filter": {
157349	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
157350	//       "location": "query",
157351	//       "type": "string"
157352	//     },
157353	//     "includeAllScopes": {
157354	//       "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.",
157355	//       "location": "query",
157356	//       "type": "boolean"
157357	//     },
157358	//     "maxResults": {
157359	//       "default": "500",
157360	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
157361	//       "format": "uint32",
157362	//       "location": "query",
157363	//       "minimum": "0",
157364	//       "type": "integer"
157365	//     },
157366	//     "orderBy": {
157367	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
157368	//       "location": "query",
157369	//       "type": "string"
157370	//     },
157371	//     "pageToken": {
157372	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
157373	//       "location": "query",
157374	//       "type": "string"
157375	//     },
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	//     "returnPartialSuccess": {
157384	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
157385	//       "location": "query",
157386	//       "type": "boolean"
157387	//     }
157388	//   },
157389	//   "path": "projects/{project}/aggregated/targetVpnGateways",
157390	//   "response": {
157391	//     "$ref": "TargetVpnGatewayAggregatedList"
157392	//   },
157393	//   "scopes": [
157394	//     "https://www.googleapis.com/auth/cloud-platform",
157395	//     "https://www.googleapis.com/auth/compute",
157396	//     "https://www.googleapis.com/auth/compute.readonly"
157397	//   ]
157398	// }
157399
157400}
157401
157402// Pages invokes f for each page of results.
157403// A non-nil error returned from f will halt the iteration.
157404// The provided context supersedes any context provided to the Context method.
157405func (c *TargetVpnGatewaysAggregatedListCall) Pages(ctx context.Context, f func(*TargetVpnGatewayAggregatedList) error) error {
157406	c.ctx_ = ctx
157407	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
157408	for {
157409		x, err := c.Do()
157410		if err != nil {
157411			return err
157412		}
157413		if err := f(x); err != nil {
157414			return err
157415		}
157416		if x.NextPageToken == "" {
157417			return nil
157418		}
157419		c.PageToken(x.NextPageToken)
157420	}
157421}
157422
157423// method id "compute.targetVpnGateways.delete":
157424
157425type TargetVpnGatewaysDeleteCall struct {
157426	s                *Service
157427	project          string
157428	region           string
157429	targetVpnGateway string
157430	urlParams_       gensupport.URLParams
157431	ctx_             context.Context
157432	header_          http.Header
157433}
157434
157435// Delete: Deletes the specified target VPN gateway.
157436//
157437// - project: Project ID for this request.
157438// - region: Name of the region for this request.
157439// - targetVpnGateway: Name of the target VPN gateway to delete.
157440func (r *TargetVpnGatewaysService) Delete(project string, region string, targetVpnGateway string) *TargetVpnGatewaysDeleteCall {
157441	c := &TargetVpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157442	c.project = project
157443	c.region = region
157444	c.targetVpnGateway = targetVpnGateway
157445	return c
157446}
157447
157448// RequestId sets the optional parameter "requestId": An optional
157449// request ID to identify requests. Specify a unique request ID so that
157450// if you must retry your request, the server will know to ignore the
157451// request if it has already been completed.
157452//
157453// For example, consider a situation where you make an initial request
157454// and the request times out. If you make the request again with the
157455// same request ID, the server can check if original operation with the
157456// same request ID was received, and if so, will ignore the second
157457// request. This prevents clients from accidentally creating duplicate
157458// commitments.
157459//
157460// The request ID must be a valid UUID with the exception that zero UUID
157461// is not supported (00000000-0000-0000-0000-000000000000).
157462func (c *TargetVpnGatewaysDeleteCall) RequestId(requestId string) *TargetVpnGatewaysDeleteCall {
157463	c.urlParams_.Set("requestId", requestId)
157464	return c
157465}
157466
157467// Fields allows partial responses to be retrieved. See
157468// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157469// for more information.
157470func (c *TargetVpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysDeleteCall {
157471	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157472	return c
157473}
157474
157475// Context sets the context to be used in this call's Do method. Any
157476// pending HTTP request will be aborted if the provided context is
157477// canceled.
157478func (c *TargetVpnGatewaysDeleteCall) Context(ctx context.Context) *TargetVpnGatewaysDeleteCall {
157479	c.ctx_ = ctx
157480	return c
157481}
157482
157483// Header returns an http.Header that can be modified by the caller to
157484// add HTTP headers to the request.
157485func (c *TargetVpnGatewaysDeleteCall) Header() http.Header {
157486	if c.header_ == nil {
157487		c.header_ = make(http.Header)
157488	}
157489	return c.header_
157490}
157491
157492func (c *TargetVpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) {
157493	reqHeaders := make(http.Header)
157494	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
157495	for k, v := range c.header_ {
157496		reqHeaders[k] = v
157497	}
157498	reqHeaders.Set("User-Agent", c.s.userAgent())
157499	var body io.Reader = nil
157500	c.urlParams_.Set("alt", alt)
157501	c.urlParams_.Set("prettyPrint", "false")
157502	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}")
157503	urls += "?" + c.urlParams_.Encode()
157504	req, err := http.NewRequest("DELETE", urls, body)
157505	if err != nil {
157506		return nil, err
157507	}
157508	req.Header = reqHeaders
157509	googleapi.Expand(req.URL, map[string]string{
157510		"project":          c.project,
157511		"region":           c.region,
157512		"targetVpnGateway": c.targetVpnGateway,
157513	})
157514	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157515}
157516
157517// Do executes the "compute.targetVpnGateways.delete" call.
157518// Exactly one of *Operation or error will be non-nil. Any non-2xx
157519// status code is an error. Response headers are in either
157520// *Operation.ServerResponse.Header or (if a response was returned at
157521// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
157522// to check whether the returned error was because
157523// http.StatusNotModified was returned.
157524func (c *TargetVpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
157525	gensupport.SetOptions(c.urlParams_, opts...)
157526	res, err := c.doRequest("json")
157527	if res != nil && res.StatusCode == http.StatusNotModified {
157528		if res.Body != nil {
157529			res.Body.Close()
157530		}
157531		return nil, &googleapi.Error{
157532			Code:   res.StatusCode,
157533			Header: res.Header,
157534		}
157535	}
157536	if err != nil {
157537		return nil, err
157538	}
157539	defer googleapi.CloseBody(res)
157540	if err := googleapi.CheckResponse(res); err != nil {
157541		return nil, err
157542	}
157543	ret := &Operation{
157544		ServerResponse: googleapi.ServerResponse{
157545			Header:         res.Header,
157546			HTTPStatusCode: res.StatusCode,
157547		},
157548	}
157549	target := &ret
157550	if err := gensupport.DecodeResponse(target, res); err != nil {
157551		return nil, err
157552	}
157553	return ret, nil
157554	// {
157555	//   "description": "Deletes the specified target VPN gateway.",
157556	//   "httpMethod": "DELETE",
157557	//   "id": "compute.targetVpnGateways.delete",
157558	//   "parameterOrder": [
157559	//     "project",
157560	//     "region",
157561	//     "targetVpnGateway"
157562	//   ],
157563	//   "parameters": {
157564	//     "project": {
157565	//       "description": "Project ID for this request.",
157566	//       "location": "path",
157567	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157568	//       "required": true,
157569	//       "type": "string"
157570	//     },
157571	//     "region": {
157572	//       "description": "Name of the region for this request.",
157573	//       "location": "path",
157574	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
157575	//       "required": true,
157576	//       "type": "string"
157577	//     },
157578	//     "requestId": {
157579	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
157580	//       "location": "query",
157581	//       "type": "string"
157582	//     },
157583	//     "targetVpnGateway": {
157584	//       "description": "Name of the target VPN gateway to delete.",
157585	//       "location": "path",
157586	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
157587	//       "required": true,
157588	//       "type": "string"
157589	//     }
157590	//   },
157591	//   "path": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}",
157592	//   "response": {
157593	//     "$ref": "Operation"
157594	//   },
157595	//   "scopes": [
157596	//     "https://www.googleapis.com/auth/cloud-platform",
157597	//     "https://www.googleapis.com/auth/compute"
157598	//   ]
157599	// }
157600
157601}
157602
157603// method id "compute.targetVpnGateways.get":
157604
157605type TargetVpnGatewaysGetCall struct {
157606	s                *Service
157607	project          string
157608	region           string
157609	targetVpnGateway string
157610	urlParams_       gensupport.URLParams
157611	ifNoneMatch_     string
157612	ctx_             context.Context
157613	header_          http.Header
157614}
157615
157616// Get: Returns the specified target VPN gateway. Gets a list of
157617// available target VPN gateways by making a list() request.
157618//
157619// - project: Project ID for this request.
157620// - region: Name of the region for this request.
157621// - targetVpnGateway: Name of the target VPN gateway to return.
157622func (r *TargetVpnGatewaysService) Get(project string, region string, targetVpnGateway string) *TargetVpnGatewaysGetCall {
157623	c := &TargetVpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157624	c.project = project
157625	c.region = region
157626	c.targetVpnGateway = targetVpnGateway
157627	return c
157628}
157629
157630// Fields allows partial responses to be retrieved. See
157631// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157632// for more information.
157633func (c *TargetVpnGatewaysGetCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysGetCall {
157634	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157635	return c
157636}
157637
157638// IfNoneMatch sets the optional parameter which makes the operation
157639// fail if the object's ETag matches the given value. This is useful for
157640// getting updates only after the object has changed since the last
157641// request. Use googleapi.IsNotModified to check whether the response
157642// error from Do is the result of In-None-Match.
157643func (c *TargetVpnGatewaysGetCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysGetCall {
157644	c.ifNoneMatch_ = entityTag
157645	return c
157646}
157647
157648// Context sets the context to be used in this call's Do method. Any
157649// pending HTTP request will be aborted if the provided context is
157650// canceled.
157651func (c *TargetVpnGatewaysGetCall) Context(ctx context.Context) *TargetVpnGatewaysGetCall {
157652	c.ctx_ = ctx
157653	return c
157654}
157655
157656// Header returns an http.Header that can be modified by the caller to
157657// add HTTP headers to the request.
157658func (c *TargetVpnGatewaysGetCall) Header() http.Header {
157659	if c.header_ == nil {
157660		c.header_ = make(http.Header)
157661	}
157662	return c.header_
157663}
157664
157665func (c *TargetVpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) {
157666	reqHeaders := make(http.Header)
157667	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
157668	for k, v := range c.header_ {
157669		reqHeaders[k] = v
157670	}
157671	reqHeaders.Set("User-Agent", c.s.userAgent())
157672	if c.ifNoneMatch_ != "" {
157673		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
157674	}
157675	var body io.Reader = nil
157676	c.urlParams_.Set("alt", alt)
157677	c.urlParams_.Set("prettyPrint", "false")
157678	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}")
157679	urls += "?" + c.urlParams_.Encode()
157680	req, err := http.NewRequest("GET", urls, body)
157681	if err != nil {
157682		return nil, err
157683	}
157684	req.Header = reqHeaders
157685	googleapi.Expand(req.URL, map[string]string{
157686		"project":          c.project,
157687		"region":           c.region,
157688		"targetVpnGateway": c.targetVpnGateway,
157689	})
157690	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157691}
157692
157693// Do executes the "compute.targetVpnGateways.get" call.
157694// Exactly one of *TargetVpnGateway or error will be non-nil. Any
157695// non-2xx status code is an error. Response headers are in either
157696// *TargetVpnGateway.ServerResponse.Header or (if a response was
157697// returned at all) in error.(*googleapi.Error).Header. Use
157698// googleapi.IsNotModified to check whether the returned error was
157699// because http.StatusNotModified was returned.
157700func (c *TargetVpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*TargetVpnGateway, error) {
157701	gensupport.SetOptions(c.urlParams_, opts...)
157702	res, err := c.doRequest("json")
157703	if res != nil && res.StatusCode == http.StatusNotModified {
157704		if res.Body != nil {
157705			res.Body.Close()
157706		}
157707		return nil, &googleapi.Error{
157708			Code:   res.StatusCode,
157709			Header: res.Header,
157710		}
157711	}
157712	if err != nil {
157713		return nil, err
157714	}
157715	defer googleapi.CloseBody(res)
157716	if err := googleapi.CheckResponse(res); err != nil {
157717		return nil, err
157718	}
157719	ret := &TargetVpnGateway{
157720		ServerResponse: googleapi.ServerResponse{
157721			Header:         res.Header,
157722			HTTPStatusCode: res.StatusCode,
157723		},
157724	}
157725	target := &ret
157726	if err := gensupport.DecodeResponse(target, res); err != nil {
157727		return nil, err
157728	}
157729	return ret, nil
157730	// {
157731	//   "description": "Returns the specified target VPN gateway. Gets a list of available target VPN gateways by making a list() request.",
157732	//   "httpMethod": "GET",
157733	//   "id": "compute.targetVpnGateways.get",
157734	//   "parameterOrder": [
157735	//     "project",
157736	//     "region",
157737	//     "targetVpnGateway"
157738	//   ],
157739	//   "parameters": {
157740	//     "project": {
157741	//       "description": "Project ID for this request.",
157742	//       "location": "path",
157743	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157744	//       "required": true,
157745	//       "type": "string"
157746	//     },
157747	//     "region": {
157748	//       "description": "Name of the region for this request.",
157749	//       "location": "path",
157750	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
157751	//       "required": true,
157752	//       "type": "string"
157753	//     },
157754	//     "targetVpnGateway": {
157755	//       "description": "Name of the target VPN gateway to return.",
157756	//       "location": "path",
157757	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
157758	//       "required": true,
157759	//       "type": "string"
157760	//     }
157761	//   },
157762	//   "path": "projects/{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}",
157763	//   "response": {
157764	//     "$ref": "TargetVpnGateway"
157765	//   },
157766	//   "scopes": [
157767	//     "https://www.googleapis.com/auth/cloud-platform",
157768	//     "https://www.googleapis.com/auth/compute",
157769	//     "https://www.googleapis.com/auth/compute.readonly"
157770	//   ]
157771	// }
157772
157773}
157774
157775// method id "compute.targetVpnGateways.insert":
157776
157777type TargetVpnGatewaysInsertCall struct {
157778	s                *Service
157779	project          string
157780	region           string
157781	targetvpngateway *TargetVpnGateway
157782	urlParams_       gensupport.URLParams
157783	ctx_             context.Context
157784	header_          http.Header
157785}
157786
157787// Insert: Creates a target VPN gateway in the specified project and
157788// region using the data included in the request.
157789//
157790// - project: Project ID for this request.
157791// - region: Name of the region for this request.
157792func (r *TargetVpnGatewaysService) Insert(project string, region string, targetvpngateway *TargetVpnGateway) *TargetVpnGatewaysInsertCall {
157793	c := &TargetVpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157794	c.project = project
157795	c.region = region
157796	c.targetvpngateway = targetvpngateway
157797	return c
157798}
157799
157800// RequestId sets the optional parameter "requestId": An optional
157801// request ID to identify requests. Specify a unique request ID so that
157802// if you must retry your request, the server will know to ignore the
157803// request if it has already been completed.
157804//
157805// For example, consider a situation where you make an initial request
157806// and the request times out. If you make the request again with the
157807// same request ID, the server can check if original operation with the
157808// same request ID was received, and if so, will ignore the second
157809// request. This prevents clients from accidentally creating duplicate
157810// commitments.
157811//
157812// The request ID must be a valid UUID with the exception that zero UUID
157813// is not supported (00000000-0000-0000-0000-000000000000).
157814func (c *TargetVpnGatewaysInsertCall) RequestId(requestId string) *TargetVpnGatewaysInsertCall {
157815	c.urlParams_.Set("requestId", requestId)
157816	return c
157817}
157818
157819// Fields allows partial responses to be retrieved. See
157820// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
157821// for more information.
157822func (c *TargetVpnGatewaysInsertCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysInsertCall {
157823	c.urlParams_.Set("fields", googleapi.CombineFields(s))
157824	return c
157825}
157826
157827// Context sets the context to be used in this call's Do method. Any
157828// pending HTTP request will be aborted if the provided context is
157829// canceled.
157830func (c *TargetVpnGatewaysInsertCall) Context(ctx context.Context) *TargetVpnGatewaysInsertCall {
157831	c.ctx_ = ctx
157832	return c
157833}
157834
157835// Header returns an http.Header that can be modified by the caller to
157836// add HTTP headers to the request.
157837func (c *TargetVpnGatewaysInsertCall) Header() http.Header {
157838	if c.header_ == nil {
157839		c.header_ = make(http.Header)
157840	}
157841	return c.header_
157842}
157843
157844func (c *TargetVpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) {
157845	reqHeaders := make(http.Header)
157846	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
157847	for k, v := range c.header_ {
157848		reqHeaders[k] = v
157849	}
157850	reqHeaders.Set("User-Agent", c.s.userAgent())
157851	var body io.Reader = nil
157852	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetvpngateway)
157853	if err != nil {
157854		return nil, err
157855	}
157856	reqHeaders.Set("Content-Type", "application/json")
157857	c.urlParams_.Set("alt", alt)
157858	c.urlParams_.Set("prettyPrint", "false")
157859	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetVpnGateways")
157860	urls += "?" + c.urlParams_.Encode()
157861	req, err := http.NewRequest("POST", urls, body)
157862	if err != nil {
157863		return nil, err
157864	}
157865	req.Header = reqHeaders
157866	googleapi.Expand(req.URL, map[string]string{
157867		"project": c.project,
157868		"region":  c.region,
157869	})
157870	return gensupport.SendRequest(c.ctx_, c.s.client, req)
157871}
157872
157873// Do executes the "compute.targetVpnGateways.insert" call.
157874// Exactly one of *Operation or error will be non-nil. Any non-2xx
157875// status code is an error. Response headers are in either
157876// *Operation.ServerResponse.Header or (if a response was returned at
157877// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
157878// to check whether the returned error was because
157879// http.StatusNotModified was returned.
157880func (c *TargetVpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
157881	gensupport.SetOptions(c.urlParams_, opts...)
157882	res, err := c.doRequest("json")
157883	if res != nil && res.StatusCode == http.StatusNotModified {
157884		if res.Body != nil {
157885			res.Body.Close()
157886		}
157887		return nil, &googleapi.Error{
157888			Code:   res.StatusCode,
157889			Header: res.Header,
157890		}
157891	}
157892	if err != nil {
157893		return nil, err
157894	}
157895	defer googleapi.CloseBody(res)
157896	if err := googleapi.CheckResponse(res); err != nil {
157897		return nil, err
157898	}
157899	ret := &Operation{
157900		ServerResponse: googleapi.ServerResponse{
157901			Header:         res.Header,
157902			HTTPStatusCode: res.StatusCode,
157903		},
157904	}
157905	target := &ret
157906	if err := gensupport.DecodeResponse(target, res); err != nil {
157907		return nil, err
157908	}
157909	return ret, nil
157910	// {
157911	//   "description": "Creates a target VPN gateway in the specified project and region using the data included in the request.",
157912	//   "httpMethod": "POST",
157913	//   "id": "compute.targetVpnGateways.insert",
157914	//   "parameterOrder": [
157915	//     "project",
157916	//     "region"
157917	//   ],
157918	//   "parameters": {
157919	//     "project": {
157920	//       "description": "Project ID for this request.",
157921	//       "location": "path",
157922	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
157923	//       "required": true,
157924	//       "type": "string"
157925	//     },
157926	//     "region": {
157927	//       "description": "Name of the region for this request.",
157928	//       "location": "path",
157929	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
157930	//       "required": true,
157931	//       "type": "string"
157932	//     },
157933	//     "requestId": {
157934	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
157935	//       "location": "query",
157936	//       "type": "string"
157937	//     }
157938	//   },
157939	//   "path": "projects/{project}/regions/{region}/targetVpnGateways",
157940	//   "request": {
157941	//     "$ref": "TargetVpnGateway"
157942	//   },
157943	//   "response": {
157944	//     "$ref": "Operation"
157945	//   },
157946	//   "scopes": [
157947	//     "https://www.googleapis.com/auth/cloud-platform",
157948	//     "https://www.googleapis.com/auth/compute"
157949	//   ]
157950	// }
157951
157952}
157953
157954// method id "compute.targetVpnGateways.list":
157955
157956type TargetVpnGatewaysListCall struct {
157957	s            *Service
157958	project      string
157959	region       string
157960	urlParams_   gensupport.URLParams
157961	ifNoneMatch_ string
157962	ctx_         context.Context
157963	header_      http.Header
157964}
157965
157966// List: Retrieves a list of target VPN gateways available to the
157967// specified project and region.
157968//
157969// - project: Project ID for this request.
157970// - region: Name of the region for this request.
157971func (r *TargetVpnGatewaysService) List(project string, region string) *TargetVpnGatewaysListCall {
157972	c := &TargetVpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
157973	c.project = project
157974	c.region = region
157975	return c
157976}
157977
157978// Filter sets the optional parameter "filter": A filter expression that
157979// filters resources listed in the response. The expression must specify
157980// the field name, a comparison operator, and the value that you want to
157981// use for filtering. The value must be a string, a number, or a
157982// boolean. The comparison operator must be either `=`, `!=`, `>`, or
157983// `<`.
157984//
157985// For example, if you are filtering Compute Engine instances, you can
157986// exclude instances named `example-instance` by specifying `name !=
157987// example-instance`.
157988//
157989// You can also filter nested fields. For example, you could specify
157990// `scheduling.automaticRestart = false` to include instances only if
157991// they are not scheduled for automatic restarts. You can use filtering
157992// on nested fields to filter based on resource labels.
157993//
157994// To filter on multiple expressions, provide each separate expression
157995// within parentheses. For example: ``` (scheduling.automaticRestart =
157996// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
157997// is an `AND` expression. However, you can include `AND` and `OR`
157998// expressions explicitly. For example: ``` (cpuPlatform = "Intel
157999// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
158000// (scheduling.automaticRestart = true) ```
158001func (c *TargetVpnGatewaysListCall) Filter(filter string) *TargetVpnGatewaysListCall {
158002	c.urlParams_.Set("filter", filter)
158003	return c
158004}
158005
158006// MaxResults sets the optional parameter "maxResults": The maximum
158007// number of results per page that should be returned. If the number of
158008// available results is larger than `maxResults`, Compute Engine returns
158009// a `nextPageToken` that can be used to get the next page of results in
158010// subsequent list requests. Acceptable values are `0` to `500`,
158011// inclusive. (Default: `500`)
158012func (c *TargetVpnGatewaysListCall) MaxResults(maxResults int64) *TargetVpnGatewaysListCall {
158013	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
158014	return c
158015}
158016
158017// OrderBy sets the optional parameter "orderBy": Sorts list results by
158018// a certain order. By default, results are returned in alphanumerical
158019// order based on the resource name.
158020//
158021// You can also sort results in descending order based on the creation
158022// timestamp using `orderBy="creationTimestamp desc". This sorts
158023// results based on the `creationTimestamp` field in reverse
158024// chronological order (newest result first). Use this to sort resources
158025// like operations so that the newest operation is returned
158026// first.
158027//
158028// Currently, only sorting by `name` or `creationTimestamp desc` is
158029// supported.
158030func (c *TargetVpnGatewaysListCall) OrderBy(orderBy string) *TargetVpnGatewaysListCall {
158031	c.urlParams_.Set("orderBy", orderBy)
158032	return c
158033}
158034
158035// PageToken sets the optional parameter "pageToken": Specifies a page
158036// token to use. Set `pageToken` to the `nextPageToken` returned by a
158037// previous list request to get the next page of results.
158038func (c *TargetVpnGatewaysListCall) PageToken(pageToken string) *TargetVpnGatewaysListCall {
158039	c.urlParams_.Set("pageToken", pageToken)
158040	return c
158041}
158042
158043// ReturnPartialSuccess sets the optional parameter
158044// "returnPartialSuccess": Opt-in for partial success behavior which
158045// provides partial results in case of failure. The default value is
158046// false.
158047func (c *TargetVpnGatewaysListCall) ReturnPartialSuccess(returnPartialSuccess bool) *TargetVpnGatewaysListCall {
158048	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
158049	return c
158050}
158051
158052// Fields allows partial responses to be retrieved. See
158053// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158054// for more information.
158055func (c *TargetVpnGatewaysListCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysListCall {
158056	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158057	return c
158058}
158059
158060// IfNoneMatch sets the optional parameter which makes the operation
158061// fail if the object's ETag matches the given value. This is useful for
158062// getting updates only after the object has changed since the last
158063// request. Use googleapi.IsNotModified to check whether the response
158064// error from Do is the result of In-None-Match.
158065func (c *TargetVpnGatewaysListCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysListCall {
158066	c.ifNoneMatch_ = entityTag
158067	return c
158068}
158069
158070// Context sets the context to be used in this call's Do method. Any
158071// pending HTTP request will be aborted if the provided context is
158072// canceled.
158073func (c *TargetVpnGatewaysListCall) Context(ctx context.Context) *TargetVpnGatewaysListCall {
158074	c.ctx_ = ctx
158075	return c
158076}
158077
158078// Header returns an http.Header that can be modified by the caller to
158079// add HTTP headers to the request.
158080func (c *TargetVpnGatewaysListCall) Header() http.Header {
158081	if c.header_ == nil {
158082		c.header_ = make(http.Header)
158083	}
158084	return c.header_
158085}
158086
158087func (c *TargetVpnGatewaysListCall) doRequest(alt string) (*http.Response, error) {
158088	reqHeaders := make(http.Header)
158089	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
158090	for k, v := range c.header_ {
158091		reqHeaders[k] = v
158092	}
158093	reqHeaders.Set("User-Agent", c.s.userAgent())
158094	if c.ifNoneMatch_ != "" {
158095		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
158096	}
158097	var body io.Reader = nil
158098	c.urlParams_.Set("alt", alt)
158099	c.urlParams_.Set("prettyPrint", "false")
158100	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/targetVpnGateways")
158101	urls += "?" + c.urlParams_.Encode()
158102	req, err := http.NewRequest("GET", urls, body)
158103	if err != nil {
158104		return nil, err
158105	}
158106	req.Header = reqHeaders
158107	googleapi.Expand(req.URL, map[string]string{
158108		"project": c.project,
158109		"region":  c.region,
158110	})
158111	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158112}
158113
158114// Do executes the "compute.targetVpnGateways.list" call.
158115// Exactly one of *TargetVpnGatewayList or error will be non-nil. Any
158116// non-2xx status code is an error. Response headers are in either
158117// *TargetVpnGatewayList.ServerResponse.Header or (if a response was
158118// returned at all) in error.(*googleapi.Error).Header. Use
158119// googleapi.IsNotModified to check whether the returned error was
158120// because http.StatusNotModified was returned.
158121func (c *TargetVpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*TargetVpnGatewayList, error) {
158122	gensupport.SetOptions(c.urlParams_, opts...)
158123	res, err := c.doRequest("json")
158124	if res != nil && res.StatusCode == http.StatusNotModified {
158125		if res.Body != nil {
158126			res.Body.Close()
158127		}
158128		return nil, &googleapi.Error{
158129			Code:   res.StatusCode,
158130			Header: res.Header,
158131		}
158132	}
158133	if err != nil {
158134		return nil, err
158135	}
158136	defer googleapi.CloseBody(res)
158137	if err := googleapi.CheckResponse(res); err != nil {
158138		return nil, err
158139	}
158140	ret := &TargetVpnGatewayList{
158141		ServerResponse: googleapi.ServerResponse{
158142			Header:         res.Header,
158143			HTTPStatusCode: res.StatusCode,
158144		},
158145	}
158146	target := &ret
158147	if err := gensupport.DecodeResponse(target, res); err != nil {
158148		return nil, err
158149	}
158150	return ret, nil
158151	// {
158152	//   "description": "Retrieves a list of target VPN gateways available to the specified project and region.",
158153	//   "httpMethod": "GET",
158154	//   "id": "compute.targetVpnGateways.list",
158155	//   "parameterOrder": [
158156	//     "project",
158157	//     "region"
158158	//   ],
158159	//   "parameters": {
158160	//     "filter": {
158161	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
158162	//       "location": "query",
158163	//       "type": "string"
158164	//     },
158165	//     "maxResults": {
158166	//       "default": "500",
158167	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
158168	//       "format": "uint32",
158169	//       "location": "query",
158170	//       "minimum": "0",
158171	//       "type": "integer"
158172	//     },
158173	//     "orderBy": {
158174	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
158175	//       "location": "query",
158176	//       "type": "string"
158177	//     },
158178	//     "pageToken": {
158179	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
158180	//       "location": "query",
158181	//       "type": "string"
158182	//     },
158183	//     "project": {
158184	//       "description": "Project ID for this request.",
158185	//       "location": "path",
158186	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158187	//       "required": true,
158188	//       "type": "string"
158189	//     },
158190	//     "region": {
158191	//       "description": "Name of the region for this request.",
158192	//       "location": "path",
158193	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
158194	//       "required": true,
158195	//       "type": "string"
158196	//     },
158197	//     "returnPartialSuccess": {
158198	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
158199	//       "location": "query",
158200	//       "type": "boolean"
158201	//     }
158202	//   },
158203	//   "path": "projects/{project}/regions/{region}/targetVpnGateways",
158204	//   "response": {
158205	//     "$ref": "TargetVpnGatewayList"
158206	//   },
158207	//   "scopes": [
158208	//     "https://www.googleapis.com/auth/cloud-platform",
158209	//     "https://www.googleapis.com/auth/compute",
158210	//     "https://www.googleapis.com/auth/compute.readonly"
158211	//   ]
158212	// }
158213
158214}
158215
158216// Pages invokes f for each page of results.
158217// A non-nil error returned from f will halt the iteration.
158218// The provided context supersedes any context provided to the Context method.
158219func (c *TargetVpnGatewaysListCall) Pages(ctx context.Context, f func(*TargetVpnGatewayList) error) error {
158220	c.ctx_ = ctx
158221	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
158222	for {
158223		x, err := c.Do()
158224		if err != nil {
158225			return err
158226		}
158227		if err := f(x); err != nil {
158228			return err
158229		}
158230		if x.NextPageToken == "" {
158231			return nil
158232		}
158233		c.PageToken(x.NextPageToken)
158234	}
158235}
158236
158237// method id "compute.urlMaps.aggregatedList":
158238
158239type UrlMapsAggregatedListCall struct {
158240	s            *Service
158241	project      string
158242	urlParams_   gensupport.URLParams
158243	ifNoneMatch_ string
158244	ctx_         context.Context
158245	header_      http.Header
158246}
158247
158248// AggregatedList: Retrieves the list of all UrlMap resources, regional
158249// and global, available to the specified project.
158250//
158251// - project: Name of the project scoping this request.
158252func (r *UrlMapsService) AggregatedList(project string) *UrlMapsAggregatedListCall {
158253	c := &UrlMapsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158254	c.project = project
158255	return c
158256}
158257
158258// Filter sets the optional parameter "filter": A filter expression that
158259// filters resources listed in the response. The expression must specify
158260// the field name, a comparison operator, and the value that you want to
158261// use for filtering. The value must be a string, a number, or a
158262// boolean. The comparison operator must be either `=`, `!=`, `>`, or
158263// `<`.
158264//
158265// For example, if you are filtering Compute Engine instances, you can
158266// exclude instances named `example-instance` by specifying `name !=
158267// example-instance`.
158268//
158269// You can also filter nested fields. For example, you could specify
158270// `scheduling.automaticRestart = false` to include instances only if
158271// they are not scheduled for automatic restarts. You can use filtering
158272// on nested fields to filter based on resource labels.
158273//
158274// To filter on multiple expressions, provide each separate expression
158275// within parentheses. For example: ``` (scheduling.automaticRestart =
158276// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
158277// is an `AND` expression. However, you can include `AND` and `OR`
158278// expressions explicitly. For example: ``` (cpuPlatform = "Intel
158279// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
158280// (scheduling.automaticRestart = true) ```
158281func (c *UrlMapsAggregatedListCall) Filter(filter string) *UrlMapsAggregatedListCall {
158282	c.urlParams_.Set("filter", filter)
158283	return c
158284}
158285
158286// IncludeAllScopes sets the optional parameter "includeAllScopes":
158287// Indicates whether every visible scope for each scope type (zone,
158288// region, global) should be included in the response. For new resource
158289// types added after this field, the flag has no effect as new resource
158290// types will always include every visible scope for each scope type in
158291// response. For resource types which predate this field, if this flag
158292// is omitted or false, only scopes of the scope types where the
158293// resource type is expected to be found will be included.
158294func (c *UrlMapsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *UrlMapsAggregatedListCall {
158295	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
158296	return c
158297}
158298
158299// MaxResults sets the optional parameter "maxResults": The maximum
158300// number of results per page that should be returned. If the number of
158301// available results is larger than `maxResults`, Compute Engine returns
158302// a `nextPageToken` that can be used to get the next page of results in
158303// subsequent list requests. Acceptable values are `0` to `500`,
158304// inclusive. (Default: `500`)
158305func (c *UrlMapsAggregatedListCall) MaxResults(maxResults int64) *UrlMapsAggregatedListCall {
158306	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
158307	return c
158308}
158309
158310// OrderBy sets the optional parameter "orderBy": Sorts list results by
158311// a certain order. By default, results are returned in alphanumerical
158312// order based on the resource name.
158313//
158314// You can also sort results in descending order based on the creation
158315// timestamp using `orderBy="creationTimestamp desc". This sorts
158316// results based on the `creationTimestamp` field in reverse
158317// chronological order (newest result first). Use this to sort resources
158318// like operations so that the newest operation is returned
158319// first.
158320//
158321// Currently, only sorting by `name` or `creationTimestamp desc` is
158322// supported.
158323func (c *UrlMapsAggregatedListCall) OrderBy(orderBy string) *UrlMapsAggregatedListCall {
158324	c.urlParams_.Set("orderBy", orderBy)
158325	return c
158326}
158327
158328// PageToken sets the optional parameter "pageToken": Specifies a page
158329// token to use. Set `pageToken` to the `nextPageToken` returned by a
158330// previous list request to get the next page of results.
158331func (c *UrlMapsAggregatedListCall) PageToken(pageToken string) *UrlMapsAggregatedListCall {
158332	c.urlParams_.Set("pageToken", pageToken)
158333	return c
158334}
158335
158336// ReturnPartialSuccess sets the optional parameter
158337// "returnPartialSuccess": Opt-in for partial success behavior which
158338// provides partial results in case of failure. The default value is
158339// false.
158340func (c *UrlMapsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *UrlMapsAggregatedListCall {
158341	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
158342	return c
158343}
158344
158345// Fields allows partial responses to be retrieved. See
158346// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158347// for more information.
158348func (c *UrlMapsAggregatedListCall) Fields(s ...googleapi.Field) *UrlMapsAggregatedListCall {
158349	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158350	return c
158351}
158352
158353// IfNoneMatch sets the optional parameter which makes the operation
158354// fail if the object's ETag matches the given value. This is useful for
158355// getting updates only after the object has changed since the last
158356// request. Use googleapi.IsNotModified to check whether the response
158357// error from Do is the result of In-None-Match.
158358func (c *UrlMapsAggregatedListCall) IfNoneMatch(entityTag string) *UrlMapsAggregatedListCall {
158359	c.ifNoneMatch_ = entityTag
158360	return c
158361}
158362
158363// Context sets the context to be used in this call's Do method. Any
158364// pending HTTP request will be aborted if the provided context is
158365// canceled.
158366func (c *UrlMapsAggregatedListCall) Context(ctx context.Context) *UrlMapsAggregatedListCall {
158367	c.ctx_ = ctx
158368	return c
158369}
158370
158371// Header returns an http.Header that can be modified by the caller to
158372// add HTTP headers to the request.
158373func (c *UrlMapsAggregatedListCall) Header() http.Header {
158374	if c.header_ == nil {
158375		c.header_ = make(http.Header)
158376	}
158377	return c.header_
158378}
158379
158380func (c *UrlMapsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
158381	reqHeaders := make(http.Header)
158382	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
158383	for k, v := range c.header_ {
158384		reqHeaders[k] = v
158385	}
158386	reqHeaders.Set("User-Agent", c.s.userAgent())
158387	if c.ifNoneMatch_ != "" {
158388		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
158389	}
158390	var body io.Reader = nil
158391	c.urlParams_.Set("alt", alt)
158392	c.urlParams_.Set("prettyPrint", "false")
158393	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/urlMaps")
158394	urls += "?" + c.urlParams_.Encode()
158395	req, err := http.NewRequest("GET", urls, body)
158396	if err != nil {
158397		return nil, err
158398	}
158399	req.Header = reqHeaders
158400	googleapi.Expand(req.URL, map[string]string{
158401		"project": c.project,
158402	})
158403	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158404}
158405
158406// Do executes the "compute.urlMaps.aggregatedList" call.
158407// Exactly one of *UrlMapsAggregatedList or error will be non-nil. Any
158408// non-2xx status code is an error. Response headers are in either
158409// *UrlMapsAggregatedList.ServerResponse.Header or (if a response was
158410// returned at all) in error.(*googleapi.Error).Header. Use
158411// googleapi.IsNotModified to check whether the returned error was
158412// because http.StatusNotModified was returned.
158413func (c *UrlMapsAggregatedListCall) Do(opts ...googleapi.CallOption) (*UrlMapsAggregatedList, error) {
158414	gensupport.SetOptions(c.urlParams_, opts...)
158415	res, err := c.doRequest("json")
158416	if res != nil && res.StatusCode == http.StatusNotModified {
158417		if res.Body != nil {
158418			res.Body.Close()
158419		}
158420		return nil, &googleapi.Error{
158421			Code:   res.StatusCode,
158422			Header: res.Header,
158423		}
158424	}
158425	if err != nil {
158426		return nil, err
158427	}
158428	defer googleapi.CloseBody(res)
158429	if err := googleapi.CheckResponse(res); err != nil {
158430		return nil, err
158431	}
158432	ret := &UrlMapsAggregatedList{
158433		ServerResponse: googleapi.ServerResponse{
158434			Header:         res.Header,
158435			HTTPStatusCode: res.StatusCode,
158436		},
158437	}
158438	target := &ret
158439	if err := gensupport.DecodeResponse(target, res); err != nil {
158440		return nil, err
158441	}
158442	return ret, nil
158443	// {
158444	//   "description": "Retrieves the list of all UrlMap resources, regional and global, available to the specified project.",
158445	//   "httpMethod": "GET",
158446	//   "id": "compute.urlMaps.aggregatedList",
158447	//   "parameterOrder": [
158448	//     "project"
158449	//   ],
158450	//   "parameters": {
158451	//     "filter": {
158452	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
158453	//       "location": "query",
158454	//       "type": "string"
158455	//     },
158456	//     "includeAllScopes": {
158457	//       "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.",
158458	//       "location": "query",
158459	//       "type": "boolean"
158460	//     },
158461	//     "maxResults": {
158462	//       "default": "500",
158463	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
158464	//       "format": "uint32",
158465	//       "location": "query",
158466	//       "minimum": "0",
158467	//       "type": "integer"
158468	//     },
158469	//     "orderBy": {
158470	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
158471	//       "location": "query",
158472	//       "type": "string"
158473	//     },
158474	//     "pageToken": {
158475	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
158476	//       "location": "query",
158477	//       "type": "string"
158478	//     },
158479	//     "project": {
158480	//       "description": "Name of the project scoping this request.",
158481	//       "location": "path",
158482	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158483	//       "required": true,
158484	//       "type": "string"
158485	//     },
158486	//     "returnPartialSuccess": {
158487	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
158488	//       "location": "query",
158489	//       "type": "boolean"
158490	//     }
158491	//   },
158492	//   "path": "projects/{project}/aggregated/urlMaps",
158493	//   "response": {
158494	//     "$ref": "UrlMapsAggregatedList"
158495	//   },
158496	//   "scopes": [
158497	//     "https://www.googleapis.com/auth/cloud-platform",
158498	//     "https://www.googleapis.com/auth/compute",
158499	//     "https://www.googleapis.com/auth/compute.readonly"
158500	//   ]
158501	// }
158502
158503}
158504
158505// Pages invokes f for each page of results.
158506// A non-nil error returned from f will halt the iteration.
158507// The provided context supersedes any context provided to the Context method.
158508func (c *UrlMapsAggregatedListCall) Pages(ctx context.Context, f func(*UrlMapsAggregatedList) error) error {
158509	c.ctx_ = ctx
158510	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
158511	for {
158512		x, err := c.Do()
158513		if err != nil {
158514			return err
158515		}
158516		if err := f(x); err != nil {
158517			return err
158518		}
158519		if x.NextPageToken == "" {
158520			return nil
158521		}
158522		c.PageToken(x.NextPageToken)
158523	}
158524}
158525
158526// method id "compute.urlMaps.delete":
158527
158528type UrlMapsDeleteCall struct {
158529	s          *Service
158530	project    string
158531	urlMap     string
158532	urlParams_ gensupport.URLParams
158533	ctx_       context.Context
158534	header_    http.Header
158535}
158536
158537// Delete: Deletes the specified UrlMap resource.
158538//
158539// - project: Project ID for this request.
158540// - urlMap: Name of the UrlMap resource to delete.
158541// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/delete
158542func (r *UrlMapsService) Delete(project string, urlMap string) *UrlMapsDeleteCall {
158543	c := &UrlMapsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158544	c.project = project
158545	c.urlMap = urlMap
158546	return c
158547}
158548
158549// RequestId sets the optional parameter "requestId": An optional
158550// request ID to identify requests. Specify a unique request ID so that
158551// if you must retry your request, the server will know to ignore the
158552// request if it has already been completed.
158553//
158554// For example, consider a situation where you make an initial request
158555// and the request times out. If you make the request again with the
158556// same request ID, the server can check if original operation with the
158557// same request ID was received, and if so, will ignore the second
158558// request. This prevents clients from accidentally creating duplicate
158559// commitments.
158560//
158561// The request ID must be a valid UUID with the exception that zero UUID
158562// is not supported (00000000-0000-0000-0000-000000000000).
158563func (c *UrlMapsDeleteCall) RequestId(requestId string) *UrlMapsDeleteCall {
158564	c.urlParams_.Set("requestId", requestId)
158565	return c
158566}
158567
158568// Fields allows partial responses to be retrieved. See
158569// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158570// for more information.
158571func (c *UrlMapsDeleteCall) Fields(s ...googleapi.Field) *UrlMapsDeleteCall {
158572	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158573	return c
158574}
158575
158576// Context sets the context to be used in this call's Do method. Any
158577// pending HTTP request will be aborted if the provided context is
158578// canceled.
158579func (c *UrlMapsDeleteCall) Context(ctx context.Context) *UrlMapsDeleteCall {
158580	c.ctx_ = ctx
158581	return c
158582}
158583
158584// Header returns an http.Header that can be modified by the caller to
158585// add HTTP headers to the request.
158586func (c *UrlMapsDeleteCall) Header() http.Header {
158587	if c.header_ == nil {
158588		c.header_ = make(http.Header)
158589	}
158590	return c.header_
158591}
158592
158593func (c *UrlMapsDeleteCall) doRequest(alt string) (*http.Response, error) {
158594	reqHeaders := make(http.Header)
158595	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
158596	for k, v := range c.header_ {
158597		reqHeaders[k] = v
158598	}
158599	reqHeaders.Set("User-Agent", c.s.userAgent())
158600	var body io.Reader = nil
158601	c.urlParams_.Set("alt", alt)
158602	c.urlParams_.Set("prettyPrint", "false")
158603	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}")
158604	urls += "?" + c.urlParams_.Encode()
158605	req, err := http.NewRequest("DELETE", urls, body)
158606	if err != nil {
158607		return nil, err
158608	}
158609	req.Header = reqHeaders
158610	googleapi.Expand(req.URL, map[string]string{
158611		"project": c.project,
158612		"urlMap":  c.urlMap,
158613	})
158614	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158615}
158616
158617// Do executes the "compute.urlMaps.delete" call.
158618// Exactly one of *Operation or error will be non-nil. Any non-2xx
158619// status code is an error. Response headers are in either
158620// *Operation.ServerResponse.Header or (if a response was returned at
158621// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
158622// to check whether the returned error was because
158623// http.StatusNotModified was returned.
158624func (c *UrlMapsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
158625	gensupport.SetOptions(c.urlParams_, opts...)
158626	res, err := c.doRequest("json")
158627	if res != nil && res.StatusCode == http.StatusNotModified {
158628		if res.Body != nil {
158629			res.Body.Close()
158630		}
158631		return nil, &googleapi.Error{
158632			Code:   res.StatusCode,
158633			Header: res.Header,
158634		}
158635	}
158636	if err != nil {
158637		return nil, err
158638	}
158639	defer googleapi.CloseBody(res)
158640	if err := googleapi.CheckResponse(res); err != nil {
158641		return nil, err
158642	}
158643	ret := &Operation{
158644		ServerResponse: googleapi.ServerResponse{
158645			Header:         res.Header,
158646			HTTPStatusCode: res.StatusCode,
158647		},
158648	}
158649	target := &ret
158650	if err := gensupport.DecodeResponse(target, res); err != nil {
158651		return nil, err
158652	}
158653	return ret, nil
158654	// {
158655	//   "description": "Deletes the specified UrlMap resource.",
158656	//   "httpMethod": "DELETE",
158657	//   "id": "compute.urlMaps.delete",
158658	//   "parameterOrder": [
158659	//     "project",
158660	//     "urlMap"
158661	//   ],
158662	//   "parameters": {
158663	//     "project": {
158664	//       "description": "Project ID for this request.",
158665	//       "location": "path",
158666	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158667	//       "required": true,
158668	//       "type": "string"
158669	//     },
158670	//     "requestId": {
158671	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
158672	//       "location": "query",
158673	//       "type": "string"
158674	//     },
158675	//     "urlMap": {
158676	//       "description": "Name of the UrlMap resource to delete.",
158677	//       "location": "path",
158678	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
158679	//       "required": true,
158680	//       "type": "string"
158681	//     }
158682	//   },
158683	//   "path": "projects/{project}/global/urlMaps/{urlMap}",
158684	//   "response": {
158685	//     "$ref": "Operation"
158686	//   },
158687	//   "scopes": [
158688	//     "https://www.googleapis.com/auth/cloud-platform",
158689	//     "https://www.googleapis.com/auth/compute"
158690	//   ]
158691	// }
158692
158693}
158694
158695// method id "compute.urlMaps.get":
158696
158697type UrlMapsGetCall struct {
158698	s            *Service
158699	project      string
158700	urlMap       string
158701	urlParams_   gensupport.URLParams
158702	ifNoneMatch_ string
158703	ctx_         context.Context
158704	header_      http.Header
158705}
158706
158707// Get: Returns the specified UrlMap resource. Gets a list of available
158708// URL maps by making a list() request.
158709//
158710// - project: Project ID for this request.
158711// - urlMap: Name of the UrlMap resource to return.
158712// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/get
158713func (r *UrlMapsService) Get(project string, urlMap string) *UrlMapsGetCall {
158714	c := &UrlMapsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158715	c.project = project
158716	c.urlMap = urlMap
158717	return c
158718}
158719
158720// Fields allows partial responses to be retrieved. See
158721// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158722// for more information.
158723func (c *UrlMapsGetCall) Fields(s ...googleapi.Field) *UrlMapsGetCall {
158724	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158725	return c
158726}
158727
158728// IfNoneMatch sets the optional parameter which makes the operation
158729// fail if the object's ETag matches the given value. This is useful for
158730// getting updates only after the object has changed since the last
158731// request. Use googleapi.IsNotModified to check whether the response
158732// error from Do is the result of In-None-Match.
158733func (c *UrlMapsGetCall) IfNoneMatch(entityTag string) *UrlMapsGetCall {
158734	c.ifNoneMatch_ = entityTag
158735	return c
158736}
158737
158738// Context sets the context to be used in this call's Do method. Any
158739// pending HTTP request will be aborted if the provided context is
158740// canceled.
158741func (c *UrlMapsGetCall) Context(ctx context.Context) *UrlMapsGetCall {
158742	c.ctx_ = ctx
158743	return c
158744}
158745
158746// Header returns an http.Header that can be modified by the caller to
158747// add HTTP headers to the request.
158748func (c *UrlMapsGetCall) Header() http.Header {
158749	if c.header_ == nil {
158750		c.header_ = make(http.Header)
158751	}
158752	return c.header_
158753}
158754
158755func (c *UrlMapsGetCall) doRequest(alt string) (*http.Response, error) {
158756	reqHeaders := make(http.Header)
158757	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
158758	for k, v := range c.header_ {
158759		reqHeaders[k] = v
158760	}
158761	reqHeaders.Set("User-Agent", c.s.userAgent())
158762	if c.ifNoneMatch_ != "" {
158763		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
158764	}
158765	var body io.Reader = nil
158766	c.urlParams_.Set("alt", alt)
158767	c.urlParams_.Set("prettyPrint", "false")
158768	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}")
158769	urls += "?" + c.urlParams_.Encode()
158770	req, err := http.NewRequest("GET", urls, body)
158771	if err != nil {
158772		return nil, err
158773	}
158774	req.Header = reqHeaders
158775	googleapi.Expand(req.URL, map[string]string{
158776		"project": c.project,
158777		"urlMap":  c.urlMap,
158778	})
158779	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158780}
158781
158782// Do executes the "compute.urlMaps.get" call.
158783// Exactly one of *UrlMap or error will be non-nil. Any non-2xx status
158784// code is an error. Response headers are in either
158785// *UrlMap.ServerResponse.Header or (if a response was returned at all)
158786// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
158787// check whether the returned error was because http.StatusNotModified
158788// was returned.
158789func (c *UrlMapsGetCall) Do(opts ...googleapi.CallOption) (*UrlMap, error) {
158790	gensupport.SetOptions(c.urlParams_, opts...)
158791	res, err := c.doRequest("json")
158792	if res != nil && res.StatusCode == http.StatusNotModified {
158793		if res.Body != nil {
158794			res.Body.Close()
158795		}
158796		return nil, &googleapi.Error{
158797			Code:   res.StatusCode,
158798			Header: res.Header,
158799		}
158800	}
158801	if err != nil {
158802		return nil, err
158803	}
158804	defer googleapi.CloseBody(res)
158805	if err := googleapi.CheckResponse(res); err != nil {
158806		return nil, err
158807	}
158808	ret := &UrlMap{
158809		ServerResponse: googleapi.ServerResponse{
158810			Header:         res.Header,
158811			HTTPStatusCode: res.StatusCode,
158812		},
158813	}
158814	target := &ret
158815	if err := gensupport.DecodeResponse(target, res); err != nil {
158816		return nil, err
158817	}
158818	return ret, nil
158819	// {
158820	//   "description": "Returns the specified UrlMap resource. Gets a list of available URL maps by making a list() request.",
158821	//   "httpMethod": "GET",
158822	//   "id": "compute.urlMaps.get",
158823	//   "parameterOrder": [
158824	//     "project",
158825	//     "urlMap"
158826	//   ],
158827	//   "parameters": {
158828	//     "project": {
158829	//       "description": "Project ID for this request.",
158830	//       "location": "path",
158831	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
158832	//       "required": true,
158833	//       "type": "string"
158834	//     },
158835	//     "urlMap": {
158836	//       "description": "Name of the UrlMap resource to return.",
158837	//       "location": "path",
158838	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
158839	//       "required": true,
158840	//       "type": "string"
158841	//     }
158842	//   },
158843	//   "path": "projects/{project}/global/urlMaps/{urlMap}",
158844	//   "response": {
158845	//     "$ref": "UrlMap"
158846	//   },
158847	//   "scopes": [
158848	//     "https://www.googleapis.com/auth/cloud-platform",
158849	//     "https://www.googleapis.com/auth/compute",
158850	//     "https://www.googleapis.com/auth/compute.readonly"
158851	//   ]
158852	// }
158853
158854}
158855
158856// method id "compute.urlMaps.insert":
158857
158858type UrlMapsInsertCall struct {
158859	s          *Service
158860	project    string
158861	urlmap     *UrlMap
158862	urlParams_ gensupport.URLParams
158863	ctx_       context.Context
158864	header_    http.Header
158865}
158866
158867// Insert: Creates a UrlMap resource in the specified project using the
158868// data included in the request.
158869//
158870// - project: Project ID for this request.
158871// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/insert
158872func (r *UrlMapsService) Insert(project string, urlmap *UrlMap) *UrlMapsInsertCall {
158873	c := &UrlMapsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
158874	c.project = project
158875	c.urlmap = urlmap
158876	return c
158877}
158878
158879// RequestId sets the optional parameter "requestId": An optional
158880// request ID to identify requests. Specify a unique request ID so that
158881// if you must retry your request, the server will know to ignore the
158882// request if it has already been completed.
158883//
158884// For example, consider a situation where you make an initial request
158885// and the request times out. If you make the request again with the
158886// same request ID, the server can check if original operation with the
158887// same request ID was received, and if so, will ignore the second
158888// request. This prevents clients from accidentally creating duplicate
158889// commitments.
158890//
158891// The request ID must be a valid UUID with the exception that zero UUID
158892// is not supported (00000000-0000-0000-0000-000000000000).
158893func (c *UrlMapsInsertCall) RequestId(requestId string) *UrlMapsInsertCall {
158894	c.urlParams_.Set("requestId", requestId)
158895	return c
158896}
158897
158898// Fields allows partial responses to be retrieved. See
158899// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
158900// for more information.
158901func (c *UrlMapsInsertCall) Fields(s ...googleapi.Field) *UrlMapsInsertCall {
158902	c.urlParams_.Set("fields", googleapi.CombineFields(s))
158903	return c
158904}
158905
158906// Context sets the context to be used in this call's Do method. Any
158907// pending HTTP request will be aborted if the provided context is
158908// canceled.
158909func (c *UrlMapsInsertCall) Context(ctx context.Context) *UrlMapsInsertCall {
158910	c.ctx_ = ctx
158911	return c
158912}
158913
158914// Header returns an http.Header that can be modified by the caller to
158915// add HTTP headers to the request.
158916func (c *UrlMapsInsertCall) Header() http.Header {
158917	if c.header_ == nil {
158918		c.header_ = make(http.Header)
158919	}
158920	return c.header_
158921}
158922
158923func (c *UrlMapsInsertCall) doRequest(alt string) (*http.Response, error) {
158924	reqHeaders := make(http.Header)
158925	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
158926	for k, v := range c.header_ {
158927		reqHeaders[k] = v
158928	}
158929	reqHeaders.Set("User-Agent", c.s.userAgent())
158930	var body io.Reader = nil
158931	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
158932	if err != nil {
158933		return nil, err
158934	}
158935	reqHeaders.Set("Content-Type", "application/json")
158936	c.urlParams_.Set("alt", alt)
158937	c.urlParams_.Set("prettyPrint", "false")
158938	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps")
158939	urls += "?" + c.urlParams_.Encode()
158940	req, err := http.NewRequest("POST", urls, body)
158941	if err != nil {
158942		return nil, err
158943	}
158944	req.Header = reqHeaders
158945	googleapi.Expand(req.URL, map[string]string{
158946		"project": c.project,
158947	})
158948	return gensupport.SendRequest(c.ctx_, c.s.client, req)
158949}
158950
158951// Do executes the "compute.urlMaps.insert" call.
158952// Exactly one of *Operation or error will be non-nil. Any non-2xx
158953// status code is an error. Response headers are in either
158954// *Operation.ServerResponse.Header or (if a response was returned at
158955// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
158956// to check whether the returned error was because
158957// http.StatusNotModified was returned.
158958func (c *UrlMapsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
158959	gensupport.SetOptions(c.urlParams_, opts...)
158960	res, err := c.doRequest("json")
158961	if res != nil && res.StatusCode == http.StatusNotModified {
158962		if res.Body != nil {
158963			res.Body.Close()
158964		}
158965		return nil, &googleapi.Error{
158966			Code:   res.StatusCode,
158967			Header: res.Header,
158968		}
158969	}
158970	if err != nil {
158971		return nil, err
158972	}
158973	defer googleapi.CloseBody(res)
158974	if err := googleapi.CheckResponse(res); err != nil {
158975		return nil, err
158976	}
158977	ret := &Operation{
158978		ServerResponse: googleapi.ServerResponse{
158979			Header:         res.Header,
158980			HTTPStatusCode: res.StatusCode,
158981		},
158982	}
158983	target := &ret
158984	if err := gensupport.DecodeResponse(target, res); err != nil {
158985		return nil, err
158986	}
158987	return ret, nil
158988	// {
158989	//   "description": "Creates a UrlMap resource in the specified project using the data included in the request.",
158990	//   "httpMethod": "POST",
158991	//   "id": "compute.urlMaps.insert",
158992	//   "parameterOrder": [
158993	//     "project"
158994	//   ],
158995	//   "parameters": {
158996	//     "project": {
158997	//       "description": "Project ID for this request.",
158998	//       "location": "path",
158999	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159000	//       "required": true,
159001	//       "type": "string"
159002	//     },
159003	//     "requestId": {
159004	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
159005	//       "location": "query",
159006	//       "type": "string"
159007	//     }
159008	//   },
159009	//   "path": "projects/{project}/global/urlMaps",
159010	//   "request": {
159011	//     "$ref": "UrlMap"
159012	//   },
159013	//   "response": {
159014	//     "$ref": "Operation"
159015	//   },
159016	//   "scopes": [
159017	//     "https://www.googleapis.com/auth/cloud-platform",
159018	//     "https://www.googleapis.com/auth/compute"
159019	//   ]
159020	// }
159021
159022}
159023
159024// method id "compute.urlMaps.invalidateCache":
159025
159026type UrlMapsInvalidateCacheCall struct {
159027	s                     *Service
159028	project               string
159029	urlMap                string
159030	cacheinvalidationrule *CacheInvalidationRule
159031	urlParams_            gensupport.URLParams
159032	ctx_                  context.Context
159033	header_               http.Header
159034}
159035
159036// InvalidateCache: Initiates a cache invalidation operation,
159037// invalidating the specified path, scoped to the specified UrlMap.
159038//
159039// For more information, see Invalidating cached content
159040// (/cdn/docs/invalidating-cached-content).
159041//
159042// - project: Project ID for this request.
159043// - urlMap: Name of the UrlMap scoping this request.
159044func (r *UrlMapsService) InvalidateCache(project string, urlMap string, cacheinvalidationrule *CacheInvalidationRule) *UrlMapsInvalidateCacheCall {
159045	c := &UrlMapsInvalidateCacheCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159046	c.project = project
159047	c.urlMap = urlMap
159048	c.cacheinvalidationrule = cacheinvalidationrule
159049	return c
159050}
159051
159052// RequestId sets the optional parameter "requestId": An optional
159053// request ID to identify requests. Specify a unique request ID so that
159054// if you must retry your request, the server will know to ignore the
159055// request if it has already been completed.
159056//
159057// For example, consider a situation where you make an initial request
159058// and the request times out. If you make the request again with the
159059// same request ID, the server can check if original operation with the
159060// same request ID was received, and if so, will ignore the second
159061// request. This prevents clients from accidentally creating duplicate
159062// commitments.
159063//
159064// The request ID must be a valid UUID with the exception that zero UUID
159065// is not supported (00000000-0000-0000-0000-000000000000).
159066func (c *UrlMapsInvalidateCacheCall) RequestId(requestId string) *UrlMapsInvalidateCacheCall {
159067	c.urlParams_.Set("requestId", requestId)
159068	return c
159069}
159070
159071// Fields allows partial responses to be retrieved. See
159072// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159073// for more information.
159074func (c *UrlMapsInvalidateCacheCall) Fields(s ...googleapi.Field) *UrlMapsInvalidateCacheCall {
159075	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159076	return c
159077}
159078
159079// Context sets the context to be used in this call's Do method. Any
159080// pending HTTP request will be aborted if the provided context is
159081// canceled.
159082func (c *UrlMapsInvalidateCacheCall) Context(ctx context.Context) *UrlMapsInvalidateCacheCall {
159083	c.ctx_ = ctx
159084	return c
159085}
159086
159087// Header returns an http.Header that can be modified by the caller to
159088// add HTTP headers to the request.
159089func (c *UrlMapsInvalidateCacheCall) Header() http.Header {
159090	if c.header_ == nil {
159091		c.header_ = make(http.Header)
159092	}
159093	return c.header_
159094}
159095
159096func (c *UrlMapsInvalidateCacheCall) doRequest(alt string) (*http.Response, error) {
159097	reqHeaders := make(http.Header)
159098	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
159099	for k, v := range c.header_ {
159100		reqHeaders[k] = v
159101	}
159102	reqHeaders.Set("User-Agent", c.s.userAgent())
159103	var body io.Reader = nil
159104	body, err := googleapi.WithoutDataWrapper.JSONReader(c.cacheinvalidationrule)
159105	if err != nil {
159106		return nil, err
159107	}
159108	reqHeaders.Set("Content-Type", "application/json")
159109	c.urlParams_.Set("alt", alt)
159110	c.urlParams_.Set("prettyPrint", "false")
159111	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}/invalidateCache")
159112	urls += "?" + c.urlParams_.Encode()
159113	req, err := http.NewRequest("POST", urls, body)
159114	if err != nil {
159115		return nil, err
159116	}
159117	req.Header = reqHeaders
159118	googleapi.Expand(req.URL, map[string]string{
159119		"project": c.project,
159120		"urlMap":  c.urlMap,
159121	})
159122	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159123}
159124
159125// Do executes the "compute.urlMaps.invalidateCache" call.
159126// Exactly one of *Operation or error will be non-nil. Any non-2xx
159127// status code is an error. Response headers are in either
159128// *Operation.ServerResponse.Header or (if a response was returned at
159129// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
159130// to check whether the returned error was because
159131// http.StatusNotModified was returned.
159132func (c *UrlMapsInvalidateCacheCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
159133	gensupport.SetOptions(c.urlParams_, opts...)
159134	res, err := c.doRequest("json")
159135	if res != nil && res.StatusCode == http.StatusNotModified {
159136		if res.Body != nil {
159137			res.Body.Close()
159138		}
159139		return nil, &googleapi.Error{
159140			Code:   res.StatusCode,
159141			Header: res.Header,
159142		}
159143	}
159144	if err != nil {
159145		return nil, err
159146	}
159147	defer googleapi.CloseBody(res)
159148	if err := googleapi.CheckResponse(res); err != nil {
159149		return nil, err
159150	}
159151	ret := &Operation{
159152		ServerResponse: googleapi.ServerResponse{
159153			Header:         res.Header,
159154			HTTPStatusCode: res.StatusCode,
159155		},
159156	}
159157	target := &ret
159158	if err := gensupport.DecodeResponse(target, res); err != nil {
159159		return nil, err
159160	}
159161	return ret, nil
159162	// {
159163	//   "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).",
159164	//   "httpMethod": "POST",
159165	//   "id": "compute.urlMaps.invalidateCache",
159166	//   "parameterOrder": [
159167	//     "project",
159168	//     "urlMap"
159169	//   ],
159170	//   "parameters": {
159171	//     "project": {
159172	//       "description": "Project ID for this request.",
159173	//       "location": "path",
159174	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159175	//       "required": true,
159176	//       "type": "string"
159177	//     },
159178	//     "requestId": {
159179	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
159180	//       "location": "query",
159181	//       "type": "string"
159182	//     },
159183	//     "urlMap": {
159184	//       "description": "Name of the UrlMap scoping this request.",
159185	//       "location": "path",
159186	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
159187	//       "required": true,
159188	//       "type": "string"
159189	//     }
159190	//   },
159191	//   "path": "projects/{project}/global/urlMaps/{urlMap}/invalidateCache",
159192	//   "request": {
159193	//     "$ref": "CacheInvalidationRule"
159194	//   },
159195	//   "response": {
159196	//     "$ref": "Operation"
159197	//   },
159198	//   "scopes": [
159199	//     "https://www.googleapis.com/auth/cloud-platform",
159200	//     "https://www.googleapis.com/auth/compute"
159201	//   ]
159202	// }
159203
159204}
159205
159206// method id "compute.urlMaps.list":
159207
159208type UrlMapsListCall struct {
159209	s            *Service
159210	project      string
159211	urlParams_   gensupport.URLParams
159212	ifNoneMatch_ string
159213	ctx_         context.Context
159214	header_      http.Header
159215}
159216
159217// List: Retrieves the list of UrlMap resources available to the
159218// specified project.
159219//
159220// - project: Project ID for this request.
159221// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/list
159222func (r *UrlMapsService) List(project string) *UrlMapsListCall {
159223	c := &UrlMapsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159224	c.project = project
159225	return c
159226}
159227
159228// Filter sets the optional parameter "filter": A filter expression that
159229// filters resources listed in the response. The expression must specify
159230// the field name, a comparison operator, and the value that you want to
159231// use for filtering. The value must be a string, a number, or a
159232// boolean. The comparison operator must be either `=`, `!=`, `>`, or
159233// `<`.
159234//
159235// For example, if you are filtering Compute Engine instances, you can
159236// exclude instances named `example-instance` by specifying `name !=
159237// example-instance`.
159238//
159239// You can also filter nested fields. For example, you could specify
159240// `scheduling.automaticRestart = false` to include instances only if
159241// they are not scheduled for automatic restarts. You can use filtering
159242// on nested fields to filter based on resource labels.
159243//
159244// To filter on multiple expressions, provide each separate expression
159245// within parentheses. For example: ``` (scheduling.automaticRestart =
159246// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
159247// is an `AND` expression. However, you can include `AND` and `OR`
159248// expressions explicitly. For example: ``` (cpuPlatform = "Intel
159249// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
159250// (scheduling.automaticRestart = true) ```
159251func (c *UrlMapsListCall) Filter(filter string) *UrlMapsListCall {
159252	c.urlParams_.Set("filter", filter)
159253	return c
159254}
159255
159256// MaxResults sets the optional parameter "maxResults": The maximum
159257// number of results per page that should be returned. If the number of
159258// available results is larger than `maxResults`, Compute Engine returns
159259// a `nextPageToken` that can be used to get the next page of results in
159260// subsequent list requests. Acceptable values are `0` to `500`,
159261// inclusive. (Default: `500`)
159262func (c *UrlMapsListCall) MaxResults(maxResults int64) *UrlMapsListCall {
159263	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
159264	return c
159265}
159266
159267// OrderBy sets the optional parameter "orderBy": Sorts list results by
159268// a certain order. By default, results are returned in alphanumerical
159269// order based on the resource name.
159270//
159271// You can also sort results in descending order based on the creation
159272// timestamp using `orderBy="creationTimestamp desc". This sorts
159273// results based on the `creationTimestamp` field in reverse
159274// chronological order (newest result first). Use this to sort resources
159275// like operations so that the newest operation is returned
159276// first.
159277//
159278// Currently, only sorting by `name` or `creationTimestamp desc` is
159279// supported.
159280func (c *UrlMapsListCall) OrderBy(orderBy string) *UrlMapsListCall {
159281	c.urlParams_.Set("orderBy", orderBy)
159282	return c
159283}
159284
159285// PageToken sets the optional parameter "pageToken": Specifies a page
159286// token to use. Set `pageToken` to the `nextPageToken` returned by a
159287// previous list request to get the next page of results.
159288func (c *UrlMapsListCall) PageToken(pageToken string) *UrlMapsListCall {
159289	c.urlParams_.Set("pageToken", pageToken)
159290	return c
159291}
159292
159293// ReturnPartialSuccess sets the optional parameter
159294// "returnPartialSuccess": Opt-in for partial success behavior which
159295// provides partial results in case of failure. The default value is
159296// false.
159297func (c *UrlMapsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *UrlMapsListCall {
159298	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
159299	return c
159300}
159301
159302// Fields allows partial responses to be retrieved. See
159303// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159304// for more information.
159305func (c *UrlMapsListCall) Fields(s ...googleapi.Field) *UrlMapsListCall {
159306	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159307	return c
159308}
159309
159310// IfNoneMatch sets the optional parameter which makes the operation
159311// fail if the object's ETag matches the given value. This is useful for
159312// getting updates only after the object has changed since the last
159313// request. Use googleapi.IsNotModified to check whether the response
159314// error from Do is the result of In-None-Match.
159315func (c *UrlMapsListCall) IfNoneMatch(entityTag string) *UrlMapsListCall {
159316	c.ifNoneMatch_ = entityTag
159317	return c
159318}
159319
159320// Context sets the context to be used in this call's Do method. Any
159321// pending HTTP request will be aborted if the provided context is
159322// canceled.
159323func (c *UrlMapsListCall) Context(ctx context.Context) *UrlMapsListCall {
159324	c.ctx_ = ctx
159325	return c
159326}
159327
159328// Header returns an http.Header that can be modified by the caller to
159329// add HTTP headers to the request.
159330func (c *UrlMapsListCall) Header() http.Header {
159331	if c.header_ == nil {
159332		c.header_ = make(http.Header)
159333	}
159334	return c.header_
159335}
159336
159337func (c *UrlMapsListCall) doRequest(alt string) (*http.Response, error) {
159338	reqHeaders := make(http.Header)
159339	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
159340	for k, v := range c.header_ {
159341		reqHeaders[k] = v
159342	}
159343	reqHeaders.Set("User-Agent", c.s.userAgent())
159344	if c.ifNoneMatch_ != "" {
159345		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
159346	}
159347	var body io.Reader = nil
159348	c.urlParams_.Set("alt", alt)
159349	c.urlParams_.Set("prettyPrint", "false")
159350	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps")
159351	urls += "?" + c.urlParams_.Encode()
159352	req, err := http.NewRequest("GET", urls, body)
159353	if err != nil {
159354		return nil, err
159355	}
159356	req.Header = reqHeaders
159357	googleapi.Expand(req.URL, map[string]string{
159358		"project": c.project,
159359	})
159360	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159361}
159362
159363// Do executes the "compute.urlMaps.list" call.
159364// Exactly one of *UrlMapList or error will be non-nil. Any non-2xx
159365// status code is an error. Response headers are in either
159366// *UrlMapList.ServerResponse.Header or (if a response was returned at
159367// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
159368// to check whether the returned error was because
159369// http.StatusNotModified was returned.
159370func (c *UrlMapsListCall) Do(opts ...googleapi.CallOption) (*UrlMapList, error) {
159371	gensupport.SetOptions(c.urlParams_, opts...)
159372	res, err := c.doRequest("json")
159373	if res != nil && res.StatusCode == http.StatusNotModified {
159374		if res.Body != nil {
159375			res.Body.Close()
159376		}
159377		return nil, &googleapi.Error{
159378			Code:   res.StatusCode,
159379			Header: res.Header,
159380		}
159381	}
159382	if err != nil {
159383		return nil, err
159384	}
159385	defer googleapi.CloseBody(res)
159386	if err := googleapi.CheckResponse(res); err != nil {
159387		return nil, err
159388	}
159389	ret := &UrlMapList{
159390		ServerResponse: googleapi.ServerResponse{
159391			Header:         res.Header,
159392			HTTPStatusCode: res.StatusCode,
159393		},
159394	}
159395	target := &ret
159396	if err := gensupport.DecodeResponse(target, res); err != nil {
159397		return nil, err
159398	}
159399	return ret, nil
159400	// {
159401	//   "description": "Retrieves the list of UrlMap resources available to the specified project.",
159402	//   "httpMethod": "GET",
159403	//   "id": "compute.urlMaps.list",
159404	//   "parameterOrder": [
159405	//     "project"
159406	//   ],
159407	//   "parameters": {
159408	//     "filter": {
159409	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
159410	//       "location": "query",
159411	//       "type": "string"
159412	//     },
159413	//     "maxResults": {
159414	//       "default": "500",
159415	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
159416	//       "format": "uint32",
159417	//       "location": "query",
159418	//       "minimum": "0",
159419	//       "type": "integer"
159420	//     },
159421	//     "orderBy": {
159422	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
159423	//       "location": "query",
159424	//       "type": "string"
159425	//     },
159426	//     "pageToken": {
159427	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
159428	//       "location": "query",
159429	//       "type": "string"
159430	//     },
159431	//     "project": {
159432	//       "description": "Project ID for this request.",
159433	//       "location": "path",
159434	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159435	//       "required": true,
159436	//       "type": "string"
159437	//     },
159438	//     "returnPartialSuccess": {
159439	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
159440	//       "location": "query",
159441	//       "type": "boolean"
159442	//     }
159443	//   },
159444	//   "path": "projects/{project}/global/urlMaps",
159445	//   "response": {
159446	//     "$ref": "UrlMapList"
159447	//   },
159448	//   "scopes": [
159449	//     "https://www.googleapis.com/auth/cloud-platform",
159450	//     "https://www.googleapis.com/auth/compute",
159451	//     "https://www.googleapis.com/auth/compute.readonly"
159452	//   ]
159453	// }
159454
159455}
159456
159457// Pages invokes f for each page of results.
159458// A non-nil error returned from f will halt the iteration.
159459// The provided context supersedes any context provided to the Context method.
159460func (c *UrlMapsListCall) Pages(ctx context.Context, f func(*UrlMapList) error) error {
159461	c.ctx_ = ctx
159462	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
159463	for {
159464		x, err := c.Do()
159465		if err != nil {
159466			return err
159467		}
159468		if err := f(x); err != nil {
159469			return err
159470		}
159471		if x.NextPageToken == "" {
159472			return nil
159473		}
159474		c.PageToken(x.NextPageToken)
159475	}
159476}
159477
159478// method id "compute.urlMaps.patch":
159479
159480type UrlMapsPatchCall struct {
159481	s          *Service
159482	project    string
159483	urlMap     string
159484	urlmap     *UrlMap
159485	urlParams_ gensupport.URLParams
159486	ctx_       context.Context
159487	header_    http.Header
159488}
159489
159490// Patch: Patches the specified UrlMap resource with the data included
159491// in the request. This method supports PATCH semantics and uses the
159492// JSON merge patch format and processing rules.
159493//
159494// - project: Project ID for this request.
159495// - urlMap: Name of the UrlMap resource to patch.
159496// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/patch
159497func (r *UrlMapsService) Patch(project string, urlMap string, urlmap *UrlMap) *UrlMapsPatchCall {
159498	c := &UrlMapsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159499	c.project = project
159500	c.urlMap = urlMap
159501	c.urlmap = urlmap
159502	return c
159503}
159504
159505// RequestId sets the optional parameter "requestId": An optional
159506// request ID to identify requests. Specify a unique request ID so that
159507// if you must retry your request, the server will know to ignore the
159508// request if it has already been completed.
159509//
159510// For example, consider a situation where you make an initial request
159511// and the request times out. If you make the request again with the
159512// same request ID, the server can check if original operation with the
159513// same request ID was received, and if so, will ignore the second
159514// request. This prevents clients from accidentally creating duplicate
159515// commitments.
159516//
159517// The request ID must be a valid UUID with the exception that zero UUID
159518// is not supported (00000000-0000-0000-0000-000000000000).
159519func (c *UrlMapsPatchCall) RequestId(requestId string) *UrlMapsPatchCall {
159520	c.urlParams_.Set("requestId", requestId)
159521	return c
159522}
159523
159524// Fields allows partial responses to be retrieved. See
159525// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159526// for more information.
159527func (c *UrlMapsPatchCall) Fields(s ...googleapi.Field) *UrlMapsPatchCall {
159528	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159529	return c
159530}
159531
159532// Context sets the context to be used in this call's Do method. Any
159533// pending HTTP request will be aborted if the provided context is
159534// canceled.
159535func (c *UrlMapsPatchCall) Context(ctx context.Context) *UrlMapsPatchCall {
159536	c.ctx_ = ctx
159537	return c
159538}
159539
159540// Header returns an http.Header that can be modified by the caller to
159541// add HTTP headers to the request.
159542func (c *UrlMapsPatchCall) Header() http.Header {
159543	if c.header_ == nil {
159544		c.header_ = make(http.Header)
159545	}
159546	return c.header_
159547}
159548
159549func (c *UrlMapsPatchCall) doRequest(alt string) (*http.Response, error) {
159550	reqHeaders := make(http.Header)
159551	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
159552	for k, v := range c.header_ {
159553		reqHeaders[k] = v
159554	}
159555	reqHeaders.Set("User-Agent", c.s.userAgent())
159556	var body io.Reader = nil
159557	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
159558	if err != nil {
159559		return nil, err
159560	}
159561	reqHeaders.Set("Content-Type", "application/json")
159562	c.urlParams_.Set("alt", alt)
159563	c.urlParams_.Set("prettyPrint", "false")
159564	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}")
159565	urls += "?" + c.urlParams_.Encode()
159566	req, err := http.NewRequest("PATCH", urls, body)
159567	if err != nil {
159568		return nil, err
159569	}
159570	req.Header = reqHeaders
159571	googleapi.Expand(req.URL, map[string]string{
159572		"project": c.project,
159573		"urlMap":  c.urlMap,
159574	})
159575	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159576}
159577
159578// Do executes the "compute.urlMaps.patch" call.
159579// Exactly one of *Operation or error will be non-nil. Any non-2xx
159580// status code is an error. Response headers are in either
159581// *Operation.ServerResponse.Header or (if a response was returned at
159582// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
159583// to check whether the returned error was because
159584// http.StatusNotModified was returned.
159585func (c *UrlMapsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
159586	gensupport.SetOptions(c.urlParams_, opts...)
159587	res, err := c.doRequest("json")
159588	if res != nil && res.StatusCode == http.StatusNotModified {
159589		if res.Body != nil {
159590			res.Body.Close()
159591		}
159592		return nil, &googleapi.Error{
159593			Code:   res.StatusCode,
159594			Header: res.Header,
159595		}
159596	}
159597	if err != nil {
159598		return nil, err
159599	}
159600	defer googleapi.CloseBody(res)
159601	if err := googleapi.CheckResponse(res); err != nil {
159602		return nil, err
159603	}
159604	ret := &Operation{
159605		ServerResponse: googleapi.ServerResponse{
159606			Header:         res.Header,
159607			HTTPStatusCode: res.StatusCode,
159608		},
159609	}
159610	target := &ret
159611	if err := gensupport.DecodeResponse(target, res); err != nil {
159612		return nil, err
159613	}
159614	return ret, nil
159615	// {
159616	//   "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.",
159617	//   "httpMethod": "PATCH",
159618	//   "id": "compute.urlMaps.patch",
159619	//   "parameterOrder": [
159620	//     "project",
159621	//     "urlMap"
159622	//   ],
159623	//   "parameters": {
159624	//     "project": {
159625	//       "description": "Project ID for this request.",
159626	//       "location": "path",
159627	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159628	//       "required": true,
159629	//       "type": "string"
159630	//     },
159631	//     "requestId": {
159632	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
159633	//       "location": "query",
159634	//       "type": "string"
159635	//     },
159636	//     "urlMap": {
159637	//       "description": "Name of the UrlMap resource to patch.",
159638	//       "location": "path",
159639	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
159640	//       "required": true,
159641	//       "type": "string"
159642	//     }
159643	//   },
159644	//   "path": "projects/{project}/global/urlMaps/{urlMap}",
159645	//   "request": {
159646	//     "$ref": "UrlMap"
159647	//   },
159648	//   "response": {
159649	//     "$ref": "Operation"
159650	//   },
159651	//   "scopes": [
159652	//     "https://www.googleapis.com/auth/cloud-platform",
159653	//     "https://www.googleapis.com/auth/compute"
159654	//   ]
159655	// }
159656
159657}
159658
159659// method id "compute.urlMaps.update":
159660
159661type UrlMapsUpdateCall struct {
159662	s          *Service
159663	project    string
159664	urlMap     string
159665	urlmap     *UrlMap
159666	urlParams_ gensupport.URLParams
159667	ctx_       context.Context
159668	header_    http.Header
159669}
159670
159671// Update: Updates the specified UrlMap resource with the data included
159672// in the request.
159673//
159674// - project: Project ID for this request.
159675// - urlMap: Name of the UrlMap resource to update.
159676// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/update
159677func (r *UrlMapsService) Update(project string, urlMap string, urlmap *UrlMap) *UrlMapsUpdateCall {
159678	c := &UrlMapsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159679	c.project = project
159680	c.urlMap = urlMap
159681	c.urlmap = urlmap
159682	return c
159683}
159684
159685// RequestId sets the optional parameter "requestId": An optional
159686// request ID to identify requests. Specify a unique request ID so that
159687// if you must retry your request, the server will know to ignore the
159688// request if it has already been completed.
159689//
159690// For example, consider a situation where you make an initial request
159691// and the request times out. If you make the request again with the
159692// same request ID, the server can check if original operation with the
159693// same request ID was received, and if so, will ignore the second
159694// request. This prevents clients from accidentally creating duplicate
159695// commitments.
159696//
159697// The request ID must be a valid UUID with the exception that zero UUID
159698// is not supported (00000000-0000-0000-0000-000000000000).
159699func (c *UrlMapsUpdateCall) RequestId(requestId string) *UrlMapsUpdateCall {
159700	c.urlParams_.Set("requestId", requestId)
159701	return c
159702}
159703
159704// Fields allows partial responses to be retrieved. See
159705// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159706// for more information.
159707func (c *UrlMapsUpdateCall) Fields(s ...googleapi.Field) *UrlMapsUpdateCall {
159708	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159709	return c
159710}
159711
159712// Context sets the context to be used in this call's Do method. Any
159713// pending HTTP request will be aborted if the provided context is
159714// canceled.
159715func (c *UrlMapsUpdateCall) Context(ctx context.Context) *UrlMapsUpdateCall {
159716	c.ctx_ = ctx
159717	return c
159718}
159719
159720// Header returns an http.Header that can be modified by the caller to
159721// add HTTP headers to the request.
159722func (c *UrlMapsUpdateCall) Header() http.Header {
159723	if c.header_ == nil {
159724		c.header_ = make(http.Header)
159725	}
159726	return c.header_
159727}
159728
159729func (c *UrlMapsUpdateCall) doRequest(alt string) (*http.Response, error) {
159730	reqHeaders := make(http.Header)
159731	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
159732	for k, v := range c.header_ {
159733		reqHeaders[k] = v
159734	}
159735	reqHeaders.Set("User-Agent", c.s.userAgent())
159736	var body io.Reader = nil
159737	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
159738	if err != nil {
159739		return nil, err
159740	}
159741	reqHeaders.Set("Content-Type", "application/json")
159742	c.urlParams_.Set("alt", alt)
159743	c.urlParams_.Set("prettyPrint", "false")
159744	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}")
159745	urls += "?" + c.urlParams_.Encode()
159746	req, err := http.NewRequest("PUT", urls, body)
159747	if err != nil {
159748		return nil, err
159749	}
159750	req.Header = reqHeaders
159751	googleapi.Expand(req.URL, map[string]string{
159752		"project": c.project,
159753		"urlMap":  c.urlMap,
159754	})
159755	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159756}
159757
159758// Do executes the "compute.urlMaps.update" call.
159759// Exactly one of *Operation or error will be non-nil. Any non-2xx
159760// status code is an error. Response headers are in either
159761// *Operation.ServerResponse.Header or (if a response was returned at
159762// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
159763// to check whether the returned error was because
159764// http.StatusNotModified was returned.
159765func (c *UrlMapsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
159766	gensupport.SetOptions(c.urlParams_, opts...)
159767	res, err := c.doRequest("json")
159768	if res != nil && res.StatusCode == http.StatusNotModified {
159769		if res.Body != nil {
159770			res.Body.Close()
159771		}
159772		return nil, &googleapi.Error{
159773			Code:   res.StatusCode,
159774			Header: res.Header,
159775		}
159776	}
159777	if err != nil {
159778		return nil, err
159779	}
159780	defer googleapi.CloseBody(res)
159781	if err := googleapi.CheckResponse(res); err != nil {
159782		return nil, err
159783	}
159784	ret := &Operation{
159785		ServerResponse: googleapi.ServerResponse{
159786			Header:         res.Header,
159787			HTTPStatusCode: res.StatusCode,
159788		},
159789	}
159790	target := &ret
159791	if err := gensupport.DecodeResponse(target, res); err != nil {
159792		return nil, err
159793	}
159794	return ret, nil
159795	// {
159796	//   "description": "Updates the specified UrlMap resource with the data included in the request.",
159797	//   "httpMethod": "PUT",
159798	//   "id": "compute.urlMaps.update",
159799	//   "parameterOrder": [
159800	//     "project",
159801	//     "urlMap"
159802	//   ],
159803	//   "parameters": {
159804	//     "project": {
159805	//       "description": "Project ID for this request.",
159806	//       "location": "path",
159807	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159808	//       "required": true,
159809	//       "type": "string"
159810	//     },
159811	//     "requestId": {
159812	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
159813	//       "location": "query",
159814	//       "type": "string"
159815	//     },
159816	//     "urlMap": {
159817	//       "description": "Name of the UrlMap resource to update.",
159818	//       "location": "path",
159819	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
159820	//       "required": true,
159821	//       "type": "string"
159822	//     }
159823	//   },
159824	//   "path": "projects/{project}/global/urlMaps/{urlMap}",
159825	//   "request": {
159826	//     "$ref": "UrlMap"
159827	//   },
159828	//   "response": {
159829	//     "$ref": "Operation"
159830	//   },
159831	//   "scopes": [
159832	//     "https://www.googleapis.com/auth/cloud-platform",
159833	//     "https://www.googleapis.com/auth/compute"
159834	//   ]
159835	// }
159836
159837}
159838
159839// method id "compute.urlMaps.validate":
159840
159841type UrlMapsValidateCall struct {
159842	s                      *Service
159843	project                string
159844	urlMap                 string
159845	urlmapsvalidaterequest *UrlMapsValidateRequest
159846	urlParams_             gensupport.URLParams
159847	ctx_                   context.Context
159848	header_                http.Header
159849}
159850
159851// Validate: Runs static validation for the UrlMap. In particular, the
159852// tests of the provided UrlMap will be run. Calling this method does
159853// NOT create the UrlMap.
159854//
159855// - project: Project ID for this request.
159856// - urlMap: Name of the UrlMap resource to be validated as.
159857// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/validate
159858func (r *UrlMapsService) Validate(project string, urlMap string, urlmapsvalidaterequest *UrlMapsValidateRequest) *UrlMapsValidateCall {
159859	c := &UrlMapsValidateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
159860	c.project = project
159861	c.urlMap = urlMap
159862	c.urlmapsvalidaterequest = urlmapsvalidaterequest
159863	return c
159864}
159865
159866// Fields allows partial responses to be retrieved. See
159867// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
159868// for more information.
159869func (c *UrlMapsValidateCall) Fields(s ...googleapi.Field) *UrlMapsValidateCall {
159870	c.urlParams_.Set("fields", googleapi.CombineFields(s))
159871	return c
159872}
159873
159874// Context sets the context to be used in this call's Do method. Any
159875// pending HTTP request will be aborted if the provided context is
159876// canceled.
159877func (c *UrlMapsValidateCall) Context(ctx context.Context) *UrlMapsValidateCall {
159878	c.ctx_ = ctx
159879	return c
159880}
159881
159882// Header returns an http.Header that can be modified by the caller to
159883// add HTTP headers to the request.
159884func (c *UrlMapsValidateCall) Header() http.Header {
159885	if c.header_ == nil {
159886		c.header_ = make(http.Header)
159887	}
159888	return c.header_
159889}
159890
159891func (c *UrlMapsValidateCall) doRequest(alt string) (*http.Response, error) {
159892	reqHeaders := make(http.Header)
159893	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
159894	for k, v := range c.header_ {
159895		reqHeaders[k] = v
159896	}
159897	reqHeaders.Set("User-Agent", c.s.userAgent())
159898	var body io.Reader = nil
159899	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapsvalidaterequest)
159900	if err != nil {
159901		return nil, err
159902	}
159903	reqHeaders.Set("Content-Type", "application/json")
159904	c.urlParams_.Set("alt", alt)
159905	c.urlParams_.Set("prettyPrint", "false")
159906	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/global/urlMaps/{urlMap}/validate")
159907	urls += "?" + c.urlParams_.Encode()
159908	req, err := http.NewRequest("POST", urls, body)
159909	if err != nil {
159910		return nil, err
159911	}
159912	req.Header = reqHeaders
159913	googleapi.Expand(req.URL, map[string]string{
159914		"project": c.project,
159915		"urlMap":  c.urlMap,
159916	})
159917	return gensupport.SendRequest(c.ctx_, c.s.client, req)
159918}
159919
159920// Do executes the "compute.urlMaps.validate" call.
159921// Exactly one of *UrlMapsValidateResponse or error will be non-nil. Any
159922// non-2xx status code is an error. Response headers are in either
159923// *UrlMapsValidateResponse.ServerResponse.Header or (if a response was
159924// returned at all) in error.(*googleapi.Error).Header. Use
159925// googleapi.IsNotModified to check whether the returned error was
159926// because http.StatusNotModified was returned.
159927func (c *UrlMapsValidateCall) Do(opts ...googleapi.CallOption) (*UrlMapsValidateResponse, error) {
159928	gensupport.SetOptions(c.urlParams_, opts...)
159929	res, err := c.doRequest("json")
159930	if res != nil && res.StatusCode == http.StatusNotModified {
159931		if res.Body != nil {
159932			res.Body.Close()
159933		}
159934		return nil, &googleapi.Error{
159935			Code:   res.StatusCode,
159936			Header: res.Header,
159937		}
159938	}
159939	if err != nil {
159940		return nil, err
159941	}
159942	defer googleapi.CloseBody(res)
159943	if err := googleapi.CheckResponse(res); err != nil {
159944		return nil, err
159945	}
159946	ret := &UrlMapsValidateResponse{
159947		ServerResponse: googleapi.ServerResponse{
159948			Header:         res.Header,
159949			HTTPStatusCode: res.StatusCode,
159950		},
159951	}
159952	target := &ret
159953	if err := gensupport.DecodeResponse(target, res); err != nil {
159954		return nil, err
159955	}
159956	return ret, nil
159957	// {
159958	//   "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.",
159959	//   "httpMethod": "POST",
159960	//   "id": "compute.urlMaps.validate",
159961	//   "parameterOrder": [
159962	//     "project",
159963	//     "urlMap"
159964	//   ],
159965	//   "parameters": {
159966	//     "project": {
159967	//       "description": "Project ID for this request.",
159968	//       "location": "path",
159969	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
159970	//       "required": true,
159971	//       "type": "string"
159972	//     },
159973	//     "urlMap": {
159974	//       "description": "Name of the UrlMap resource to be validated as.",
159975	//       "location": "path",
159976	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
159977	//       "required": true,
159978	//       "type": "string"
159979	//     }
159980	//   },
159981	//   "path": "projects/{project}/global/urlMaps/{urlMap}/validate",
159982	//   "request": {
159983	//     "$ref": "UrlMapsValidateRequest"
159984	//   },
159985	//   "response": {
159986	//     "$ref": "UrlMapsValidateResponse"
159987	//   },
159988	//   "scopes": [
159989	//     "https://www.googleapis.com/auth/cloud-platform",
159990	//     "https://www.googleapis.com/auth/compute"
159991	//   ]
159992	// }
159993
159994}
159995
159996// method id "compute.vpnGateways.aggregatedList":
159997
159998type VpnGatewaysAggregatedListCall struct {
159999	s            *Service
160000	project      string
160001	urlParams_   gensupport.URLParams
160002	ifNoneMatch_ string
160003	ctx_         context.Context
160004	header_      http.Header
160005}
160006
160007// AggregatedList: Retrieves an aggregated list of VPN gateways.
160008//
160009// - project: Project ID for this request.
160010func (r *VpnGatewaysService) AggregatedList(project string) *VpnGatewaysAggregatedListCall {
160011	c := &VpnGatewaysAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160012	c.project = project
160013	return c
160014}
160015
160016// Filter sets the optional parameter "filter": A filter expression that
160017// filters resources listed in the response. The expression must specify
160018// the field name, a comparison operator, and the value that you want to
160019// use for filtering. The value must be a string, a number, or a
160020// boolean. The comparison operator must be either `=`, `!=`, `>`, or
160021// `<`.
160022//
160023// For example, if you are filtering Compute Engine instances, you can
160024// exclude instances named `example-instance` by specifying `name !=
160025// example-instance`.
160026//
160027// You can also filter nested fields. For example, you could specify
160028// `scheduling.automaticRestart = false` to include instances only if
160029// they are not scheduled for automatic restarts. You can use filtering
160030// on nested fields to filter based on resource labels.
160031//
160032// To filter on multiple expressions, provide each separate expression
160033// within parentheses. For example: ``` (scheduling.automaticRestart =
160034// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
160035// is an `AND` expression. However, you can include `AND` and `OR`
160036// expressions explicitly. For example: ``` (cpuPlatform = "Intel
160037// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
160038// (scheduling.automaticRestart = true) ```
160039func (c *VpnGatewaysAggregatedListCall) Filter(filter string) *VpnGatewaysAggregatedListCall {
160040	c.urlParams_.Set("filter", filter)
160041	return c
160042}
160043
160044// IncludeAllScopes sets the optional parameter "includeAllScopes":
160045// Indicates whether every visible scope for each scope type (zone,
160046// region, global) should be included in the response. For new resource
160047// types added after this field, the flag has no effect as new resource
160048// types will always include every visible scope for each scope type in
160049// response. For resource types which predate this field, if this flag
160050// is omitted or false, only scopes of the scope types where the
160051// resource type is expected to be found will be included.
160052func (c *VpnGatewaysAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *VpnGatewaysAggregatedListCall {
160053	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
160054	return c
160055}
160056
160057// MaxResults sets the optional parameter "maxResults": The maximum
160058// number of results per page that should be returned. If the number of
160059// available results is larger than `maxResults`, Compute Engine returns
160060// a `nextPageToken` that can be used to get the next page of results in
160061// subsequent list requests. Acceptable values are `0` to `500`,
160062// inclusive. (Default: `500`)
160063func (c *VpnGatewaysAggregatedListCall) MaxResults(maxResults int64) *VpnGatewaysAggregatedListCall {
160064	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
160065	return c
160066}
160067
160068// OrderBy sets the optional parameter "orderBy": Sorts list results by
160069// a certain order. By default, results are returned in alphanumerical
160070// order based on the resource name.
160071//
160072// You can also sort results in descending order based on the creation
160073// timestamp using `orderBy="creationTimestamp desc". This sorts
160074// results based on the `creationTimestamp` field in reverse
160075// chronological order (newest result first). Use this to sort resources
160076// like operations so that the newest operation is returned
160077// first.
160078//
160079// Currently, only sorting by `name` or `creationTimestamp desc` is
160080// supported.
160081func (c *VpnGatewaysAggregatedListCall) OrderBy(orderBy string) *VpnGatewaysAggregatedListCall {
160082	c.urlParams_.Set("orderBy", orderBy)
160083	return c
160084}
160085
160086// PageToken sets the optional parameter "pageToken": Specifies a page
160087// token to use. Set `pageToken` to the `nextPageToken` returned by a
160088// previous list request to get the next page of results.
160089func (c *VpnGatewaysAggregatedListCall) PageToken(pageToken string) *VpnGatewaysAggregatedListCall {
160090	c.urlParams_.Set("pageToken", pageToken)
160091	return c
160092}
160093
160094// ReturnPartialSuccess sets the optional parameter
160095// "returnPartialSuccess": Opt-in for partial success behavior which
160096// provides partial results in case of failure. The default value is
160097// false.
160098func (c *VpnGatewaysAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *VpnGatewaysAggregatedListCall {
160099	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
160100	return c
160101}
160102
160103// Fields allows partial responses to be retrieved. See
160104// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160105// for more information.
160106func (c *VpnGatewaysAggregatedListCall) Fields(s ...googleapi.Field) *VpnGatewaysAggregatedListCall {
160107	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160108	return c
160109}
160110
160111// IfNoneMatch sets the optional parameter which makes the operation
160112// fail if the object's ETag matches the given value. This is useful for
160113// getting updates only after the object has changed since the last
160114// request. Use googleapi.IsNotModified to check whether the response
160115// error from Do is the result of In-None-Match.
160116func (c *VpnGatewaysAggregatedListCall) IfNoneMatch(entityTag string) *VpnGatewaysAggregatedListCall {
160117	c.ifNoneMatch_ = entityTag
160118	return c
160119}
160120
160121// Context sets the context to be used in this call's Do method. Any
160122// pending HTTP request will be aborted if the provided context is
160123// canceled.
160124func (c *VpnGatewaysAggregatedListCall) Context(ctx context.Context) *VpnGatewaysAggregatedListCall {
160125	c.ctx_ = ctx
160126	return c
160127}
160128
160129// Header returns an http.Header that can be modified by the caller to
160130// add HTTP headers to the request.
160131func (c *VpnGatewaysAggregatedListCall) Header() http.Header {
160132	if c.header_ == nil {
160133		c.header_ = make(http.Header)
160134	}
160135	return c.header_
160136}
160137
160138func (c *VpnGatewaysAggregatedListCall) doRequest(alt string) (*http.Response, error) {
160139	reqHeaders := make(http.Header)
160140	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
160141	for k, v := range c.header_ {
160142		reqHeaders[k] = v
160143	}
160144	reqHeaders.Set("User-Agent", c.s.userAgent())
160145	if c.ifNoneMatch_ != "" {
160146		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
160147	}
160148	var body io.Reader = nil
160149	c.urlParams_.Set("alt", alt)
160150	c.urlParams_.Set("prettyPrint", "false")
160151	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/vpnGateways")
160152	urls += "?" + c.urlParams_.Encode()
160153	req, err := http.NewRequest("GET", urls, body)
160154	if err != nil {
160155		return nil, err
160156	}
160157	req.Header = reqHeaders
160158	googleapi.Expand(req.URL, map[string]string{
160159		"project": c.project,
160160	})
160161	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160162}
160163
160164// Do executes the "compute.vpnGateways.aggregatedList" call.
160165// Exactly one of *VpnGatewayAggregatedList or error will be non-nil.
160166// Any non-2xx status code is an error. Response headers are in either
160167// *VpnGatewayAggregatedList.ServerResponse.Header or (if a response was
160168// returned at all) in error.(*googleapi.Error).Header. Use
160169// googleapi.IsNotModified to check whether the returned error was
160170// because http.StatusNotModified was returned.
160171func (c *VpnGatewaysAggregatedListCall) Do(opts ...googleapi.CallOption) (*VpnGatewayAggregatedList, error) {
160172	gensupport.SetOptions(c.urlParams_, opts...)
160173	res, err := c.doRequest("json")
160174	if res != nil && res.StatusCode == http.StatusNotModified {
160175		if res.Body != nil {
160176			res.Body.Close()
160177		}
160178		return nil, &googleapi.Error{
160179			Code:   res.StatusCode,
160180			Header: res.Header,
160181		}
160182	}
160183	if err != nil {
160184		return nil, err
160185	}
160186	defer googleapi.CloseBody(res)
160187	if err := googleapi.CheckResponse(res); err != nil {
160188		return nil, err
160189	}
160190	ret := &VpnGatewayAggregatedList{
160191		ServerResponse: googleapi.ServerResponse{
160192			Header:         res.Header,
160193			HTTPStatusCode: res.StatusCode,
160194		},
160195	}
160196	target := &ret
160197	if err := gensupport.DecodeResponse(target, res); err != nil {
160198		return nil, err
160199	}
160200	return ret, nil
160201	// {
160202	//   "description": "Retrieves an aggregated list of VPN gateways.",
160203	//   "httpMethod": "GET",
160204	//   "id": "compute.vpnGateways.aggregatedList",
160205	//   "parameterOrder": [
160206	//     "project"
160207	//   ],
160208	//   "parameters": {
160209	//     "filter": {
160210	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
160211	//       "location": "query",
160212	//       "type": "string"
160213	//     },
160214	//     "includeAllScopes": {
160215	//       "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.",
160216	//       "location": "query",
160217	//       "type": "boolean"
160218	//     },
160219	//     "maxResults": {
160220	//       "default": "500",
160221	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
160222	//       "format": "uint32",
160223	//       "location": "query",
160224	//       "minimum": "0",
160225	//       "type": "integer"
160226	//     },
160227	//     "orderBy": {
160228	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
160229	//       "location": "query",
160230	//       "type": "string"
160231	//     },
160232	//     "pageToken": {
160233	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
160234	//       "location": "query",
160235	//       "type": "string"
160236	//     },
160237	//     "project": {
160238	//       "description": "Project ID for this request.",
160239	//       "location": "path",
160240	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160241	//       "required": true,
160242	//       "type": "string"
160243	//     },
160244	//     "returnPartialSuccess": {
160245	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
160246	//       "location": "query",
160247	//       "type": "boolean"
160248	//     }
160249	//   },
160250	//   "path": "projects/{project}/aggregated/vpnGateways",
160251	//   "response": {
160252	//     "$ref": "VpnGatewayAggregatedList"
160253	//   },
160254	//   "scopes": [
160255	//     "https://www.googleapis.com/auth/cloud-platform",
160256	//     "https://www.googleapis.com/auth/compute",
160257	//     "https://www.googleapis.com/auth/compute.readonly"
160258	//   ]
160259	// }
160260
160261}
160262
160263// Pages invokes f for each page of results.
160264// A non-nil error returned from f will halt the iteration.
160265// The provided context supersedes any context provided to the Context method.
160266func (c *VpnGatewaysAggregatedListCall) Pages(ctx context.Context, f func(*VpnGatewayAggregatedList) error) error {
160267	c.ctx_ = ctx
160268	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
160269	for {
160270		x, err := c.Do()
160271		if err != nil {
160272			return err
160273		}
160274		if err := f(x); err != nil {
160275			return err
160276		}
160277		if x.NextPageToken == "" {
160278			return nil
160279		}
160280		c.PageToken(x.NextPageToken)
160281	}
160282}
160283
160284// method id "compute.vpnGateways.delete":
160285
160286type VpnGatewaysDeleteCall struct {
160287	s          *Service
160288	project    string
160289	region     string
160290	vpnGateway string
160291	urlParams_ gensupport.URLParams
160292	ctx_       context.Context
160293	header_    http.Header
160294}
160295
160296// Delete: Deletes the specified VPN gateway.
160297//
160298// - project: Project ID for this request.
160299// - region: Name of the region for this request.
160300// - vpnGateway: Name of the VPN gateway to delete.
160301func (r *VpnGatewaysService) Delete(project string, region string, vpnGateway string) *VpnGatewaysDeleteCall {
160302	c := &VpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160303	c.project = project
160304	c.region = region
160305	c.vpnGateway = vpnGateway
160306	return c
160307}
160308
160309// RequestId sets the optional parameter "requestId": An optional
160310// request ID to identify requests. Specify a unique request ID so that
160311// if you must retry your request, the server will know to ignore the
160312// request if it has already been completed.
160313//
160314// For example, consider a situation where you make an initial request
160315// and the request times out. If you make the request again with the
160316// same request ID, the server can check if original operation with the
160317// same request ID was received, and if so, will ignore the second
160318// request. This prevents clients from accidentally creating duplicate
160319// commitments.
160320//
160321// The request ID must be a valid UUID with the exception that zero UUID
160322// is not supported (00000000-0000-0000-0000-000000000000).
160323func (c *VpnGatewaysDeleteCall) RequestId(requestId string) *VpnGatewaysDeleteCall {
160324	c.urlParams_.Set("requestId", requestId)
160325	return c
160326}
160327
160328// Fields allows partial responses to be retrieved. See
160329// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160330// for more information.
160331func (c *VpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *VpnGatewaysDeleteCall {
160332	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160333	return c
160334}
160335
160336// Context sets the context to be used in this call's Do method. Any
160337// pending HTTP request will be aborted if the provided context is
160338// canceled.
160339func (c *VpnGatewaysDeleteCall) Context(ctx context.Context) *VpnGatewaysDeleteCall {
160340	c.ctx_ = ctx
160341	return c
160342}
160343
160344// Header returns an http.Header that can be modified by the caller to
160345// add HTTP headers to the request.
160346func (c *VpnGatewaysDeleteCall) Header() http.Header {
160347	if c.header_ == nil {
160348		c.header_ = make(http.Header)
160349	}
160350	return c.header_
160351}
160352
160353func (c *VpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) {
160354	reqHeaders := make(http.Header)
160355	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
160356	for k, v := range c.header_ {
160357		reqHeaders[k] = v
160358	}
160359	reqHeaders.Set("User-Agent", c.s.userAgent())
160360	var body io.Reader = nil
160361	c.urlParams_.Set("alt", alt)
160362	c.urlParams_.Set("prettyPrint", "false")
160363	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}")
160364	urls += "?" + c.urlParams_.Encode()
160365	req, err := http.NewRequest("DELETE", urls, body)
160366	if err != nil {
160367		return nil, err
160368	}
160369	req.Header = reqHeaders
160370	googleapi.Expand(req.URL, map[string]string{
160371		"project":    c.project,
160372		"region":     c.region,
160373		"vpnGateway": c.vpnGateway,
160374	})
160375	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160376}
160377
160378// Do executes the "compute.vpnGateways.delete" call.
160379// Exactly one of *Operation or error will be non-nil. Any non-2xx
160380// status code is an error. Response headers are in either
160381// *Operation.ServerResponse.Header or (if a response was returned at
160382// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
160383// to check whether the returned error was because
160384// http.StatusNotModified was returned.
160385func (c *VpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
160386	gensupport.SetOptions(c.urlParams_, opts...)
160387	res, err := c.doRequest("json")
160388	if res != nil && res.StatusCode == http.StatusNotModified {
160389		if res.Body != nil {
160390			res.Body.Close()
160391		}
160392		return nil, &googleapi.Error{
160393			Code:   res.StatusCode,
160394			Header: res.Header,
160395		}
160396	}
160397	if err != nil {
160398		return nil, err
160399	}
160400	defer googleapi.CloseBody(res)
160401	if err := googleapi.CheckResponse(res); err != nil {
160402		return nil, err
160403	}
160404	ret := &Operation{
160405		ServerResponse: googleapi.ServerResponse{
160406			Header:         res.Header,
160407			HTTPStatusCode: res.StatusCode,
160408		},
160409	}
160410	target := &ret
160411	if err := gensupport.DecodeResponse(target, res); err != nil {
160412		return nil, err
160413	}
160414	return ret, nil
160415	// {
160416	//   "description": "Deletes the specified VPN gateway.",
160417	//   "httpMethod": "DELETE",
160418	//   "id": "compute.vpnGateways.delete",
160419	//   "parameterOrder": [
160420	//     "project",
160421	//     "region",
160422	//     "vpnGateway"
160423	//   ],
160424	//   "parameters": {
160425	//     "project": {
160426	//       "description": "Project ID for this request.",
160427	//       "location": "path",
160428	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160429	//       "required": true,
160430	//       "type": "string"
160431	//     },
160432	//     "region": {
160433	//       "description": "Name of the region for this request.",
160434	//       "location": "path",
160435	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
160436	//       "required": true,
160437	//       "type": "string"
160438	//     },
160439	//     "requestId": {
160440	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
160441	//       "location": "query",
160442	//       "type": "string"
160443	//     },
160444	//     "vpnGateway": {
160445	//       "description": "Name of the VPN gateway to delete.",
160446	//       "location": "path",
160447	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
160448	//       "required": true,
160449	//       "type": "string"
160450	//     }
160451	//   },
160452	//   "path": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}",
160453	//   "response": {
160454	//     "$ref": "Operation"
160455	//   },
160456	//   "scopes": [
160457	//     "https://www.googleapis.com/auth/cloud-platform",
160458	//     "https://www.googleapis.com/auth/compute"
160459	//   ]
160460	// }
160461
160462}
160463
160464// method id "compute.vpnGateways.get":
160465
160466type VpnGatewaysGetCall struct {
160467	s            *Service
160468	project      string
160469	region       string
160470	vpnGateway   string
160471	urlParams_   gensupport.URLParams
160472	ifNoneMatch_ string
160473	ctx_         context.Context
160474	header_      http.Header
160475}
160476
160477// Get: Returns the specified VPN gateway. Gets a list of available VPN
160478// gateways by making a list() request.
160479//
160480// - project: Project ID for this request.
160481// - region: Name of the region for this request.
160482// - vpnGateway: Name of the VPN gateway to return.
160483func (r *VpnGatewaysService) Get(project string, region string, vpnGateway string) *VpnGatewaysGetCall {
160484	c := &VpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160485	c.project = project
160486	c.region = region
160487	c.vpnGateway = vpnGateway
160488	return c
160489}
160490
160491// Fields allows partial responses to be retrieved. See
160492// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160493// for more information.
160494func (c *VpnGatewaysGetCall) Fields(s ...googleapi.Field) *VpnGatewaysGetCall {
160495	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160496	return c
160497}
160498
160499// IfNoneMatch sets the optional parameter which makes the operation
160500// fail if the object's ETag matches the given value. This is useful for
160501// getting updates only after the object has changed since the last
160502// request. Use googleapi.IsNotModified to check whether the response
160503// error from Do is the result of In-None-Match.
160504func (c *VpnGatewaysGetCall) IfNoneMatch(entityTag string) *VpnGatewaysGetCall {
160505	c.ifNoneMatch_ = entityTag
160506	return c
160507}
160508
160509// Context sets the context to be used in this call's Do method. Any
160510// pending HTTP request will be aborted if the provided context is
160511// canceled.
160512func (c *VpnGatewaysGetCall) Context(ctx context.Context) *VpnGatewaysGetCall {
160513	c.ctx_ = ctx
160514	return c
160515}
160516
160517// Header returns an http.Header that can be modified by the caller to
160518// add HTTP headers to the request.
160519func (c *VpnGatewaysGetCall) Header() http.Header {
160520	if c.header_ == nil {
160521		c.header_ = make(http.Header)
160522	}
160523	return c.header_
160524}
160525
160526func (c *VpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) {
160527	reqHeaders := make(http.Header)
160528	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
160529	for k, v := range c.header_ {
160530		reqHeaders[k] = v
160531	}
160532	reqHeaders.Set("User-Agent", c.s.userAgent())
160533	if c.ifNoneMatch_ != "" {
160534		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
160535	}
160536	var body io.Reader = nil
160537	c.urlParams_.Set("alt", alt)
160538	c.urlParams_.Set("prettyPrint", "false")
160539	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}")
160540	urls += "?" + c.urlParams_.Encode()
160541	req, err := http.NewRequest("GET", urls, body)
160542	if err != nil {
160543		return nil, err
160544	}
160545	req.Header = reqHeaders
160546	googleapi.Expand(req.URL, map[string]string{
160547		"project":    c.project,
160548		"region":     c.region,
160549		"vpnGateway": c.vpnGateway,
160550	})
160551	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160552}
160553
160554// Do executes the "compute.vpnGateways.get" call.
160555// Exactly one of *VpnGateway or error will be non-nil. Any non-2xx
160556// status code is an error. Response headers are in either
160557// *VpnGateway.ServerResponse.Header or (if a response was returned at
160558// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
160559// to check whether the returned error was because
160560// http.StatusNotModified was returned.
160561func (c *VpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*VpnGateway, error) {
160562	gensupport.SetOptions(c.urlParams_, opts...)
160563	res, err := c.doRequest("json")
160564	if res != nil && res.StatusCode == http.StatusNotModified {
160565		if res.Body != nil {
160566			res.Body.Close()
160567		}
160568		return nil, &googleapi.Error{
160569			Code:   res.StatusCode,
160570			Header: res.Header,
160571		}
160572	}
160573	if err != nil {
160574		return nil, err
160575	}
160576	defer googleapi.CloseBody(res)
160577	if err := googleapi.CheckResponse(res); err != nil {
160578		return nil, err
160579	}
160580	ret := &VpnGateway{
160581		ServerResponse: googleapi.ServerResponse{
160582			Header:         res.Header,
160583			HTTPStatusCode: res.StatusCode,
160584		},
160585	}
160586	target := &ret
160587	if err := gensupport.DecodeResponse(target, res); err != nil {
160588		return nil, err
160589	}
160590	return ret, nil
160591	// {
160592	//   "description": "Returns the specified VPN gateway. Gets a list of available VPN gateways by making a list() request.",
160593	//   "httpMethod": "GET",
160594	//   "id": "compute.vpnGateways.get",
160595	//   "parameterOrder": [
160596	//     "project",
160597	//     "region",
160598	//     "vpnGateway"
160599	//   ],
160600	//   "parameters": {
160601	//     "project": {
160602	//       "description": "Project ID for this request.",
160603	//       "location": "path",
160604	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160605	//       "required": true,
160606	//       "type": "string"
160607	//     },
160608	//     "region": {
160609	//       "description": "Name of the region for this request.",
160610	//       "location": "path",
160611	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
160612	//       "required": true,
160613	//       "type": "string"
160614	//     },
160615	//     "vpnGateway": {
160616	//       "description": "Name of the VPN gateway to return.",
160617	//       "location": "path",
160618	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
160619	//       "required": true,
160620	//       "type": "string"
160621	//     }
160622	//   },
160623	//   "path": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}",
160624	//   "response": {
160625	//     "$ref": "VpnGateway"
160626	//   },
160627	//   "scopes": [
160628	//     "https://www.googleapis.com/auth/cloud-platform",
160629	//     "https://www.googleapis.com/auth/compute",
160630	//     "https://www.googleapis.com/auth/compute.readonly"
160631	//   ]
160632	// }
160633
160634}
160635
160636// method id "compute.vpnGateways.getStatus":
160637
160638type VpnGatewaysGetStatusCall struct {
160639	s            *Service
160640	project      string
160641	region       string
160642	vpnGateway   string
160643	urlParams_   gensupport.URLParams
160644	ifNoneMatch_ string
160645	ctx_         context.Context
160646	header_      http.Header
160647}
160648
160649// GetStatus: Returns the status for the specified VPN gateway.
160650//
160651// - project: Project ID for this request.
160652// - region: Name of the region for this request.
160653// - vpnGateway: Name of the VPN gateway to return.
160654func (r *VpnGatewaysService) GetStatus(project string, region string, vpnGateway string) *VpnGatewaysGetStatusCall {
160655	c := &VpnGatewaysGetStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160656	c.project = project
160657	c.region = region
160658	c.vpnGateway = vpnGateway
160659	return c
160660}
160661
160662// Fields allows partial responses to be retrieved. See
160663// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160664// for more information.
160665func (c *VpnGatewaysGetStatusCall) Fields(s ...googleapi.Field) *VpnGatewaysGetStatusCall {
160666	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160667	return c
160668}
160669
160670// IfNoneMatch sets the optional parameter which makes the operation
160671// fail if the object's ETag matches the given value. This is useful for
160672// getting updates only after the object has changed since the last
160673// request. Use googleapi.IsNotModified to check whether the response
160674// error from Do is the result of In-None-Match.
160675func (c *VpnGatewaysGetStatusCall) IfNoneMatch(entityTag string) *VpnGatewaysGetStatusCall {
160676	c.ifNoneMatch_ = entityTag
160677	return c
160678}
160679
160680// Context sets the context to be used in this call's Do method. Any
160681// pending HTTP request will be aborted if the provided context is
160682// canceled.
160683func (c *VpnGatewaysGetStatusCall) Context(ctx context.Context) *VpnGatewaysGetStatusCall {
160684	c.ctx_ = ctx
160685	return c
160686}
160687
160688// Header returns an http.Header that can be modified by the caller to
160689// add HTTP headers to the request.
160690func (c *VpnGatewaysGetStatusCall) Header() http.Header {
160691	if c.header_ == nil {
160692		c.header_ = make(http.Header)
160693	}
160694	return c.header_
160695}
160696
160697func (c *VpnGatewaysGetStatusCall) doRequest(alt string) (*http.Response, error) {
160698	reqHeaders := make(http.Header)
160699	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
160700	for k, v := range c.header_ {
160701		reqHeaders[k] = v
160702	}
160703	reqHeaders.Set("User-Agent", c.s.userAgent())
160704	if c.ifNoneMatch_ != "" {
160705		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
160706	}
160707	var body io.Reader = nil
160708	c.urlParams_.Set("alt", alt)
160709	c.urlParams_.Set("prettyPrint", "false")
160710	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus")
160711	urls += "?" + c.urlParams_.Encode()
160712	req, err := http.NewRequest("GET", urls, body)
160713	if err != nil {
160714		return nil, err
160715	}
160716	req.Header = reqHeaders
160717	googleapi.Expand(req.URL, map[string]string{
160718		"project":    c.project,
160719		"region":     c.region,
160720		"vpnGateway": c.vpnGateway,
160721	})
160722	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160723}
160724
160725// Do executes the "compute.vpnGateways.getStatus" call.
160726// Exactly one of *VpnGatewaysGetStatusResponse or error will be
160727// non-nil. Any non-2xx status code is an error. Response headers are in
160728// either *VpnGatewaysGetStatusResponse.ServerResponse.Header or (if a
160729// response was returned at all) in error.(*googleapi.Error).Header. Use
160730// googleapi.IsNotModified to check whether the returned error was
160731// because http.StatusNotModified was returned.
160732func (c *VpnGatewaysGetStatusCall) Do(opts ...googleapi.CallOption) (*VpnGatewaysGetStatusResponse, error) {
160733	gensupport.SetOptions(c.urlParams_, opts...)
160734	res, err := c.doRequest("json")
160735	if res != nil && res.StatusCode == http.StatusNotModified {
160736		if res.Body != nil {
160737			res.Body.Close()
160738		}
160739		return nil, &googleapi.Error{
160740			Code:   res.StatusCode,
160741			Header: res.Header,
160742		}
160743	}
160744	if err != nil {
160745		return nil, err
160746	}
160747	defer googleapi.CloseBody(res)
160748	if err := googleapi.CheckResponse(res); err != nil {
160749		return nil, err
160750	}
160751	ret := &VpnGatewaysGetStatusResponse{
160752		ServerResponse: googleapi.ServerResponse{
160753			Header:         res.Header,
160754			HTTPStatusCode: res.StatusCode,
160755		},
160756	}
160757	target := &ret
160758	if err := gensupport.DecodeResponse(target, res); err != nil {
160759		return nil, err
160760	}
160761	return ret, nil
160762	// {
160763	//   "description": "Returns the status for the specified VPN gateway.",
160764	//   "httpMethod": "GET",
160765	//   "id": "compute.vpnGateways.getStatus",
160766	//   "parameterOrder": [
160767	//     "project",
160768	//     "region",
160769	//     "vpnGateway"
160770	//   ],
160771	//   "parameters": {
160772	//     "project": {
160773	//       "description": "Project ID for this request.",
160774	//       "location": "path",
160775	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160776	//       "required": true,
160777	//       "type": "string"
160778	//     },
160779	//     "region": {
160780	//       "description": "Name of the region for this request.",
160781	//       "location": "path",
160782	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
160783	//       "required": true,
160784	//       "type": "string"
160785	//     },
160786	//     "vpnGateway": {
160787	//       "description": "Name of the VPN gateway to return.",
160788	//       "location": "path",
160789	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
160790	//       "required": true,
160791	//       "type": "string"
160792	//     }
160793	//   },
160794	//   "path": "projects/{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus",
160795	//   "response": {
160796	//     "$ref": "VpnGatewaysGetStatusResponse"
160797	//   },
160798	//   "scopes": [
160799	//     "https://www.googleapis.com/auth/cloud-platform",
160800	//     "https://www.googleapis.com/auth/compute",
160801	//     "https://www.googleapis.com/auth/compute.readonly"
160802	//   ]
160803	// }
160804
160805}
160806
160807// method id "compute.vpnGateways.insert":
160808
160809type VpnGatewaysInsertCall struct {
160810	s          *Service
160811	project    string
160812	region     string
160813	vpngateway *VpnGateway
160814	urlParams_ gensupport.URLParams
160815	ctx_       context.Context
160816	header_    http.Header
160817}
160818
160819// Insert: Creates a VPN gateway in the specified project and region
160820// using the data included in the request.
160821//
160822// - project: Project ID for this request.
160823// - region: Name of the region for this request.
160824func (r *VpnGatewaysService) Insert(project string, region string, vpngateway *VpnGateway) *VpnGatewaysInsertCall {
160825	c := &VpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
160826	c.project = project
160827	c.region = region
160828	c.vpngateway = vpngateway
160829	return c
160830}
160831
160832// RequestId sets the optional parameter "requestId": An optional
160833// request ID to identify requests. Specify a unique request ID so that
160834// if you must retry your request, the server will know to ignore the
160835// request if it has already been completed.
160836//
160837// For example, consider a situation where you make an initial request
160838// and the request times out. If you make the request again with the
160839// same request ID, the server can check if original operation with the
160840// same request ID was received, and if so, will ignore the second
160841// request. This prevents clients from accidentally creating duplicate
160842// commitments.
160843//
160844// The request ID must be a valid UUID with the exception that zero UUID
160845// is not supported (00000000-0000-0000-0000-000000000000).
160846func (c *VpnGatewaysInsertCall) RequestId(requestId string) *VpnGatewaysInsertCall {
160847	c.urlParams_.Set("requestId", requestId)
160848	return c
160849}
160850
160851// Fields allows partial responses to be retrieved. See
160852// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
160853// for more information.
160854func (c *VpnGatewaysInsertCall) Fields(s ...googleapi.Field) *VpnGatewaysInsertCall {
160855	c.urlParams_.Set("fields", googleapi.CombineFields(s))
160856	return c
160857}
160858
160859// Context sets the context to be used in this call's Do method. Any
160860// pending HTTP request will be aborted if the provided context is
160861// canceled.
160862func (c *VpnGatewaysInsertCall) Context(ctx context.Context) *VpnGatewaysInsertCall {
160863	c.ctx_ = ctx
160864	return c
160865}
160866
160867// Header returns an http.Header that can be modified by the caller to
160868// add HTTP headers to the request.
160869func (c *VpnGatewaysInsertCall) Header() http.Header {
160870	if c.header_ == nil {
160871		c.header_ = make(http.Header)
160872	}
160873	return c.header_
160874}
160875
160876func (c *VpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) {
160877	reqHeaders := make(http.Header)
160878	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
160879	for k, v := range c.header_ {
160880		reqHeaders[k] = v
160881	}
160882	reqHeaders.Set("User-Agent", c.s.userAgent())
160883	var body io.Reader = nil
160884	body, err := googleapi.WithoutDataWrapper.JSONReader(c.vpngateway)
160885	if err != nil {
160886		return nil, err
160887	}
160888	reqHeaders.Set("Content-Type", "application/json")
160889	c.urlParams_.Set("alt", alt)
160890	c.urlParams_.Set("prettyPrint", "false")
160891	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways")
160892	urls += "?" + c.urlParams_.Encode()
160893	req, err := http.NewRequest("POST", urls, body)
160894	if err != nil {
160895		return nil, err
160896	}
160897	req.Header = reqHeaders
160898	googleapi.Expand(req.URL, map[string]string{
160899		"project": c.project,
160900		"region":  c.region,
160901	})
160902	return gensupport.SendRequest(c.ctx_, c.s.client, req)
160903}
160904
160905// Do executes the "compute.vpnGateways.insert" call.
160906// Exactly one of *Operation or error will be non-nil. Any non-2xx
160907// status code is an error. Response headers are in either
160908// *Operation.ServerResponse.Header or (if a response was returned at
160909// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
160910// to check whether the returned error was because
160911// http.StatusNotModified was returned.
160912func (c *VpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
160913	gensupport.SetOptions(c.urlParams_, opts...)
160914	res, err := c.doRequest("json")
160915	if res != nil && res.StatusCode == http.StatusNotModified {
160916		if res.Body != nil {
160917			res.Body.Close()
160918		}
160919		return nil, &googleapi.Error{
160920			Code:   res.StatusCode,
160921			Header: res.Header,
160922		}
160923	}
160924	if err != nil {
160925		return nil, err
160926	}
160927	defer googleapi.CloseBody(res)
160928	if err := googleapi.CheckResponse(res); err != nil {
160929		return nil, err
160930	}
160931	ret := &Operation{
160932		ServerResponse: googleapi.ServerResponse{
160933			Header:         res.Header,
160934			HTTPStatusCode: res.StatusCode,
160935		},
160936	}
160937	target := &ret
160938	if err := gensupport.DecodeResponse(target, res); err != nil {
160939		return nil, err
160940	}
160941	return ret, nil
160942	// {
160943	//   "description": "Creates a VPN gateway in the specified project and region using the data included in the request.",
160944	//   "httpMethod": "POST",
160945	//   "id": "compute.vpnGateways.insert",
160946	//   "parameterOrder": [
160947	//     "project",
160948	//     "region"
160949	//   ],
160950	//   "parameters": {
160951	//     "project": {
160952	//       "description": "Project ID for this request.",
160953	//       "location": "path",
160954	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
160955	//       "required": true,
160956	//       "type": "string"
160957	//     },
160958	//     "region": {
160959	//       "description": "Name of the region for this request.",
160960	//       "location": "path",
160961	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
160962	//       "required": true,
160963	//       "type": "string"
160964	//     },
160965	//     "requestId": {
160966	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
160967	//       "location": "query",
160968	//       "type": "string"
160969	//     }
160970	//   },
160971	//   "path": "projects/{project}/regions/{region}/vpnGateways",
160972	//   "request": {
160973	//     "$ref": "VpnGateway"
160974	//   },
160975	//   "response": {
160976	//     "$ref": "Operation"
160977	//   },
160978	//   "scopes": [
160979	//     "https://www.googleapis.com/auth/cloud-platform",
160980	//     "https://www.googleapis.com/auth/compute"
160981	//   ]
160982	// }
160983
160984}
160985
160986// method id "compute.vpnGateways.list":
160987
160988type VpnGatewaysListCall struct {
160989	s            *Service
160990	project      string
160991	region       string
160992	urlParams_   gensupport.URLParams
160993	ifNoneMatch_ string
160994	ctx_         context.Context
160995	header_      http.Header
160996}
160997
160998// List: Retrieves a list of VPN gateways available to the specified
160999// project and region.
161000//
161001// - project: Project ID for this request.
161002// - region: Name of the region for this request.
161003func (r *VpnGatewaysService) List(project string, region string) *VpnGatewaysListCall {
161004	c := &VpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161005	c.project = project
161006	c.region = region
161007	return c
161008}
161009
161010// Filter sets the optional parameter "filter": A filter expression that
161011// filters resources listed in the response. The expression must specify
161012// the field name, a comparison operator, and the value that you want to
161013// use for filtering. The value must be a string, a number, or a
161014// boolean. The comparison operator must be either `=`, `!=`, `>`, or
161015// `<`.
161016//
161017// For example, if you are filtering Compute Engine instances, you can
161018// exclude instances named `example-instance` by specifying `name !=
161019// example-instance`.
161020//
161021// You can also filter nested fields. For example, you could specify
161022// `scheduling.automaticRestart = false` to include instances only if
161023// they are not scheduled for automatic restarts. You can use filtering
161024// on nested fields to filter based on resource labels.
161025//
161026// To filter on multiple expressions, provide each separate expression
161027// within parentheses. For example: ``` (scheduling.automaticRestart =
161028// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
161029// is an `AND` expression. However, you can include `AND` and `OR`
161030// expressions explicitly. For example: ``` (cpuPlatform = "Intel
161031// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
161032// (scheduling.automaticRestart = true) ```
161033func (c *VpnGatewaysListCall) Filter(filter string) *VpnGatewaysListCall {
161034	c.urlParams_.Set("filter", filter)
161035	return c
161036}
161037
161038// MaxResults sets the optional parameter "maxResults": The maximum
161039// number of results per page that should be returned. If the number of
161040// available results is larger than `maxResults`, Compute Engine returns
161041// a `nextPageToken` that can be used to get the next page of results in
161042// subsequent list requests. Acceptable values are `0` to `500`,
161043// inclusive. (Default: `500`)
161044func (c *VpnGatewaysListCall) MaxResults(maxResults int64) *VpnGatewaysListCall {
161045	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
161046	return c
161047}
161048
161049// OrderBy sets the optional parameter "orderBy": Sorts list results by
161050// a certain order. By default, results are returned in alphanumerical
161051// order based on the resource name.
161052//
161053// You can also sort results in descending order based on the creation
161054// timestamp using `orderBy="creationTimestamp desc". This sorts
161055// results based on the `creationTimestamp` field in reverse
161056// chronological order (newest result first). Use this to sort resources
161057// like operations so that the newest operation is returned
161058// first.
161059//
161060// Currently, only sorting by `name` or `creationTimestamp desc` is
161061// supported.
161062func (c *VpnGatewaysListCall) OrderBy(orderBy string) *VpnGatewaysListCall {
161063	c.urlParams_.Set("orderBy", orderBy)
161064	return c
161065}
161066
161067// PageToken sets the optional parameter "pageToken": Specifies a page
161068// token to use. Set `pageToken` to the `nextPageToken` returned by a
161069// previous list request to get the next page of results.
161070func (c *VpnGatewaysListCall) PageToken(pageToken string) *VpnGatewaysListCall {
161071	c.urlParams_.Set("pageToken", pageToken)
161072	return c
161073}
161074
161075// ReturnPartialSuccess sets the optional parameter
161076// "returnPartialSuccess": Opt-in for partial success behavior which
161077// provides partial results in case of failure. The default value is
161078// false.
161079func (c *VpnGatewaysListCall) ReturnPartialSuccess(returnPartialSuccess bool) *VpnGatewaysListCall {
161080	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
161081	return c
161082}
161083
161084// Fields allows partial responses to be retrieved. See
161085// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161086// for more information.
161087func (c *VpnGatewaysListCall) Fields(s ...googleapi.Field) *VpnGatewaysListCall {
161088	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161089	return c
161090}
161091
161092// IfNoneMatch sets the optional parameter which makes the operation
161093// fail if the object's ETag matches the given value. This is useful for
161094// getting updates only after the object has changed since the last
161095// request. Use googleapi.IsNotModified to check whether the response
161096// error from Do is the result of In-None-Match.
161097func (c *VpnGatewaysListCall) IfNoneMatch(entityTag string) *VpnGatewaysListCall {
161098	c.ifNoneMatch_ = entityTag
161099	return c
161100}
161101
161102// Context sets the context to be used in this call's Do method. Any
161103// pending HTTP request will be aborted if the provided context is
161104// canceled.
161105func (c *VpnGatewaysListCall) Context(ctx context.Context) *VpnGatewaysListCall {
161106	c.ctx_ = ctx
161107	return c
161108}
161109
161110// Header returns an http.Header that can be modified by the caller to
161111// add HTTP headers to the request.
161112func (c *VpnGatewaysListCall) Header() http.Header {
161113	if c.header_ == nil {
161114		c.header_ = make(http.Header)
161115	}
161116	return c.header_
161117}
161118
161119func (c *VpnGatewaysListCall) doRequest(alt string) (*http.Response, error) {
161120	reqHeaders := make(http.Header)
161121	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
161122	for k, v := range c.header_ {
161123		reqHeaders[k] = v
161124	}
161125	reqHeaders.Set("User-Agent", c.s.userAgent())
161126	if c.ifNoneMatch_ != "" {
161127		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
161128	}
161129	var body io.Reader = nil
161130	c.urlParams_.Set("alt", alt)
161131	c.urlParams_.Set("prettyPrint", "false")
161132	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways")
161133	urls += "?" + c.urlParams_.Encode()
161134	req, err := http.NewRequest("GET", urls, body)
161135	if err != nil {
161136		return nil, err
161137	}
161138	req.Header = reqHeaders
161139	googleapi.Expand(req.URL, map[string]string{
161140		"project": c.project,
161141		"region":  c.region,
161142	})
161143	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161144}
161145
161146// Do executes the "compute.vpnGateways.list" call.
161147// Exactly one of *VpnGatewayList or error will be non-nil. Any non-2xx
161148// status code is an error. Response headers are in either
161149// *VpnGatewayList.ServerResponse.Header or (if a response was returned
161150// at all) in error.(*googleapi.Error).Header. Use
161151// googleapi.IsNotModified to check whether the returned error was
161152// because http.StatusNotModified was returned.
161153func (c *VpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*VpnGatewayList, error) {
161154	gensupport.SetOptions(c.urlParams_, opts...)
161155	res, err := c.doRequest("json")
161156	if res != nil && res.StatusCode == http.StatusNotModified {
161157		if res.Body != nil {
161158			res.Body.Close()
161159		}
161160		return nil, &googleapi.Error{
161161			Code:   res.StatusCode,
161162			Header: res.Header,
161163		}
161164	}
161165	if err != nil {
161166		return nil, err
161167	}
161168	defer googleapi.CloseBody(res)
161169	if err := googleapi.CheckResponse(res); err != nil {
161170		return nil, err
161171	}
161172	ret := &VpnGatewayList{
161173		ServerResponse: googleapi.ServerResponse{
161174			Header:         res.Header,
161175			HTTPStatusCode: res.StatusCode,
161176		},
161177	}
161178	target := &ret
161179	if err := gensupport.DecodeResponse(target, res); err != nil {
161180		return nil, err
161181	}
161182	return ret, nil
161183	// {
161184	//   "description": "Retrieves a list of VPN gateways available to the specified project and region.",
161185	//   "httpMethod": "GET",
161186	//   "id": "compute.vpnGateways.list",
161187	//   "parameterOrder": [
161188	//     "project",
161189	//     "region"
161190	//   ],
161191	//   "parameters": {
161192	//     "filter": {
161193	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
161194	//       "location": "query",
161195	//       "type": "string"
161196	//     },
161197	//     "maxResults": {
161198	//       "default": "500",
161199	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
161200	//       "format": "uint32",
161201	//       "location": "query",
161202	//       "minimum": "0",
161203	//       "type": "integer"
161204	//     },
161205	//     "orderBy": {
161206	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
161207	//       "location": "query",
161208	//       "type": "string"
161209	//     },
161210	//     "pageToken": {
161211	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
161212	//       "location": "query",
161213	//       "type": "string"
161214	//     },
161215	//     "project": {
161216	//       "description": "Project ID for this request.",
161217	//       "location": "path",
161218	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161219	//       "required": true,
161220	//       "type": "string"
161221	//     },
161222	//     "region": {
161223	//       "description": "Name of the region for this request.",
161224	//       "location": "path",
161225	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
161226	//       "required": true,
161227	//       "type": "string"
161228	//     },
161229	//     "returnPartialSuccess": {
161230	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
161231	//       "location": "query",
161232	//       "type": "boolean"
161233	//     }
161234	//   },
161235	//   "path": "projects/{project}/regions/{region}/vpnGateways",
161236	//   "response": {
161237	//     "$ref": "VpnGatewayList"
161238	//   },
161239	//   "scopes": [
161240	//     "https://www.googleapis.com/auth/cloud-platform",
161241	//     "https://www.googleapis.com/auth/compute",
161242	//     "https://www.googleapis.com/auth/compute.readonly"
161243	//   ]
161244	// }
161245
161246}
161247
161248// Pages invokes f for each page of results.
161249// A non-nil error returned from f will halt the iteration.
161250// The provided context supersedes any context provided to the Context method.
161251func (c *VpnGatewaysListCall) Pages(ctx context.Context, f func(*VpnGatewayList) error) error {
161252	c.ctx_ = ctx
161253	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
161254	for {
161255		x, err := c.Do()
161256		if err != nil {
161257			return err
161258		}
161259		if err := f(x); err != nil {
161260			return err
161261		}
161262		if x.NextPageToken == "" {
161263			return nil
161264		}
161265		c.PageToken(x.NextPageToken)
161266	}
161267}
161268
161269// method id "compute.vpnGateways.setLabels":
161270
161271type VpnGatewaysSetLabelsCall struct {
161272	s                      *Service
161273	project                string
161274	region                 string
161275	resource               string
161276	regionsetlabelsrequest *RegionSetLabelsRequest
161277	urlParams_             gensupport.URLParams
161278	ctx_                   context.Context
161279	header_                http.Header
161280}
161281
161282// SetLabels: Sets the labels on a VpnGateway. To learn more about
161283// labels, read the Labeling Resources documentation.
161284//
161285// - project: Project ID for this request.
161286// - region: The region for this request.
161287// - resource: Name or id of the resource for this request.
161288func (r *VpnGatewaysService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *VpnGatewaysSetLabelsCall {
161289	c := &VpnGatewaysSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161290	c.project = project
161291	c.region = region
161292	c.resource = resource
161293	c.regionsetlabelsrequest = regionsetlabelsrequest
161294	return c
161295}
161296
161297// RequestId sets the optional parameter "requestId": An optional
161298// request ID to identify requests. Specify a unique request ID so that
161299// if you must retry your request, the server will know to ignore the
161300// request if it has already been completed.
161301//
161302// For example, consider a situation where you make an initial request
161303// and the request times out. If you make the request again with the
161304// same request ID, the server can check if original operation with the
161305// same request ID was received, and if so, will ignore the second
161306// request. This prevents clients from accidentally creating duplicate
161307// commitments.
161308//
161309// The request ID must be a valid UUID with the exception that zero UUID
161310// is not supported (00000000-0000-0000-0000-000000000000).
161311func (c *VpnGatewaysSetLabelsCall) RequestId(requestId string) *VpnGatewaysSetLabelsCall {
161312	c.urlParams_.Set("requestId", requestId)
161313	return c
161314}
161315
161316// Fields allows partial responses to be retrieved. See
161317// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161318// for more information.
161319func (c *VpnGatewaysSetLabelsCall) Fields(s ...googleapi.Field) *VpnGatewaysSetLabelsCall {
161320	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161321	return c
161322}
161323
161324// Context sets the context to be used in this call's Do method. Any
161325// pending HTTP request will be aborted if the provided context is
161326// canceled.
161327func (c *VpnGatewaysSetLabelsCall) Context(ctx context.Context) *VpnGatewaysSetLabelsCall {
161328	c.ctx_ = ctx
161329	return c
161330}
161331
161332// Header returns an http.Header that can be modified by the caller to
161333// add HTTP headers to the request.
161334func (c *VpnGatewaysSetLabelsCall) Header() http.Header {
161335	if c.header_ == nil {
161336		c.header_ = make(http.Header)
161337	}
161338	return c.header_
161339}
161340
161341func (c *VpnGatewaysSetLabelsCall) doRequest(alt string) (*http.Response, error) {
161342	reqHeaders := make(http.Header)
161343	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
161344	for k, v := range c.header_ {
161345		reqHeaders[k] = v
161346	}
161347	reqHeaders.Set("User-Agent", c.s.userAgent())
161348	var body io.Reader = nil
161349	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
161350	if err != nil {
161351		return nil, err
161352	}
161353	reqHeaders.Set("Content-Type", "application/json")
161354	c.urlParams_.Set("alt", alt)
161355	c.urlParams_.Set("prettyPrint", "false")
161356	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways/{resource}/setLabels")
161357	urls += "?" + c.urlParams_.Encode()
161358	req, err := http.NewRequest("POST", urls, body)
161359	if err != nil {
161360		return nil, err
161361	}
161362	req.Header = reqHeaders
161363	googleapi.Expand(req.URL, map[string]string{
161364		"project":  c.project,
161365		"region":   c.region,
161366		"resource": c.resource,
161367	})
161368	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161369}
161370
161371// Do executes the "compute.vpnGateways.setLabels" call.
161372// Exactly one of *Operation or error will be non-nil. Any non-2xx
161373// status code is an error. Response headers are in either
161374// *Operation.ServerResponse.Header or (if a response was returned at
161375// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
161376// to check whether the returned error was because
161377// http.StatusNotModified was returned.
161378func (c *VpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
161379	gensupport.SetOptions(c.urlParams_, opts...)
161380	res, err := c.doRequest("json")
161381	if res != nil && res.StatusCode == http.StatusNotModified {
161382		if res.Body != nil {
161383			res.Body.Close()
161384		}
161385		return nil, &googleapi.Error{
161386			Code:   res.StatusCode,
161387			Header: res.Header,
161388		}
161389	}
161390	if err != nil {
161391		return nil, err
161392	}
161393	defer googleapi.CloseBody(res)
161394	if err := googleapi.CheckResponse(res); err != nil {
161395		return nil, err
161396	}
161397	ret := &Operation{
161398		ServerResponse: googleapi.ServerResponse{
161399			Header:         res.Header,
161400			HTTPStatusCode: res.StatusCode,
161401		},
161402	}
161403	target := &ret
161404	if err := gensupport.DecodeResponse(target, res); err != nil {
161405		return nil, err
161406	}
161407	return ret, nil
161408	// {
161409	//   "description": "Sets the labels on a VpnGateway. To learn more about labels, read the Labeling Resources documentation.",
161410	//   "httpMethod": "POST",
161411	//   "id": "compute.vpnGateways.setLabels",
161412	//   "parameterOrder": [
161413	//     "project",
161414	//     "region",
161415	//     "resource"
161416	//   ],
161417	//   "parameters": {
161418	//     "project": {
161419	//       "description": "Project ID for this request.",
161420	//       "location": "path",
161421	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161422	//       "required": true,
161423	//       "type": "string"
161424	//     },
161425	//     "region": {
161426	//       "description": "The region for this request.",
161427	//       "location": "path",
161428	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
161429	//       "required": true,
161430	//       "type": "string"
161431	//     },
161432	//     "requestId": {
161433	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
161434	//       "location": "query",
161435	//       "type": "string"
161436	//     },
161437	//     "resource": {
161438	//       "description": "Name or id of the resource for this request.",
161439	//       "location": "path",
161440	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
161441	//       "required": true,
161442	//       "type": "string"
161443	//     }
161444	//   },
161445	//   "path": "projects/{project}/regions/{region}/vpnGateways/{resource}/setLabels",
161446	//   "request": {
161447	//     "$ref": "RegionSetLabelsRequest"
161448	//   },
161449	//   "response": {
161450	//     "$ref": "Operation"
161451	//   },
161452	//   "scopes": [
161453	//     "https://www.googleapis.com/auth/cloud-platform",
161454	//     "https://www.googleapis.com/auth/compute"
161455	//   ]
161456	// }
161457
161458}
161459
161460// method id "compute.vpnGateways.testIamPermissions":
161461
161462type VpnGatewaysTestIamPermissionsCall struct {
161463	s                      *Service
161464	project                string
161465	region                 string
161466	resource               string
161467	testpermissionsrequest *TestPermissionsRequest
161468	urlParams_             gensupport.URLParams
161469	ctx_                   context.Context
161470	header_                http.Header
161471}
161472
161473// TestIamPermissions: Returns permissions that a caller has on the
161474// specified resource.
161475//
161476// - project: Project ID for this request.
161477// - region: The name of the region for this request.
161478// - resource: Name or id of the resource for this request.
161479func (r *VpnGatewaysService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *VpnGatewaysTestIamPermissionsCall {
161480	c := &VpnGatewaysTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161481	c.project = project
161482	c.region = region
161483	c.resource = resource
161484	c.testpermissionsrequest = testpermissionsrequest
161485	return c
161486}
161487
161488// Fields allows partial responses to be retrieved. See
161489// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161490// for more information.
161491func (c *VpnGatewaysTestIamPermissionsCall) Fields(s ...googleapi.Field) *VpnGatewaysTestIamPermissionsCall {
161492	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161493	return c
161494}
161495
161496// Context sets the context to be used in this call's Do method. Any
161497// pending HTTP request will be aborted if the provided context is
161498// canceled.
161499func (c *VpnGatewaysTestIamPermissionsCall) Context(ctx context.Context) *VpnGatewaysTestIamPermissionsCall {
161500	c.ctx_ = ctx
161501	return c
161502}
161503
161504// Header returns an http.Header that can be modified by the caller to
161505// add HTTP headers to the request.
161506func (c *VpnGatewaysTestIamPermissionsCall) Header() http.Header {
161507	if c.header_ == nil {
161508		c.header_ = make(http.Header)
161509	}
161510	return c.header_
161511}
161512
161513func (c *VpnGatewaysTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
161514	reqHeaders := make(http.Header)
161515	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
161516	for k, v := range c.header_ {
161517		reqHeaders[k] = v
161518	}
161519	reqHeaders.Set("User-Agent", c.s.userAgent())
161520	var body io.Reader = nil
161521	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
161522	if err != nil {
161523		return nil, err
161524	}
161525	reqHeaders.Set("Content-Type", "application/json")
161526	c.urlParams_.Set("alt", alt)
161527	c.urlParams_.Set("prettyPrint", "false")
161528	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions")
161529	urls += "?" + c.urlParams_.Encode()
161530	req, err := http.NewRequest("POST", urls, body)
161531	if err != nil {
161532		return nil, err
161533	}
161534	req.Header = reqHeaders
161535	googleapi.Expand(req.URL, map[string]string{
161536		"project":  c.project,
161537		"region":   c.region,
161538		"resource": c.resource,
161539	})
161540	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161541}
161542
161543// Do executes the "compute.vpnGateways.testIamPermissions" call.
161544// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
161545// non-2xx status code is an error. Response headers are in either
161546// *TestPermissionsResponse.ServerResponse.Header or (if a response was
161547// returned at all) in error.(*googleapi.Error).Header. Use
161548// googleapi.IsNotModified to check whether the returned error was
161549// because http.StatusNotModified was returned.
161550func (c *VpnGatewaysTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
161551	gensupport.SetOptions(c.urlParams_, opts...)
161552	res, err := c.doRequest("json")
161553	if res != nil && res.StatusCode == http.StatusNotModified {
161554		if res.Body != nil {
161555			res.Body.Close()
161556		}
161557		return nil, &googleapi.Error{
161558			Code:   res.StatusCode,
161559			Header: res.Header,
161560		}
161561	}
161562	if err != nil {
161563		return nil, err
161564	}
161565	defer googleapi.CloseBody(res)
161566	if err := googleapi.CheckResponse(res); err != nil {
161567		return nil, err
161568	}
161569	ret := &TestPermissionsResponse{
161570		ServerResponse: googleapi.ServerResponse{
161571			Header:         res.Header,
161572			HTTPStatusCode: res.StatusCode,
161573		},
161574	}
161575	target := &ret
161576	if err := gensupport.DecodeResponse(target, res); err != nil {
161577		return nil, err
161578	}
161579	return ret, nil
161580	// {
161581	//   "description": "Returns permissions that a caller has on the specified resource.",
161582	//   "httpMethod": "POST",
161583	//   "id": "compute.vpnGateways.testIamPermissions",
161584	//   "parameterOrder": [
161585	//     "project",
161586	//     "region",
161587	//     "resource"
161588	//   ],
161589	//   "parameters": {
161590	//     "project": {
161591	//       "description": "Project ID for this request.",
161592	//       "location": "path",
161593	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161594	//       "required": true,
161595	//       "type": "string"
161596	//     },
161597	//     "region": {
161598	//       "description": "The name of the region for this request.",
161599	//       "location": "path",
161600	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
161601	//       "required": true,
161602	//       "type": "string"
161603	//     },
161604	//     "resource": {
161605	//       "description": "Name or id of the resource for this request.",
161606	//       "location": "path",
161607	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
161608	//       "required": true,
161609	//       "type": "string"
161610	//     }
161611	//   },
161612	//   "path": "projects/{project}/regions/{region}/vpnGateways/{resource}/testIamPermissions",
161613	//   "request": {
161614	//     "$ref": "TestPermissionsRequest"
161615	//   },
161616	//   "response": {
161617	//     "$ref": "TestPermissionsResponse"
161618	//   },
161619	//   "scopes": [
161620	//     "https://www.googleapis.com/auth/cloud-platform",
161621	//     "https://www.googleapis.com/auth/compute",
161622	//     "https://www.googleapis.com/auth/compute.readonly"
161623	//   ]
161624	// }
161625
161626}
161627
161628// method id "compute.vpnTunnels.aggregatedList":
161629
161630type VpnTunnelsAggregatedListCall struct {
161631	s            *Service
161632	project      string
161633	urlParams_   gensupport.URLParams
161634	ifNoneMatch_ string
161635	ctx_         context.Context
161636	header_      http.Header
161637}
161638
161639// AggregatedList: Retrieves an aggregated list of VPN tunnels.
161640//
161641// - project: Project ID for this request.
161642func (r *VpnTunnelsService) AggregatedList(project string) *VpnTunnelsAggregatedListCall {
161643	c := &VpnTunnelsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161644	c.project = project
161645	return c
161646}
161647
161648// Filter sets the optional parameter "filter": A filter expression that
161649// filters resources listed in the response. The expression must specify
161650// the field name, a comparison operator, and the value that you want to
161651// use for filtering. The value must be a string, a number, or a
161652// boolean. The comparison operator must be either `=`, `!=`, `>`, or
161653// `<`.
161654//
161655// For example, if you are filtering Compute Engine instances, you can
161656// exclude instances named `example-instance` by specifying `name !=
161657// example-instance`.
161658//
161659// You can also filter nested fields. For example, you could specify
161660// `scheduling.automaticRestart = false` to include instances only if
161661// they are not scheduled for automatic restarts. You can use filtering
161662// on nested fields to filter based on resource labels.
161663//
161664// To filter on multiple expressions, provide each separate expression
161665// within parentheses. For example: ``` (scheduling.automaticRestart =
161666// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
161667// is an `AND` expression. However, you can include `AND` and `OR`
161668// expressions explicitly. For example: ``` (cpuPlatform = "Intel
161669// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
161670// (scheduling.automaticRestart = true) ```
161671func (c *VpnTunnelsAggregatedListCall) Filter(filter string) *VpnTunnelsAggregatedListCall {
161672	c.urlParams_.Set("filter", filter)
161673	return c
161674}
161675
161676// IncludeAllScopes sets the optional parameter "includeAllScopes":
161677// Indicates whether every visible scope for each scope type (zone,
161678// region, global) should be included in the response. For new resource
161679// types added after this field, the flag has no effect as new resource
161680// types will always include every visible scope for each scope type in
161681// response. For resource types which predate this field, if this flag
161682// is omitted or false, only scopes of the scope types where the
161683// resource type is expected to be found will be included.
161684func (c *VpnTunnelsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *VpnTunnelsAggregatedListCall {
161685	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
161686	return c
161687}
161688
161689// MaxResults sets the optional parameter "maxResults": The maximum
161690// number of results per page that should be returned. If the number of
161691// available results is larger than `maxResults`, Compute Engine returns
161692// a `nextPageToken` that can be used to get the next page of results in
161693// subsequent list requests. Acceptable values are `0` to `500`,
161694// inclusive. (Default: `500`)
161695func (c *VpnTunnelsAggregatedListCall) MaxResults(maxResults int64) *VpnTunnelsAggregatedListCall {
161696	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
161697	return c
161698}
161699
161700// OrderBy sets the optional parameter "orderBy": Sorts list results by
161701// a certain order. By default, results are returned in alphanumerical
161702// order based on the resource name.
161703//
161704// You can also sort results in descending order based on the creation
161705// timestamp using `orderBy="creationTimestamp desc". This sorts
161706// results based on the `creationTimestamp` field in reverse
161707// chronological order (newest result first). Use this to sort resources
161708// like operations so that the newest operation is returned
161709// first.
161710//
161711// Currently, only sorting by `name` or `creationTimestamp desc` is
161712// supported.
161713func (c *VpnTunnelsAggregatedListCall) OrderBy(orderBy string) *VpnTunnelsAggregatedListCall {
161714	c.urlParams_.Set("orderBy", orderBy)
161715	return c
161716}
161717
161718// PageToken sets the optional parameter "pageToken": Specifies a page
161719// token to use. Set `pageToken` to the `nextPageToken` returned by a
161720// previous list request to get the next page of results.
161721func (c *VpnTunnelsAggregatedListCall) PageToken(pageToken string) *VpnTunnelsAggregatedListCall {
161722	c.urlParams_.Set("pageToken", pageToken)
161723	return c
161724}
161725
161726// ReturnPartialSuccess sets the optional parameter
161727// "returnPartialSuccess": Opt-in for partial success behavior which
161728// provides partial results in case of failure. The default value is
161729// false.
161730func (c *VpnTunnelsAggregatedListCall) ReturnPartialSuccess(returnPartialSuccess bool) *VpnTunnelsAggregatedListCall {
161731	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
161732	return c
161733}
161734
161735// Fields allows partial responses to be retrieved. See
161736// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161737// for more information.
161738func (c *VpnTunnelsAggregatedListCall) Fields(s ...googleapi.Field) *VpnTunnelsAggregatedListCall {
161739	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161740	return c
161741}
161742
161743// IfNoneMatch sets the optional parameter which makes the operation
161744// fail if the object's ETag matches the given value. This is useful for
161745// getting updates only after the object has changed since the last
161746// request. Use googleapi.IsNotModified to check whether the response
161747// error from Do is the result of In-None-Match.
161748func (c *VpnTunnelsAggregatedListCall) IfNoneMatch(entityTag string) *VpnTunnelsAggregatedListCall {
161749	c.ifNoneMatch_ = entityTag
161750	return c
161751}
161752
161753// Context sets the context to be used in this call's Do method. Any
161754// pending HTTP request will be aborted if the provided context is
161755// canceled.
161756func (c *VpnTunnelsAggregatedListCall) Context(ctx context.Context) *VpnTunnelsAggregatedListCall {
161757	c.ctx_ = ctx
161758	return c
161759}
161760
161761// Header returns an http.Header that can be modified by the caller to
161762// add HTTP headers to the request.
161763func (c *VpnTunnelsAggregatedListCall) Header() http.Header {
161764	if c.header_ == nil {
161765		c.header_ = make(http.Header)
161766	}
161767	return c.header_
161768}
161769
161770func (c *VpnTunnelsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
161771	reqHeaders := make(http.Header)
161772	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
161773	for k, v := range c.header_ {
161774		reqHeaders[k] = v
161775	}
161776	reqHeaders.Set("User-Agent", c.s.userAgent())
161777	if c.ifNoneMatch_ != "" {
161778		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
161779	}
161780	var body io.Reader = nil
161781	c.urlParams_.Set("alt", alt)
161782	c.urlParams_.Set("prettyPrint", "false")
161783	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/aggregated/vpnTunnels")
161784	urls += "?" + c.urlParams_.Encode()
161785	req, err := http.NewRequest("GET", urls, body)
161786	if err != nil {
161787		return nil, err
161788	}
161789	req.Header = reqHeaders
161790	googleapi.Expand(req.URL, map[string]string{
161791		"project": c.project,
161792	})
161793	return gensupport.SendRequest(c.ctx_, c.s.client, req)
161794}
161795
161796// Do executes the "compute.vpnTunnels.aggregatedList" call.
161797// Exactly one of *VpnTunnelAggregatedList or error will be non-nil. Any
161798// non-2xx status code is an error. Response headers are in either
161799// *VpnTunnelAggregatedList.ServerResponse.Header or (if a response was
161800// returned at all) in error.(*googleapi.Error).Header. Use
161801// googleapi.IsNotModified to check whether the returned error was
161802// because http.StatusNotModified was returned.
161803func (c *VpnTunnelsAggregatedListCall) Do(opts ...googleapi.CallOption) (*VpnTunnelAggregatedList, error) {
161804	gensupport.SetOptions(c.urlParams_, opts...)
161805	res, err := c.doRequest("json")
161806	if res != nil && res.StatusCode == http.StatusNotModified {
161807		if res.Body != nil {
161808			res.Body.Close()
161809		}
161810		return nil, &googleapi.Error{
161811			Code:   res.StatusCode,
161812			Header: res.Header,
161813		}
161814	}
161815	if err != nil {
161816		return nil, err
161817	}
161818	defer googleapi.CloseBody(res)
161819	if err := googleapi.CheckResponse(res); err != nil {
161820		return nil, err
161821	}
161822	ret := &VpnTunnelAggregatedList{
161823		ServerResponse: googleapi.ServerResponse{
161824			Header:         res.Header,
161825			HTTPStatusCode: res.StatusCode,
161826		},
161827	}
161828	target := &ret
161829	if err := gensupport.DecodeResponse(target, res); err != nil {
161830		return nil, err
161831	}
161832	return ret, nil
161833	// {
161834	//   "description": "Retrieves an aggregated list of VPN tunnels.",
161835	//   "httpMethod": "GET",
161836	//   "id": "compute.vpnTunnels.aggregatedList",
161837	//   "parameterOrder": [
161838	//     "project"
161839	//   ],
161840	//   "parameters": {
161841	//     "filter": {
161842	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
161843	//       "location": "query",
161844	//       "type": "string"
161845	//     },
161846	//     "includeAllScopes": {
161847	//       "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.",
161848	//       "location": "query",
161849	//       "type": "boolean"
161850	//     },
161851	//     "maxResults": {
161852	//       "default": "500",
161853	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
161854	//       "format": "uint32",
161855	//       "location": "query",
161856	//       "minimum": "0",
161857	//       "type": "integer"
161858	//     },
161859	//     "orderBy": {
161860	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
161861	//       "location": "query",
161862	//       "type": "string"
161863	//     },
161864	//     "pageToken": {
161865	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
161866	//       "location": "query",
161867	//       "type": "string"
161868	//     },
161869	//     "project": {
161870	//       "description": "Project ID for this request.",
161871	//       "location": "path",
161872	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
161873	//       "required": true,
161874	//       "type": "string"
161875	//     },
161876	//     "returnPartialSuccess": {
161877	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
161878	//       "location": "query",
161879	//       "type": "boolean"
161880	//     }
161881	//   },
161882	//   "path": "projects/{project}/aggregated/vpnTunnels",
161883	//   "response": {
161884	//     "$ref": "VpnTunnelAggregatedList"
161885	//   },
161886	//   "scopes": [
161887	//     "https://www.googleapis.com/auth/cloud-platform",
161888	//     "https://www.googleapis.com/auth/compute",
161889	//     "https://www.googleapis.com/auth/compute.readonly"
161890	//   ]
161891	// }
161892
161893}
161894
161895// Pages invokes f for each page of results.
161896// A non-nil error returned from f will halt the iteration.
161897// The provided context supersedes any context provided to the Context method.
161898func (c *VpnTunnelsAggregatedListCall) Pages(ctx context.Context, f func(*VpnTunnelAggregatedList) error) error {
161899	c.ctx_ = ctx
161900	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
161901	for {
161902		x, err := c.Do()
161903		if err != nil {
161904			return err
161905		}
161906		if err := f(x); err != nil {
161907			return err
161908		}
161909		if x.NextPageToken == "" {
161910			return nil
161911		}
161912		c.PageToken(x.NextPageToken)
161913	}
161914}
161915
161916// method id "compute.vpnTunnels.delete":
161917
161918type VpnTunnelsDeleteCall struct {
161919	s          *Service
161920	project    string
161921	region     string
161922	vpnTunnel  string
161923	urlParams_ gensupport.URLParams
161924	ctx_       context.Context
161925	header_    http.Header
161926}
161927
161928// Delete: Deletes the specified VpnTunnel resource.
161929//
161930// - project: Project ID for this request.
161931// - region: Name of the region for this request.
161932// - vpnTunnel: Name of the VpnTunnel resource to delete.
161933func (r *VpnTunnelsService) Delete(project string, region string, vpnTunnel string) *VpnTunnelsDeleteCall {
161934	c := &VpnTunnelsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
161935	c.project = project
161936	c.region = region
161937	c.vpnTunnel = vpnTunnel
161938	return c
161939}
161940
161941// RequestId sets the optional parameter "requestId": An optional
161942// request ID to identify requests. Specify a unique request ID so that
161943// if you must retry your request, the server will know to ignore the
161944// request if it has already been completed.
161945//
161946// For example, consider a situation where you make an initial request
161947// and the request times out. If you make the request again with the
161948// same request ID, the server can check if original operation with the
161949// same request ID was received, and if so, will ignore the second
161950// request. This prevents clients from accidentally creating duplicate
161951// commitments.
161952//
161953// The request ID must be a valid UUID with the exception that zero UUID
161954// is not supported (00000000-0000-0000-0000-000000000000).
161955func (c *VpnTunnelsDeleteCall) RequestId(requestId string) *VpnTunnelsDeleteCall {
161956	c.urlParams_.Set("requestId", requestId)
161957	return c
161958}
161959
161960// Fields allows partial responses to be retrieved. See
161961// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
161962// for more information.
161963func (c *VpnTunnelsDeleteCall) Fields(s ...googleapi.Field) *VpnTunnelsDeleteCall {
161964	c.urlParams_.Set("fields", googleapi.CombineFields(s))
161965	return c
161966}
161967
161968// Context sets the context to be used in this call's Do method. Any
161969// pending HTTP request will be aborted if the provided context is
161970// canceled.
161971func (c *VpnTunnelsDeleteCall) Context(ctx context.Context) *VpnTunnelsDeleteCall {
161972	c.ctx_ = ctx
161973	return c
161974}
161975
161976// Header returns an http.Header that can be modified by the caller to
161977// add HTTP headers to the request.
161978func (c *VpnTunnelsDeleteCall) Header() http.Header {
161979	if c.header_ == nil {
161980		c.header_ = make(http.Header)
161981	}
161982	return c.header_
161983}
161984
161985func (c *VpnTunnelsDeleteCall) doRequest(alt string) (*http.Response, error) {
161986	reqHeaders := make(http.Header)
161987	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
161988	for k, v := range c.header_ {
161989		reqHeaders[k] = v
161990	}
161991	reqHeaders.Set("User-Agent", c.s.userAgent())
161992	var body io.Reader = nil
161993	c.urlParams_.Set("alt", alt)
161994	c.urlParams_.Set("prettyPrint", "false")
161995	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}")
161996	urls += "?" + c.urlParams_.Encode()
161997	req, err := http.NewRequest("DELETE", urls, body)
161998	if err != nil {
161999		return nil, err
162000	}
162001	req.Header = reqHeaders
162002	googleapi.Expand(req.URL, map[string]string{
162003		"project":   c.project,
162004		"region":    c.region,
162005		"vpnTunnel": c.vpnTunnel,
162006	})
162007	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162008}
162009
162010// Do executes the "compute.vpnTunnels.delete" call.
162011// Exactly one of *Operation or error will be non-nil. Any non-2xx
162012// status code is an error. Response headers are in either
162013// *Operation.ServerResponse.Header or (if a response was returned at
162014// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
162015// to check whether the returned error was because
162016// http.StatusNotModified was returned.
162017func (c *VpnTunnelsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
162018	gensupport.SetOptions(c.urlParams_, opts...)
162019	res, err := c.doRequest("json")
162020	if res != nil && res.StatusCode == http.StatusNotModified {
162021		if res.Body != nil {
162022			res.Body.Close()
162023		}
162024		return nil, &googleapi.Error{
162025			Code:   res.StatusCode,
162026			Header: res.Header,
162027		}
162028	}
162029	if err != nil {
162030		return nil, err
162031	}
162032	defer googleapi.CloseBody(res)
162033	if err := googleapi.CheckResponse(res); err != nil {
162034		return nil, err
162035	}
162036	ret := &Operation{
162037		ServerResponse: googleapi.ServerResponse{
162038			Header:         res.Header,
162039			HTTPStatusCode: res.StatusCode,
162040		},
162041	}
162042	target := &ret
162043	if err := gensupport.DecodeResponse(target, res); err != nil {
162044		return nil, err
162045	}
162046	return ret, nil
162047	// {
162048	//   "description": "Deletes the specified VpnTunnel resource.",
162049	//   "httpMethod": "DELETE",
162050	//   "id": "compute.vpnTunnels.delete",
162051	//   "parameterOrder": [
162052	//     "project",
162053	//     "region",
162054	//     "vpnTunnel"
162055	//   ],
162056	//   "parameters": {
162057	//     "project": {
162058	//       "description": "Project ID for this request.",
162059	//       "location": "path",
162060	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162061	//       "required": true,
162062	//       "type": "string"
162063	//     },
162064	//     "region": {
162065	//       "description": "Name of the region for this request.",
162066	//       "location": "path",
162067	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
162068	//       "required": true,
162069	//       "type": "string"
162070	//     },
162071	//     "requestId": {
162072	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
162073	//       "location": "query",
162074	//       "type": "string"
162075	//     },
162076	//     "vpnTunnel": {
162077	//       "description": "Name of the VpnTunnel resource to delete.",
162078	//       "location": "path",
162079	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
162080	//       "required": true,
162081	//       "type": "string"
162082	//     }
162083	//   },
162084	//   "path": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}",
162085	//   "response": {
162086	//     "$ref": "Operation"
162087	//   },
162088	//   "scopes": [
162089	//     "https://www.googleapis.com/auth/cloud-platform",
162090	//     "https://www.googleapis.com/auth/compute"
162091	//   ]
162092	// }
162093
162094}
162095
162096// method id "compute.vpnTunnels.get":
162097
162098type VpnTunnelsGetCall struct {
162099	s            *Service
162100	project      string
162101	region       string
162102	vpnTunnel    string
162103	urlParams_   gensupport.URLParams
162104	ifNoneMatch_ string
162105	ctx_         context.Context
162106	header_      http.Header
162107}
162108
162109// Get: Returns the specified VpnTunnel resource. Gets a list of
162110// available VPN tunnels by making a list() request.
162111//
162112// - project: Project ID for this request.
162113// - region: Name of the region for this request.
162114// - vpnTunnel: Name of the VpnTunnel resource to return.
162115func (r *VpnTunnelsService) Get(project string, region string, vpnTunnel string) *VpnTunnelsGetCall {
162116	c := &VpnTunnelsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162117	c.project = project
162118	c.region = region
162119	c.vpnTunnel = vpnTunnel
162120	return c
162121}
162122
162123// Fields allows partial responses to be retrieved. See
162124// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162125// for more information.
162126func (c *VpnTunnelsGetCall) Fields(s ...googleapi.Field) *VpnTunnelsGetCall {
162127	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162128	return c
162129}
162130
162131// IfNoneMatch sets the optional parameter which makes the operation
162132// fail if the object's ETag matches the given value. This is useful for
162133// getting updates only after the object has changed since the last
162134// request. Use googleapi.IsNotModified to check whether the response
162135// error from Do is the result of In-None-Match.
162136func (c *VpnTunnelsGetCall) IfNoneMatch(entityTag string) *VpnTunnelsGetCall {
162137	c.ifNoneMatch_ = entityTag
162138	return c
162139}
162140
162141// Context sets the context to be used in this call's Do method. Any
162142// pending HTTP request will be aborted if the provided context is
162143// canceled.
162144func (c *VpnTunnelsGetCall) Context(ctx context.Context) *VpnTunnelsGetCall {
162145	c.ctx_ = ctx
162146	return c
162147}
162148
162149// Header returns an http.Header that can be modified by the caller to
162150// add HTTP headers to the request.
162151func (c *VpnTunnelsGetCall) Header() http.Header {
162152	if c.header_ == nil {
162153		c.header_ = make(http.Header)
162154	}
162155	return c.header_
162156}
162157
162158func (c *VpnTunnelsGetCall) doRequest(alt string) (*http.Response, error) {
162159	reqHeaders := make(http.Header)
162160	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
162161	for k, v := range c.header_ {
162162		reqHeaders[k] = v
162163	}
162164	reqHeaders.Set("User-Agent", c.s.userAgent())
162165	if c.ifNoneMatch_ != "" {
162166		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
162167	}
162168	var body io.Reader = nil
162169	c.urlParams_.Set("alt", alt)
162170	c.urlParams_.Set("prettyPrint", "false")
162171	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}")
162172	urls += "?" + c.urlParams_.Encode()
162173	req, err := http.NewRequest("GET", urls, body)
162174	if err != nil {
162175		return nil, err
162176	}
162177	req.Header = reqHeaders
162178	googleapi.Expand(req.URL, map[string]string{
162179		"project":   c.project,
162180		"region":    c.region,
162181		"vpnTunnel": c.vpnTunnel,
162182	})
162183	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162184}
162185
162186// Do executes the "compute.vpnTunnels.get" call.
162187// Exactly one of *VpnTunnel or error will be non-nil. Any non-2xx
162188// status code is an error. Response headers are in either
162189// *VpnTunnel.ServerResponse.Header or (if a response was returned at
162190// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
162191// to check whether the returned error was because
162192// http.StatusNotModified was returned.
162193func (c *VpnTunnelsGetCall) Do(opts ...googleapi.CallOption) (*VpnTunnel, error) {
162194	gensupport.SetOptions(c.urlParams_, opts...)
162195	res, err := c.doRequest("json")
162196	if res != nil && res.StatusCode == http.StatusNotModified {
162197		if res.Body != nil {
162198			res.Body.Close()
162199		}
162200		return nil, &googleapi.Error{
162201			Code:   res.StatusCode,
162202			Header: res.Header,
162203		}
162204	}
162205	if err != nil {
162206		return nil, err
162207	}
162208	defer googleapi.CloseBody(res)
162209	if err := googleapi.CheckResponse(res); err != nil {
162210		return nil, err
162211	}
162212	ret := &VpnTunnel{
162213		ServerResponse: googleapi.ServerResponse{
162214			Header:         res.Header,
162215			HTTPStatusCode: res.StatusCode,
162216		},
162217	}
162218	target := &ret
162219	if err := gensupport.DecodeResponse(target, res); err != nil {
162220		return nil, err
162221	}
162222	return ret, nil
162223	// {
162224	//   "description": "Returns the specified VpnTunnel resource. Gets a list of available VPN tunnels by making a list() request.",
162225	//   "httpMethod": "GET",
162226	//   "id": "compute.vpnTunnels.get",
162227	//   "parameterOrder": [
162228	//     "project",
162229	//     "region",
162230	//     "vpnTunnel"
162231	//   ],
162232	//   "parameters": {
162233	//     "project": {
162234	//       "description": "Project ID for this request.",
162235	//       "location": "path",
162236	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162237	//       "required": true,
162238	//       "type": "string"
162239	//     },
162240	//     "region": {
162241	//       "description": "Name of the region for this request.",
162242	//       "location": "path",
162243	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
162244	//       "required": true,
162245	//       "type": "string"
162246	//     },
162247	//     "vpnTunnel": {
162248	//       "description": "Name of the VpnTunnel resource to return.",
162249	//       "location": "path",
162250	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
162251	//       "required": true,
162252	//       "type": "string"
162253	//     }
162254	//   },
162255	//   "path": "projects/{project}/regions/{region}/vpnTunnels/{vpnTunnel}",
162256	//   "response": {
162257	//     "$ref": "VpnTunnel"
162258	//   },
162259	//   "scopes": [
162260	//     "https://www.googleapis.com/auth/cloud-platform",
162261	//     "https://www.googleapis.com/auth/compute",
162262	//     "https://www.googleapis.com/auth/compute.readonly"
162263	//   ]
162264	// }
162265
162266}
162267
162268// method id "compute.vpnTunnels.insert":
162269
162270type VpnTunnelsInsertCall struct {
162271	s          *Service
162272	project    string
162273	region     string
162274	vpntunnel  *VpnTunnel
162275	urlParams_ gensupport.URLParams
162276	ctx_       context.Context
162277	header_    http.Header
162278}
162279
162280// Insert: Creates a VpnTunnel resource in the specified project and
162281// region using the data included in the request.
162282//
162283// - project: Project ID for this request.
162284// - region: Name of the region for this request.
162285func (r *VpnTunnelsService) Insert(project string, region string, vpntunnel *VpnTunnel) *VpnTunnelsInsertCall {
162286	c := &VpnTunnelsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162287	c.project = project
162288	c.region = region
162289	c.vpntunnel = vpntunnel
162290	return c
162291}
162292
162293// RequestId sets the optional parameter "requestId": An optional
162294// request ID to identify requests. Specify a unique request ID so that
162295// if you must retry your request, the server will know to ignore the
162296// request if it has already been completed.
162297//
162298// For example, consider a situation where you make an initial request
162299// and the request times out. If you make the request again with the
162300// same request ID, the server can check if original operation with the
162301// same request ID was received, and if so, will ignore the second
162302// request. This prevents clients from accidentally creating duplicate
162303// commitments.
162304//
162305// The request ID must be a valid UUID with the exception that zero UUID
162306// is not supported (00000000-0000-0000-0000-000000000000).
162307func (c *VpnTunnelsInsertCall) RequestId(requestId string) *VpnTunnelsInsertCall {
162308	c.urlParams_.Set("requestId", requestId)
162309	return c
162310}
162311
162312// Fields allows partial responses to be retrieved. See
162313// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162314// for more information.
162315func (c *VpnTunnelsInsertCall) Fields(s ...googleapi.Field) *VpnTunnelsInsertCall {
162316	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162317	return c
162318}
162319
162320// Context sets the context to be used in this call's Do method. Any
162321// pending HTTP request will be aborted if the provided context is
162322// canceled.
162323func (c *VpnTunnelsInsertCall) Context(ctx context.Context) *VpnTunnelsInsertCall {
162324	c.ctx_ = ctx
162325	return c
162326}
162327
162328// Header returns an http.Header that can be modified by the caller to
162329// add HTTP headers to the request.
162330func (c *VpnTunnelsInsertCall) Header() http.Header {
162331	if c.header_ == nil {
162332		c.header_ = make(http.Header)
162333	}
162334	return c.header_
162335}
162336
162337func (c *VpnTunnelsInsertCall) doRequest(alt string) (*http.Response, error) {
162338	reqHeaders := make(http.Header)
162339	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
162340	for k, v := range c.header_ {
162341		reqHeaders[k] = v
162342	}
162343	reqHeaders.Set("User-Agent", c.s.userAgent())
162344	var body io.Reader = nil
162345	body, err := googleapi.WithoutDataWrapper.JSONReader(c.vpntunnel)
162346	if err != nil {
162347		return nil, err
162348	}
162349	reqHeaders.Set("Content-Type", "application/json")
162350	c.urlParams_.Set("alt", alt)
162351	c.urlParams_.Set("prettyPrint", "false")
162352	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnTunnels")
162353	urls += "?" + c.urlParams_.Encode()
162354	req, err := http.NewRequest("POST", urls, body)
162355	if err != nil {
162356		return nil, err
162357	}
162358	req.Header = reqHeaders
162359	googleapi.Expand(req.URL, map[string]string{
162360		"project": c.project,
162361		"region":  c.region,
162362	})
162363	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162364}
162365
162366// Do executes the "compute.vpnTunnels.insert" call.
162367// Exactly one of *Operation or error will be non-nil. Any non-2xx
162368// status code is an error. Response headers are in either
162369// *Operation.ServerResponse.Header or (if a response was returned at
162370// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
162371// to check whether the returned error was because
162372// http.StatusNotModified was returned.
162373func (c *VpnTunnelsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
162374	gensupport.SetOptions(c.urlParams_, opts...)
162375	res, err := c.doRequest("json")
162376	if res != nil && res.StatusCode == http.StatusNotModified {
162377		if res.Body != nil {
162378			res.Body.Close()
162379		}
162380		return nil, &googleapi.Error{
162381			Code:   res.StatusCode,
162382			Header: res.Header,
162383		}
162384	}
162385	if err != nil {
162386		return nil, err
162387	}
162388	defer googleapi.CloseBody(res)
162389	if err := googleapi.CheckResponse(res); err != nil {
162390		return nil, err
162391	}
162392	ret := &Operation{
162393		ServerResponse: googleapi.ServerResponse{
162394			Header:         res.Header,
162395			HTTPStatusCode: res.StatusCode,
162396		},
162397	}
162398	target := &ret
162399	if err := gensupport.DecodeResponse(target, res); err != nil {
162400		return nil, err
162401	}
162402	return ret, nil
162403	// {
162404	//   "description": "Creates a VpnTunnel resource in the specified project and region using the data included in the request.",
162405	//   "httpMethod": "POST",
162406	//   "id": "compute.vpnTunnels.insert",
162407	//   "parameterOrder": [
162408	//     "project",
162409	//     "region"
162410	//   ],
162411	//   "parameters": {
162412	//     "project": {
162413	//       "description": "Project ID for this request.",
162414	//       "location": "path",
162415	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162416	//       "required": true,
162417	//       "type": "string"
162418	//     },
162419	//     "region": {
162420	//       "description": "Name of the region for this request.",
162421	//       "location": "path",
162422	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
162423	//       "required": true,
162424	//       "type": "string"
162425	//     },
162426	//     "requestId": {
162427	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
162428	//       "location": "query",
162429	//       "type": "string"
162430	//     }
162431	//   },
162432	//   "path": "projects/{project}/regions/{region}/vpnTunnels",
162433	//   "request": {
162434	//     "$ref": "VpnTunnel"
162435	//   },
162436	//   "response": {
162437	//     "$ref": "Operation"
162438	//   },
162439	//   "scopes": [
162440	//     "https://www.googleapis.com/auth/cloud-platform",
162441	//     "https://www.googleapis.com/auth/compute"
162442	//   ]
162443	// }
162444
162445}
162446
162447// method id "compute.vpnTunnels.list":
162448
162449type VpnTunnelsListCall struct {
162450	s            *Service
162451	project      string
162452	region       string
162453	urlParams_   gensupport.URLParams
162454	ifNoneMatch_ string
162455	ctx_         context.Context
162456	header_      http.Header
162457}
162458
162459// List: Retrieves a list of VpnTunnel resources contained in the
162460// specified project and region.
162461//
162462// - project: Project ID for this request.
162463// - region: Name of the region for this request.
162464func (r *VpnTunnelsService) List(project string, region string) *VpnTunnelsListCall {
162465	c := &VpnTunnelsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162466	c.project = project
162467	c.region = region
162468	return c
162469}
162470
162471// Filter sets the optional parameter "filter": A filter expression that
162472// filters resources listed in the response. The expression must specify
162473// the field name, a comparison operator, and the value that you want to
162474// use for filtering. The value must be a string, a number, or a
162475// boolean. The comparison operator must be either `=`, `!=`, `>`, or
162476// `<`.
162477//
162478// For example, if you are filtering Compute Engine instances, you can
162479// exclude instances named `example-instance` by specifying `name !=
162480// example-instance`.
162481//
162482// You can also filter nested fields. For example, you could specify
162483// `scheduling.automaticRestart = false` to include instances only if
162484// they are not scheduled for automatic restarts. You can use filtering
162485// on nested fields to filter based on resource labels.
162486//
162487// To filter on multiple expressions, provide each separate expression
162488// within parentheses. For example: ``` (scheduling.automaticRestart =
162489// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
162490// is an `AND` expression. However, you can include `AND` and `OR`
162491// expressions explicitly. For example: ``` (cpuPlatform = "Intel
162492// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
162493// (scheduling.automaticRestart = true) ```
162494func (c *VpnTunnelsListCall) Filter(filter string) *VpnTunnelsListCall {
162495	c.urlParams_.Set("filter", filter)
162496	return c
162497}
162498
162499// MaxResults sets the optional parameter "maxResults": The maximum
162500// number of results per page that should be returned. If the number of
162501// available results is larger than `maxResults`, Compute Engine returns
162502// a `nextPageToken` that can be used to get the next page of results in
162503// subsequent list requests. Acceptable values are `0` to `500`,
162504// inclusive. (Default: `500`)
162505func (c *VpnTunnelsListCall) MaxResults(maxResults int64) *VpnTunnelsListCall {
162506	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
162507	return c
162508}
162509
162510// OrderBy sets the optional parameter "orderBy": Sorts list results by
162511// a certain order. By default, results are returned in alphanumerical
162512// order based on the resource name.
162513//
162514// You can also sort results in descending order based on the creation
162515// timestamp using `orderBy="creationTimestamp desc". This sorts
162516// results based on the `creationTimestamp` field in reverse
162517// chronological order (newest result first). Use this to sort resources
162518// like operations so that the newest operation is returned
162519// first.
162520//
162521// Currently, only sorting by `name` or `creationTimestamp desc` is
162522// supported.
162523func (c *VpnTunnelsListCall) OrderBy(orderBy string) *VpnTunnelsListCall {
162524	c.urlParams_.Set("orderBy", orderBy)
162525	return c
162526}
162527
162528// PageToken sets the optional parameter "pageToken": Specifies a page
162529// token to use. Set `pageToken` to the `nextPageToken` returned by a
162530// previous list request to get the next page of results.
162531func (c *VpnTunnelsListCall) PageToken(pageToken string) *VpnTunnelsListCall {
162532	c.urlParams_.Set("pageToken", pageToken)
162533	return c
162534}
162535
162536// ReturnPartialSuccess sets the optional parameter
162537// "returnPartialSuccess": Opt-in for partial success behavior which
162538// provides partial results in case of failure. The default value is
162539// false.
162540func (c *VpnTunnelsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *VpnTunnelsListCall {
162541	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
162542	return c
162543}
162544
162545// Fields allows partial responses to be retrieved. See
162546// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162547// for more information.
162548func (c *VpnTunnelsListCall) Fields(s ...googleapi.Field) *VpnTunnelsListCall {
162549	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162550	return c
162551}
162552
162553// IfNoneMatch sets the optional parameter which makes the operation
162554// fail if the object's ETag matches the given value. This is useful for
162555// getting updates only after the object has changed since the last
162556// request. Use googleapi.IsNotModified to check whether the response
162557// error from Do is the result of In-None-Match.
162558func (c *VpnTunnelsListCall) IfNoneMatch(entityTag string) *VpnTunnelsListCall {
162559	c.ifNoneMatch_ = entityTag
162560	return c
162561}
162562
162563// Context sets the context to be used in this call's Do method. Any
162564// pending HTTP request will be aborted if the provided context is
162565// canceled.
162566func (c *VpnTunnelsListCall) Context(ctx context.Context) *VpnTunnelsListCall {
162567	c.ctx_ = ctx
162568	return c
162569}
162570
162571// Header returns an http.Header that can be modified by the caller to
162572// add HTTP headers to the request.
162573func (c *VpnTunnelsListCall) Header() http.Header {
162574	if c.header_ == nil {
162575		c.header_ = make(http.Header)
162576	}
162577	return c.header_
162578}
162579
162580func (c *VpnTunnelsListCall) doRequest(alt string) (*http.Response, error) {
162581	reqHeaders := make(http.Header)
162582	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
162583	for k, v := range c.header_ {
162584		reqHeaders[k] = v
162585	}
162586	reqHeaders.Set("User-Agent", c.s.userAgent())
162587	if c.ifNoneMatch_ != "" {
162588		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
162589	}
162590	var body io.Reader = nil
162591	c.urlParams_.Set("alt", alt)
162592	c.urlParams_.Set("prettyPrint", "false")
162593	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/regions/{region}/vpnTunnels")
162594	urls += "?" + c.urlParams_.Encode()
162595	req, err := http.NewRequest("GET", urls, body)
162596	if err != nil {
162597		return nil, err
162598	}
162599	req.Header = reqHeaders
162600	googleapi.Expand(req.URL, map[string]string{
162601		"project": c.project,
162602		"region":  c.region,
162603	})
162604	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162605}
162606
162607// Do executes the "compute.vpnTunnels.list" call.
162608// Exactly one of *VpnTunnelList or error will be non-nil. Any non-2xx
162609// status code is an error. Response headers are in either
162610// *VpnTunnelList.ServerResponse.Header or (if a response was returned
162611// at all) in error.(*googleapi.Error).Header. Use
162612// googleapi.IsNotModified to check whether the returned error was
162613// because http.StatusNotModified was returned.
162614func (c *VpnTunnelsListCall) Do(opts ...googleapi.CallOption) (*VpnTunnelList, error) {
162615	gensupport.SetOptions(c.urlParams_, opts...)
162616	res, err := c.doRequest("json")
162617	if res != nil && res.StatusCode == http.StatusNotModified {
162618		if res.Body != nil {
162619			res.Body.Close()
162620		}
162621		return nil, &googleapi.Error{
162622			Code:   res.StatusCode,
162623			Header: res.Header,
162624		}
162625	}
162626	if err != nil {
162627		return nil, err
162628	}
162629	defer googleapi.CloseBody(res)
162630	if err := googleapi.CheckResponse(res); err != nil {
162631		return nil, err
162632	}
162633	ret := &VpnTunnelList{
162634		ServerResponse: googleapi.ServerResponse{
162635			Header:         res.Header,
162636			HTTPStatusCode: res.StatusCode,
162637		},
162638	}
162639	target := &ret
162640	if err := gensupport.DecodeResponse(target, res); err != nil {
162641		return nil, err
162642	}
162643	return ret, nil
162644	// {
162645	//   "description": "Retrieves a list of VpnTunnel resources contained in the specified project and region.",
162646	//   "httpMethod": "GET",
162647	//   "id": "compute.vpnTunnels.list",
162648	//   "parameterOrder": [
162649	//     "project",
162650	//     "region"
162651	//   ],
162652	//   "parameters": {
162653	//     "filter": {
162654	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
162655	//       "location": "query",
162656	//       "type": "string"
162657	//     },
162658	//     "maxResults": {
162659	//       "default": "500",
162660	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
162661	//       "format": "uint32",
162662	//       "location": "query",
162663	//       "minimum": "0",
162664	//       "type": "integer"
162665	//     },
162666	//     "orderBy": {
162667	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
162668	//       "location": "query",
162669	//       "type": "string"
162670	//     },
162671	//     "pageToken": {
162672	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
162673	//       "location": "query",
162674	//       "type": "string"
162675	//     },
162676	//     "project": {
162677	//       "description": "Project ID for this request.",
162678	//       "location": "path",
162679	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162680	//       "required": true,
162681	//       "type": "string"
162682	//     },
162683	//     "region": {
162684	//       "description": "Name of the region for this request.",
162685	//       "location": "path",
162686	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
162687	//       "required": true,
162688	//       "type": "string"
162689	//     },
162690	//     "returnPartialSuccess": {
162691	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
162692	//       "location": "query",
162693	//       "type": "boolean"
162694	//     }
162695	//   },
162696	//   "path": "projects/{project}/regions/{region}/vpnTunnels",
162697	//   "response": {
162698	//     "$ref": "VpnTunnelList"
162699	//   },
162700	//   "scopes": [
162701	//     "https://www.googleapis.com/auth/cloud-platform",
162702	//     "https://www.googleapis.com/auth/compute",
162703	//     "https://www.googleapis.com/auth/compute.readonly"
162704	//   ]
162705	// }
162706
162707}
162708
162709// Pages invokes f for each page of results.
162710// A non-nil error returned from f will halt the iteration.
162711// The provided context supersedes any context provided to the Context method.
162712func (c *VpnTunnelsListCall) Pages(ctx context.Context, f func(*VpnTunnelList) error) error {
162713	c.ctx_ = ctx
162714	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
162715	for {
162716		x, err := c.Do()
162717		if err != nil {
162718			return err
162719		}
162720		if err := f(x); err != nil {
162721			return err
162722		}
162723		if x.NextPageToken == "" {
162724			return nil
162725		}
162726		c.PageToken(x.NextPageToken)
162727	}
162728}
162729
162730// method id "compute.zoneOperations.delete":
162731
162732type ZoneOperationsDeleteCall struct {
162733	s          *Service
162734	project    string
162735	zone       string
162736	operation  string
162737	urlParams_ gensupport.URLParams
162738	ctx_       context.Context
162739	header_    http.Header
162740}
162741
162742// Delete: Deletes the specified zone-specific Operations resource.
162743//
162744// - operation: Name of the Operations resource to delete.
162745// - project: Project ID for this request.
162746// - zone: Name of the zone for this request.
162747// For details, see https://cloud.google.com/compute/docs/reference/latest/zoneOperations/delete
162748func (r *ZoneOperationsService) Delete(project string, zone string, operation string) *ZoneOperationsDeleteCall {
162749	c := &ZoneOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162750	c.project = project
162751	c.zone = zone
162752	c.operation = operation
162753	return c
162754}
162755
162756// Fields allows partial responses to be retrieved. See
162757// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162758// for more information.
162759func (c *ZoneOperationsDeleteCall) Fields(s ...googleapi.Field) *ZoneOperationsDeleteCall {
162760	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162761	return c
162762}
162763
162764// Context sets the context to be used in this call's Do method. Any
162765// pending HTTP request will be aborted if the provided context is
162766// canceled.
162767func (c *ZoneOperationsDeleteCall) Context(ctx context.Context) *ZoneOperationsDeleteCall {
162768	c.ctx_ = ctx
162769	return c
162770}
162771
162772// Header returns an http.Header that can be modified by the caller to
162773// add HTTP headers to the request.
162774func (c *ZoneOperationsDeleteCall) Header() http.Header {
162775	if c.header_ == nil {
162776		c.header_ = make(http.Header)
162777	}
162778	return c.header_
162779}
162780
162781func (c *ZoneOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
162782	reqHeaders := make(http.Header)
162783	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
162784	for k, v := range c.header_ {
162785		reqHeaders[k] = v
162786	}
162787	reqHeaders.Set("User-Agent", c.s.userAgent())
162788	var body io.Reader = nil
162789	c.urlParams_.Set("alt", alt)
162790	c.urlParams_.Set("prettyPrint", "false")
162791	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/operations/{operation}")
162792	urls += "?" + c.urlParams_.Encode()
162793	req, err := http.NewRequest("DELETE", urls, body)
162794	if err != nil {
162795		return nil, err
162796	}
162797	req.Header = reqHeaders
162798	googleapi.Expand(req.URL, map[string]string{
162799		"project":   c.project,
162800		"zone":      c.zone,
162801		"operation": c.operation,
162802	})
162803	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162804}
162805
162806// Do executes the "compute.zoneOperations.delete" call.
162807func (c *ZoneOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
162808	gensupport.SetOptions(c.urlParams_, opts...)
162809	res, err := c.doRequest("json")
162810	if err != nil {
162811		return err
162812	}
162813	defer googleapi.CloseBody(res)
162814	if err := googleapi.CheckResponse(res); err != nil {
162815		return err
162816	}
162817	return nil
162818	// {
162819	//   "description": "Deletes the specified zone-specific Operations resource.",
162820	//   "httpMethod": "DELETE",
162821	//   "id": "compute.zoneOperations.delete",
162822	//   "parameterOrder": [
162823	//     "project",
162824	//     "zone",
162825	//     "operation"
162826	//   ],
162827	//   "parameters": {
162828	//     "operation": {
162829	//       "description": "Name of the Operations resource to delete.",
162830	//       "location": "path",
162831	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
162832	//       "required": true,
162833	//       "type": "string"
162834	//     },
162835	//     "project": {
162836	//       "description": "Project ID for this request.",
162837	//       "location": "path",
162838	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
162839	//       "required": true,
162840	//       "type": "string"
162841	//     },
162842	//     "zone": {
162843	//       "description": "Name of the zone for this request.",
162844	//       "location": "path",
162845	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
162846	//       "required": true,
162847	//       "type": "string"
162848	//     }
162849	//   },
162850	//   "path": "projects/{project}/zones/{zone}/operations/{operation}",
162851	//   "scopes": [
162852	//     "https://www.googleapis.com/auth/cloud-platform",
162853	//     "https://www.googleapis.com/auth/compute"
162854	//   ]
162855	// }
162856
162857}
162858
162859// method id "compute.zoneOperations.get":
162860
162861type ZoneOperationsGetCall struct {
162862	s            *Service
162863	project      string
162864	zone         string
162865	operation    string
162866	urlParams_   gensupport.URLParams
162867	ifNoneMatch_ string
162868	ctx_         context.Context
162869	header_      http.Header
162870}
162871
162872// Get: Retrieves the specified zone-specific Operations resource.
162873//
162874// - operation: Name of the Operations resource to return.
162875// - project: Project ID for this request.
162876// - zone: Name of the zone for this request.
162877// For details, see https://cloud.google.com/compute/docs/reference/latest/zoneOperations/get
162878func (r *ZoneOperationsService) Get(project string, zone string, operation string) *ZoneOperationsGetCall {
162879	c := &ZoneOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
162880	c.project = project
162881	c.zone = zone
162882	c.operation = operation
162883	return c
162884}
162885
162886// Fields allows partial responses to be retrieved. See
162887// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
162888// for more information.
162889func (c *ZoneOperationsGetCall) Fields(s ...googleapi.Field) *ZoneOperationsGetCall {
162890	c.urlParams_.Set("fields", googleapi.CombineFields(s))
162891	return c
162892}
162893
162894// IfNoneMatch sets the optional parameter which makes the operation
162895// fail if the object's ETag matches the given value. This is useful for
162896// getting updates only after the object has changed since the last
162897// request. Use googleapi.IsNotModified to check whether the response
162898// error from Do is the result of In-None-Match.
162899func (c *ZoneOperationsGetCall) IfNoneMatch(entityTag string) *ZoneOperationsGetCall {
162900	c.ifNoneMatch_ = entityTag
162901	return c
162902}
162903
162904// Context sets the context to be used in this call's Do method. Any
162905// pending HTTP request will be aborted if the provided context is
162906// canceled.
162907func (c *ZoneOperationsGetCall) Context(ctx context.Context) *ZoneOperationsGetCall {
162908	c.ctx_ = ctx
162909	return c
162910}
162911
162912// Header returns an http.Header that can be modified by the caller to
162913// add HTTP headers to the request.
162914func (c *ZoneOperationsGetCall) Header() http.Header {
162915	if c.header_ == nil {
162916		c.header_ = make(http.Header)
162917	}
162918	return c.header_
162919}
162920
162921func (c *ZoneOperationsGetCall) doRequest(alt string) (*http.Response, error) {
162922	reqHeaders := make(http.Header)
162923	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
162924	for k, v := range c.header_ {
162925		reqHeaders[k] = v
162926	}
162927	reqHeaders.Set("User-Agent", c.s.userAgent())
162928	if c.ifNoneMatch_ != "" {
162929		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
162930	}
162931	var body io.Reader = nil
162932	c.urlParams_.Set("alt", alt)
162933	c.urlParams_.Set("prettyPrint", "false")
162934	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/operations/{operation}")
162935	urls += "?" + c.urlParams_.Encode()
162936	req, err := http.NewRequest("GET", urls, body)
162937	if err != nil {
162938		return nil, err
162939	}
162940	req.Header = reqHeaders
162941	googleapi.Expand(req.URL, map[string]string{
162942		"project":   c.project,
162943		"zone":      c.zone,
162944		"operation": c.operation,
162945	})
162946	return gensupport.SendRequest(c.ctx_, c.s.client, req)
162947}
162948
162949// Do executes the "compute.zoneOperations.get" call.
162950// Exactly one of *Operation or error will be non-nil. Any non-2xx
162951// status code is an error. Response headers are in either
162952// *Operation.ServerResponse.Header or (if a response was returned at
162953// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
162954// to check whether the returned error was because
162955// http.StatusNotModified was returned.
162956func (c *ZoneOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
162957	gensupport.SetOptions(c.urlParams_, opts...)
162958	res, err := c.doRequest("json")
162959	if res != nil && res.StatusCode == http.StatusNotModified {
162960		if res.Body != nil {
162961			res.Body.Close()
162962		}
162963		return nil, &googleapi.Error{
162964			Code:   res.StatusCode,
162965			Header: res.Header,
162966		}
162967	}
162968	if err != nil {
162969		return nil, err
162970	}
162971	defer googleapi.CloseBody(res)
162972	if err := googleapi.CheckResponse(res); err != nil {
162973		return nil, err
162974	}
162975	ret := &Operation{
162976		ServerResponse: googleapi.ServerResponse{
162977			Header:         res.Header,
162978			HTTPStatusCode: res.StatusCode,
162979		},
162980	}
162981	target := &ret
162982	if err := gensupport.DecodeResponse(target, res); err != nil {
162983		return nil, err
162984	}
162985	return ret, nil
162986	// {
162987	//   "description": "Retrieves the specified zone-specific Operations resource.",
162988	//   "httpMethod": "GET",
162989	//   "id": "compute.zoneOperations.get",
162990	//   "parameterOrder": [
162991	//     "project",
162992	//     "zone",
162993	//     "operation"
162994	//   ],
162995	//   "parameters": {
162996	//     "operation": {
162997	//       "description": "Name of the Operations resource to return.",
162998	//       "location": "path",
162999	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
163000	//       "required": true,
163001	//       "type": "string"
163002	//     },
163003	//     "project": {
163004	//       "description": "Project ID for this request.",
163005	//       "location": "path",
163006	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163007	//       "required": true,
163008	//       "type": "string"
163009	//     },
163010	//     "zone": {
163011	//       "description": "Name of the zone for this request.",
163012	//       "location": "path",
163013	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
163014	//       "required": true,
163015	//       "type": "string"
163016	//     }
163017	//   },
163018	//   "path": "projects/{project}/zones/{zone}/operations/{operation}",
163019	//   "response": {
163020	//     "$ref": "Operation"
163021	//   },
163022	//   "scopes": [
163023	//     "https://www.googleapis.com/auth/cloud-platform",
163024	//     "https://www.googleapis.com/auth/compute",
163025	//     "https://www.googleapis.com/auth/compute.readonly"
163026	//   ]
163027	// }
163028
163029}
163030
163031// method id "compute.zoneOperations.list":
163032
163033type ZoneOperationsListCall struct {
163034	s            *Service
163035	project      string
163036	zone         string
163037	urlParams_   gensupport.URLParams
163038	ifNoneMatch_ string
163039	ctx_         context.Context
163040	header_      http.Header
163041}
163042
163043// List: Retrieves a list of Operation resources contained within the
163044// specified zone.
163045//
163046// - project: Project ID for this request.
163047// - zone: Name of the zone for request.
163048// For details, see https://cloud.google.com/compute/docs/reference/latest/zoneOperations/list
163049func (r *ZoneOperationsService) List(project string, zone string) *ZoneOperationsListCall {
163050	c := &ZoneOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163051	c.project = project
163052	c.zone = zone
163053	return c
163054}
163055
163056// Filter sets the optional parameter "filter": A filter expression that
163057// filters resources listed in the response. The expression must specify
163058// the field name, a comparison operator, and the value that you want to
163059// use for filtering. The value must be a string, a number, or a
163060// boolean. The comparison operator must be either `=`, `!=`, `>`, or
163061// `<`.
163062//
163063// For example, if you are filtering Compute Engine instances, you can
163064// exclude instances named `example-instance` by specifying `name !=
163065// example-instance`.
163066//
163067// You can also filter nested fields. For example, you could specify
163068// `scheduling.automaticRestart = false` to include instances only if
163069// they are not scheduled for automatic restarts. You can use filtering
163070// on nested fields to filter based on resource labels.
163071//
163072// To filter on multiple expressions, provide each separate expression
163073// within parentheses. For example: ``` (scheduling.automaticRestart =
163074// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
163075// is an `AND` expression. However, you can include `AND` and `OR`
163076// expressions explicitly. For example: ``` (cpuPlatform = "Intel
163077// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
163078// (scheduling.automaticRestart = true) ```
163079func (c *ZoneOperationsListCall) Filter(filter string) *ZoneOperationsListCall {
163080	c.urlParams_.Set("filter", filter)
163081	return c
163082}
163083
163084// MaxResults sets the optional parameter "maxResults": The maximum
163085// number of results per page that should be returned. If the number of
163086// available results is larger than `maxResults`, Compute Engine returns
163087// a `nextPageToken` that can be used to get the next page of results in
163088// subsequent list requests. Acceptable values are `0` to `500`,
163089// inclusive. (Default: `500`)
163090func (c *ZoneOperationsListCall) MaxResults(maxResults int64) *ZoneOperationsListCall {
163091	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
163092	return c
163093}
163094
163095// OrderBy sets the optional parameter "orderBy": Sorts list results by
163096// a certain order. By default, results are returned in alphanumerical
163097// order based on the resource name.
163098//
163099// You can also sort results in descending order based on the creation
163100// timestamp using `orderBy="creationTimestamp desc". This sorts
163101// results based on the `creationTimestamp` field in reverse
163102// chronological order (newest result first). Use this to sort resources
163103// like operations so that the newest operation is returned
163104// first.
163105//
163106// Currently, only sorting by `name` or `creationTimestamp desc` is
163107// supported.
163108func (c *ZoneOperationsListCall) OrderBy(orderBy string) *ZoneOperationsListCall {
163109	c.urlParams_.Set("orderBy", orderBy)
163110	return c
163111}
163112
163113// PageToken sets the optional parameter "pageToken": Specifies a page
163114// token to use. Set `pageToken` to the `nextPageToken` returned by a
163115// previous list request to get the next page of results.
163116func (c *ZoneOperationsListCall) PageToken(pageToken string) *ZoneOperationsListCall {
163117	c.urlParams_.Set("pageToken", pageToken)
163118	return c
163119}
163120
163121// ReturnPartialSuccess sets the optional parameter
163122// "returnPartialSuccess": Opt-in for partial success behavior which
163123// provides partial results in case of failure. The default value is
163124// false.
163125func (c *ZoneOperationsListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ZoneOperationsListCall {
163126	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
163127	return c
163128}
163129
163130// Fields allows partial responses to be retrieved. See
163131// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163132// for more information.
163133func (c *ZoneOperationsListCall) Fields(s ...googleapi.Field) *ZoneOperationsListCall {
163134	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163135	return c
163136}
163137
163138// IfNoneMatch sets the optional parameter which makes the operation
163139// fail if the object's ETag matches the given value. This is useful for
163140// getting updates only after the object has changed since the last
163141// request. Use googleapi.IsNotModified to check whether the response
163142// error from Do is the result of In-None-Match.
163143func (c *ZoneOperationsListCall) IfNoneMatch(entityTag string) *ZoneOperationsListCall {
163144	c.ifNoneMatch_ = entityTag
163145	return c
163146}
163147
163148// Context sets the context to be used in this call's Do method. Any
163149// pending HTTP request will be aborted if the provided context is
163150// canceled.
163151func (c *ZoneOperationsListCall) Context(ctx context.Context) *ZoneOperationsListCall {
163152	c.ctx_ = ctx
163153	return c
163154}
163155
163156// Header returns an http.Header that can be modified by the caller to
163157// add HTTP headers to the request.
163158func (c *ZoneOperationsListCall) Header() http.Header {
163159	if c.header_ == nil {
163160		c.header_ = make(http.Header)
163161	}
163162	return c.header_
163163}
163164
163165func (c *ZoneOperationsListCall) doRequest(alt string) (*http.Response, error) {
163166	reqHeaders := make(http.Header)
163167	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
163168	for k, v := range c.header_ {
163169		reqHeaders[k] = v
163170	}
163171	reqHeaders.Set("User-Agent", c.s.userAgent())
163172	if c.ifNoneMatch_ != "" {
163173		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
163174	}
163175	var body io.Reader = nil
163176	c.urlParams_.Set("alt", alt)
163177	c.urlParams_.Set("prettyPrint", "false")
163178	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/operations")
163179	urls += "?" + c.urlParams_.Encode()
163180	req, err := http.NewRequest("GET", urls, body)
163181	if err != nil {
163182		return nil, err
163183	}
163184	req.Header = reqHeaders
163185	googleapi.Expand(req.URL, map[string]string{
163186		"project": c.project,
163187		"zone":    c.zone,
163188	})
163189	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163190}
163191
163192// Do executes the "compute.zoneOperations.list" call.
163193// Exactly one of *OperationList or error will be non-nil. Any non-2xx
163194// status code is an error. Response headers are in either
163195// *OperationList.ServerResponse.Header or (if a response was returned
163196// at all) in error.(*googleapi.Error).Header. Use
163197// googleapi.IsNotModified to check whether the returned error was
163198// because http.StatusNotModified was returned.
163199func (c *ZoneOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
163200	gensupport.SetOptions(c.urlParams_, opts...)
163201	res, err := c.doRequest("json")
163202	if res != nil && res.StatusCode == http.StatusNotModified {
163203		if res.Body != nil {
163204			res.Body.Close()
163205		}
163206		return nil, &googleapi.Error{
163207			Code:   res.StatusCode,
163208			Header: res.Header,
163209		}
163210	}
163211	if err != nil {
163212		return nil, err
163213	}
163214	defer googleapi.CloseBody(res)
163215	if err := googleapi.CheckResponse(res); err != nil {
163216		return nil, err
163217	}
163218	ret := &OperationList{
163219		ServerResponse: googleapi.ServerResponse{
163220			Header:         res.Header,
163221			HTTPStatusCode: res.StatusCode,
163222		},
163223	}
163224	target := &ret
163225	if err := gensupport.DecodeResponse(target, res); err != nil {
163226		return nil, err
163227	}
163228	return ret, nil
163229	// {
163230	//   "description": "Retrieves a list of Operation resources contained within the specified zone.",
163231	//   "httpMethod": "GET",
163232	//   "id": "compute.zoneOperations.list",
163233	//   "parameterOrder": [
163234	//     "project",
163235	//     "zone"
163236	//   ],
163237	//   "parameters": {
163238	//     "filter": {
163239	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
163240	//       "location": "query",
163241	//       "type": "string"
163242	//     },
163243	//     "maxResults": {
163244	//       "default": "500",
163245	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
163246	//       "format": "uint32",
163247	//       "location": "query",
163248	//       "minimum": "0",
163249	//       "type": "integer"
163250	//     },
163251	//     "orderBy": {
163252	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
163253	//       "location": "query",
163254	//       "type": "string"
163255	//     },
163256	//     "pageToken": {
163257	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
163258	//       "location": "query",
163259	//       "type": "string"
163260	//     },
163261	//     "project": {
163262	//       "description": "Project ID for this request.",
163263	//       "location": "path",
163264	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163265	//       "required": true,
163266	//       "type": "string"
163267	//     },
163268	//     "returnPartialSuccess": {
163269	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
163270	//       "location": "query",
163271	//       "type": "boolean"
163272	//     },
163273	//     "zone": {
163274	//       "description": "Name of the zone for request.",
163275	//       "location": "path",
163276	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
163277	//       "required": true,
163278	//       "type": "string"
163279	//     }
163280	//   },
163281	//   "path": "projects/{project}/zones/{zone}/operations",
163282	//   "response": {
163283	//     "$ref": "OperationList"
163284	//   },
163285	//   "scopes": [
163286	//     "https://www.googleapis.com/auth/cloud-platform",
163287	//     "https://www.googleapis.com/auth/compute",
163288	//     "https://www.googleapis.com/auth/compute.readonly"
163289	//   ]
163290	// }
163291
163292}
163293
163294// Pages invokes f for each page of results.
163295// A non-nil error returned from f will halt the iteration.
163296// The provided context supersedes any context provided to the Context method.
163297func (c *ZoneOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
163298	c.ctx_ = ctx
163299	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
163300	for {
163301		x, err := c.Do()
163302		if err != nil {
163303			return err
163304		}
163305		if err := f(x); err != nil {
163306			return err
163307		}
163308		if x.NextPageToken == "" {
163309			return nil
163310		}
163311		c.PageToken(x.NextPageToken)
163312	}
163313}
163314
163315// method id "compute.zoneOperations.wait":
163316
163317type ZoneOperationsWaitCall struct {
163318	s          *Service
163319	project    string
163320	zone       string
163321	operation  string
163322	urlParams_ gensupport.URLParams
163323	ctx_       context.Context
163324	header_    http.Header
163325}
163326
163327// Wait: Waits for the specified Operation resource to return as `DONE`
163328// or for the request to approach the 2 minute deadline, and retrieves
163329// the specified Operation resource. This method differs from the `GET`
163330// method in that it waits for no more than the default deadline (2
163331// minutes) and then returns the current state of the operation, which
163332// might be `DONE` or still in progress.
163333//
163334// This method is called on a best-effort basis. Specifically:
163335// - In uncommon cases, when the server is overloaded, the request might
163336// return before the default deadline is reached, or might return after
163337// zero seconds.
163338// - If the default deadline is reached, there is no guarantee that the
163339// operation is actually done when the method returns. Be prepared to
163340// retry if the operation is not `DONE`.
163341//
163342// - operation: Name of the Operations resource to return.
163343// - project: Project ID for this request.
163344// - zone: Name of the zone for this request.
163345func (r *ZoneOperationsService) Wait(project string, zone string, operation string) *ZoneOperationsWaitCall {
163346	c := &ZoneOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163347	c.project = project
163348	c.zone = zone
163349	c.operation = operation
163350	return c
163351}
163352
163353// Fields allows partial responses to be retrieved. See
163354// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163355// for more information.
163356func (c *ZoneOperationsWaitCall) Fields(s ...googleapi.Field) *ZoneOperationsWaitCall {
163357	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163358	return c
163359}
163360
163361// Context sets the context to be used in this call's Do method. Any
163362// pending HTTP request will be aborted if the provided context is
163363// canceled.
163364func (c *ZoneOperationsWaitCall) Context(ctx context.Context) *ZoneOperationsWaitCall {
163365	c.ctx_ = ctx
163366	return c
163367}
163368
163369// Header returns an http.Header that can be modified by the caller to
163370// add HTTP headers to the request.
163371func (c *ZoneOperationsWaitCall) Header() http.Header {
163372	if c.header_ == nil {
163373		c.header_ = make(http.Header)
163374	}
163375	return c.header_
163376}
163377
163378func (c *ZoneOperationsWaitCall) doRequest(alt string) (*http.Response, error) {
163379	reqHeaders := make(http.Header)
163380	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
163381	for k, v := range c.header_ {
163382		reqHeaders[k] = v
163383	}
163384	reqHeaders.Set("User-Agent", c.s.userAgent())
163385	var body io.Reader = nil
163386	c.urlParams_.Set("alt", alt)
163387	c.urlParams_.Set("prettyPrint", "false")
163388	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}/operations/{operation}/wait")
163389	urls += "?" + c.urlParams_.Encode()
163390	req, err := http.NewRequest("POST", urls, body)
163391	if err != nil {
163392		return nil, err
163393	}
163394	req.Header = reqHeaders
163395	googleapi.Expand(req.URL, map[string]string{
163396		"project":   c.project,
163397		"zone":      c.zone,
163398		"operation": c.operation,
163399	})
163400	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163401}
163402
163403// Do executes the "compute.zoneOperations.wait" call.
163404// Exactly one of *Operation or error will be non-nil. Any non-2xx
163405// status code is an error. Response headers are in either
163406// *Operation.ServerResponse.Header or (if a response was returned at
163407// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
163408// to check whether the returned error was because
163409// http.StatusNotModified was returned.
163410func (c *ZoneOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
163411	gensupport.SetOptions(c.urlParams_, opts...)
163412	res, err := c.doRequest("json")
163413	if res != nil && res.StatusCode == http.StatusNotModified {
163414		if res.Body != nil {
163415			res.Body.Close()
163416		}
163417		return nil, &googleapi.Error{
163418			Code:   res.StatusCode,
163419			Header: res.Header,
163420		}
163421	}
163422	if err != nil {
163423		return nil, err
163424	}
163425	defer googleapi.CloseBody(res)
163426	if err := googleapi.CheckResponse(res); err != nil {
163427		return nil, err
163428	}
163429	ret := &Operation{
163430		ServerResponse: googleapi.ServerResponse{
163431			Header:         res.Header,
163432			HTTPStatusCode: res.StatusCode,
163433		},
163434	}
163435	target := &ret
163436	if err := gensupport.DecodeResponse(target, res); err != nil {
163437		return nil, err
163438	}
163439	return ret, nil
163440	// {
163441	//   "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`.",
163442	//   "httpMethod": "POST",
163443	//   "id": "compute.zoneOperations.wait",
163444	//   "parameterOrder": [
163445	//     "project",
163446	//     "zone",
163447	//     "operation"
163448	//   ],
163449	//   "parameters": {
163450	//     "operation": {
163451	//       "description": "Name of the Operations resource to return.",
163452	//       "location": "path",
163453	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
163454	//       "required": true,
163455	//       "type": "string"
163456	//     },
163457	//     "project": {
163458	//       "description": "Project ID for this request.",
163459	//       "location": "path",
163460	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163461	//       "required": true,
163462	//       "type": "string"
163463	//     },
163464	//     "zone": {
163465	//       "description": "Name of the zone for this request.",
163466	//       "location": "path",
163467	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
163468	//       "required": true,
163469	//       "type": "string"
163470	//     }
163471	//   },
163472	//   "path": "projects/{project}/zones/{zone}/operations/{operation}/wait",
163473	//   "response": {
163474	//     "$ref": "Operation"
163475	//   },
163476	//   "scopes": [
163477	//     "https://www.googleapis.com/auth/cloud-platform",
163478	//     "https://www.googleapis.com/auth/compute",
163479	//     "https://www.googleapis.com/auth/compute.readonly"
163480	//   ]
163481	// }
163482
163483}
163484
163485// method id "compute.zones.get":
163486
163487type ZonesGetCall struct {
163488	s            *Service
163489	project      string
163490	zone         string
163491	urlParams_   gensupport.URLParams
163492	ifNoneMatch_ string
163493	ctx_         context.Context
163494	header_      http.Header
163495}
163496
163497// Get: Returns the specified Zone resource. Gets a list of available
163498// zones by making a list() request.
163499//
163500// - project: Project ID for this request.
163501// - zone: Name of the zone resource to return.
163502// For details, see https://cloud.google.com/compute/docs/reference/latest/zones/get
163503func (r *ZonesService) Get(project string, zone string) *ZonesGetCall {
163504	c := &ZonesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163505	c.project = project
163506	c.zone = zone
163507	return c
163508}
163509
163510// Fields allows partial responses to be retrieved. See
163511// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163512// for more information.
163513func (c *ZonesGetCall) Fields(s ...googleapi.Field) *ZonesGetCall {
163514	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163515	return c
163516}
163517
163518// IfNoneMatch sets the optional parameter which makes the operation
163519// fail if the object's ETag matches the given value. This is useful for
163520// getting updates only after the object has changed since the last
163521// request. Use googleapi.IsNotModified to check whether the response
163522// error from Do is the result of In-None-Match.
163523func (c *ZonesGetCall) IfNoneMatch(entityTag string) *ZonesGetCall {
163524	c.ifNoneMatch_ = entityTag
163525	return c
163526}
163527
163528// Context sets the context to be used in this call's Do method. Any
163529// pending HTTP request will be aborted if the provided context is
163530// canceled.
163531func (c *ZonesGetCall) Context(ctx context.Context) *ZonesGetCall {
163532	c.ctx_ = ctx
163533	return c
163534}
163535
163536// Header returns an http.Header that can be modified by the caller to
163537// add HTTP headers to the request.
163538func (c *ZonesGetCall) Header() http.Header {
163539	if c.header_ == nil {
163540		c.header_ = make(http.Header)
163541	}
163542	return c.header_
163543}
163544
163545func (c *ZonesGetCall) doRequest(alt string) (*http.Response, error) {
163546	reqHeaders := make(http.Header)
163547	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
163548	for k, v := range c.header_ {
163549		reqHeaders[k] = v
163550	}
163551	reqHeaders.Set("User-Agent", c.s.userAgent())
163552	if c.ifNoneMatch_ != "" {
163553		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
163554	}
163555	var body io.Reader = nil
163556	c.urlParams_.Set("alt", alt)
163557	c.urlParams_.Set("prettyPrint", "false")
163558	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones/{zone}")
163559	urls += "?" + c.urlParams_.Encode()
163560	req, err := http.NewRequest("GET", urls, body)
163561	if err != nil {
163562		return nil, err
163563	}
163564	req.Header = reqHeaders
163565	googleapi.Expand(req.URL, map[string]string{
163566		"project": c.project,
163567		"zone":    c.zone,
163568	})
163569	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163570}
163571
163572// Do executes the "compute.zones.get" call.
163573// Exactly one of *Zone or error will be non-nil. Any non-2xx status
163574// code is an error. Response headers are in either
163575// *Zone.ServerResponse.Header or (if a response was returned at all) in
163576// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
163577// whether the returned error was because http.StatusNotModified was
163578// returned.
163579func (c *ZonesGetCall) Do(opts ...googleapi.CallOption) (*Zone, error) {
163580	gensupport.SetOptions(c.urlParams_, opts...)
163581	res, err := c.doRequest("json")
163582	if res != nil && res.StatusCode == http.StatusNotModified {
163583		if res.Body != nil {
163584			res.Body.Close()
163585		}
163586		return nil, &googleapi.Error{
163587			Code:   res.StatusCode,
163588			Header: res.Header,
163589		}
163590	}
163591	if err != nil {
163592		return nil, err
163593	}
163594	defer googleapi.CloseBody(res)
163595	if err := googleapi.CheckResponse(res); err != nil {
163596		return nil, err
163597	}
163598	ret := &Zone{
163599		ServerResponse: googleapi.ServerResponse{
163600			Header:         res.Header,
163601			HTTPStatusCode: res.StatusCode,
163602		},
163603	}
163604	target := &ret
163605	if err := gensupport.DecodeResponse(target, res); err != nil {
163606		return nil, err
163607	}
163608	return ret, nil
163609	// {
163610	//   "description": "Returns the specified Zone resource. Gets a list of available zones by making a list() request.",
163611	//   "httpMethod": "GET",
163612	//   "id": "compute.zones.get",
163613	//   "parameterOrder": [
163614	//     "project",
163615	//     "zone"
163616	//   ],
163617	//   "parameters": {
163618	//     "project": {
163619	//       "description": "Project ID for this request.",
163620	//       "location": "path",
163621	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163622	//       "required": true,
163623	//       "type": "string"
163624	//     },
163625	//     "zone": {
163626	//       "description": "Name of the zone resource to return.",
163627	//       "location": "path",
163628	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
163629	//       "required": true,
163630	//       "type": "string"
163631	//     }
163632	//   },
163633	//   "path": "projects/{project}/zones/{zone}",
163634	//   "response": {
163635	//     "$ref": "Zone"
163636	//   },
163637	//   "scopes": [
163638	//     "https://www.googleapis.com/auth/cloud-platform",
163639	//     "https://www.googleapis.com/auth/compute",
163640	//     "https://www.googleapis.com/auth/compute.readonly"
163641	//   ]
163642	// }
163643
163644}
163645
163646// method id "compute.zones.list":
163647
163648type ZonesListCall struct {
163649	s            *Service
163650	project      string
163651	urlParams_   gensupport.URLParams
163652	ifNoneMatch_ string
163653	ctx_         context.Context
163654	header_      http.Header
163655}
163656
163657// List: Retrieves the list of Zone resources available to the specified
163658// project.
163659//
163660// - project: Project ID for this request.
163661// For details, see https://cloud.google.com/compute/docs/reference/latest/zones/list
163662func (r *ZonesService) List(project string) *ZonesListCall {
163663	c := &ZonesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
163664	c.project = project
163665	return c
163666}
163667
163668// Filter sets the optional parameter "filter": A filter expression that
163669// filters resources listed in the response. The expression must specify
163670// the field name, a comparison operator, and the value that you want to
163671// use for filtering. The value must be a string, a number, or a
163672// boolean. The comparison operator must be either `=`, `!=`, `>`, or
163673// `<`.
163674//
163675// For example, if you are filtering Compute Engine instances, you can
163676// exclude instances named `example-instance` by specifying `name !=
163677// example-instance`.
163678//
163679// You can also filter nested fields. For example, you could specify
163680// `scheduling.automaticRestart = false` to include instances only if
163681// they are not scheduled for automatic restarts. You can use filtering
163682// on nested fields to filter based on resource labels.
163683//
163684// To filter on multiple expressions, provide each separate expression
163685// within parentheses. For example: ``` (scheduling.automaticRestart =
163686// true) (cpuPlatform = "Intel Skylake") ``` By default, each expression
163687// is an `AND` expression. However, you can include `AND` and `OR`
163688// expressions explicitly. For example: ``` (cpuPlatform = "Intel
163689// Skylake") OR (cpuPlatform = "Intel Broadwell") AND
163690// (scheduling.automaticRestart = true) ```
163691func (c *ZonesListCall) Filter(filter string) *ZonesListCall {
163692	c.urlParams_.Set("filter", filter)
163693	return c
163694}
163695
163696// MaxResults sets the optional parameter "maxResults": The maximum
163697// number of results per page that should be returned. If the number of
163698// available results is larger than `maxResults`, Compute Engine returns
163699// a `nextPageToken` that can be used to get the next page of results in
163700// subsequent list requests. Acceptable values are `0` to `500`,
163701// inclusive. (Default: `500`)
163702func (c *ZonesListCall) MaxResults(maxResults int64) *ZonesListCall {
163703	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
163704	return c
163705}
163706
163707// OrderBy sets the optional parameter "orderBy": Sorts list results by
163708// a certain order. By default, results are returned in alphanumerical
163709// order based on the resource name.
163710//
163711// You can also sort results in descending order based on the creation
163712// timestamp using `orderBy="creationTimestamp desc". This sorts
163713// results based on the `creationTimestamp` field in reverse
163714// chronological order (newest result first). Use this to sort resources
163715// like operations so that the newest operation is returned
163716// first.
163717//
163718// Currently, only sorting by `name` or `creationTimestamp desc` is
163719// supported.
163720func (c *ZonesListCall) OrderBy(orderBy string) *ZonesListCall {
163721	c.urlParams_.Set("orderBy", orderBy)
163722	return c
163723}
163724
163725// PageToken sets the optional parameter "pageToken": Specifies a page
163726// token to use. Set `pageToken` to the `nextPageToken` returned by a
163727// previous list request to get the next page of results.
163728func (c *ZonesListCall) PageToken(pageToken string) *ZonesListCall {
163729	c.urlParams_.Set("pageToken", pageToken)
163730	return c
163731}
163732
163733// ReturnPartialSuccess sets the optional parameter
163734// "returnPartialSuccess": Opt-in for partial success behavior which
163735// provides partial results in case of failure. The default value is
163736// false.
163737func (c *ZonesListCall) ReturnPartialSuccess(returnPartialSuccess bool) *ZonesListCall {
163738	c.urlParams_.Set("returnPartialSuccess", fmt.Sprint(returnPartialSuccess))
163739	return c
163740}
163741
163742// Fields allows partial responses to be retrieved. See
163743// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
163744// for more information.
163745func (c *ZonesListCall) Fields(s ...googleapi.Field) *ZonesListCall {
163746	c.urlParams_.Set("fields", googleapi.CombineFields(s))
163747	return c
163748}
163749
163750// IfNoneMatch sets the optional parameter which makes the operation
163751// fail if the object's ETag matches the given value. This is useful for
163752// getting updates only after the object has changed since the last
163753// request. Use googleapi.IsNotModified to check whether the response
163754// error from Do is the result of In-None-Match.
163755func (c *ZonesListCall) IfNoneMatch(entityTag string) *ZonesListCall {
163756	c.ifNoneMatch_ = entityTag
163757	return c
163758}
163759
163760// Context sets the context to be used in this call's Do method. Any
163761// pending HTTP request will be aborted if the provided context is
163762// canceled.
163763func (c *ZonesListCall) Context(ctx context.Context) *ZonesListCall {
163764	c.ctx_ = ctx
163765	return c
163766}
163767
163768// Header returns an http.Header that can be modified by the caller to
163769// add HTTP headers to the request.
163770func (c *ZonesListCall) Header() http.Header {
163771	if c.header_ == nil {
163772		c.header_ = make(http.Header)
163773	}
163774	return c.header_
163775}
163776
163777func (c *ZonesListCall) doRequest(alt string) (*http.Response, error) {
163778	reqHeaders := make(http.Header)
163779	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20210613")
163780	for k, v := range c.header_ {
163781		reqHeaders[k] = v
163782	}
163783	reqHeaders.Set("User-Agent", c.s.userAgent())
163784	if c.ifNoneMatch_ != "" {
163785		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
163786	}
163787	var body io.Reader = nil
163788	c.urlParams_.Set("alt", alt)
163789	c.urlParams_.Set("prettyPrint", "false")
163790	urls := googleapi.ResolveRelative(c.s.BasePath, "projects/{project}/zones")
163791	urls += "?" + c.urlParams_.Encode()
163792	req, err := http.NewRequest("GET", urls, body)
163793	if err != nil {
163794		return nil, err
163795	}
163796	req.Header = reqHeaders
163797	googleapi.Expand(req.URL, map[string]string{
163798		"project": c.project,
163799	})
163800	return gensupport.SendRequest(c.ctx_, c.s.client, req)
163801}
163802
163803// Do executes the "compute.zones.list" call.
163804// Exactly one of *ZoneList or error will be non-nil. Any non-2xx status
163805// code is an error. Response headers are in either
163806// *ZoneList.ServerResponse.Header or (if a response was returned at
163807// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
163808// to check whether the returned error was because
163809// http.StatusNotModified was returned.
163810func (c *ZonesListCall) Do(opts ...googleapi.CallOption) (*ZoneList, error) {
163811	gensupport.SetOptions(c.urlParams_, opts...)
163812	res, err := c.doRequest("json")
163813	if res != nil && res.StatusCode == http.StatusNotModified {
163814		if res.Body != nil {
163815			res.Body.Close()
163816		}
163817		return nil, &googleapi.Error{
163818			Code:   res.StatusCode,
163819			Header: res.Header,
163820		}
163821	}
163822	if err != nil {
163823		return nil, err
163824	}
163825	defer googleapi.CloseBody(res)
163826	if err := googleapi.CheckResponse(res); err != nil {
163827		return nil, err
163828	}
163829	ret := &ZoneList{
163830		ServerResponse: googleapi.ServerResponse{
163831			Header:         res.Header,
163832			HTTPStatusCode: res.StatusCode,
163833		},
163834	}
163835	target := &ret
163836	if err := gensupport.DecodeResponse(target, res); err != nil {
163837		return nil, err
163838	}
163839	return ret, nil
163840	// {
163841	//   "description": "Retrieves the list of Zone resources available to the specified project.",
163842	//   "httpMethod": "GET",
163843	//   "id": "compute.zones.list",
163844	//   "parameterOrder": [
163845	//     "project"
163846	//   ],
163847	//   "parameters": {
163848	//     "filter": {
163849	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either `=`, `!=`, `\u003e`, or `\u003c`.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named `example-instance` by specifying `name != example-instance`.\n\nYou can also filter nested fields. For example, you could specify `scheduling.automaticRestart = false` to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example: ``` (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\") ``` By default, each expression is an `AND` expression. However, you can include `AND` and `OR` expressions explicitly. For example: ``` (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true) ```",
163850	//       "location": "query",
163851	//       "type": "string"
163852	//     },
163853	//     "maxResults": {
163854	//       "default": "500",
163855	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than `maxResults`, Compute Engine returns a `nextPageToken` that can be used to get the next page of results in subsequent list requests. Acceptable values are `0` to `500`, inclusive. (Default: `500`)",
163856	//       "format": "uint32",
163857	//       "location": "query",
163858	//       "minimum": "0",
163859	//       "type": "integer"
163860	//     },
163861	//     "orderBy": {
163862	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using `orderBy=\"creationTimestamp desc\"`. This sorts results based on the `creationTimestamp` field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by `name` or `creationTimestamp desc` is supported.",
163863	//       "location": "query",
163864	//       "type": "string"
163865	//     },
163866	//     "pageToken": {
163867	//       "description": "Specifies a page token to use. Set `pageToken` to the `nextPageToken` returned by a previous list request to get the next page of results.",
163868	//       "location": "query",
163869	//       "type": "string"
163870	//     },
163871	//     "project": {
163872	//       "description": "Project ID for this request.",
163873	//       "location": "path",
163874	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
163875	//       "required": true,
163876	//       "type": "string"
163877	//     },
163878	//     "returnPartialSuccess": {
163879	//       "description": "Opt-in for partial success behavior which provides partial results in case of failure. The default value is false.",
163880	//       "location": "query",
163881	//       "type": "boolean"
163882	//     }
163883	//   },
163884	//   "path": "projects/{project}/zones",
163885	//   "response": {
163886	//     "$ref": "ZoneList"
163887	//   },
163888	//   "scopes": [
163889	//     "https://www.googleapis.com/auth/cloud-platform",
163890	//     "https://www.googleapis.com/auth/compute",
163891	//     "https://www.googleapis.com/auth/compute.readonly"
163892	//   ]
163893	// }
163894
163895}
163896
163897// Pages invokes f for each page of results.
163898// A non-nil error returned from f will halt the iteration.
163899// The provided context supersedes any context provided to the Context method.
163900func (c *ZonesListCall) Pages(ctx context.Context, f func(*ZoneList) error) error {
163901	c.ctx_ = ctx
163902	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
163903	for {
163904		x, err := c.Do()
163905		if err != nil {
163906			return err
163907		}
163908		if err := f(x); err != nil {
163909			return err
163910		}
163911		if x.NextPageToken == "" {
163912			return nil
163913		}
163914		c.PageToken(x.NextPageToken)
163915	}
163916}
163917